APP下载

基于Python的儿童脑图谱工具箱的设计与实现

2020-12-24李磊郝磊蒋林华

软件 2020年7期
关键词:工具箱矫正图谱

李磊 郝磊 蒋林华

摘  要: 在完成了儿童功能性脑图谱的构建后,需要考虑的问题就是如何将它直观地呈现出来。目前,已经有适用于打开和呈现NIFTI图像文件的Python模块或是MATLAB工具包。但是,他们对于不熟悉脚本操作和编程的研究者来说不是很方便,需要经过专门的学习才能运用自如。我们考虑开发一个基于Python的工具箱来适配儿童功能性脑图谱的呈现和后续的分析,用户可以直接在GUI界面上进行点击即可完成自己的研究操作,避免直接与脚本进行交互,方便了没有编程基础的用户的使用。

关键词: 脑图谱;Python;工具箱;设计

中图分类号: TP311.52    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.07.036

本文著录格式:李磊,郝磊,蒋林华. 基于Python的儿童脑图谱工具箱的设计与实现[J]. 软件,2020,41(07):179-184+215

Design and Implementation of Childrens Brain Atlases Based on Python

LI Lei1, HAO Lei2, JIANG Lin-Hua1*

(1. School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China;2. IDG/McGovern Institute for Brain Research, Beijing Normal University, Beijing 100875, China)

【Abstract】: After childrens developmental brain functional atlases have been completed, a problem has been rose that how to display it intuitively. At present, there are Python modules or MATLAB toolkits for loading and displaying NIFTI image files. However, they are very inconvenient for researchers who are not familiar with script operation or programming. They need to take a long time to learn for operating those scripts expertly. So, a toolbox to adapt to the presentation and subsequent analysis of childrens developmental brain functional atlases based on Python was designed and developed. Users can click button directly on the GUI interface to complete their own research operations and avoid direct interaction with scripts. This toolbox facilitates the use of users without programming basis.

【Key words】: Brain atlases; Python; Toolbox; Design

0  引言

在科技飛速发展的今天,各种先进的高科技仪器被应用于科研中,成为了科学家和研究员的有利帮手。核磁共振仪就是脑科学领域的一个不可或缺的研究工具,人脑磁共振成像(MRI)目前已经广泛的运用到了脑发育的基础研究[1-4],并逐渐地被用于探究儿童和青少年大脑发育过程与自身行为之间的关系[5-7],有望能够为各种脑功能发育状态提供辅助诊断和参考对象。

目前,已经出版过许多基于结构化核磁共振成像的脑图谱集,作为儿童群体[8-11]的重要参考。例如,北京师范大学的贺勇课题组在2019年发表了一篇论文[12],他们基于328名认知正常的中国儿童(6至12岁)的高质量磁共振脑影像数据,采用严格规范的图像处理与质量控制流程,通过无偏迭代的模板图谱生成算法,构建了中国儿童标准脑结构图谱集(CHN-PD)。然而,现行的儿童大脑图谱大多是基于无任务的或者结构的,不能作为判断儿童在特定的认知过程是否处于正常发育发展范围的参考。据我们所知,全世界还缺乏儿童认知发育的年龄和认知功能脑图谱。

在之前的研究中,我们已经使用了3T Siemens Prisma扫描仪收集了548名7至12岁的儿童的高质量T1加权结构和事件相关的功能磁共振成像(fMRI)数据,并且使用了最新的预处理工具包fMRIPrep[13]对fMRI数据进行预处理。然后针对不同年龄组和认知任务组合构建了通用线性模型,这些神经发育功能性脑图谱提供了儿童大脑发育期下的平均神经激活强度、分布和模式。在本文中,着重阐述了基于特定年龄和任务的儿童认知发育功能性脑图谱对应的功能性脑发育图谱工具箱(Developmental Brain Functional Atlas,DBFA)的开发流程。该工具箱分别提供了年龄特异性和认知特异性(以及仅用于情绪处理的性别特异性)图谱的下载。使用者可以选择使用未矫正、false discovery rate(FDR)和familywise error(FWE)矫正等方式来输入阈值,以进行不同p值和最小激活体素数之间的多重比较。

1  工具箱设计

考虑到目前脑科学领域大多数的研究工具或者脚本都是基于Python或Matlab的,大部分心理学专业的研究生和研究者们需要经过专门的编程训练才能理解代码的含义,从而能根据自己的研究目的和需要去编写或者改写脚本,才能运行出分析的数据结果来进行后面的研究。该工具箱的设计不仅仅只是作为儿童功能性脑发育图谱的一个可视化工具,它还是一款可以为研究者们提供fMRI数据分析的工具。所以,DBFA工具箱要避免让源代码或者脚本文件直接和用户进行交互,我们提供了像商业工具一般的可视化界面,所有的操作只需要用鼠标点击即可完成,方便对计算机脚本不熟悉的用户使用,可以加快在研究过程中在数据处理方面的时间损耗。

我们采用Python语言作为编写语言,这样能够较好地与主流的心理学脑科学领域使用的脚本函数进行对接;使用PyQt5+Eric6来设计GUI并且嵌入相应功能的槽函数;最后使用cx-Freeze作为打包工具来生成最后的可执行程序。

DBFA工具箱是作为儿童功能性脑发育图谱的可视化工具而开发的,但是它不应只具有可视化这么一个功能,这样开发成本太高而可使用性又太低。我们考虑,DBFA工具箱应该具有能够可视化.nii(标准NIFTI图像的扩展名是.nii,包含了头文件及图像资料)的文件功能,它不仅仅只用于开发的脑图谱的文件,用户自己的.nii文件也可以使用该工具箱来打开并且可视化。用户有两种方式可以打开nii图谱文件,一种通过打开菜单在电脑磁盘中选择要处理的文件;另一种是根据工具箱提供的筛选功能,选择年龄,认知任务和状态来筛选出对应的nii文件来打开。打开后,对应的nii文件的可视化脑图将会显示在主界面上,用户可以根据自己的需求来直接将图片保存下来,或者是使用FDR、FPR、FWE矫正得到更加严格的脑图谱后再保存。同时也可以设置Voxels的数目来决定激活脑区的最小大小;设置Cut_coords的坐标来获得不同位置的脑切片图谱。完成后,用户可以将该处理完的脑图谱存储为一个新的nii文件,今后可以随时进行查看和再操作。DBFA工具箱的系统功能流程图如图1所示。

2  核心部分

2.1  GUI设计

Qt库是目前最强大的库之一[14-15]。PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。因此,我们采用PyQt5来创建GUI界面。导入QtCore, QtGui, QtWidgets三个模块,工具箱所需要的菜单栏、显示框、文本框、下拉框、按钮和控件等都可以从中直接生成实例化对象,减少在GUI上的耗费时间。同时,PyQt提供的信号与槽机制实现了界面与业务逻辑的分离,将重点放在槽函数的编写上。

2.2  关键函数实现

虽然nibabel模块中的load函数和nibabel.viewers模块中的OrthoSlicer3D函数可以打开NIFTI图像文件并且呈现出3D图像来,但是这样呈现出来的图像未经过任何处理,也不利于观察,所以不能直接套用现有的模块和函数。我们考虑,将NIFTI文件打开、FDR、FPR、FWE矫正功能编写到一个函数中。定义函数如下:

def ThresholdMap (StatMap = Fname, Alpha = alpha, Height_control = height_control, Cluster_ threshold = cluster_threshold):

其中,StatMap接收使用nibable打開的NIFTI文件的文件名,Alpha接收用户输入的数值(0≤alpha≤1),Height_control接收矫正方式的形式,Cluster_threshold接收Voxels的数值大小。重点代码如下:

if  height_control == 'fpr':       threshold = norm.isf(alpha)

if  height_control == 'fdr':       threshold = fdr_threshold(stats, alpha)    elif height_control == 'fwe':       threshold = norm.isf(alpha / n_voxels)       stats*= (stats > threshold)

_StatMap = masker.inverse_transform(stats).get_data()LabelMap,nLabels = label(_StatMap > threshold)labels =LabelMap[masker.mask_img_.get_data() > 0]for label in range(1,,nLabels + 1):    if  np.sum(labels == label) < cluster_threshold:        stats[labels == label] = 0

return masker.inverse_transform(stats), threshold

在完成了文件的读取和数据矫正后,需要将矫正后的文件进行可视化。用于可视化的函数需要接收前面矫正后的文件和阈值,并且,我们考虑加入水平面、矢状面、冠状面的位置输入来满足用户对于大脑各个脑区的研究。定义函数如下:

def PlotStatMap (Threshold_map = threshold_map, Threshold = threshold, Cut_coords = cut_coords):

其中,Threshold_map和Threshold接收ThresholdMap函数返回的矫正后的数据,Cut_coords接收一个三元组(X,Y,X)来确定切面的坐标,也可以不选择输入,该函数返回默认位置的切面坐标。重点代码如下:

threshold_map = _utils.check_niimg_3d(threshold_map, dtype='auto')

display = display_factory(display_mode)(     img,     threshold = threshold,     cut_coords = cut_coords,     figure = figure,

axes = axes,     black_bg = black_bg,     colorbar = colorbar,     brain_color = brain_color,    )

return display

調用plt.show( )即可呈现出对应文件矫正后绘制出的图像。

3  工具箱实现

如图2所示是运行后的工具箱初始界面。通用的文件打开方式可以点击菜单栏的File选项开里的Open来选择磁盘里的nii文件,如果需要查看我们发布的儿童发育脑图谱可以通过右边的筛选模块来打开。用户可以根据自己的研究所需,来选择是基于年龄相关的脑图还是基于任务相关的脑图,如果是年龄相关的,那么在Age选项里可以选择7~12中一个具体的年龄,如果是任务相关的,Age选项变为不可用,脑图谱默认年龄为全年龄段。然后,在四种任务中,用户必须要选择一个任务,再选择一种状态。四个任务都来自于心理学经典实验任务,注意网络测验(ANT)、气球模拟危险性测验(BART)、情绪匹配(EM)、数字N-back(NB)。全部选择完成后,会读取出匹配与选择的脑图谱文件并显示在Display区域中。读取后,筛选区域会被禁止使用,用户可以再根据自己的需求,可以选择点击Save Picture按钮来保存当前的显示的图像,图像将保存在工具箱所在目录的Result文件夹下。用户可以在FDR、FPR、FWE三种不同的矫正方式中选择一项输入阈值来获取不同严格程度下的新图谱。Voxels的数值可以选择也可以不选择,输入的数值会决定激活脑区域内相连的最小体素数。Cut_coords的三个坐标会改变图像所呈现的三个切片位置,方便用户查看该情形下的任意脑区情况。每次改变设置的参数点击Show即可显示新的图像。最后,用户可以输入文件名来将重新设置阈值后的脑图谱保存为一个新的nii文件,新的文件将保存在工具箱的目录底下。

以BART任务中的Pump状态为例,选择年龄为9岁的通用性别脑图谱,点击Load按钮后得到的该图谱原始图像呈现在Display窗口中,如图3所示。

分别在FDR、FPR、FWE的输入框中输入0.005这个阈值,取相同的Voxels数值50,得到根据阈值矫正后的脑图谱分别如图4(a)(b)(c)所示。在同一个图谱的基础上,把相连的最小脑激活体素设为相同,可以发现,相同的阈值下三种不同矫正方式对应的脑激活区域基本没有变化,激活的区域大小不同,FPR矫正程度相对来说弱一点,FWE则最为严格。

对比图4(b)和图4(d)可以看出,在同一图谱下,使用相同的矫正方式和Voxels值,输入不同的阈值,得到矫正后的图谱在激活脑区上没有显著的差异,只有激活范围有部分差异。与0.01阈值相比,在0.005

阈值下,激活范围有了减小,部分激活完全消失,说明阈值越小矫正程度越严格,可以排除局部激活对后续研究中的影响。

用户在完成矫正后,可以选择输入X,Y,Z的值来查看水平面、矢状面、冠状面的三维切片图像,以满足不同用户的研究需求,对照图如图4(e)和图4(f)所示。

4  结论

在本研究中,我们采集了中国7至12岁儿童的高质量fMRI数据,建立了一套适用于不同认知领

域基于特定年龄、认知神经及认知发育功能脑图谱,观察到儿童在不同的认知过程中广泛存在的特异性的全脑激活。同时,我们在神经成像信息学工具和资源信息中心(NITRC)网站(http://www.nitrc.org/ projects/dbfa)上发布了DBFA工具箱,用来量化、可视化和下载不同特定认知过程的脑图谱。研究者们也可以用这个工具箱来处理自己fMRI数据,或者根据我们发布的脑图谱,根据自己研究中的需要,来重新进行阈值的设置和全脑中激活脑区位置的观察。

这个公开的脑图谱来源于一个正常、特征良好的人群,有助于开放性问题和图像数据分析,以便研究者们能更好地了解儿童人群。使用这样一个大样本使得这些图谱具有可重复性、健壮性,可作为今后儿科研究中正常发育大脑和患病大脑的参考。

参考文献

  1. Baum, G. L. et al. Modular Segregation of Structural Brain Networks Supports the Development of Executive Function in Youth. Curr. Biol. 27, 2017, 1561-1572. e8.
  2. Foulkes, L. & Blakemore, S. -J. Studying individual differences in human adolescent brain development. Nat. Neurosci. 21, 2018, 315-323.
  3. Dobbing, J. & Sands, J. Quantitative growth and development of human brain. Arch. Dis. Child. 48, 1973, 757-767.
  4. Qin, S., Young, C. B., Supekar, K., Uddin, L. Q. & Menon, V. Immature integration and segregation of emotion-related brain circuitry in young children. Proc. Natl. Acad. Sci. 109, 2012, 7941-7946.
  1. Crone, E. A. & Elzinga, B. M. Changing brains: how longitudinal functional magnetic resonance imaging studies can inform us about cognitive and social-affective growth trajectories. Wiley Interdiscip. Rev. Cogn. Sci. 6, 2015, 53-63.
  2. Keresztes, A. et al. Hippocampal maturity promotes memory distinctiveness in childhood and adolescence. Proc. Natl. Acad. Sci. 114, 2017, 9212-9217.
  3. Qin, S. et al. Hippocampal-neocortical functional reorganization underlies childrens cognitive development. Nat. Neurosci. 17, 2014, 1263-1269.
  4. Xie, W. et al. The construction of MRI brain/head templates for Chinese children from 7 to 16 years of age. Dev. Cogn. Neurosci. 15, 2015, 94-105.
  5. Fonov, V. et al. Unbiased average age-appropriate atlases for pediatric studies. Neuroimage 54, 2011, 313-327.
  6. Sanchez, C. E., Richards, J. E. & Almli, C. R. Age-Specific MRI Templates for Pediatric Neuroimaging. Dev. Neuropsychol. 37, 2012, 379–399.
  7. Richards, J. E., Sanchez, C., Phillips-Meek, M. & Xie, W. A database of age-appropriate average MRI templates. Neuroimage 124, 2016, 1254-1259.
  8. Zhao, T. et al. Unbiased age-specific structural brain atlases for Chinese pediatric population. Neuroimage 189, 2019, 55-70.
  9. Esteban, O. et al. fMRIPrep: a robust preprocessing pipeline for functional MRI. Nat. Methods 16, 2019, 111.
  10. 鄧子强, 王玉玫. 基于Qt绘图系统的图形应用优化研究与实现[J]. 软件, 2016, 37(12): 59-62.
  11. 兰林涛, 桂彦, 郑镇潮, 等. 基于Qt开源框架的跨平台图像修复系统设计与实现[J]. 软件, 2016, 37(8): 47-50.

猜你喜欢

工具箱矫正图谱
绘一张成长图谱
“体态矫正”到底是什么?
基于MATLAB优化工具箱优化西洋参总皂苷提取工艺
补肾强身片UPLC指纹图谱
矫正牙齿,不只是为了美
Matlab曲线拟合工具箱在地基沉降预测模型中的应用
矫正牙齿,现在开始也不迟
改良横切法内眦赘皮矫正联合重睑术
搜狗分号工具箱 输入更便捷
杂草图谱