跳转到主要内容

处理映射Hi-C数据的命令行工具

项目描述

pairtools

Documentation Status Build Status Join the chat on Slack DOI

使用pairtools处理Hi-C配对

pairtools是一个简单快速的命令行框架,用于处理Hi-C实验的测序数据。

pairtools处理末端配对序列比对,并执行以下操作

  • 在Hi-C DNA分子的末端配对序列中检测连接接头(即Hi-C配对)
  • 对下游分析排序.pairs文件
  • 检测、标记并删除PCR/光学重复
  • 生成Hi-C数据集的详细统计数据
  • 根据灵活定义的标准选择Hi-C配对
  • 从Hi-C配对恢复.sam比对
  • 注释限制酶消化位点
  • 获取Hi-C配对中的突变位置

入门

数据格式

pairtools 用于生成和处理符合由 .pairs 格式定义的制表符分隔文件,该格式由 4D Nucleome 合作组织 定义。所有 pairtools 都能正确处理文件头并跟踪数据处理历史。

此外,pairtools 定义了 .pairsam 格式,这是 .pairs 的扩展,包括测序 Hi-C 分子的 SAM 对齐。.pairsam 符合 .pairs 格式,可以被任何操作 .pairs 文件的工具处理。

pairtools 生成一组额外的列,描述对齐、相、突变、限制和复杂路径的特性。可能的额外列的完整列表可以在 pairtools 格式规范 中找到。

安装

需求

  • Python 3.x
  • Python 包 cythonpysambioframepyyamlnumpyscipypandasclick
  • 命令行工具 sort(Unix 版本)、bgzip(与 samtools 一起提供)和 samtools。如果可用,pairtools 可以使用 pbgziplz4 压缩输出。

有关完整推荐版本列表,请参阅 GitHub 仓库中的需求

我们强烈建议使用 conda 包管理器来安装 pairtools 及其所有依赖项。您可以通过安装完整的 Anaconda Python 发行版或仅安装独立的 conda 包管理器来获取它。

使用 conda,您可以从 bioconda 通道安装 pairtools 及其所有依赖项。

$ conda install -c conda-forge -c bioconda pairtools

或者,使用 pip 从 PyPI 安装非 Python 依赖项和仅 Python 依赖项的 pairtools

$ pip install numpy pysam cython
$ pip install pairtools

快速示例

设置一个新的测试文件夹并下载一个映射到 sacCer3 基因组的 Hi-C 数据集

$ mkdir /tmp/test-pairtools
$ cd /tmp/test-pairtools
$ wget https://github.com/open2c/distiller-test-data/raw/master/bam/MATalpha_R1.bam

此外,我们还需要一个 .chromsizes 文件,这是一个描述在映射过程中使用的基因组组装中染色体名称、大小和顺序的制表符分隔纯文本表

$ wget https://raw.githubusercontent.com/open2c/distiller-test-data/master/genome/sacCer3.reduced.chrom.sizes

使用 pairtools parse,我们可以将存储在 .sam/.bam 格式中的配对端序列对齐转换为 .pairs,这是一个 Hi-C 连接接点的制表符分隔表

$ pairtools parse -c sacCer3.reduced.chrom.sizes -o MATalpha_R1.pairs.gz --drop-sam MATalpha_R1.bam 

检查结果表

$ less MATalpha_R1.pairs.gz

管道

  • 我们在 /examples/ 提供了一个简单的映射 bash 管道的工作示例。
  • distiller 是一个强大的 Hi-C 数据分析工作流程,基于 pairtoolsnextflow

工具

  • parse:读取 bwa 生成的 .sam/.bam 文件并形成 Hi-C 对

    • 通过报告每个分子两侧的外侧映射位置和序列方向来形成 Hi-C 对;
    • 报告未映射/多重映射(模糊对齐)/嵌合对齐为染色体 "!"、位置 0、序列方向 "-";
    • 执行 Hi-C 分子两侧的上三角翻转,使得第一侧的排序索引低于第二侧;
    • 形成混合 pairsam 输出,其中每行包含一个 Hi-C 分子的所有可用数据(两侧的外侧映射位置、读取 ID、对类型和每个对齐的 .sam 条目);
    • 报告对齐的 .sam 标签或突变;
    • 在文件开头打印 .sam 头部作为 #-注释行。
  • parse2:读取带有长配对端或单端读取的 .sam/.bam 文件,并从复杂路径形成 Hi-C 对

    • 识别并恢复由带有测序连接接点的单侧的单链 Hi-C 分子产生的嵌合对齐;
    • 使用限制片段注释嵌合比对,并报告真实接头和跳跃(基于单读的相互作用注释,ORBITA);
    • 当一侧的读取通过另一侧的DNA读取时,执行配对数据的分子内去重;
    • 报告复杂路径中配对的索引;
    • 对来自同一路径的配对进行组合展开;
  • 排序:排序配对文件(染色体按字典序,位置按数字序,配对类型按字典序)。

  • 合并:合并排序后的.pairs文件;

    • 合并排序.pairs;
    • 组合所有输入文件的.pairs文件头;
    • 检查每个.pairs文件是否映射到相同的参考基因组索引(通过检查@SQ sam头行的身份)。
  • 选择:根据指定标准选择配对;

    • 根据提供的条件选择配对条目。一个可编程接口允许对特定配对类型、染色体、位置、链、读取ID(包括匹配通配符/regexp/列表)进行任意复杂的查询。
    • 可选地将不匹配的条目打印到单独的文件中。
  • 去重:从排序后的翻转三联.pairs文件中移除PCR重复;

    • 通过查找两侧都映射到相似基因组位置的条目对来移除PCR重复(+/- N bp);
    • 可选地将PCR重复条目输出到单独的文件中;
    • 从原始Illumina读取ID中检测光学重复;
    • 结合去重应用配对的各种属性(MAPQ;方向;距离)进行过滤;
    • 将yaml或方便的tsv去重统计数据输出到文本文件。
    • 注意:为了删除所有PCR重复,输入必须包含单个实验复制的所有映射读取对;
  • maskasdup:将pairsam中的所有配对标记为Hi-C重复;

    • 将pair_type字段更改为DD;
    • 更改所有sam比对中的pair_type标签(Yt:Z:);
    • 为所有sam比对设置PCR重复二进制标志(0x400)。
  • 分割:将.pairsam文件分割成.pairs和.sam;

  • 翻转:翻转配对以获得上三角矩阵;

  • 头部:操作.pairs/.pairsam头部;

    • 为无头.pairs文件生成新头;
    • 将一个.pairs文件的头转移到另一个;
    • 为.pairs文件设置列名;
    • 验证头部是否与.pairs文件中存储的信息相对应;
  • 统计:计算.pairs文件的多种统计数据;

  • 限制:识别形成Hi-C接头的限制片段的范围;

  • :对映射到二倍体基因组中的配对进行相;

贡献

欢迎提交拉取请求

为了开发,使用-e选项以可编辑(即开发)模式克隆和安装。这样您还可以实时拉取更改。

$ git clone https://github.com/open2c/pairtools.git
$ cd pairtools
$ pip install -e .

引用pairtools

Open2C*,Nezar Abdennur,Geoffrey Fudenberg,Ilya M. Flyamer,Aleksandra A. Galitsyna*,Anton Goloborodko*,Maxim Imakaev,Sergey V. Venev。“Pairtools:从测序数据到染色体接触”bioRxiv,2023年2月13日;doi:https://doi.org/10.1101/2023.02.13.528389

许可

MIT

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源代码分发

pairtools-1.1.0.tar.gz (1.4 MB 查看散列

上传于

构建版本

pairtools-1.1.0-py3-none-any.whl (98.1 kB 查看哈希值)

上传于 Python 3

由以下支持