PASTIS:從HiC矩陣推斷染色體3D結構

前言

??HiC數據的另外一個用途就是可以推斷染色體的3D結構。小編也是第一次做染色體三維推斷的分析,而網絡上也很少能找到關于此分析的帖子,所以在這過程中也是踩了不少的坑,所以今天記錄一下,拋一塊磚。目前,利用HiC數據推斷染色體三維結構的軟件有不少,這里列舉一二,如PASTIS、LorDG、ChromeSDE、Shrec3D、MOGEN等。這些軟件從實現方法角度可以分成Distance-Based、Contact-Based、Probability-Based三大類,具體哪一種實現過程比較好這里就不做討論。今天我們要說的PASTIS軟件包含Distance-Based和Probability-Based兩種算法,分別對應其中的四個函數pastis-mdspastis-nmdpastis-pm1pastis-pm2

軟件使用

??PASTIS使用python編寫的軟件,目前支持使用pip命令來安裝,所以安裝和使用還是相對簡單的。不過github源碼庫里面自帶測試數據,如果想用測試數據的可以采用源碼安裝。

###安裝
pip install --user pastis
### github下載源碼安裝
python setup.py install --user

??安裝好軟件,下面我們就來使用一下,這里用源碼中測試數據測試一下(examples/pastis_example目錄下含有測試數據)。這里還是忍不住想吐槽一下軟件的文檔寫得太過簡單了。第一次接觸有點方,因為這個軟件并不像其他命令行工具使用-h就可以查看使用幫助,該軟件使用的是配置文件的方式,需要在目錄下放置一個名為config.ini配置文件里面提供軟件需要的參數,內容如下:

[all]
output_name: structure
verbose: 1
max_iter: 100
counts: data/counts.npy
normalize: True

??可是,作者提供示例的配置文件參數很少,其實有很多參數是有默認值的,想要知道全部參數的參數,可以通過python的交互式方式導入pastis包來看,或者粗暴一點直接看源碼。下面演示一下交互式方式查看:

>>>import pastis
>>>pastis.config.parse()
{'chromosomes': '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16', 'organism_structure': 'files/budding_yeast_structure', 'binary_pm': 'PM_all', 'beta': 1.0, 'seed': 0, 'input_name': 'wish_distances.txt', 'adjacent_beads': None, 'alpha': -3.0, 'counts': 'data/counts.npy', 'logging_file': 'MDS.log', 'nucleus_size': None, 'output_name': 'structure.pdb', 'binary_mds': 'MDS_all', 'resolution': 10000}

??可以看到參數有很多,如果不提供就會使用默認參數,這可是一個巨大的坑,不清楚的情況下都不知道為啥程序跑不通,即使誤打誤撞跑通了,也不要高興太早,因為后面你可能會發現結果不一定正確,因為里面內置的數據方面參數都是關于酵母物種,如果你分析是其他物種就要小心了(不要問我是怎么知道 >_<|||)。注意,下面這些參數需要根據數據自行調整:
chromosomes:染色體,多個用逗號分隔;
organism_structure:存儲染色體長度的文件,一行是一條染色體長度;
counts:HiC矩陣存儲為numpy數組格式;
resolution:HiC矩陣的分辨率。
??betaalphaadjacent_beadsnucleus_size這幾個參數具體有什么作用咱也不清楚,但可以推測應該是跟建模有關,不清楚有什么影響時還是用默認參數比較穩妥。其余的參數基本可以選擇忽略了。
??下面來看看具體怎么使用這個軟件,首先看一下配置文件的內容:

[all]
resolution: 10000
output_name: structure
chromosomes: 1,2,3,4,5,6,7,8
counts: data/counts.npy
organism_structure: files/budding_yeast_structure
normalize: True

??然后是準備輸入的目錄,目錄結構類似如下:

example
├── config.ini
├── data
│   └── counts.npy
└── files
    └── budding_yeast_structure

??最后,運行命令。pastis-mdspastis-nmdpastis-pm1pastis-pm2四個子命令自行選擇使用:

pastis-pm2 example

??當程序結束時會在目錄中生產兩個文件,一個是三維坐標文件,一個是pdb格式的三維結構文件(后續用此文件畫染色體的3D結構)。兩個文件名都是以選擇的相應算法名為前綴。

結束語

??至此,染色體的三維結構推斷好了,后續就是可視化方面的事情了。雖然前面吐槽了軟件使用方面的問題,但還是得承認這個軟件預測的結果還是不錯的。希望軟件作者后續維護給力,軟件能夠更新的越來越好用,文檔也能詳細起來解釋一下參數的作用,讓用戶明白如何根據數據來調整參數。

參考

https://github.com/hiclib/pastis
http://hiclib.github.io/pastis
<<A statistical approach for inferring the 3D structure of the genome>>

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容