我有一个具有这种结构的eset(顶部是pData(data),底部是exprs(data))。 SMP标签是来自具有不同条件的受试者的样本。颜色是来自WGCNA的模块以及相关的分数。
ID age gender condition
SMP1 20 15 F healthy
SMP2 35 39 F healthy
SMP3 36 54 F diabetes
SMP4 73 43 M diabetes
SMP5 29 17 M influenza
SMP6 66 27 F influenza
SMP1 SMP2 SMP3 SMP4 SMP5 SMP6
blue 0.98 -0.42 0.21 -0.96 -0.92 0.44
black 0.43 0.88 0.23 0.59 0.32 -0.82
red 0.59 0.21 -0.16 -0.77 -0.49 0.33
实际上,有12个疾病组和一个健康组,以及9个不同的模块(每个模块都有不同的颜色)
我的目标是创建一个由12个图组成的阵列,每个图可视化一组患有一种疾病的个体的模块得分以及健康个体的模块得分(例如:糖尿病患者的蓝色模块得分的分布和分布健康个体的模块评分,每个分数都在同一图上)。为了使每种不同模块颜色具有12个图的阵列,健康组始终具有相同的色图(因为ggplot2将按字母顺序选择颜色)。
最初,我将集合中的pData(data)和exprs(data)合并到一个数据框中,为每个疾病/健康状况的比较手动分配了数据框,然后使用以下代码制作了图:>
ggplot(condition_v_healthy, aes(module_color, fill=condition)) +
geom_density(alpha = 0.5) + theme(legend.position="none") +
labs(x = "condition")
这似乎需要遍历模块颜色和不同条件,每次将疾病组与健康组进行比较。
我想知道是否有一种优雅的方法?可以将purrr与自定义功能一起使用吗?我很想避免合并pData(data)和exprs(data),但不确定是否可能。
谢谢!