跳转到主要内容

神经影像计算环境管理器

项目描述

ReproMan

Supports python version GitHub release PyPI version fury.io Travis tests status codecov.io Documentation

ReproMan旨在简化神经影像计算环境的创建和管理。虽然它专注于神经影像用例,但绝不限于这个科学领域,工具在其他领域也将有用。

状态

ReproMan正处于快速发展阶段。虽然代码库仍在增长,但重点越来越多地转向稳健和安全的操作以及合理的API。由于组织和配置仍然是相当重组和标准化的主题,因此尚未发布任何重大公共版本。

如果您对内部结构和/或为项目做出贡献感兴趣,请参阅CONTRIBUTING.md

安装

ReproMan需要Python 3 (>= 3.6)。

基于Debian的系统(Windows尚未实现 TODO) - 通过pip

默认情况下,通过pip(pip install reproman)安装reproman的核心功能,允许管理数据集等。还有其他安装方案可供选择,因此您可以通过pip install 'reproman[SCHEME]'提供增强的安装,其中SCHEME可以是

  • tests 以安装reproman单元测试电池使用的依赖项
  • full 以安装所有可能的依赖项,例如 DataLad

对于通过pip进行安装,您可能需要一些外部依赖项(例如dockersingularity等),有关这些依赖项的信息,请参阅下一节。

基于Debian的系统

在基于Debian的系统上,我们建议启用NeuroDebian,我们将很快提供ReproMan的最新版本。我们还将从该存储库提供所有必要软件包的回溯版本。

依赖项

我们的setup.py和相关打包描述了所有必要的依赖。在基于Debian的系统上,我们建议启用NeuroDebian,因为我们用它来提供我们所依赖的最近修复的外部模块的后端口。此外,如果您想开发和运行我们的测试套件,请参阅CONTRIBUTING.md以了解有关额外依赖项的更多信息。

reproman run的典型工作流程

此示例主要基于为"典型工作流程"创建的示例,该示例针对///repronim/containers创建,我们建议您参阅以了解更多关于YODA原则等内容。在这个reproman示例中,我们将遵循完全相同的目标——在样本数据集上运行MRIQC,但这次利用ReproMan在远程运行计算的能力。DataLad和///repronim/containers仍将用于数据和处理容器,而reproman将在AWS云中建立一个小HTCondor集群,运行分析并获取结果。

步骤1:创建HTCondor AWS EC2集群

如果您第一次使用ReproMan与AWS云服务交互,您应该首先提供ReproMan用于与AWS交互的秘密凭据。为此,编辑其配置文件(Linux上的~/.config/reproman/reproman.cfg,OSX上的~/Library/Application Support/reproman/reproman.cfg

[aws]
access_key_id = ...
secret_access_key = ...

免责声明/警告:请勿公开共享或发布这些秘密。

填写...。如果reproman无法找到这些信息,将出现错误消息Unable to locate credentials

运行(需要执行一次,使资源可用于reproman loginreproman run

reproman create aws-hpc2 -t aws-condor -b size=2 -b instance_type=t2.medium

创建新的ReproMan资源:2个安装了HTCondor的AWS EC2实例(我们使用NITRC-CE实例)。

免责声明/警告:在云提供商仪表板(s)中监控您的云资源非常重要,以确保没有运行离开的实例等,以帮助避免因使用云服务而造成高昂的费用。

步骤2:创建分析DataLad数据集并在aws-hpc2上运行计算

以下脚本是从///repronim/containers复制的一个确切副本,其中只将datalad containers-run命令(该命令从本地获取数据并在本地串行运行计算)替换为reproman run,该命令将数据集(无数据)发布到远程资源,获取数据,通过HTCondor在2个节点上并行运行计算,然后获取结果

#!/bin/sh
(  # so it could be just copy pasted or used as a script
PS4='> '; set -xeu  # to see what we are doing and exit upon error
# Work in some temporary directory
cd $(mktemp -d ${TMPDIR:-/tmp}/repro-XXXXXXX)
# Create a dataset to contain mriqc output
datalad create -d ds000003-qc -c text2git
cd ds000003-qc
# Install our containers collection:
datalad install -d . ///repronim/containers
# (optionally) Freeze container of interest to the specific version desired
# to facilitate reproducibility of some older results
datalad run -m "Downgrade/Freeze mriqc container version" \
    containers/scripts/freeze_versions bids-mriqc=0.16.0
# Install input data:
datalad install -d . -s https://github.com/ReproNim/ds000003-demo sourcedata
# Setup git to ignore workdir to be used by pipelines
echo "workdir/" > .gitignore && datalad save -m "Ignore workdir" .gitignore
# Execute desired preprocessing in parallel across two subjects
# on remote AWS EC2 cluster, creating a provenance record
# in git history containing all condor submission scripts and logs, and
# fetching them locally
reproman run -r aws-hpc2 \
   --sub condor --orc datalad-pair \
   --jp "container=containers/bids-mriqc" --bp subj=02,13 --follow \
   --input 'sourcedata/sub-{p[subj]}' \
   --output . \
   '{inputs}' . participant group -w workdir --participant_label '{p[subj]}'
)

ReproMan:执行文档部分提供了有关reproman run命令的底层原理的更多信息。

步骤3:删除资源

每当计算和获取完成后,您对结果满意时,请使用reproman delete aws-hpc2终止AWS中的远程集群,以免造成不必要的费用。

许可

MIT/Expat

免责声明

它处于beta阶段——大多数功能可用,但文档和API增强仍在进行中,以使其更好。请不要犹豫,提出问题或发送pull request。有关指导,请参阅CONTRIBUTING.md

项目详情


下载文件

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

源代码发行版

reproman-0.4.1.tar.gz (794.4 kB 查看哈希值)

上传于 源代码

由以下支持