Un abonnement à JoVE est nécessaire pour voir ce contenu. Connectez-vous ou commencez votre essai gratuit.
L’épissage alternatif (AS) et la polyadénylation alternative (APA) élargissent la diversité des isoformes de transcrits et de leurs produits. Ici, nous décrivons des protocoles bioinformatiques pour analyser les tests de séquençage d’ARN en vrac et de séquençage à 3' pour détecter et visualiser l’AS et l’APA variant selon les conditions expérimentales.
En plus de l’analyse typique du RNA-Seq pour mesurer l’expression génique différentielle (DGE) dans des conditions expérimentales / biologiques, les données RNA-seq peuvent également être utilisées pour explorer d’autres mécanismes de régulation complexes au niveau de l’exon. L’épissage alternatif et la polyadénylation jouent un rôle crucial dans la diversité fonctionnelle d’un gène en générant différentes isoformes pour réguler l’expression génique au niveau post-transcriptionnel, et limiter les analyses à l’ensemble du niveau du gène peut manquer cette couche régulatrice importante. Ici, nous démontrons des analyses détaillées étape par étape pour l’identification et la visualisation de l’utilisation différentielle des exons et des sites de polyadénylation dans toutes les conditions, en utilisant Bioconductor et d’autres packages et fonctions, y compris DEXSeq, diffSplice du package Limma et rMATS.
Le séquençage de l’ARN a été largement utilisé au fil des ans, généralement pour estimer l’expression différentielle des gènes et la découverte de gènes1. En outre, il peut également être utilisé pour estimer l’utilisation variable du niveau d’exon en raison de l’expression de gènes différentes isoformes, contribuant ainsi à une meilleure compréhension de la régulation des gènes au niveau post-transcriptionnel. La majorité des gènes eucaryotes génèrent différentes isoformes par épissage alternatif (AS) pour augmenter la diversité de l’expression de l’ARNm. Les événements AS peuvent être divisés en différents modèles: saut d’exons complets (SE) où un exon (« cassette ») est complètement retiré de la transcription avec ses introns flanquants; sélection alternative (donneur) du site d’épissage 5' (A5SS) et alternative 3' (accepteur) sélection du site d’épissage (A3SS) lorsque deux sites d’épissage ou plus sont présents à chaque extrémité d’un exon; rétention d’introns (RI) lorsqu’un intron est retenu dans le transcrit d’ARNm mature et exclusion mutuelle de l’utilisation d’exons (MXE) où un seul des deux exons disponibles peut être retenu à la fois 2,3. La polyadénylation alternative (APA) joue également un rôle important dans la régulation de l’expression génique en utilisant des sites poly (A) alternatifs pour générer plusieurs isoformes d’ARNm à partir d’un seul transcrit4. La plupart des sites de polyadénylation (pA) sont situés dans la région 3' non traduite (3' UTR), générant des isoformes d’ARNm avec diverses longueurs 3' UTR. Comme l’UTR 3' est le centre central pour la reconnaissance des éléments régulateurs, différentes longueurs 3' UTR peuvent affecter la localisation, la stabilité et la traduction de l’ARNm5. Il existe une classe de tests de séquençage d’extrémité 3' optimisés pour détecter l’APA qui diffèrent dans les détails du protocole6. Le pipeline décrit ici est conçu pour PolyA-seq, mais peut être adapté à d’autres protocoles comme décrit.
Dans cette étude, nous présentons un pipeline de méthodes d’analyse différentielledes exons 7,8 (Figure 1), qui peuvent être divisées en deux grandes catégories : basées sur les exons (DEXSeq9, diffSplice10) et basées sur les événements (analyse multivariée répliquée de l’épissage des transcriptions (rMATS)11). Les méthodes basées sur les exons comparent le changement de pli entre les conditions des exons individuels, à une mesure du changement global du pli des gènes pour appeler l’utilisation d’exons exprimée différentiellement, et à partir de là, calculez une mesure au niveau du gène de l’activité SA. Les méthodes basées sur les événements utilisent des lectures de jonction couvrant exon-intron pour détecter et classer des événements d’épissage spécifiques tels que le saut d’exon ou la rétention d’introns, et distinguer ces types AS dans la sortie3. Ainsi, ces méthodes fournissent des points de vue complémentaires pour une analyse complète de la SA12,13. Nous avons sélectionné DEXSeq (basé sur le package DESeq214 DGE) et diffSplice (basé sur le package Limma10 DGE) pour l’étude car ils sont parmi les packages les plus largement utilisés pour l’analyse d’épissage différentiel. rMATS a été choisi comme méthode populaire pour l’analyse basée sur les événements. Une autre méthode populaire basée sur les événements est MISO (Mixture of Isoforms)1. Pour l’APA, nous adaptons l’approche basée sur les exons.
Graphique 1. Pipeline d’analyse. Organigramme des étapes utilisées dans l’analyse. Les étapes comprennent : l’obtention des données, l’exécution de contrôles de qualité et d’alignement des lectures, suivis du comptage des lectures à l’aide d’annotations pour les exons, les introns et les sites pA connus, le filtrage pour supprimer les faibles nombres et la normalisation. Les données PolyA-seq ont été analysées pour d’autres sites pA à l’aide des méthodes diffSplice/DEXSeq, le RNA-Seq en vrac a été analysé pour l’épissage alternatif au niveau de l’exon avec les méthodes diffSplice/DEXseq et les événements AS analysés avec rMATS. Veuillez cliquer ici pour voir une version agrandie de cette figure.
Les données RNA-seq utilisées dans cette enquête ont été acquises à partir de Gene Expression Omnibus (GEO) (GSE138691)15. Nous avons utilisé les données de séquençage de l’ARN de souris de cette étude avec deux groupes de conditions : le type sauvage (WT) et le knockout de type 1 de type Muscleblind (Mbnl1 KO) avec trois réplications chacun. Pour démontrer l’analyse différentielle de l’utilisation du site de polyadénylation, nous avons obtenu des données PolyA-seq sur des fibroblastes embryonnaires de souris (MEF) (GEO Accession GSE60487)16. Les données comportent quatre groupes de conditions : Wild-type (WT), Muscleblind-like type1/type 2 double knockout (Mbnl1/2 DKO), Mbnl 1/2 DKO avec Mbnl3 knockdown (KD) et Mbnl1/2 DKO avec contrôle Mbnl3 (Ctrl). Chaque groupe de conditions se compose de deux répétitions.
Adhésion GEO | Numéro d’exécution SRA | Nom de l’échantillon | Condition | Répliquer | Tissu | Séquençage | Longueur de lecture | |
RNA-Seq | GSM4116218 | SRR10261601 | Mbnl1KO_Thymus_1 | Mbnl1 knockout | Rép. 1 | Thymus | Extrémité jumelée | 100 pb |
GSM4116219 | SRR10261602 | Mbnl1KO_Thymus_2 | Mbnl1 knockout | Rép. 2 | Thymus | Extrémité jumelée | 100 pb | |
GSM4116220 | SRR10261603 | Mbnl1KO_Thymus_3 | Mbnl1 knockout | Rép. 3 | Thymus | Extrémité jumelée | 100 pb | |
GSM4116221 | SRR10261604 | WT_Thymus_1 | Type sauvage | Rép. 1 | Thymus | Extrémité jumelée | 100 pb | |
GSM4116222 | SRR10261605 | WT_Thymus_2 | Type sauvage | Rép. 2 | Thymus | Extrémité jumelée | 100 pb | |
GSM4116223 | SRR10261606 | WT_Thymus_3 | Type sauvage | Rép. 3 | Thymus | Extrémité jumelée | 100 pb | |
3P-Seq | GSM1480973 | SRR1553129 | WT_1 | Type sauvage (WT) | Rép. 1 | Fibroblastes embryonnaires de souris (MEF) | Extrémité unique | 40 pb |
GSM1480974 | SRR1553130 | WT_2 | Type sauvage (WT) | Rép. 2 | Fibroblastes embryonnaires de souris (MEF) | Extrémité unique | 40 pb | |
GSM1480975 | SRR1553131 | DKO_1 | Mbnl 1/2 double knockout (DKO) | Rép. 1 | Fibroblastes embryonnaires de souris (MEF) | Extrémité unique | 40 pb | |
GSM1480976 | SRR1553132 | DKO_2 | Mbnl 1/2 double knockout (DKO) | Rép. 2 | Fibroblastes embryonnaires de souris (MEF) | Extrémité unique | 40 pb | |
GSM1480977 | SRR1553133 | DKOsiRNA_1 | Mbnl 1/2 double knockout avec Mbnl 3 siRNA (KD) | Rép. 1 | Fibroblastes embryonnaires de souris (MEF) | Extrémité unique | 40 pb | |
GSM1480978 | SRR1553134 | DKOsiRNA_2 | Mbnl 1/2 double knockout avec Mbnl 3 siRNA (KD) | Rép. 2 | Fibroblastes embryonnaires de souris (MEF) | Extrémité unique | 36 pb | |
GSM1480979 | SRR1553135 | DKONTsiRNA_1 | Mbnl 1/2 double knockout avec siRNA non ciblé (Ctrl) | Rép. 1 | Fibroblastes embryonnaires de souris (MEF) | Extrémité unique | 40 pb | |
GSM1480980 | SRR1553136 | DKONTsiRNA_2 | Mbnl 1/2 double knockout avec siRNA non ciblé (Ctrl) | Rép. 2 | Fibroblastes embryonnaires de souris (MEF) | Extrémité unique | 40 pb |
Tableau 1. Résumé des ensembles de données RNA-Seq et PolyA-seq utilisés pour l’analyse.
1. Installation des outils et des packages R utilisés dans l’analyse
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. Analyse d’épissage alternatif (AS) à l’aide du séquençage de l’ARN
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. Analyse alternative de polyadénylation (APA) utilisant le séquençage de l’extrémité 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")
Après avoir exécuté le flux de travail étape par étape ci-dessus, les résultats d’analyse AS et APA et les résultats représentatifs se présentent sous la forme de tableaux et de diagrammes de données, générés comme suit.
COMME:
Le principal résultat de l’analyse AS (tableau supplémentaire 1 pour diffSplice; Le tableau 2 pour DEXSeq) est une liste d’exons montrant une utilisation différentielle selon les conditions, et ...
Dans cette étude, nous avons évalué des approches basées sur les exons et les événements pour détecter l’AS et l’APA dans les données de séquençage massif de l’ARN-Seq et de l’extrémité 3'. Les approches AS basées sur les exons produisent à la fois une liste d’exons exprimés différentiellement et un classement au niveau du gène ordonné en fonction de la signification statistique de l’activité globale d’épissage différentiel au niveau du gène (tableaux 1-2, 4-5). Pour l...
Les auteurs n’ont rien à divulguer.
Cette étude a été financée par une bourse Future Fellowship (FT16010043) du Conseil australien de la recherche (ARC) et un programme ANU Futures.
Name | Company | Catalog Number | Comments |
Not relevent for computational study |
Demande d’autorisation pour utiliser le texte ou les figures de cet article JoVE
Demande d’autorisationExplorer plus d’articles
This article has been published
Video Coming Soon