R 中的自定义错误栏 - 基因表达中的传播错误

Custom Error Bars in R - propagating error in gene expression

你好 Stack Overflow,

TL;DR: I want to plot a bar plot with bar height 34.30, the upper error
bar extending to 55.68, and the lower error bar extending to 21.12. Can I set 
error bars manually in R?

更长的版本:

我正在对基因表达数据进行 delta delta Ct 计算。我想用条形图来显示我的表情。我还想通过我的计算传播错误。我可以按照 Livak 等人的方法在 R 或 excel 中进行传播计算。 (2001),并得到置信区间的上限和下限。但是在 R 中绘制这些图很麻烦,因为我首先取每个处理的平均值,然后取这些平均值之间的差值,然后转换差值。因此,我正在绘制的值不是从多个测量中获得输入,而只是一个数字。因此,以标准方式绘制误差线是行不通的,因为一个数字没有误差范围。

自己做计算,我可以找到 95% 置信区间的上限和下限。我希望能够将这些指定为误差线的上限和下限。这可能吗?

Livak 等人。 (2001): http://www.gene-quantification.net/livak-2001.pdf

下面是数据的示例:

control
sample, gene1, gene2
1     , 30.00, 27.00
2     , 30.50, 27.25
3     , 29.50, 26.50
4     , 30.10, 26.90

treatment
sample, gene1, gene2
5     , 25.00, 27.00
6     , 25.50, 27.15
7     , 24.50, 26.80
8     , 25.10, 27.10

那么对照中每个基因的平均值为:gene1 = 30.03, gene2 = 26.91

The difference of control values is then: 30.03-26.91 = 3.12

然后治疗中每个基因的平均值为:gene1 = 25.03, gene2 = 27.01

The difference of control values is then: 25.03-27.01 = -1.98

The difference in expression between the control and treatment is: -1.98 - 3.12 = -5.10

我绘制的表达式值(倍数变化)是:2^-(5.10) = 34.30 因此,条形表示表达变化了 34.30 倍。

我正在为我的误差条使用误差幅度,我得到 (-5.10) 的上限和下限,然后以相同的方式转换它们(即 2^-X)以找到我的转换后数据误差范围的上限和下限。我需要在转换前计算上限和下限,否则我在表达式的折叠变化上得到错误的上限和下限。

Margin of Error = (StDev*(T-stat/sqrt(n))) = 0.70, thus

The upper bound of -5.10 is -4.40
The lower bound of -5.10 is -5.80

The transformed gene expression (2^-(-5.1)) is: 34.30

The transformed upper bound is:     55.68
The transformed lower bound is:     21.12

所以我希望我的 bar 为 34.30 高点,然后上方误差线延伸至 55.68,下方误差线延伸至 21.12。

谢谢!

是的,所以我非常有信心这是可能的。我假设您可以将上限和下限作为两个值向量,称为 upperlower。先定义一个error bar函数:

# Adding error bars to the barplot
error.bar <- function(x, y, upper, lower=upper, length=0.1, ...){

    if(length(x) != length(y) | length(y) !=length(lower) | length(lower) != length(upper))
    stop("vectors must be same length")
    arrows(x,y+upper, x, y-lower, angle=90, code=3, length=length, lwd = 2, ...)

} 

然后用你想要的任何值来制作你的情节。

# Plotting the barplot
barx <- barplot(values)

现在我们可以绘制误差图,用您的数据或计算结果替换 y_valueslower_valuesupper_values

# Adding the bars.
error.bar(barx, y_values, lower_value, upper_value)