1

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

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

非常感谢。

4

1 回答 1

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创建列索引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 ,或者...希望对您有所帮助。

于 2013-01-31T04:46:02.287 回答