Mercurial > repos > artbio > small_rna_map
annotate small_rna_map.r @ 1:2299eb1e7c93 draft
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit d0362e589eb42377b7f10dfcec78be0288220755
author | artbio |
---|---|
date | Tue, 11 Jul 2017 09:01:19 -0400 |
parents | 1ad5d040f85f |
children | 7feee0446c5c |
rev | line source |
---|---|
0
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
1 library(optparse) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
2 library(ggplot2) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
3 library(gridExtra) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
4 library(RColorBrewer) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
5 library(gtable) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
6 library(grid) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
7 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
8 option_list <- list( |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
9 make_option(c("-r", "--output_tab"), type="character", help="path to tabular file"), |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
10 make_option("--output_pdf", type = "character", help="path to the pdf file with plot") |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
11 ) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
12 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
13 parser <- OptionParser(usage = "%prog [options] file", option_list = option_list) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
14 args = parse_args(parser) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
15 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
16 theme_set(theme_bw()) #a theme with a white background |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
17 Table = read.delim(args$output_tab, header=T, row.names=NULL) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
18 Table <- within(Table, Nbr_reads[Polarity=="R"] <- (Nbr_reads[Polarity=="R"]*-1)) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
19 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
20 #To assign colors to categorical variables in ggplot2 that have stable mapping |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
21 myColors <- brewer.pal(3,"Set1") |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
22 names(myColors) <- levels(Table$Polarity) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
23 colScale <- scale_colour_manual(name = "Polarity",values = myColors) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
24 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
25 #Make initial figures |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
26 p <- ggplot(Table, aes(x=Coordinate, y=Nbr_reads, colour=Polarity)) + |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
27 colScale+ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
28 geom_segment(aes(y = 0, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
29 x = Coordinate, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
30 yend = Nbr_reads, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
31 xend = Coordinate, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
32 color=Polarity), |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
33 alpha=1 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
34 ) + |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
35 geom_segment(aes(y = Nbr_reads, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
36 x = 0, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
37 yend=Nbr_reads, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
38 xend=Chrom_length), alpha=0 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
39 )+ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
40 facet_wrap(Dataset~Chromosome, scales="free", nrow=1, labeller = label_wrap_gen(multi_line = FALSE))+ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
41 scale_y_continuous(breaks = function(x) round(pretty(seq(-(max(x) + 1), (max(x) + 1)))))+#to display only integer values on y axis |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
42 geom_hline(yintercept=0, size=0.3)+ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
43 theme(strip.text = element_text(size = 6, lineheight = 0.1), #specify strip size |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
44 panel.grid.major = element_line(colour = "#ffffff"),#conceal major grid lines |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
45 panel.grid.minor = element_line(colour = "#ffffff"),#conceal minor grid lines |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
46 axis.title = element_blank(),# Conceal axis titles |
1
2299eb1e7c93
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit d0362e589eb42377b7f10dfcec78be0288220755
artbio
parents:
0
diff
changeset
|
47 axis.text = element_text(size = 6),#modify the size of tick labels along axes |
2299eb1e7c93
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit d0362e589eb42377b7f10dfcec78be0288220755
artbio
parents:
0
diff
changeset
|
48 legend.position = "none") # Hide the repeate caption |
2299eb1e7c93
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit d0362e589eb42377b7f10dfcec78be0288220755
artbio
parents:
0
diff
changeset
|
49 |
2299eb1e7c93
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit d0362e589eb42377b7f10dfcec78be0288220755
artbio
parents:
0
diff
changeset
|
50 # Create legend |
2299eb1e7c93
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit d0362e589eb42377b7f10dfcec78be0288220755
artbio
parents:
0
diff
changeset
|
51 mylegend <- legendGrob(c("F", "R", "Median", "Mean"), pch=22, |
2299eb1e7c93
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit d0362e589eb42377b7f10dfcec78be0288220755
artbio
parents:
0
diff
changeset
|
52 gp=gpar(col = c("red","blue","black","yellow"), fill = c("red","blue","black","yellow"))) |
0
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
53 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
54 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
55 # The second plot |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
56 cols<- c("Median"="#000000", "Mean"="#fffa00") |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
57 p2 <- ggplot(Table, aes(x = Coordinate, group=1)) + |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
58 geom_point(aes(y=Median, colour="Median"), alpha=1, size = 1) + |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
59 geom_point(aes(y=Mean, colour="Mean"), alpha= 0.3, size = 1.2)+ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
60 scale_colour_manual(name="", values=cols)+ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
61 expand_limits(y = seq(0,max(Table$Median),by=5)) + |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
62 facet_wrap(Dataset~Chromosome, scales="free", nrow=1, labeller = label_wrap_gen(multi_line = FALSE))+ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
63 geom_segment(aes(y = Nbr_reads, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
64 x = 0, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
65 yend=Nbr_reads, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
66 xend=Chrom_length), alpha=0 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
67 )+ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
68 scale_y_continuous(limits = c(0,max(Table$Median)), position = "right")+ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
69 theme(strip.text = element_text(size = 6, lineheight = 0.1), |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
70 panel.background = element_rect(fill = NA), |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
71 panel.grid.major = element_blank(), |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
72 panel.grid.minor = element_blank(), |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
73 panel.border = element_rect(fill = NA, colour = "grey50"), |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
74 axis.text = element_text(size = 6), |
1
2299eb1e7c93
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit d0362e589eb42377b7f10dfcec78be0288220755
artbio
parents:
0
diff
changeset
|
75 legend.position = "none" |
0
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
76 ) |
1
2299eb1e7c93
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit d0362e589eb42377b7f10dfcec78be0288220755
artbio
parents:
0
diff
changeset
|
77 |
0
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
78 # Transforme ggplot graphs on list of graphs |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
79 plot.list1 <- by(data = Table, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
80 INDICES = c(Table$Chromosome), |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
81 simplify = TRUE, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
82 FUN = function(x) { |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
83 p %+% x |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
84 }) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
85 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
86 plot.list2 <- by(data = Table, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
87 INDICES = c(Table$Chromosome), |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
88 simplify = TRUE, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
89 FUN = function(x) { |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
90 p2 %+% x |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
91 }) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
92 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
93 # A function to get the original tick mark length |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
94 plot_theme <- function(p) { |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
95 plyr::defaults(p$theme, theme_get()) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
96 } |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
97 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
98 # ggplot contains many labels that are themselves complex grob; |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
99 # usually a text grob surrounded by margins. |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
100 # When moving the grobs from, say, the left to the right of a plot, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
101 # Make sure the margins and the justifications are swapped around. |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
102 # The function below does the swapping. |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
103 # Taken from the cowplot package: |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
104 # https://github.com/wilkelab/cowplot/blob/master/R/switch_axis.R |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
105 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
106 hinvert_title_grob <- function(grob){ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
107 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
108 # Swap the widths |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
109 widths <- grob$widths |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
110 grob$widths[1] <- widths[3] |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
111 grob$widths[3] <- widths[1] |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
112 grob$vp[[1]]$layout$widths[1] <- widths[3] |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
113 grob$vp[[1]]$layout$widths[3] <- widths[1] |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
114 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
115 # Fix the justification |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
116 grob$children[[1]]$hjust <- 1 - grob$children[[1]]$hjust |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
117 grob$children[[1]]$vjust <- 1 - grob$children[[1]]$vjust |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
118 grob$children[[1]]$x <- unit(1, "npc") - grob$children[[1]]$x |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
119 grob |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
120 } |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
121 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
122 dual_axis <- function(v1,v2){ |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
123 # Get the ggplot grobs |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
124 g1 <- ggplot_gtable(ggplot_build(v1)) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
125 g2 <- ggplot_gtable(ggplot_build(v2)) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
126 # Get the locations of the plot panels in g1. |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
127 pp <- c(subset(g1$layout, grepl("panel", g1$layout$name), se = t:r)) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
128 # Overlap panels for second plot on those of the first plot |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
129 g <- gtable_add_grob(g1, g2$grobs[grepl("panel", g1$layout$name)], |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
130 pp$t, pp$l, pp$b, pp$l) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
131 # Get the y axis from g2 (axis line, tick marks, and tick mark labels) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
132 index <- which(g2$layout$name == "axis-r-1-1") # Which grob. |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
133 yaxis <- g2$grobs[[index]] # Extract the grob |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
134 ticks <- yaxis$children[[2]] # swap tick marks and tick mark labels |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
135 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
136 # Move the tick marks, Tick mark lengths can change. |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
137 tml <- plot_theme(p)$axis.ticks.length # Tick mark length |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
138 ticks$grobs[[1]]$x <- ticks$grobs[[1]]$x - unit(1, "npc") + tml |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
139 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
140 # Swap margins and fix justifications for the tick mark labels |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
141 ticks$grobs[[2]] <- hinvert_title_grob(ticks$grobs[[2]]) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
142 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
143 # Put ticks back into yaxis |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
144 yaxis$children[[2]] <- ticks |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
145 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
146 # Put the transformed yaxis on the right side of g1 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
147 g <- gtable_add_cols(g, g2$widths[g2$layout[index, ]$l], max(pp$r)) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
148 g <- gtable_add_grob(g, yaxis, max(pp$t), max(pp$r) + 1, max(pp$b), max(pp$r) + 1, |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
149 clip = "off") |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
150 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
151 } |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
152 |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
153 plots <- list() |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
154 len = length(plot.list1) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
155 for(i in 1:len ) {plots[[i]] <- dual_axis(plot.list1[[i]],plot.list2[[i]])} |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
156 # Plotting in multiple pages with different rows |
1
2299eb1e7c93
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit d0362e589eb42377b7f10dfcec78be0288220755
artbio
parents:
0
diff
changeset
|
157 multi.plot<-do.call(marrangeGrob,list(grobs=plots,ncol=1,nrow=8,top=NULL, bottom="Coordinates(nt)", left="Number of reads", right= mylegend)) |
0
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
158 ggsave(args$output_pdf, device="pdf", plot=multi.plot, height=11.69, width=8.2) |
1ad5d040f85f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_map commit fa452d860cf550c7524df59e77b36fd39e3e2a45
artbio
parents:
diff
changeset
|
159 |