Как создать таблицу как вывод dunn.test (R)?
Я работаю с данными пиросеквенирования бактерий, и я делаю статистический анализ с R. У меня есть 21 образец и 7 различных обработок. Я загрузил свои данные в R phyloseq, получив:
> psR
phyloseq-class experiment-level object
otu_table() OTU Table: [ 7498 taxa and 21 samples ]
sample_data() Sample Data: [ 21 samples by 8 sample variables ]
tax_table() Taxonomy Table: [ 7498 taxa by 6 taxonomic ranks ]
phy_tree() Phylogenetic Tree: [ 7498 tips and 7497 internal nodes ]
Поскольку я обнаружил, что существуют статистически значимые различия между лечениями (с функцией адониса), я хотел знать, какие OTU имеют различное изобилие при разных методах лечения. Для этого я использовал функцию dunn.test (с включенным тестом Крускала-Уоллиса), меняя местами первые строки и столбцы в таблице OTU, чтобы применить тест:
swap_otu_table <- t(otu_table(psR))
treatment <- c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'D', 'D', 'D', 'E', 'E', 'E', 'F', 'F', 'F', 'G', 'G', 'G')
swap_otu_tableDF <- as.data.frame(swap_otu_table)
ncol(swap_otu_tableDF)
[1] 7498
lapply(swap_otu_tableDF[1:7498], function(x) kruskal.test(x ~ treatment, data=swap_otu_tableDF))
Вывод этой рекурсивной функции довольно сложно прочитать, особенно для всех 7498 OTU.
Есть ли какой-нибудь способ применить тест Крускала-Уоллиса + Данна рекурсивным способом, который дает таблицу в качестве выходных данных, предпочтительно в порядке значимости, причем не только с кодом OTU, но и с таксономической идентификацией, содержащейся в tax_table(psR)?
Большое спасибо!
Lidia
2 ответа
Это действительно старый, но я искал этот ответ и решил, что я опубликую в случае, если кто-то еще наткнется на это позже.
dunn.test имеет встроенную опцию для вывода вывода в виде списка. Это действительно все, что вам нужно, так как вы можете превратить это в data.frame и сортировать по столбцам.
Вот пример кода для этого:
table = dunn.test(X, g, list=TRUE)
table = cbind.data.frame(table$comparisons,table$Z,table$P.adjusted)
table[order(table$`table$P.adjusted`),]
Смотрите пакет dunn.test. Который имеет две разные опции для табличного вывода теста Данна после теста Крускала-Уоллиса. Начиная с версии 1.3.0 пакет также включает возможность вывода нескольких сравнений в виде списка.