Mercurial > repos > galaxyp > custom_pro_db
comparison customProDB.R @ 3:7e078d4e40f8 draft
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/customProDB commit 141369f97aa2804d2bbfd9ed620ea2a5574994c2-dirty
author | galaxyp |
---|---|
date | Fri, 29 Jan 2016 14:26:25 -0500 |
parents | |
children | 61e45c111ef7 |
comparison
equal
deleted
inserted
replaced
2:e6f488178a45 | 3:7e078d4e40f8 |
---|---|
1 #!/usr/bin/env Rscript | |
2 | |
3 initial.options <- commandArgs(trailingOnly = FALSE) | |
4 script_parent_dir <- dirname(sub("--file=", "", initial.options[grep("--file=", initial.options)])) | |
5 | |
6 ## begin warning handler | |
7 withCallingHandlers({ | |
8 | |
9 library(methods) # Because Rscript does not always do this | |
10 | |
11 options('useFancyQuotes' = FALSE) | |
12 | |
13 suppressPackageStartupMessages(library("optparse")) | |
14 suppressPackageStartupMessages(library("RGalaxy")) | |
15 | |
16 | |
17 option_list <- list() | |
18 | |
19 option_list$bam <- make_option('--bam', type='character') | |
20 option_list$vcf <- make_option('--vcf', type='character') | |
21 option_list$exon_anno <- make_option('--exon_anno', type='character') | |
22 option_list$proteinseq <- make_option('--proteinseq', type='character') | |
23 option_list$procodingseq <- make_option('--procodingseq', type='character') | |
24 option_list$outputFile <- make_option('--outputFile', type='character') | |
25 | |
26 | |
27 opt <- parse_args(OptionParser(option_list=option_list)) | |
28 | |
29 | |
30 customProDB <- function( | |
31 bam_file = GalaxyInputFile(required=TRUE), | |
32 vcf_file = GalaxyInputFile(required=TRUE), | |
33 exon_anno_file = GalaxyInputFile(required=TRUE), | |
34 proteinseq_file = GalaxyInputFile(required=TRUE), | |
35 procodingseq_file = GalaxyInputFile(required=TRUE), | |
36 outputFile = GalaxyOutput("FASTA","fasta")) | |
37 { | |
38 if (dirname(exon_anno_file) != dirname(proteinseq_file) || | |
39 dirname(exon_anno_file) != dirname(procodingseq_file)) | |
40 { | |
41 gstop("parent directory of annotation files must all be the same") | |
42 } | |
43 | |
44 if (file.exists(outputFile)) | |
45 { | |
46 if (file.info(outputFile)$size > 0) { gstop("output file already exists") } | |
47 else | |
48 { | |
49 tryCatch( | |
50 { | |
51 file.remove(outputFile) | |
52 }, error=function(err) | |
53 { | |
54 gstop("failed to remove empty existing file") | |
55 }) | |
56 } | |
57 } | |
58 | |
59 suppressPackageStartupMessages(library(customProDB)) | |
60 | |
61 easyRun(bamFile=bamFile, vcfFile=vcfFile, annotation_path=dirname(exon_anno_file), outfile_path=dirname(outputFile), outfile_name=basename(outputFile)) | |
62 } | |
63 | |
64 | |
65 params <- list() | |
66 for(param in names(opt)) | |
67 { | |
68 if (!param == "help") | |
69 params[param] <- opt[param] | |
70 } | |
71 | |
72 setClass("GalaxyRemoteError", contains="character") | |
73 wrappedFunction <- function(f) | |
74 { | |
75 tryCatch(do.call(f, params), | |
76 error=function(e) new("GalaxyRemoteError", conditionMessage(e))) | |
77 } | |
78 | |
79 | |
80 suppressPackageStartupMessages(library(RGalaxy)) | |
81 do.call(customProDB, params) | |
82 | |
83 ## end warning handler | |
84 }, warning = function(w) { | |
85 cat(paste("Warning:", conditionMessage(w), "\n")) | |
86 invokeRestart("muffleWarning") | |
87 }) |