我需要弄清楚如何对元数据excell文件进行子集化,以使其与主数据集(DF)的子集匹配。该子设置将根据多个变量(现在为一到三个)执行。为此,我打算提供在pheatmap函数中输入所需的数据框,使其更加完整并包含图例。
到目前为止,我已将meta
文件转置为将单元格ID放在一行上,以便可以将它们分配为列ID。
meta <-
readxl::read_xlsx("C:/Users/user/Desktop/datasetfolder/file.xlsx")
``revmeta <- t(meta)
colnames(revmeta) <- c(revmeta[rownames(revmeta)=="cell",])``
cell
行包含我需要的单元格ID。这样,它们就变成了colnames
,随后我在其上应用grep
函数根据我希望用meta
绘制的相同ID尝试对pheatmap
进行子集化。然后,我根据这些ID建立一个数据框,该数据框是在annotation_col
pheatmap
自变量
revmetadf <- as.data.frame(revmeta)
在上一步之后,我尝试使用grep
函数对感兴趣的特定小区ID进行数据子集化。
meta1 <- revmetadf[,grep("ID1", colnames(revbigmetadf))]
bigmeta4$ID <- 1:nrow(meta1)
meta2 <- revbigmetadf[,grep("ID2", colnames(revbigmetadf))]
meta2$ID <- 1:nrow(meta2)
meta3 <- revbigmetadf[,grep("ID3", colnames(revbigmetadf))]
meta3$ID <- 1:nrow(meta3)
meta4 <- revmetadf[,grep("ID4", colnames(revbigmetadf))]
meta4$ID <- 1:nrow(meta4)
meta5 <- revmetadf[, grep("ID5", colnames(revbigmetadf))]
meta5$ID <- 1:nrow(meta5)
然后,我打算使用dplyr full_join
行中的package because i want to combine several subsets with the same
小头. Also i still need the cell IDs column to become a row again with the
rownames_to_column function
元名称。
to assign the cell IDs to the
具有95行和12列的尺寸
meta12 <- full_join(meta1,bigmeta1, by = "ID")
metatib12 <- tibble::column_to_rownames(meta12, var = "ID")
rownames(metatib12) <- c(rownames(revmeta))
tmeta12 <- as.data.frame(t(bgmetatib12))
然后我根据这些ID构建一个数据帧,该数据帧是要在dim(tmeta12)
[1] 95 12
中输入的annotation_col
参数
pheatmap
具有95行3列的尺寸
annotation_col = data.frame(
Cell_type= tmeta12$celltype,
Age= tmeta12$age,
Sex=tmeta12$sex)
在下面的步骤中,我得到一个dim(annotation_col)
[1] 95 3
,其中得到了输出:
error
'gpar'元素'fill'的长度不能为0
Error in check.length("fill") :
我需要一些反馈和意见,以便可以解决此问题。我将在仍在学习如何应用library(pheatmap)
library(RColorBrewer)
pheatmap(metatib, color=rev(brewer.pal(9,"RdBu")),
cutree_rows = 2,
cutree_cols = 2,
annotation_col = annotation_col , main = "5 + 8 weeks")
函数的情况下更新问题,请问有人可以帮忙吗?