FSL的Pydra任务包
项目描述
pydra-fsl
Pydra为FSL提供的任务。
Pydra 是一个数据流引擎,它提供了一套轻量级的抽象,用于DAG构建、操作和分布式执行。
FSL 是一套用于FMRI、MRI和DTI脑成像数据分析的综合性工具库。
目录
测试接口
模块 | 任务 |
---|---|
bet | BET,RobustFOV |
涡流 | 涡流, ApplyTopup, Topup |
快速 | FAST |
调情 | FLIRT, ApplyXFM, ConcatXFM, ConvertXFM, InvertXFM, FixScaleSkew, Img2ImgCoord, Img2StdCoord, Std2ImgCoord |
fnirt | FNIRT, FNIRTFileUtils, ApplyWarp, ConvertWarp, InvWarp |
迷雾 | FUGUE, PrepareFieldmap, Prelude, SigLoss |
数学 | (实验性) 数学, Mul |
苏珊 | SUSAN |
工具 | ChFileType, FFT, Info, Interleave, Merge, Orient, Reorient2Std, ROI, SelectVols, Slice, SmoothFill, Split, SwapDim |
安装
pip install pydra-fsl
使用此包需要单独安装FSL。请查看FSL的安装说明和许可详情。
自动转换
自动生成的任务可以在pydra.tasks.fsl.auto
子包中找到。这些接口应谨慎使用,因为它们可能未通过测试。经过编辑并通过测试的生成任务将被导入一个或多个与fsl工具包版本对应的pydra.tasks.fsl.v*
子包中(例如,pydra.tasks.fsl.v7_4
)。
持续集成
此模板使用GitHub Actions来运行测试并将包部署到PYPI。在GitHub上创建发布或发布Nipype或Nipype2Pydra转换工具的新版本时,将构建和上传新包。由Nipype或Nipype2Pydra的更新触发的发布由postN
后缀表示,其中N = <nipype-version><nipype2pydra-version>
中的'.'被删除,例如,v0.2.3post185010
对应于此存储库的v0.2.3标签,并使用Nipype2Pydra 0.1.0自动生成从Nipype 1.8.5的包。
开发
方法
此包的开发预计将有两个阶段
- 在此期间,相应的Nipype接口被认为是基准,而Pydra任务是从它们生成的
- 当Pydra任务被认为是成熟的,并且它们被手动编辑时
不同的任务可能在不同时间成熟,因此可能在1和2之间有一个中间阶段。
开发者安装
在可以生成和安装pydra任务接口之前,需要安装对应于FSL特定文件格式的文件格式类fileformats包
pip install -e ./related-packages/fileformats[dev]
pip install -e ./related-packages/fileformats-extras[dev]
然后安装运行自动转换脚本的依赖项,并从它们的Nipype对应项生成Pydra任务接口
pip install -r nipype-auto-conv/requirements.txt
运行转换脚本以将Nipype接口转换为Pydra
nipype-auto-conv/generate
从源目录以开发者模式安装repo,并安装pre-commit以确保代码风格和质量的一致性。
pip install -e .[test,dev]
pre-commit install
自动转换阶段
自动转换的Pydra任务是从相应的Nipype接口以及位于nipype-auto-conv/specs/
中的YAML规范中的"转换提示"生成的。自文档化的转换规范应手动编辑,以帮助自动转换器生成有效的pydra任务。编辑一个或多个转换规范后,应通过运行以下命令重新生成pydra.tasks.fsl.auto
包
nipype-auto-conv/generate
应在自动生成的任务上运行测试,以查看它们是否有效
pytest pydra/tasks/fsl/auto/tests/test_<the-name-of-the-task-you-edited>.py
如果测试通过,则应编辑pydra/tasks/fsl/v*/__init__.py
文件以导入自动生成的任务接口,表示它已通过验证并准备好使用,其中v*对应于您针对其测试的FSL版本,例如
from pydra.tasks.fsl.auto import <the-task-you-have-validated>
并将测试文件pydra/tasks/fsl/auto/tests/test_<validated-task>.py
复制到pydra/tasks/fsl/v*/tests
。
文件格式和示例测试数据
自动生成的测试将尝试根据字段类型及其任何约束,为要测试的任务实例提供合理的默认值。然而,在参考底层工具的文档后,这些值通常需要手动覆盖。
对于基于文件的数据,将自动为选定的格式类型创建文件系统对象,例如Nifti、Dicom。因此,在YAML规范的inputs > types
和outputs > types
字典中,使用与fileformats类对应的“mime-like”字符串指定文件格式是很重要的。
如果所需文件类型在fileformats中没有实现,请参阅fileformats
文档[https://arcanaframework.github.io/fileformats/developer.html],了解如何定义新的文件格式类型,并查看fileformats-medimage-extras,了解如何为它们实现生成示例数据的方法。针对FSL特定的新文件格式及其生成示例数据的函数,应在related-packages/fileformats
和related-packages/fileformats-extras
中分别定义。
许可证
本项目遵循Apache License, Version 2.0条款。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。