FSL 处理大脑图像(预处理)

2023-05-16

一、TBSS处理数据大致流程
1. 经过mriconvert转换之后,得到每个被试的4D数据,b值以及向量
2. fslroi data nodif 
%choose no weighted imaging,named nodif
从4D图像中选出一张需要的图像,0表示选择从第几个volume开始,1表示选择图像的个数
3. bet nodif nodif_brain -m -f 0.2
%generate binary brain mask(-m),fractional intensity threshold is 0.2(-f),result in the file nodif_brain_mask    去除头盖骨
4. eddy_correct data eddy_unwarped 0
eddy_correct <4dinput><4doutput> []        Choose interp from {trilinear,spline} def trilinear  %时间大概是10分钟
 5.  Dtifit 
使用ctrl+alt+t调出终端,输入fsl,选择fdt*下的dtifit,在option中手动加入对应文件,包括data的输入、输出,b值文件,梯度方向(矢量)文件,共4个。运行完成后,就可以得到FA图,MD图等  

6. 打开生成的FA文件所在的目录
 7. tbss_1_preproc*.nii.gz 
将每个人的FA图依次处理为tbss可处理的格式
Ps:可能需要新建两个文件夹(一个为FA,一个为origdata)
8. tbss_2_reg -T
将FA图抽样到1x1x1空间,空间标准化
9. tbss_3_postreg –S
把所有的FA图叠加到一起,生成4D文件mean_FA_skeleton
10. tbss_4_prestats
使骨架上包含所有的点
二、TBSS处理数据详细步骤
TBSS处理步骤
一、预处理
Any study or scanner-specific pre-processing (e.g., conversion from DICOM to NIFTI, removal of images affected by large artifacts).任何研究首先都是预处理
1、 转换数据格式:把DICOM格式的原始数据转换成NIFTI的.nii数据处理格式。(利用
MRIcroN\dcm2niigui.exe进行转换,格式选择为FSL (4D NIfTI nii));
转化过有用的处理数据包括T1(一般选截取脖子后的成像,原文件名称前一般有co两个字母),T2,rest(分辨率低,volume 240左右),DTI(分辨率高,一般文件比较大,volume 65左右)四种类型,各自包括nii,bvecs,bvals三个文件,四中数据单独提出来放在各自被试文件夹中。
注:用matlab中的dicominfo函数可以查看源数据内容。
Tips:在建病人文件夹时,可以利用原始数据批量建文件夹。利用Windows的批处理命令:
例如:在E盘的BP 文件夹中放有BP病人的原始数据压缩包,可以利用创建一个文本文档完成建文件夹批处理操作。
(1) 新建一个文本文档list.txt.
(2) 在文档中编辑dir E:\BP\*.tar.gz/on/b/s>>BPlist.txt,然后保存。
(3) 将list.txt的扩展名改为list.bat,然后双击运行,生成BP的列表BPlist.txt。 (4) 有了这个列表,就可以使用UltraEdit来进行进一步编辑成mkdir BP_XXX,保
存,运行步骤和第三步一样。
(5) 接下来可以使用MATLAB代码来一次性完成每个被试中的四种类型数据文件夹
生成,见下面代码:
(6) path='F:\wangm\xinxiang_data\BP\';
(7) folder=textread('listfolder.txt','%s');
(8) for sh=1:length(folder)
(9)     subpath=strcat(path,folder{sh});
(10)     cd (subpath);
 (11)     mkdir T1
(12)     mkdir T2
(13)     mkdir DTI
(14)     mkdir REST
(15)     cd ..
(16) End
(17) 
2、 服务器处理部分
(1) 将整理好的DTI数据转移到服务器上,直接拖拽过去就可以。
(2) 头动矫正 
eddy_correct  文件夹名/dti.nii  文件夹名/data   (0代表参考层,&表示后台运行)
 (3) 提取b0
fslroi  文件夹名/data.nii.gz  文件夹名/nodif  &
(4) 确定mask
bet  文件夹名/nodif.nii.gz  文件夹名/nodif_brain  -f 0.2 –m &
(5) 计算DTI指标:可用fsl可视化界面,dtifit步骤:
在命令行输入fsl,打开界面->FDT diffusion->DTIFIT Relonstruct->diffusion tensor->specify input files manually->选择文件
Diffusion weighted data: data.nii.gz
BET binary brain mask: nodif_brain_mask.nii.gz Gradient directions bvecs values bvals
第一个用fsl可视化界面,看运行后的结果,把命令复制后,进行批处理。dtifit -k data -m nodif_brain_mask -r bvecs -b bvals -o dti 生成
dti_FA.nii.gz :fractional anisotropy部分各向异性 dti_MD.nii.gz :mean diffusivity平均扩散系数 dti_MO.nii.gz :mode of the anisotropy各向异性模型 dti_L1.nii.gz :1st eigenvalue 第一特征值 dti_L2.nii.gz :2nd eigenvalue 第二特征值 dti_L3.nii.gz :3rd eigenvalue 第三特征值 dti_V1.nii.gz :1st eigenvector 第一特征向量 dti_V2.nii.gz :2nd eigenvector 第二特征向量 dti_V3.nii.gz :3rd eigenvector 第三特征向量
linux下的批处理操作:利用shell命令 1) touch  文件脚本名.sh (创建.sh文件) 2) vi 文件脚本名.sh(编辑文本)
3) 进入编辑界面,Insert->Enter(一般第一行不进行文本输入,
最好可以空一行)->编辑文本->编辑好后,换行->ESC->”shift”+”;”->wq(保存并退出) 4) sh  文件脚本名.sh (运行脚本文件.sh)
注:进行脚本批处理时,在命令后面最好带上&,可以在服务器后台运行,及时电脑关闭也可以运行,还可以用ssh node2进行节点选择。
linux后台运行和关闭、查看后台任务
fg、bg、jobs、&、nohup、ctrl+z、ctrl+c 命令 一、&
加在一个命令的最后,可以把这个命令放到后台执行,如
watch  -n 10 sh  test.sh   #每10s在后台执行一次test.sh脚本
二、ctrl z
可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
 三、jobs
查看当前有多少在后台运行的命令
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。
四、fg
将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。


五、bg
将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。
 六、kill
 法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
 法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid 前台进程的终止:Ctrl+c 七、nohup
如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭中断后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)
 
 
二、TBSS流程:

准备工作:首先新建一个自己的文件夹mkdir  mytbss 进入新建的文件夹中cd  mytbss
将所需要的DTI数据dti_FA.nii.gz拷贝到当前文件夹中: 批拷贝
a) 进入放被试文件夹的文件夹中
b) ls>>list.txt得到被试的列表
c) touch copyfile.sh
d) vi copyfile.sh
e) path=/mnt/ps4000e/home/lcao/wmz/BP
f) for file in `cat list.txt` g) do
h) cp $path/$file/DTI/dti_FA.nii.gz $path/mytbss/${file}.nii.gz &
 i) echo $file
 j) done
k) sh copyfile.sh
显示当前文件夹中的内容ls 
1. tbss_1_preproc *:获得数据的正确格式,创建文件夹FA和origdata,
将所有处理过的FA图像放入FA文件夹中,把原始的数据放入origdata文件夹中.
2. tbss_2_reg -T:将所有FA图像配准到TBSS中默认的标准空间
FMRIB58_FA standard-space 
或者也可以配准到自己设定的标准空间tbss_2_reg -t MNI152_T1_1mm
 3. tbss_3_postreg -S:每个subject的FA非线性变换到target,再放射变换到MNI标准空间。
The above results in standard-space version of each subject's FA image; 将所有被试的FA图像合并成一个 all_FA,并且放在一个新建的stats文件夹中. 还产生一个平均的all FA 图像mean_FA, 从而产生mean_FA_skeleton平均FA骨架。
 4. tbss_4_prestats 0.2:对mean_FA_skeleton进行阈值(0.2)限制,
获得mask
5. Voxel_wise statistics:进行统计分析,design检验矩阵,
randomise实现统计分析,用fslview查看统计分析结果
6. cd ./stats
7. design_ttest2 design 7
8. randomise -i all_FA_skeletonised -o tbss_FA -m
mean_FA_skeleton_mask -d design.mat -t design.com -n 500 --T2 -V
9. fslview $FSLDIR/data/standard/MNI152_T1_1mm
mean_FA_skeleton -l Green -b 0.2,0.8 tbss_tstat1 -l
Red-Yellow -b 3,6 tbss_tstat2 -l Blue- Lightblue -b 3,6 
也可以用tbss_fill来代替第9步:
tbss_fill tbss_tfce_corrp_tstat1 0.95 mean_FA tbss_fill 将all_FA.nii.gz和tbss_fill.nii.gz弄到桌面上,用MRICRON打开all_FA.nii.gz,点overlay->add->选择tbss_fill.nii.gz查看差异。
 关于非FA指标的计算:
 1) cd mytbss
2) mkdir L2,将被试的dti_L2.nii.gz都拷进去,并且命名要跟FA的完全
一样,例如,an image origdata/subj005_FA.nii.gz then you need an image L2/subj005_FA.nii.gz
3)  Run: tbss_non_FA L2,得到stats/all_L2_skeletonised
4) 然后是统计,randomise -i all_L2_skeletonised -o tbss_L1 -m
mean_FA_skeleton_mask -d design.mat -t design.com -n 500
--T2 -V
5) MD,L1,L3方法都一样。
6) RD=(L2+L3)/2
所以要经过下面的计算:
fslmaths dti_L2.nii.gz –add dti_L3.nii.gz  L2heL3 fslmaths L2heL3 –div L2heL3chu2 
VBA分析
选TBSS分析工程中产生的BP001_FA_to_target.nii.gz等所有被试的该数据,弄到一个文件夹中,要解压。
1、利用Rest进行重采样
Rest->utilities->reslice image->[2 2] 2、然后用SPM进行平滑
SPM->smooth(FWHM [8 8]不用改)
3、统计specify 2nd-level->Design->two t-test->新建输出路径NCVSBP Group1正常,Group2病人
4、Estimate->select SPM.mat
5、Result->nc vs bp->1 -1->none->0.001
 6、SPM8 toolbox 中Xjview查看结果
注:
基于体素的统计分析--VBA(SPM实现) 基于白质骨架的空间统计--TBSS 统计分析前需先进行图像配准
SPM中的Normalize+Smooth将FA配准到模板EPI.mnc,
TBSS中tbss_2_reg -T将FA图像配准到FMRILIB58_FA,或tbss_2_reg -t MNI152_T1_1mm 将FA配准到MNI标准空间



 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FSL 处理大脑图像(预处理) 的相关文章

  • 编辑器之神-vim的使用技巧

    vim VS emacs vim被誉为编辑器之神 xff0c 而emacs被誉为神之编辑器 中国文化博大精深 xff0c 他们究竟有什么区别呢 xff1f 作为emacs小白的我来说不想在这里献丑 xff0c 直接贴上一篇博客 xff0c
  • Linux离线环境安装bzip2

    1 下载离线安装包 bzip2 1 0 6 13 el7 x86 64 rpm http mirror centos org centos 7 os x86 64 Packages bzip2 1 0 6 13 el7 x86 64 rpm
  • Vivado使用与注意事项

    作者 QQ群 xff1a 852283276 微信 xff1a arm80x86 微信公众号 xff1a 青儿创客基地 B站 xff1a 主页 https space bilibili com 208826118 DRC INBB 3 Bl
  • Android Beam 详细实现步骤

    前言 最近没怎么写东西了 xff0c 主要是在了解Beam这个东东 找到一些高手写的文章 xff0c 奈何水平有限看的云里雾里的 没办法 xff0c 只好去复习官方文档 正文 xff1a 先摘取一部分官方文档 xff1a Beaming N
  • Qt中UTF-8转Unicode

    include lt QtCore QCoreApplication gt include lt QDebug gt include lt iostream gt include lt QTextCodec gt int main int
  • Qt中unicode转utf-8

    最经在研究AT指令接受短信 xff0c 短信是unicode编码 xff0c 接受后需要根据系统的编码方案进行相关的转码 比如接受到了一串字符4F60597D xff0c 它是 你好 的unicode编码 xff0c 一个unicode编码
  • 移植qt5.3.1到arm

    最近刚入手一款开发板 比较低端 刚毕业工作还没一个月 穷屌丝一个 在学校以前都是用的是Friendly Arm的6410 使用的qt版本是使用的最多的4 7 0版本 入手的板子是4 7 4 qt5出来也有好长的时间了 其中提供了很多的特性
  • Linux下生产者与消费者的线程实现

    代码见 现代操作系统 第3版 为了显示效果 xff0c 添加了printf 函数来显示运行效果 1 include lt stdio h gt 2 include lt pthread h gt 3 define MAX 20 4 pthr
  • 基于TCP协议的视频传输

    这个程序是为了大二上学期一个设计作业 xff0c 写的太水 xff0c 之前也发过 xff0c 那个不是最新版 xff0c 这个找到了可能是最新版的 xff0c 昨晚调试了下 xff0c 没用 xff0c 是一个itcol的函数操作无效 x
  • 使用nginx作为websocket的proxy server

    WebSocket WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择 其为HTML5的一部分 WebSocket相较于原来开发这类app的方法来说 其能使开发更加地简单 大部分现在的浏览器都支持Web
  • 前后端分离开发部署模式

    身体出了点小毛病 xff0c 这周基本在家养病 xff0c 转文章一篇 xff0c 以激励学习 在开始讨论这个话题之前我们先来认识一下传统的开发模式 一 传统开发模式 相信很多做过Web开发童鞋应该都会经历这样一种开发模式 xff0c 利用
  • I2C总线协议

    毕业设计中使用到了AT24C04器件 xff0c 其是Ateml公司出品的 xff0c 是一种低功耗CMOS串行EEPROM xff0c 其使用两线串行的总线和控制器进行通讯 其内部保存的数据在掉电的情况下可以有40年以上的有效期 其采用8
  • Spark--用Java开发微服务

    这个说的Spark不是apache的Spark xff0c 这边说的是一个java的web application的框架 官网 http sparkjava com 我做过一段时间的后台架构开发 xff0c 使用的是微服务架构 xff0c
  • MQTT协议与mosquitto的安装使用

    MQTT xff08 Message Queuing Telemetry Transport xff0c 消息队列遥测传输 xff09 是一种标准化的发布 订阅消息传输协议 它是一种非常轻量级的协议 xff0c 由于对带宽需求很低 xff0
  • Linux 文件锁

    在文已经共享的情况下如何操作 xff0c 也就是当多个进程同时操作同一个文件时 xff0c 我们怎么保证文件数据的正确性 linux通常采用的方法是文件上锁 xff0c 来避免共享资源的产生竞争状态 文件锁包括建议性锁和强制性的锁 建议性的
  • 基于qt的多线程视频采集与传输

    将服务端的设备虚拟化 xff0c 供客户端调用 使用TCP IP协议传输 xff0c 使用V4L2实现视频采集 只是实现了简单的功能 资源占用大 xff0c 线程的终结还有问题 xff0c 数据大 xff0c 不知道用什么技术压缩图片 这是
  • Qt元对象系统和模板机制的冲突

    Qt元对象系统是对为了Qt对象类型和信号与槽机制引进的 xff0c Qt的工具包中有一个元对象编译器 xff0c 它是为支持Qt元对象系统而产生一些额外C 43 43 代码 xff0c 这些编码会和源码一起被标准的C 43 43 编译器编译
  • qwt学习一

    学习这个东西方向对了 xff0c 就对了一半 今天我开始学习基于qt库的一个开源的绘制2维的统计图的库 qwt 我们画东西首先要有一个容器 xff0c 不然都是徒劳 xff0c 今天我们就介绍这个类 QwtPlot 它继承自QFrame和Q
  • vs自动对齐快捷键

    vs里的行间距和字间距不是c语言的格式解决办法 xff1a 自动对齐 xff1a 方法一 xff08 部分对齐 xff09 xff1a 用鼠标选中要对齐的区域 xff0c 按Crtl 43 K 43 F 方法二 xff08 全部对齐 xff
  • Ubuntu1804编译QWebEngine

    编译环境 Ubuntu1804 43 Qt5 13 2在终端命令框转到qtwebengine源码路径 cd opt Qt5 13 2 5 13 2 Src qtwebengine 执行qmake xff0c 并增加编译参数 opt Qt5

随机推荐