復現(xiàn)-jimmy教程之 外顯子可視化

\color{blue}{DEXSeq 外顯子表達可視化}

外顯子定量 可視化


DEXSeq包是用來分析RNA-seq實驗數(shù)據(jù)中exon的差異钉凌;
這里exon的差異指的是由于實驗條件導致的相對不同的exon娜扇,DEU(By differential exon usage)定義如下:

  • 針對每個樣本的外顯子(或部分外顯子)跑筝,我們對比對到該外顯子的read數(shù)和比對到同一基因(包含多個轉(zhuǎn)錄本)其他外顯子的read數(shù),
  • 計算這兩個統(tǒng)計數(shù)的比值滚局,最后根據(jù)不同實驗條件下的比值變化情況工猜,推導出相對的exon usage改變摊趾。
  • 對于基因內(nèi)的一個外顯子币狠,該exon同步于該exon被剪接到轉(zhuǎn)錄組(可變剪接)的比例,它也包含了發(fā)生在轉(zhuǎn)錄本5 ‘端和3’端的可導致轉(zhuǎn)錄本邊界的差異性的exon usage的可變剪接砾层。因此漩绵,DEU(By differential exon usage)相比于可變剪接更直觀。

Attention:

  • DEXSeq實際上并不是使用比值(比率)大小來計算分析肛炮,而是使用比值中的分子和分母數(shù)目來分析差異的水平止吐;
  • DEXSeq并不局限于二個組的比較,它針對復雜的實驗設(shè)計侨糟,使用廣義線性模型來帶入類似方差分析最終實現(xiàn)差異性的分析碍扔。
  • 在轉(zhuǎn)換gene.gtf生成gff過程中,可能會遇到重疊的基因粟害。假如兩個基因在同一條鏈上蕴忆,且外顯子區(qū)間重疊了颤芬,該腳本會默認的將兩個基因合為單個”aggregate_gene”悲幅。
    如果不想使用這種處理辦法,那么在轉(zhuǎn)換時加上參數(shù) -r no站蝠,那么來自不同基因重合的外顯子就會被跳過汰具。

分析流程

1.文件準備

  • 輸入文件:
    gene.gtf,sample.bam菱魔,sample.txt
  • 輸出文件:
    sample.exon.counts.txt留荔,diffgene&allgene_html
  • 軟件:
    python,HTSeq,DESeq
##Python
pip install HTSeq
---
##R
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("DEXSeq")
BiocManager::install("pasilla")

2.分析
整理數(shù)據(jù),準備3類輸入文件

  • 首先是counts矩陣:
    inDir <- system.file("extdata", package="pasilla")
    countFiles <- list.files(inDir, pattern="fb.txt$", full.names=TRUE)
##countFiles
Phvul.001G000400:001    88
Phvul.001G000400:002    2
Phvul.001G000400:005    15

## 簡單看一下每個樣本的數(shù)據(jù)要求聚蝶,其實就是每個基因的每個外顯子的reads數(shù)量
counts.txt

末尾冗余行太多的話建議刪除
包自帶python腳本可以定量杰妓,HTseq-count軟件也可以

  • gtf格式的基因組注釋文件
    gffFile <- list.files(inDir, pattern="gff$", full.names=TRUE)
##gffFile
Chr01   dexseq_prepare_annotation.py    aggregate_gene  706 6715    .   -   .   gene_id "Phvul.001G000400"
Chr01   dexseq_prepare_annotation.py    exonic_part 706 1266    .   -   .   transcripts "Phvul.001G000400"; exonic_part_number "001"; gene_id "Phvul.001G000400"
Chr01   dexseq_prepare_annotation.py    exonic_part 1705    1945    .   -   .   transcripts "Phvul.001G000400"; exonic_part_number "002"; gene_id "Phvul.001G000400"
##注意,如果是自己的數(shù)據(jù)的話碘勉,比如之前示例使用的是bean.gene.gtf巷挥,這里就是bean.gff
  • 最后是分組文件
##實驗設(shè)計
sampleTable <- read.delim("sample.group.txt",sep="\t",header=T,row.names=1)
sampleTable
##            condition
## treated1   knockdown
## treated2   knockdown
## treated3   knockdown
## untreated1   control
## untreated2   control
## untreated3   control
## untreated4   control

構(gòu)造DEXSeqDataSet對象
就是利用上面準備好的3類文件即可

dxd <- DEXSeqDataSetFromHTSeq(
   countFiles,
   sampleData=sampleTable,
   design= ~sample + exon + condition:exon,
   flattenedfile=gffFile
   )
## converting counts to integer mode
dxd
## class: DEXSeqDataSet 
## dim: 70463 14 
## metadata(1): version
## assays(1): counts
## rownames(70463): FBgn0000003:E001 FBgn0000008:E001 ...
##   FBgn0261575:E001 FBgn0261575:E002
## rowData names(5): featureID groupID exonBaseMean exonBaseVar
##   transcripts
## colnames: NULL
## colData names(3): sample condition exon

對自己的數(shù)據(jù),完全模仿這個形式即可

  • 做差異分析验靡,并解讀結(jié)果,這一步較慢
dxr <- DEXSeq(dxd)
## Warning in MulticoreParam(workers = 1): MulticoreParam() not supported on
## Windows, use SnowParam()
## using supplied model matrix
## using supplied model matrix
## using supplied model matrix
## 一步法做差異分析倍宾,分步法做差異分析比較繁瑣復雜。
###結(jié)果表頭
##  [1] "group/gene identifier"                                       
##  [2] "feature/exon identifier"                                     
##  [3] "mean of the counts across samples in each feature/exon"      
##  [4] "exon dispersion estimate"                                    
##  [5] "LRT statistic: full vs reduced"                              
##  [6] "LRT p-value: full vs reduced"                                
##  [7] "BH adjusted p-values"                                        
##  [8] "exon usage coefficient"                                      
##  [9] "exon usage coefficient"                                      
## [10] "relative exon usage fold change"                             
## [11] "GRanges object of the coordinates of the exon/feature"       
## [12] "matrix of integer counts, of each column containing a sample"
## [13] "list of transcripts overlapping with the exon"
  • 指定基因進行可視化
plotDEXSeq( dxr, "FBgn0000210", legend=TRUE, cex.axis=1.2, cex=1.3,
            lwd=2 )
## visualize the transcript models
plotDEXSeq( dxr, "FBgn0000210", displayTranscripts=TRUE, legend=TRUE,
            cex.axis=1.2, cex=1.3, lwd=2 )
plotDEXSeq( dxr, "FBgn0000210", expression=FALSE, norCounts=TRUE,
            legend=TRUE, cex.axis=1.2, cex=1.3, lwd=2 )
plotDEXSeq( dxr, "FBgn0000210", expression=FALSE, splicing=TRUE,
            legend=TRUE, cex.axis=1.2, cex=1.3, lwd=2 ) 
##可視化全部是顯著差異基因
##所有的顯著性差異的基因的相關(guān)圖片生成一個網(wǎng)頁胜嗓。
DEXSeqHTML( dxr, FDR=0.1, color=c("#FF000080", "#0000FF80") )

*# 并行分析高职,多差異分組

DEXSeq 分析的計算量可能很大,尤其是對于包含大量樣本的數(shù)據(jù)集或包含具有大量外顯子基因的基因組而言辞州。
我們使用包BiocParallel怔锌,調(diào)用BPPARAM=函數(shù)的參數(shù)estimateDispersions()testForDEU()以及estimateExonFoldChanges()

BPPARAM = MultiCoreParam(4)
dxd = estimateSizeFactors( dxd )
dxd = estimateDispersions( dxd, BPPARAM=BPPARAM)
dxd = testForDEU( dxd, BPPARAM=BPPARAM)
dxd = estimateExonFoldChanges(dxd, BPPARAM=BPPARAM)
  • 表格數(shù)據(jù)導出
    write.table(dxr, "DEXSeq_results.xls" , sep="\t", col.names=T, row.names = T)

個人示例

/public/cluster2/works/lipeng/RNA_seq/test/RNAedit/DEX/

image.png

python /path/to/library/DEXSeq/python_scripts/dexseq_prepare_annotation.py gene.gtf gene.gff

htseq-count -i exon_id -f bam -s reverse -r name sample.bam genome/gene.gff >sample.counts.txt
#R
suppressPackageStartupMessages(library("DEXSeq"))
suppressPackageStartupMessages(library("pasilla"))
countFiles <- list.files("./", pattern="counts.txt$", full.names=TRUE)
gffFile <- list.files("./", pattern="gff$", full.names=TRUE)
sampleTable <- read.table("samplegroup",sep="\t",header=T,row.names=1)
dxd <- DEXSeqDataSetFromHTSeq(
  countFiles,
  sampleData=sampleTable,
  design= ~sample + exon + condition:exon,
  flattenedfile=gffFile
)
###dxd <- estimateSizeFactors(dxd) #第一步
###dxd <- estimateDispersions(dxd) #第二步变过,此時可以使用plotDispEsts(dxd)來觀察離散情況
###dxd <- testForDEU(dxd) #第三步,The function testForDEU performs these tests for each exon in each gene.
###dxd <- estimateExonFoldChanges(dxd, fitExptoVar="condition")
###dxr1 <- DEXSeqResults(dxd) #可以使用plotMA(dxr1)來查看結(jié)果

dxr <- DEXSeq(dxd)
plotDEXSeq( dxr, "FBgn0000210", expression=FALSE, norCounts=TRUE,legend=TRUE, cex.axis=1.2, cex=1.3, lwd=2 )
write.table(dxr, "DEXSeq_results.xls" , sep="\t", col.names=T, row.names = T)
DEXSeqHTML( dxr,FDR = 0.1, color=c("#FF000080", "#0000FF80") )

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末产禾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子牵啦,更是在濱河造成了極大的恐慌亚情,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哈雏,死亡現(xiàn)場離奇詭異楞件,居然都是意外死亡,警方通過查閱死者的電腦和手機裳瘪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門土浸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人彭羹,你說我怎么就攤上這事黄伊。” “怎么了派殷?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵还最,是天一觀的道長。 經(jīng)常有香客問我毡惜,道長拓轻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任经伙,我火速辦了婚禮扶叉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己枣氧,他們只是感情好溢十,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著达吞,像睡著了一般茶宵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宗挥,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天乌庶,我揣著相機與錄音,去河邊找鬼契耿。 笑死瞒大,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的搪桂。 我是一名探鬼主播透敌,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼踢械!你這毒婦竟也來了酗电?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤内列,失蹤者是張志新(化名)和其女友劉穎撵术,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體话瞧,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡嫩与,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了交排。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片划滋。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖埃篓,靈堂內(nèi)的尸體忽然破棺而出处坪,到底是詐尸還是另有隱情,我是刑警寧澤架专,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布同窘,位于F島的核電站,受9級特大地震影響胶征,放射性物質(zhì)發(fā)生泄漏塞椎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一睛低、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦钱雷、人聲如沸骂铁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拉庵。三九已至,卻和暖如春套蒂,著一層夾襖步出監(jiān)牢的瞬間钞支,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工操刀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烁挟,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓骨坑,卻偏偏與公主長得像撼嗓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子欢唾,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1 外顯子和外顯子組 外顯子是蛋白質(zhì)的編碼區(qū)域且警,是這和生物基因組的一部分〗盖玻基因組中的全部外顯子稱為外顯子組斑芜。人類基...
    Y大寬閱讀 20,945評論 0 12
  • 夫妻債務(wù) 1月17日,最高人民法院發(fā)布《關(guān)于審理涉及夫妻債務(wù)糾紛案件適用法律有關(guān)問題的解釋》祟霍,中國夫妻共同債務(wù)的標...
    ba66caac7dd5閱讀 195評論 0 0
  • 今晚去上形體訓練課押搪,我們一起長大的幾個初中同學也在團隊,幾個要好的同學象姐妹一樣浅碾,每次見面都嘰嘰喳喳說個不停大州,今天...
    潘巧閱讀 200評論 1 0
  • 以下內(nèi)容選自得到專欄劉潤老師的5分鐘商學院,轉(zhuǎn)載請注明出處垂谢。 1.正確面對面試失敗者的重要性 如何面對面試失敗者朽肥,...
    Matrix101閱讀 315評論 0 0
  • 每周簡書: 人生沒有彩排,每一天都是現(xiàn)場直播伦吠。時間是公平的毒涧,每一個人一天都是二十四小時。為什么有些人很成功徙邻,有些人...
    龐鳳閱讀 77評論 0 0