使用 pgfplot 将 IC50 与曲线拟合线以及 IC50 值显示在图表上

使用 pgfplot 将 IC50 与曲线拟合线以及 IC50 值显示在图表上

请帮我制作 IC50 图表,数据如下

S(mM)   Activity (%) 
0.00080 99 %
0.00800 91 %
0.08000 89 %
0.40000 89 %
0.80000 79 %
1.60000 61 %
4.00000 39 %
8.00000 25 %
80.00000    4 %

并且 IC50 值在图表上以 50% 抑制率出现,曲线拟合线与 EC50 类似。

我从网站上提供了示例(由我修改)http://bpsbioscience.com/poly-adp-ribose-polymerase/inhibitors/xav-939-27100 在此处输入图片描述

答案1

正如@Habi 的回答评论中所述,pgfplots无法对您的数据执行非线性回归。这就是为什么您必须依赖外部工具(我fit在 中使用了一个快速例程gnuplot)。

一旦获得了拟合参数,您就可以使用pgfplots它绘制拟合曲线/函数的图,如下所示:

\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{siunitx}
\DeclareSIUnit\Molar{\textsc{m}} % http://tex.stackexchange.com/a/27618/828
\pgfplotsset{compat=1.6}

\begin{document}
\begin{tikzpicture}
    \begin{semilogxaxis}[%
        xlabel={S / \si{\milli\Molar}},%
        ylabel={\% Activity},%
        legend pos=south west,%
        legend style={cells={anchor=west}}%
        ]
    \addplot [blue,mark=*,only marks] coordinates {
            ( 0.00080, 99)
            ( 0.00800, 91)
            ( 0.08000, 89)
            ( 0.40000, 89)
            ( 0.80000, 79)
            ( 1.60000, 61)
            ( 4.00000, 39)
            ( 8.00000, 25)
            (80.00000, 4)
            };
    \addlegendentry{data};
    % add plot of fitted curve with IC50=2.62645 mM (obtained via gnuplot)
    % %Activity = max * S / (IC50 + S) + min
    \addplot[red,smooth,domain=1e-3:100] { 100 * 2.63645 / (2.63645 + x) };
    \addlegendentry{sigmoidal fit}
    \end{semilogxaxis}
\end{tikzpicture}
\end{document}

示例图片

答案2

我想这不是你想要的,是吗?

\documentclass{article}
\usepackage{pgf} 
\usepackage{pgfplots}
\usepackage[active,tightpage]{preview}
\usepackage{siunitx}
\DeclareSIUnit\Molar{\textsc{m}} % http://tex.stackexchange.com/a/27618/828
\PreviewEnvironment{tikzpicture}

\begin{document}
\begin{tikzpicture}
    \begin{semilogxaxis}[%
        xlabel={S [\si{\milli\Molar}]},%
        ylabel=Activity%
        ]
    \addplot [smooth,blue,mark=*] coordinates {
            ( 0.00080, 99)
            ( 0.00800, 91)
            ( 0.08000, 89)
            ( 0.40000, 89)
            ( 0.80000, 79)
            ( 1.60000, 61)
            ( 4.00000, 39)
            ( 8.00000, 25)
            (80.00000, 4)
            };
    \end{semilogxaxis}
\end{tikzpicture}

\end{document}

最终看起来像这样:来自上述代码的图像

更新:代码已更改以反映发布的示例。

相关内容