2012-11-21 75 views
0

我在Excel中的CSV格式如下表:問題與SAMR R中

    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列表中的基因和 有什麼幫助? 由於

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「))

+0

請寄出'dput(m)'的結果。 –

+0

我已經把問題的輸出放在了@Dwin – Layla

+0

你不幸編輯了它,它不能用來做任何測試。 –

回答

1

「隨着小數據集的」基因下來矩陣爲空,但這顯示瞭如何得到‘個基因’的名稱矩陣:

> 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或:::,因爲函數沒有隱藏。