跳轉到內容

MINC/工具/emma/emma-rat

來自華夏公益教科書,開放的書籍,開放的世界

大鼠資料分析

[編輯 | 編輯原始碼]

本檔案演示瞭如何使用 MATLAB 對從大鼠收集的資料進行雙室分析。此方法也可擴充套件到在 PET 研究中找到 K1 和 k2 的區域性值。

所使用的雙室模型由以下公式表示

檔案:Ratequation.gif

其中 K1 是從血管到組織的流動速率常數,k2 是從組織到血管的流動速率常數,A(t) 是腦部的活性,Ca(t) 是血液中的活性。

我們希望根據給定的 A(t) 和 Ca(t) 曲線求解 K1 和 k2。通常,血液活性 (Ca) 和腦部活性 (A) 曲線透過測量其在大約十個時間點上的值來表示。以下圖形顯示了一個示例血液活性曲線

檔案:Ratblood.gif

以及一個示例腦部活性曲線

檔案:Ratbrain.gif

由於 MATLAB 能夠讀取包含數字列的文字檔案,因此可以輕鬆地將這些資料輸入到 MATLAB 中。例如,上面的腦部曲線由兩列數字表示

3       127
10      231
15      167
30      167
45      98
60      77
90      54
120     35
150     26
180     31

其中第一列是樣本的時間(以分鐘為單位),第二列是樣本的活性。如果將此資料儲存在名為ratbrainact.txt的檔案中,則可以使用以下命令將其載入到 MATLAB 中

load ratbrainact.txt

這將載入資料,並建立一個名為ratbrainact的 10x2 矩陣(有關讀取資料檔案的更多詳細資訊,請參閱MATLAB 使用者手冊)。然後可以使用以下命令建立前面的圖

plot (ratbrainact(:,1), ratbrainact(:,2))

這將繪製第二列相對於第一列的值。

但是,為了執行雙室分析,我們需要腦部資料和血液資料。血液資料可以像腦部資料一樣載入。假設我們已將血液活性資料儲存在一個名為ratbloodact.txt:

load ratbloodact.txt

的檔案中,則可以使用以下命令載入資料。

現在資料已載入,分析變得容易。該ratbrain函式將對資料執行分析,並返回許多有用的變數

[K1, k2, conf, ts_even, new_brain, theta, Vd, new_Vd] = ratbrain ...
(ratbloodact(:,1), ratbloodact(:,2), ratbrainact(:,1), ratbrainact(:,2));

可以使用以下命令非常簡單地檢索這些變數的值

>> K1

K1 =

    0.0477

>> k2

k2 =

    0.0765

>> conf

conf =

    0.0470    0.0484
    0.0753    0.0778

ratbrain函式還返回幾個其他感興趣的變數。例如,它返回一個基於計算出的 K1 和 k2 值的新腦部活性曲線。可以將其與測量的腦部活性曲線疊加在一起繪製,以便直觀地檢查曲線擬合的質量。在以下圖中,測量的腦部活性曲線以紅色(虛線)顯示,計算出的腦部活性曲線以黃色顯示。

檔案:Ratbrainfit.gif

此圖由以下 MATLAB 命令序列生成(在執行上述ratbrain命令之後)

plot (ts_even,new_brain);
hold on;
plot (ratbrainact(:,1), ratbrainact(:,2),'r--');

請注意,計算出的腦部活性曲線在均勻取樣的時間尺度 ts_even 中表示。

由於 Vd 和 theta 也由ratbrain函式返回,因此也可以繪製這些曲線。與腦部活性曲線一樣,還返回基於計算出的腦部活性的 Vd 曲線。因此,可以繪製 Vd 相對於 theta 的曲線,顯示測量的 Vd 相對於 theta 的曲線以及基於計算出的 K1 和 k2 值的 Vd 相對於 theta 的曲線。在以下圖中,測量的 Vd 相對於 theta 的曲線以紅色(虛線)顯示,計算出的 Vd 相對於 theta 的曲線以黃色顯示

檔案:RatVdfit.gif

此圖由以下 MATLAB 命令序列生成(在執行上述ratbrain命令之後)

plot (theta,new_Vd);
hold on;
plot (theta,Vd,'r--');
華夏公益教科書