如何用R^2绘制大数据矩阵的相关图?

如何用R^2绘制大数据矩阵的相关图?,r,ggplot2,correlation,facet,R,Ggplot2,Correlation,Facet,我有一个蛋白质组数据矩阵。在数据矩阵中,我检测到每个蛋白质的不同数量的肽(可检测的肽数量因蛋白质而异) 问题1。我如何绘制每种蛋白质的相关图来比较其肽的行为。i、 对于蛋白质A,我有肽a1-a3,我想比较a1和a2,a1和a3,以及a2和a3 样本数据 structure(list(Protein = c("A", "A", "A", "A", "B", "C", "C", "D", "D", "D"), Peptide = c("a1", "a2", "a3", "a4", "b1", "c1

我有一个蛋白质组数据矩阵。在数据矩阵中,我检测到每个蛋白质的不同数量的肽(可检测的肽数量因蛋白质而异)

问题1。我如何绘制每种蛋白质的相关图来比较其肽的行为。i、 对于蛋白质A,我有肽a1-a3,我想比较a1和a2,a1和a3,以及a2和a3

样本数据

structure(list(Protein = c("A", "A", "A", "A", "B", "C", "C", "D", "D", "D"), Peptide = c("a1", "a2", "a3", "a4", "b1", "c1", "c2", "d1", "d2", "d3"), Sample1 = c(0.275755732, 0.683048798, 1.244604878, 0.850270313, 0.492175199, 0.269651338, 0.393004954, 0.157966662, 1.681672581, 0.298308801), Sample2 = c(0.408992244, 0.172488244, 1.749247694, 0.358172308, 0.142129982, 0.158636283, 0.243500648, 0.095019037, 0.667928805, 0.572162278), Sample3 = c(0.112265765, 0.377174168, 2.430040623, 0.497873323, 0.141136584, 0.250330266, 0.249783164, 0.107188279, 0.173623439, 0.242298602), Sample4 = c(0.87688073, 0.841826338, 0.831376575, 0.985900966, 0.891632525, 1.016533723, 0.292048735, 0.776351689, 0.800070173, 1.161882923), Sample5 = c(1.034093889, 0.304305772, 0.616445765, 1.000820463, 1.03124071, 0.995897846, 0.289542364, 0.578721727, 0.672592766, 1.168944588), Sample6 = c(1.063124715, 0.623917522, 0.613196611, 0.990921045, 1.014340981, 0.965631141, 0.316793011, 1.02220535, 1.182063616, 1.41196421), Sample7 = c(1.335677026, 0.628621656, 0.411171453, 1.050563412, 1.290233552, 1.1603839, 0.445372411, 1.077192698, 0.726669337, 1.09453338), Sample8 = c(1.139360562, 0.404024829, 0.263714711, 0.899959209, 1.356913804, 1.246338203, 0.426568548, 1.104988267, 0.964924824, 1.083654341), Sample9 = c(1.38146599, 0.582817437, 0.783698738, 1.118948066, 1.010795866, 1.277086848, 0.434025911, 1.238871048, 1.201184368, 1.476478831), Sample10 = c(1.111486801, 0.60513273, 0.460680037, 1.385702246, 1.448873253, 1.364329784, 0.375032044, 1.382750002, 0.741842319, 1.035657705)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"), spec = structure(list( cols = list(Protein = structure(list(), class = c("collector_character", "collector")), Peptide = structure(list(), class = c("collector_character", "collector")), Sample1 = structure(list(), class = c("collector_double", "collector")), Sample2 = structure(list(), class = c("collector_double", "collector")), Sample3 = structure(list(), class = c("collector_double", "collector")), Sample4 = structure(list(), class = c("collector_double", "collector")), Sample5 = structure(list(), class = c("collector_double", "collector")), Sample6 = structure(list(), class = c("collector_double", "collector")), Sample7 = structure(list(), class = c("collector_double", "collector")), Sample8 = structure(list(), class = c("collector_double", "collector")), Sample9 = structure(list(), class = c("collector_double", "collector")), Sample10 = structure(list(), class = c("collector_double", "collector"))), default = structure(list(), class = c("collector_guess", "collector"))), class = "col_spec"))
因此每个蛋白质的肽数不同,我如何比较每个肽并将刻面图保存到单个图中,这样,我只能选择所需的图。

“因此每个蛋白质的肽数不同,我如何比较每个肽并将刻面图保存到单个图中,这样,我只能选择所需的图。”我不完全确定你到底想策划什么。哪些数量的关联图?仅选择所需的图形

不管怎样,也许下面的内容会有所帮助

library(GGally)
library(tidyverse)
df %>%
    gather(Sample, Value, -Protein, -Peptide) %>%
    spread(Peptide, Value) %>%
    filter(Protein == "A") %>%
    ggpairs(columns = 3:6)

说明:我们对数据进行了重塑,使列中的每个
都有
s;然后我们过滤
蛋白质==“A”
的条目,并使用
GGally::ggpairs
显示每个
肽的
值的成对相关图

您可以灵活地定制
ggpairs
的输出图(例如,添加回归线、删除面板等);我建议看一下和


更新 如果只想显示某些
肽的相关图,可以执行以下操作

pep_of_interest <- c("a2", "a4")
df %>%
    gather(Sample, Value, -Protein, -Peptide) %>%
    spread(Peptide, Value) %>%
    filter(Protein == "A") %>%
    ggpairs(columns = match(pep_of_interest, colnames(.)))
pep利息%
收集(样本、值、-蛋白质、-肽)%>%
扩散(肽,值)%>%
过滤器(蛋白质==“A”)%>%
ggpairs(列=匹配(感兴趣的pep,colnames())

如果您正在寻找相关性的可视化表示,这里有一个使用
corrplot
库的解决方案。库中提供了更多的打印选项(请参阅)

#示例数据

dd到目前为止,您尝试了哪些方法来解决问题?也许,您可以编辑您的帖子,并向我们展示已经尝试过的内容。我无法将您的预期输出与示例数据连接起来。样本数据中的数量C_低/高在哪里?镶嵌条上的数字是多少?样本数据的深度在哪里?请根据您的样本数据编辑您的问题,以提供预期的结果。谢谢Evers博士。不,这个图只是为了显示我的期望,但我不能这样做,因为每个蛋白质的肽数都不同。因此,一些比较是无用的(例如a1与b1)。我只想比较特定蛋白质的肽。如果这让人困惑,我将删除此图。另请参阅尝试此操作以获取列表中每个蛋白质的所有绘图:
res%聚集(k,v,-蛋白质,-肽)%%>%拆分(.$protein)%%>%map(~spread(,Peptide,v))%%>%map(~select(,-1:-2)%%>%ggpairs()
非常感谢Evers博士!一如既往地感激:)一如既往,非常欢迎@Oncidium;-)祝你工作顺利@埃弗斯博士,这个包裹太棒了。谢谢你的回答。一个简单的问题,我的工作df很大。重塑数据后,找到我感兴趣的蛋白质(肽)位置的最简单方法是什么,即,在这里选择3:6 ggpairs(columns=3:6);我怎么能轻松找到我的位置呢@文心兰我用一个例子更新了我的答案,如何只显示某些感兴趣的肽的相关图。请看一看。
# sample data
dd <- structure(list(Protein = c("A", "A", "A", "A", "B", "C", "C", "D", "D", "D"), Peptide = c("a1", "a2", "a3", "a4", "b1", "c1", "c2", "d1", "d2", "d3"), Sample1 = c(0.275755732, 0.683048798, 1.244604878, 0.850270313, 0.492175199, 0.269651338, 0.393004954, 0.157966662, 1.681672581, 0.298308801), Sample2 = c(0.408992244, 0.172488244, 1.749247694, 0.358172308, 0.142129982, 0.158636283, 0.243500648, 0.095019037, 0.667928805, 0.572162278), Sample3 = c(0.112265765, 0.377174168, 2.430040623, 0.497873323, 0.141136584, 0.250330266, 0.249783164, 0.107188279, 0.173623439, 0.242298602), Sample4 = c(0.87688073, 0.841826338, 0.831376575, 0.985900966, 0.891632525, 1.016533723, 0.292048735, 0.776351689, 0.800070173, 1.161882923), Sample5 = c(1.034093889, 0.304305772, 0.616445765, 1.000820463, 1.03124071, 0.995897846, 0.289542364, 0.578721727, 0.672592766, 1.168944588), Sample6 = c(1.063124715, 0.623917522, 0.613196611, 0.990921045, 1.014340981, 0.965631141, 0.316793011, 1.02220535, 1.182063616, 1.41196421), Sample7 = c(1.335677026, 0.628621656, 0.411171453, 1.050563412, 1.290233552, 1.1603839, 0.445372411, 1.077192698, 0.726669337, 1.09453338), Sample8 = c(1.139360562, 0.404024829, 0.263714711, 0.899959209, 1.356913804, 1.246338203, 0.426568548, 1.104988267, 0.964924824, 1.083654341), Sample9 = c(1.38146599, 0.582817437, 0.783698738, 1.118948066, 1.010795866, 1.277086848, 0.434025911, 1.238871048, 1.201184368, 1.476478831), Sample10 = c(1.111486801, 0.60513273, 0.460680037, 1.385702246, 1.448873253, 1.364329784, 0.375032044, 1.382750002, 0.741842319, 1.035657705)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"), spec = structure(list( cols = list(Protein = structure(list(), class = c("collector_character", "collector")), Peptide = structure(list(), class = c("collector_character", "collector")), Sample1 = structure(list(), class = c("collector_double", "collector")), Sample2 = structure(list(), class = c("collector_double", "collector")), Sample3 = structure(list(), class = c("collector_double", "collector")), Sample4 = structure(list(), class = c("collector_double", "collector")), Sample5 = structure(list(), class = c("collector_double", "collector")), Sample6 = structure(list(), class = c("collector_double", "collector")), Sample7 = structure(list(), class = c("collector_double", "collector")), Sample8 = structure(list(), class = c("collector_double", "collector")), Sample9 = structure(list(), class = c("collector_double", "collector")), Sample10 = structure(list(), class = c("collector_double", "collector"))), default = structure(list(), class = c("collector_guess", "collector"))), class = "col_spec"))

# for Protein A, build subset of data
tempdd <- dd[dd$Protein == "A",][,-1]
cc <- tempdd[,1]
tempdd <- t(tempdd[,-1])
colnames(tempdd) <- cc

# calculate the correlations for all samples
rr <- cor(tempdd)

# install.packages("corrplot")
library(corrplot)

#Build the plot
corrplot(rr,method='circle')