跳转到主要内容

用于形态学处理的工作流程。

项目描述

workflow Logo

Version Build status Coverage License Documentation status DOI

形态学工作流程

此项目包含几个用于处理形态学的流程。

  • 初始化:创建初始配置文件,用户可以在此基础上根据需要更新。
  • 获取:从在线数据库(如Allen、NeuroMorpho或MouseLight)下载形态学。
  • 占位符:计算给定区域和mtype集的占位符。
  • 整理:从原始形态学中确保形态学可以与BBP代码的其余部分一起使用(点击图片获取更多详细信息)。
  • 标注:为特定BBP代码所需的形态学创建各种标注(点击图片获取更多详细信息)。
  • 修复:对形态进行修改以纠正体外重建的伪影(点击图片查看更多详情)。
  • 克隆:克隆形态并应用一些变化(点击图片查看更多详情)。
  • 转换:通过重新缩放胞体、切片及其直径来转换形态(点击图片查看更多详情)。

总的来说,用户在.csv文件中提供一个形态列表,包括名称和路径,以及一个luigi.cfg配置文件。每个工作流程独立运行并创建一个输出文件夹,每个任务一个子文件夹。在每个子文件夹中,将有一个report.csv文件和一个包含任务输出文件的data文件夹(如果有)。在report.csv文件中,列包含这些文件的路径,附加信息,以及如果任务在该形态上失败时的错误消息,还有一个用于在后续任务中过滤有效形态的标志is_valid。在每个工作流程结束时,还将创建另一个report.csv文件,其中包含每个任务的主要输出列,以及一个包含工作流程结果的简要总结的report.pdf文件。

通常,用户应运行Curate工作流程,然后是Annotate工作流程,最后是Repair工作流程。

完整的文档可以在这里找到

安装

这应该使用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对象将为获取的形态提供一组,取决于给定的过滤条件。请注意,所有属性都是可选的,因此可以传递一个空对象以从数据库中获取所有形态,尽管这不被推荐。

CurateAnnotateRepair工作流程创建输入

通常应在Curate工作流程之后运行AnnotateRepair工作流程,因为它们的输入应该是Curate工作流程的输出。但是,仍然可以在任意输入上运行它们(尽管形态必须是有效的,就像由Curate工作流程处理的那些形态一样)。

输入应包括以下内容

  • 包含输入形态的目录。

  • 一个包含以下列的CSV文件

    1. morph_path:形态文件的路径。
    2. morph_name:形态的名称。
    3. mtype:形态的形态类型(此列是可选的)。

    任何其他列都会保留在结果中,但不用于工作流程。

    请注意,列名不应在逗号和名称之间包含空格。

  • 一个包含工作流程中所有任务配置的luigi.cfg文件。

  • 一个可选的包含日志配置的logging.conf文件。如果您希望使用默认的日志行为,请删除此文件,并在luigi.cfg中的logging_conf_file = logging.conf行上注释。

示例文件夹包含luigi.cfglogging.conf文件的示例。

可以使用Fetch工作流程创建这些输入,该工作流程从在线数据库中下载形态并创建正确格式的数据集。

运行工作流程

这些工作流程基于luigi库,但也可以通过命令行界面运行。例如,您可以使用以下命令运行Curate工作流程

morphology-workflows Curate

注意:此命令必须在包含luigi.cfg文件的目录中执行。此类文件的示例在examples目录中给出。

默认情况下,使用本地调度器,但也可以使用Luigi的主调度器,使用-m--master-scheduler触发器。

morphology-workflows -m Curate

一旦Curate工作流程运行,就可以直接运行AnnotateRepair工作流程,它们将仅使用Curate工作流程的结果作为输入。

morphology-workflows Annotate
morphology-workflows Repair

请注意,也可以直接运行这3个工作流程,因为每个工作流程都相互依赖。

morphology-workflows Repair

更多详细信息可以在文档的命令行界面部分找到,或者通过运行以下命令

morphology-workflows --help
morphology-workflows <workflow> --help

结果

每个工作流程都将创建多个新目录,每个子步骤一个目录。这些新目录可以使用result_path参数嵌套在每个工作流程的全局结果目录中。这些目录包含中间数据,因此可以了解为什么在某个步骤上无法验证形态。无效的形态应在再次由工作流程处理之前手动修复。

主工作流程(CurateAnnotateRepair)还将创建一个最终的CSV文件,其中包含工作流程的大部分相关数据(主要子步骤结果和最终形态路径)。最后,Repair工作流程可以生成包含最终形态的形态发布,这些形态可以通过工作流程自动验证和修复。通常,这些形态对于后续使用是最相关的。

标记为无效的形态在重新运行工作流程之前可以手动修复。

示例

示例文件夹包含一个简单的示例,该示例将检索并处理一组形态。提供了一个dataset.csv文件,它被用作工作流程的输入。还提供了一个luigi.cfg文件,以提供工作流程的默认配置。此示例可以通过以下命令简单运行

./run_curation.sh

此脚本将创建一个新的目录out_curated,其中将包含报告和所有结果。

引用

当您使用此软件时,我们恳请您引用以下DOI

DOI

资助与致谢

此软件的开发得到了瑞士联邦理工学院(EPFL)的蓝色大脑项目的研究中心从瑞士政府ETH委员会的资助。

有关许可证和作者信息,请分别参阅 LICENSE.txtAUTHORS.md

版权所有 © 2021-2022 蓝脑项目/洛桑联邦理工学院

项目详情


下载文件

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

源代码分发

morphology_workflows-0.12.1.tar.gz (11.9 MB 查看哈希值)

上传时间 源代码

构建分发

morphology_workflows-0.12.1-py3-none-any.whl (78.6 kB 查看哈希值)

上传时间 Python 3

由以下机构支持