AFNI 步骤4-命令和预处理
第一部分 AFNI命令和uber_subject.py的使用
略
第二部分 时间矫正
在扫描过程中,从第一个切片到最后一个切片之间存在一定的时间差,导致采集到的数据并不是一个时间点的。
在扫描过程中,MRI有两种扫描方法, 顺序切片采集,按照顺序从上到下、从下到上进行采集 交错切片采集,每采集一张切片后隔一张再采集,然后第二遍进行间隙填充。
脚本:3dTshift
第三部分 配准和标准化
我们每个人的大脑都是相似的,但是也存在一定的差别,在进行组分析时这些差别会产生影响,所以我们要保证每个人的大脑体素都对应到相同的大脑模板上。比如让每个被试的视觉皮层与其他人是相互一致的。
这需要用到配准和标准化,大脑模板是具有标准的坐标和维度,许多研究者一致认可的数据。
仿射变换:包括缩放、裁减、平移和旋转四种线性变换。而对于非线性变换,比如一边放大,另一边缩小。
我们最终的目的是把功能像配准到标准模版,有两个途径: 直接将功能像配准到标准模版,这样效果较差 先将结构像配准到标准模版,保存配准过程中的变换参数,再将功能像配准到结构像。在实际的配准过程中,功能像因为分辨率较低,变换会引起较大的误差,我们一般倾向于将结构像进行配准。
问题:我们是将结构像配准到标准空间,再将功能像与结构像配准,那么上述说的将结构像配准到功能像就与之矛盾!!!
A:在这个过程中,我们首先将功能像配准到结构像(实际操作是结构像配准到功能像,保存变换矩阵,然后反向操作就实现了功能-结构),然后再把结构像配准到标准空间,也保存了一个变换矩阵。最后将两个变换矩阵进行合并,就实现了功能像到标准空间的配准。
使用align_epi_anat.py脚本执行。
第四部分 对准和运动矫正
在扫描过程中受试者的头部可能会有轻微的扰动,对于成像结果来说会产生影响,我们需要对头动进行矫正。
刚体变换:采用刚体变换来解决头动问题,如果我们设定一个参考点,然后检测到受试者的头部向哪个方向移动了,那么我们只需要将图像的切片向相反的方向移动同样的距离即可,当然,不只是平移,包括旋转等。
在volreg部分执行上述操作。
第五部分 平滑
平滑就是用周围体素的平均值代替当前体素,这对使得图像变得模糊,分辨率降低。但是平滑对与fMRI来说是非常有效的,因为fMRI的噪音较大,平滑后可以显著降噪,同时增强信号。平滑核函数一般包括两个:4mm和10mm,越大的核函数平滑程度更大,当然图像分辨率也越低。
脚本:blur部分
第六部分 mask和体素缩放
设置一个掩膜只把头部纳入进来,其余部分都去掉。去结构像的mask,然后应用到功能像上。
脚本:3dAutomask
不同受试者的图像之间像素强度可能存在差异,这样的分析结果不会有任何意义,所我我们将每个体素的时间序列缩放为100的平均值(范围0-200)。
第七部分 检查预处理结果
通过afni查看处理后的图像,每一步的图像都有保存。有部分sub的图像会出现缺失,这是因为结构像和功能像的图像中心差距过大。
解决办法:进入带有三个代码文件的目录,删除预处理结果文件夹。 rm -r sub01.result
手动编辑proc.sub01脚本,该脚本就是通过uber_subject.py GUI界面产生的预处理脚本。在
@auto_tlrc -base MNI_avg152T1+tlrc -input sub-08_T1w_ns+orig -no_ss 后面加上
-init_xform AUTO_CENTER,然后tcsh proc.su01重新进行预处理。
到此,预处理步骤就全部结束!
AFNI 步骤4-命令和预处理的更多相关文章
- sys用户密码丢失找回密码的步骤和命令
假设你的sys用户密码丢失,写出找回密码的步骤和命令? 1.确认哪个数据库实例的sys用户密码丢失:(例:数据库实例为orclA) 2.进入数据库实例的目录中找到PWDorclA.ora文件:(例目录 ...
- TFS Release 步骤调用命令行返回失败信息的处理方法
TFS Release中自定义步骤时,可以选择“命令行”,官方的文档中,并没有描述调用相关的程序后,如何返回失败信息.通过下面步骤,可以实现本标题描述的功能. 步骤一:编写Console Applic ...
- linux配置防火墙详细步骤(iptables命令使用方法)
通过本教程操作,请确认您能使用linux本机.如果您使用的是ssh远程,而又不能直接操作本机,那么建议您慎重,慎重,再慎重! 通过iptables我们可以为我们的Linux服务器配置有动态的防火墙,能 ...
- bash处理一条命令的步骤
Shell执行一条命令步骤 参考链接: <Learning the bash Shell, 3rd Edition -- 7.3. Command-Line Processing> &l ...
- 【C语言入门教程】2.8 C 语言的预处理命令
预处理命令是在程序编译阶段进行执行的命令,用于编译与特定环境相关的可执行文件.预处理命令扩展了 C 语言,本节将选择其中一些常用的预处理命令进行讲解. 2.8.1 宏替换命令 宏替换命令的作用类似于对 ...
- 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出
[源码下载] 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 预处理命令 输入 ...
- C语言之预处理命令与用typedef命名已有类型
预处理命令 主要是改进程序设计环境,以提高编程效率,不属于c语言本身的组成部分,不能直接对它们进行编译,必须在对 程序编译之前,先对程序中的这些特殊命令进行“预处理”.比如头文件. 有以下三类:宏定义 ...
- C语言中的预处理命令
预处理功能是C语言的重要功能. 问:为什么要预处理,什么是预处理? 答:我们知道高级语言的运行过程是通过编译程序(编译器)把源代码翻译成机器语言,实现运行的.编译程序的工作包含:语法分析.词法分析.代 ...
- C 语言入门第八章--C语言预处理命令
例如:#include ,这种以#号开头的命令称为预处理命令. ===C语言宏定义(#define的用法)==== #define 叫做宏定义命令,它也是C语言预处理命令的一种.所谓宏定义,就是用一个 ...
- C/C++编程笔记:C语言预处理命令是什么?不要以为你直接写#就行!
很多小伙伴在自己写代码的时候,已经多次使用过#include命令.使用库函数之前,应该用#include引入对应的头文件.其实这种以#号开头的命令称为预处理命令. C语言源文件要经过编译.链接才能生成 ...
随机推荐
- drf-序列化器、反序列化、反序列化校验
1.APIView执行流程 1.之前我们是基于django原生的View编写接口,drf提供给咱们的一个类APIView,以后使用drf写视图类,都是继承这个类及其子类,APIView本身就是继承了D ...
- 编写antd的Cascader 级联选择组件市级地区数据
下面是该组件的使用数据的格式 options: [ { value: 'zhejiang', label: 'Zhejiang', children: [ { value: 'hangzhou', l ...
- 【Oculus Interaction SDK】(九)使用控制器时显示手的模型
前言 这篇文章是[Oculus Interaction SDK]系列的一部分,如果发现有对不上的对方,可以回去翻看我之前发布的文章,或在评论区留言.如果文章的内容已经不适用于新版本了,也可以直接联系我 ...
- 郁金香逆向 2.便利怪物对象数组 纯C写法
读取基础地址 获取节点数量 打印怪物列表 进行遍历 环环相扣
- Can not use keyword ‘await’ outside an async function
- Flutter:StatefulWidget 怎么传参
定义好一个有状态(或无状态)的组件之后,需要为其传递一些参数,希望组件能够更加灵活使用.那么,在 Flutter 中如何为其传递参数呢? 以下是 StatefulWidget 传递值的步骤,一共三步: ...
- centos7配置vue环境
1.安装nodejs #下载源码 wget https://npm.taobao.org/mirrors/node/v14.15.4/node-v14.15.4-linux-x64.tar.xz #解 ...
- Android 7.0+模拟器Fiddler抓包详细教程 fiddler443问题解决办法
https://blog.csdn.net/qq_43278826/article/details/124291040 [前言] 众所周知,假如设备是android 7.0+的系统同时 ...
- Pytorch和torchvision版本号对应表
torch与torchvision版本对应表 torch及torchvision版本号查询 import torch print(torch.__version__) import torchvisi ...
- MATLAB批量处理表格类型文件
MATLAB版本2020b 问题背景:预处理数据,有若干变压器温度表格,要将变压器运行温度数据提取出来 通过LSTM模型进行温度预测