R: Библиотека M3C — сообщение об ошибке Duplicate row.names

Я пытаюсь запустить согласованную кластеризацию, используя библиотеку M3C в R. Мой набор данных содержит 451 образец и ~ 2500 генов. Имена строк представляют собой идентификаторы ENTREZ (числовые значения) генов. Я перепроверил набор данных с помощью команды «any (duplicated (colnames (MyData)))», чтобы убедиться, что в именах строк нет повторяющихся записей. Я выполнил следующую команду для выполнения консенсусной кластеризации с использованием библиотеки M3C:

res <- M3C(MyData, cores=8, seed = 123, des = annotation, removeplots = TRUE, analysistype = 'chi', doanalysis = TRUE, variable = 'class')

Я получаю следующую ошибку:

Warning message:
"non-unique values when setting 'row.names': "

Error in `.rowNamesDF<-`(x, value = value): duplicate 'row.names' are not allowed
Traceback:

1. M3C(MyData, cores = 8, seed = 123, des = meta, removeplots = TRUE, 
 .     analysistype = "chi", doanalysis = TRUE, variable = "class")
2. M3Creal(as.matrix(mydata), maxK = maxK, reps = repsreal, pItem = 0.8, 
 .     pFeature = 1, clusterAlg = clusteralg, distance = distance, 
 .     title = "/home/christopher/Desktop/", printres = printres, 
 .     showheatmaps = showheatmaps, printheatmaps = printheatmaps, 
 .     des = des, x1 = pacx1, x2 = pacx2, seed = seed, removeplots = removeplots, 
 .     silent = silent, doanalysis = doanalysis, analysistype = analysistype, 
 .     variable = variable, fsize = fsize, method = method)
3. `row.names<-`(`*tmp*`, value = newerdes$ID)
4. `row.names<-.data.frame`(`*tmp*`, value = newerdes$ID)
5. `.rowNamesDF<-`(x, value = value)
6. stop("duplicate 'row.names' are not allowed")

Кто-нибудь может помочь мне решить проблему?

Спасибо


person Saikat    schedule 28.03.2020    source источник


Ответы (1)


Я выполнил эквивалент следующего, используя M3C:

df_wide_matrix  # my expression matrix
any(duplicated(colnames(df_wide_matrix)))  # result = FALSE

M3C::M3C(df_wide_matrix, iters=2, repsref=2, repsreal=2, clusteralg="hc", objective="PAC")

Я столкнулся с точно таким же сообщением об ошибке с M3C, в дополнение к:

In addition: Warning message:
non-unique values when setting 'row.names': ‘ABCDEF’, ‘ABCDGH’ 

Я предположил, что проблема вызвана тем, что первые четыре символа каждой из этих функций равны. Поэтому я временно изменил их соответствующие имена перед запуском M3C:

dup_ids <- which(colnames(dissADJ) %in% c("ABCDEF", "ABCDGH"))
colnames(dissADJ)[dup_ids] <- c("A", "B")

M3C::M3C(df_wide_matrix, iters=2, repsref=2, repsreal=2, clusteralg="hc", objective="PAC")

Затем M3C работает правильно. Не идеальное решение, но мне помогло — я разместил его как проблему: https://github.com/crj32/M3C/issues/6.

person Jack Gisby    schedule 26.07.2020