文章信息
文獻(xiàn)標(biāo)題:trumpet: transcriptome-guided quality assessment of m6A-seq data
發(fā)表雜志:BMC Bioinformatics
發(fā)表時(shí)間:13 July 2018
原文doi: https://doi.org/10.1186/s12859-018-2266-3
關(guān)于作者-Jia Meng
最近做m6A分析研發(fā),發(fā)現(xiàn)搜到的軟件都是他們家的,就去搜了一下這個(gè)大佬
主頁(yè)介紹如下:https://www.xjtlu.edu.cn/en/departments/academic-departments/biological-sciences/staff/jia-meng
實(shí)驗(yàn)室主頁(yè):https://www.xjtlu.edu.cn/zh/news/2019/02/m6a
其中關(guān)于Peak識(shí)別發(fā)表的軟件一部分如下:
可以說(shuō)是非常高產(chǎn)了,其中exomePeak的升級(jí)版本預(yù)計(jì)今年5月份見(jiàn)刊。
文獻(xiàn)摘要
RNA甲基化免疫沉淀測(cè)序(MeRIP-seq或m6A-seq)已被廣泛用于分析RNA N6-腺苷甲基化在轉(zhuǎn)錄組中的分布。然而,由于RNA分子的固有特性以及該技術(shù)復(fù)雜的操作過(guò)程,m6A-seq數(shù)據(jù)往往存在各種缺陷。對(duì)m6A-seq數(shù)據(jù)的質(zhì)量進(jìn)行評(píng)估需要一種方便、全面的工具,以確保它們適合后續(xù)的分析。
從技術(shù)方面,m6A-seq可以認(rèn)為是ChIP-Seq和RNA-Seq的結(jié)合。因此,通過(guò)有效地結(jié)合兩種技術(shù)的數(shù)據(jù)質(zhì)量評(píng)估指標(biāo),我們開發(fā)了用于m6A-seq數(shù)據(jù)質(zhì)量評(píng)估的trumpet R包。trumpet包從m6A-seq數(shù)據(jù)中獲取比對(duì)產(chǎn)生的BAM文件以及轉(zhuǎn)錄組信息作為輸入,生成HTML格式的質(zhì)量評(píng)估報(bào)告。
除此之外,還可以用于其他RNA免疫沉淀測(cè)序技術(shù)數(shù)據(jù)評(píng)估如m1A-seq, CeU-Seq, Ψ-seq等。
主要評(píng)價(jià)指標(biāo)
1.測(cè)序數(shù)據(jù)統(tǒng)計(jì)
這個(gè)地方主要通過(guò)計(jì)算read count來(lái)獲得對(duì)樣本的一個(gè)全面了解,這可能是檢查樣本質(zhì)量的最基本方法。低reads count或比對(duì)到特定基因組區(qū)域的reads比例差異過(guò)大可能與低數(shù)據(jù)質(zhì)量有關(guān),這是由于多樣本混庫(kù)測(cè)序不平衡、DNA污染或?qū)嶒?yàn)過(guò)程中的其他偏差造成的。
下表來(lái)源于小鼠中腦3個(gè)Fto基因敲除和3個(gè)對(duì)照樣本的統(tǒng)計(jì)結(jié)果(GSE47217),其中IP2樣本3'UTR的reads相比其他樣本過(guò)少,可能是由于樣本制備過(guò)程中 3′ bias 造成的。
2.read coverage評(píng)價(jià)
由于基因差異表達(dá), PCR artifacts和randomness,可能會(huì)造成全轉(zhuǎn)錄組read覆蓋度的異質(zhì)性。下表中,相對(duì)于其他樣本,IP2樣本的外顯子區(qū)域read覆蓋度高,在區(qū)域覆蓋度 > 104 reads 時(shí)更顯著。這表明read覆蓋度的異質(zhì)性很高,這可能表明在樣品制備或測(cè)序過(guò)程中存在潛在的PCR rtifacts。
這個(gè)現(xiàn)象在 FASTQC評(píng)估結(jié)果中也得到了驗(yàn)證: IP2 has highest Kmer content among the samples (fold enrichment of the most over-represented Kmer: 33.31 in IP2 vs 23.61 and 27.63 in IP1 and IP3)。
PCR artifacts 可能進(jìn)一步加劇了m6 A-seq實(shí)驗(yàn)reads覆蓋的異質(zhì)性。
3.reads分布可視化
RNA m6A一般分布在起始密碼子和終止密碼子附近。這個(gè)結(jié)果展示了(5’UTR, CDS and 3’UTR)這三個(gè)區(qū)域的m6A分布。
4.使用ESES評(píng)估免疫沉淀反應(yīng)效率
m6A-Seq數(shù)據(jù)的一個(gè)主要評(píng)價(jià)指標(biāo)就是免疫沉淀反應(yīng)效率,只要體現(xiàn)在免疫沉淀信號(hào)的富集程度。
為了評(píng)估IP樣本中的m6A信號(hào),trumpet包使用 ESEC:exome signal extraction scaling這個(gè)指標(biāo)。該指來(lái)源于評(píng)估ChIP-seq數(shù)據(jù)的信號(hào)SES方法,ESES不同于SES主要有兩點(diǎn):
首先,將SES方法中ChIP-seq數(shù)據(jù)的基因組背景替換為標(biāo)準(zhǔn)化的MeRIP-seq數(shù)據(jù)的基因特異性外顯子背景,排除不攜帶有意義信號(hào)的區(qū)域(內(nèi)含子和非基因區(qū)域)的影響。
其次,根據(jù)基因的表達(dá)水平對(duì)MeRIP-seq數(shù)據(jù)的read覆蓋進(jìn)行歸一化處理,以消除基因不同表達(dá)水平的影響。
我們可以看到第二個(gè)IP樣本(IP2)與其他樣本有很大的不同,這與之前的結(jié)果是一致的。
5.使用C-test評(píng)估m(xù)6A信號(hào)富集程度
此指標(biāo)也顯示IP2樣本異常,與之前的評(píng)估結(jié)果一致。
6.對(duì)樣本進(jìn)行層次聚類和PCA分析
我感覺(jué)這個(gè)結(jié)果有點(diǎn)充數(shù)了。。。主要用于樣本的一致性和可重復(fù)性評(píng)估。
7.特異基因的read覆蓋異質(zhì)性
在實(shí)際項(xiàng)目中,bam中比對(duì)的reads并不是均勻地分布在同一個(gè)基因上。IP 樣本中read覆蓋度的異質(zhì)性可能來(lái)源于m6A位點(diǎn)信號(hào)的富集,
坐標(biāo)軸分別表示:每個(gè)樣本中每一個(gè)gene的read count的均值和標(biāo)準(zhǔn)差。與IP樣本相比,input樣本的這個(gè)曲線相對(duì)更加平緩。
實(shí)現(xiàn)代碼
github:https://github.com/skyhorsetomoon/Trumpet
使用特別簡(jiǎn)單,輸入樣本的bam文件和一個(gè)gtf文件就行了
## All gone with one touch
rm(list=ls())
options(stringsAsFactors = F)
?
## 安裝
#devtools::install_github("skyhorsetomoon/Trumpet")
library(Trumpet)
?
## 使用R包中的示例數(shù)據(jù)
f1 <- system.file("extdata", "IP1.bam", package="Trumpet")
f2 <- system.file("extdata", "IP2.bam", package="Trumpet")
f3 <- system.file("extdata", "IP3.bam", package="Trumpet")
f4 <- system.file("extdata", "IP4.bam", package="Trumpet")
f5 <- system.file("extdata", "Input1.bam", package="Trumpet")
f6 <- system.file("extdata", "Input2.bam", package="Trumpet")
f7 <- system.file("extdata", "Input3.bam", package="Trumpet")
f8 <- system.file("extdata", "treated_IP1.bam", package="Trumpet")
f9 <- system.file("extdata", "treated_Input1.bam", package="Trumpet")
?
ip_bam <- c(f1,f2,f3,f4)
input_bam <- c(f5,f6,f7)
?
contrast_ip_bam <- c(f8)
contrast_input_bam <- c(f9)
?
## gtf文件
gtf <- system.file("extdata", "hg19toy.gtf", package="Trumpet")
?
?
## 生成HTML報(bào)告
trumpet_report <- Trumpet_report(IP_BAM = ip_bam,
Input_BAM = input_bam,
contrast_IP_BAM = contrast_ip_bam,
contrast_Input_BAM = contrast_input_bam,
condition1 = "untreated",
condition2 = "treat",
GENE_ANNO_GTF = gtf)
分析走到這里,出現(xiàn)了一個(gè)報(bào)錯(cuò):
上網(wǎng)查找原因,是因?yàn)檫@個(gè)trumpet包需要使用到Guitar包,額,然后我發(fā)現(xiàn)這個(gè)Guitar包也是他們課題組發(fā)的。這個(gè)包后來(lái)更新了,現(xiàn)在更新到了2.6.0,這個(gè)函數(shù)名字就變成了另外一個(gè)名字。這個(gè)問(wèn)題也有人在他們新開發(fā)的exomePeak2里面提到了,見(jiàn):https://github.com/ZW-xjtlu/exomePeak2/issues/1。
然后我想,那我用老版本的吧,找到了1.7.0版本:https://mirror.nju.edu.cn/bioconductor/3.2/bioc/html/Guitar.html,然后本地安裝:
install.packages("Guitar_1.7.0.tar.gz", repos = NULL, type = "source")
發(fā)現(xiàn)還是不行,就聯(lián)系了作者,作者給我了一個(gè)1.5.0的版本的:https://github.com/lzcyzm/Guitar,重新安裝:
#devtools::install_github("lzcyzm/Guitar")
library(Guitar)
package.version("Guitar")
[1] "1.5.0"
然后順利跑上了前面的代碼,生成了質(zhì)控報(bào)告。可以說(shuō)非常曲折了。這個(gè)1.5.0版本的,如果不是作者給我鏈接,我感覺(jué)我還真找不到。這個(gè)包由于自發(fā)布之后,更新比較少,希望我們將這個(gè)包推薦給大家使用后,大家能多多給反饋,希望作者也能后續(xù)更新以便更多的人能使用上。
生成的網(wǎng)頁(yè)報(bào)告結(jié)果還是很不錯(cuò)的。
下面來(lái)看一眼生成的網(wǎng)頁(yè)版本的m6A-Seq質(zhì)控報(bào)告吧,默認(rèn)在輸出路徑下生成一個(gè)Trumpet_report.html。
報(bào)告上方有目錄鏈接,其實(shí)從這個(gè)地方,我們也可以學(xué)習(xí)作者的源代碼,看看怎么使用R語(yǔ)言生成html報(bào)告。
有比對(duì)結(jié)果統(tǒng)計(jì):
這個(gè)地方直接用read數(shù)而不是M為單位的我感覺(jué)會(huì)更直觀好一點(diǎn)。
read分布可視化:
m6A-Seq的peak一般在5'UTR和終止密碼子附近有富集【doi:10.1038/nature11112 ,doi:10.1016/j.cell.2012.05.003】。
還有一些其他比較有意思的圖,大家可以自行去看看啦。
m6A分析流程后續(xù)會(huì)陸陸續(xù)續(xù)更新,請(qǐng)期待吧。