iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 13
0

今天打算來分享一篇最近才發表在Cell期刊系列的子期刊 ― Molecular Cells上面的論文:Efficient and Accurate Quantitative Profiling of Alternative Splicing Patterns of Any Complexity on a Laptop.。這篇期刊有什麼值得說的呢?首先,它是一篇關於辨識選擇性剪切(alternative splicing,後面簡稱AS)事件中的新演算法的論文。再來,作者們宣稱他們開發出的這種既可辨識又可定量AS的新工具在筆記型電腦上就跑得動了。最後呢~這個工具正好就是用Julia這種語言去實作的。這樣講好像還是很難說服人,且讓我在後面娓娓道來。

選擇性剪切(Alternative splicing)

為簡單起見,我就以人類這個物種來說明何謂選擇性剪切。首先我得從非常老派的中心法則(central dogma)開始說起。在過去中學教育的生物學當中,我們應該都多少有聽過生物體最基本的遺傳物質叫做DNA,但說到了最基本的功能單元則是一種叫做蛋白質的分子。中心法則就是告訴我們,生物體怎麼從最基本的遺傳單位產生出最基本的功能單元:DNA會透過一種被稱作轉錄的機制,將自身所帶有的遺傳訊息複製到一種專門存放這些抄錄來的資料的分子―mRNA上。最終,這個mRNA會夥同其他的生物分子將它身上所帶的這些抄錄來的資訊,透過一種被稱為轉譯的過程轉換成另外一種形式並存放到一個個胺基酸分子上,這些胺基酸分子正是構成蛋白質這種分子的最基本單位。前面這一段用圖來表示,就像是這個樣子:

Central Dogma

在整個過程當中,遺傳資訊從DNA複製到mRNA上之後,(在真核生物裡)實際上並不會直接就拿來轉譯成蛋白質,而是會先將這段剛到手的資訊整理後,取出部份的片段再黏起來,變成一段比較短一點的mRNA分子。這一段整理的過程,就是所謂的剪切(splicing)及黏合(ligation)。這過程中有趣的事情是,每次這個專門來負責剪切mRNA的傢伙,每次切的位置並不一定一致,這表示最後黏合起來的片段也不一定會相同,因此每個基因要變成蛋白質,就會有好幾種方式,這就是這邊我要談的alternative splicing。那這個事件對生物體來說有什麼重要呢? 這問題正是目前研究轉錄體這個領域的人非常想研究的主題。有些剪切不會造成該基因變成蛋白質之後功能受損,但有些剪切不僅是會造成這個基因在變成蛋白質之後功能受損,甚至可能直接完全不讓其蛋白質出現。因此,經過大量的研究之後,學者們便發現了,在某些癌症病患裡頭,相比於正常的組織細胞,腫瘤組織細胞中的AS就會呈現出很不一樣的pattern。為了了解這些現象與疾病之間的關係,能夠在定序資料當中辨識出這些事件,就成了一個很重要的任務。

這篇論文解決了哪些問題?

  • 過去辨識AS的那些方法通常都得將reads比對回參考基因體序列,接著還得對比對結果統計其受到剪切的比例,這種工作往往得消耗大量的運算資源及時間。
  • 另外有一些方法雖然成功地降低了運算的時間,但卻反而降低了運算結果的準確。
  • 作者們採用了一種基於訊息熵的演算法,並以Julia實作出一個生物資訊工具—Whippet幫生物學家解決前述的問題,其大致流程如下圖,有興趣的朋友歡迎閱讀後一起討論。

Whippet

如何使用呢?

  1. 安裝
julia> using Pkg
julia> Pkg.add("Whippet")
  1. 建立索引
# 建立僅僅只有GTF支持的索引
$ julia bin/whippet-index.jl --fasta hg19.fa.gz --gtf anno/gencode_hg19.v25.tsl1.gtf.gz
# 或建立有GTF+BAM檔支持的索引
$ julia bin/whippet-index.jl --fasta hg19.fa.gz --bam filename.sort.rmdup.bam --gtf anno/gencode_hg19.v25.tsl1.gtf.gz
  1. 對定序後產出的Fastq檔進行定量
# For single-end
$ julia bin/whippet-quant.jl file.fastq.gz
# For paired-end
$ julia bin/whippet-quant.jl fwd_file.fastq.gz rev_file.fastq.gz
  1. 比較PSI檔
$ ls *.psi.gz
sample1-r1.psi.gz sample1-r2.psi.gz sample2-r1.psi.gz sample2-r2.psi.gz
$ julia bin/whippet-delta.jl -a sample1 -b sample2
OR
$ julia bin/whippet-delta.jl -a sample1-r1.psi.gz,sample1-r2.psi.gz -b sample2-r1.psi.gz,sample2-r2.psi.gz

目前作者們表示,雖然這個package可以在Julia v0.7v1.0中使用了,但有些功能仍不完全,尚須等段時間。今天就先這樣啦~ 明天繼續。


上一篇
昨晚的Julia Taiwan Meetup與今早的北-BiO Meetup
下一篇
[Day 14] 今天繼續講Whippet這個工具
系列文
When Bioinfo met Julia: Bioinformatician的30天Julia學習之路32

2 則留言

0
杜岳華
iT邦新手 5 級 ‧ 2018-10-14 23:19:06

挖喔!居然在 IT 的文章上講 central dogma XD

考慮讀者嘛~

0
魯大常
iT邦新手 5 級 ‧ 2018-10-15 11:10:46

圖文解說的很精彩,讚!

的確光是 domain knowledge 就佔了不少篇幅,
有考慮分成兩篇,第二篇能夠詳細解釋結果嗎?

好喔,既然有人看,那我就來認真寫 XDDD

我要留言

立即登入留言