R中的方差分析和TukeyHSD /事后-TukeyHSD的组?

use*_*042 5 r anova posthoc

我对R还是很陌生,需要一些帮助来完成我想要的分析(我在GraphPad Prism中一直在进行的分析,但这不能处理大型数据集)。我有一个这样的数据框(简化):

Gene Seq   RBP Sites.length
1    Short A   0.26
1    Short B   0.13
1    Short C   0.65
1    Long  A   0.00
1    Long  B   0.39
1    Long  C   1.82
2    Short A   0.13
2    Short B   0.00
2    Short C   0.00
2    Long  A   0.89
...etc...
Run Code Online (Sandbox Code Playgroud)

我想知道每个RBP的“短”序列和“长”序列的平均“ Sites.length”值之间是否存在显着差异。我已经执行了方差分析和TukeyHSD:

> aov_migr <- aov (Sites.length ~ Seq * RBP, data = my_data)
> migr_hsd <- TukeyHSD (aov_migr)
Run Code Online (Sandbox Code Playgroud)

结果如下:

> summary(aov_migr)
              Df Sum Sq Mean Sq F value Pr(>F)
Seq           1   0.03   0.031   0.434   0.51
RBP          34 206.86   6.084  86.264 <2e-16 ***
Seq:RBP      34   0.84   0.025   0.351   1.00
Residuals   910  64.18   0.071

> migr_hsd
                diff   lwr     upr   p adj
Short:A-Long:A  -0.012 -0.430  0.406 1
Long:B-Long:A   -0.039 -.0.457 0.379 1
Short:B-Long:A  -0.043 -0.460  0.375 1
Long:C-Long:A   0.556  0.138   0.974 8.909e-05
...etc...
Run Code Online (Sandbox Code Playgroud)

问题是我需要TukeyHSD仅比较同一RBP的“长”和“短”(即,仅长:A v短:A,长:B v短:B等),因为其他比较无意义。将它们相互比较会增加调整后的p值,因为它正在校正我不希望执行的无意义的比较。

是否有办法告诉TukeyHSD,每个RBP的数据应具有“长”和“短”分组/仅比较同一RBP的“长”和“短”?

还是有另一个测试可以做到这一点?

更新:我已经尝试了许多其他测试以查看是否可以从R-lme,manova,HSD.test(agricolae),glht(multcomp),因子图,SidakSD,Sidak,重复测量方差分析(带有将基因,Seq和RBP设置为因子):

RM_aov <- aov(Sites.length ~ Seq * RBP + Error(Gene), data = mydata)
Run Code Online (Sandbox Code Playgroud)

但是没有什么可以复制分析,因此我需要使用Graphpad Prism无法处理的较大数据集来重复此分析。最接近的是aov / TukeyHSD(上述问题除外)和带t.test的for循环(如下所述;但是Prism分析中的一个比较给出了显着的结果,与此进行的所有比较都没有显着性):

# separate long and short into separate data frames where the column headers are the RBP names and each row is the Sites.length for a Gene
result <- data.frame()
for (rbp in colnames (short)) {
  test.result <- t.test (long [, rbp] - short [, rbp])
  result [rbp, 'p'] <- test.result$p.value
  }
result$p.adjusted <- p.adjust (result$p, method="bonferroni")
Run Code Online (Sandbox Code Playgroud)

我执行的Graphpad Prism分析是:

  • 重复测量双向ANOVA(告诉给定基因的'long'和'short'值匹配)

  • Sidak的多重比较测试(但Bonferroni和Holm-Sidak多重比较测试的显着比较也很重要)。

有人可以帮忙吗?