对于一个可重现的示例,我们加载 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 ,或者...希望对您有所帮助。