Se requiere una suscripción a JoVE para ver este contenido. Inicie sesión o comience su prueba gratuita.
El empalme alternativo (AS) y la poliadenilación alternativa (APA) amplían la diversidad de isoformas de transcripción y sus productos. Aquí, describimos protocolos bioinformáticos para analizar RNA-seq a granel y ensayos de secuenciación final 3' para detectar y visualizar AS y APA que varían según las condiciones experimentales.
Además del análisis típico de RNA-Seq para medir la expresión génica diferencial (DGE) en condiciones experimentales / biológicas, los datos de RNA-seq también se pueden utilizar para explorar otros mecanismos reguladores complejos a nivel de exón. El empalme alternativo y la poliadenilación juegan un papel crucial en la diversidad funcional de un gen al generar diferentes isoformas para regular la expresión génica a nivel post-transcripcional, y limitar los análisis a todo el nivel del gen puede pasar por alto esta importante capa reguladora. Aquí, demostramos análisis detallados paso a paso para la identificación y visualización del uso diferencial del exón y el sitio de poliadenilación en todas las condiciones, utilizando Bioconductor y otros paquetes y funciones, incluidos DEXSeq, diffSplice del paquete Limma y rMATS.
RNA-seq ha sido ampliamente utilizado a lo largo de los años, generalmente para estimar la expresión génica diferencial y el descubrimiento de genes1. Además, también se puede utilizar para estimar el uso variable del nivel de exón debido a que los genes expresan diferentes isoformas, lo que contribuye a una mejor comprensión de la regulación génica a nivel post-transcripcional. La mayoría de los genes eucariotas generan diferentes isoformas mediante empalme alternativo (AS) para aumentar la diversidad de la expresión del ARNm. Los eventos AS se pueden dividir en diferentes patrones: salto de exones completos (SE) donde un exón ("casete") se elimina completamente de la transcripción junto con sus intrones flanqueantes; selección alternativa (donante) del sitio de empalme de 5' (A5SS) y selección alternativa 3' (aceptor) del sitio de empalme (A3SS) cuando dos o más sitios de empalme están presentes en cada extremo de un exón; retención de intrones (RI) cuando un intrón se retiene dentro de la transcripción de ARNm maduro y exclusión mutua del uso de exones (MXE) donde solo uno de los dos exones disponibles puede ser retenido a la vez 2,3. La poliadenilación alternativa (APA) también juega un papel importante en la regulación de la expresión génica utilizando sitios alternativos de poli (A) para generar múltiples isoformas de ARNm a partir de una sola transcripción4. La mayoría de los sitios de poliadenilación (pAs) se encuentran en la región 3' no traducida (3' UTRs), generando isoformas de ARNm con diversas longitudes 3' UTR. Como el 3' UTR es el eje central para reconocer elementos reguladores, diferentes longitudes 3' UTR pueden afectar la localización, estabilidad y traducción del ARNm5. Hay una clase de ensayos de secuenciación final 3' optimizados para detectar APA que difieren en los detalles del protocolo6. La canalización descrita aquí está diseñada para PolyA-seq, pero se puede adaptar para otros protocolos como se describe.
En este estudio, presentamos una tubería de métodos de análisis de exones diferenciales7,8 (Figura 1), que se pueden dividir en dos grandes categorías: basados en exones (DEXSeq9, diffSplice10) y basados en eventos (replicate Multivariate Analysis of Transcript Splicing (rMATS)11). Los métodos basados en exones comparan el cambio de pliegue a través de las condiciones de los exones individuales, contra una medida del cambio general del pliegue genético para llamar al uso de exones expresado diferencialmente, y a partir de eso calcular una medida a nivel de gen de la actividad de AS. Los métodos basados en eventos utilizan lecturas de unión de expansión exón-intrón para detectar y clasificar eventos de empalme específicos, como la omisión de exón o la retención de intrones, y distinguir estos tipos de AS en la salida3. Por lo tanto, estos métodos proporcionan vistas complementarias para un análisis completo de la EA12,13. Se seleccionaron DEXSeq (basado en el paquete DESeq214 DGE) y diffSplice (basado en el paquete Limma10 DGE) para el estudio, ya que se encuentran entre los paquetes más utilizados para el análisis de empalme diferencial. rMATS fue elegido como un método popular para el análisis basado en eventos. Otro método popular basado en eventos es MISO (mezcla de isoformas)1. Para APA adaptamos el enfoque basado en exones.
Figura 1. Pipeline de análisis. Diagrama de flujo de los pasos utilizados en el análisis. Los pasos incluyen: obtener los datos, realizar controles de calidad y alineación de lecturas seguidas de contar lecturas utilizando anotaciones para exones conocidos, intrones y sitios pA, filtrado para eliminar recuentos bajos y normalización. Los datos de PolyA-seq se analizaron para sitios de pA alternativos utilizando métodos diffSplice/DEXSeq, RNA-Seq a granel se analizaron para splicing alternativo a nivel de exón con métodos diffSplice/DEXseq, y los eventos de AS se analizaron con rMATS. Haga clic aquí para ver una versión más grande de esta figura.
Los datos de RNA-seq utilizados en este estudio fueron adquiridos de Gene Expression Omnibus (GEO) (GSE138691)15. Utilizamos datos de ARN-seq de ratón de este estudio con dos grupos de condiciones: tipo salvaje (WT) y knockout tipo 1 similar a Muscleblind (Mbnl1 KO) con tres réplicas cada uno. Para demostrar el análisis diferencial de uso del sitio de poliadenilación, obtuvimos datos de PolyA-seq de fibroblastos embrionarios de ratón (MEF) (GEO Accesion GSE60487)16. Los datos tienen cuatro grupos de condiciones: tipo salvaje (WT), tipo ciego muscular tipo 1 / tipo 2 doble knockout (Mbnl1/2 DKO), Mbnl 1/2 DKO con derribo Mbnl3 (KD) y Mbnl1/2 DKO con control Mbnl3 (Ctrl). Cada grupo de condición consta de dos réplicas.
Adhesión al GEO | Número de ejecución de SRA | Nombre de la muestra | Condición | Replicar | Tejido | Secuenciación | Longitud de lectura | |
RNA-Seq | GSM4116218 | SRR10261601 | Mbnl1KO_Thymus_1 | Mbnl1 nocaut | Rep 1 | Timo | Extremo emparejado | 100 pb |
GSM4116219 | SRR10261602 | Mbnl1KO_Thymus_2 | Mbnl1 nocaut | Rep 2 | Timo | Extremo emparejado | 100 pb | |
GSM4116220 | SRR10261603 | Mbnl1KO_Thymus_3 | Mbnl1 nocaut | Rep 3 | Timo | Extremo emparejado | 100 pb | |
GSM4116221 | SRR10261604 | WT_Thymus_1 | Tipo salvaje | Rep 1 | Timo | Extremo emparejado | 100 pb | |
GSM4116222 | SRR10261605 | WT_Thymus_2 | Tipo salvaje | Rep 2 | Timo | Extremo emparejado | 100 pb | |
GSM4116223 | SRR10261606 | WT_Thymus_3 | Tipo salvaje | Rep 3 | Timo | Extremo emparejado | 100 pb | |
3P-seq | GSM1480973 | SRR1553129 | WT_1 | Tipo salvaje (WT) | Rep 1 | Fibroblastos embrionarios de ratón (MEF) | Extremo único | 40 pb |
GSM1480974 | SRR1553130 | WT_2 | Tipo salvaje (WT) | Rep 2 | Fibroblastos embrionarios de ratón (MEF) | Extremo único | 40 pb | |
GSM1480975 | SRR1553131 | DKO_1 | Mbnl 1/2 doble knockout (DKO) | Rep 1 | Fibroblastos embrionarios de ratón (MEF) | Extremo único | 40 pb | |
GSM1480976 | SRR1553132 | DKO_2 | Mbnl 1/2 doble knockout (DKO) | Rep 2 | Fibroblastos embrionarios de ratón (MEF) | Extremo único | 40 pb | |
GSM1480977 | SRR1553133 | DKOsiRNA_1 | Mbnl 1/2 doble knockout con Mbnl 3 siRNA (KD) | Rep 1 | Fibroblastos embrionarios de ratón (MEF) | Extremo único | 40 pb | |
GSM1480978 | SRR1553134 | DKOsiRNA_2 | Mbnl 1/2 doble knockout con Mbnl 3 siRNA (KD) | Rep 2 | Fibroblastos embrionarios de ratón (MEF) | Extremo único | 36 pb | |
GSM1480979 | SRR1553135 | DKONTsiRNA_1 | Mbnl 1/2 doble knockout con siRNA no dirigido (Ctrl) | Rep 1 | Fibroblastos embrionarios de ratón (MEF) | Extremo único | 40 pb | |
GSM1480980 | SRR1553136 | DKONTsiRNA_2 | Mbnl 1/2 doble knockout con siRNA no dirigido (Ctrl) | Rep 2 | Fibroblastos embrionarios de ratón (MEF) | Extremo único | 40 pb |
Tabla 1. Resumen de los conjuntos de datos RNA-Seq y PolyA-seq utilizados para el análisis.
1. Instalación de herramientas y paquetes R utilizados en el análisis
conda install -c daler sratoolkit
conda install -c conda-forge parallel
conda install -c bioconda star bowtie fastqc rmats rmats2sashimiplot samtools fasterq-dump cutadapt bedtools deeptools
bioc_packages<- c("DEXSeq", "Rsubread", "EnhancedVolcano", "edgeR", "limma", "maser","GenomicRanges")
packages<- c("magrittr", "rtracklayer", "tidyverse", "openxlsx", "BiocManager")
#Install if not already installed
installed_packages<-packages%in% rownames(installed.packages())
installed_bioc_packages<-bioc_packages%in% rownames(installed.packages())
if(any(installed_packages==FALSE)) {
install.packages(packages[!installed_packages],dependencies=TRUE)
BiocManager::install(packages[!installed_bioc_packages], dependencies=TRUE)
}
2. Análisis de empalme alternativo (AS) utilizando RNA-seq
seq 10261601 10261606 | parallel prefetch SRR{}
parallel -j 3 fastq-dump --gzip --skip-technical --read-filter pass --dumpbase --split-e --clip --origfmt {} :::
wget -nv -O annotation.gtf.gz http://ftp.ensembl.org/pub/release-103/gtf/mus_musculus/Mus_musculus.GRCm39.103.gtf.gz \ && gunzip -f annotation.gtf.gz
wget -nv -O genome.fa.gz http://ftp.ensembl.org/pub/release-103/fasta/mus_musculus/dna/Mus_musculus.GRCm39.dna.primary_assembly.fa.gz \ && gunzip -f genome.fa.gz
GTF=$(readlink -f annotation.gtf)
GENOME=$(readlink -f genome.fa)
mkdir fastqc_out
parallel "fastqc {} -o fastqc_out" ::: $RAW_DATA/*.fastq.gz
#Build STAR index
GDIR=STAR_indices
mkdir $GDIR
STAR --runMode genomeGenerate --genomeFastaFiles $GENOME --sjdbGTFfile $GTF --runThreadN 8 --genomeDir $GDIR
ODIR=results/mapping
mkdir -p $ODIR
#Align reads to the genome
for fq1 in $RAW_DATA/*R1.fastq.gz;
do
fq2=$(echo $fq1| sed 's/1.fastq.gz/2.fastq.gz/g');
OUTPUT=$(basename ${fq1}| sed 's/R1.fastq.gz//g');
STAR --genomeDir $GDIR \
--runThreadN 12 \
--readFilesCommand zcat \
--readFilesIn ${fq1}${fq2}\
--outFileNamePrefix $ODIR\/${OUTPUT} \
--outSAMtype BAM SortedByCoordinate \
--outSAMunmapped Within \
--outSAMattributes Standard
Done
Rscript prepare_mm_exon_annotation.R annotation.gtf
packages<- c("Rsubread","tidyverse", "magrittr", "EnhancedVolcano", "edgeR","openxlsx")
invisible(lapply(packages, library, character.only=TRUE))
load("mm_exon_anno.RData")
countData <- dir("bams", pattern=".bam$", full.names=T) %>%
featureCounts(annot.ext=anno,
isGTFAnnotationFile=FALSE,
minMQS=0,useMetaFeatures=FALSE,
allowMultiOverlap=TRUE,
largestOverlap=TRUE,
countMultiMappingReads=FALSE,
primaryOnly=TRUE,
isPairedEnd=TRUE,
nthreads=12)
# Non-specific filtering: Remove the exons with low counts
isexpr<- rownames(countData$counts)[rowSums(cpm(countData$counts)>1) >=3]
countData$counts<-countData$counts[rownames(countData$counts) %in%isexpr, ]
anno<-anno%>% filter(GeneID%in% rownames(countData$counts))
# Remove genes with only 1 site and NA in geneIDs
dn<-anno%>%group_by(GeneID)%>%summarise(nsites=n())%>% filter(nsites>1&!is.na(GeneID))
anno<-anno%>% filter(GeneID%in%dn$GeneID)
countData$counts<-countData$counts[rownames(countData$counts) %in%anno$GeneID, ]
library(DEXSeq)
sampleTable<-data.frame(row.names= c("Mbnl1KO_Thymus_1", "Mbnl1KO_Thymus_2", "Mbnl1KO_Thymus_3", "WT_Thymus_1", "WT_Thymus_2", "WT_Thymus_3"), condition= rep(c("Mbnl1_KO", "WT"),c(3,3)), libType= rep(c("paired-end")))
exoninfo<-anno[anno$GeneID%in% rownames(countData$counts),]
exoninfo<-GRanges(seqnames=anno$Chr,
ranges=IRanges(start=anno$Start, end=anno$End, width=anno$Width),strand=Rle(anno$Strand))
mcols(exoninfo)$TranscriptIDs<-anno$TranscriptIDs
mcols(exoninfo)$Ticker<-anno$Ticker
mcols(exoninfo)$ExonID<-anno$ExonID
mcols(exoninfo)$n<-anno$n
mcols(exoninfo)$GeneID<-anno$GeneID
transcripts_l= strsplit(exoninfo$TranscriptIDs, "\\,")
save(countData, sampleTable, exoninfo, transcripts_l, file="AS_countdata.RData")
dxd<-DEXSeqDataSet(countData$counts,sampleData=sampleTable, design=~sample+exon+condition:exon,featureID=exoninfo$ExonID,groupID=exoninfo$GeneID,featureRanges=exoninfo, transcripts=transcripts_l)
dxd %<>% estimateSizeFactors %>% estimateDispersions %T>% plotDispEsts
dxd%<>%testForDEU%>%estimateExonFoldChanges(fitExpToVar=
"condition")#Estimate fold changes
dxr=DEXSeqResults(dxd)
plotDEXSeq(dxr,"Wnk1", displayTranscripts=TRUE, splicing=TRUE,legend
=TRUE,cex.axis=1.2,cex=1.3,lwd=2)
library(limma)
library(edgeR)
mycounts=countData$counts
#Change the rownames of the countdata to exon Ids instead of genes for unique rownames.
rownames(mycounts) = exoninfo$ExonID
dge<-DGEList(counts=mycounts)
#Filtering
isexpr<- rowSums(cpm(dge)>1) >=3
dge<-dge[isexpr,,keep.lib.sizes=FALSE]
#Extract the exon annotations for only transcripts meeting non-specific filter
exoninfo=anno%>% filter(ExonID%in% rownames(dge$counts))
#Convert the exoninfo into GRanges object
exoninfo1<-GRanges(seqnames=exoninfo$Chr,
ranges=IRanges(start=exoninfo$Start, end=exoninfo$End, width=exoninfo$Width),strand=Rle(exoninfo$Strand))
mcols(exoninfo1)$TranscriptIDs<-exoninfo$TranscriptIDs
mcols(exoninfo1)$Ticker<-exoninfo$Ticker
mcols(exoninfo1)$ExonID<-exoninfo$ExonID
mcols(exoninfo1)$n<-exoninfo$n
mcols(exoninfo1)$GeneID<-exoninfo$GeneID
transcripts_l= strsplit(exoninfo1$TranscriptIDs, "\\,")
dge<-calcNormFactors(dge)
Treat<- factor(sampleTable$condition)
design<- model.matrix(~0+Treat)
colnames(design) <- levels(Treat)
v<-voom(dge,design,plot=FALSE)
fit<-lmFit(v,design)
fit<-eBayes(fit)
colnames(fit)
cont.matrix<-makeContrasts(
Mbnl1_KO_WT=Mbnl1_KO-WT,
levels=design)
fit2<-contrasts.fit(fit,cont.matrix)
ex<-diffSplice(fit2,geneid=exoninfo$GeneID,exonid=exoninfo$ExonID)
ts<-topSplice(ex,n=Inf,FDR=0.1, test="t", sort.by="logFC")
tg<-topSplice(ex,n=Inf,FDR=0.1, test="simes")
plotSplice(ex,geneid="Wnk1", FDR=0.1)
#Volcano plot
EnhancedVolcano(ts,lab=ts$ExonID,selectLab= head((ts$ExonID),2000), xlab= bquote(~Log[2]~'fold change'), x='logFC', y='P.Value', title='Volcano Plot', subtitle='Mbnl1_KO vs WT (Limma_diffSplice)', FCcutoff=2, labSize=4,legendPosition="right", caption= bquote(~Log[2]~"Fold change cutoff, 2; FDR 10%"))
mkdir rMATS_analysis
cd bams/
ls -pd "$PWD"/*| grep "WT"| tr '\n'','> Wt.txt
ls -pd "$PWD"/*| grep "Mb"| tr '\n'','> KO.txt
mv *.txt ../rMATS_analysis
python rmats-turbo/rmats.py --b1 KO.txt --b2 Wt.txt --gtf annotation.gtf -t paired --readLength 50 --nthread 8 --od rmats_out/ --tmp rmats_tmp --task pos
library(maser)
mbnl1<-maser("/rmats_out/", c("WT","Mbnl1_KO"), ftype="JCEC")
#Filtering out events by coverage
mbnl1_filt<-filterByCoverage(mbnl1,avg_reads=5)
#Top splicing events at 10% FDR
mbnl1_top<-topEvents(mbnl1_filt,fdr=0.1, deltaPSI=0.1)
mbnl1_top
#Check the gene events for a particular gene
mbnl1_wnk1<-geneEvents(mbnl1_filt,geneS="Wnk1", fdr=0.1, deltaPSI=0.1)
maser::display(mbnl1_wnk1,"SE")
plotGenePSI(mbnl1_wnk1,type="SE", show_replicates
=TRUE)
volcano(mbnl1_filt,fdr=0.1, deltaPSI=0.1,type="SE")
+xlab("deltaPSI")+ylab("Log10 Adj. Pvalue")+ggtitle("Volcano Plot of exon skipping events")
python ./src/rmats2sashimiplot/rmats2sashimiplot.py --b1 ../bams/WT_Thymus_1.bam,../bams/WT_Thymus_2.bam,../bams/WT_Thymus_3.bam --b2 ../bams/Mbnl1KO_Thymus_1.bam,../bams/Mbnl1KO_Thymus_2.bam,../bams/Mbnl1KO_Thymus_3.bam -t SE -e ../rMATS_analysis/rmats_out/SE.MATS.JC.txt --l1 WT --l2 Mbnl1_KO --exon_s 1 --intron_s 5 -o ../rMATS_analysis/rmats2shasmi_output
3. Análisis alternativo de poliadenilación (APA) utilizando secuenciación de extremo 3'
anno<- read.table(file= "flanking60added.pA_annotation.bed",
stringsAsFactors=FALSE, check.names=FALSE, header=FALSE, sep="")
colnames(anno) <- c("chrom", "chromStart", "chromEnd", "name", "score", "strand", "rep", "annotation", "gene_name", "gene_id")
anno<- dplyr::select(anno,name,chrom, chromStart,chromEnd, strand,gene_id,gene_name,rep)
colnames(anno) <- c("GeneID", "Chr", "Start", "End", "Strand", "Ensembl", "Symbol", "repID")
countData<- dir("bamfiles", pattern="sorted.bam$", full.names=TRUE) %>%
# Read all bam files as input for featureCounts
featureCounts(annot.ext=anno, isGTFAnnotationFile= FALSE,minMQS=0,useMetaFeatures= TRUE,allowMultiOverlap=TRUE, largestOverlap= TRUE,strandSpecific=1, countMultiMappingReads =TRUE,primaryOnly= TRUE,isPairedEnd= FALSE,nthreads=12)%T>%
save(file="APA_countData.Rdata")
load(file= "APA_countData.Rdata")# Skip this step if already loaded
# Non-specific filtering: Remove the pA sites not differentially expressed in the samples
countData<-countData$counts%>%as.data.frame%>% .[rowSums(edgeR::cpm(.)>1) >=2, ]
anno%<>% .[.$GeneID%in% rownames(countData), ]
# Remove genes with only 1 site and NA in geneIDs
dnsites<-anno%>%group_by(Symbol)%>%summarise(nsites=n())%>% filter(nsites>1&!is.na(Symbol))
anno<-anno%>% filter(Symbol%in%dnsites$Symbol)
countData<-countData[rownames(countData) %in%anno$GeneID, ]
c("DEXSeq", "GenomicRanges") %>% lapply(library, character.only=TRUE) %>%invisible
sampleTable1<- data.frame(row.names= c("WT_1","WT_2","DKO_1","DKO_2"),
condition= c(rep("WT", 2), rep("DKO", 2)),
libType= rep("single-end", 4))
# Prepare the GRanges object for DEXSeqDataSet object construction
PASinfo <- GRanges(seqnames = anno$Chr,
ranges = IRanges(start = anno$Start, end = anno$End),strand = Rle(anno$Strand))
mcols(PASinfo)$PASID<-anno$repID
mcols(PASinfo)$GeneEns<-anno$Ensembl
mcols(PASinfo)$GeneID<-anno$Symbol
# Prepare the new feature IDs, replace the strand information with letters to match the current pA site clusterID
new.featureID <- anno$Strand %>% as.character %>% replace(. %in% "+", "F") %>% replace(. %in% "-", "R") %>% paste0(as.character(anno$repID), .)
# Select the read counts of the condition WT and DKO
countData1<- dplyr::select(countData, SRR1553129.sorted.bam, SRR1553130.sorted.bam, SRR1553131.sorted.bam, SRR1553132.sorted.bam)
# Rename the columns of countData using sample names in sampleTable
colnames(countData1) <- rownames(sampleTable1)
dxd1<-DEXSeqDataSet(countData=countData1,
sampleData=sampleTable1,
design=~sample+exon+condition:exon,
featureID=new.featureID,
groupID=anno$Symbol,
featureRanges=PASinfo)
dxd1$condition<- factor(dxd1$condition, levels= c("WT", "DKO"))
# The contrast pair will be "DKO - WT"
dxd1 %<>% estimateSizeFactors %>% estimateDispersions %T>% plotDispEsts
dxd1 %<>% testForDEU %>% estimateExonFoldChanges(fitExpToVar = "condition")
dxr1 <- DEXSeqResults(dxd1)
dxr1
mcols(dxr1)$description
table(dxr1$padj<0.1) # Check the number of differential pA sites (FDR < 0.1)
table(tapply(dxr1$padj<0.1, dxr1$groupID, any)) # Check the number of gene overlapped with differential pA site
# Select the top 100 significant differential pA sites ranked by FDR
topdiff.PAS<- dxr1%>%as.data.frame%>%rownames_to_column%>%arrange(padj)%$%groupID[1:100]
# Apply plotDEXSeq for the visualization of differential polyA usage
plotDEXSeq(dxr1,"S100a7a", legend=TRUE, expression=FALSE,splicing=TRUE, cex.axis=1.2, cex=1.3,lwd=2)
# Apply perGeneQValue to check the top genes with differential polyA site usage
dxr1%<>% .[!is.na(.$padj), ]
dgene<- data.frame(perGeneQValue= perGeneQValue (dxr1)) %>%rownames_to_column("groupID")
dePAS_sig1<-dxr1%>% data.frame() %>%
dplyr::select(-matches("dispersion|stat|countData|genomicData"))%>%
inner_join(dgene)%>%arrange(perGeneQValue)%>%distinct()%>%
filter(padj<0.1)
# Apply EnhancedVolcano package to visualise differential polyA site usage
"EnhancedVolcano"%>% lapply(library, character.only=TRUE) %>%invisible
EnhancedVolcano(dePAS_sig1, lab=dePAS_sig1$groupID, x='log2fold_DKO_WT',
y='pvalue',title='Volcano Plot',subtitle='DKO vs WT',
FCcutoff=1,labSize=4, legendPosition="right",
caption= bquote(~Log[2]~"Fold change cutoff, 1; FDR 10%"))
contrast.matrix<-makeContrasts(DKO_vs_WT=DKO-
WT,Ctrl_vs_DKO=Ctrl-DKO,
KD_vs_Ctrl=KD-Ctrl,KD_vs_DKO=KD-DKO,levels=design)
fit2<-fit%>%contrasts.fit(contrast.matrix)%>%eBayes
summary(decideTests(fit2))
ex<-diffSplice(fit2,geneid=anno$Symbol,exonid=new.featureID)
topSplice(ex) #Check the top significant results with topSplice
sig1<-topSplice(ex,n=Inf,FDR=0.1,coef=1, test="t", sort.by="logFC")
sig1.genes<-topSplice(ex,n=Inf,FDR=0.1,coef=1, test="simes")
plotSplice(ex, coef=1,geneid="S100a7a", FDR = 0.1)
plotSplice(ex,coef=1,geneid="Tpm1", FDR = 0.1)
plotSplice(ex,coef=1,geneid="Smc6", FDR = 0.1)
EnhancedVolcano(sig1, lab=sig1$GeneID,xlab= bquote(~Log[2]~'fold change'),
x='logFC', y='P.Value', title='Volcano Plot', subtitle='DKO vs WT',
FCcutoff=1, labSize=6, legendPosition="right")
Después de ejecutar el flujo de trabajo paso a paso anterior, los resultados del análisis AS y APA y los resultados representativos se presentan en forma de tablas y gráficos de datos, generados de la siguiente manera.
COMO:
El resultado principal del análisis AS (Tabla suplementaria 1 para diffSplice; Tabla 2 para DEXSeq) es una lista de exones que muestran el uso diferencial entre condiciones, y una lista de genes que muestran una act...
En este estudio, evaluamos enfoques basados en exones y eventos para detectar AS y APA en datos masivos de RNA-Seq y secuenciación final 3'. Los enfoques de EA basados en exones producen tanto una lista de exones expresados diferencialmente como una clasificación a nivel de gen ordenada por la significación estadística de la actividad general de empalme diferencial a nivel de gen (Tablas 1-2, 4-5). Para el paquete diffSplice, el uso diferencial se determina ajustando modelos lineales ponderados a niv...
Los autores no tienen nada que revelar.
Este estudio fue apoyado por una beca futura del Consejo Australiano de Investigación (ARC) (FT16010043) y ANU Futures Scheme.
Name | Company | Catalog Number | Comments |
Not relevent for computational study |
Solicitar permiso para reutilizar el texto o las figuras de este JoVE artículos
Solicitar permisoExplorar más artículos
This article has been published
Video Coming Soon
ACERCA DE JoVE
Copyright © 2025 MyJoVE Corporation. Todos los derechos reservados