重新排序表达式集(R)中的样本

时间:2013-01-31 04:18:34

标签: r plot bioinformatics

我正在尝试制作一些基因表达数据的热图。目前,我想要显示的数据存储在表达式集数据类型中,但样本没有正确分组;也就是说,对照样品和实验样品没有组合在一起。这是一个简短的工作流程:

output <- //analysis of raw data eset
someGenes <- eset [output$Table1, ]
heatmap(exprs(someGenes))

基本上,我想在绘图之前重新排列eset中的样本。我试图将样本名称视为“列”,但无法改变它们在eset中的位置。我对R很新,所以任何和所有的帮助将不胜感激。

以下是表达式数据类型的链接,供参考:http://rss.acs.unt.edu/Rdoc/library/Biobase/html/class.ExpressionSet.html

非常感谢。

1 个答案:

答案 0 :(得分:1)

对于可重现的示例,我们加载Biobase和样本数据

library(Biobase)
data(sample.ExpressionSet)

然后看看我们得到了什么:

> sample.ExpressionSet
ExpressionSet (storageMode: lockedEnvironment)
assayData: 500 features, 26 samples 
  element names: exprs, se.exprs 
protocolData: none
phenoData
  sampleNames: A B ... Z (26 total)
  varLabels: sex type score
  varMetadata: labelDescription
featureData: none
experimentData: use 'experimentData(object)'
Annotation: hgu95av2 

我们可以将ExpressionSet子集化为矩阵,例如使用索引或sampleNames,例如,通过从当前sampleNames的shuffle创建列索引cidx

cidx = sample(sampleNames(sample.ExpressionSet))

cidx只是一个字符向量。然后我们用

重新排序列
> sample.ExpressionSet[, cidx]
ExpressionSet (storageMode: lockedEnvironment)
assayData: 500 features, 26 samples 
  element names: exprs, se.exprs 
protocolData: none
phenoData
  sampleNames: Q C ... B (26 total)
  varLabels: sex type score
  varMetadata: labelDescription
featureData: none
experimentData: use 'experimentData(object)'
Annotation: hgu95av2 

所以你在绘图前重新排序了这些列。但是,默认情况下,热图会根据彼此之间的“距离”对样本进行聚类。因此,您重新订购样品并不重要,热图将找出相同的距离,并绘制相同的热图。您可能需要image,或者提供参数Colv(请参阅?heatmap)或在gplots包中使用heatmap.2,或者......希望有所帮助。