Thanks a heap cpad0112. As always I am greatful for your kind help.
• 1 views
•
link
Sample data
structure(list(Gene = 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(Gene = 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"))
Scripts
df %>% gather(k,v, -Gene, -Peptide) %>% split(.$Gene) %>% map(~spread(.,Peptide, v)) %>% map(~select(.,-1:-2)%>% ggpairs(.))
Q1. How can I add protein name to the plots and save these plots separately in a folder?
Q2. How can put peptide comparisons (for each proteins) faceted and save?
@OP: Q1 and Q2:
For Q1 requirement: try this with code
p=df1 %>% gather(k,v, -Gene, -Peptide) %>% split(.$Gene) %>% map(~spread(.,Peptide, v)) %>% map(~select(.,1:ncol(.))%>%ggpairs(3:ncol(.), title = paste0("Protein: ",unique(.[,1]))))
for png (This would create 4 png files with gene/protein names as file name and each file will have the string "protein" and protein name in the data frame .. Change resolution as per requirement.):
for(i in 1:length(p)){
ggsave(plot = p[[i]], file = paste0(names(p)[i],".png"), dpi = 300)
}
For Q2: There is manual way, you can automate it.
library(cowplot)
plot_grid(
ggmatrix_gtable(p[[1]]),
ggmatrix_gtable(p[[2]]),
ggmatrix_gtable(p[[3]]),
ggmatrix_gtable(p[[4]]),
nrow = 2,
ncol=2
)
Thanks a heap cpad0112. As always I am greatful for your kind help.
Log in to answer this question.
what is the object "v" here in
map(~spread(.,Peptide, v))?thank you cpad0112 for trying to help. sorry it was a mistake, v = value, I'll edit that. Thank you.
map(~select(.,-1:-2)code has error. fixed that. However ggpairs (from GGally) function fails with an error message:Error: ggplot2 doesn't know how to deal with data of class list. If you can let us know what you want to plot as individual files, i think, in first step it self, we can get the required plots.From this scripts I can get graphs like below;
I want to add protein name in the top of the plot and save these plots in a folder.
Next, I'm wondering if I can be faceted these plots protein vice ( for each protein plot peptide comparison)
@OP: where did you get the "Protein" column? data frame posted in OP, has only "gene" and "peptide". I think the code is adapted from poorly and unnecessarily complex. If you can let us know what you want, we can help you. Instead repairing adapted code is kind of getting out of hand. I already found 2 code errors.
Sorry, cpad0112. I have changed Proteins to Gene numbers in my working df, and have posted wrong scripts mistakenly.
Your second code worked fine.
BIOAWY : Please edit the original post and clean the code up as necessary. Having incorrect information in original post but correct information buried in a thread becomes misleading to someone finding this thread in future via search.