Мне нужно выяснить, как установить подмножество файла метаданных, чтобы он соответствовал подмножеству основного набора данных (DF).Подмножество будет выполнено в соответствии с количеством переменных (на данный момент от одной до трех). С этим я намерен предоставить фрейм данных, необходимый для ввода в функцию pheatmap, сделать его более полным и включить легенду.
ИтакПока я транспонировал файл meta
, чтобы разместить идентификаторы ячеек в строке, чтобы я мог назначить их в качестве идентификаторов столбцов.
meta <-
readxl::read_xlsx("C:/Users/user/Desktop/datasetfolder/file.xlsx")
``revmeta <- t(meta)
colnames(revmeta) <- c(revmeta[rownames(revmeta)=="cell",])``
Строка cell
содержит нужные мне идентификаторы ячеек.При этом они становятся colnames
, к которому я позже применяю функцию grep
, чтобы попытаться установить подстановку meta
в соответствии с теми же идентификаторами, которые я хочу нанести на pheatmap
.Из этих идентификаторов я затем строю фрейм данных, который является входным аргументом annotation_col
в pheatmap
revmetadf <- as.data.frame(revmeta)
. Следуя предыдущему шагу, я попытался создать подмножество данных, используя функцию grep
для конкретных идентификаторов ячеек.
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)
Затем я собираюсь использовать full_join
из dplyr package because i want to combine several subsets with the same
nrows . Also i still need the cell IDs column to become a row again with the
tibble function
rownames_to_column to assign the cell IDs to the
meta`` colnames.
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))
Имеет размеры 95 строк и 12 столбцов
dim(tmeta12)
[1] 95 12
Из этих идентификаторов я затем строю информационный кадр, который является аргументом annotation_col
для ввода в pheatmap
annotation_col = data.frame(
Cell_type= tmeta12$celltype,
Age= tmeta12$age,
Sex=tmeta12$sex)
Имеет размеры 95 строк и 3 столбца
dim(annotation_col)
[1] 95 3
На следующем шаге я получаю error
, где я получаю вывод:
Error in check.length("fill") :
'gpar' element 'Заполнение 'не должно быть длиной 0
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")
Я прошу некоторую обратную связь и ввод, чтобы эта проблема могла быть решена.Я обновлю вопрос, так как я все еще учусь, как применять функцию dput
. Может кто-нибудь помочь, пожалуйста?