Я создал тепловую карту для 100 лучших дифференциально выраженных транскриптов с EnsembID и тремя образцами (RNA-seq -> kallisto -> сыщик).Символьная матрица к числовой матрице для тепловой карты
library(gplots) # heatmap.2
library(dplyr) # unite
heatmap.2(log(tmp_df+1), trace="none", density.info="none", scale="row")
Теперь мне интересно добавлять имена генов в тепловой карте, например. EnsemblD_genename. Для этой цели я исходил следующим образом:
1) Создан столбец "ext_gene" в tmp_df
tmp_df["ext_gene"] <- NA
2) Сопрягаемая target_id от tmp_df с target_id из top_100new (содержащего ext_gene)
tmp_df$ext_gene <- top_100new$ext_gene[match(tmp_df$target_id, top_100new$target_id)]
3) Объединенные столбцы target_id и ext_gene в столбце tmp_df (target_id__ext_gene вместо столбцов target_id и ext_gene)
unite <- unite(tmp_df, target_id__ext_gene, target_id, ext_gene, sep='_')
4) Мне не удалось преобразовать «объединить» в числовую матрицу, потому что один столбец «target_id__ext_gene» имеет NA в некоторых строках, например. ENSEMBL00001_NA, поэтому я попытался заменить NA NONE.
unite$target_id__ext_gene <- gsub ('NA', 'NONE', unite$target_id__ext_gene)
5) Но все-таки я не могу преобразовать «объединить» в числовой матрице, так как столбец «target_id__ext_gene» имеет класс символов. Я пытался использовать
unite$target_id__ext_gene <- as.numeric(as.character(unite$target_id__ext_gene))
но он преобразует все строки столбца «target_id__ext_gene» в НС (NAs introduced by coercion
)
Я знаю, что числовой объект может быть передан heatmap.2 и только там я застрял по причине один знак колонка.
Это как мои данные выглядит как с помощью воспроизведения (объединить):
target_id__ext_gene T2 Npt3 n1 Npt1 Npt2 T3
1) ENS00000112_NONE 5239.1161 0.000000e+00 1.117028e+03 0.000000e+00 0.000000e+00 3905.476311
2) ENS00000150_tfb2m 771.3926 1.012137e+03 4.132779e-06 7.785302e+02 7.625490e+02 634.195429
...
99) ENS00000130_NONE 136.2607 1.658801e+00 1.498763e+02 2.733379e+00 0.000000e+00 64.313849
100) ENS00000124_NONE 606.0573 1.155628e+02 3.062783e+02 1.054907e+02 1.084090e+02 430.250175
n3 n2 T1
1) 1.327292e+03 1.401719e+03 4230.5667240
2) 1.561575e-06 1.113367e-06 526.1571307
...
99) 1.511978e+02 1.240264e+02 68.4360589
100) 3.817887e+02 4.725010e+02 636.0279422
Пожалуйста, прочтите информацию о [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и как дать [воспроизводимый пример] (http://stackoverflow.com)/вопросы/5963269). Это облегчит вам помощь другим людям. – zx8754
Нет необходимости в «шаге 1». – zx8754
@ zx8754, я просто хотел дать полную информацию с самого начала. – gbioinfo