проблемы с samR в R

У меня есть следующая таблица в формате csv в Excel:

                    1       1       1       2     2         2
1415670_at  1   365.1   293.4   288.9   394.5   312     381.6
1415671_at  2   556.1   584.2   567.8   592.8   471.6   513.1
1415672_at  3   1048.3  763.1   1074.9  852.3   826.1   898.3
1415673_at  4   60.8    51.7    51.6    224     248.4   150.7
1415674_at  5   129.1   107.2   230.4   175.5   250.5   172.4

Я использую SAM для получения списка генов с повышенной и пониженной регуляцией. Для этого есть плагин Excel, который выполняет задачу с вышеупомянутым файлом. Проблема в том, что мне нужно использовать R для анализа этих данных, для этого есть пакет под названием SAMR. Я хочу получить список генов с повышенной и понижающей регуляцией с названиями, указанными в первом столбце, но безуспешно. Руководство доступно здесь: http://cran.r-project.org/web/packages/samr/samr.pdf Я сделал небольшую программу:

filename<-"test.csv"
y<-c(1,1,1,2,2,2)           //I have to do this in this way, but I will extract the  
                            //first row from the csv file later
m<-read.csv(filename,sep=",",row.names=1)
t<-as.matrix(m)
samfit<-SAM(t,y,resp.type="Two class unpaired")

когда я положил

print(samfit)

Получил следующие данные:

Genes down
    Gene ID Gene Name Score(d) Numerator(r) Denominator(s+s0) Fold Change
[1,] g1753   1753      -2.025   -707.725     349.446           0.582      
[2,] g1375   1375      -1.038   -272.583     262.7             0.797      
[3,] g1302   1302      -0.955   -296.733     310.685           0.739      
[4,] g1598   1598      -0.923   -352.725     382.068           0.722      
[5,] g1500   1500      -0.913   -442.142     484.177           0.352

но мне нужны названия генов, а не этот идентификатор гена в списке генов вверх и вниз, какая-либо помощь? Спасибо

dput (m) показывает следующую информацию:

структура (список (X.1 = 1: 5, X1 = c (365.1, 556.1, 1048.3, 60.8, 129.1), X1.1 = c (293.4, 584.2, 763.1, 51.7, 107.2), X1.2 = c ( 288.9, 567.8, 1074.9, 51.6, 230.4), X2 = c (394.5, 592.8, 852.3, 224, 175.5), X2.1 = c (312, 471.6, 826.1, 248.4, 250.5), X2.2 = c (381.6 , 513.1, 898.3, 150.7, 172.4)), .Names = c ("X.1", "X1", "X1.1", "X1.2", "X2", "X2.1", "X2 .2 "), class =" data.frame ", row.names = c (" 1415670_at "," 1415671_at "," 1415672_at "," 1415673_at "," 1415674_a_at "))


person Layla    schedule 21.11.2012    source источник
comment
Пожалуйста, опубликуйте результаты dput(m).   -  person IRTFM    schedule 22.11.2012
comment
Я поставил вывод в вопросе @Dwin   -  person Layla    schedule 22.11.2012
comment
К сожалению, вы его отредактировали, и его нельзя использовать для тестирования.   -  person IRTFM    schedule 22.11.2012
comment
исходный файл был огромным, теперь я тестировал только эти 5 значений и поместил необработанные результаты dput (m) @DWin, спасибо за вашу помощь   -  person Layla    schedule 22.11.2012


Ответы (1)


Для этого небольшого набора данных матрица Genes Down имеет значение NULL, но это показывает, как получить имена матрицы Genes Up:

> rownames(m)[ as.numeric( samfit$siggenes.table$genes.up[ , "Gene Name"]) ]
[1] "1415674_a_at" "1415673_at"   "1415672_at"  

Вам нужно использовать то, что было в фрейме данных, как имя (серию чисел), чтобы вернуться к именам rownames. Для вашей полной модели вы должны получить то, что хотите:

rownames(m)[ as.numeric( samfit$siggenes.table$genes.lo[ , "Gene Name"]) ]

Для будущего исследования это можно было обнаружить, посмотрев сначала на класс samfit, а затем на функцию с именем: print.SAMoutput и изменив соответствующий код. Нет необходимости использовать getAnywhere или :::, поскольку функция не скрыта.

person IRTFM    schedule 21.11.2012