iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 6
0
自我挑戰組

When Bioinfo met Julia: Bioinformatician的30天Julia學習之路系列 第 7

[Day 7] 繼續昨天的話題談Microbiome

前情提要

昨天我後半段提到了要怎麼使用BioJulia中的BioSerices.jl來抓取NCBI上我所需要的資訊,當中使用的案例是用我這陣子在搞的資料方向來說明。昨天提到的那種想要了解人體中腸道菌相的那種問題,亦或是我們可以再擴大範圍,來談想了解在某種生態環境下的菌相或是微生物相是怎麼分佈的,甚至想了解到在那種菌相情況下有哪幾種菌會跟哪些功能有關,這類的問題我們一般歸類到所謂的Metagenomics(我們稱之為總體基因體,中國那邊稱宏基因組)。有人可能會問怎麼我標題寫的是Microbiome,怎麼這裡講的盡是細菌呢?簡單說,就是目前我們對於病毒的定序的累積成果還沒有細菌這麼豐富,加上相比於病毒,細菌在培養上會容易點,所以通常我們看學術期刊上面的論文講Microbiome,幾乎都會是指細菌那一類的生物。

我有可能可以使用Julia來做這方面的研究嗎?

我認為是可以的,但經過實際嘗試,發現中間要解決的坑似乎不少。往好處想,或許對於我學習Julia這門語言會有很大的幫助,因為可以直接接觸到非常多Julia語言中我自己尚未使用到的語法,另外還有機會可以重新實作那些原本使用R或是Python實作的分析工具,如果效能上能超過原本的tools,那我也算賺到了!

那回到目前Julia裡頭有沒有什麼工具可以幫我來進行Microbiome的分析呢? 答案是有的。根據BioJulia計畫官網上所列出的各個子專案內容顯示,看起來至少有四個Packages可使用:Microbiome.jlMicrobiomePlots.jlBioBakeryUtils.jl以及Phylogenies.jl。但最後一個目前所提供的功能實在是太少了,所以這邊先跳過不談。另外三個Packages的作用比較接近,主要以Microbiome.jl提供主要的分析功能,MicrobiomePlots.jl提供了第一個Package分析出來的結果可視化的功能,而BioBakeryUtils.jl則是引入了Microbiome.jl中對於abundancetable這種類型的物件支持後,提供了可與其他外部metagenomics分析工具互動的功能,當中有些統計功能的實作則是透過R語言來達成。在我目前的實驗階段,我就先不提BioBakeryUtils.jl的部份了。

安裝MicrobiomeMicrobiomePlots

經過測試,目前在Julia v1.0的環境底下尚無法像MicrobiomePlots.jl子專案網頁上講的,使用Pkg.add()來安裝,只能先透過Pkg.clone()來裝:

using Pkg
Pkg.add("Microbiome")
Pkg.clone("https://github.com/BioJulia/MicrobiomePlots.git")

計算relative abundance並將結果畫成圖表

昨天我提到,我在使用序列比對工具將我們手頭上處理過的細菌序列比對到大型資料庫所蒐集的參考基因序列後,必須要將該資料庫所使用的ID轉換成物種分類資料庫中的ID(Taxonomy ID)。除此之外,實際上我還得統計一下我們定出來的這些序列有哪些比對到A細菌,有哪些比對到B細菌,最後再綜合統計,看在每個樣本中,看到有多少比例的序列會比對上哪些菌種,也就是看每個樣本各種菌種的relative abundance,如下圖:
https://ithelp.ithome.com.tw/upload/images/20181007/20111688V55Otx1gxR.png

如果我們想使用上述提到的兩個Packages來將這樣的結果拿來畫圖,並將這個圖存成圖檔要怎麼做呢?

using Microbiome
using MicrobiomePlots
abund = abundancetable(
           rand(100, 10),
           ["sample_$x" for x in 1:10],
           ["feature_$x" for x in 1:100]);
relativeabundance!(abund)

abundanceplot(abund)
savefig("abundanceplot.png")

就可以得到這張圖:

https://ithelp.ithome.com.tw/upload/images/20181007/20111688f75LUxkOGp.png

今天就先到這啦~ 明天來看一下怎麼把這些東西實際串連成一個Julia的demo code


上一篇
[Day 6] 在Julia底下使用BioServices.jl抓取NCBI上的資料
下一篇
[Day 8] 從Fastq出發到abundance table (一)
系列文
When Bioinfo met Julia: Bioinformatician的30天Julia學習之路32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言