Question: Extracting expressions after a multtest procedure (part 2)
0
gravatar for JUAN MIGUEL MARIN DIAZARAQUE
11.2 years ago by
Hello, In previous message I wonder how to extract just the expressions of 102 genes under two conditions after a multtest procedure. At last, I wrote this unelegant code that seems to work: quedan <- resT[res$adjp[,"BH"]<0.05,] busco <- dimnames(quedan)[[1]] cosa <- NULL for (i in 1:length(dimnames(exprs(esetSub))[[1]])) for (j in 1:length(busco)) if (dimnames(exprs(esetSub[i,]))[[1]] == busco[j]) { cosa <- rbind(cosa, as.data.frame(exprs(esetSub))[i,]) } end end But it runs very slowly... Best jm~ _______________________________ Juan Miguel Marin http://www.est.uc3m.es/jmmarin Dep. of Statistics University Carlos III of Madrid Spain (E.U.)
multtest • 424 views
ADD COMMENTlink modified 11.2 years ago by Sean Davis21k • written 11.2 years ago by JUAN MIGUEL MARIN DIAZARAQUE70
Answer: Extracting expressions after a multtest procedure (part 2)
0
gravatar for Sean Davis
11.2 years ago by
Sean Davis21k
United States
Sean Davis21k wrote:
On Sun, Mar 16, 2008 at 11:56 AM, JUAN MIGUEL MARIN DIAZARAQUE <jmmarin at="" est-econ.uc3m.es=""> wrote: > Hello, > > In previous message I wonder how to extract just the expressions of 102 > genes under two conditions after a multtest procedure. > > At last, I wrote this unelegant code that seems to work: > > quedan <- resT[res$adjp[,"BH"]<0.05,] > busco <- dimnames(quedan)[[1]] > > cosa <- NULL > for (i in 1:length(dimnames(exprs(esetSub))[[1]])) > for (j in 1:length(busco)) > if (dimnames(exprs(esetSub[i,]))[[1]] == busco[j]) { > cosa <- rbind(cosa, as.data.frame(exprs(esetSub))[i,]) } > end > end Generally, you can subset ExpressionSets just like you do data frames; rows are genes or probes and columns are samples. If esetSub is what you used for your multtest procedure, you should be able to do: exprs(esetSub)[res$adjp[,'BH']<0.05,] In general, for loops are quite useful in R, but for things like subsetting or vectorized operations, it is better to look for other alternatives as they are likely to be faster. Sean
ADD COMMENTlink written 11.2 years ago by Sean Davis21k
Hi, Please also note that seq(along=x) is almost always preferable to 1:length(x) and seq_len(n) to 1:n. (But as Sean says, if possible, and certainly in your case, using vectorized idioms is of course even more preferable.) Best wishes Wolfgang Sean Davis scripsit 16/03/2008 16:38: > On Sun, Mar 16, 2008 at 11:56 AM, JUAN MIGUEL MARIN DIAZARAQUE > <jmmarin at="" est-econ.uc3m.es=""> wrote: >> Hello, >> >> In previous message I wonder how to extract just the expressions of 102 >> genes under two conditions after a multtest procedure. >> >> At last, I wrote this unelegant code that seems to work: >> >> quedan <- resT[res$adjp[,"BH"]<0.05,] >> busco <- dimnames(quedan)[[1]] >> >> cosa <- NULL >> for (i in 1:length(dimnames(exprs(esetSub))[[1]])) >> for (j in 1:length(busco)) >> if (dimnames(exprs(esetSub[i,]))[[1]] == busco[j]) { >> cosa <- rbind(cosa, as.data.frame(exprs(esetSub))[i,]) } >> end >> end > > Generally, you can subset ExpressionSets just like you do data frames; > rows are genes or probes and columns are samples. If esetSub is what > you used for your multtest procedure, you should be able to do: > > exprs(esetSub)[res$adjp[,'BH']<0.05,] > > In general, for loops are quite useful in R, but for things like > subsetting or vectorized operations, it is better to look for other > alternatives as they are likely to be faster. > > Sean > > _______________________________________________ > Bioconductor mailing list > Bioconductor at stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor -- Best wishes Wolfgang ------------------------------------------------------------------ Wolfgang Huber EBI/EMBL Cambridge UK http://www.ebi.ac.uk/huber
ADD REPLYlink written 11.2 years ago by Wolfgang Huber13k
Hello Sean, thank you very much, the command works fine. It is, by very far, faster than the for-option... Best > On Sun, Mar 16, 2008 at 11:56 AM, JUAN MIGUEL MARIN DIAZARAQUE > <jmmarin at="" est-econ.uc3m.es=""> wrote: >> Hello, >> >> In previous message I wonder how to extract just the expressions of 102 >> genes under two conditions after a multtest procedure. >> >> At last, I wrote this unelegant code that seems to work: >> >> quedan <- resT[res$adjp[,"BH"]<0.05,] >> busco <- dimnames(quedan)[[1]] >> >> cosa <- NULL >> for (i in 1:length(dimnames(exprs(esetSub))[[1]])) >> for (j in 1:length(busco)) >> if (dimnames(exprs(esetSub[i,]))[[1]] == busco[j]) { >> cosa <- rbind(cosa, as.data.frame(exprs(esetSub))[i,]) } >> end >> end > > Generally, you can subset ExpressionSets just like you do data frames; > rows are genes or probes and columns are samples. If esetSub is what > you used for your multtest procedure, you should be able to do: > > exprs(esetSub)[res$adjp[,'BH']<0.05,] > > In general, for loops are quite useful in R, but for things like > subsetting or vectorized operations, it is better to look for other > alternatives as they are likely to be faster. > > Sean > jm~ _______________________________ Juan Miguel Marin http://www.est.uc3m.es/jmmarin Dep. of Statistics University Carlos III of Madrid Spain (E.U.)
ADD REPLYlink written 11.2 years ago by JUAN MIGUEL MARIN DIAZARAQUE70
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 110 users visited in the last hour