Saving graphs separately in folder?
1
1
Entering edit mode
6.4 years ago
WUSCHEL ▴ 810

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?

R gene • 2.3k views
ADD COMMENT
0
Entering edit mode

what is the object "v" here in map(~spread(.,Peptide, v))?

ADD REPLY
0
Entering edit mode

thank you cpad0112 for trying to help. sorry it was a mistake, v = value, I'll edit that. Thank you.

ADD REPLY
0
Entering edit mode

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.

ADD REPLY
0
Entering edit mode

From this scripts I can get graphs like below;

library(GGally) library(tidyverse) df %>% gather(k,v, -Gene, -Peptide) %>% split(.$Gene) %>% map(~spread(.,Peptide, v)) %>% map(~select(.,-1:-2)%>% ggpairs(.))

Picture1

ADD REPLY
0
Entering edit mode

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)

ADD REPLY
0
Entering edit mode

@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.

ADD REPLY
0
Entering edit mode

Sorry, cpad0112. I have changed Proteins to Gene numbers in my working df, and have posted wrong scripts mistakenly.

library(GGally) library(tidyverse) df %>% gather(k,v, -Gene, -Peptide) %>% split(.$Gene) %>% map(~spread(.,Peptide, v)) %>% map(~select(.,-1:-2)%>% ggpairs(.))
ADD REPLY
1
Entering edit mode

Your second code worked fine.

ADD REPLY
1
Entering edit mode

I have changed Proteins to Gene numbers in my working df, and have posted wrong scripts mistakenly.

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.

ADD REPLY
3
Entering edit mode
6.4 years ago

@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
)

Rplot

ADD COMMENT
0
Entering edit mode

Thanks a heap cpad0112. As always I am greatful for your kind help.

ADD REPLY

Login before adding your answer.

Traffic: 1855 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6