0

嗨,堆栈溢出,

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% 置信区间的上限和下限。我希望能够将这些指定为误差线的上限和下限。这可能吗?

利瓦克等人。(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

所以我希望我的柱高到 34.30,然后上误差柱延伸到 55.68,下误差柱延伸到 21.12。

谢谢!

4

1 回答 1

0

是的,所以我相当有信心这是可能的。我假设您可以将上限和下限作为两个值向量,将它们称为upperlower。首先定义一个误差条函数:

# 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_values用您的数据或您计算的内容替换lower_values和。upper_values

# Adding the bars.
error.bar(barx, y_values, lower_value, upper_value)
于 2015-09-20T21:29:47.893 回答