#文件格式 #大脑 #MRI #神经科学 #读写 #神经影像学

neuroformats

处理结构神经影像文件格式。重点是基于表面的脑形态计量数据和FreeSurfer文件格式。

6 个版本

0.2.4 2024年4月24日
0.2.3 2021年4月9日
0.2.2 2021年3月24日
0.1.0 2021年3月3日

#762解析器实现

Download history 124/week @ 2024-04-19 27/week @ 2024-04-26 1/week @ 2024-05-03 5/week @ 2024-05-17 2/week @ 2024-05-24 1/week @ 2024-06-28 18/week @ 2024-07-05

324 每月下载量

MIT/Apache

90KB
1.5K SLoC

neuroformats

处理 Rust 的结构神经影像文件格式。

DOI crates.io docs.rs main

通过实现各种文件格式的解析器,neuroformats 包提供在 Rust 中访问结构神经影像数据的功能。重点是表面基于的脑形态计量数据,如神经影像软件套件(如 FreeSurferCAT12 等)从 3D 或 4D 磁共振成像 (MRI) 数据生成的数据。

背景

在基于表面的神经影像中,基本上是从分割的 3D 脑图像重建代表人类皮层 3D 结构的网格。然后,从重建中计算人类大脑的特性,如特定位置的皮层厚度,并将其作为网格的顶点数据存储。

Vis

图 1 一个代表人类大脑白质表面的网格,使用 viridis 色彩映射将其上的皮层厚度值映射。显示不同的放大倍数,最后一张图中可以识别三角形和顶点位置。

安装

neuroformats 包在 crates.io 上。

要将库用于您的项目,请将其作为依赖项添加到您的 Cargo.toml 文件中,例如:

[dependencies]
neuroformats = "0.2.3"

功能

  • 读取和写入 FreeSurfer 每个顶点数据在 curv 格式(如 subject/surf/lh.thickness):函数 neuroformats::read_curvwrite_curv
  • 读取和写入大脑网格在 FreeSurfer 二进制网格格式(如 subject/surf/lh.white):read_surfwrite_surf
  • 读取和写入 FreeSurfer 标签文件(如 subject/label/lh.cortex.label):read_labelwrite_label
  • 读取FreeSurfer脑表面分区(如 subject/label/lh.aparc.annot):read_annot
  • 读取和写入FreeSurfer脑体积和其他来自MGH和MGZ文件的数据:read_mghwrite_mgh

实现了各种实用函数,用于在返回的结构体上执行常见计算,例如从MGH头部数据计算vox2ras矩阵或在脑表面分区中查找属于特定脑图谱区域的全部顶点。

文档

API文档

可以在 docs.rs/neuroformats 找到 neuroformats API文档。

简短使用示例

读取由FreeSurfer计算的顶点级皮质厚度

use neuroformats::read_curv;
let curv = read_curv("subjects_dir/subject1/surf/lh.thickness").unwrap();
let thickness_at_vertex_0 : f32 = curv.data[0];

现在你有一个包含皮质厚度值的 Vec<f32>,存储在 curv.data 中。值的顺序与相应脑表面重建的顶点顺序相匹配(例如,在 subjects_dir/subject1/surf/lh.white 中的左脑半球白色表面网格)。

完整演示应用程序

有一个小型命令行演示应用程序,它从脑表面网格中加载图像,并基于网格将图像射影到PNG文件。该演示应用程序位于 ./examples/brain_rpt 目录。该演示使用 Eric Zhang和Alexander Morozov的rpt crate 进行射影。

有关更多示例,请参阅 neuroformats API文档源代码中的单元测试

开发信息

请参阅 README_DEV文件

许可证

neuroformats crate是免费软件,根据MITAPACHE-2许可证双授权。

贡献

欢迎贡献。在进行重大更改之前请先联系,以避免浪费精力。

帮助和联系

如果您想讨论某些内容、需要帮助或发现错误,请在此GitHub上打开一个问题

neuroformats crate是由 Tim Schäfer 编写的。如果您需要与我联系,可以在我的网站上找到我的电子邮件地址。

依赖关系

~5.5MB
~101K SLoC