前言
HiC数据的另外一个用途就是可以推断染色体的3D结构。小编也是第一次做染色体三维推断的分析,而网络上也很少能找到关于此分析的帖子,所以在这过程中也是踩了不少的坑,所以今天记录一下,抛一块砖。目前,利用HiC数据推断染色体三维结构的软件有不少,这里列举一二,如PASTIS、LorDG、ChromeSDE、Shrec3D、MOGEN等。这些软件从实现方法角度可以分成Distance-Based、Contact-Based、Probability-Based三大类,具体哪一种实现过程比较好这里就不做讨论。今天我们要说的PASTIS软件包含Distance-Based和Probability-Based两种算法,分别对应其中的四个函数pastis-mds
、pastis-nmd
和pastis-pm1
、pastis-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矩阵的分辨率。
beta
、alpha
、adjacent_beads
、nucleus_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-mds
、pastis-nmd
、pastis-pm1
、pastis-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>>
网友评论