Provenance Replay--QIIME 2平台上科学可
我们知道,Qiime2的可重复性一直是值得称赞的,如下图所示,每个文件都可以有下图的流程图和详细操作信息记录,即使自己回顾也是极好的,我们的流程如果不够完善,qiime2帮我们记录啦。现在多数涉及生物信息的文章是要求提供代码,甚至数据的。之前的qiime2 2023.5版本的更新新增了可重复性数据插件,这里就看下这个插件如何使用啦,发文章是不是更方便啦,说不准未来是微生物文章的标配,快学起来吧!

以上图片来自插件作者在预印本服务器上的文章:arXiv:2305.11198
研究可重复性对于证实、建立和学习至关重要 科学研究的结果,但众所周知的挑战性 生物信息学,通常涉及大型数据集和复杂的分析 涉及许多不同工具的工作流程。此外,许多生物学家不是接受过如何有效记录其生物信息学分析步骤的培训确保可重复性,因此经常缺少关键信息。
从QIIME 2生成的结果生成新的可执行代码生物信息学平台工具
QIIME 2 Provenance Replay功能,该功能将QIIME 2结果的计算历史(或“来源”)解析为有向图结构,并生成可用于复制或复制分析的新可执行代码。这支持研究验证和自动化,旨在改善QIIME 2分析的协作和报告。
provenance-lib 允许您:
- 为喜欢的QIIME 2接口生成可执行脚本, 允许用户“重播”先前的分析
- 自动将分析从一个界面转换为另一个界面
- 在分析发布期间报告使用的引文、计算操作和软件版本
简要教程
准备工作
- 激活 2023.5 或更高版本的 QIIME 2 conda 环境。
- 导航到包含一些 QIIME 2 结果的目录(即 和文件)。如果您没有这些,您可以从QIIME 2运动图片教程中下载一些
.qza``.qzv
。
- 导航到包含一些 QIIME 2 结果的目录(即 和文件)。如果您没有这些,您可以从QIIME 2运动图片教程中下载一些
如果运行以下命令,它将生成一个名为reproducibility_supplement.zip
replay supplement \
--i-in-fp . \
--o-out-fp ./reproducibility_supplement.zip
请注意,解析许多结果可能需要很长时间。预计在一台体面的现代笔记本电脑上 ~10 分钟即可获得 500 个结果。
Supplement
如果您在包含一个实验的所有结果的目录中运行上述命令,它将生成重现性文档,您可以作为补充材料包含在论文旁边。解压缩它以查找以下内容:
- recorded_metadata.tsv
- python3_replay.py 的 python3 重播脚本
- cli_replay.sh的 CLI 重播脚本
- Citations.bib 的引文 BIBTEX 文件
使用 --p-recurse 包含子目录
我通常将QIIME 2分析的结果保存在具有许多子文件夹的文件夹中。如果要包含所有这些子文件夹,只需使用--p-recurse
标志:
replay supplement \
--i-in-fp . \
--p-recurse \
--o-out-fp ./reproducibility_supplement.zip
引用
使用以下内容生成用于分析的所有引文的列表:
replay citations \
--i-in-fp ~/data/my_q2_data_dir \
--o-out-fp ./my_analysis_citations.bib
可以导入Zotero(或Mendeley,或您最喜欢的引文管理器),然后为您使用的所有计算方法生成引文。这提供了更多科学家和开发人员的好处,他们构建了不那么有魅力的完全关键的底层软件
不共享私有元数据
元数据文件的目录可以按原样删除、编辑或包含。这取决于你。重要的是要记住,某些元数据通常不能发布(例如,如果它包含受试者的个人健康信息)。通过将--p-no-dump-recorded-metadata
标志传递给命令,可以防止将所有示例元数据写入补充。如果您无法使用此功能,您仍然可以在共享之前删除元数据目录。
replay supplement \
--i-in-fp . \
--p-no-dump-recorded-metadata \
--o-out-fp ./reproducibility_supplement.zip
包括公共元数据以简化确证
另一方面,如果您的研究元数据可以发布,包括它将使其他人更容易证实和扩展您的工作。传递--p-use-recorded-metadata
标志会将对转储元数据文件的引用插入到脚本中,以便在运行脚本时自动使用原始元数据。
replay supplement \
--i-in-fp . \
--p-use-recorded-metadata \
--o-out-fp ./reproducibility_supplement.zip
尽可能发布原始数据
如果你被允许发表你的原始数据,这样做将使你的工作更容易证实和扩展,为后来的调查人员增加潜在的价值,并可能增加引用的可能性。那里有很多数据存储库,您选择哪个完全取决于您。
一个常见的问题 - 可能值得以与开始实际分析时相同的格式发布数据。我最近参与了一项研究,将数据发布到SRA,这需要与我们实际分析过程中使用的格式不同的解复用格式。除了SRA,我们还在可重复性补充中包含了原始序列文件(以我们用于研究的原始格式)。这样,补充的用户实际上可以直接重新运行脚本,而无需重写将数据导入QIIME 2以适应解复用SRA格式的步骤。通过将数据和脚本打包在一起,我们还可以将输入数据的相对文件路径硬编码到我们的重播脚本中 - 用户只需解压缩并运行。
最佳做法:共享前编辑脚本
补充中包含的 CLI 和 Python 3 脚本将允许不同接口的用户以直接的方式阅读、理解、证实和扩展您的工作。但是,它们需要一点专家指导才能有效工作。
这些脚本是自我记录的,会告诉您需要进行哪些更改。这里有几个要点。
- 在共享之前,请按照脚本中的所有说明进行操作。唯一比不运行的代码更糟糕的是其他人的代码不运行。
- 如果可能,将脚本指向输入数据。输入数据不是在来源中捕获的;它通常太大。我喜欢尽可能将数据包含在 zip 文件中,以便我可以在脚本中对文件路径进行硬编码。如果这对你来说不可行,包括向用户提供关于在何处查找数据的基本说明,或者你使用了哪种类型的数据,以便他们可以自带数据。
考虑在共享之前重新运行分析脚本
错别字时有发生,我做了一些。如果计算成本不太高,则从可重现性脚本重新运行分析将确保读者/用户获得工作代码。
最后,看下面向高级用户的Python API
import provenance_lib
# helptext for the package
help(provenance_lib)
# command-specific helptext
help(provenance_lib.replay_supplement)
# help alternative for iPython and Jupyter Notebook only
? provenance_lib.replay_supplement
# Generate a reproducibility supplement for the current directory's
# Results including all of its subdirectories recursively
provenance_lib.replay_supplement(
'.', './reproducibility-supplement.zip', recurse=True)