Как установить поднабор мета-меток в соответствии с поднабором фрейма данных - PullRequest
0 голосов
/ 03 апреля 2019

Мне нужно выяснить, как установить подмножество файла метаданных, чтобы он соответствовал подмножеству основного набора данных (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. Может кто-нибудь помочь, пожалуйста?

...