在前處理我們得到 vtc 檔,接下來在分析前我們會需要 prt 檔來註解各 vtc 檔的內容。
vtc 就像影片檔,他記錄了一個run時間內全腦的神經活化 (BOLD signal)。於是在分析時會需要一個註解各時間段受試者處於何種 condition 下的劇本 ( 即為 prt 檔)。
分析者須了解實驗設計。確定自己想分析甚麼 condition,而該 condition 應於實驗的幾秒至幾秒間出現。通常可以用實驗設計推斷,或從行為檔抓反應時間等等方式來知道。
如下圖範例 prt,若要做 GLM 則第2行 (FileVersion) 設定為2,第4行則依分析需求設定 volumes 或 mesc。
第5~14行:可以根據自己需求做更改(第6行為實驗名稱),基本不會影響數據結果,詳細可參考neuroelf網站說明。
第15行: condition 的數量 (含 fixation )。
第16行以下:各 condition 出現的秒數,依圖為例,第一個 condition (fixation) 總共在此 vtc 中出現了16次,因此18行寫16,19~34行則為每次的 [起始秒數 結束秒數],單位為毫秒。
每個 condition 後都會有 color,可依照自己需求設定,並不會影響數據結果。
手打一份 prt 相當費工且容易出錯,因此建議利用 code 來完成各個 run 的 prt。我們會先下載並修改好一個 [範例 prt] 供後續並修改成各個 run 的 prt,範例 prt 如前面所示。
以下圖為的 code 作範例說明 prt 該如何建立
前64行主要是在讀行為檔並謄寫 [範例 prt] 的1~16行,因為同一個實驗1~16行都一樣,需要修改的只有下面 condition 的 [出現次數] 及 [秒數]。
其邏輯主要是利用 [tline] 此函數讀取 [範例prt] ,當讀到第一個 condition (fixation) 後停住,到行為檔讀取此 condition 共有幾次(或你的實驗設計有固定次數),並於 condition 名稱下一行寫下 [出現次數]。
接者讀取行為檔該 condition 的時間(有時取決於受試者反應時間,有時根據實驗設計可能是固定的),根據此推算起始秒數與結束秒數應為多少。
以下圖為例,我的 [fixation] 是在某固定時間呈現的,因此下圖第72行的寫法就不需要讀取行為檔。而 Buy、NotBut 等等 condition 是根據受試者的反應(購買與否),每個 run 都會有不同的 [出現次數] 及 [秒數],因此就會需要去讀行為檔。
一個 vtc 會對應一個 prt,而哪個 vtc 該配對哪個 prt 就需要建立一個 mdm 來幫助執行 GLM 分析。
mdm 架構大致如下圖,第1~8行須根據自己需求作修改,可參考neuroelf 網站說明。
第10行:你的資料共有多少 run ( 下面有幾行就填多少 )。
第10行之後:"檔案路徑\檔名.vtc" "檔案路徑\檔名.prt",同一行放相對應的 vtc 與 prt。
在 MATLAB 輸入:
>>mdm = xff('imput.mdm'); % 讀取mdm檔,自行修改成你所存的mdm檔名
>>glm = mdm.ComputeGLM; % 執行GLM
>>glm.SaveAs('output.glm'); % 儲存GLM結果,自行修改成你想存的檔名
>>glm.Browse; % 用neuroelf打開GLM看結果
點擊 [Analysis] > [Contrast manager]
選擇感興趣的 condition,並設定權重。(通常會一個 1 一個 -1,讓權重加總為0)
點擊 [Compute current]
*出來的結果有時顯著區會在腦外,這時可以點擊 [GLM] > [Mask with VMR],就能屏蔽腦外的顯著區。
Editor : 蔡承翔 Cheng Hsiang, Tsai. 2024.11.20
Contact me: a0905627560@gmail.com