脑研究总结

本篇博文主要是结合python库Nilearn中提供的API,对fMRI数据的处理方式进行介绍。

撰写时间:2018.5.17
作者:selous

0.fMRI数据介绍

以脑成像为例,fMRI与MRI的区别主要是,传统的MRI为结构性成像(structural),扫描脑灰质,白质,脑脊液的形态结构等以判断是否有病变或损伤.fMRI(functional)功能成像,是基于大脑进行某项活动时局部脑区血氧水平的变化,来观察进行某项任务时所谓”脑激活”情况.是BOLD信号成像.前者可认为时间分辨率为无穷大(不发生损伤或病理性改变及老化因素等影响,脑结构基本保持稳定),后者的时间分辨率为秒级.

1.fMRI数据格式

本章的主要内容是结合haxby2001数据集和Nilearn库中提供的API介绍fMRI数据的格式

首先从该网址(http://data.pymvpa.org/datasets/haxby2001/subj2-2010.01.14.tar.gz)中下载一个样本的数据,其中文件bold.nii.gz时fMRI数据,将其解压之后,我们对其进行分析。

1.1 读取图像

import nilearn
niiImage = nilearn.image.load_img("subj1/bold.nii");
print niiImage.get_data().shape

#result:(40, 64, 64, 1452)

从上述结果可以知道fMRI数据是四维数据,其中第四维为时间维度,前三维是传统的脑图像扫描之后的3D图像数据。

1.2 可视化图像

first_image = image.index_img(niiImage, 0)
#print first_image
plotting.plot_anat(first_image)
plotting.show()

可视化结果:
这里写图片描述

2.fMRI数据处理方式

原始的fMRI数据是四维数据,传统的机器学习方法都不能很好的应用在原始数据上面,下面介绍的就是对原始数据的两个基本操作。
2.1 Mask

将四维数据转化为两维数据,该过程就叫做MASK。简单来讲就是特征提取的过程,提取的二维矩阵为一维的时间和一维的特征。也就是从fmri中的每一个时间片上(三维脑图)中提取特征,组合在一起。
这里写图片描述
这里写图片描述

from nilearn.input_data import NiftiMasker
masker = NiftiMasker(mask_img="subj1/mask4_vt.nii", standardize=True)
fmri_masked = masker.fit_transform("subj1/bold.nii")
print fmri_masked.shape
#result:(1452, 577)

2.2 Timeseries
从上面的结果可以看出,一个样本的特征时特别多的,下面的过程就是挑选出一些有效的时间序列建立功能性脑网络结构。具体的参考内容可以查看该网址
2.2.1 基于标准脑区图谱

#基于标准aal图谱
from nilearn.input_data import NiftiLabelsMasker
masker = NiftiLabelsMasker(labels_img="subj1/aal.nii", standardize=True,
                           memory='nilearn_cache', verbose=5)
time_series = masker.fit_transform("subj1/bold.nii")
print time_series.shape
#result:(1452, 116)

2.2.2 基于概率图谱

#概率图谱
atlas_filename = "msdl_atlas/MSDL_rois/msdl_rois.nii"
data = "subj1/bold.nii";

from nilearn.input_data import NiftiMapsMasker
masker = NiftiMapsMasker(maps_img=atlas_filename, standardize=True,
                         memory='nilearn_cache', verbose=5)

time_series = masker.fit_transform(data)
print time_series.shape
#result:(1452, 39)

2.3 建立功能型脑网络
通过脑区的时间序列,计算不同脑区之间的相关系数,构建脑网络。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值