FSL ICA-FIX配置及处理流程

本文详述了如何在Windows 10的Ubuntu子系统中,利用FSL的ICA(独立成分分析)结合FIX工具进行MRI数据的去噪处理。首先介绍了通过FeatGUI进行ICA预处理的步骤,接着详细讲解了FIX的安装、配置,包括R和MATLAB的安装。最后,阐述了使用FIX进行人工和自动去噪的流程,以及解决MATLAB运行时可能出现的问题。
摘要由CSDN通过智能技术生成

最近处理影像数据时涉及到使用ICA进行去噪预处理,而FSL可以实现这一功能。

FSL的ICA去噪包括有人工去噪及自动去噪两种,其中后者需要用到FIX这一软件包,FIX的安装及配置比较繁琐,本人在阅读了官网的指示及反复试错后终于得以成功运行,故将此进行整理以供参考。

笔者使用的是win10上的WSL子系统(ubuntu18.04)进行的FSL配置,这里默认读者已经安装好FSL,故不多介绍FSL在win10上的安装步骤了。

Feat ICA处理

我们先简单过一遍ICA的Gui处理步骤

单被试ICA在FSL中主要通过Melodic或者Feat Gui图形界面进行处理,笔者以Feat作为演示:

在ubuntu终端中输入Feat &后回车,弹出Gui界面,

上图中的Misc我们可以保持默认值不动,上面的菜单栏中我们选择first-level analysis和preprocess。

在Data select 4D data中我们输入需要处理的nii文件,Output我们维持默认路径即可,在输入后FSL会自动帮我们呈现TR与VOLUMNE。

接着在pre-stats一栏中我们将motion correction与slice timing,Bet全选上,如果你的数据是multiband的话需要把alternative image也输入进去,B0校正如果有相应资料我们也将场图,相位图输入进去,Spatial smoothing和highpass看情况可选可不选(取决于你的研究,一般空间平滑后的去噪效果会有很大差别。)然后因为我们需要做ICA,所以记得把低下的ICA选项勾上。

 

接着是Registration配准,使用两部配准,输入对应的T1结构图像,标准空间默认是MNI152 2mm的template。

线性配准方式与自由度根据自己需要进行选择。

检查一遍无差错后我们就可以go了,如无意外我们可以得到如下目录及文件:
    

接下来进行人工去噪,首先需要打开fsleyes进行数据查看,人工标记:
 

fsleyes --scene melodic -ad **.ica &

 人工标记部分这里就不细讲了,毕竟我们的重点是FIX包的使用。

我们使用FIX包需要先手动标记10名左右被试的数据作为训练,因此以上步骤我们需要进行10次左右,手动标记完保存下.txt文件,命名为hand_labels_noise.txt(一定要这样统一命名,FIX才能辨认出来)。

FIX的安装与配置

FIX的安装命令与使用方式可以在FSL的wiki官网找到,安装上,除了FSL,我们还需要在Ubuntu上安装好R和matlab。

安装R,我们选择最新版本的,否则后续安装R包时会不兼容:

修改我们ubuntu上的source.list文件:
 

sudo vim /etc/apt/sources.list

将下面这个加到最后一行:

deb https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/linux/ubuntu bionic-cran40/

更新:

sudo apt update && sudo apt upgrade

添加密钥:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

正式安装:

sudo apt install r-base
sudo apt install r-base-dev

打开R,版本应该为最新的:
 

在R上,我们需要安装如下R包:

在R终端中调用install.packages("库名")即可,按照上面的名字一个个敲。

至此,R环境安装配置完毕

安装MATLAB:

首先确保自己C盘空间足够,在win10中找到MATLAB安装包(我使用的R2017b破解版)

下载好后你的安装包会有如下文件:
 

1)我们先创建一个新路径:

mkdir home/***(你设置的Linux用户名)/temp

2)将下载好的iso镜像文件挂载上去:

cd **  #(你的matlab安装包路径)

su  #(转为root用户,否则没有挂载权限)

sudo mount -t auto -o loop R2017b_glnxa64.iso /home/xxx/temp #(挂载)

3)正式安装:进入挂载目录:
   

cd /home/***/temp

sudo /home/xxx/temp/install #开始安装

4)破解
    转回刚开始的安装包目录,进入crack破解文件夹中,将下面两个文件放入对应位置:

​
sudo cp license_standalone.lic /usr/local/MATLAB/R2017b/licenses/

sudo cp libmwservices.so /usr/local/MATLAB/R2017b/bin/glnxa64/

​

5)取消挂载:
 

   sudo umount /home/xxx/temp

6)安装完成,运行

/usr/local/MATLAB/R2017b/bin/matlab

 这时如无意外你的MATLAB界面就能弹出了(win10 FSL用户记得提前把xlaunch打开)

配置完成!!!FSL , R,MATLAB齐全了。这时我们上FIX官网把FIX包下载下来:

FIX - FslWiki

下载解压好后里面有一对的.m与.sh文件,其中有一个是我们需要自己编辑的--settings.sh文件

我们在将FIX放入WSL运行前可以先在win10下用记事本编辑好:

在setting.sh中,我们需要自己更改里面的R与MATLAB的路径(本文默认都装在/usr默认路径中):

1)记事本打开settings.sh,我们来到Part 1 MATLAB/OCTAVE mode那里。

FIX的配置有三种选择--MATLAB,OCTAVE,MATLAB COMPILED RUNTIME

我三个都试过,但只有MATLAB成功了(其中MCR配置涉及更改环境变量,巨坑,稍有不慎你的ubuntu系统就废掉了,这里抛砖引玉一下,如果有大神是用其他两种方式配置的欢迎补充,这样就可以对我们的C盘友好一点了。)

 将FSL_FIX_MATLAB_MODE值设为1,表示我们选择MATLAB模式。

2)编辑MATLAB路径设置:

将标红两处进行更改(“=”后面的全部删去重新编辑),第一处我们将其改为MATLAB启动的路径(默认下的是/usr/local/MATLAB/R2017b/bin/matlab);第二处为我们的MATLAB安装包路径(/usr/local/MATLAB/R2017b)。

3)设置R路径:
拉到最后会有R的设置:

如图,将R的安装路径(/usr/bin/R)放到标红处那里替换掉。

正式运行

这时我们的设置全部完成了,将修改好的settings.sh文件保存,将整个FIX包复制到ubuntu中的/usr/local路径下。

训练数据

我们将在FSL中完成ICA完整处理的10名左右被试数据拿出来作为训练,我图方便会将他们都整理成一个目录下,例如:

需要注意,FIX的运行需要我们输入完整的文件,少一个都不行,包括有:
 

 如果我们在Feat或Melodic中做了头东矫正与配准,那么应该都是齐全的(我们看生成目录下会分别由一个mc与reg的文件夹),如果你没有完全进行所有步骤,那么需要在后续补充文件输入,同时确保每一个被试.ica文件夹下都包含有你完成好的噪声人工标记.txt文档,并且命名为hand_labels_noise.txt。

将工作路径切换到我们整理好材料的路径中,数据训练指令为:
 

/usr/local/fix/fix -t <Training> [-l]  <Melodic1.ica> <Melodic2.ica> ...

其中training是我们会生成的数据集文件名(training.Rdata),-l 是其中一个选项,加上它,会生成另一个Traning_LOO文件夹,后面的.ica是我们每名被试数据的整个.ica文件夹目录,如果你使用的是Feat,那么则是.Feat格式,将10个数据的命名以此黏贴上去,然后回车。

输入训练数据越多,跑的时间越长。

最终我们会得到:

.RData就是我们自己训练出来的数据集,凭借这个,我们可以进行接下来的自动去噪了。

自动标记去噪

现在我们使用生成得RData来试试处理一名已运行完ICA但没有进行噪声分类的数据(同样的,ICA需要有如上所示完整的文件)

我们直接使用这行代码生成最终的去噪后的nii文件:

/usr/local/fix/fix <mel.ica> **.RData  20

 mel.ica就是我们想要处理的数据,RData是我们生成的数据集(注意如果不在一个目录需要指名具体存放路径),后面的数字20是一个阈限值,我们可以调整大小,达到想要的信噪区分效果(一般情况下使用20即可)。

这就是FIX给我们自动生成的噪声.txt文件,里面记录有自动标记好的噪声成分。

一个问题
我在最初设置好跑指令时有遇到过MATLAB错误的情况(卡在了提取特征成分一步,并且给位哦生成了报错文件--segmentation violation)

我查询了一些文章,这篇文章解决了我的问题:

进入上面的这个MATLAB目录,重命名一个文件后就能运行了。

 

以上就是FSL ICA-FIX的一个简单使用流程,希望可以提供参考,欢迎各路大神补充细节。 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值