Мне нужна помощь в создании тепловых карт с кластерным анализом и корреляцией (я новичок в R). Мои данные в Excel выглядят так:
Gene1 Gene2 Gene3 Gene4 Gene5 ... Gene296
Bacteria1 0 0 0 0.7 0.2 ... 0
Bacteria2 0.44 0 0 0 0 ... 0.9
Bacteria2 0 0.32 0 0.4 0 ... 0
... ... ... ... ... ... ... ...
Bacteria117 0 0.2 0.3 0 0.7 ... 0
Значение 0,32 означает 32 балла от 0 до 100. Существуют более высокие оценки (например, 0,9) или более низкие оценки (например, 0 или 0,2),Я проверил на АН, а их нет. Я хочу провести кластерный анализ, чтобы выяснить, какие бактерии образуют кластеры, согласно моим экспериментальным данным (баллам). Файл CSV. Я использовал этот код:
> aa <- read.csv(file.choose())
> str(aa)
#I obtain this structure
'data.frame': 117 obs. of 296 variables:
$ X : Factor w/ 117 levels "Ac_neuii_BVI",..: 45 64 67 104 1 2 3 4 5 6 ...
$ AAC6_Iad : num 0 0 0 0 0 0 0 0 0 0 ...
$ aad6 : num 0 0 0 0 0 0 0 0 0 0 ...
$ abeS : num 0 0 0 0 0 0 0 0 0 0 ...
> is.numeric(aa)
[1] FALSE
Когда я пытаюсь использовать корреляцию или кластеризацию, я получаю эту ошибку:
> az <- cor(aa)
Error in cor(aa) : 'x' must be numeric
Я пытался as.matrix, но ошибка сохраняется в матрицеконечно. Я попробовал как .numeric, но это не сработало. Я удалил X > aa$X <- NULL
, и проблема исчезла (я не знаю, является ли это правильным способом решения проблемы), но название бактерий исчезло, и тогда я получил корреляцию между моими генами, а не между моими генами Ибактерии. То же самое происходит с кластеризацией с использованием hclust или dist. Есть ли способ, которым я должен организовать мой CSV-файл? Я не нашел четкой статьи в интернете о том, как решить «х должна быть числовая проблема» и как сделать корреляцию или измерить расстояния между генами и бактериями.
Спасибо. Извините за незнание некоторых вещей, которые могут показаться вам очевидными.