跳转到主要内容

SONATA电路的连接组操作框架

项目描述

banner

License DOI Tox Coverage Release Documentation

Connectome-Manipulator

SONATA电路的连接组操作框架

目录

  1. 简介

  2. 安装

  3. 框架概述

  4. 如何运行

  5. 示例

  6. 如何贡献

  7. 引用

  8. 使用或提及Connectome-Manipulator的出版物

  9. 资助 & 致谢

简介

在计算机中研究皮层功能的一个重要方法是通过在体内和体外无法进行的操作。Connectome-Manipulator的目的在于提供一个通用的框架,以应用和研究电路连接组各种类型的结构操作。该框架允许在SONATA格式(大规模网络模型的标准)中对生物物理细节丰富的网络模型进行快速连接组操作。操作可以针对整个模型、特定子网络,甚至单个神经元,从插入或删除特定模式到基于不同复杂度的随机连接模型的完全重新布线。重要用例包括根据连接的给定特征以生物现实的方式从头开始构建连接组,在保留某些连接方面重新布线现有的连接组,以及将特定的连接特征从一个连接组移植到另一个连接组。使用支持SONATA的任何模拟器都可以轻松地模拟生成的连接组,从而可以对操作对网络活动的影响进行系统和可重复的表征。

安装

PyPI(推荐)

pip install connectome-manipulator

或者从GitHub

git clone https://github.com/BlueBrain/connectome-manipulator.git
cd connectome-manipulator
pip install .

setup.py中声明的所有依赖项都可通过PyPI获取,包括一个可选依赖项mpi4py(v3.1.4),它用于并行处理,即运行parallel-manipulator。另一个可选依赖项是parquet-converters(v0.8.0或更高版本),它用于将.parquet输出文件转换为SONATA,必须单独安装,请参阅https://github.com/BlueBrain/parquet-converters下的说明。

推荐的Python版本:v3.10.8

框架概述

主要组件

Connectome-Manipulator框架如图1所示,主要由以下主要组件组成

  • 连接组操作器
    如配置文件指定,将一个或一系列操作应用于给定的SONATA连接组,并将操作后的连接组写入新的SONATA边缘文件。所有操作均在子模块中单独实现,并且可以轻松扩展。
    详细信息可在存储库中相应的README文件中找到:connectome_manipulation/README.md
  • 模型构建
    如配置文件指定,从给定的连接组构建模型,并将模型写入文件,以便加载和使用特定操作(例如,基于连接概率模型的基于模型的重新布线)。所有模型均在子模块中单独实现,并且可以轻松扩展。
    详细信息可在存储库中相应的README文件中找到:model_building/README.md

    注意

    • 某些模型甚至可能不需要连接组作为输入。

    • 某些模型可能在构建模型时可能依赖于其他模型作为输入。

  • 结构比较器
    如配置文件指定,对原始和操作后的连接组进行结构比较。不同结构参数的比较(连接概率、每个连接的突触数量等)均在子模块中单独实现,并且可以轻松扩展。
    详细信息可在存储库中相应的README文件中找到:connectome_comparison/README.md

ℹ️更多详细信息还可以在相关出版物中找到(尤其是补充表),请参阅引用

schematic 图1: 连接组操作框架概览图,包括“连接组操作器”、“模型构建”和“结构比较器”组件。

“连接组操作器”的操作原理

如图2所示,连接组的突触(SONATA边)被分为k个部分,针对N个不同的突触后神经元集合(SONATA节点),从而降低内存消耗,并便于在多个计算节点上并行化。每个部分都是一个加载为Pandas数据框的边表,包含一组突触及其所有突触属性,如图3所示。然后分别按顺序(或并行)对每个边表应用操作,生成操作后的边表,然后将其写入单独的.parquet文件。最后,使用parquet-converters将所有.parquet文件合并为一个操作后的SONATA连接组文件。

operation 图2: “连接组操作器”的操作原理,说明了其基于分割的处理架构。

edgetable 图3: 边表示例(Pandas数据框),包含一组突触及其所有突触属性。

注意

  • 一次只能对单个SONATA边种群应用操作。

  • 假设每个加载的边表中的突触按突触后神经元ID排序。同样,操作后的边表也应以突触后神经元ID排序。

  • 可选地,可以通过重用所有现有的.parquet文件而不是重新计算它们,从早先的(不完整)运行中恢复处理。

  • 默认情况下,所有.parquet文件将在成功完成后被删除,即操作后的SONATA连接组文件生成后。可选地,也可以保留这些临时.parquet文件。

如何运行

Usage: connectome-manipulator [OPTIONS] COMMAND [ARGS]...

  Connectome manipulation tools.

Options:
  --version      Show the version and exit.
  -v, --verbose  -v for INFO, -vv for DEBUG  [default: 0]
  --help         Show this message and exit.

Commands:
  build-model            Extract and build models from existing connectomes.
  compare-connectomes    Compare connectome structure of two circuits.
  manipulate-connectome  Manipulate or build a circuit's connectome.

连接组操作或构建

Usage: connectome-manipulator manipulate-connectome [OPTIONS] CONFIG

  Manipulate or build a circuit's connectome.

Options:
  --output-dir PATH         Output directory.  [required]
  --profile                 Enable profiling.
  --resume                  Resume from exisiting .parquet files.
  --keep-parquet            Keep temporary parquet files.
  --convert-to-sonata       Convert parquet to sonata and generate circuit
                            config
  --overwrite-edges         Overwrite existing edges file
  --splits INTEGER          Number of blocks, overwrites value in config file
                            [default: 0]
  --target-payload INTEGER  Number of gid-gid pairs to consider for one block.
                            Supersedes splits when a parquet based
                            configuration is used  [default: 20000000000]
  --parallel                Run using a parallel DASK job scheduler
  -a, --parallel-arg TEXT   Overwrite the arguments for the Dask Client with
                            key=value
  --help                    Show this message and exit.

仅以串行方式运行时,可以这样做

connectome-manipulator -v manipulate-connectome wiring_config.json \
    --output-dir PATH_TO_OUTPUT --profile --convert-to-sonata --splits 1

使用Dask并行运行分割,可以使用parallel-manipulator可执行文件,它将自动设置Dask(并且默认将--parallel标志设置为True

srun --nodes 10 --tasks-per-node=2 --cpus-per-task=20 --constraint=clx --mem=0 \
    parallel-manipulator -v manipulate-connectome wiring_config.json \
    --output-dir PATH_TO_OUTPUT --profile --convert-to-sonata --splits=100

请注意,此功能至少需要4个MPI等级。Dask将使用2个等级来管理分布式集群。我们建议将--cpus-per-task的值设得高一些,以创建能够并行处理大量数据的Dask工作进程。

parallel-manipulator处理时,可以传递--target-payload标志来确定每个进程的个体工作负载大小。默认值20e9是通过对整个小鼠大脑进行75百万神经元模拟而经验确定的。我们建议将此值作为起点,并根据需要调整以实现所需的时间特性。

模型构建

Usage: connectome-manipulator build-model [OPTIONS] CONFIG

  Extract and build models from existing connectomes.

Options:
  --force-reextract  Force re-extraction of data, in case already existing.
  --force-rebuild    Force model re-building, in case already existing.
  --help             Show this message and exit.

结构比较

Usage: connectome-manipulator compare-connectomes [OPTIONS] CONFIG

  Compare connectome structure of two circuits.

Options:
  --force-recomp-circ1  Force re-computation of 1st circuit's comparison data,
                        in case already existing.
  --force-recomp-circ2  Force re-computation of 2nd circuit's comparison data,
                        in case already existing.
  --help                Show this message and exit.

示例

示例可以在存储库中的examples/下找到。

如何贡献

贡献指南可以在存储库中的CONTRIBUTING.md中找到。

引用

如果您使用此软件,我们恳请您引用以下出版物

Christoph Pokorny, Omar Awile, James B. Isbister, Kerem Kurban, Matthias Wolf, 和 Michael W. Reimann (2024)。通过模拟系统性地和可重复地研究结构-功能关系的一种连接组操作框架。 bioRxiv 2024.05.24.593860. DOI: 10.1101/2024.05.24.593860

@article{pokorny2024connectome,
  author = {Pokorny, Christoph and Awile, Omar and Isbister, James B and Kurban, Kerem and Wolf, Matthias and Reimann, Michael W},
  title = {A connectome manipulation framework for the systematic and reproducible study of structure--function relationships through simulations},
  journal = {bioRxiv},
  year = {2024},
  publisher={Cold Spring Harbor Laboratory},
  doi = {10.1101/2024.05.24.593860}
}

使用或提及Connectome-Manipulator的出版物

使用Connectome-Manipulator的科学论文

  • Michael W. Reimann, Sirio Bolaños-Puchet, Jean-Denis Courcol, Daniela Egas Santander, 等人 (2022) 建模和模拟新皮层微和中回路。第一部分:解剖学。 bioRxiv 2022.08.11.503144. DOI: 10.1101/2022.08.11.503144

  • 詹姆斯·B·伊士本,安德拉斯·埃克,克里斯托夫·波克尼,西里奥·博拉诺斯-普赫特,丹妮拉·伊加斯·桑坦德,等人。(2023)新皮层微和中间神经环路的建模与模拟。第二部分:生理学和实验。bioRxiv 2023.05.17.541168。DOI:10.1101/2023.05.17.541168

  • 丹妮拉·伊加斯·桑坦德,克里斯托夫·波克尼,安德拉斯·埃克,雅尼斯·拉佐夫斯基,马泰奥·桑托罗,贾森·P·史密斯,凯瑟琳·赫斯,兰·莱维,以及迈克尔·W·莱曼。(2024)生物神经网络架构中的效率和可靠性。bioRxiv 2024.03.15.585196。DOI:10.1101/2024.03.15.585196

使用Connectome-Manipulator的海报

  • 克里斯托夫·波克尼,西里奥·博拉诺斯-普赫特,安德拉斯·埃克,詹姆斯·B·伊士本,迈克尔·盖瓦尔特,乔尼·赫图阿宁,亨利·马克拉姆,以及迈克尔·W·莱曼。简化网络结构对皮层活动的影响。伯尔尼兹会议,2022,柏林。

  • 凯雷姆·库尔班,克里斯托夫·波克尼,朱利安·布德,阿尔贝托·安东内蒂,阿曼多·罗马尼,以及亨利·马克拉姆。大鼠海马体CA1全规模模型的拓扑特性及其功能意义。神经科学学会年度会议,2022,圣地亚哥。

  • 克里斯托夫·波克尼,奥马尔·奥维莱,西里奥·博拉诺斯-普赫特,安德拉斯·埃克,丹妮拉·伊加斯·桑坦德,詹姆斯·B·伊士本,马蒂亚斯·沃尔夫,亨利·马克拉姆,以及迈克尔·W·莱曼。通过模拟系统地和可重复地研究结构-功能关系的一种连接组操作框架。伯尔尼兹会议,2023,柏林。

  • 克里斯托夫·波克尼,奥马尔·奥维莱,詹姆斯·B·伊士本,凯雷姆·库尔班,马蒂亚斯·沃尔夫,以及迈克尔·W·莱曼。通过模拟系统地和可重复地研究结构-功能关系的一种连接组操作框架。神经科学欧洲论坛,2024,维也纳。

资助 & 致谢

本软件的开发得到了洛桑联邦理工学院(EPFL)的蓝脑计划研究机构的资助,该机构是瑞士联邦理工学院的一个研究机构,资助来源于瑞士联邦政府的ETH委员会。

版权(c)2024 蓝脑计划/EPFL

项目详情


下载文件

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

源代码分发

connectome_manipulator-1.0.1.tar.gz (1.1 MB 查看哈希值

上传时间: 源代码

构建分发

connectome_manipulator-1.0.1-py3-none-any.whl (133.6 kB 查看哈希值

上传时间: Python 3

由以下支持

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