以最简单的形式生成和处理hi-c数据的通用工具。

hicstuff的Python项目详细描述


打嗝

pypi versionpypi-python version构建状态Docker云构建状态codecov阅读文档binderlicense:gplv3code style:black

一个轻量级库,可以生成和处理与较酷兼容的2dbedGraph或instagraal格式的hi-c联系人地图。它本质上是yahcp管道、hicsuff库和其他功能的合并,如ow">3c教程和dade管道,都打包在一起,以获得额外的便利。

目标是使hi-c矩阵的生成和操作尽可能简单,并适用于任何生物体。

目录

安装

要安装稳定版本:

pip3 install -U hicstuff

或者,对于最新的发展版本锡安:

    pip3 install -e git+https://github.com/koszullab/hicstuff.git@master#egg=hicstuff

外部依赖性

管道实用程序需要bowtie2和/或minimap2以及samtools。

您可以通过Conda软件包管理器安装它们:

conda install -c bioconda minimap2 bowtie2 samtools

或者,在ubuntu上,你也可以通过apt:

apt-get install samtools bowtie2 minimap2 libbz2-dev liblzma-dev

Docker安装

DockerHub上提供了一个预构建的Docker映像,可以使用以下命令运行:

docker run koszullab/hicstuff

用法

全管道

可以使用hicsuff pipeline命令同时运行管道的所有组件。这允许从单个命令中的读取生成接触矩阵。默认情况下,输出稀疏矩阵是graal格式,但如果需要,它可以是2d bedgraph文件。更多详细的文档可以在readthedocs网站上找到:https://hicstuff.readthedocs.io/en/latest/index.html" rel="nofollow">https://hicstuff.readthedocs.io/en/latest/index.html

usage:
    pipeline [--quality-min=INT] [--size=INT] [--no-cleanup] [--start-stage=STAGE]
             [--threads=INT] [--aligner=bowtie2] [--matfmt=FMT] [--prefix=PREFIX]
             [--tmpdir=DIR] [--iterative] [--outdir=DIR] [--filter] [--enzyme=ENZ]
             [--plot] [--circular] [--distance_law] [--duplicates]
             [--centromeres=FILE] --genome=FILE <input1> [<input2>]

arguments:
    input1:             Forward fastq file, if start_stage is "fastq", bam
                        file for aligned forward reads if start_stage is
                        "bam", or a .pairs file if start_stage is "pairs".
    input2:             Reverse fastq file, if start_stage is "fastq", bam
                        file for aligned reverse reads if start_stage is
                        "bam", or nothing if start_stage is "pairs".

例如,使用8个线程运行minimap2的管道,并在目录out

hicstuff pipeline -t 8 -a minimap2 -e DpnII -o out/ -g genome.fa reads_for.fq reads_rev.fq

管道也可以从python运行,使用hicstuff.pipeline子模块。例如,这将使用迭代对齐使用bowtie2(默认)运行管道,并保留所有中间文件。

fromhicstuffimportpipelineashpihpi.full_pipeline('genome.fa','end1.fq','end2.fq',no_cleanup=Trueiterative=Trueout_dir='out',enzyme="DpnII")

管道的一般步骤如下:

管道流程图

单个部件

对于更高级的用法,可以在命令行上独立使用不同的脚本来执行管道的各个部分。本自述包含快速描述和示例用法。要获取有关任何子命令的详细说明,可以使用hicstuff<;subcommon>;--help

迭代对齐

将fastq文件中的读取截短到20个基对,并迭代扩展和重新对齐未映射的读取,以优化3c库中唯一对齐的读取的比例。

usage:
    iteralign [--aligner=bowtie2] [--threads=1] [--min_len=20]
              [--tempdir DIR] --out_sam=FILE --genome=FILE <reads.fq>
基因组的消化

基于限制性内切酶或 固定块大小。在目标目录中生成两个输出文件 命名为"info\u contigs.txt"和"fragments\u list.txt"

pip3 install -U hicstuff
0

例如,用maeii和hinfi消化酵母基因组并显示片段长度直方图:

Hictuff摘要--绘图--outdir输出目录--酶maeii,Hinfi SC_ref.fa

过滤3c事件

根据默认情况下自动从库中估计的最小距离阈值,从库中过滤虚假的3C事件,例如循环和未切割。也可以绘制3C库统计数据。此模块接受一个包含9列的pairs文件作为输入(readid、chr1、pos1、chr2、pos2、strand1、strand2、frag1、frag2),并对其进行过滤。

pip3 install -U hicstuff
1

查看联系人地图

将hi-c矩阵文件可视化为接触频率的热图。允许通过组合和规范化矩阵来优化可视化,并将输出图像保存到磁盘。如果未指定输出,则以交互方式显示输出。如果提供了两个接触图,将显示第一个图除以第二个图的对数比。

pip3 install -U hicstuff
2

例如,要从在10KB重新构建的全基因组HI-C矩阵中查看1号染色体的1MB区域:

pip3 install -U hicstuff
3

hicstuff程序的所有组件都可以用作python模块。请参阅reathedocs上的文档。库的预期联系人映射格式是一个简单的csv文件,库处理的对象是简单的numpy数组。hicstuff的各个子模块包含各种实用程序。

pip3 install -U hicstuff
4

连接模块

当runni运行时,这里描述的所有步骤都将自动处理nghicstuff管道。但是,如果要手动连接不同的模块,则必须使用light python脚本处理中间输入和输出文件。

对齐读数

您可以使用自己喜爱的读取映射软件独立生成sam文件,使用命令行实用程序hicsuff iteralign,或使用子模块hicsuff.pipeline中的助手函数align_reads。例如,要使用minimap2(默认情况下不是bowtie2)执行迭代对齐:

使用python函数:

pip3 install -U hicstuff
5

使用命令行工具:

pip3 install -U hicstuff
6

从校准中提取触点

hicstuff iteralign的输出是一个sam文件。为了检索hi-c对,您需要对两个fastq文件分别运行iteralign,并使用hicstuff的管道子模块将结果对齐文件处理为按名称排序的bam文件,如下所示。

pip3 install -U hicstuff
7

这将生成一个"pairs"文件,其中包含所有读取对,其中两个读取已对齐,映射质量至少为30。

将每个读操作归因于一个限制片段

为了构建一个接触矩阵,我们需要将每个读到的数据都归属于基因组中的一个片段。这是通过对基因组中限制性位点列表的每个读取位置执行二进制搜索来实现的。

pip3 install -U hicstuff
8

过滤对

然后,可以使用hicstuff filter命令在命令行中筛选生成的pairs文件,或者使用hicstuff.filter子模块在python中筛选生成的pairs文件。否则,矩阵可以直接从未过滤对中生成。

在命令行上筛选:

pip3 install -U hicstuff
9

在python中过滤:

    pip3 install -e git+https://github.com/koszullab/hicstuff.git@master#egg=hicstuff
0

注意,命令和python函数都有各种选项来生成图或调整过滤阈值。这些选项可以使用hicstuff filter-h显示

矩阵生成

然后可以使用python子模块hicstuff.pipeline生成hi-c稀疏接触矩阵。矩阵可以以Graal格式生成,也可以以BedGraph2(WIP)格式生成,以获得较低的兼容性。

    pip3 install -e git+https://github.com/koszullab/hicstuff.git@master#egg=hicstuff
1

文件格式

    pip3 install -e git+https://github.com/koszullab/hicstuff.git@master#egg=hicstuff
2
  • fragments_list.txt:这个选项卡分隔的文件提供有关限制片段位置、大小和GC内容的信息。注意,坐标是0点对,与pairs格式,有1个点对。例子:
    • id:1为基础的染色体限制性片段索引。
    • 染色体标识符。顺序应与info\u contigs.txt或pairs文件中的顺序相同。
    • 起始位置:从0开始的片段,以碱基对形式。
    • 结束位置:片段的0基结束,以碱基对形式。
    • 大小:片段的大小,以碱基对为单位。
    • g c_含量:片段中g和c核苷酸的比例。
    pip3 install -e git+https://github.com/koszullab/hicstuff.git@master#egg=hicstuff
3
  • info_contigs.txt:这个以制表符分隔的文件提供有关contigs的信息,例如限制片段的数量和大小。例子:
    • 续:染色体鉴定。成对文件或片段列表.txt的顺序应相同。
    • 长度:染色体长度,碱基对。
    • n_frags:染色体中限制性片段的数目。
    • cumul_长度:以前染色体的累积长度,以碱基对为单位。
    pip3 install -e git+https://github.com/koszullab/hicstuff.git@master#egg=hicstuff
4

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在IE10中重新加载另一个帧时,internet explorer Java小程序失败/消失   ThreadLocal变量的java性能   java系统。出来println不是打印输出   java从JAXB类获取元素属性   java组织。天啊。科尔巴。包裹。InvalidName:IDL:omg。org/CORBA/ORB/InvalidName:1.0   java有没有办法让非事务连接抛出异常?   java是否有任何方法可以使用JdbcTemplate和查询/条件Fluent API   javajpa级联类型。刷新不工作?   未考虑java Maven依赖关系管理   java MySQL MBR包含抛出MySQLExceptionError的语句   java验证整数并将其设为5位数   java发现了循环依赖的问题   java Hibernate left join fetch到使用@ManyToMany关联映射的softdeleted实体生成无效查询?   JavaH:commandButton多个操作:下载文件并呈现ajax表   Google Contacts API在Java、C#、Python或Ruby中是否有一个Hello World示例?