30 May 2018 | neuroscience
本笔记主要记录神经图像的大致预处理流程与使用FSL库进行处理的方法。
FSL is a comprehensive library of analysis tools for FMRI, MRI and DTI brain imaging data.
我们将神经图像的预处理分为4个步骤:
library(fslr)
nim=readNIfTI("~/公共/dataset/113-01-MPRAGE.nii.gz", reorient=FALSE)
options(fsl.path="/opt/fsl")
have.fsl()
The probability distribution function of tissue class intensities should not depend on the spatial localization of the tissue
fslr::fsl_biascorrect calls fast from FSL which incorporates the bias field correction by Guillemaud and Brady This takes a while: be patient
fast_img = fsl_biascorrect(nim, retimg=TRUE)
orthographic(nim)
orthographic(fast_img)
Skull-stripping removes extra-cerebral voxels from the volume, automatic segmentation of brain & non-brain tissue
FSL’s Brain Extraction Tool (BET) can be used for skull stripping BET: fast, robust, and popular
fslr::fslbet is used to call the FSL commands
bet2: does brain extraction
bet: does brain extraction with additional options
bet_fast = fslbet(infile=fast_img, retimg=TRUE)
bet_fast_mask <- niftiarr(bet_fast, 1)
is_in_mask = bet_fast>0
bet_fast_mask[!is_in_mask]<-NA
orthographic(bet_fast)
orthographic(fast_img,bet_fast_mask)
Possible solution:
cog = cog(bet_fast, ceil=TRUE)
cog = paste("-c", paste(cog, collapse= " "))
bet_fast2 =fslbet(infile=fast_img,retimg=TRUE,opts=cog)
orthographic(bet_fast2)
图像配准:在做医学图像分析时 ,经常要将同一患者几幅图像放在一起分析 ,从而得到该患者的多方面的综合信息 ,提高医学诊断和治疗的水平。对几幅不同的图像作定量分析 ,首先要解决这几幅图像的严格对齐问题 ,这就是我们所说的图像的配准。医学图像配准 [1] 是指对于一幅医学图像寻求一种 (或一系列 )空间变换 ,使它与另一幅医学图像上的对应点达到空间上的一致。 这种一致是指人体上的同一解剖点在两张匹配图像上有相同的空间位置。 配准的结果应使两幅图像上所有的解剖点 ,或至少是所有具有诊断意义的点及手术感兴趣的点都达到匹配。
对于在不同时间或 /和不同条件下获取的两幅图像配准 [3] ,就是寻找一个映射关系P ,使图像1上的每一个点在图像2 上都有唯一的点与之相对应。 并且这两点应对应同一解剖位置。 映射关系 P表现为一组连续的空间变换。
所谓刚体 ,是指物体内部任意两点间的距离保持不变。例如 ,可将人脑看作是一个刚体。处理人脑图像 ,对不同方向成像的图像配准常使用刚体变换。 刚体变换可以分解为旋转和平移
R: rotation matrix
t:translation vector
仿射变换将直线映射为直线 ,并保持平行性。具体表现可以是各个方向尺度变换系数一致的均匀尺度变换或变换系数不一致的非均匀尺度变换及剪切变换等。 均匀尺度变换多用于使用透镜系统的照相图像 ,在这种情况下 ,物体的图像和该物体与成像的光学仪器间的距离有直接的关系 ,一般的仿射变换可用于校正由 CT 台架倾斜引起的剪切或 MR梯度线圈不完善产生的畸变。
非线性变换也称做弯曲变换 (curved transformation) ,它把直线变换为曲线。 使用较多的是多项式函数 ,如二次、三次函数及薄板样条函数。 有时也使用指数函数。 非线性变换多用于使解剖图谱变形来拟合图像数据或对有全局性形变的胸、腹部脏器图像的配准。
Works better and requires fewer degrees of freedom
A template image is necessary
From FSL: “FLIRT (FMRIB’s Linear Image Registration Tool) is a automated and robust tool for linear (rigid, affine) intra- and inter-modal brain image registration”
template<-readNIfTI(file.path( "~/公共/dataset/MNI152_T1_1mm_brain.nii.gz"), reorient=FALSE)
registered_fast = flirt(infile=bet_fast2, reffile =template, dof = 6,retimg = TRUE)
orthographic(template)
orthographic(registered_fast)
reg_fast_affine = flirt(infile=bet_fast2, reffile =template, dof = 12,retimg = TRUE)
orthographic(reg_fast_affine)
FNIRT performs non-linear registration. An affine registration must be performed before using FNIRT
fslr::fnirt_with_affine: affine registration + FNIRT perform this on skull-stripped images
fnirt_fast = fnirt_with_affine(infile=bet_fast2,reffile = template, outfile = "FNIRT_to_Template",retimg=TRUE)
orth