基於 SPM 對 FMRI 進行數據預處理
8 人贊了文章
簡介
SPM,即統計參數圖,也是這個軟體的最終輸出,
它是由英國倫敦大學的 Friston教授等人在通用數學軟體包 Matlab 基礎上開發的軟體系統,其統計功能非常強大,
設計這個軟體包的初衷是採用統計的方法來處理 fMRI,PET 和 SPECT 的數據。
- 安裝
- 下載前需要註冊(官網)
這裡我下載的是 SPM12 版本
- 使用
- 在 Matlab 命令行窗口(command line)輸入
spm
到這裡,已經開啟 SPM 軟體 ;
界面介紹
- 左上為操作面板
- 左下為進度顯示
- 中間為圖形界面
- 輸出信息在 Matlab 的命令行
我主要使用 SPM 來處理 FMRI 數據。
用SPM進行數據處理分析過程主要分為兩大部分:預處理過程 和 統計分析過程。
數據準備
為方便後續的數據處理,如果數據分散處理後整合,建議所有處理數據路徑保持一致,要統一路徑。
另外注意:路徑中切勿出現中文,因為網上很多小夥伴都是這裡出了問題,所以切記。
在數據預處理過程中會產生很多數據文件所以需要分類整理。
我的目錄結構如下:
- 原始 DICOM 圖像放在 rawdata 文件夾中
- data 文件夾存放轉換後的功能像
- data3D 文件夾中存放轉換後的結構像。
操作
處理前首先要採用數據轉換軟體將 dicom 數據轉換成 SPM 解析格式,轉換時格式請選擇 NIfTI,可用SPM輸入面板中的 DiCOMImport 模塊,如圖示:
- 選擇 data 文件夾作為 Output directory.
- two file NTFTI
轉換後 data 文件夾中會出現.img(圖像數據)和.hdr(矩陣數據);
也就是原始圖像資料.img 和 描述圖像維度 .hdr
結果
點擊 spm 面板上面的 display 即可預覽剛生成的結果.
Slice Timing 時間層校正
Slice Timimg 用來校正 1 個 volume中 層與層之間獲取(採集)時間的差異,對事件相關設計的實驗尤為重要。
操作
我們在按鈕窗口中的預處理面板中點擊 「Slice Timimg」 ,將出現一個對話框,修改其中參數:
- Data:New:SessionSession:選擇你要處理的數據,如文件夾 data 中的所有數據.
- Number of Slices:我們輸入每禎圖像的層數如「152」(可以在 spm12->Display->data:.img->done->Dimensions: 512 * 512 * 152 中查看).
- TR:我們輸入重複時間一般為 2 秒,我在實驗中的 dcm 圖像層面顯示 TR 時間為 8.2.
- TA:是每禎圖像獲取第一層開始到獲取最後一層圖像的時間間隔
TR-TR/nslice,可直接輸入公式.
- Slice order:我們輸入 「2:2:152 1:2:151」(圖像是隔層掃描所得到的)指定層獲取順序的層次序參數是一個含 N 個數的向量,這裡N是每個volume所含的層數.每一個數表示該層在圖像(volume)中的位置.向量內的數字排列順序是這些層的獲取時間順序.
- Reference Slice:選擇參考層我們輸入「152」。參考層為一個時間點的全腦中,位於二分之一 TR 的那個圖層,即時間上的中點.
- Filename Prefix:是指新生成的圖像前加何標記一般採用默認設置。默認為 a.
最後點擊面板上方的向右的綠色三角即開始運行。運行完後將會生成一系列a*.img文件,這就是時間校準後的數據。
結果
在 data 文件夾下出現處理過後的 as* 的文件
Realignment 頭動校正
即使我們對被試的頭部做了很好的固定,在實驗過程中,被試也會不由自主的有一些輕微的頭動,這在fMRI 實驗中尤為明顯。
這一步就是把一個實驗序列中的每一幀圖像都和這個序列的第一幀圖像按照一定的演算法做對齊,以矯正頭動。
目的: 如果在容許的頭動範圍內,可以使用一定的演算法校正信號,使其靠近真實值,如果超過了這個規定的範圍,則必須剔除這組數據。
頭動範圍(Check Realign):平動 ≤ 2.0mm and 旋轉 ≤ 2.0degree
操作
我們在預處理面板校準選項中選擇 「Realign(Est&Res)」 ,出現一個參數設置對話框。
修改其中參數:
- Data:New:Session然後選中 data 下出現的 「Session」 選項。點擊 「Specify Files」,用 spm 文件選擇器選擇剛做完時間校準的全部圖像(as*.img).
- Filename Prefix:默認為 r
這是結果文件的前綴.
其餘選項採用默認設置,點擊上方綠色的三角開始運行,如下圖所示:
結果
- 頭動校正信息將以 plot 圖形顯示Translation圖表示被試頭部在X,Y,Z三個方向的平移,分別用藍,綠,紅三種顏色表示。Rotation圖表示被試頭部在實驗過程當中繞X(L-R),Y(A-P),Z(S-I)三條軸的轉動角度。橫坐標代表這個序列所採集的所有圖像,縱坐標表示的是偏移量和偏轉角度,分別以毫米和度為單位。
- 一對mean *(.img和.hdr)文件(平均腦)
- 一個rp_ .txt文件(頭動參數文件)及若干對r(.img和.hdr)文件。
Coregister 配准
目的: 是將所有的圖像同一個 volume 對齊,對功能像與結構像做一個信息的變換。我們相信對於被試,功能像與結構像是線性相關的平動與轉動,而不是扭曲的。由功能像向結構像去配,對於結構像中的 hdr 文件存有一個矩陣,而這個矩陣就包含了功能像的信息。
操作
- 在 spm12 中選擇 Coregister(Estimate)只需要將旋轉的矩陣寫入到 hdr 文件中,不需要生成新的文件,也就是對 3D 文件做一個剛體的變換,變換到功能像空間里.
- Reference Image選擇頭動校正後生成的 mean* .img 文件.
- Source Image選擇3D文件,即 data3D 文件夾中的 .img 文件.
其餘選項採用默認設置,點擊上方綠色的三角開始運行。
說明:Source image 與 Reference image 的關係,可以認為是將結構像向以 mean 開頭的功能像里估計,估計結束後就可以將旋轉矩陣寫入到精度更高的3D文件當中,最後做出的圖像的解析度就會很高。(結構像比功能像清晰很多)
結果
- 得到聯合直方圖
Segment 分割
目的:要將被試的結構像配到功能像里,就需要將結構像進行分割。
一般分割為灰質、白質和腦脊液三部分
操作
- 在 spm12 中選擇Segment
- Data---[選擇配准後的3D圖像,即data3D文件夾中的.img文件]
- .Clean up any partitions ---- Light clean
- Affine Regularisation---[選擇歐洲人或東亞人大腦模板] 如:ICBMspace template-European brains
- 其餘選項採用默認設置,點擊上方綠色的三角開始運行。
結果
- 灰質、白質和腦脊液三部分文件.
Normalise 標準化
目的: 將不同容積及形狀的被試的大腦放到一個標準空間里,用一個公用的坐標系去描述具體的一個位置。
操作
①. Normalize by using EPI templates;
先說第①種方法的操作:
在預處理面板標準化選項中選擇 「Normalise:Estimate & Write」 ,出現一個對話框,我們做如下設置:
- 選中「data」——「new sbject」,在data下新出現的「subject」選項中作如下設置,
- 「sourceimage」選擇空間校準步驟中生成的mean文件,
- 「image to write」選擇所有剛進行完校準的文件 「ra*.img」 ,
- 其餘採用默認設置,點綠三角運行。
結果
- 運行完畢會生成若干對 wra * 打頭的 img/hdr 文件,
- 同時還會生成一個 y_mean* 文件(存放變換參數)。
Smooth 平滑
目的: 將功能像文件平滑
操作
- Image to smooth---[選擇做完標準化後的以w開頭的功能像文件]
- FWHM改為6 6 6---[半寬全高,通常取體素的2倍];
- 其餘默認。
- 點擊上方綠色的三角開始運行。
結果
高斯平滑後會生成若干對 swra * 打頭的 img/hdr 文件。
推薦閱讀:
TAG:fMRI功能性磁共振成像 | MATLAB | spmstaticpackagemanager |