T1結構像+RS-fMRI影像處理過程記錄(數據下載+Matlab工具箱+數據處理)

最近需要仿真研究T1結構像+RS-fMRI影像融合處理輸出目標坐標的路線可行性。就此機會記錄下來。
為了完成驗證目標處理,首先需要有數據,然后需要準備對應的處理平臺和工具箱,進行一系列。那么開始記錄~
前言:
為了基于種子點的功能連接分析,找出與種子點的最相關坐標。如下是嚴老師的培訓文檔,正是我所需要的。鏈接如下:

https://d.rnet.co/Course/V3.0EN/4_R-fMRI_Data_Processing_DPARSFA.pdf
https://d.rnet.co/Course/V3.0EN/4_R-fMRI_Data_Processing_DPARSFA.mp4

在這里插入圖片描述
在這里插入圖片描述
確實做功能連接是我這次處理的目的,我需要先完成預處理,后才基于種子ROI去做功能連接分析,既可以分析種子ROI和目標腦區的連接情況,也可以分析種子ROI與全腦的功能連接情況。但是可以想象,兩個計算量肯定有明顯的差異。
萬里長征第一步,還是開始嘗試吧。
正文:
(1)下載滿足要求的開源數據
去OpenNEURO https://openneuro.org/datasets/ds002422/versions/1.1.0
下載數據做仿真驗證夠夠的了,有46個被試,每個被試下面有多個數據記錄,完全符合我的需要,有這個做仿真研究真的是太方便了。
(sub-01_T1W.nii就是T1結構像,sub-01_task-rest_bold.nii.gz就是我要的RS-fMRI)
多下載幾個數據處理驗證沒得問題。
在這里插入圖片描述

也可以去嚴老師的網站下載數據,不同類別的data可供下載,可以直接下載Demo Data for DPARSF。
https://rfmri.org/content/demonstrational-data-resting-state-fmri

(2)準備數據處理平臺
按照如下準備先按照到位,這些是處理和查看處理過程的利器,作為研究核磁影像的人少不了。
在這里插入圖片描述
安裝完Matlab以后,除了MRIcron 是獨立軟件,其他就都是工具箱。工具箱軟件需要先下載到本地,后解壓縮放到Matlab 安裝路徑的toolbox 文件夾下,并打開matlab 界面,從設置路徑處導入。這里我是遇到了一個問題,到底是 添加文件夾 還是 添加并包含子文件夾
在這里插入圖片描述
那么看下面
在這里插入圖片描述
澄清一下:如果打算使用DPABI 做預處理,那么這個地方的SPM12 和DPABI的設置路徑的方式一定要參考嚴老師的官網
使用DPABI 一定要去看:http://www.rfmri.org/DPABIErrorHandling
在這里插入圖片描述

REST 是DPABI 的一個子模塊。
(3)實施處理
都說DPABI 是“傻瓜版”的SPM,但是這個用起來還是要花時間去仔細啄米…
先說一下數據擺放路徑,非常容易出錯,可以先去閱讀網站 http://www.rfmri.org/DPABIErrorHandling
如果用DPABI 來做預處理,那數據擺放路徑就是講究,路徑關系如果層級發生錯誤,就會報各種奇怪的錯誤。
首先新建一個路徑文件夾,如202504_MRI是我的文件夾,文件夾下面需要新建兩個子文件夾:
如果原始數據都是Dicom 格式,新建T1Raw 和FunRaw 文件夾,并將各被試的T1像拷貝到T1Raw文件夾,RS-fMRI 像拷到FunRaw文件夾。
如果T1是nii格式,RS-fMRI 是.nii.gz 格式就新建T1Img 和FunImg文件夾,并將3個被試的T1像拷貝到T1Img文件夾,RS-fMRI 像拷到FunImg文件夾,我這次的數據就是這一種。
另外,一定要注意,如果使用DPABI進行預處理,這些原始數據的父文件夾是T1Img 和FunImg文件夾,或T1Raw 和FunRaw 文件夾,我曾經將sub當父文件夾出現了難以接受的錯誤。正確的數據層級關系如下:
當原始數據是.nii+.nii.gz 格式時:
在這里插入圖片描述
當原始數據是Dicom格式時:
在這里插入圖片描述
這里插一個處理步驟,因為我看有人講一個4D.nii.gz 容易報錯,需要轉化成多個3D ni。
我的fMRI 影像是一個文件4D.nii.gz 文件,然后我通過手動解壓以后變成了只變成了一個nii。如果想變成多個3D nii,還是需要工具或者代碼實現。下面提供一段可靠的代碼4D.nii.gz 轉成多個3D nii的matlab:

clc;clear;
fileName = 'sub-03_task-rest_bold.nii.gz';%需解壓的fMRI 的原始4D 文件壓縮格式文件名,
filepath = 'E:/202504_MRI/';%fMRI 的原始4D 文件路徑
gz_file = fullfile(filepath,fileName);tempniiPath =  'E:/202504_MRI/temp/';%初解壓縮的nii文件存儲路徑,臨時的,每完成一個數據的解壓以后都要建立一個temp
gunzip(gz_file,tempniiPath);%手動初解壓縮fileList = dir(fullfile(tempniiPath,'*.nii*'));
outFile = fileList.name;%fMRI 手動初步解壓縮后的文件名
inputFilename = fullfile(tempniiPath ,outFile);%解壓后的完整文件名outDir = 'E:/202504_MRI/FunImg/sub3/';%解壓成3D nii 的存儲路徑spm('Defaults','fMRI');
spm_jobman('initcfg');
% 創建 batch job
matlabbatch{1}.spm.util.split.vol = {inputFilename}; 
matlabbatch{1}.spm.util.split.outdir = {outDir}; % 輸出目錄
matlabbatch{1}.spm.util.split.prefix = 'vol_'; % 輸出文件名前綴
spm_jobman('run',matlabbatch);

(2)預處理步驟雖多,但是處理的過程有講究
在這里插入圖片描述
在matlab 窗口輸入 DPARSFA(是DPARSF advance 版本,支持T1+fMRI 聯合分析)后即可進入DPARSFA 交互界面
①模版參數
選中Blank,其實就是空白模版,其他的都有很多默認的參數和處理步驟被選中是有特定的處理,作為新手來說,先從0開始進入吧,選中blank就相當于空白開始,滅有任何的默認選中處理步驟,需要自己去嘗試設定探索;

這個地方參數模版,是一些供選擇的處理方案,感覺是處理步驟流程模版化,選擇不同的模版會在界面上出現對應選中處理步驟,估計也會存在一些差異性的處理流程步驟,如果很清楚自己的處理目標和步驟,就可以直接選中適合的一個,后面只要把數據掃描關聯的參數填下就可以run了。
但是這個地方要結合自己的處理目標去分析。
如果只需要做預處理,那只能選擇blank,其他的選項中不管是在MNI空間還是original空間 都是默認選中了預處理+后處理。
在這里插入圖片描述
②工作路徑
這個工作路徑需要選中建立的文件夾,是一個總的大路徑,不要出現中文字符;

③掃描參數
Time Points:采集的時間點數,應該是個整數,預估100~300,具體需要查看數據
TR:是重復時間,這個也是掃描參數,一般這兩個參數需要基于fMRI 數據去查看,如果已知就直接填寫
這兩個參數必須要準確,如果不知道,可以通過軟件查看,實在不行就空著,軟件會在處理的過程中讀取到。

建議在matlab 中通過命令得到點數,這個是.nii.gz 的獲取方式

nii=niftiinfo("my-rs-fMRI.nii.gz");
TimePoints = nii.ImageSize(4);
disp(['時間點總數:'num2str(TimePoints)]);

dicom也有其獲取參數的方式,比如先轉成nii查看,或者用MRIcron/MRIcronGL/3D slicer/FSL /等軟件打開查看。
TR(s)這個參數重要,就是重復時間,這個需要基于掃描json文件去查看,也可以用別的軟件工具去查看。

④就是將dicom轉成nifti格式,由于我的輸入就不是dicom,這一步完全不用選。

在這里插入圖片描述
上面沒有標出來,Apply Mats,如果輸入是dicom 格式數據,那就選中吧,如果是我這樣的nii格式就不選
⑤ 去除因設備開機不穩的時間點,一般會去掉開始的5~10個時間點的數據。這里,我沒有去,因為我下載的數據中已經在json中說了手動去掉了3個時間點,我就不再去了,直接填了0,也可以不選中,省的有效數據變短。

⑥時間層矯正,因為功能像是隔層掃描,做這個處理就是要重新把時間對齊,必須要選中;

⑦功能像的掃描層數,就是ImageSize(3),我下載的數據是64X64X36X200,我這里就是36層
后面的Slice Order:掃描次序,我填的[2:2:36,1:2:35](我看了我下載的json文件,我的是隔層掃描,先掃偶數層,后掃奇數層)

⑧參考層,一般用正中間的掃描時刻對應的層作為參考層,也有TR/2最接近的時刻處的層作為參考
我的掃描時間序列
“SliceTiming”: [1.5375,0,1.6225,0.085,1.7075,0.1725,1.7925,0.2575,1.8775,0.3425,1.9625,0.4275,2.05,0.5125,2.135,0.5975,2.22,0.6825,2.305,0.7675, 2.39,0.855,2.475,0.94,2.56,1.025,2.645,1.11,2.7325,1.195,2.8175,1.28,2.9025,1.365,2.9875,1.4525 ],
可以看出0時刻在第2幀,而且偶數層比奇數層的時刻小,說明先偶數后奇數。
⑨ 表明數據開始處理的路徑這樣可以附加到工作路徑文件夾。
⑩ 運行時間層矯正

看看做完時間層矯正后的結果,可以看到matlab 窗口中輸出說明我的參數設置正確了,正確完整了時間層矯正,而且還是3個sub都處理了
在這里插入圖片描述
在這里插入圖片描述
頭動矯正
在這里插入圖片描述

Realign:必須要選中
Voxel-Specific Head Motion :因為我計算的目標是坐標靶點,對空間定位和連接精度非常敏感,我這里也需要選中,相當于是需要做一個更高級一些些的頭動矯正。普通的核磁處理可以不選中。有人說這一步時間長作用不大,我還是先處理看看。
根據上面,我處理的輸入是要基于時間層矯正的結果,所以我界面的這個輸入文件夾是時間層矯正的輸出在這里插入圖片描述
處理完以后輸出又多了更多文件夾
在這里插入圖片描述
影像重定向及分割配準
在這里插入圖片描述
(11 Reorient Fun : 處理fMRI,就是是的頭的朝向變正(因為很多情況下存在數據歪斜)
手動調整功能像歪斜,此處需要手動確立AC點。

(12 AutoMask :處理fMRI 自動掩膜生成,就是基于T1結構像,去掉不是大腦區域的部分,生產掩膜圖像;
這個步驟其實是對頭動矯正以后的fMRI 影像的平均圖像進行處理的,可以得到平均圖像去除顱骨以后模版mask。
(13 Crop T1: 就是去掉T1中的無關區域,比如脖子,背景、空氣、頭皮,從而減少圖像中的無效空白部分;
(14 Reorient T1: 處理結構像數據,結構像圖像重新定向,矯正朝向和歪斜
需要在彈窗中手動標記AC 點。
(15 Bet :T1 結構像處理,剔除顱骨,提取大腦區域
(16 T1 coreg to Fun: 對齊結構像和功能像,用coregistration 將fMRI 與T1 進行對齊,其實就是將T1結構像配準到fMRI 空間,從而實現兩者空間對齊。
這個步驟完成了不少內容,首先講去掉顱骨的的T1,批準到了去掉頭皮的fMRI 上,并得到了中間計算參數,可以講帶顱骨的T1配準大片fMRI 空間。
(17 segment :分割,將T1結構像分割成灰質、白質、腦脊液,segment 是傳統的分割方法,New segment+DARTEL 是一種新的分割方法(如果T1結構像的質量很好建議選擇這個方法)
這個處理步驟,其實是先將已配準到fMRI 平均影像的T1 又配準到標準空間,這樣得到了中間形變參數。同時對標準空間下的T1進行分割處理,分割出腦灰質、腦白質、腦脊液等掩膜圖像。
(18 分割處理的模版選擇,East Asian 是東亞模版比較適合處理東方人的數據(基于東亞數據得到),European是歐美數據模版(基于歐美數據得到,其實就是MNI)
我這個數據下載的,查閱以后還是先選擇歐美模版。
在這里插入圖片描述
注意11和14都是需要手動調整數據朝向和歪斜的,新手還無從下手,暫時先不選。另外如果數據本來就很正,AC-PC都有差不多水平了,而且也沒有左右歪斜就要不選。如果要矯正就要研究其選中后的彈窗頁面的調整,等我學會了,我再來補充一下。
11和14選中以后都需要手動去差點參考點,會彈窗讓手動操作選擇。
先看看AC-PC:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
上面圖示中給出了AC和PC應該落點的位置,可見AC和PC在上下方向幾乎是等高的。
在彈出的頁面,手動標記參考時,需要講AC作為參考點,先理解了AC和PC的結構特點就好落點了。
這一步的輸出:
在這里插入圖片描述
下面用軟件逐一打開查閱
T1ImgBet 就是T1結構像做了顱骨剔除以后的大腦區域的圖像。
如下圖可以看出sub1剔除的的比較差,在小腦下還包含了一些其他的組織,sub2有少許雜質組織,sub3剔除的最好,如果演示我肯定用sub3被試的處理結果去演示。
在這里插入圖片描述
T1ImgCoreg:
這個是T1配準到fMRI 以后的結果,我也打開看看影像的變化
很遺憾,這個文件夾中的數據跟T1Img 中的數據大小和空間方位還有可視化一模一樣,說明T1 Coreg to Fun 是不成功了,為啥不成功,我要重新跟蹤步驟檢查。
這一步要重新到退處理檢查了,這一次不能跳過任何的彈窗和提示。
我查閱資料科普一番以后,發現T1 Coreg to Fun,就是T1結構像配準到去頭動后的fMRI 的平均圖像中,因為我的fMRI 圖像是沒有做顱骨剝離的,所以此處T 1 Coreg to Fun 輸出的應該還是帶顱骨的圖。跟我原來的理解有出入,先記錄一下。
T1ImgNewSegment 文件家中放的是分割的腦灰質、白質、腦脊液文件。
在這里插入圖片描述
再看看預處理的后半部分,
后面再接著寫吧。。。
這部分主要是4個功能:
①用來處理完成頭動矯正的fMRI 影像的,就是基于頭動還有基線去做回歸,去噪
②是標準化
也是用來處理fMRI影像的,在T1配準到fMRI 空間后,其具備了與fMRI 影像同坐標系空間特點,后 在segment 時其又配準到了標準空間,其轉換到標準空間的轉換參數也代表了fMRI 到標準空間的參數,基于此對fMRI 影像完成標準化。與此同時還做了基于體素大小的重采樣;
③空間平滑處理,還是對fMRI 影像處理,FWHM是高斯窗。如果要計算局部一致性REHo,則平滑處理應該放在計算REHO之后。
④帶通濾波,兩個是一個意思,只是因為濾波既可以先做,也可以后做。因為如果要計算ALFF 和fALFF 就要后做,選后面那個。

因為我只在意最后用來分析計算功能連接,沒有計算ALFF/fALFF和分析局部一致性,預處理部分我都是嚴格按照上面的步驟來的。
感覺計算這兩個參數的話,濾波和平滑就要選擇后面的了,不能早早選中。

理解了所有的預處理以后確實沒怎么報錯,只是這個單純的處理框架看起來很離散,每個處理步驟都有輸入和輸出還有做的目的都需要分析。
在這里插入圖片描述
分析三天也才get 到一條初步的處理流程圖吧,一直都在邊處理邊理順邊驗證才得到的一張圖,也許這條路到最后發現有冗余,但是真的是要吃透才能簡化和完善。可以說預處理和準備分析工作占據了80%,后面的功能連接好像沒有那么多步驟。以后在具體實施中去應該吧。功能連接分析的路估計就是這么走了。真的挺長的,后面還要好好消化吸收。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/77420.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77420.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/77420.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Nginx-前言

nginx是什么? 輕量級,開源免費的web服務器軟件,服務器安裝nginx,服務器則成為web服務器 nginx的穩定版版本號: 偶數版本 nginx的相關目錄: /etc/nginx/nginx.conf nginx的主配置文件 /etc/nginx/ngi…

緩慢前行,靜待花開

最期待的不是成品出爐,而是揉面時感受到溫度、發酵時聞到淡淡香氣 1 “慢就是穩,穩就是快”。 這句來自特種兵的訓練語,被許多自媒體人奉為準則。 在看似風云突變的環境下,速度被隱藏在穩定中,結果被醞釀在過程里。…

洛谷的幾道題(2)

P1008 [NOIP 1998 普及組] 三連擊 # P1008 [NOIP 1998 普及組] 三連擊 ## 題目背景 本題為提交答案題,您可以寫程序或手算在本機上算出答案后,直接提交答案文本,也可提交答案生成程序。 ## 題目描述 將 $1, 2, \ldots , 9$ 共 $9$ 個數分…

Day10【基于encoder- decoder架構實現新聞文本摘要的提取】

實現新聞文本摘要的提取 1. 概述與背景2.參數配置3.數據準備4.數據加載5.主程序6.預測評估7.生成效果8.總結 1. 概述與背景 新聞摘要生成是自然語言處理(NLP)中的一個重要任務,其目標是自動從長篇的新聞文章中提取出簡潔、準確的摘要。近年來…

【大疆dji】ESDK開發環境搭建(軟件準備篇)

接上一篇【大疆dji】ESDK開發環境搭建(硬件準備篇) 1. 編譯環境 ESDK 提供 x86_64/aarch64 基于 Linux 平臺 Ubuntu 發行版操作系統構建的靜態庫,運行 demo 先正確安裝所需的依賴包。arm32位就不支持了。建議使用編譯安裝的方式,…

Java數據結構——ArrayList

Java中ArrayList 一 ArrayList的簡介二 ArrayList的構造方法三 ArrayList常用方法1.add()方法2.remove()方法3.get()和set()方法4.index()方法5.subList截取方法 四 ArrayList的遍歷for循環遍歷增強for循環(for each)迭代器遍歷 ArrayList問題及其思考 前言 ArrayList是一種 順…

【信息獲取能力】

第一層:表象觀察 現象:AI系統(如GPT-4)可以瞬間調用并整合全球互聯網上的公開信息,而人類即使窮盡一生也無法完成同等規模的知識儲備。 底層邏輯: 存儲與檢索效率:人類大腦的記憶容量有限&…

03、GPIO外設(三):標準庫代碼示例

標準庫代碼示例 1、點亮LED2、LED閃爍3、LED流水燈4、按鍵控制LED5、蜂鳴器 本章源代碼鏈接: 鏈接: link 1、點亮LED 實驗要求:點亮LED ①LED.c文件的代碼如下: #include "LED.h"/*** LED引腳初始化*//* 定義數組,想要添加引腳…

卷積神經網絡(CNN)與VGG16在圖像識別中的實驗設計與思路

卷積神經網絡(CNN)與VGG16在圖像識別中的實驗設計與思路 以下從基礎原理、VGG16架構解析、實驗設計步驟三個層面展開說明,結合代碼示例與關鍵參數設置,幫助理解其應用邏輯。 一、CNN與VGG16的核心差異 基礎CNN結構 通常包含33~55個…

java導出word含表格并且帶圖片

背景 我們需要通過 Java 動態導出 Word 文檔,基于預定義的 模板文件(如 .docx 格式)。模板中包含 表格,程序需要完成以下操作: 替換模板中的文本(如占位符 ${設備類型} 等)。 替換模板中的圖…

Oracle19C低版本一天遭遇兩BUG(ORA-04031/ORA-600)

昨天幫朋友看一個系統異常卡頓的案例,在這里分享給大家 環境:Exadata X8M 數據庫版本19.11 1.系統報錯信息 表象為系統卡頓,頁面無法刷出,登陸到主機上看到節點1 系統等待存在大量的 cursor: pin S wait on X等待 查看兩個節…

2025年Q1數據安全政策、規范、標準以及報告匯總共92份(附下載)

一、政策演進趨勢分析 (一)國家級政策新動向 數據要素市場建設 數據流通安全治理方案(重點解析數據確權與交易規則) 公共數據授權運營規范(創新性提出分級授權機制) 新興技術安全規范 人工智能安全標準…

ERR_PNPM_DLX_NO_BIN No binaries found in tailwindcss

場景復現: 最近在vue3項目中安裝了tailwindcss,但是它默認幫我安裝的版本是4XX的,導致我執行 npx tailwindcss init -p報錯了。 解決方案: 更改tailwindcss的版本為3 pnpm add -D tailwindcss3再次執行生成tailwindcss的初始…

第 4 篇:Motion 拖拽與手勢動畫(交互篇)—— 打造直覺化交互體驗

Framer Motion 的拖拽與手勢系統讓實現復雜交互變得異常簡單。本文將深入解析核心 API,并通過實戰案例演示如何創造自然流暢的交互體驗。 🧲 拖拽動畫基礎 1. 啟用拖拽 使用 drag 屬性即可開啟拖拽能力。支持的值有:true(全方向…

CF148D Bag of mice

題目傳送門 思路 狀態設計 設 d p i , j dp_{i, j} dpi,j? 表示袋中有 i i i 個白鼠和 j j j 個黑鼠時, A A A 能贏的概率。 狀態轉移 現在考慮抓鼠情況: A A A 抓到白鼠:直接判 A A A 贏,概率是 i i j \frac{i}{i j}…

BT1120 BT656驅動相關代碼示例

前些年做視頻輸出項目的時候用過bt1120 tx與rx模塊,現將部分代碼進行記錄整理。代碼功能正常,可正常應用。 1. rx部分: /****************************************************************************** Copyright (C) 2021,All rights …

服務器簡介(含硬件外觀接口介紹)

服務器(Server)是指提供資源、服務、數據或應用程序的計算機系統或設備。它通常比普通的個人計算機更強大、更可靠,能夠長時間無間斷運行,支持多個用戶或客戶端的請求。簡單來說,服務器就是專門用來存儲、管理和提供數…

SQL-exists和in核心區別?、 性能對比?、適用場景?

EXISTS和IN的基本區別。IN用于檢查某個值是否在子查詢返回的結果集中,而EXISTS用于檢查子 查詢是否至少返回了一行數據。通常來說,EXISTS在子查詢結果集較大時表現更好,因為一旦找 到匹配項就會停止搜索,而IN則需要遍歷整個結果集。 在 SQL 中,EXISTS 和 IN 都可以用于…

煥活身心,解鎖健康養生新方式

健康養生是一門科學,更是一種生活智慧。從日常點滴做起,才能筑牢健康根基。? 飲食上,應遵循 “食物多樣,谷類為主” 原則。多攝入新鮮蔬果,它們富含維生素與膳食纖維,有助于增強免疫力;選擇全…

QT+Cmake+mingw32-make編譯64位的zlib-1.3.1源碼成功過程

由于開源的軟件zlib庫是很多相關庫libpng等基礎庫,因此掌握使用mingw編譯器來編譯zlib源碼的步驟十分重要。本文主要是通過圖文模式講解完整的qtcmakezlib源碼搭建和測試過程,為后續的其他源碼編譯環境搭建做基礎準備。 詳細步驟如下: 1、下…