Использование значений NA с heatmap.2 и (указанными) перерывами - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь создать тепловую карту, используя heatmap.2 со следующими точками разрыва:

breaks = c(-100000, -10000, -1000, -100, -20, 20, 100, 1000, 10000, 100000)

Цвета меняются от синего до красного с белым в середине вокруг нулевого значения (от -20 до20) как указано в цветовой палитре:

colors <- colorRampPalette(c("blue", "white", "red")) (9)

Я бы хотел покрасить значения NA в черный, чтобы они отличались от нулевых значений белым.Однако, поскольку у меня есть значения NA, код, который я использую, а именно:

library(gplots)
heatmap.2(MATRIX, col=colors, na.color="black", density.info="none", 
          scale="none", trace="none", Colv=FALSE, 
          breaks=c(-100000, -10000, -1000, -100, -20, 20, 
                   100, 1000, 10000, 100000))

создает следующую ошибку:

Error in hclustfun(distr) : NA/NaN/Inf in foreign function call (arg 11)

Я уже посмотрел на вопрос, размещенный здесь: Как создать тепловую карту и кластер со значениями NA? , который использует следующий код для разрывов:

breaks <- seq(min(dat2, na.rm = T), max(dat2, na.rm = T), length.out = 21)

и цвета:

my_palette <- colorRampPalette(c("yellow", "orange", "red")) (n=20)

ОднакоЯ не могу заставить его работать с моим списком указанных разрывов.

Ниже приведен пример набора данных, подобный тому, который я использую:

Gene1 Gene2 Gene3 Gene4 Gene5 Gene6 Gene7
-100 -30 120 1790 NA 45 -1000
-4 0 -10000 10000 25 NA NA
1001 17 -4521 NA 123 31 12
NA 9087 NA -140 -1876 9087 3681

Любая помощь с этим будет действительноприветствуется.

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

REP_1 DDIS_2 DDIS_3 DDIS_4 DDIS_5 DDIS_6 DDIS_7 OIS_8 OIS_9

CDKN2B 2.540990 32.074968 2.146586e+01 4.859826e+00 -2.938221e+12 -4.207584e+12 -1.837675e+13 5.967526e+07 2.196071e+13 FST 12225.652147 10.145169 2.528894e+00 -2.088704e+00 1.487618e+01 3.344373e+00 -1.652349e+00 -3.029684e+04 -1.021939e+06

```DCN        1.070139     13.768018  1.333338e+03  1.959332e+00``` -1.707571e+01 -1.050936e+00 -2.748334e+02 -3.139434e+07 -1.367967e+17```
```E2F4      -1.320385 -42796.013849 -1.358740e+05 -1.550106e+05 -3.918849e+01 -1.039366e+02 -1.166989e+02  2.184948e+01  8.511640e+00```
```E2F5     126.816001     23.208083  5.867904e+00 -1.862336e+00 -2.909519e+00 -9.511401e+00 -1.112279e+03 -3.938015e+04 -7.241726e+00```
```EP300     -3.120860    -23.155158 -4.631832e+01 -4.389633e+01 -3.706228e+00 -6.220801e+00 -5.970081e+00 -2.154733e+00 -1.281695e+00```
```FBN1       2.000128      2.804892  1.334023e+00  1.129510e+01 -1.458580e+00 -3.180044e+00  1.471174e+00 -1.358247e+04 -3.097169e+09```
```FMOD              NA            NA            NA            NA            NA          NA```

1 Ответ

0 голосов
/ 09 июля 2019

спасибо за вашу помощь, когда совет заставил меня понять, что это был только мой набор данных, я посмотрел глубже. Если это интересно, функция heatmap.2 не работала, по крайней мере для меня, если было слишком много NA. Я избавился от колонок, которые были в основном NA, и тогда все работало нормально. Я предполагаю, что изо всех сил пытались сгруппировать их с таким большим количеством недостающих данных.

...