跳转到主要内容

基于其他BAM文件读取BAM文件中的标签。

项目描述

Readtagger

https://travis-ci.org/bardin-lab/readtagger.svg?branch=master https://coveralls.io/repos/github/bardin-lab/readtagger/badge.svg?branch=master https://badge.fury.io/py/readtagger.svg https://anaconda.org/mvdbeek/readtagger/badges/version.svg

Readtagger是一套用于描述测序基因组中读取来源的工具。它可以用来验证和检测已知外源序列(如病毒)或内源序列(如转座子)的整合事件。此外,还有可能将其扩展到无需事先了解插入序列的从头检测。

安装

pip install readtagger

描述

readtagger模块可以用作验证TEMP和TEPID预测的转座元件(TE)插入的工具,但它也可以作为使用findcluster命令(见下文)检测插入的基础。readtagger模块通过将读取与多个参考序列对齐并记录可能的同源性作为自定义SAM标签来检查测序读取的来源。这对于单端和双端读取都适用,因此可以获得关于在基因组物理位置对齐的读取以及其配对的了解。

readtagger命令评估潜在的同源性,并(默认情况下)丢弃对齐没有改善核酸使用的同源性。例如,如果对齐的无剪接部分与转座元件具有同源性,而我们只关心剪接、未对齐的部分。同样,我们丢弃那些位于预期插入大小范围内的对齐配对的同源性。这些预防措施减少了基因组中与转座元件有假同源性的区域中的噪声,因为这些区域并不是所有都由RepeatMasker等工具屏蔽。

要生成插入调用,可以使用findcluster命令。

findcluster在多个阶段运行,大致如下

  1. 将输入文件分割成大约100 KB的块。这允许在多个CPU核心或机器上并行处理。在标签簇的集群中分割文件可能会引入伪影,因此我们试图找到没有标签对齐的区域。

  2. 对于每个区域,我们确定标签对齐的簇。一旦额外的对齐不重叠当前簇坐标,就创建一个新的簇。这是一个粗略的初步过程,通常包括多个实际插入和/或分离属于同一簇的簇,但它总结了所有标签对齐。此外,我们还生成软剪接读取的簇(与转座元件同源性无关)。

  3. 对于每个簇,我们询问是否有其他簇靠近(搜索区域取决于插入大小分布),它们可能可以合并,因为它们提供了相同插入的证据。通过edlib进行所有对全部对齐测试,以测试所有可到达的簇。如果提供了分裂读取的证据,则使用共识对齐确定可能的5'和3'位点。

  4. 然后我们询问簇是否内部一致。这意味着指向例如远离假定的插入位点对齐来自簇,并形成一个新的、第二个簇。

  5. 我们重复步骤3和4,直到每轮的簇数量保持不变。

  6. 如果软剪接簇中的任何读取也是转座元件簇的成员,则将软剪接簇分配给转座元件簇。(这在链接样本之间转座元件插入位点的单独步骤中很重要)。

  7. 然后我们量化支持假定插入的片段(这包括未达到被标记阈值的对齐),指向插入的片段以及无信息读取,并基于证据调用基因型和基因型似然。使用单独的标签标记插入的对齐证据和反对插入的证据,以便可以进行量化验证。每个100 KB区域写入一个描述插入的VCF文件,一个包含相关对齐的BAM文件和一个组装序列的fasta文件。

  8. 合并单个文件

用法

要使用文件b.bam标记文件a.bam并将输出到输出路径output.bam,键入

readtagger --tag_file a.bam --annotate_with b.bam ----output_file output.bam

默认情况下,将使用AD、AR、BD和BR标签标记读取,其中AD标签包含当前读取的详细对齐信息,而BD标签包含配对的 信息。AR和BR包含对齐的参考(即染色体)。第一个字母可以通过在每个文件路径末尾附加“:first_letter_read:first_letter_mate”来按文件基础更改。要将上述示例更改为读取为X和配对为Y,运行

readtagger --tag_file a.bam --annotate_with b.bam:X:Z ----output_file output.bam

要使用多个对齐文件标记一个bam文件,运行

readtagger --tag_file a.bam --annotate_with b.bam:A:B c.bam:C:D ----output_file output.bam

现在,在文件b.bam中对齐的读取将带有AR、AD和BR、BD标签,而文件c.bam中对齐的读取将带有CR、CD和DR、DD标签。

高级用法

要查看高级选项,键入

readtagger -h

测试

如果您修改了readtagger,可以通过运行tox来运行所有测试

pip install tox
tox

历史记录

0.5.25 (2020-04-07)

暴露不同样式,将Nan转换为0

0.5.24 (2020-04-07)

plot_coverage工具的各种更新

0.5.23 (2020-03-23)

发布一个未损坏的版本,(0.5.22中的conda-build问题)

0.5.22 (2020-03-23)

允许在plot_coverage工具中使用一个或多个对齐文件

0.5.21 (2020-01-12)

使normalize_readsizes更有效(再次)

0.5.20 (2020-01-11)

使normalize_readsizes对大型数据集更有效

0.5.19 (2020-01-11)

修复normalize_readsizes中的文件打开问题

0.5.18 (2019-12-18)

从normalize_readsizes中删除递归,似乎不起作用

0.5.17 (2019-11-05)

添加summarize_fragments命令 Normalize多个长读fastq文件的长度 更新依赖项

0.5.16 (2019-09-05)

注释仅由正确配对组成的簇

0.5.15 (2019-09-04)

放宽簇合并要求

0.5.14 (2019-09-03)

允许在分裂和TE开始之间有15个nt而不是10个nt

0.5.13 (2019-09-03)

修复aligned_segment_corresponds_to_transposable_element

0.5.12 (2019-09-02)

在最后join_clusters测试后编写fasta并使用bwa重新对齐,修复TE重叠注释。

0.5.11 (2019-09-01)

注释相同类型插入的重叠。

0.5.10 (2019-09-01)

写出匹配的软剪接簇。

0.5.9 (2019-08-31)

修复当无法计算修正的起始/结束位置时的崩溃。

0.5.8 (2019-08-31)

改进簇的连接。

0.5.7 (2019-08-29)

在将簇从原始簇中分割出来后不要标记簇为不兼容;在查找可达簇时使用修正或未修正的起始/结束位置;也允许与下游反向簇连接;检测局部最大正确配对大小。

0.5.6 (2019-08-28)

始终生成contig fasta,这对于精炼簇位置是必需的;在比对和插入起始/结束之间允许+/- 10个核苷酸。

0.5.5 (2019-08-27)

  • 为cap3调用添加超时。

  • 更新依赖项。

0.5.4 (2019-07-29)

  • 将pysam依赖项提升到0.15.3,包含重要修复。

0.5.3 (2019-07-28)

  • 对‘extract_variants’输出的比对进行排序。

0.5.2 (2019-07-28)

  • 添加用于从长读中提取插入证据的‘extract_variants’工具。

0.5.1 (2019-06-13)

  • 只有当模式与断裂点序列匹配时才将剪切模式与插入相关联。

0.5.0 (2019-06-12)

  • 停止支持Python 2。

0.4.20 (2019-06-12)

  • 在合并相邻读簇时保留所有关联的软剪接模式。

0.4.19 (2019-02-15)

  • 修复当参考序列包含冒号时的findcluster崩溃。

0.4.18 (2019-02-14)

  • 使用logger.warning代替已弃用的logger.warn。

  • 删除现在未使用的qname_cmp_func。

  • 修复比对拆分,修复未标记的读取和速度问题。

0.4.17 (2019-02-10)

  • 修复可能导致错误块大小的bug。

0.4.16 (2019-01-28)

  • 删除samtools,通过pysam完成所有操作。

0.4.15 (2019-01-15)

  • 添加缺失的samtools依赖项。

0.4.14 (2019-01-15)

  • 仅针对python 3构建Conda包。

0.4.13 (2019-01-14)

  • 更新固定依赖项。

  • 修复travis部署。

0.4.12 (2018-08-21)

  • 允许readtagger接受多个输入。

  • 允许将多个控制文件传递给confirm_insertions脚本。

  • 修复匹配短3'剪切序列。

0.4.11 (2018-05-18)

  • 添加合并findlcuster VCF输出的脚本。

  • 在簇一致性检查时允许5个nt的重叠。

  • 在INFO字段中包含VALID_TSD并写出PE支持。

  • 对输出VCF文件进行排序。

  • 使用参考名、起始位置和簇顺序生成ID。

  • 改进对任意插入名的支持。

0.4.10 (2018-03-30)

  • 在验证标签中包含未映射但标记的配对。

  • 更新findcluster galaxy工具并修复软剪接簇ID。

  • 使用唯一ID作为变异ID。

  • 一旦我们达到10000个读取,就停止收集证据。

  • 加快软剪接簇的查找。

  • 实现VCF输出。

  • 使findcluster脚本的loglevel可配置,并添加将日志输出到文件的功能。

  • 在15nt窗口中寻找软剪接读取,并通过其末端比较5'剪切。

  • 添加用于确认/拒绝插入的脚本和工具。

  • 细化检测彼此非常接近的TE簇。

  • 验证读取确实支持特定的插入。

  • 修复排序到CRAM输出。

  • 将软剪接簇的排序移至合并阶段。

  • 在跳过TE簇时跳过寻找软剪接簇。

  • 将软剪接注释为TE的一部分。

  • 将SoftClipClusterFinder嵌入ClusterFinder中。

  • 修复读取包含删除时的软剪接位置。

0.4.9 (2018-01-23)

  • 修复部署到PyPI。

0.4.8 (2018-01-23)

  • 更新测试数据输出并允许使用《:

  • 在setup.py中添加edlib到要求中。

  • 添加软剪接查找测试。

  • 基于python-3.6构建。

  • 对于python2使futures库有条件。

  • 从要求中删除临时。

  • 扩展测试覆盖率。

  • 从BamAlignmentWriter中删除external_bin。

  • 许多小的简化、错误修复和增强测试。

  • 改进5'和3'剪切的报告。

  • 为找到最可能的TSD位置添加一些wigglespace。

  • 保留与删除相关联的插入。

  • 添加一个不应该分割的簇的测试用例。

  • 修复基因型的if/else逻辑。

  • 跳过具有大量TE证据的“基因组陷阱”。

  • 在RuntimeError上继续。

  • 改进输入文件的拆分。

  • 如果使用external_bin=False,则需要从指定区域中读取。

  • 查找聚类时不要使用外部samtools

  • 根据聚类密度确定假序列区域

  • 删除reraise_with_stack,在py3上不起作用

  • 修复过时的min/max坐标导致丢弃块的问题

  • 处理块时重新引发任何异常

  • 修复py2兼容性中的OrderedDict语法

  • 改进将输入拆分成块时的日志记录

  • 不要删除不再存在的读取

  • 修复组装过多读取时的返回值

  • 修复使用多线程时区域的限制

  • 报告一个聚类读取证据的最大MAPQ值

  • 默认将最小MAPQ提升到4,并使其可配置

  • 重构cap3组装(以便更容易交换)并限制它将组装的读取数量

  • 修复并应用read_is_compatible到所有带有BD标签的读取

  • 泛化标记聚类为兼容或不兼容,并在每个聚类拆分或合并时应用

  • 如果起始和终止位置超过50nt,则使用起始和终止的重叠估计nref/nalt

  • 跳过不一致的读取聚类

  • 删除多余的括号,修复错别字

  • 在计数证据时允许非正确配对

  • 在合并聚类时考虑最大配对距离

  • 将新的依赖项添加到conda配方中

  • 防止将我们之前明确拆分的聚类合并

  • 不要线程/缓存聚类合并

  • 为某些cigar操作使用lru_cache

  • 一致地使用cigar_to_max函数

  • 利用新的AlignmentHeader对象(旧方法现在非常慢)

  • 使用edlib align代替Cap3Assembly

  • 修复evidence_against功能

  • 输出被视为非支持的读取

  • 允许通过环境变量获取reference_fasta的位置以加快测试执行速度

  • 修复3p证据bam,修复具有1个断点的nref

  • 更新测试数据

  • 如果AD和BD都设置,根据AD分配左右

  • 使计数更准确,清理各种Cluster计数,并输出通过evidence_for_five/three_p发现的split reads

  • 收集插入的证据

  • 修复get_breakpoint_sequence中的错别字

  • 修复如果绑定包含N则解决共识绑定的问题

  • 升级到pysam 0.14

  • 由于拆分可以更新,因此将split_ads作为属性

  • 修复dumb_consensus帮助中的错别字

  • 将IUPAC添加到核苷酸字典中

  • 重构non_evidence,以便可以计数证据的利弊

  • 使用reference_start而不是已弃用的pos

  • get_breakpoint_sequence实现为TargetSiteDuplication的方法

  • 添加evidence_for函数

  • 将planemo从0.46.1更新到0.48.0

  • 细化聚类合并逻辑

  • 修复重叠计算,以防重新对齐的contig最终处于不同的位置

  • 更新测试数据输出,基因型输出具有更高的精度(叹气)

0.4.7 (2018-01-23)

  • 修复当聚类没有关联的contig时发生的异常

  • 修复使用预索引转座子参考时TE对齐逻辑

  • 在聚类细化期间控制哪些读取扩展聚类

  • 添加一个保护措施,避免合并无关的、遥远的聚类

0.4.6 (2017-12-13)

  • 部署到conda在py3上

  • 确保聚类块是有序的

  • 避免由于多进程任务中的异常而导致的挂起

0.4.2 (2017-12-13)

  • 修复传递给pileup引擎的区域指定

  • 指出–reference_fasta和–reference_index的典型用法

  • 修复findcluster galaxy工具中的cheetah bwa索引变量

0.4.1 (2017-11-20)

  • 将matplotlib和pandas添加到依赖项

  • 添加一个可以绘制两个bam文件之间覆盖区域面积图的脚本

  • 更新依赖项。

  • 如果tsd的three_p或five_p未知,则分配可用的侧以测试读取属于插入的左侧或右侧

  • 修复未对齐(?)读取的崩溃

  • 将已弃用的alen、pos和mpos更改为当前替换

  • 调整clusterfinding以适应错配的长读

0.4.0 (2017-11-09)

  • 修复CRAM输入和输出的问题

  • 根据读取长度在readtagger中调整块大小(适用于pacbio/nanopore读取)

  • 清理临时bwa索引

  • 依赖项更新

0.3.25 (2017-06-21)

  • 使用组装策略优化簇坐标

  • 在python 3上修复GFF排序

  • 改进BWA对齐设置(默认为intractg加上-Y)并向SimpleAligner添加align_contigs方法

  • 添加pysamtools_view命令

  • 改进簇分割

  • 添加multiprocessing-logging配方

  • 只有当退出代码不为零时才输出BWA的stderr

  • 添加一个排序gff文件的功能

  • 关闭打开的文件描述符

  • 使不精确的插入位点更真实

  • 修复read_index属性

  • 使readtagger适应更高覆盖率的样本集

  • 修复readtagger在没有产生丢弃标签文件时的崩溃问题

  • 将左和右支持配对的数目添加到GFF

  • 分割以反向读取开始的簇,这些读取只包含BD标签

0.3.24 (2017-05-11)

  • 如果正向和反向方向之间有多个极性切换,则分割簇

  • 操纵cigarlist的副本以避免numpy问题

0.3.23 (2017-05-09)

  • 在bam_readtagger.xml中公开参考fasta选项

0.3.22 (2017-05-09)

  • 将readtagger CLI从argparse移动到click

  • 如有必要,则索引bam文件

  • 将multiprocessing pool替换为ProcessPoolExecutor

  • 在标记读取时设置matesequence

  • 修复readtagger模块中的假阳性问题

  • 如果传递–shm_dir或定义SHM_DIR环境变量,则在共享内存中进行cap3组装

  • 通过分割输入bam并行化findlcluster

  • 添加用于快速验证IGV截图的check_call.py脚本

0.3.21 (2017-04-27)

  • 修复确定参考名称时的崩溃问题

0.3.20 (2017-04-27)

  • 猜测最佳TE匹配并将其写入GFF Parent

  • 修复输入文件已经排序的情况

  • 从要求中删除blast

0.3.19 (2017-04-27)

  • 跳过在当前工作目录中创建tempdirs

  • 删除特定于blast的文件

  • 切换到使用BWA进行检测插入的注释

  • 添加更多日志记录,默认情况下不更改排序顺序,除非特别要求

  • 对坐标排序的文件进行 dovetailing

0.3.18 (2017-04-25)

  • 修复由于-t和-a选项切换引起的小型输出

0.3.17 (2017-04-25)

  • 修复文件查找

  • 更新依赖项。

0.3.16 (2017-04-23)

  • 并行化readtagger

0.3.15 (2017-04-20)

  • 如果AD和BD标签都导致插入,则不将读取计为支持

  • 删除sambamba支持

0.3.14 (2017-04-19)

  • 对按readname排序的文件执行readtagging

  • 捕获可能的错误

  • 添加BWA对齐模块以替换Blast

0.3.13 (2017-04-05)

  • 添加输出簇contigs为fasta的可能性

0.3.12 (2017-03-31)

  • 修复和加速nref (=非支持证据)的计算

  • 更新先验和基因型频率到一个更现实的模型

0.3.11 (2017-03-28)

  • 为基因型模块添加测试用例

  • 在完整对齐文件上流式传输而不是获取区域,pysam.AlignmentFile.fetch太慢

0.3.10 (2017-03-26)

  • 恢复本地conda依赖项解析

  • 修复readtagger.add_mate在其中一个配对未映射时也能工作的问题

0.3.9 (2017-03-26)

  • 添加一个基因型模块

  • 如果配对不在适当的配对中,则保留替代对齐的标签

0.3.4 (2017-03-02)

  • 使用多线程加速组装步骤

  • 实现Cluster.can_join方法的缓存

0.3.3 (2017-03-02)

  • 修复写入硬剪辑读取簇的GFF时的崩溃问题

  • 更改令人困惑的变量名称和复制粘贴的文档字符串

0.3.2 (2017-03-02)

  • 修复当元组以1,2,7或8开头时的崩溃问题

0.3.1 (2017-03-02)

  • 修复当cigartuple中的不匹配是最后一个项时的崩溃问题

0.3.0 (2017-03-02)

  • 为findcluster脚本添加galaxy工具

  • 添加新的脚本,该脚本可以找到读取簇并输出包含这些簇的GFF或BAM文件。

  • 实现将簇写入GFF文件

  • 实现将带有CD标签的簇编号注释的读取写入

  • 根据读取是否有助于共同的contigs合并簇

  • 在合理的地方使用cached-property

  • 添加用于查找、连接和注释读取簇的模块

  • 将cigartuple表示为namedtuple

  • 添加一个Roadmap文件

  • 添加更多逻辑以找到插入的末端

  • 操纵读取簇以找到TSDs

  • 添加cap3组装和组装读取操作的模块

  • 修复conda配方脚本入口点

0.2.0 (2017-02-21)

  • 重新格式化galaxy包装器中的帮助文本

  • 将 add_matesequence 脚本添加到当前读取的配对序列作为标签

  • 添加选项以丢弃正确的配对读取的替代标签

  • 缝合由 I 或 D 事件分隔的 CIGAR

  • 添加一个知道如何格式化的标签元组

  • 更新 README.rst 示例,使用当前的默认标签前缀

  • 测试是否丢弃已验证的读取

  • 将共享于 galaxy 测试的测试文件创建符号链接,为 allow_dovetailing 脚本添加测试用例

  • 修复 HISTORY.rst 格式

0.1.13(2017-02-17)

  • 添加开发说明

  • 在部署步骤中安装 planemo

0.1.12(2017-02-17)

  • 再次测试部署

0.1.11 (2017-02-17)

  • 测试部署

0.1.10 (2017-02-17)

  • 修复工具栏部署

0.1.9 (2017-02-17)

  • 将自动化部署添加到 Galaxy 工具栏

  • 添加开发和发布流程说明

0.1.8 (2017-02-17)

  • 小版本发布以测试发布流程

0.1.7 (2017-02-17)

  • 扩展测试,包括覆盖率测试

  • 自动化部署到 pypi 和 conda

  • 使用 pyup.io 注册项目

0.1.6 (2017-02-16)

  • 重命名为 readtagger

  • 修复一个过早关闭文件描述符的 bug,导致 BAM 文件损坏

  • 扩展测试

0.1.5 (2017-02-12)

  • 添加选项 (-wd) 以将次优标签写入单独的 BAM 文件

  • 添加选项 (-wv) 以将验证过的标签写入单独的 BAM 文件

  • 通过让 sambamba 处理 BAM 读取和写入来改进性能。此外,消除解析 cigar 字符串的正则表达式

0.1.4 (2017-02-10)

  • 添加选项 (-k) 以在替代标签不更好地解释软剪辑读取时保留它们。默认情况下是丢弃它们。

0.1.3.2 (2017-02-08)

  • 修复 dovetailing 脚本

0.1.3 (2017-02-07)

  • 添加选项以在标记读取时允许对齐文件中的 dovetailing

  • 为独立脚本添加单独的入口点

0.1.2 (2017-02-05)

  • 添加 conda 脚本

  • Python3 字符串修复

0.1.0 (2017-02-05)

  • 初始版本

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源分布

readtagger-0.5.25.tar.gz (84.7 kB 查看哈希值)

上传时间

构建分布

readtagger-0.5.25-py3-none-any.whl (93.0 kB 查看哈希值)

上传时间 Python 3

由以下支持