私は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...
各 RBP の 'Short' と 'Long' Seq の平均 'Sites.length' 値に有意差があるかどうかを知りたいです。ANOVA と TukeyHSD を実行しました。
> aov_migr <- aov (Sites.length ~ Seq * RBP, data = my_data)
> migr_hsd <- TukeyHSD (aov_migr)
結果は次のようになります。
> 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...
問題は、TukeyHSD が同じ RBP の 'Long' と 'Short' のみを比較する必要があることです (つまり、Long:A v Short:A、Long:B v Short:B など)。他の比較は無意味です。 . それらすべてを互いに比較すると、実行したくない無意味な比較が修正されるため、調整された p 値が増加します。
TukeyHSD に、グループ化された各 RBP の「ロング」と「ショート」をデータに含める必要があることを伝える方法はありますか?同じ RBP の「ロング」と「ショート」のみを比較する方法はありますか?
または、これを行う別のテストはありますか?
更新: R で Prism Graphpad からの分析を再現できるかどうかを確認するために、他の多くのテストを試しました。 Gene、Seq、RBPを因子として設定):
RM_aov <- aov(Sites.length ~ Seq * RBP + Error(Gene), data = mydata)
しかし、分析を複製するものは何もないため、Graphpad Prism が処理できないより大きなデータ セットでこの分析を繰り返す必要があります。最も近いのは aov/TukeyHSD (上記の問題を除く) と t.test を使用した for ループです (以下で説明します。ただし、Prism 分析での 1 つの比較では有意な結果が得られますが、これとのすべての比較は有意ではありません)。
# 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")
私が実行したGraphpad Prism分析は次のとおりです。
反復測定双方向 ANOVA (特定の遺伝子の「長い」と「短い」の値が一致していることを伝えます)
Sidak の多重比較検定 (ただし、Bonferroni および Holm-Sidak の多重比較検定でも有意な比較が行われます)。
誰でも助けてもらえますか?