Как рассчитать значение p и коэффициент корреляции для корреляции данных дифференциального выражения Спирмена с 40000 перестановками? - PullRequest
2 голосов
/ 02 ноября 2019

У меня есть 3 группы, назовем их g1, g2, g3. Каждый из них является результатом анализа между группами условий, и g1 выглядит следующим образом

                   geneSymbol      logFC         t      P.Value   adj.P.Val         Beta
EXykpF1BRREdXnv9Xk      MKI67 -0.3115880 -5.521186 5.772137e-07 0.008986062 4.3106665
0Tm7hdRJxd9zoevPlA     CCL3L3  0.1708020  4.162115 9.109798e-05 0.508784638 0.6630544
u_M5UdFdhg3lZ.qe64     UBE2G1 -0.1528149 -4.031466 1.430822e-04 0.508784638 0.3354065
lkkLCXcnzL9NXFXTl4     SEL1L3 -0.2138729 -3.977482 1.720517e-04 0.508784638 0.2015945
0Uu3XrB6Bd14qoNeuc      ZFP36  0.1667330  3.944917 1.921715e-04 0.508784638 0.1213335
3h7Sgq2i3sAUkxL_n8      ITGB5  0.3419488  3.938960 1.960886e-04 0.508784638 0.1066896

g2 и g2 выглядят одинаково, и у каждого есть 15568 записей (генов)

Какрассчитать значение p и коэффициент корреляции для корреляции Спирмена для этих данных для 40000 перестановок?

Я присоединился ко всем 3 группам g1, g2, g3 и извлек только бета (B)

Я получил этофрейм данных, с совпадающими 15568 записями:

                     Beta1       Beta2    Beta3
EXykpF1BRREdXnv9Xk -4.970533 -4.752771 -5.404054
0Tm7hdRJxd9zoevPlA -4.862168 -5.147294 -3.909654
u_M5UdFdhg3lZ.qe64 -5.368846 -5.396183 -5.405330
lkkLCXcnzL9NXFXTl4 -4.367704 -4.847795 -5.148524
0Uu3XrB6Bd14qoNeuc -5.286592 -4.949305 -5.278798
3h7Sgq2i3sAUkxL_n8 -4.579528 -2.403240 -4.710600

Чтобы вычислить число Спирмена, я мог бы использовать в R:

> cor(d,use="pairwise.complete.obs",method="spearman")
        Beta1          Beta2        Beta3
Beta1 1.000000000  0.234171932  0.002474729
Beta2 0.234171932  1.000000000 -0.005469126
Beta3 0.002474729 -0.005469126  1.000000000

Может кто-нибудь сказать, пожалуйста, какой метод использовать для получения корреляцииКоэффициент и значение р, принятые во внимание количество перестановок? И правильно ли я использую бета-версию для установления взаимосвязи между этими тремя группами?

Спасибо!

1 Ответ

2 голосов
/ 02 ноября 2019

Подсказка для доступа к correlation coefficient и p-value с использованием пакета psych. Я собираюсь использовать набор данных mtcars вместо повторного ввода набора данных, поскольку он не в простом формате copy-paste (dput(df)).

library(psych)
corr.test.col.1to4 <- corr.test(mtcars[1:4], method = "spearman", use = "complete.obs")
names(corr.test.col.1to4)
#1] "r"      "n"      "t"      "p"      "se"     "sef"    "adjust" "sym"    "ci"     "ci.adj"
# [11] "Call"  

# -------------------------------------------------------------------------
# in your case you probably want to do

#cor.test.beta <- corr.test(d[c("Beta1","Beta2", "Beta3")], method = "spearman", use = "complete.obs")

# -------------------------------------------------------------------------


Как видно из вывода names(corr.test.col.1to4):

r: коэффициент корреляции

n: номер наблюдения

p: p.value

se: стандартная ошибка

ci: доверительные интервалы

Итак, если вы хотите получить коэффициент корреляции, вы можете извлечь значения, используя

corr.test.col.1to4$r
#             mpg        cyl       disp         hp
# mpg   1.0000000 -0.9108013 -0.9088824 -0.8946646
# cyl  -0.9108013  1.0000000  0.9276516  0.9017909
# disp -0.9088824  0.9276516  1.0000000  0.8510426
# hp   -0.8946646  0.9017909  0.8510426  1.0000000

p-values

corr.test.col.1to4$p
#               mpg          cyl         disp           hp
# mpg  0.000000e+00 2.345144e-12 2.548135e-12 1.017194e-11
# cyl  4.690287e-13 0.000000e+00 1.365266e-13 5.603057e-12
# disp 6.370336e-13 2.275443e-14 0.000000e+00 6.791338e-10
# hp   5.085969e-12 1.867686e-12 6.791338e-10 0.000000e+00

Стандартные ошибки

corr.test.col.1to4$se
#             mpg        cyl       disp         hp
# mpg  0.00000000 0.07537483 0.07614303 0.08156289
# cyl  0.07537483 0.00000000 0.06818175 0.07890355
# disp 0.07614303 0.06818175 0.00000000 0.09586909
# hp   0.08156289 0.07890355 0.09586909 0.00000000

Доверительные интервалы

corr.test.col.1to4$ci
#               lower          r      upper            p
# mpg-cyl  -0.9559077 -0.9108013 -0.8237102 4.690287e-13
# mpg-disp -0.9549362 -0.9088824 -0.8200941 6.370336e-13
# mpg-hp   -0.9477078 -0.8946646 -0.7935207 5.085969e-12
# cyl-disp  0.8557708  0.9276516  0.9643958 2.275443e-14
# cyl-hp    0.8067919  0.9017909  0.9513377 1.867686e-12
# disp-hp   0.7143279  0.8510426  0.9251848 6.791338e-10

Можно сохранитьвыведите на переменную и сделайте дальнейшее форматирование, чтобы отчётность просто.

Ваш второй вопрос Правильно ли использовать Beta для того, чтобы провести корреляцию между этими 3 группами? является правильным вопросом, на который вам нужно ответить / ответить в зависимости от вопроса, который вы задаетеВы хотите ответить, а также сообщить об этом таким образом, чтобы значение corr вычислялось для переменной Beta, и обосновать выбор переменной Beta в своем отчете.

Надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...