一 处理步骤
因为我多了一个去除小脑的步骤所以,首先有两个模板文件:
标准化空间模板是FSL自带的,在其安装路径中
标准小脑mask模板是需要软件wfu pickaltas,里面可以找到各种脑影像模板

ref="/home/wangcong/software/fsl/data/standard/MNI152_T1_1mm_brain.nii.gz" # 标准化空间模板
mask_ref="/home/wangcong/ADNI_data/model/cerebellar_mask.nii" #标准小脑mask模板

这里主要介绍DTI的处理。MRI的处理包含在其中了
1)dcm转Nii
dcm2nii -o $temp_dti $input_dti #dcm转Nii格式,输出到temp_dti

2)涡流矫正

                cd $temp_dti     raw_dti=`ls *.nii.gz` bval=`ls *.bval`bvec=`ls *.bvec`echo "涡流矫正"eddy_dti="eddy_dti"eddy_correct $raw_dti $eddy_dti 0  #涡流矫正

3)提取b0

echo "提取b0图像"
b0="b0"
fslroi $raw_dti $b0 0 1  #提取b0图像

4)提出大脑

echo "提取大脑mask"
brain_dti="brain_dti"
bet ${b0}.nii.gz $brain_dti -m -R  #提取大脑mask

5)拟合张量

                fit_dit="fit_dti"mask_dti=${brain_dti}_maskdtifit -k ${eddy_dti}.nii.gz -m ${mask_dti}.nii.gz -r $bvec -b $bval -o $fit_dit #拟合张量md_dti=${fit_dit}_MD.nii.gz #DTI数据的MD文件

6)空间标准化

                echo "空间标准化"norm_dti="norm_dti"flirt -in $md_dti -ref $ref -out $norm_dti  #标准化

7)配准到对应MRI

                echo "配准到相应MRI"reg_to_mri='reg_to_mri'flirt -in ${norm_dti}.nii.gz -ref $temp_mri/${norm_mri}.nii.gz -out $reg_to_mri

8)移除小脑

                echo "移除小脑"cere_dti="nocere_dti"fslmaths ${reg_to_mri}.nii.gz -mul $mask_ref $cere_dti  #移除小脑

9)提取ROI
去除旁边的黑色像素
x轴:20-140
y轴:10-180
z轴:5-150

                echo "提取ROI"roi_dti="roi_dti"fslroi ${cere_dti}.nii.gz $roi_dti 20 140 10 180 5 150echo "DTI复制转移"

所有代码包括了MRI和DTI的处理

#!/bin/bashref="*****/fsl/data/standard/MNI152_T1_1mm_brain.nii.gz" # 标准化空间模板
mask_ref="*****/model/cerebellar_mask.nii" #标准小脑mask模板precessing(){input_dti=$1/dti temp_dti=$2/dtioutput_dti=$3/dtiinput_mri=$1/mritemp_mri=$2/mrioutput_mri=$3/mrimkdir -p $temp_dtimkdir -p $output_dtimkdir -p $temp_mrimkdir -p $output_mriecho "*****************开始处理MRI数据*************************"echo "dcm转Nii格式"dcm2nii -o $temp_mri $input_mri      #dcm转Nii格式,输出到temp_dticd $temp_mri   raw_mri=`ls co*.nii.gz` echo "提取大脑"brain_mri="brain_mri"bet $raw_mri $brain_mri -R   #提取大脑echo "空间标准化"norm_mri="norm_mri"flirt -in ${brain_mri}.nii.gz -ref $ref -out $norm_mri  #空间标准化echo "移除小脑"cere_mri="nocere_mri"fslmaths ${norm_mri}.nii.gz -mul $mask_ref $cere_mri  #移除小脑echo "提取ROI"roi_mri="roi_mri"fslroi ${cere_mri}.nii.gz $roi_mri 20 140 10 180 5 150echo "MRI复制转移"out_mri=${subject}_${time}_mricp ${roi_mri}.nii.gz $output_mri/${out_mri}.nii.gzecho "*****************开始处理DTI数据*************************"echo "dcm转Nii格式"dcm2nii -o $temp_dti $input_dti      #dcm转Nii格式,输出到temp_dticd $temp_dti       raw_dti=`ls *.nii.gz` bval=`ls *.bval`bvec=`ls *.bvec`echo "涡流矫正"eddy_dti="eddy_dti"eddy_correct $raw_dti $eddy_dti 0  #涡流矫正echo "提取b0图像"b0="b0"fslroi $raw_dti $b0 0 1  #提取b0图像echo "提取大脑mask"brain_dti="brain_dti" bet ${b0}.nii.gz $brain_dti -m -R  #提取大脑maskecho "拟合张量"fit_dit="fit_dti"mask_dti=${brain_dti}_maskdtifit -k ${eddy_dti}.nii.gz -m ${mask_dti}.nii.gz -r $bvec -b $bval -o $fit_dit #拟合张量md_dti=${fit_dit}_MD.nii.gz #DTI数据的MD文件echo "空间标准化"norm_dti="norm_dti"flirt -in $md_dti -ref $ref -out $norm_dti  #标准化echo "配准到相应MRI"reg_to_mri='reg_to_mri'flirt -in ${norm_dti}.nii.gz -ref $temp_mri/${norm_mri}.nii.gz -out $reg_to_mriecho "移除小脑"cere_dti="nocere_dti"fslmaths ${reg_to_mri}.nii.gz -mul $mask_ref $cere_dti  #移除小脑echo "提取ROI"roi_dti="roi_dti"fslroi ${cere_dti}.nii.gz $roi_dti 20 140 10 180 5 150echo "DTI复制转移"out_dti=${subject}_${time}_dticp ${roi_dti}.nii.gz $output_dti/${out_dti}.nii.gz  #复制到结果文件}
single_input="*****/raw_data/016_S_4638/2012-02"  #原始文件夹
single_temp="*****/temp/016_S_4638/2012-02" #临时文件夹
single_output="*****/precessed/016_S_4638/2012-02" #结果文件夹
precessing $single_input $single_temp $single_output

二 python查看各步骤的结果

import numpy as np
import nibabel as nib
import matplotlib.pyplot as pltdef load_nii(data_path):img = nib.load(data_path).get_data()  return img[:,:,60]img_path=["co20120203_132150SawyerADNI220110825Ls002a1001.nii.gz","brain_mri.nii.gz","norm_mri.nii.gz","nocere_mri.nii.gz","roi_mri.nii.gz",]
plt.figure(figsize=(15, 3))for i,path in enumerate(img_path):plt.subplot(1,5,i+1)img_z_60=load_nii(path)plt.imshow(img_z_60.T,cmap='gray')plt.xticks([])plt.yticks([])

打个码嘻嘻

DTI及MRI数据预处理相关推荐

  1. MRI数据预处理--使用FSL-BET轻松去头骨,提取脑组织

    许多脑成像分析工作流程中的第一个处理步骤是从颅骨内部提取脑组织.该过程叫 Brain extraction(大脑提取) or skullstripping(颅骨剥离) 机器扫描的图像不仅包含大脑,还包 ...

  2. 基于FSL的DTI数据预处理流程

    最近在学习处理DTI数据,总结了一份应用FSL做DTI数据预处理的流程与大家交流交流.如果有错误的地方欢迎大家指正! 我用的数据是Philips的数据,如果是GE或者西门子的数据可能会有所不同. 原始 ...

  3. NeoRS:新生儿静息态fMRI数据预处理流程

    大家好,这里是 "茗创科技" .茗创科技专注于脑科学数据处理,涵盖(EEG/ERP, fMRI,结构像,DTI,ASL, ,FNIRS)等,欢迎留言讨论及转发推荐,也欢迎了解茗创科 ...

  4. 【ADNI】数据预处理(1)SPM,CAT12;数据集

    ADNI Series 1.[ADNI]数据预处理(1)SPM,CAT12 2.[ADNI]数据预处理(2)获取 subject slices 3.[ADNI]数据预处理(3)CNNs 4.[ADNI ...

  5. 机器学习之金融信贷风控(二)申请评分卡中的数据预处理和特征衍生(未完待续)

    申请评分卡中的数据预处理和特征衍生 模型处理的一般流程: 构建信用风险模型的特征 获取数据 链接:https://pan.baidu.com/s/1CsY11ArZ6YK3o1icghWj2w 提取码 ...

  6. Principles of fMRI 1课程笔记8--fMRI的数据预处理

    刚采集的原始图像数据会经过一系列的预处理步骤.这些步骤主要是分辨并去除伪影(Artifact),或者是检验一些模型所需的假设是否成立.具体来说,有三个目的: 尽量减少因为数据采集(Data acqui ...

  7. 毕业设计一深度学习之MRI数据集预处理(合并,裁剪以及重命名等操作)

    目录 一,MRI简介 二,MRI数据集获取 三,MRI数据集预处理 四,实现用Keras来构建基于MRI的网络结构 一,MRI简介 核磁共振成像(英语:Nuclear Magnetic Resonan ...

  8. 机器学习PAL数据预处理

    机器学习PAL数据预处理 本文介绍如何对原始数据进行数据预处理,得到模型训练集和模型预测集. 前提条件 完成数据准备,详情请参见准备数据. 操作步骤 登录PAI控制台. 在左侧导航栏,选择模型开发和训 ...

  9. 深度学习——数据预处理篇

    深度学习--数据预处理篇 文章目录 深度学习--数据预处理篇 一.前言 二.常用的数据预处理方法 零均值化(中心化) 数据归一化(normalization) 主成分分析(PCA.Principal ...

最新文章

  1. Javascript 节点 全面解析
  2. IDisposable实现的方法什么时候被执行的
  3. Orchard Core 文档翻译 (六)HTML
  4. python协程学习——写个并发获取网站标题的工具
  5. Webview页面的控件元素定位
  6. Java位操作:如何将long类型的指定位设置为0或1?How to set/unset a bit at specific position of a long?
  7. [杂题训练]CF1228E Another Filling the Grid(容斥),CF936C Lock Puzzle(构造)
  8. C++静态成员和静态方法
  9. java 类对象_Java中的对象和类是什么?
  10. sql取日期的年月_机油检测美版银美孚5W30,生产日期20年1月
  11. MySQL通过接口导入hive_利用Sqoop将MySQL数据导入Hive中
  12. SpringCloud学习笔记002---Spring Cloud实战微服务准备
  13. 基于Java、Jsp实现购物车的功能
  14. element UI指定下拉框样式修改
  15. java小项目-继承-接口-Swing窗口(一共5个demo)
  16. linux编译libmp3lame,使用libmp3lame库编码mp3
  17. linux CPU占用率高
  18. Activity高级学习
  19. iOS 日记app的制作过程(Objective-C)
  20. kail之MSF渗透测试

热门文章

  1. 事务隔离级别与事务传播行为简介
  2. 华为的数通认证考试难不难?考试内容是什么?
  3. 教你如何查看自己电脑开关机记录
  4. 防火墙的双机热备技术(上下行接口连接二层设备)
  5. 访问Daytime服务的客户端(TCP)
  6. tensorflow中的一些基本函数
  7. (十一)51单片机——用AT24C02实现存储秒表数据(附成果展示)
  8. 交大『云观CD-ROMIII』直接由CD-ROM执行之安装法(转)
  9. 数据驱动的软件智能化开发| ChinaOSC
  10. 胆囊结石在我们的生活中有哪些危害呢?