我在Excel中使用csv格式的下表:
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
但我需要基因名称,而不是基因ID和基因列表中的基因ID 任何帮助? 感谢
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)),. Name = 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”))
答案 0 :(得分:1)
'使用那个小数据集'Genes down matrix is 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或:::
没有隐藏。