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语言源文件要经过编译.链接才能生成 ...
随机推荐
- 非代码的贡献也能成为Committer,我与DolphinScheduler社区的故事
点亮 ️ Star · 照亮开源之路 https://github.com/apache/dolphinscheduler // 每个人对于"开源社区"的定义都不一样, ...
- IDEA创建新的模块springboot
1.右键项目-new-moduel 2.选择maven 3.选择jdk 4.输入名字 5.在项目pom文件加入模块依赖(版本管理) <dependency> <groupId> ...
- DownKyi安装使用教程
哔哩下载姬 哔哩下载姬是一个简单易用的哔哩哔哩视频下载工具,具有简洁的界面,流畅的操作逻辑. 支持批量下载哔哩哔哩视频 支持批量下载bilibili视频. 哔哩下载姬可以下载几乎所有的B站视频,并输出 ...
- Visual Studio更改项目文件夹名称
一.VS打开项目解决方案(按以下顺序操作) PS:如果已经出错,打不开.sln文件,就从第三步开始操作,进入目录更改对应其.csproj文件名称即可 1.选择要更改的项目或类库,右键属性,更改程序集名 ...
- 很奇怪CSDN的审核
https://www.cnblogs.com/lup9304/p/15310753.html https://www.cnblogs.com/lup9304/p/15328809.html 很奇怪C ...
- Vue搭建项目的完整流程 如何搭建一个完整的vue项目 vue项目架构
vue项目架构 技术栈:vue3.vue-router .vuex(和pinia).element plus .axios.ts.sass 1.安装vue3 脚手架+ ts vue create ad ...
- JavaSE 对象与类(一)
对象与类 1.面向对象程序概述 Java是完全面向对象的,必须熟悉OOP才能够编写Java程序. 概念:类class.实例(对象)instance 由类构造(construct)对象的过程称为创建类的 ...
- Android:Banner 和 Glide 在 Fragment 中实现轮播图
添加依赖信息 引入 Banner 和 Glide 依赖信息: dependencies { implementation 'io.github.youth5201314:banner:2.2.2' i ...
- PostgreSQL 实现快速删除一个用户
一.具体方法 一般情况下直接执行 drop role xxx; 就可以把这个用户删除.但是很多时候会因为用户有依赖而报错. 二.权限依赖 postgres=# create role test wit ...
- linux系统下,新加硬盘并把现有的/home目录扩容。
我的机器是centos7.3的系统.使用了一段时间后,我的/home 目录的可用空间没有了.于是我新加了一张硬盘.(如果是加了多张硬盘,就先做好raid,使用起来是一样的).我需要把新加的硬盘空间都划 ...