文章目录

  • 前言
  • 一、格式转换和提取b0图像
  • 二、脑提取BET
  • 三、涡流矫正eddy
  • 四、张量计算
  • 总结

前言

最近在学习FSL处理DTI数据,发现网上的几篇博客都写的不太完整,也不太具体。自己花了好几天时间看了FSL的官方指导,才有了一个完整的处理流程方法


一、格式转换和提取b0图像

1.格式转换:
      将后缀名为dcm的原始数据转换为后缀名为nii.gz格式的数据。nii.gz格式的数据不损失原始数据信息,并且能节省大量空间。FSL能够处理的是nii.gz格式的数据。

命令:

dcm2nii *.dcm
  • 1

生成nii.gz文件,此外还会生成两个文本文件,分别表示磁场梯度施加的强度和方向,这两个文件分别为 .bval 和 .bvec


比如我处理这个数据,bval共1行36列,表示总共采集了36个图像,第1个图像的b-value是 0,后面图像的b-value有1000和2


.bvec共有3行36列,表示在每个图像上所施加的梯度方向

2.提取b0图像
需处理的文件为:.nii.gz格式的DTI数据
命令:

fslroi dti_data.nii.gz b0.nii.gz 0 1
  • 1

后面的0 1代表从0个图像开始,提取出1张
所以输出文件:b0.nii.gz,包含了第一张图像b值为0的图像

二、脑提取BET

脑提取的目的就是为了获得一个去除颅骨后脑的掩模
基本用法是:
bet [options]
-o 生成覆盖在原始图像上的脑表面轮廓
-m 生成二进制脑掩码
-S 生成粗糙的头骨图像
-n 不生成默认的脑图像输出
-f 分数强度阈值(0,1);默认为0.5;较小的值给出更大的脑轮廓估计
-g 分数强度阈值的垂直梯度(-1,1);默认为0;正值在底部给出更大的
脑轮廓,在顶部给出更小的脑轮廓。
-r 头部半径(毫米)
-c 初始网格表面的重心(体素)。
-t 分割的脑图像和掩模中的应用阈值
-e 以.vtk格式生成大脑表面
-R 该选项运行更“稳健”的大脑中心估计;反复调用BET,每次使用相同的输入图像和相同的主要选项,但-c选项(设置大脑估计的起始中心)每次都被设置为先前估计的大脑提取的重心。通过这样的迭代,重心每次都应该上升到真正的中心,从而得到一个更好的最终估计。
-S 清除残留的眼睛和视神经体素,在运行Siena或SIENAX时有用
-B 减少图像的偏倚,和残留的颈部体素,在运行Siena或SIENAX时有用
-Z 如果数据中只有几个切片,这可以改善大脑的提取。这是通过在两个方向填充结束切片,多次 复制结束切片,运行bet2,然后删除添加的切片来实现的。
-F 这主要用于fMRI数据,例如移除眼球。使用Bet2根据4D数据集中的第一个卷确定大脑掩膜,并将其应用于整个数据集。
-A2 还将t2注册到t1输入图像

命令:

bet2 b0.nii.gz b0_brain.nii.gz -R -m -f 0.3
  • 1

经过我测试-f设为0.3比较好,0.5有点把脑组织也剥了

输出:去除颅骨后脑图像b0_brain.nii.gz和掩码b0_brain_mask.nii.gz

三、涡流矫正eddy

纠正涡流引起的扭曲和主体的运动,它可以处理比eddy_correct(早期版本)更高的b值数据

–imain一个图像文件。
–mask用1和0指定大脑(1)和非大脑(0)的单个卷图像文件。通过在第一个b=0的图像上运行BET获得。
–acqp描述imain中不同图像的采集参数的文本文件
–index一个文本文件,它决定acqp和imain两者之间的关系
–bvecs描述扩散加权的方向的文本文件。
–bvals具有b-values的文本文件
–repol 删除任何被认为是异常值的切片,并用高斯过程的预测来替换它们。默认情况下不做异常值替换。
–topup 运行topup的——out参数。
–field 运行topup的——fout参数。

–acqp
acqp用来告诉eddy什么方向的畸变可能进入。
每行首先由一个向量(三个值)组成,它指定相位编码(PE)轴是什么,以及沿着该轴意味着更高频率的方向。比如向量[0 1 0]和[0 -1 0]暗示PE是沿y方向
(0 1 0)表明以更高的频率向着更高的位置 (即正向信号)
(0 -1 0)表明以更低的频率向着更高的位置 (即负面信号)
每行中的第四个元素是从读取第一个echo的中心到读取最后一个echo的中心之间的时间(以秒为单位)。
根据官方文档,他告诉我们如果没有扫描仪制造商足够的经验,使用中几乎不需要去设置真的该参数,只需要对topup和eddy使用相同的文件:
Does the brain jump up and down?使用
0 1 0 0.05
0 -1 0 0.05
Does the brain bounce from side to side? 使用
1 0 0 0.05
-1 0 0 0.05

-topup
对于两个不同的获取,b=0扫描的形状是不同的。使用topup来计算磁化引起的非共振场(the susceptibility induced off-resonance field),然后将结果场将应用于所有图像。
通常输入的图像是从原始b=0和扩散加权图像组合中提取一组b=0的扫描。

-index
它决定acqp和imain两者之间的关系
acqp只有1行 0 1 0 0.05

所以我用以下代码生成index

indx=""
for ((i=1; i<=36; i+=1)) do
indx="$indx 1"; done
echo $indx > index.txt
  • 1
  • 2
  • 3
  • 4

最后的命令:

eddy_openmp       --imain=dti_data.nii.gz --mask=b0_brain_mask.nii.gz--acqp=acqparams.txt --index=index.txt --bvecs=bvec --bvals=bval --out=eddy_corrected_data
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

四、张量计算

输入:
-k,–data dti 数据
-o,–out 输出的名字
-m,–mask BET二进制掩码文件
-r,–bvecs b vectors file
-b,–bvals b values file
其他选项:
–sse 输出误差的平方和
-w,–wls 用加权最小二乘法拟合张量
–kurt 输出平均峰度图
–kurtdir 输出平行/垂直峰度图

输出:
• _V1 - 1st eigenvector第一特征向量
• _V2 - 2nd eigenvector
• _V3 - 3rd eigenvector
• _L1 - 1st eigenvalue第一特征值
• _L2 - 2nd eigenvalue
• _L3 - 3rd eigenvalue
• _MD - mean diffusivity平均扩散率
• _FA - fractional anisotropy 分数各向异性
• _MO - mode of the anisotropy (oblate ~ -1; isotropic ~ 0; prolate ~ 1) 各向异性的模式(扁形~ -1;各向同性~ 0;扁长的~ 1)
• _S0 - raw T2 signal with no diffusion weighting无扩散加权的原始T2信号

写出的命令

dtifit
--data=eddy_corrected_data.nii.gz
--out=dti
--mask=b0_brain_mask.nii.gz
--bvecs=bvec --bvals=bval
  • 1
  • 2
  • 3
  • 4
  • 5

总结

以上就是我的整个处理流程,以后有后续再补充

FSL处理DTI数据详细流程相关推荐

  1. FSL处理DTI数据详细流程(本人亲身经历的流程)

    文章目录 前言 一.格式转换和提取b0图像 二.脑提取BET 三.涡流矫正eddy 四.张量计算 总结 前言 最近在学习FSL处理DTI数据,发现网上的几篇博客都写的不太完整,也不太具体.自己花了好几 ...

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

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

  3. 一文带你了解HBase读取数据详细流程

    HBase数据读取流程 1.hbase数据读取流程简单描述 ​ 一般来说,在描述hbase读取流程的时候,简单的描述如下: ​ 1).客户端从zookeeper中获取meta表所在的regionser ...

  4. 使用 FSL 和 TrackVis 分析 DTI 数据

    转载原文 使用 FSL 和 TrackVis 分析 DTI 数据 Alex / 2018-05-21 / free-learner@163.com 弥散加权成像(Diffusion Weighted ...

  5. TCP/IP学习(30)——L2数据链路层的数据包处理详细流程

    原文地址:TCP/IP学习(30)--L2数据链路层的数据包处理详细流程 作者:GFree_Wind 本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝 ...

  6. 练习记录-用FSL工具对DTI数据进行FDT预处理

    练习记录用FSL工具对DTI数据进行FDT预处理 本文是CSDN博主「txapples」的原创文章,遵循CC 4.0 BY-SA版权协议,原文链接:https://blog.csdn.net/txap ...

  7. 使用FSL和TrackVis分析DTI数据

    原文 跳至内容 学习记录 首页 联系 使用FSL和TrackVis分析DTI数据 作者Alex发布于2018-05-22分类MRI标签DTI.DWI.FA.Tractography 弥散加权成像(Di ...

  8. 爬取医药卫生知识服务系统的药品数据——超详细流程

    爬取医药卫生知识服务系统的药品数据--超详细流程 文章目录 爬取医药卫生知识服务系统的药品数据--超详细流程 前言 一.寻找药品数据 二.爬取药品ID 1.资源获取 2.数据提取 3.资源保存 4.主 ...

  9. 操作系统学习:Linux0.12初始化详细流程-进程1调度与读取硬盘数据

    本文参考书籍 1.操作系统真相还原 2.Linux内核完全剖析:基于0.12内核 3.x86汇编语言 从实模式到保护模式 4.Linux内核设计的艺术 ps:基于x86硬件的pc系统 Linux0.1 ...

最新文章

  1. Spring Boot骚操作-多数据源Service层封装
  2. 图灵十二月书讯 ——年底大餐
  3. 人性经不起金钱的考验,何况是黄金 --- 我看电影《黄金兄弟》
  4. 点云配准网络 PCRNet: Point Cloud Registration Network using PointNet Encoding 2019
  5. 如何关闭Windows XP/Vista/Windows 7的DEP数据执行保护
  6. Vue+Openlayer使用Draw实现交互式绘制多边形并获取面积
  7. 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))
  8. OpenCV cv::reduce用法的实例(附完整代码)
  9. 一步一步学Silverlight 2系列(22):在Silverlight中如何用JavaScript调用.NET代码
  10. 【转】Android必备知识点- Android文件(File)操作
  11. unbuntu使用经典界面
  12. c语言判断任意位数能否倒序数,C语言求助!一个三位数的逆序数,总是编不对...
  13. webbrowser 访问iframe拒绝访问_电脑无法删除文件访问被拒绝【解决方案】
  14. 电脑用来测试网段信号的软件,WiFi信号分析仪PC版
  15. STM32应用笔记分类汇总,值得收藏
  16. 高乐计算机课程,长春理工大学
  17. sqlserver 联接查询的一些注意点
  18. RuoYi若依打包发布与部署
  19. 阿里云搭建JAVA环境详解(jdk+mysql+tomcat)
  20. GAN“家族”又添新成员——EditGAN,不但能自己修图,还修得比你我都好

热门文章

  1. 2020湖湘杯部分writeup
  2. 集成学习与模型融合(kaggle-Elo Merchant Category Recommendation)
  3. python输入float_float是什么意思_在python中 float是什么意思?
  4. linux区分系统盘和数据盘命令
  5. Alan的SQL语句学习笔记
  6. 首席新媒体运营黎想教程:2021最全电商运营指南
  7. Linux学习 -- Shell面试题练习
  8. face论文翻译--3D Face Morphable Models “In-the-Wild”
  9. 求助:有道题不会写;
  10. 【SystemVerilog基础】program块的automatic与static深入探究