Mercurial > repos > galaxyp > custom_pro_db
diff customProDB.R @ 0:8ccfff69dd57 draft
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/bumbershoot/custom_pro_db commit 4bb5b663989d5f04e8fb74b111456f16d6edaa66
author | galaxyp |
---|---|
date | Tue, 14 Mar 2017 14:14:38 -0400 |
parents | |
children | ad130eaa3a05 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/customProDB.R Tue Mar 14 14:14:38 2017 -0400 @@ -0,0 +1,113 @@ +#!/usr/bin/env Rscript + +initial.options <- commandArgs(trailingOnly = FALSE) +script_parent_dir <- dirname(sub("--file=", "", initial.options[grep("--file=", initial.options)])) + +## begin warning handler +withCallingHandlers({ + +library(methods) # Because Rscript does not always do this + +options('useFancyQuotes' = FALSE) + +suppressPackageStartupMessages(library("optparse")) +suppressPackageStartupMessages(library("RGalaxy")) + + +option_list <- list() + +option_list$bam <- make_option('--bam', type='character') +option_list$bai <- make_option('--bai', type='character') +option_list$vcf <- make_option('--vcf', type='character') +option_list$exon_anno <- make_option('--exon_anno', type='character') +option_list$proteinseq <- make_option('--proteinseq', type='character') +option_list$procodingseq <- make_option('--procodingseq', type='character') +option_list$ids <- make_option('--ids', type='character') +option_list$dbsnpinCoding <- make_option('--dbsnpinCoding', type='character') +option_list$cosmic <- make_option('--cosmic', type='character') +option_list$annotationFromHistory <- make_option('--annotationFromHistory', type='logical', action="store_true", default=FALSE) +option_list$rpkmCutoff <- make_option('--rpkmCutoff', type='character') +#option_list$outputIndels <- make_option('--outputIndels', type='logical', action="store_true", default=FALSE) +#option_list$outputNovelJunctions <- make_option('--outputNovelJunctions', type='logical', action="store_true", default=FALSE) +option_list$outputFile <- make_option('--outputFile', type='character') + + +opt <- parse_args(OptionParser(option_list=option_list)) + + +customProDB <- function( + bam_file = GalaxyInputFile(required=TRUE), + bai_file = GalaxyInputFile(required=TRUE), + vcf_file = GalaxyInputFile(required=TRUE), + exon_anno_file = GalaxyInputFile(required=TRUE), + proteinseq_file = GalaxyInputFile(required=TRUE), + procodingseq_file = GalaxyInputFile(required=TRUE), + ids_file = GalaxyInputFile(required=TRUE), + dbsnpinCoding_file = GalaxyInputFile(required=FALSE), + cosmic_file = GalaxyInputFile(required=FALSE), + annotationFromHistory = GalaxyLogicalParam(required=FALSE), + rpkmCutoff = GalaxyNumericParam(required=TRUE), + #outputIndels = GalaxyLogicalParam(required=FALSE), + #outputNovelJunctions = GalaxyLogicalParam(required=FALSE), + outputFile = GalaxyOutput("FASTA","fasta")) +{ + file.symlink(exon_anno_file, paste(getwd(), "exon_anno.RData", sep="/")) + file.symlink(proteinseq_file, paste(getwd(), "proseq.RData", sep="/")) + file.symlink(procodingseq_file, paste(getwd(), "procodingseq.RData", sep="/")) + file.symlink(ids_file, paste(getwd(), "ids.RData", sep="/")) + + if (length(dbsnpinCoding_file) > 0) + { + file.symlink(dbsnpinCoding_file, paste(getwd(), "dbsnpinCoding.RData", sep="/")) + labelrsid = T + } + else + { + labelrsid = F + } + + if (length(cosmic_file) > 0) + { + file.symlink(cosmic_file, paste(getwd(), "cosmic.RData", sep="/")) + cosmic = T + } + else + { + cosmic = F + } + + bamLink = "input.bam" + file.symlink(bam_file, bamLink) + file.symlink(bai_file, paste(bamLink, ".bai", sep="")) + + suppressPackageStartupMessages(library(customProDB)) + + easyRun(bamFile=bamLink, vcfFile=vcf_file, annotation_path=getwd(), + rpkm_cutoff=rpkmCutoff, outfile_path=".", outfile_name="output", + nov_junction=F, INDEL=T, lablersid=labelrsid, COSMIC=cosmic) +} + + +params <- list() +for(param in names(opt)) +{ + if (!param == "help") + params[param] <- opt[param] +} + +setClass("GalaxyRemoteError", contains="character") +wrappedFunction <- function(f) +{ + tryCatch(do.call(f, params), + error=function(e) new("GalaxyRemoteError", conditionMessage(e))) +} + + +suppressPackageStartupMessages(library(RGalaxy)) +do.call(customProDB, params) + +## end warning handler +}, warning = function(w) { + cat(paste("Warning:", conditionMessage(w), "\n")) + invokeRestart("muffleWarning") +})