我已经为EnsembIDs和三个样本(RNA-seq - > kallisto - > sleuth)创建了前100个差异表达转录本的热图。用于热图的数字矩阵的字符矩阵
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柱top_100new(含有ext_gene的target_id)
tmp_df$ext_gene <- top_100new$ext_gene[match(tmp_df$target_id, top_100new$target_id)]
3)合并tmp_df中的target_id和ext_gene列(target_id_ext_gene列代替target_id和ext_gene列)
unite <- unite(tmp_df, target_id__ext_gene, target_id, ext_gene, sep='_')
4)我无法将“unite”转换为数字矩阵,因为一列“target_id__ext_gene”在某些行中有NA,例如, ENSEMBL00001_NA,所以我试图用NONE替换NA。 5)但是,我仍然无法将“unite”转换为数字矩阵,因为列“target_id__ext_gene”具有字符类。我曾尝试使用
unite$target_id__ext_gene <- as.numeric(as.character(unite$target_id__ext_gene))
但是,它列“target_id__ext_gene”的所有行转换为NA(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