用于形态学处理的工作流程。
项目描述
形态学工作流程
此项目包含几个用于处理形态学的流程。
- 初始化:创建初始配置文件,用户可以在此基础上根据需要更新。
- 获取:从在线数据库(如Allen、NeuroMorpho或MouseLight)下载形态学。
- 占位符:计算给定区域和mtype集的占位符。
- 整理:从原始形态学中确保形态学可以与BBP代码的其余部分一起使用(点击图片获取更多详细信息)。
- 标注:为特定BBP代码所需的形态学创建各种标注(点击图片获取更多详细信息)。
- 修复:对形态进行修改以纠正体外重建的伪影(点击图片查看更多详情)。
- 克隆:克隆形态并应用一些变化(点击图片查看更多详情)。
- 转换:通过重新缩放胞体、切片及其直径来转换形态(点击图片查看更多详情)。
总的来说,用户在.csv
文件中提供一个形态列表,包括名称和路径,以及一个luigi.cfg
配置文件。每个工作流程独立运行并创建一个输出文件夹,每个任务一个子文件夹。在每个子文件夹中,将有一个report.csv
文件和一个包含任务输出文件的data
文件夹(如果有)。在report.csv
文件中,列包含这些文件的路径,附加信息,以及如果任务在该形态上失败时的错误消息,还有一个用于在后续任务中过滤有效形态的标志is_valid
。在每个工作流程结束时,还将创建另一个report.csv
文件,其中包含每个任务的主要输出列,以及一个包含工作流程结果的简要总结的report.pdf
文件。
通常,用户应运行Curate
工作流程,然后是Annotate
工作流程,最后是Repair
工作流程。
完整的文档可以在这里找到
- 稳定版:https://morphology-workflows.readthedocs.io/en/stable/
- 最新版:https://morphology-workflows.readthedocs.io/en/latest/
安装
这应该使用pip进行安装
pip install morphology-workflows
用法
使用Initialize工作流程创建工作流程的输入
通常,用户应使用此工作流程创建一个新的项目文件夹。它将创建运行其他工作流程所需的文件。例如,以下命令
morphology-workflows Initialize --source-database NeuroMorpho
将创建从NeuroMorpho数据库下载形态并在这组形态上运行其他工作流程的输入。
如果用户想要为Curate
/ Annotate
/ Repair
工作流程提供任意形态,可以使用以下命令
morphology-workflows Initialize --input-dir <path-to-the-morphologies>
以创建这些工作流程所需的数据集。
Initialize工作流程完成后,用户可以根据需要更新输出(有关每个工作流程的详细信息,请参阅下一部分)。
创建Fetch
工作流程的输入
此工作流程有助于从在线数据库中获取形态。此工作流程只需要一个配置文件,该文件取决于获取形态的来源。
可能的来源有
- NeuroMorpho
- MouseLight
- Allen
对于它们中的每一个,配置文件应该是一个包含如下示例的对象列表的JSON文件
-
NeuroMorpho
[ { "species": "mouse", "brain_region": "neocortex", "cell_type": "interneuron", "nb_morphologies": 10 } ]
-
MouseLight
[ { "brain_region": "neocortex", "nb_morphologies": 10, "seed": 0 } ]
-
Allen
[ { "species": "Mus musculus", "brain_region": "VISli", "cell_type": "pyramidal", "nb_morphologies": 10, "seed": 0 } ]
在这些示例中,seed
属性是可选的,仅用于采样哪些形态在通过过滤后将被获取。
列表中的每个JSON
对象将为获取的形态提供一组,取决于给定的过滤条件。请注意,所有属性都是可选的,因此可以传递一个空对象以从数据库中获取所有形态,尽管这不被推荐。
为Curate
、Annotate
和Repair
工作流程创建输入
通常应在Curate
工作流程之后运行Annotate
和Repair
工作流程,因为它们的输入应该是Curate
工作流程的输出。但是,仍然可以在任意输入上运行它们(尽管形态必须是有效的,就像由Curate
工作流程处理的那些形态一样)。
输入应包括以下内容
-
包含输入形态的目录。
-
一个包含以下列的CSV文件
morph_path
:形态文件的路径。morph_name
:形态的名称。mtype
:形态的形态类型(此列是可选的)。
任何其他列都会保留在结果中,但不用于工作流程。
请注意,列名不应在逗号和名称之间包含空格。
-
一个包含工作流程中所有任务配置的
luigi.cfg
文件。 -
一个可选的包含日志配置的
logging.conf
文件。如果您希望使用默认的日志行为,请删除此文件,并在luigi.cfg
中的logging_conf_file = logging.conf
行上注释。
示例文件夹包含luigi.cfg
和logging.conf
文件的示例。
可以使用Fetch工作流程创建这些输入,该工作流程从在线数据库中下载形态并创建正确格式的数据集。
运行工作流程
这些工作流程基于luigi
库,但也可以通过命令行界面运行。例如,您可以使用以下命令运行Curate
工作流程
morphology-workflows Curate
注意:此命令必须在包含
luigi.cfg
文件的目录中执行。此类文件的示例在examples
目录中给出。
默认情况下,使用本地调度器,但也可以使用Luigi的主调度器,使用-m
或--master-scheduler
触发器。
morphology-workflows -m Curate
一旦Curate
工作流程运行,就可以直接运行Annotate
和Repair
工作流程,它们将仅使用Curate
工作流程的结果作为输入。
morphology-workflows Annotate
morphology-workflows Repair
请注意,也可以直接运行这3个工作流程,因为每个工作流程都相互依赖。
morphology-workflows Repair
更多详细信息可以在文档的命令行界面部分找到,或者通过运行以下命令
morphology-workflows --help
morphology-workflows <workflow> --help
结果
每个工作流程都将创建多个新目录,每个子步骤一个目录。这些新目录可以使用result_path
参数嵌套在每个工作流程的全局结果目录中。这些目录包含中间数据,因此可以了解为什么在某个步骤上无法验证形态。无效的形态应在再次由工作流程处理之前手动修复。
主工作流程(Curate、Annotate和Repair)还将创建一个最终的CSV文件,其中包含工作流程的大部分相关数据(主要子步骤结果和最终形态路径)。最后,Repair工作流程可以生成包含最终形态的形态发布,这些形态可以通过工作流程自动验证和修复。通常,这些形态对于后续使用是最相关的。
标记为无效的形态在重新运行工作流程之前可以手动修复。
示例
示例文件夹包含一个简单的示例,该示例将检索并处理一组形态。提供了一个dataset.csv
文件,它被用作工作流程的输入。还提供了一个luigi.cfg
文件,以提供工作流程的默认配置。此示例可以通过以下命令简单运行
./run_curation.sh
此脚本将创建一个新的目录out_curated
,其中将包含报告和所有结果。
引用
当您使用此软件时,我们恳请您引用以下DOI
资助与致谢
此软件的开发得到了瑞士联邦理工学院(EPFL)的蓝色大脑项目的研究中心从瑞士政府ETH委员会的资助。
有关许可证和作者信息,请分别参阅 LICENSE.txt
和 AUTHORS.md
。
版权所有 © 2021-2022 蓝脑项目/洛桑联邦理工学院
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发
哈希值 for morphology_workflows-0.12.1-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7e569f47e169af67f2b7502d63618a5e6b272874e1cbb244a776c8b9a2a8816a |
|
MD5 | 283b71739ba2d32c96d6244a249597aa |
|
BLAKE2b-256 | d711a106d934d66d4deb64118cafb7996eb03d73db0834262fc1a34740f76fd2 |