从具有非唯一名称的特定列表元素创建热图

问题描述 投票:0回答:1

所有,我不知道这是否容易,但目前我无法真正弄清楚,因此这篇文章。 如何转换列表以用于每个代谢物的 Log2FC 值的热图,同时仍将这些值与每个文件夹的名称相关联? 请注意,“文件夹”字段除所有字段外,还将有 2 个以上不同的名称,“名称”列具有相似的条目,代谢物也是如此。 一定有类似融化的东西,但我想不出来。 这是列表的一部分的示例。 请注意,代谢物、名称不是 data.frame 内或整个列表中的唯一元素 该列表有 7 个这样的数据框。

    Metabolite  Log2FC  p.adj   t.val   Name    Folder
81  mevalonate  -1.712715   3.532766e-10    14213209.8  minus_Lac-minus_Lac_Ab  All
813 mevalonate  -1.647945   6.960620e-10    -13926681.0 minus_UT-minus_Lac_Ab   All
62  hypotaurine 1.544288    1.522596e-02    305035.0    plus_Lac-minus_Lac_Ab   All
814 mevalonate  -2.082741   6.584622e-12    -15624886.5 plus_Lac-minus_Lac_Ab   All
524 glycerol_3-phosphate    -2.530780   5.435970e-04    6104389.5   plus_Lac-plus_Lac_Ab    All
8110    mevalonate  -1.866464   3.633006e-10    12777477.0  plus_Lac-plus_Lac_Ab    All
52  glycerol_3-phosphate    2.524050    8.742028e-04    6098416.6   plus_Lac_Ab-minus_Lac   All
811 mevalonate  1.496438    3.485046e-08    11365800.3  plus_Lac_Ab-minus_Lac   All
522 glycerol_3-phosphate    2.380956    1.230993e-03    5964600.9   plus_Lac_Ab-minus_UT    All
818 mevalonate  1.431668    7.235536e-08    11079271.5  plus_Lac_Ab-minus_UT    All
621 hypotaurine 1.712892    1.711302e-03    362580.5    plus_UT-minus_Lac_Ab    All
815 mevalonate  -1.865592   3.496969e-11    -14840606.6 plus_UT-minus_Lac_Ab    All
526 glycerol_3-phosphate    -2.467658   6.338064e-04    -6047260.0  plus_UT-plus_Lac_Ab All
8112    mevalonate  -1.649315   2.869918e-09    -11993197.0 plus_UT-plus_Lac_Ab All
816 mevalonate  -1.581595   6.495749e-10    -13619519.9 Sicca_Lac-minus_Lac_Ab  All
527 glycerol_3-phosphate    -1.978937   2.578183e-03    -5509185.3  Sicca_Lac-plus_Lac_Ab   All
8113    mevalonate  -1.365319   7.141499e-08    -10772110.3 Sicca_Lac-plus_Lac_Ab   All
8116    mevalonate  -1.505976   6.187072e-10    12575065.6  Sicca_Lac-Sicca_Lac_Ab  All
521 glycerol_3-phosphate    2.239778    2.018781e-02    4778234.1   Sicca_Lac_Ab-minus_Lac  All
812 mevalonate  1.637095    3.444792e-10    13168755.5  Sicca_Lac_Ab-minus_Lac  All
523 glycerol_3-phosphate    2.096685    2.680088e-02    4644418.3   Sicca_Lac_Ab-minus_UT   All
819 mevalonate  1.572325    7.166284e-10    12882226.7  Sicca_Lac_Ab-minus_UT   All
525 glycerol_3-phosphate    2.246509    1.473790e-02    4784207.0   Sicca_Lac_Ab-plus_Lac   All
8111    mevalonate  2.007121    4.743206e-12    14580432.2  Sicca_Lac_Ab-plus_Lac   All
529 glycerol_3-phosphate    2.183387    1.676495e-02    4727077.4   Sicca_Lac_Ab-plus_UT    All
8115    mevalonate  1.789972    2.634526e-11    13796152.3  Sicca_Lac_Ab-plus_UT    All
817 mevalonate  -1.280383   3.070459e-08    -12032885.7 Sicca_UT-minus_Lac_Ab   All
528 glycerol_3-phosphate    -2.433671   6.901330e-04    -6015448.0  Sicca_UT-plus_Lac_Ab    All
8114    mevalonate  -1.064106   4.305677e-06    -9185476.2  Sicca_UT-plus_Lac_Ab    All
5210    glycerol_3-phosphate    -2.149399   1.800144e-02    -4695265.4  Sicca_UT-Sicca_Lac_Ab   All
8117    mevalonate  -1.204763   4.049354e-08    -10988431.4 Sicca_UT-Sicca_Lac_Ab   All
r heatmap
1个回答
1
投票

使用 Log2FC(两次,一旦反转以显示热图,替换为其他 6 个数据帧)和

heatmap.2
base::heatmap
也可以)。

添加 MetaboliteName 作为行名称。

library(gplots)

mat <- cbind(df[,2], rev(df[,2]))

rownames(mat) <- paste(df[,1], df[,5])

heatmap.2(mat, trace="none", margins=c(5,18))

数据

df <- structure(list(Metabolite = c("mevalonate", "mevalonate", "hypotaurine", 
"mevalonate", "glycerol_3-phosphate", "mevalonate", "glycerol_3-phosphate", 
"mevalonate", "glycerol_3-phosphate", "mevalonate", "hypotaurine", 
"mevalonate", "glycerol_3-phosphate", "mevalonate", "mevalonate", 
"glycerol_3-phosphate", "mevalonate", "mevalonate", "glycerol_3-phosphate", 
"mevalonate", "glycerol_3-phosphate", "mevalonate", "glycerol_3-phosphate", 
"mevalonate", "glycerol_3-phosphate", "mevalonate", "mevalonate", 
"glycerol_3-phosphate", "mevalonate", "glycerol_3-phosphate", 
"mevalonate"), Log2FC = c(-1.712715, -1.647945, 1.544288, -2.082741, 
-2.53078, -1.866464, 2.52405, 1.496438, 2.380956, 1.431668, 1.712892, 
-1.865592, -2.467658, -1.649315, -1.581595, -1.978937, -1.365319, 
-1.505976, 2.239778, 1.637095, 2.096685, 1.572325, 2.246509, 
2.007121, 2.183387, 1.789972, -1.280383, -2.433671, -1.064106, 
-2.149399, -1.204763), p.adj = c(3.532766e-10, 6.96062e-10, 0.01522596, 
6.584622e-12, 0.000543597, 3.633006e-10, 0.0008742028, 3.485046e-08, 
0.001230993, 7.235536e-08, 0.001711302, 3.496969e-11, 0.0006338064, 
2.869918e-09, 6.495749e-10, 0.002578183, 7.141499e-08, 6.187072e-10, 
0.02018781, 3.444792e-10, 0.02680088, 7.166284e-10, 0.0147379, 
4.743206e-12, 0.01676495, 2.634526e-11, 3.070459e-08, 0.000690133, 
4.305677e-06, 0.01800144, 4.049354e-08), t.val = c(14213209.8, 
-13926681, 305035, -15624886.5, 6104389.5, 12777477, 6098416.6, 
11365800.3, 5964600.9, 11079271.5, 362580.5, -14840606.6, -6047260, 
-11993197, -13619519.9, -5509185.3, -10772110.3, 12575065.6, 
4778234.1, 13168755.5, 4644418.3, 12882226.7, 4784207, 14580432.2, 
4727077.4, 13796152.3, -12032885.7, -6015448, -9185476.2, -4695265.4, 
-10988431.4), Name = c("minus_Lac-minus_Lac_Ab", "minus_UT-minus_Lac_Ab", 
"plus_Lac-minus_Lac_Ab", "plus_Lac-minus_Lac_Ab", "plus_Lac-plus_Lac_Ab", 
"plus_Lac-plus_Lac_Ab", "plus_Lac_Ab-minus_Lac", "plus_Lac_Ab-minus_Lac", 
"plus_Lac_Ab-minus_UT", "plus_Lac_Ab-minus_UT", "plus_UT-minus_Lac_Ab", 
"plus_UT-minus_Lac_Ab", "plus_UT-plus_Lac_Ab", "plus_UT-plus_Lac_Ab", 
"Sicca_Lac-minus_Lac_Ab", "Sicca_Lac-plus_Lac_Ab", "Sicca_Lac-plus_Lac_Ab", 
"Sicca_Lac-Sicca_Lac_Ab", "Sicca_Lac_Ab-minus_Lac", "Sicca_Lac_Ab-minus_Lac", 
"Sicca_Lac_Ab-minus_UT", "Sicca_Lac_Ab-minus_UT", "Sicca_Lac_Ab-plus_Lac", 
"Sicca_Lac_Ab-plus_Lac", "Sicca_Lac_Ab-plus_UT", "Sicca_Lac_Ab-plus_UT", 
"Sicca_UT-minus_Lac_Ab", "Sicca_UT-plus_Lac_Ab", "Sicca_UT-plus_Lac_Ab", 
"Sicca_UT-Sicca_Lac_Ab", "Sicca_UT-Sicca_Lac_Ab"), Folder = c("All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All")), class = "data.frame", row.names = c("81", 
"813", "62", "814", "524", "8110", "52", "811", "522", "818", 
"621", "815", "526", "8112", "816", "527", "8113", "8116", "521", 
"812", "523", "819", "525", "8111", "529", "8115", "817", "528", 
"8114", "5210", "8117"))
© www.soinside.com 2019 - 2024. All rights reserved.