我正在问一个问题,一个类似的帖子张贴在两年前,没有完整的答案(subset of prcomp object in R)。对不起,请给我答复。
基本上,我的问题是一样的。我用prcomp生成了一个PCA表,它包含10000+基因和1700+细胞,由7个时点组成。在一个文件中绘制所有这些文件,很难看到。
我想要分别绘制每个时点,使用相同的PCA结果表(即没有重新运行prcomp)。
谢谢迪恩给我发帖子的建议。想出一种方法来描述我的数据集,而不是实际加载它在这里,我相信需要一个星期。我也试过
dput(droplevels(head(object,2))) 选项,但这只是太多的信息,因为我有这么大的数据集。简而言之,它是一个大型的单细胞数据集矩阵,人们通常可以在诸如Seurat (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)。这就是我被困的地方。
如果其他人有更简单的方法来建议如何从我的大型矩阵中输入示例数据,我欢迎任何帮助。非常感谢!对不起,我是生物信息学的新手。
发布于 2018-09-04 11:11:54
Stack Exchange for Bioinformatics是你需要去问问题或了解你需要处理的专业领域的软件包和功能的地方。用于生物信息学的堆栈交换与Stack链接,因此您只需加入,您就可以使用相同的登录名。
类S3、S4和Base。
在R中,这是一个非常基本的观点,把一个类看作是你继承了他们所有技能或能力的家长,这样你就能比其他人更好地完成某些任务,而且在某些情况下,你根本无法完成任务。
在R和所有编程中,为了避免重新发明轮子,创建了父类,这样普通的人就不必重复编写函数来做简单的事情,比如plot()。这些东西是隐藏的,为了访问它,你从父母那里继承。子程序读取父级的特征,然后执行任务或给出一条神秘的错误消息。
基类和S3类很好地结合在一起,它们就像R世界的工人阶级一样。S4是为特定研究领域而设的专门课程,以便能够提供其所在行业所需的特定功能。这意味着您只能在类S3函数中使用特定的基函数和S4函数,大多数函数都是不兼容的。因此,您没有做错什么,只需使用错误的父(S)来处理数据集。
典型基类和S3类数据格式:盒状结构。沿着左边是所有的列名,漂亮和整齐地堆叠在一起。

Seurat S4 Class dataframe:树状结构,格式化为由特定函数读取。

希望这能帮上忙,我祝你事业顺利。干杯康拉德
如果这有帮助,请单击箭头向上。:)
发布于 2018-09-10 07:09:14
谢谢@ConradThiele你的建议,我会检查那个网站。
我和研究所里的其他生物信息学人员聊了聊。我的查询与S4类的对象无关,因为我在包之外执行prcomp。我将矩阵从对象中提取出来,然后对其进行prcomp运算。
解决方案很简单:使用完整的dataset运行prcomp,将prcomp输出转换为一个dataframe,输入额外的列以输入其他细节,比如"timepoint",创建新的dataframe(s),只使用prcomp结果中感兴趣的"timepoint"/ "variable“,创建多个子数据,然后使用”绘图“或您使用的任何函数绘制这些数据。
这不是我的解决办法,而是我在我的研究所寻求帮助的一个生物信息。希望这能帮到别人!再次感谢你抽出时间。
如果我有时间的话,我很快就会发一份我建议的代码。
https://stackoverflow.com/questions/52143632
复制相似问题