跳转到主要内容

一组与形态处理相关的CLIs和Python函数

项目描述

doc/source/logo/BBP-Morph-Tool.jpg

documentation status

MorphTool

形态编辑的工具箱。旨在提供执行简单任务的辅助程序。

当前MorphTool提供

  • 形态差异工具(通过CLI或Python)

  • 文件转换器:将形态文件从以下格式转换为/到:SWC,ASC,H5

  • 神经元(NEURON)计算的总面积计算器(需要NEURON Python模块)

MorphIO v2和NeuroM v1

如果需要与旧NeuroM v1和MorphIO v2一起工作,请使用形态工具2.4.7版本。

文档

形态工具文档构建和托管在readthedocs

安装

建议在新的虚拟环境中安装。

基本安装

pip install morph-tool

如果计划使用dendrogram模块

pip install morph-tool[plot]

如果计划使用nrnhines模块

pip install morph-tool[nrn]

如果计划转换形态学的文件夹

pip install morph-tool[parallel]

如果计划使用所有可用功能

pip install morph-tool[all]

用法

在shell中,执行以下命令

morph-tool --help

当前有三个子命令

morph-tool convert file input_file output_file
morph-tool diff morph1 morph2
morph-tool soma-surface input_file

形态学差异比较

可以使用CLI比较两个形态学

morph-tool diff morph1 morph2

如果形态学相同,则错误代码为0,否则为1。

可以比较不同格式的形态学。

如果以下属性之一或多个不同,则认为形态学不同

  • 根节段数量

  • 节段类型

  • 节段点数组

  • 节段直径数组

  • 节段周长数组

  • 节段子节点数量

soma 不被考虑

相同的功能也通过Python API提供

from morph_tool import diff

# The result can be used as a boolean:
if diff(filename1, filename2):
    print('morphologies differ')

# And also contains information about how morphologies differ
result = diff(filename1, filename2)
print(result.info)

转换器

支持什么?

转换器可以用于将形态学写入不同的格式。目前,支持的格式是ASC、SWC和H5。

由于每种格式都有自己的特性,特定于特定格式的数据将被丢弃。这意味着以下内容在转换过程中将丢失

  • 棘(存在于ASC格式中)

  • 所有H5元数据

  • H5格式的周长和线粒体数据

soma 的复杂性

使用多种格式来表示 soma(主要)取决于文件格式。有关文件格式的更多信息,请参阅neuromorpho.org规范MorphIO规范

由于不同的 soma 格式在不同的平面上表示 soma,soma 格式转换不是双射变换。例如,不可能将 H5 文件中 XY 平面的 soma 边界精确地转换为沿 Y 表示为圆柱体的 SWC soma。

因此,选择将 soma 表面视为不变量。这意味着输入和输出形态学的 soma 表面,由 NEURON 计算得出,应该得到保留。

以下是 soma 转换的可能情况

  • SWC 输入文件

    • SWC 输出文件 -> 无转换

    • H5 或 ASC 输出文件

      取决于原始的 soma 类型

      • Soma 圆柱体堆栈:soma 被转换为 XY 平面的轮廓。新轮廓的点是在 XY 平面上投影的 soma 堆栈的轮廓。

      • Soma 三点圆柱体:soma 成为具有相同表面积的球体。XY 平面上最大节段的圆由 20 个点采样并写入磁盘。

      • Soma 球体(soma 由表示球体中心和半径的单一点表示):XY 平面上最大节段的圆由 20 个点采样并写入磁盘。

      • 其他:不在 SWC 规范中 -> 不支持

  • H5 或 ASC 输入文件

    • H5 输出文件 -> 无需转换

    • ASC 输出文件。

      取决于 soma 类型

      • Soma 单点球体(soma 由表示球体中心和半径的单一点表示):XY 平面上最大节段的圆由 20 个点采样并写入磁盘。

      • Soma 轮廓:无需转换

      • 其他:不在 H5/ASC 规范中 -> 不支持

    • SWC

      取决于 soma 格式

      • Soma 单点球体:无需转换

      • Soma 轮廓:生成圆柱体堆栈。堆栈中的每个圆柱体都沿着轮廓的主方向具有中心和轴线。选择堆栈的半径,以使圆柱体和轮廓之间的距离最小化。

      • 其他:不在 H5/ASC 规范中 -> 不支持

示例

from morph_tool import convert
convert(inputfile, outputfile)

# Additionally the morphology can be recentered or written according to the NEURON neurite order during the conversion
convert(inputfile, outputfile, recenter=True, nrn_order=True)

对于 bash 也是一样

morph-tool convert file ./inputfile ./outputfile
# with additional options
morph-tool convert file --recenter --nrn-order ./inputfile ./outputfile
# or an entire folder
morph-tool convert folder -ext SWC ./h5_input_folder ./swc_output_folder
# for more info use
morph-tool convert folder --help

NRN 模拟器单元坐标

NRN模拟器将每个部分分割成等长的块(仅在同一部分内等长)。这些隔间在物理世界中并不真实存在,但我们可以将它们重新映射到该部分的路径上。每个隔间都可以与一个路径(一组三维点)相关联,使得路径和隔间的路径长度相同。

以下函数可以用来访问神经元的部分ID与该部分路径列表的映射

morph_tool.nrnhines.NeuroM_section_to_NRN_compartment_paths

以下是一个二维部分的示例

               (1, 2) ------ (2, 2)
                  |
                  |
                  |
                  |
                  |
                  |
                  |
                  |
                  |
(0, 0) ------- (1, 0)

将此部分分割成3个隔间将产生以下路径

[[0.        , 0.        ],
 [1.        , 0.        ],
 [1.        , 0.33333333]]
[[1.        , 0.33333333],
 [1.        , 1.66666667]]
[[1.        , 1.66666667],
 [1.        , 2.        ],
 [2.        , 2.        ]]

绘制包含突触的形态学

此功能仅在安装了带有 plot 扩展的包时可用

pip install morph-tool[plot]

树状图

绘制带有突触的NeuroM树状图。突触必须表示为一个DataFrame。请参阅树状图

形态学

绘制带有突触的NeuroM形态学。突触必须表示为一个DataFrame。请参阅形态学

简化

MorphTool还可以用于“简化”形态学。请参阅形态学

贡献

如果您想改进此项目或发现任何问题,每个贡献都受欢迎。请查阅贡献指南以获取更多信息。

致谢

本软件的开发得到了洛桑联邦理工学院(EPFL)的研究中心——蓝脑项目的资助,该资助由瑞士联邦理工学院董事会提供。

此研究得到了EBRAINS研究基础设施的支持,该基础设施由欧盟的Horizon 2020研究和创新框架计划资助,具体协议号945539(人类脑项目SGA3)。

许可

morph-tool采用GNU Lesser General Public License版本3的条款。有关详细信息,请参阅COPYING.LESSER和COPYING。

版权(c)2018-2024蓝脑项目/EPFL

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分发

morph-tool-2.11.2.tar.gz (1.9 MB 查看哈希)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面