全長(zhǎng)轉(zhuǎn)錄組 | 三代全長(zhǎng)轉(zhuǎn)錄組分析流程(PacBio & ONT )-- Bambu

今天我們繼續(xù)介紹一款使用三代全長(zhǎng)轉(zhuǎn)錄本數(shù)據(jù)進(jìn)行轉(zhuǎn)錄本注釋和定量的工具 - Bambu亿笤。來(lái)自新加坡科技研究局 (A-STAR) 的Jonathan G?ke團(tuán)隊(duì)(圖1)開發(fā)的長(zhǎng)度長(zhǎng)RNA-seq轉(zhuǎn)錄組分析工具Bambu,于2023年6月12日發(fā)表在《Nature Methods》雜志上内斯,題目為Context-aware transcript quantification from long-read RNA-seq data with Bambu蕴潦。該工具基于機(jī)器學(xué)習(xí)來(lái)識(shí)別和表征新轉(zhuǎn)錄本,從而能夠?qū)Σ煌锓N和樣本進(jìn)行適應(yīng)性分析嘿期。

圖1. Jonathan G?ke團(tuán)隊(duì)

大多數(shù)轉(zhuǎn)錄本定量方法依賴于固定的基因參考注釋文件品擎;然而,實(shí)際情況下的轉(zhuǎn)錄組是動(dòng)態(tài)的备徐,需要根據(jù)當(dāng)時(shí)的情境情況來(lái)判斷萄传,靜態(tài)轉(zhuǎn)錄組注釋文件包含了一些基因的非活躍轉(zhuǎn)錄本(isoforms),而對(duì)于另一些基因存在注釋不完整的情況蜜猾。Bambu秀菱,一種利用長(zhǎng)讀長(zhǎng)RNA-seq測(cè)序數(shù)據(jù),通過基于機(jī)器學(xué)習(xí)的轉(zhuǎn)錄本鑒定方法蹭睡,實(shí)現(xiàn)對(duì)實(shí)際測(cè)序數(shù)據(jù)里轉(zhuǎn)錄本的定量衍菱。為了識(shí)別新的轉(zhuǎn)錄本,Bambu 估計(jì)了新發(fā)現(xiàn)率(novel discovery rate)肩豁,用可解釋的脊串、精度校準(zhǔn)的單一參數(shù)替代了任意的單樣本閾值。Bambu 保留了全長(zhǎng)和獨(dú)特的轉(zhuǎn)錄本序列清钥,使其在存在非活躍轉(zhuǎn)錄本(isoforms) 的情況下能夠進(jìn)行準(zhǔn)確的定量琼锋。與現(xiàn)有的轉(zhuǎn)錄本鑒定方法相比,Bambu 在不損失靈敏性的情況下實(shí)現(xiàn)了更高的精度祟昭。依據(jù)實(shí)際數(shù)據(jù)情況的動(dòng)態(tài)注釋改善了新的和已知的轉(zhuǎn)錄本的定量缕坎。利用長(zhǎng)讀長(zhǎng)RNA測(cè)序數(shù)據(jù)和機(jī)器學(xué)習(xí),Bambu 促進(jìn)了準(zhǔn)確的轉(zhuǎn)錄本鑒定和定量 (圖2)篡悟。

圖2. Bambu文章摘要

一谜叹、軟件介紹

Bambu 是一個(gè)利用長(zhǎng)讀長(zhǎng)RNA-Seq數(shù)據(jù)進(jìn)行多樣本轉(zhuǎn)錄本鑒定和定量的 R包。在進(jìn)行序列比對(duì)后搬葬,可以使用Bambu 獲取已知和新轉(zhuǎn)錄本以及基因的表達(dá)量荷腊。Bambu 的輸出可以直接用于可視化和下游分析,例如差異基因表達(dá)或轉(zhuǎn)錄本使用情況等急凰。

Bambu 分析流程可以分成四步(圖3. a-d):首先女仰,采用概率模型,利用參考注釋、基因組序列以及從數(shù)據(jù)中提取的特征(詳細(xì)特征可見方法部分)來(lái)校正RNA連接(junction)區(qū)域或位點(diǎn)的比對(duì)董栽。使用相同剪切位點(diǎn)的校正序列被合并成一類序列 (Read class, RCs)码倦。第二步,整合來(lái)自所有樣本的合并序列(Read classes)锭碳,并對(duì)跨樣本間的新發(fā)現(xiàn)率(novel discovery rate袁稽,NDR)進(jìn)行計(jì)算。小于特定NDR閾值的Read class序列被歸為新的轉(zhuǎn)錄本擒抛,并將新注釋的轉(zhuǎn)錄本加入?yún)⒖嫁D(zhuǎn)錄本注釋中推汽,形成基于實(shí)際樣本的注釋庫(kù)(擴(kuò)展了原本的參考注釋)。第三步歧沪,利用擴(kuò)展參考基因注釋歹撒,將每一個(gè)Read class序列重新歸類標(biāo)注。在這個(gè)過程中诊胞,由于比對(duì)誤差造成的不精確的序列匹配可以被修正暖夭。第四步,使用擴(kuò)展參考基因注釋撵孤,對(duì)每一樣本中的轉(zhuǎn)錄本進(jìn)行最終的定量迈着,獲得基因/轉(zhuǎn)錄本的表達(dá)矩陣。

圖3. Bambu分析流程

二邪码、軟件安裝

Bambu: https://github.com/GoekeLab/bambu
版本:v3.2.4

1. 使用Bioconductor安裝Bambu

R中裕菠,或Rstudio,或Rstudio-server環(huán)境中運(yùn)行以下命令進(jìn)行安裝闭专,安裝完成如圖4所示奴潘。

if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")  #如果已經(jīng)安裝BiocManager可忽略此行命令
BiocManager::install("bambu")
圖4. Bambu的R包安裝

建議:因?yàn)槿L(zhǎng)轉(zhuǎn)錄組數(shù)據(jù)量一般較大以及計(jì)算量大,一般臺(tái)式機(jī)或者自己的筆記本電腦部署的本地R軟件影钉,可能導(dǎo)致占用大量?jī)?nèi)存和計(jì)算資源画髓。建議使用服務(wù)器,部署Rstudio-server斧拍,這樣就可以在服務(wù)器上進(jìn)行數(shù)據(jù)存儲(chǔ)和計(jì)算了雀扶。具體安裝部署步驟可參考官網(wǎng):https://posit.co/download/rstudio-server/杖小。

2. 測(cè)試Bambu的安裝

用自帶的測(cè)試數(shù)據(jù)確認(rèn)Bambu安裝成功肆汹。

#加載bambu軟件包
library(bambu)

#運(yùn)行以下命令進(jìn)行測(cè)序數(shù)據(jù),參考基因組予权,參考基因組注釋文件的導(dǎo)入昂勉,并進(jìn)行全長(zhǎng)轉(zhuǎn)錄組分析
test.bam <- system.file("extdata", "SGNex_A549_directRNA_replicate5_run1_chr9_1_1000000.bam", package = "bambu") #讀入測(cè)序數(shù)據(jù)

fa.file <- system.file("extdata", "Homo_sapiens.GRCh38.dna_sm.primary_assembly_chr9_1_1000000.fa", package = "bambu") #讀入?yún)⒖蓟蚪M

gtf.file <- system.file("extdata", "Homo_sapiens.GRCh38.91_chr9_1_1000000.gtf", package = "bambu") #讀入?yún)⒖蓟蚪M注釋文件

bambuAnnotations <- prepareAnnotations(gtf.file) #參考基因組注釋預(yù)處理

se <- bambu(reads = test.bam, annotations = bambuAnnotations, genome = fa.file) #全長(zhǎng)轉(zhuǎn)錄組分析

運(yùn)行完最后一行,得到 --- Start isoform quantification ------ Finished running Bambu ---扫腺,則說明Bambu運(yùn)行和安裝成功岗照。

三、軟件使用

默認(rèn)模式下輸入文件:

  • 經(jīng)過和參考基因組比對(duì)的序列文件,.bam文件格式攒至。
  • 參考基因組注釋文件厚者,.gtf文件。
  • 參考基因組文件迫吐,.fa文件库菲。
1. 準(zhǔn)備參考基因組比對(duì)序列文件

因?yàn)锽ambu說明文檔沒有提供比對(duì)方法,所以這里采用常用的長(zhǎng)度長(zhǎng)(long-read)比對(duì)軟件minimap2志膀。

#根據(jù)三代測(cè)序平臺(tái)和建庫(kù)方法選擇合適的運(yùn)行命令熙宇,一步法
$ minimap2 -ax splice:hq -uf ref.fa iso-seq.fq | samtools sort -@ 12 -o align.bam --write-index -        # PacBio Iso-seq/traditional cDNA
$ minimap2 -ax splice ref.fa nanopore-cdna.fa | samtools sort -@ 12 -o align.bam --write-index -      # Nanopore 2D cDNA-seq
$ minimap2 -ax splice -uf -k14 ref.fa direct-rna.fq | samtools sort -@ 12 -o align.bam --write-index -  # Nanopore Direct RNA-seq

#分步進(jìn)行示例
$ minimap2 -ax splice:hq -uf ref.fa iso-seq.fq | samtools view -@ 12 -bS | samtools sort -@ 12 -o align.bam        # PacBio Iso-seq/traditional cDNA
$ minimap2 -ax splice ref.fa nanopore-cdna.fa | samtools view -@ 12 -bS | samtools sort -@ 12 -o align.bam      # Nanopore 2D cDNA-seq
$ minimap2 -ax splice -uf -k14 ref.fa direct-rna.fq | samtools view -@ 12 -bS | samtools sort -@ 12 -o align.bam  # Nanopore Direct RNA-seq

#對(duì)bam文件進(jìn)行索引
$ samtools index align.bam

注意:

  • PacBio平臺(tái)和ONT平臺(tái)產(chǎn)生的數(shù)據(jù),具體參數(shù)有所不同溉浙,詳細(xì)請(qǐng)參考minimap2使用文檔烫止。
  • 這里使用的參考基因組和Bambu使用的要統(tǒng)一起來(lái)。
  • 需要提前安裝samtools戳稽,留意安裝版本馆蠕。
  • 因?yàn)閙inimap2輸出的是.sam文件格式,所以使用samtools.sam轉(zhuǎn)換成.bam惊奇,并且使用samtools sort 對(duì) .bam 進(jìn)行排序荆几,然后用samtools index進(jìn)行索引。上面展示了一步轉(zhuǎn).bam和分步轉(zhuǎn).bam的示例赊时。
  • samtools v1.18版本有--write-index - 選項(xiàng); samtools v1.9版本則沒有吨铸。
2. 讀取樣本序列.bam文件
#可同時(shí)讀入多個(gè)樣本文件
samples <- c(S1.bam, S1.bam, S1.bam)
3. 準(zhǔn)備參考基因組文件

如果人和小鼠可以在Gencode上下載,如遇到其它物種可以從Ensembl上下載祖秒。

4. 準(zhǔn)備參考基因組注釋
annotations <- prepareAnnotations( *.gft )

#保存注釋文件為rds文件
saveRDS(annotations, ”/path/to/annotations.rds” )

#下次讀取注釋文件
annotations <- readRDS("/path/to/annotations.rds")
5. 運(yùn)行Bambu
se <- bambu(reads = samples, annotations = annotations, genome = genome.fa)
6. 只鑒定新轉(zhuǎn)錄本诞吱,不定量
se.discoveryOnly <- bambu(reads = samples, annotations = annotations, genome = genome.fa, quant = FALSE)
7. 只對(duì)已知的轉(zhuǎn)綠本和基因進(jìn)行定量,不做新的轉(zhuǎn)錄本鑒定
se.quantOnly <- bambu(reads = samples, annotations = annotations, genome = genome.fa, discovery = FALSE)
8. 不依賴于參考注釋的轉(zhuǎn)錄本組裝
novelAnnotations <- bambu(reads = test.bam, annotations = NULL, genome = fa.file, NDR = 0.5, quant = FALSE)

具體參數(shù)設(shè)置和調(diào)試參考官方github竭缝。

四房维、輸出文件

Bambu 運(yùn)行完后會(huì)返回一個(gè)SummarizedExperiment對(duì)象,可以通過以下方式訪問

  • assays(se) 返回轉(zhuǎn)錄本表達(dá)豐度矩陣抬纸,以count或CPM的形式咙俩。
  • rowRanges(se) 返回GRangesList,包含所有已注釋和新發(fā)現(xiàn)的轉(zhuǎn)錄本湿故。
  • rowData(se) 返回每個(gè)轉(zhuǎn)錄本的額外信息阿趁。

通過使用assays()中的變量(如counts或CPM)提取轉(zhuǎn)錄本表達(dá)量

  • assays(se)$counts - count表達(dá)量。
  • assays(se)$CPM - 測(cè)序深度歸一化后的表達(dá)量坛猪。
  • assays(se)$fullLengthCounts - 每個(gè)轉(zhuǎn)錄本的全長(zhǎng)序列count表達(dá)量脖阵。
  • assays(se)$uniqueCounts - 每個(gè)轉(zhuǎn)錄本唯一回貼序列的count表達(dá)量。

可以使用writeBambuOutput()輸出完整的結(jié)果文件墅茉。這個(gè)命令可以產(chǎn)生三個(gè)文件:1. 擴(kuò)展的.gtf文件命黔。2.轉(zhuǎn)錄本的count表達(dá)矩陣呜呐。3.基因的count表達(dá)矩陣

writeBambuOutput(se, path = "./bambu/")

如果只對(duì)新的轉(zhuǎn)錄本感興趣悍募,可以過濾掉參考注釋的轉(zhuǎn)錄本蘑辑。

se.novel = se[mcols(se)$novelTranscript,]
writeBambuOutput(se.novel, path = "./bambu/")

五、可視化

通過plotBambu可以對(duì)基因/轉(zhuǎn)錄本進(jìn)行可視化(圖5)坠宴。

plotBambu(se, type = "annotation", gene_id = "ENSG00000107104")
圖5. 轉(zhuǎn)錄本tx.9的外顯子組成和在樣本中的表達(dá)量

轉(zhuǎn)錄本tx.9以及其對(duì)應(yīng)基因的其它轉(zhuǎn)錄本的結(jié)構(gòu)和表達(dá)量(圖6)以躯。

plotBambu(se, type = "annotation", transcript_id = "tx.9")
圖6. 轉(zhuǎn)錄本tx.9以及其對(duì)應(yīng)基因的其它轉(zhuǎn)錄本的結(jié)構(gòu)和表達(dá)量

通過plotBambu展示樣本分組PCA聚類(圖7)。

圖7. 基于基因/轉(zhuǎn)錄本表達(dá)量的PCA聚類

參考文獻(xiàn)

  1. Chen, Ying, et al. "Context-aware transcript quantification from long-read RNA-seq data with Bambu." Nature methods. (2023)
  2. Bambu github: https://github.com/GoekeLab/bambu
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末啄踊,一起剝皮案震驚了整個(gè)濱河市忧设,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颠通,老刑警劉巖址晕,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異顿锰,居然都是意外死亡谨垃,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門硼控,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)刘陶,“玉大人,你說我怎么就攤上這事牢撼〕赘簦” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵熏版,是天一觀的道長(zhǎng)纷责。 經(jīng)常有香客問我,道長(zhǎng)撼短,這世上最難降的妖魔是什么再膳? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮曲横,結(jié)果婚禮上喂柒,老公的妹妹穿的比我還像新娘。我一直安慰自己禾嫉,他們只是感情好灾杰,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夭织,像睡著了一般吭露。 火紅的嫁衣襯著肌膚如雪吠撮。 梳的紋絲不亂的頭發(fā)上尊惰,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天讲竿,我揣著相機(jī)與錄音述雾,去河邊找鬼吴趴。 笑死扬霜,一個(gè)胖子當(dāng)著我的面吹牛宴胧,可吹牛的內(nèi)容都是我干的衷畦。 我是一名探鬼主播阵谚,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼鸟蟹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼泣洞!你這毒婦竟也來(lái)了全庸?” 一聲冷哼從身側(cè)響起秀仲,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壶笼,沒想到半個(gè)月后神僵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡覆劈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年保礼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片责语。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡炮障,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出坤候,到底是詐尸還是另有隱情胁赢,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布白筹,位于F島的核電站徘键,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏遍蟋。R本人自食惡果不足惜吹害,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虚青。 院中可真熱鬧它呀,春花似錦、人聲如沸棒厘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)奢人。三九已至谓媒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間何乎,已是汗流浹背句惯。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工土辩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抢野。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓拷淘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親指孤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子启涯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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