跳转到内容

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--');
华夏公益教科书