Reputation: 5446
I have the following table in csv format in 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
I have been using SAM for getting a list of up and down regulated genes. For that purpose there is an Excel plugin that does the task with the above mentioned file. The problem that I have is that I need to use R for analizing this data, for that there is a package called SAMR. I want to get the list of up and down regulated genes with the names that are in the first column, but no success at all. The manual is available here: http://cran.r-project.org/web/packages/samr/samr.pdf The small program that I made was:
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")
when I put
print(samfit)
I got the following data:
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
but I need the gene names and not that gene ID in the list of genes up and genes down any help? Thanks
dput(m) shows the following info:
structure(list(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"))
Upvotes: 0
Views: 628
Reputation: 263342
'With that small dataset the 'Genes down matrix is NULL but this shows how to get the names of the 'Genes Up' matrix:
> rownames(m)[ as.numeric( samfit$siggenes.table$genes.up[ , "Gene Name"]) ]
[1] "1415674_a_at" "1415673_at" "1415672_at"
You need to use what was in the dataframe as a name (a series of numbers) to refer back to the rownames. For your full model fit you should get what you want with:
rownames(m)[ as.numeric( samfit$siggenes.table$genes.lo[ , "Gene Name"]) ]
For future investigation this was discoverable by looking first at the class of 'samfit' and then for a function named: print.SAMoutput
and modifying the relevant code No need to use getAnywhere or :::
since the function is not hidden.
Upvotes: 1