前言
??HiC數(shù)據(jù)的另外一個用途就是可以推斷染色體的3D結(jié)構(gòu)炸渡。小編也是第一次做染色體三維推斷的分析,而網(wǎng)絡(luò)上也很少能找到關(guān)于此分析的帖子,所以在這過程中也是踩了不少的坑,所以今天記錄一下腌歉,拋一塊磚。目前齐苛,利用HiC數(shù)據(jù)推斷染色體三維結(jié)構(gòu)的軟件有不少翘盖,這里列舉一二,如PASTIS凹蜂、LorDG馍驯、ChromeSDE、Shrec3D玛痊、MOGEN等汰瘫。這些軟件從實現(xiàn)方法角度可以分成Distance-Based、Contact-Based擂煞、Probability-Based三大類混弥,具體哪一種實現(xiàn)過程比較好這里就不做討論。今天我們要說的PASTIS軟件包含Distance-Based和Probability-Based兩種算法对省,分別對應(yīng)其中的四個函數(shù)pastis-mds
蝗拿、pastis-nmd
和pastis-pm1
、pastis-pm2
蒿涎。
軟件使用
??PASTIS使用python編寫的軟件哀托,目前支持使用pip命令來安裝,所以安裝和使用還是相對簡單的劳秋。不過github源碼庫里面自帶測試數(shù)據(jù)仓手,如果想用測試數(shù)據(jù)的可以采用源碼安裝。
###安裝
pip install --user pastis
### github下載源碼安裝
python setup.py install --user
??安裝好軟件玻淑,下面我們就來使用一下嗽冒,這里用源碼中測試數(shù)據(jù)測試一下(examples/pastis_example目錄下含有測試數(shù)據(jù))。這里還是忍不住想吐槽一下軟件的文檔寫得太過簡單了岁忘。第一次接觸有點方辛慰,因為這個軟件并不像其他命令行工具使用-h
就可以查看使用幫助,該軟件使用的是配置文件的方式干像,需要在目錄下放置一個名為config.ini
配置文件里面提供軟件需要的參數(shù)帅腌,內(nèi)容如下:
[all]
output_name: structure
verbose: 1
max_iter: 100
counts: data/counts.npy
normalize: True
??可是,作者提供示例的配置文件參數(shù)很少麻汰,其實有很多參數(shù)是有默認值的速客,想要知道全部參數(shù)的參數(shù),可以通過python的交互式方式導(dǎo)入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}
??可以看到參數(shù)有很多,如果不提供就會使用默認參數(shù),這可是一個巨大的坑浪耘,不清楚的情況下都不知道為啥程序跑不通乱灵,即使誤打誤撞跑通了,也不要高興太早七冲,因為后面你可能會發(fā)現(xiàn)結(jié)果不一定正確痛倚,因為里面內(nèi)置的數(shù)據(jù)方面參數(shù)都是關(guān)于酵母物種,如果你分析是其他物種就要小心了(不要問我是怎么知道 >_<|||)澜躺。注意蝉稳,下面這些參數(shù)需要根據(jù)數(shù)據(jù)自行調(diào)整:
chromosomes
:染色體,多個用逗號分隔掘鄙;
organism_structure
:存儲染色體長度的文件耘戚,一行是一條染色體長度;
counts
:HiC矩陣存儲為numpy數(shù)組格式操漠;
resolution
:HiC矩陣的分辨率收津。
??beta
、alpha
颅夺、adjacent_beads
朋截、nucleus_size
這幾個參數(shù)具體有什么作用咱也不清楚,但可以推測應(yīng)該是跟建模有關(guān)吧黄,不清楚有什么影響時還是用默認參數(shù)比較穩(wěn)妥。其余的參數(shù)基本可以選擇忽略了唆姐。
??下面來看看具體怎么使用這個軟件拗慨,首先看一下配置文件的內(nèi)容:
[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
??然后是準(zhǔn)備輸入的目錄,目錄結(jié)構(gòu)類似如下:
example
├── config.ini
├── data
│ └── counts.npy
└── files
└── budding_yeast_structure
??最后奉芦,運行命令赵抢。pastis-mds
、pastis-nmd
声功、pastis-pm1
烦却、pastis-pm2
四個子命令自行選擇使用:
pastis-pm2 example
??當(dāng)程序結(jié)束時會在目錄中生產(chǎn)兩個文件,一個是三維坐標(biāo)文件先巴,一個是pdb格式的三維結(jié)構(gòu)文件(后續(xù)用此文件畫染色體的3D結(jié)構(gòu))其爵。兩個文件名都是以選擇的相應(yīng)算法名為前綴。
結(jié)束語
??至此伸蚯,染色體的三維結(jié)構(gòu)推斷好了摩渺,后續(xù)就是可視化方面的事情了。雖然前面吐槽了軟件使用方面的問題剂邮,但還是得承認這個軟件預(yù)測的結(jié)果還是不錯的摇幻。希望軟件作者后續(xù)維護給力,軟件能夠更新的越來越好用,文檔也能詳細起來解釋一下參數(shù)的作用绰姻,讓用戶明白如何根據(jù)數(shù)據(jù)來調(diào)整參數(shù)枉侧。
參考
https://github.com/hiclib/pastis
http://hiclib.github.io/pastis
<<A statistical approach for inferring the 3D structure of the genome>>