Brain Connectivity Toolbox (BCT) 是由 Olaf Sporns, Mikail Rubinov, Rolf Kotter, Patric Hagmann 等人所提供的一個 matlab toolbox,利用 matlab 強大的矩陣運算能力來分析腦網路。

上圖說明了一件事,我們可以利用矩陣來表示 graph,藉由分析 graph 來分析腦網路。這也是為什麼 Olaf Sporns 等人要選擇使用 matlab 來做為實作的平台了。
在 BCT 的網站上,除了有 BCT 各個 function 詳細的說明之外,作者還提供了許多有用的資訊,例如靈長類和貓的腦連結資料、視覺化工具等等。以下我利用網站上所提供的資料及工具做簡單的示範。
- 首先先下載 BCT.zip 並解壓縮。在 matlab 中選擇 File→Set path...,並選擇存放 BCT 的資料夾。如此一來 matlab 才找的到這些 function 的位置。
- 再來我們下載 writetoPAJ.m 和 reorderMAT.m 這兩個檔案,並同樣在 matlab 中設定 path。這兩個檔案是與視覺化有關的 function。第一個 function 是將矩陣資料轉換成 Pajek 可以接受的檔案,如此一來我們便可以使用 Pajek 來描繪 graph。而第二個 function 則是將矩陣重新排列,使其如上圖之矩陣一般再對角線呈現有連結的腦區域,方便我們分析。
- 接著我們下載 cat.mat。這是有關於貓的大腦皮質連結的資料。maltab 中的變數可以儲存成二進位的資料,也就是 .mat 檔案。我們可以在 matlab 中下 load(path) 指令,其中 path 代表 .mat 資料所在的位置。如此我們便可以在 matlab 中使用這些變數。
- 當我們將變數載入之後,便可以看到其中包含三個變數 CIJall、CIJctx、Name。CIJall 是貓的腦中包含皮質以及視丘等區域的連結,總共有 95 的節點(腦區域)。CIJctx 則只有皮質的部分,有 52 個節點。而 Name 則是其所定義每個腦區的名字。我們可以在 matlab 中鍵入這些變數的名稱,來觀看其詳細的結構(如鍵入 CIJall 便會顯是一個 95 * 95 的矩陣)。
- 有了資料之後我們便可以開始進行分析。利用 BCT 所提供的 function 如 density_dir(),將 CIJall 當作參數傳入,則我們會得到一個介於 0~1 的值來描述此有向圖(directed graph)的密度(若所有的節點皆互相連結,則密度為 1;若所有的節點皆無相互連結,則密度為 0)。其他的 function 操作皆類似,在這邊就不多加描述。
- 若我們想要將網路視覺化,我們可以先利用 reorderMAT() 這個 function 將矩陣重新排列,再將排列好的矩陣傳入 writetoPAJ() 將檔案匯出成 Pajek 可以接受的檔案,如此便可以利用 Pajek 將網路描繪出來。
簡單的示範就到這邊,有興趣的人可以自己試試看!
參考資料:
- Rubinov M, Sporns O., "Complex network measures of brain connectivity: uses and interpretations.", NeuroImage, in press, doi:10.1016/j.neuroimage.2009.10.003.