annotate customProDB.R @ 6:61e45c111ef7 draft

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
author galaxyp
date Wed, 03 Feb 2016 12:37:47 -0500
parents 7e078d4e40f8
children b83a4002aab1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
1 #!/usr/bin/env Rscript
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
2
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
3 initial.options <- commandArgs(trailingOnly = FALSE)
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
4 script_parent_dir <- dirname(sub("--file=", "", initial.options[grep("--file=", initial.options)]))
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
5
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
6 ## begin warning handler
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
7 withCallingHandlers({
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
8
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
9 library(methods) # Because Rscript does not always do this
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
10
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
11 options('useFancyQuotes' = FALSE)
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
12
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
13 suppressPackageStartupMessages(library("optparse"))
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
14 suppressPackageStartupMessages(library("RGalaxy"))
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
15
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
16
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
17 option_list <- list()
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
18
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
19 option_list$bam <- make_option('--bam', type='character')
6
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
20 option_list$bai <- make_option('--bai', type='character')
3
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
21 option_list$vcf <- make_option('--vcf', type='character')
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
22 option_list$exon_anno <- make_option('--exon_anno', type='character')
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
23 option_list$proteinseq <- make_option('--proteinseq', type='character')
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
24 option_list$procodingseq <- make_option('--procodingseq', type='character')
6
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
25 option_list$ids <- make_option('--ids', type='character')
3
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
26 option_list$outputFile <- make_option('--outputFile', type='character')
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
27
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
28
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
29 opt <- parse_args(OptionParser(option_list=option_list))
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
30
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
31
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
32 customProDB <- function(
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
33 bam_file = GalaxyInputFile(required=TRUE),
6
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
34 bai_file = GalaxyInputFile(required=TRUE),
3
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
35 vcf_file = GalaxyInputFile(required=TRUE),
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
36 exon_anno_file = GalaxyInputFile(required=TRUE),
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
37 proteinseq_file = GalaxyInputFile(required=TRUE),
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
38 procodingseq_file = GalaxyInputFile(required=TRUE),
6
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
39 ids_file = GalaxyInputFile(required=TRUE),
3
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
40 outputFile = GalaxyOutput("FASTA","fasta"))
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
41 {
6
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
42 file.symlink(exon_anno_file, paste(dirname(exon_anno_file), "exon_anno.RData", sep="/"))
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
43 file.symlink(proteinseq_file, paste(dirname(exon_anno_file), "proseq.RData", sep="/"))
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
44 file.symlink(procodingseq_file, paste(dirname(exon_anno_file), "procodingseq.RData", sep="/"))
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
45 file.symlink(ids_file, paste(dirname(exon_anno_file), "ids.RData", sep="/"))
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
46
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
47 bamLink = paste(dirname(bam_file), "input.bam", sep="/")
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
48 file.symlink(bam_file, bamLink)
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
49 file.symlink(bai_file, paste(bamLink, ".bai", sep=""))
3
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
50
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
51 suppressPackageStartupMessages(library(customProDB))
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
52
6
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
53 easyRun(bamFile=bamLink, vcfFile=vcf_file, annotation_path=dirname(exon_anno_file),
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
54 outfile_path=".", outfile_name="output",
61e45c111ef7 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 98f3323d4b92a4a3668788b3e1bad1a6529fd6df-dirty
galaxyp
parents: 3
diff changeset
55 nov_junction=F, INDEL=T, lablersid=F, COSMIC=F)
3
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
56 }
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
57
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
58
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
59 params <- list()
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
60 for(param in names(opt))
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
61 {
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
62 if (!param == "help")
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
63 params[param] <- opt[param]
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
64 }
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
65
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
66 setClass("GalaxyRemoteError", contains="character")
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
67 wrappedFunction <- function(f)
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
68 {
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
69 tryCatch(do.call(f, params),
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
70 error=function(e) new("GalaxyRemoteError", conditionMessage(e)))
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
71 }
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
72
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
73
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
74 suppressPackageStartupMessages(library(RGalaxy))
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
75 do.call(customProDB, params)
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
76
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
77 ## end warning handler
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
78 }, warning = function(w) {
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
79 cat(paste("Warning:", conditionMessage(w), "\n"))
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
80 invokeRestart("muffleWarning")
7e078d4e40f8 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
galaxyp
parents:
diff changeset
81 })