一、前言
功能性近红外光谱(fNIRS)是一种无创的脑功能成像技术。在fNIRS研究中,光极的空间定位和通道坐标的计算至关重要。
1.光极可视化
光极可视化的重要性我就不赘述了,它可以直观检查probe设计的合理性,确认光极覆盖目标脑区,帮助优化光极排布方案,以及用于结果展示和论文发表。
2.计算通道的MNI坐标
其实笔者学习使用NIRS-SPM的主要动机并非光极可视化,因为相信大家可以看出来,NIRS- SPM的绘图风格还是比较上古世纪的😭,而是为了解决通道的皮层空间MNI坐标计算问题。因为我们通过3D定位仪或是EEG10-5系统得到的都是头皮空间的点,如何高效的求解到头皮空间投影到大脑皮层空间的MNI坐标,准确定位激活脑区,并且与fMRI的研究进行比较,就需要用到NIRS-SPM。
二、配置说明
1.NIRS-SPM v4.1【https://www.nitrc.org/projects/nirs_spm/】
2.SPM5【SPM5 Software - Statistical Parametric Mapping】
有一说一,我在使用NIRS-SPM的时候有感受到,这个软件开发时间距离现在还是挺久远的,如果想让它读取模版顺利,最好还是下载和它兼容性最高的SPM5吧,使用的时候重新设置一下路径。以及笔者使用MATLAB2020a,+WINDOWS发现,部分脚本中的变量加载语法需要手动调整,我都没用来分析任务态,不然应该还有更多需要自己调试的地方。纯粹为了进行可视化和快速得到通道MNI坐标。
三、实现原理:
1.代码过程
笔者主要是读NIRS- SPM里的这个"NIRSget_channelpos.m"代码学习的坐标系转化过程。核心过程如下:
Digitizer空间 → MRI空间 → MNI空间 → 皮层表面
2.数学原理
至于头皮空间和皮层空间之间的投影,主要通过“ProjectionBS_f”函数实现,其中运用的是气球膨胀算法(Balloon-inflation algorithm)。之前有幸研究经颅脑图谱的时候,有复现过这个算法,可以回答经颅研究的问题:如何准确地找到头皮上的测量点对应的大脑皮层投射位置?传统TMS和fNIRS研究中,我们曾需要依赖人工经验或者简单的几何模型来确定投射点,精确度和效率都不尽如人意。气球膨胀算法通过模拟物理过程,提供了一个更自然高效的解决方案。

1.初始条件定义
设头皮上的目标点为P₀(x₀, y₀, z₀),需要在大脑皮层点集S上找到最合适的投影点P'。
2.局部点云提取
首先计算目标点P₀到皮层表面所有点的欧氏距离:
d(P₀, Pi) = √[(x₀-xi)² + (y₀-yi)² + (z₀-zi)²]
选取距离最小的200个点构成子集S'。
3.初始投影方向确定
计算S'的质心C:
C = (1/n)∑Pi, Pi∈S'
其中n=200。
初始投影向量v = C - P₀
4.圆柱体搜索空间构建
以v为轴线,构建半径r的圆柱体搜索空间:
对于点P(x,y,z),满足:
|(P - P₀) × v|/|v| ≤ r
其中×表示叉积,这个不等式定义了圆柱体的边界条件。
5.最终投影点计算
在圆柱体空间内找到最近的3个点{P₁, P₂, P₃}
最终投影点P' = (P₁ + P₂ + P₃)/3
四、操作步骤
1.准备光极文件
格式可以参考your_path_to\NIRS_SPM_v4_r1\Sample_data\Registration里的MNI_standalone_optd_Singh05_NeuroImage.txt。
NIRS- SPM不区分source和detector,在它那里众生平等都叫光极,所以从上到下写x,y,z就可以。
2.准备通道配置文件
格式可以参考your_path_to\NIRS_SPM_v4_r1\Sample_data\Ch_config里的Standalone_Singh2005_NeuroImage.txt。
只需要把每个channel是哪两个光极相连写出来就行。
3.导入文件
分别导入光极坐标.txt,和通道配置.txt,既可以收货远古风格fNIRS光极排布可视化图片几张。
后记
不要忘记SAVE channel的MNI文件,这是NIRS-SPM提供给我们的重要信息!