从高吞吐量顺序读取中修剪适配器

atropos的Python项目详细描述


travis cipypidoi

阿托波斯

ATROPOS是一种特殊、灵敏、快速修整NGS读数的工具。它是受人尊敬的Cutadapt Read Trimmer(https://github.com/marcelm/cutadapt" rel="nofollow">https://github.com/marcelm/cutadapt,doi:10.14806/ej.17.1.200)的分支,主要改进如下:

  1. 多线程支持,包括极快的"并行写入"模式。
  2. 一种新的基于插入对齐的成对末端读取修剪算法的实现,该算法比原始的基于cutadapt适配器对齐的算法更加敏感和具体。此算法还可以纠正读取重叠部分之间的不匹配。
  3. 修剪特定类型数据的选项(mirna、亚硫酸氢钠seq)。
  4. 一个新的命令("detect"),用于检测适配器序列和其他潜在的污染物。
  5. 一个新的命令("error"),用于估计排序错误率,这有助于选择适当的适配器和质量微调参数值。
  6. 生成与fastqc类似的读取统计信息的新命令("qc")。trim命令还可以计算修剪前后的读取统计信息(使用"--stats"选项)。
  7. 改进的摘要报告,包括对序列化格式(json、yaml、pickle)的支持,对用户定义模板的支持(通过可选的jinja2依赖项),以及与multiqc的集成
  8. 合并重叠读取的能力(这是实验性的,功能有限)。
  9. 能够将摘要报告和日志消息写入单独的文件。
  10. 读取sam/bam文件和读/写交错fastq文件的能力。
  11. 直接修剪SRA加入中的读取。
  12. 一个进度条,以及其他一些小的可用性增强功能。

手动安装

atropos可从pypi获得,并可使用pip安装。

首次安装依赖项:

    必要时
    • Python3.3+(不支持Python2.x)
      • 注意:我们在Python3.4.2中发现了一个可能的错误,该错误会导致随机分割错误。我们认为这主要影响单元测试(特别是3.4.3中的测试)。如果遇到此错误,建议升级到较新的python版本。
    • cython 0.25.2+(pip安装cython
  • 也许是python库
    • pytest(用于运行单元测试)
    • ProgressBar2或TQMM(ProgressBar支持)
    • pysam(sam/bam输入)
    • 高棉2.0+(用于检测低频适配器污染)
    • Jinja2(用于用户定义的报表格式)
    • ngstream(用于sra流媒体),需要ngs

pip可用于安装atropos和可选依赖项,例如:

pip安装atropos[tqdm,pysam,ngstream]

条件

有一个阿托波斯食谱"https://anaconda.org/bioconda/atropos" rel="nofollow">bioconda

conda安装-c bioconda atropos

码头工人

aDocker图像可用于Docker Hub中的atropos。

docker运行jdilon/atropos<;arguments>;

用法

阿托泊斯几乎完全向后兼容CutAdapt。如果您当前使用的是cutadapt,那么您只需安装atropos,然后在命令行中用一个关键的区别替换可执行文件名:您需要使用选项来指定输入文件名。例如:

atropos -a AGATCGGAAGAGCACACGTCTGAACTCCAGTCACGAGTTA -o trimmed.fq.gz -se reads.fq.gz

要利用多线程,请设置--threads选项:

atropos --threads 8 -a AGATCGGAAGAGCACACGTCTGAACTCCAGTCACGAGTTA -o trimmed.fq.gz -se reads.fq.gz

要利用新的校准器(如果已将末端读取与3'适配器配对),请将--aligner选项设置为"insert":

atropos --aligner insert -a AGATCGGAAGAGCACACGTCTGAACTCCAGTCACACAGTGATCTCGTATGCCGTCTTCTGCTTG \
  -A AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT -o trimmed.1.fq.gz -p trimmed.2.fq.gz \
  -pe1 reads.1.fq.gz -pe2 reads.2.fq.gz

有关更完整的使用信息,请参见文档

出版物

atropos在peerj中发布。

请引用为:

< Buff行情>

迪迪安JP,马丁M,柯林斯FS。(2017)ATROPOS:特定、敏感、快速的排序读取修剪。peerj 5:e3720https://doi.org/10.7717/peerj.3720

论文中的结果可以使用论文目录中定义的工作流完全复制。

原文的引文是:

< Buff行情>

马塞尔·马丁。"Cutadapt从高通量测序读取中删除适配器序列。"EMBNet.Journal,17(1):10-121011年5月。http://dx.doi.org/10.14806/ej.17.1.200

链接

路线图

1.2</H3>
  • 迁移到用于文件管理的xphyle。
  • 迁移到pokrok以进行进度条管理。
  • 接受多个输入文件。
  • 支持sam输出(包括33)。
  • 使用ngstream
  • 阅读"裁剪"(50)
  • 支持thruplex样式适配器(其中条形码是查询序列的一部分;55)
  • 可访问性:
    • 创建自制配方。
    • 自动更新每个版本的conda和自制配方。
    • 使用argparse2tool创建galaxy工具描述
  • 改进文档(24)
  • 移植到最新版本的cutadapt中的改进https://cutadapt.readthedocs.io/en/stable/
  • 切换到使用入口点而不是Atropos可执行文件。

1.3</H3>

1.4</H3>
  • 目前,InsertAligner每端需要一个3'适配器。适配器修剪稍后将被推广,以便a)插入对齐器可以处理多对匹配的适配器和/或b)多个不同的对齐器可以用于不同的适配器。
  • 与适配器数据库集成,以改进检测到的污染物与已知适配器的匹配,使用已知适配器自动修剪数据集,以及(可选)提交新数据集的适配器信息S.
  • 迁移到seqio(https://github.com/jdition/seqio)以读取/写入序列文件。
    • 也可以看一下如何使用htseq:https://github.com/simon-anders/htseq" rel="nofollow">https://github.com/simon anders/htseq
  • 基于读取ID的通用读取筛选:https://github.com/marcelm/cutadapt/issues/107
  • 当前,必须对sam/bam输入文件进行名称排序;添加一个选项以1)使用samtools或sambamba对内联读取进行预排序,或2)在内存中缓存每个读取,直到找到其匹配项。

1.5</H3>
  • 提供对适配器锚定的更多用户控制:https://github.com/marcelm/cutadapt/issues/53
  • 允许用户定义自定义读取结构:https://github.com/nh13/read-structure-examples" rel="nofollow">https://github.com/nh13/read-structure-examples
  • 支持对端解复用
  • 基于条形码的解复用:https://github.com/marcelm/cutadapt/issues/118" rel="nofollow">https://github.com/marcelm/cutadapt/issues/118
  • 考虑为read1和read2支持不同的错误率。
  • 添加一个clipoverlapping修饰符,该修饰符将删除读取重叠(与合并相反)。
  • 更仔细地观察Illumina双色化学问题的解决方案:
    • 提供并选择免除G通话的质量评估
    • 从读数中删去3’gs
  • 同时,还要考虑使用单色化学(ISEQ)解决任何问题。
  • 考虑是否支持原始IonTorrent数据的修剪/QC。
< 1.6 >< > >

2</H3>

超过2.0

  • 实施其他替代对齐算法。
  • 在adept中实现错误检测算法:https://github.com/lanl-bioinformatics/adept" rel="nofollow">https://github.com/lanl bioinformatics/adept
  • 探索新的质量调整算法
  • 镰刀是一种有趣的新修剪器。根据即将发表的论文中基准测试的外观,我们将把它添加到与atropos进行比较的工具列表中,并可能实现适配器匹配的贝叶斯方法。
  • 尝试用基于异步的实现替换多核实现(使用processpoolexecutor和uvloop)。
  • 自动自适应调整队列大小,以最大限度地平衡内存使用和延迟。

虽然我们认为命令行界面是稳定的,但atropos的内部代码组织可能会发生变化。此时,我们建议不要直接与作为库的atropos接口(或者准备让您的代码崩溃)。内部代码组织将从2.0版开始稳定,计划在2017年某个时候进行。

如果您想建议其他增强功能,可以在我们的github页面提交问题和/或请求。

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

推荐PyPI第三方库


热门话题
java Jgit对于给定的存储库,我们如何确定新提交的列表,以及每个提交来自哪个分支?   从MS Access数据库添加java ComboBoxItem   如何禁止Java列表中不同类的实例?   java在没有Web的JAXR上使用Shiro过滤器。xml   由于java原因,无法在Ubuntu上安装Netbeans 8.2。awt。未找到恐怖和辅助技术   java JUnit对RuntimeException的处理(特别是)   java空集合在Apache CXF服务(JAXWS)中被转换为null   java CannotAcquireLockException问题   sql如何在数据库中对(Java)枚举建模(使用SQL92)   安卓在Java中获取友好url后面的文件名   java如何访问数组名以获取列表?   javascript Java Nashorn longBitsToDouble   java控制台<init>错误   java将一个LinkedList追加/连接到另一个LinkedList的最有效方式是什么?   Java for正在跳过的循环   java帮助创建带有动画的复杂Swing GUI   java Android编辑文本。setHint在片段中不工作