跳转到主要内容

包含计算啮齿动物大脑体积细胞密度的命令行工具和库

项目描述

banner

概述

本项目包含创建BBP细胞图谱的工具,使用来自艾伦脑科学研究所(AIBS)的数据集和收集到的文献密度值。AIBS数据集文件是通过在P56野生型小鼠大脑上进行的实验获得的。本项目的成果是一份体积文件列表,提供了小鼠大脑体积中每个体素的细胞类型密度估计。BBP细胞图谱是重建BBP小鼠脑电路的第一个模型。

工具实现基于Eroe等人(2018)Rodarie等人(2022)Roussel等人(2022)的方法。

源代码最初由Csaba Eroe、Dimitri Rodarie、Hugo Dictus、Lu Huanxiang、Wojciech Wajerowicz、Jonathan Lurie和Yann Roussel编写。

这些工具允许

  • 将AIBS注释文件合并以恢复缺失的小鼠大脑区域

  • 将多个AIBS基因标记数据集合并,用作胶质细胞空间分布的线索

  • 计算包括神经元和胶质细胞在内的多种细胞类型在整个小鼠大脑中的细胞密度

工具可以通过命令行界面使用。

安装后,您可以使用以下 bash 命令显示可用的命令行:

atlas-densities --help

安装

git clone https://github.com/BlueBrain/atlas-densities
cd atlas-densities
pip install -e .

cgal-pybind

本项目依赖于BBP Python项目 cgal-pybind。在上述说明之前,需要安装Python项目 cgal-pybind

示例

注意:根据图谱的大小和分辨率,可能有些示例无法使用艾伦研究所的25um图谱运行,因为内存要求较高。例如,“结合胶质细胞的ISH数据集”通常需要8GB的内存,具体取决于要结合的数据集。

参考图谱

大多数流程步骤依赖于以下AIBS参考数据集(有关这些数据集不同版本的详细信息,请参阅Rodarie等(2022)

  • 尼氏体体积

  • 注释体积

  • 大脑区域层次结构文件

AIBS尼氏体参考体积是从尼氏染色冠状脑切片的高分辨率图像堆栈中派生出来的。这些图像经过重排和排列,形成一个3D脑体积。尼氏体染色每个细胞的细胞体。尼氏体体积中每个体素的强度与该体素中细胞数量相关。这个尼氏体体积有一个相应的注释体积,它将尼氏体体积的每个体素映射到大脑区域。AIBS将大脑区域组织成一个层次树,叶子代表最细的区域划分。

这些数据集在AIBS网站上公开可用。

下载参考图谱

创建 data 目录,并下载所需的注释体积、尼氏体体积和层次结构文件

mkdir -p data/ccfv2 data/ccfv3

# hierarchy file:
curl -o data/1.json http://api.brain-map.org/api/v2/structure_graph_download/1.json
# also available in atlas_densities/app/data/1.json

# CCFv2 annotation volumes:
curl -o data/ccfv2/annotation_25.nrrd http://download.alleninstitute.org/informatics-archive/current-release/mouse_ccf/annotation/mouse_2011/annotation_25.nrrd
curl -o data/ccfv2/annotation_fibers_25.nrrd http://download.alleninstitute.org/informatics-archive/current-release/mouse_ccf/annotation/mouse_2011/annotationFiber_25.nrrd

# CCFv3 annotation volume:
curl -o data/ccfv3/annotation_25.nrrd http://download.alleninstitute.org/informatics-archive/current-release/mouse_ccf/annotation/ccf_2017/annotation_25.nrrd

# AIBS Nissl volume:
curl -o data/ccfv2/ara_nissl_25.nrrd http://download.alleninstitute.org/informatics-archive/current-release/mouse_ccf/ara_nissl/ara_nissl_25.nrrd

注释体积的准备

根据选择的参考体积对版本,可能需要进行一些额外的准备。

ccfv2注释分为两个体积。一个仅描述纤维和室相关区域,而另一个包含所有其他大脑区域。如果您选择ccfv2版本来估计细胞密度,则应合并这两个数据集

# Here we override the ccfv2 annotation_25.nrrd file
atlas-densities combination combine-ccfv2-annotations             \
    --brain-annotation-ccfv2=data/ccfv2/annotation_25.nrrd        \
    --fiber-annotation-ccfv2=data/ccfv2/annotation_fibers_25.nrrd \
    --output-path=data/ccfv2/annotation_25.nrrd

ccfv3注释体积更加平滑,但缺少ccfv2对应版本中存在的一些大脑分区。如果您选择ccfv3版本来估计细胞密度,则可以使用ccfv2的注释扩展ccfv3注释图谱。

# Here we override the ccfv3 annotation_25.nrrd file
atlas-densities combination combine-v2-v3-annotations             \
    --hierarchy-path=data/1.json                                  \
    --brain-annotation-ccfv2=data/ccfv2/annotation_25.nrrd        \
    --fiber-annotation-ccfv2=data/ccfv2/annotation_fibers_25.nrrd \
    --brain-annotation-ccfv3=data/ccfv3/annotation_25.nrrd        \
    --output-path=data/ccfv3/annotation_25.nrrd

在以下示例中,我们将使用ccfv2参考图谱。

In situ杂交数据集

下载、重排和插值AIBS ISH数据集

BBP细胞图谱流程利用来自AIBS的 In situ杂交(ISH)体积数据集来估计小鼠大脑所有区域的细胞类型密度。这些ISH数据集需要重排到尼氏参考体积。

DeepAtlas 工具包允许您下载AIBS ISH图像堆栈,将这些图像与尼氏体积对齐,并在它们之间进行插值以创建您感兴趣每个基因的体积ISH数据集。

结合胶质细胞的ISH数据集

胶质细胞表达许多遗传标志,但没有一个是所有胶质细胞都表达的。我们在这里结合胶质细胞标志的ISH体积数据集,并计算胶质亚型的全局缩放因子,如Eroe等(2018)中所述。所需基因列表以结合通用胶质细胞标志,可以在combine_markers_ccfv2_config.yaml 中找到。

atlas-densities combination combine-markers         \
    --hierarchy-path=data/1.json                    \
    --annotation-path=data/ccfv2/annotation_25.nrrd \
    --config=atlas_densities/app/data/markers/combine_markers_ccfv2_config.yaml

抑制性/兴奋性神经元的ISH数据集

Eroe等人(2018年)的研究(即BBP细胞图谱版本1)中,通过Nrn1和GAD67(或GAD1)遗传标记区分了兴奋性神经元和抑制性神经元。

Rodarie等人(2022年)的研究(即BBP细胞图谱版本2)中,作者使用了副神经节蛋白(Pvalb)、生长抑素(SST)、血管活性肠肽(VIP)和GABA能(GAD1)标记(也请参阅fit_average_densities_ccfv2_config.yaml)。

细胞密度估计

根据尼氏染色AIBS数据计算并保存整体小鼠脑细胞密度。

# make output directory
mkdir -p data/ccfv2/density_volumes/

atlas-densities cell-densities cell-density                     \
    --hierarchy-path=data/1.json                                \
    --annotation-path=data/ccfv2/annotation_25.nrrd             \
    --nissl-path=data/ccfv2/ara_nissl_25.nrrd                   \
    --output-path=data/ccfv2/density_volumes/cell_density.nrrd

区分神经元和胶质细胞

基于上一节的总体细胞密度和综合ISH胶质细胞数据集(参见原位杂交数据集部分)计算并保存胶质细胞和神经元的密度。文件glia.nrrdoligodendrocyte.nrrdmicroglia.nrrdastrocyte.nrrdglia_proportions.json来自ISH数据集组合步骤的输出。

atlas-densities cell-densities glia-cell-densities                                         \
    --hierarchy-path=data/1.json                                                           \
    --annotation-path=data/ccfv2/annotation_25.nrrd                                        \
    --cell-density-path=data/ccfv2/density_volumes/cell_density.nrrd                       \
    --glia-density-path=data/ccfv2/relative_marker_volumes/glia.nrrd                       \
    --astrocyte-density-path=data/ccfv2/relative_marker_volumes/astrocyte.nrrd             \
    --microglia-density-path=data/ccfv2/relative_marker_volumes/microglia.nrrd             \
    --oligodendrocyte-density-path=data/ccfv2/relative_marker_volumes/oligodendrocyte.nrrd \
    --glia-proportions-path=data/ccfv2/relative_marker_volumes/glia_proportions.json       \
    --output-dir=data/ccfv2/density_volumes

提取文献神经元类型密度估计

Rodarie等人(2022年)的研究中,作者从文献中收集了抑制性神经元的密度估计。一些估计的格式不能直接由管道使用(例如,计数而不是密度)。本部分将文献值集成到csv文件中,该文件将用于后续拟合。

格式化文献综述文件

我们将与Kim等人(2017年)密度文件(mmc3.xlsx)和Rodarie等人(2022年)文献综述文件(gaba_papers.xlsx)相关的细胞密度估计编译成一个单独的CSV文件。已知为纯兴奋性或抑制性区域(就神经元组成而言)的也列在单独的CSV文件中。

# make output directory
mkdir -p data/ccfv2/measurements

atlas-densities cell-densities compile-measurements                                  \
    --measurements-output-path=data/ccfv2/measurements/measurements.csv              \
    --homogenous-regions-output-path=data/ccfv2/measurements/homogeneous_regions.csv

将文献测量值转换为平均密度

根据文献测量值和细胞图谱数据(例如,区域体积)计算并保存平均细胞密度。

警告:不同版本的注释图谱或层次结构文件可能有不同的脑区集合(请参阅Rodarie等人(2022年)以获取更多详细信息)。因此,文献测量值使用的区域名称可能在这些数据集中没有匹配。不在层次结构中或未出现在注释中的测量区域将被忽略。警告信息将显示这些区域,以便我们进行审查。

atlas-densities cell-densities measurements-to-average-densities         \
    --hierarchy-path=data/1.json                                         \
    --annotation-path=data/ccfv2/annotation_25.nrrd                      \
    --cell-density-path=data/ccfv2/density_volumes/cell_density.nrrd     \
    --neuron-density-path=data/ccfv2/density_volumes/neuron_density.nrrd \
    --measurements-path=data/ccfv2/measurements/measurements.csv         \
    --output-path=data/ccfv2/measurements/lit_densities.csv

拟合区域平均强度到神经元密度的传递函数

我们在这里拟合描述小鼠脑区域平均ISH表达与文献区域密度估计之间关系的传递函数(请参阅Rodarie等人(2022年)以获取更多详细信息)。此步骤利用AIBS ISH标记数据集(以表达形式,也请参阅fit_average_densities_ccfv2_config.yaml)和先前计算出的文献密度值。这些传递函数用于获得未覆盖文献的区域中神经元密度的首次估计。

以下命令的结果包含一个CSV文件(first_estimates.csv),该文件存储了每个神经元类型以及注释体积每个区域的首次密度估计列表。输出文件fitting.json包含算法拟合的系数及其相应的标准差和确定系数r_square)。

# make output folder
mkdir -p data/ccfv2/first_estimates

atlas-densities cell-densities fit-average-densities                                            \
    --hierarchy-path=data/1.json                                                                \
    --annotation-path=data/ccfv2/annotation_25.nrrd                                             \
    --neuron-density-path=data/ccfv2/density_volumes/neuron_density.nrrd                        \
    --average-densities-path=data/ccfv2/measurements/lit_densities.csv                          \
    --homogenous-regions-path=data/ccfv2/measurements/homogeneous_regions.csv                   \
    --gene-config-path=atlas_densities/app/data/markers/fit_average_densities_ccfv2_config.yaml \
    --fitted-densities-output-path=data/ccfv2/first_estimates/first_estimates.csv               \
    --fitting-maps-output-path=data/ccfv2/first_estimates/fitting.json

注意:可以使用--min-data-points来要求线性回归的最小数据点数;默认为1。

计算抑制/兴奋神经元密度

神经元亚型在这里通过Eroe等人(2018年)(BBP细胞图谱版本1)或Rodarie等人(2022年)(BBP细胞图谱版本2)的流程区分彼此。

BBP细胞图谱版本1

从Nrn1和GAD1(或GAD67)AIBS ISH标记以及Kim等人(2017年)的全脑估计中估计兴奋和抑制神经元密度(位于mmc1.xlsx)。

atlas-densities cell-densities inhibitory-and-excitatory-neuron-densities           \
    --hierarchy-path=data/1.json                                                    \
    --annotation-path=data/ccfv2/annotation_25.nrrd                                 \
    --gad1-path=data/ccfv2/marker_volumes/gad1.nrrd                                 \
    --nrn1-path=data/ccfv2/marker_volumes/nrn1.nrrd                                 \
    --neuron-density-path=data/ccfv2/density_volumes/neuron_density.nrrd            \
    --inhibitory-neuron-counts-path=atlas_densities/app/data/measurements/mmc1.xlsx \
    --output-dir=data/ccfv2/density_volumes/

BBP细胞图谱版本2

从文献和先前计算过的传递函数(首次密度估计)中估计GAD67、Pvalb、SST和VIP神经元密度。

atlas-densities cell-densities inhibitory-neuron-densities                  \
    --hierarchy-path=data/1.json                                            \
    --annotation-path=data/ccfv2/annotation_25.nrrd                         \
    --neuron-density-path=data/ccfv2/density_volumes/neuron_density.nrrd    \
    --average-densities-path=data/ccfv2/first_estimates/first_estimates.csv \
    --output-dir=data/ccfv2/density_volumes/

从概率图计算ME类型密度

可以使用Roussel等人(2022年)的流程估计同质皮层中抑制神经元的形态和电类型密度。该流程将抑制神经元分子类型(此处为PV、SST、VIP和GAD67)映射到Markram等人(2015年)中定义的ME类型。

以下命令为概率映射CSV文件中列出的me类型创建神经元密度nrrd文件(另见mtypes_probability_map_config.yaml)。

atlas-densities mtype-densities create-from-probability-map              \
    --hierarchy-path=data/1.json                                         \
    --annotation-path=data/ccfv2/annotation_25.nrrd                      \
    --probability-map data/probability_map01.csv                         \
    --probability-map data/probability_map02.csv                         \
    --synapse-class INH                                                  \
    --marker gad67 data/molecular_densities/gad67.nrrd                   \
    --marker pv data/molecular_densities/pv.nrrd                         \
    --marker sst data/molecular_densities/sst.nrrd                       \
    --marker vip data/molecular_densities/vip.nrrd                       \
    --marker approx_lamp5 data/molecular_densities/approx_lamp5.nrrd     \
    --n-jobs 8                                                           \
    --output-dir=data/ccfv2/me-types/

approx_lamp5的分子密度是从其他分子密度计算得出的

\begin{equation*} approx_lamp5 = gad67 - vip - sst - pv \end{equation*}

这近似了lamp5的分子密度。

这可以通过命令行计算

atlas-densities combination manipulate             \
   --clip                                          \
   --base-nrrd data/molecular_densities/gad67.nrrd \
   --subtract data/molecular_densities/vip.nrrd    \
   --subtract data/molecular_densities/pv.nrrd     \
   --subtract data/molecular_densities/sst.nrrd    \
   --output-path approx_lamp5.nrrd

命令输出输出目录中的密度文件和一个元数据JSON文件

{
    "SLAC": {
        "bNAC": "data/ccfv2/test_regions_me-types/SLAC|bNAC_densities.nrrd",
        "cAC": "data/ccfv2/test_regions_me-types/SLAC|cAC_densities.nrrd",
        "cNAC": "data/ccfv2/test_regions_me-types/SLAC|cNAC_densities.nrrd"
    },
    "NGC-SA": {
        "cNAC": "data/ccfv2/test_regions_me-types/NGC-SA|cNAC_densities.nrrd",
        // ...
    },
    // ...
}

将兴奋文件细分为锥体亚型

应在上述抑制/兴奋计算之后运行此操作。要运行

atlas-densities cell-densities excitatory-split                         \
    --annotation-path=data/ccfv2/annotation_25.nrrd                     \
    --hierarchy-path=data/1.json                                        \
    --neuron-density=data/ccfv2/density_volumes/neuron_density.nrrd     \
    --inhibitory-density=data/ccfv2/density_volumes/gad67+_density.nrrd \
    --output-dir=data/ccfv2/excitatory_split

开发人员说明

在提交代码进行审查之前,请运行以下命令

cd atlas-densities
isort -l 100 --profile black atlas_densities tests setup.py
black -l 100 atlas_densities tests setup.py

这些格式化操作将帮助您通过在tox.ini中定义的lint检查testenv:lint

引用

当您使用此软件时,我们诚挚地请求您引用以下DOI

https://zenodo.org/badge/451804383.svg

致谢

本软件的开发得到了瑞士联邦理工学院洛桑联邦理工学院(EPFL)的Blue Brain项目的研究资助。

有关许可证和作者,请分别参阅LICENSE.txt和AUTHORS.txt。

版权(c)2022-2024 Blue Brain Project/EPFL

项目详情


下载文件

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

源分布

atlas-densities-0.2.6.tar.gz (1.3 MB 查看哈希值)

上传时间

由支持