并行化、断点续分析、输出集合、基于阴性对照识别污染、宏基因组学工作流程(即将推出!)
抱歉,竟然比发布日期一个月才发现QIIME 2 2023.5 版本更新了!计划的下一个QIIME 2版本计划于2023年8月发布(QIIME 2023.8)。
激动人心的公告
Parsl
QIIME 2 流程现在可以通过parsl方式并行化,在 CLI (命令行)上,使用基本parsl
配置,传递--parallel
标志给一个给定流程,可以在大多数非 HPC(超算) 系统上实现并行化。
在 Python API 中,调用流程以获得相同的结果(如diversity.pipelines.core_metrics.parallel(*args, **kwargs))
)
Parsl 允许对 HPC 系统进行更详细的配置。有关如何在 QIIME 2 中执行此操作的更多文档可以在上面链接的开发文档中找到。
流程恢复
中途失败的 QIIME 2 流程现在可以从其故障点恢复,而无需从头开始重新启动。默认情况下,在 CLI 上启用此行为。QIIME 2 将在默认缓存(或流程上的新标志--use-cache
指示的缓存)中创建一个池,该池将存储正在运行的管道的所有中间结果,并在失败后重新运行管道时尝试重用此池中的结果。管道成功后,将删除池。
如果要指定要使用的池(管道成功后不会自动删除),请提供–recycle-pool–no-recycle标志,后跟要用于缓存中池的密钥。如果要选择退出此行为,请传递该标志。
在 Python API 中,必须使用池中的常用语法在池中用于管道恢复。
from qiime2 import Cache
cache = Cache('cache_path')
pool = Cache.create_pool('pool', reuse=True)
with pool:
diversity.pipelines.core_metrics(*args, **kwargs)
# 这与以下命令相同
qiime diversity core-metrics <inputs and params> --use-cache 'cache_path' --recycle-pool 'pool' <outputs>
这将有望使它在执行管道时遇到墙壁时间或其他一些暂时性错误,您不会丢失管道在失败之前所做的所有进度。
注意:如果将流程任何输入或参数更改,则可能无法重用上一次运行创建的所有中间结果;但是,QIIME 2 仍将重用更改后的参数未涉及的任何结果。
输出集合
现在可以将工件集合作为单个输出返回。在 CLI 上,需要为输出集合提供一个尚不存在的目录(与--output-dir
相同)。他们将创建此目录,然后将所有工件以及一个 .order
文件写入该目录,该文件仅按顺序包含集合中所有工件的名称。
在 Python API 中,将返回一个 ResultCollection
对象,该对象可以通过与字典大致相同的方式进行访问,但添加了将对集合中的所有工件运行validate
的方法。.save
可以在 ResultCollections
上调用,以使用与 CLI 完全相同的规则将它们保存到磁盘。ResultCollection.load
可以调用以将目录加载到ResultCollection
对象中,就像加载单个工件一样。
q2-quality-control
添加了三个新命令以供使用[decontam](https://github.com/benjjneb/decontam)
:
-
decontam-identify- 支持使用频率信息(定量测量)或对照中的特征普遍性基于阴性对照识别污染。 -
decontam-score-viz- 污染物的直方图摘要,可选择对特征计数进行归一化。 -
decontam-remove-(实验性)按分数过滤特征表。将来可能会将其替换为 feature-table's filter-features
可重复性
Provenance-lib 已经添加到了核心发行版中!provenance-lib提供对provenance replay的访问,这使用户能够从存储在所有QIIME 2结果中的数据来源生成新的可执行脚本。想了解更多?在QIIME 2论坛上查看@ChrisKeefe的教程,并阅读我们新的预印本,促进生物信息学的可重复性.立即开始使用它来记录您的生物信息学,或者通过将来源回放应用于他们的 QIIME 2 结果来学习其他人所做的事情。激活 QIIME 2 2023.5 conda 环境后,通过运行replay --help
访问此功能。
重大变更
-
Q2CLI
-
[添加了命令 qiime tools list-types
和qiime tools list-formats
命令到qiime tools import
命令,并将--show-importable-types
替换为--show-importable-formats
。新命令列出每个可用语义类型或格式的说明(如果可用),并且仅允许列出感兴趣的查询。 -
Q2-组成
-
解决了 da-barplot
可视化效果,对feature id做出假设的问题。da-barplot
以前在分号上拆分特征 ID 以提高数字的可读性,假设不同的分号分隔字段是不同的分类级别。但是,不能保证功能 ID 中的分号始终是级别分隔符,或者如果打算使用级别分隔符,则它们始终是分号(例如,|
也是常用的分隔符)。用户现在必须提供参数--p-level-delimiter ';'
才能实现上述行为。
以下是该版本的亮点:
-
QIIME 2 框架
-
修复了进程在退出时清理时可能发生的争用条件 -
Q2-组成
-
修复了
da-barplot
指向包含空格的元数据值的子图的链接断开的错误。 -
修复了
ancombc
在提供单个列::值对时导致tabulate
可视化工具中不需要的reference_level
字符串拆分的bug。 -
在
ancombc
中添加了元数据列类型强制实施,允许包含整数值的分类元数据列在包含在formula
-
向
tabulate
可视化工具添加了单元测试套件 -
q2-feature-table
-
添加了对所有要素表类型的支持。现在,任何特征表都可以转置
这将解决诸如此类的问题
transpose
详见他们的帖子2在论坛上! -
Q2-FMT
-
添加了一个名为
feature-peds
的方法。这计算了移植每个供体特征的受试者比例。 -
重构
sample-peds
以匹配feature-peds
的实现。 -
修复了允许
FeatureTable[Composition]
作为sample-peds
输入的错误。 -
向
sample-peds
中添加了一个drop_incomplete_timepoint
参数。这将允许丢弃大量样本丢失的任何时间点! -
plot-heatmap
添加了级别分隔符参数,允许用户拆分分类字符串 -
q2-longitudinal
-
修复了 feature-volatility
可视化工具中由数字元数据列中的空白值引起的bug -
q2-sample-classifier
-
添加了 Adaboost
对估算器中其他基本估算器的支持 -
Q2-分类群
-
添加了 barplot
对FeatureTable[PresenceAbsence]
输入的支持。这对于支持我们的一些 QIIME 2 端到端霰弹枪宏基因组学工作流程(即将推出!) -
更新 barplot
的FeatureData[Taxonomy]
可选输入 。对于此用例,功能标签是从功能ID中解析的。 -
Q2 类型
-
添加了 ImmutableMetadata
类型,该类型旨在将 QIIME 2 元数据存放在工件中。这使操作能够输出元数据metadata,这在以前是不可能的,因为 QIIME 2 操作只能输出工件和可视化效果。如果导出ImmutableMetadata
项目,它将是一个普通的旧(可变)元数据文件。 -
添加了对数字样本 ID 的支持
文档更新
-
癌症微生物组干预教程
-
修复了癌症微生物组干预教程中的拼写错误。 -
用户文档
-
在文档的数据资源页面添加了有关** Silva 分类分类器的注释**。具体来说,QIIME 2网站上提供的Silva分类器和参考文件包括物种水平的分类法。虽然Silva的注释确实包括物种,但Silva没有管理物种级别的分类法,因此这些信息可能不可靠。在QIIME 2的未来版本中,我们将不再在Silva分类器中包含物种水平的信息。这在QIIME2论坛上讨论过(见物种标签:警告!和GitHub -
开发者文档
-
添加了有关 Parsl、管道恢复和集合的文档
补丁更新 (2023.5.1)
-
q2cli -
修复了 qiime tools view
任何输入都崩溃的错误。 -
修复了 --use-cache
导致回收池使用与输出目标关联的缓存而不是默认值/提供值的错误。 -
qiime2 -
修复了将parallel/parsl 配置中的值设置为 None 时的弃用警告。 -
q2-cutadapt -
添加了 demux-paired
对混合方向读取的支持
本篇文章来源于微信公众号:微因