我正在向 2 年前发布的类似帖子提出问题,但没有完整的答案(R 中 prcomp 对象的子集)。PS很抱歉评论它的答案..
基本上,我的问题是一样的。我使用 prcomp 生成了一个 PCA 表,该表具有 10000 多个基因和 1700 多个细胞,由 7 个时间点组成。将它们全部绘制在一个文件中会让人很难看清。
我想分别绘制每个时间点,使用相同的 PCA 结果表(即不重新运行 prcomp)。
感谢 Dean 给我发帖的提示。想出一种方法来描述我的数据集而不实际加载它,我相信需要一周的时间。我也试过
dput(droplevels(head(object,2)))
选项,但信息太多了,因为我有这么大的数据集。简而言之,它是一个单细胞数据集的大型矩阵,人们通常可以在 Seurat 等软件包上看到(https://satijalab.org/seurat/pbmc3k_tutorial_1_4.html)。编辑:我在这里()发布了我的矩阵子集的屏幕截图。
抱歉,我不知道如何重新创建它甚至导出文本格式。但这是我可以提供的: 我的 TPM 矩阵有 16541 行(定义基因)和 1798 列(定义单元格)。
在其中,我使用以下代码根据时间点“重新标记”了我的列:
D0<-c(colnames(TPM[,grep("20180419-24837-1-*", colnames(TPM))])) #D0: 286 cells
D7<-c(colnames(TPM[,grep("20180419-24837-2-*", colnames(TPM))])) #D7: 237 cells
D10<-c(colnames(TPM[,grep("20180419-24947-5-*", colnames(TPM))])) #D10: 304 cells
......我继续标记每个时间点。
每个时间点也被赋予了特定的颜色。
rc<-rep("white", ncol(TPM))
rc<-[,grep("20180419-24837-1-*", colnames(TPM))]= "magenta"
......我继续给每个时间点上色。
我使用以下代码执行了 PCA:
pcaRes<-prcomp(t(log(TPM+1)), center= TRUE, scale. = TRUE)
然后我开始使用以下方法绘制 PCA 图:
plot(pcaRes$x[,1], pcaRes$x[,2], xlab="PC1", ylab="PC2",
cex=1.0, col= rc, pch=16, main="")
然后,当我想仅使用 D0 绘制 PCA 图时,使用相同的 PCA 输出(pcaRes)。这就是我卡住的地方。
PS如果其他人有更简单的方法来建议如何从我的大矩阵中输入示例数据,我欢迎任何帮助。非常感谢!对不起,我是生物信息学的新手。