美文网首页组学
PASTIS:从HiC矩阵推断染色体3D结构

PASTIS:从HiC矩阵推断染色体3D结构

作者: 生信云笔记 | 来源:发表于2022-07-02 20:14 被阅读0次

    前言

      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>>

    相关文章

      网友评论

        本文标题:PASTIS:从HiC矩阵推断染色体3D结构

        本文链接:https://www.haomeiwen.com/subject/hkiivrtx.html