Mercurial > repos > pavlo-lutsik > rnbeads
changeset 41:ebb026fa5f74 draft
Uploaded
author | pavlo-lutsik |
---|---|
date | Fri, 05 Jul 2013 17:23:02 -0400 |
parents | bb2df76b44da |
children | 16f6ef2b3251 |
files | RnBeadsGalaxy.R install.rnbeads.R rnbeads.xml rnbeads_galaxy_wrapper.sh rnbeads_repos.txt.sample tool_data_table_conf.xml.sample tool_dependencies.xml |
diffstat | 7 files changed, 769 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RnBeadsGalaxy.R Fri Jul 05 17:23:02 2013 -0400 @@ -0,0 +1,206 @@ +#msg.file<-file("RnBeads.messages.out", open="w") +#sink(file=msg.file) + + +## add the RnBeads dependencies if we are on a cloud share-instance +if("Rsitelibrary" %in% list.files("/mnt")){ + + .libPaths("/mnt/galaxy/Rsitelibrary") + +} + +suppressWarnings(suppressPackageStartupMessages(library(RnBeads))) +suppressWarnings(suppressPackageStartupMessages(library(getopt))) + +#all.opts<-names(rnb.options()) +opt.class<-RnBeads:::OPTION.TYPES[-28] +all.opts<-names(opt.class) +#all.opts<-paste("--", all.opts, sep="") +#all.opts<-gsub("\\.([a-z])", "\\U\\1", all.opts, perl=TRUE) +all.opts<-gsub("\\.","-", all.opts) +#opt.class<-sapply(rnb.options(), class) + +rnb.opt.spec<-data.frame( + Long=all.opts, + Short=as.character(1:length(all.opts)), + Mask=c(1,2)[as.integer((opt.class=="logical"))+1], + Type=opt.class) + +### automated xml file preparation +xml.strings<-apply(rnb.opt.spec,1, function(row){ + + opt.lab<-gsub("-", ".", row[1]) + opt.def.val<-rnb.getOption(opt.lab) + opt.name<-gsub("-([0-9a-z])", "\\U\\1", row[1], perl=TRUE) + tf.opt<-"\t\t\t<option value=\"True\">True</option>\n\t\t\t<option value=\"False\">False</option>" + opt.lab<-paste(opt.lab, gsub("\\."," ", row[4]), sep=", ") + if(row[4]=="logical"){ + opt.type<-'select' + if(!is.null(opt.def.val) && opt.def.val) + opt.def.val<-"1" else + opt.def.val<-"0" + string<-sprintf("\t\t<param name=\"%s\" type=\"%s\" label=\"%s\" value=\"%s\">\n%s\n\t\t</param>\n", opt.name, opt.type, opt.lab, opt.def.val, tf.opt) + }else{ + opt.type<-'text' + if(!is.null(opt.def.val) && opt.def.val!="") + opt.def.val<-paste(opt.def.val, collapse=",") else + opt.def.val<-"" + string<-sprintf("\t\t<param name=\"%s\" type=\"%s\" label=\"%s\" value=\"%s\"/>\n", opt.name, opt.type, opt.lab, opt.def.val) + } + string + }) + +cat(xml.strings, sep="", file="automated.settings.xml.txt") + +opt.def.strings<-apply(rnb.opt.spec,1, function(row){ + + opt.name<-gsub("-([0-9a-z])", "\\U\\1", row[1], perl=TRUE) + opt.long<-row[1] + opt.short<-row[2] + + if(row[4]=="logical"){ + def.string<-sprintf("#if str( $options.%s ) == \"True\"\n\t--%s\n#end if\n", opt.name, opt.long) + }else{ + def.string<-sprintf("#if str( $options.%s ) != \"\"\n\t--%s=\"$options.%s\" \n#end if\n", opt.name, opt.long, opt.name) + } + def.string + + }) +cat(opt.def.strings, sep="", file="automated.option.assignments.txt") + + +rnb.opt.spec$Type<-gsub("\\.vector", "", rnb.opt.spec$Type) +rnb.opt.spec$Type<-gsub("numeric", "double", rnb.opt.spec$Type) +rnb.opt.spec<-rbind(data.frame( + Long=c("data-type", "pheno", "idat-dir","idat-files","bed-files", "gs-report", "geo-series", "betas", "pvals","output-file", "report-dir"), + Short=c("d","s","a","i","f","g","e","b","p","r","o"), + Mask=c(1,2,2,2,2,2,2,2,2,1,1), + Type=c("character","character","character","character","character","character","character","character","character","character", "character")), + rnb.opt.spec) + +opts<-getopt(as.matrix(rnb.opt.spec)) +#opts<-getopt(as.matrix(rnb.opt.spec), opt=list("--data-type=idats","--report-dir=dir", "--idats=file1\tfile2")) +print(opts) + +if(opts[["data-type"]]=="idatDir"){ + + data.source<-list() + data.type<-"idat.dir" + data.source[["idat.dir"]]<-opts[["idat-dir"]] + data.source[["sample.sheet"]]<-opts[["pheno"]] + +}else if(opts[["data-type"]]=="idatFiles"){ + + data.type<-"idat.dir" + file.string<-gsub(" ","", opts[["idat-files"]]) + files<-strsplit(file.string, ",")[[1]] + files<-files[files!=""] + bed.dir<-sprintf("%s_beds",opts[["report-dir"]]) + dir.create(bed.dir) + file.copy(files, bed.dir) + for(dat.file in list.files(bed.dir, full.names = TRUE)){ + file.rename(dat.file, gsub("\\.dat", ".bed", dat.file)) + } + data.source<-list() + data.source[["bed.dir"]]<-bed.dir + data.source[["sample.sheet"]]<-opts[["pheno"]] + + +}else if(opts[["data-type"]]=="GS.report"){ + + data.type<-"GS.report" + data.source<-opts[["gs-report"]] + +}else if(opts[["data-type"]]=="GEO"){ + + data.type<-"GEO" + data.source<-opts[["geo-series"]] + +}else if(opts[["data-type"]]=="data.files"){ + + data.type<-"GEO" + data.source<-opts[["geo-series"]] + +}else if(opts[["data-type"]]=="data.files"){ + + data.type<-"data.files" + data.source<-c(opts[["pheno"]], opts[["betas"]]) + if(!is.null(opts[["pvals"]])) + data.source<-c(data.source, opts[["pvals"]]) + +}else if(opts[["data-type"]]=="bed.dir"){ + + data.type<-"bed.dir" + file.string<-gsub(" ","", opts[["bed-files"]]) + files<-strsplit(file.string, ",")[[1]] + files<-files[files!=""] + bed.dir<-sprintf("%s_beds",opts[["report-dir"]]) + dir.create(bed.dir) + file.copy(files, bed.dir) + for(dat.file in list.files(bed.dir, full.names = TRUE)){ + file.rename(dat.file, gsub("\\.dat", ".bed", dat.file)) + } + data.source<-list() + data.source[["bed.dir"]]<-bed.dir + + logger.start(fname="NA") + sample.sheet<-rnb.read.annotation(opts[["pheno"]]) + logger.close() + if(length(files) < nrow(sample.sheet)) + stop("Not all bed files are present") + + cn<-colnames(sample.sheet) + dat.files<-sapply(strsplit(files, "\\/"), function(el) el[length(el)]) + sample.sheet<-cbind(sample.sheet, gsub("\\.dat", ".bed", dat.files)) + colnames(sample.sheet)<-c(cn, "BED_files") + data.source[["sample.sheet"]]<-sample.sheet +} + +if("logging" %in% names(opts)){ # TODO create a cleaner way of checking whether the full options set was supplied + + dump<-sapply(names(opt.class), function(on){ + getoptname<-gsub("-", "\\.","-",on) + if(getoptname %in% names(opts)){ + if(opt.class[on]=="logical"){ + ov<-TRUE + }else if(opt.class %in% c("character","character.vector")){ + ov<-opts[[getoptname]] + ov<-gsub("\"", "", ov) + if(opt.class=="character.vector"){ + ov<-as.character(strsplit(ov,",")) + } + + }else if(opt.class %in% c("integer","numeric","integer.vector","numeric.vector")){ + ov<-opts[[getoptname]] + ov<-gsub("\"", "", ov) + if(opt.class %in% c("integer.vector","numeric.vector")){ + ov<-as.character(strsplit(ov,",")) + } + } + eval(parse(text=sprintf("rnb.options(%s=ov)",on))) + } + }) + + logical.opts<-names(opt.class[opt.class=="logical"]) + logical.opts.false<-logical.opts[!logical.opts %in% gsub("-",".",names(opts))] + + + dump<-sapply(logical.opts.false, function(on){ + eval(parse(text=sprintf("rnb.options(%s=FALSE)",on))) + }) +} + +print(rnb.options()) + +#report.out.dir<-sprintf("%s_rnbReport", tempdir()) +report.out.dir<-opts[["report-dir"]] +print("Starting RnBeads with the following inputs:") +print(data.source) +print(report.out.dir) +print(data.type) +rnb.run.analysis(data.source=data.source, dir.report=report.out.dir, data.type=data.type) + + +#sink(file=NULL) +#flush(msg.file) +#close(msg.file) \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/install.rnbeads.R Fri Jul 05 17:23:02 2013 -0400 @@ -0,0 +1,1 @@ +source("http://rnbeads.mpi-inf.mpg.de/install.R") \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rnbeads.xml Fri Jul 05 17:23:02 2013 -0400 @@ -0,0 +1,506 @@ +<?xml version="0.9"?> +<tool id="rnbeads" name="RnBeads" version="0.9"> + <description>Performs RnBeads analysis for the selected set of </description> + <requirements> + <requirement type="set_environment" version="1.0">R_SCRIPTS_PATH</requirement> + <requirement type="package" version="3.0.0">R</requirement> + </requirements> + <command interpreter="bash">rnbeads_galaxy_wrapper.sh + --report-dir="$html_file.extra_files_path" + --output-file="$html_file" + #if str( $inputDataSelector.dataType ) == "idats" + --pheno="$inputDataSelector.sampleAnnotations" + #end if + #if str( $inputDataSelector.dataType ) != "idats" + #pass + #else if str( $inputDataSelector.idatSelector.idatSource ) == "history" + --data-type="idatFiles" + #set $idatList="" + #for $input_file in $inputDataSelector.idatSelector.idatSeries: + #set $idatList+=str( $input_file.idatFile ) + #set $idatList+="," + #end for + --idat-files="$idatList" + #else: + --data-type="idatDir" + --idat-dir="$inputDataSelector.idatSelector.idatRepo.fields.path" + #end if + #if str( $inputDataSelector.dataType ) == "gsreport" + --data-type="GS.report" + --gs-report="$inputDataSelector.gsReportFile" + #end if + #if str( $inputDataSelector.dataType ) == "geo" + --data-type="GEO" + --geo-series=$inputDataSelector.geoSeries + #end if + #if str( $inputDataSelector.dataType ) == "tables" + --data-type="data.files" + --pheno="$inputDataSelector.sampleAnnotations" + #end if + #if str( $inputDataSelector.dataType ) == "tables" + --data-type="data.files" + --pheno="$inputDataSelector.sampleAnnotations" + --betas="$inputDataSelector.betaTable" + --pvals="$inputDataSelector.pvalTable" + #end if + #if str( $inputDataSelector.dataType ) == "bed" + --data-type="bed.dir" + --pheno="$inputDataSelector.sampleAnnotations" + #set $bedList="" + #for $input_file in $inputDataSelector.bedSeries: + #set $bedList+=str( $input_file.bedFile ) + #set $bedList+="," + #end for + --bed-files="$bedList" + #end if + #if str( $options.optionSet ) == "full" + #if str( $options.analysisName ) != "" + --analysis-name="$options.analysisName" + #end if + #if str( $options.logging ) == "True" + --logging + #end if + #if str( $options.email ) != "" + --email="$options.email" + #end if + #if str( $options.assembly ) != "" + --assembly="$options.assembly" + #end if + #if str( $options.columnsPairing ) != "" + --columns-pairing="$options.columnsPairing" + #end if + #if str( $options.analyzeSites ) == "True" + --analyze-sites + #end if + #if str( $options.regionTypes ) != "" + --region-types="$options.regionTypes" + #end if + #if str( $options.identifiersColumn ) != "" + --identifiers-column="$options.identifiersColumn" + #end if + #if str( $options.pointsCategory ) != "" + --points-category="$options.pointsCategory" + #end if + #if str( $options.colorsCategory ) != "" + --colors-category="$options.colorsCategory" + #end if + #if str( $options.colorsGradient ) != "" + --colors-gradient="$options.colorsGradient" + #end if + #if str( $options.minGroupSize ) != "" + --min-group-size="$options.minGroupSize" + #end if + #if str( $options.maxGroupCount ) != "" + --max-group-count="$options.maxGroupCount" + #end if + #if str( $options.gzLargeFiles ) == "True" + --gz-large-files + #end if + #if str( $options.strandSpecific ) == "True" + --strand-specific + #end if + #if str( $options.replicateIdColumn ) != "" + --replicate-id-column="$options.replicateIdColumn" + #end if + #if str( $options.loadingNormalization ) == "True" + --loading-normalization + #end if + #if str( $options.loadingDefaultDataType ) != "" + --loading-default-data-type="$options.loadingDefaultDataType" + #end if + #if str( $options.loadingTableSeparator ) != "" + --loading-table-separator="$options.loadingTableSeparator" + #end if + #if str( $options.loadingBedStyle ) != "" + --loading-bed-style="$options.loadingBedStyle" + #end if + #if str( $options.loadingBedColumns ) != "" + --loading-bed-columns="$options.loadingBedColumns" + #end if + #if str( $options.loadingBedFrameShift ) != "" + --loading-bed-frame-shift="$options.loadingBedFrameShift" + #end if + #if str( $options.normalizationMethod ) != "" + --normalization-method="$options.normalizationMethod" + #end if + #if str( $options.normalizationBackgroundMethod ) != "" + --normalization-background-method="$options.normalizationBackgroundMethod" + #end if + #if str( $options.qc ) == "True" + --qc + #end if + #if str( $options.qcBoxplots ) == "True" + --qc-boxplots + #end if + #if str( $options.qcBarplots ) == "True" + --qc-barplots + #end if + #if str( $options.qcSnpHeatmap ) == "True" + --qc-snp-heatmap + #end if + #if str( $options.qcSnpHeatmap ) == "True" + --qc-snp-heatmap + #end if + #if str( $options.qcSnpBoxplot ) == "True" + --qc-snp-boxplot + #end if + #if str( $options.qcSnpBarplot ) == "True" + --qc-snp-barplot + #end if + #if str( $options.qcSampleBatchSize ) != "" + --qc-sample-batch-size="$options.qcSampleBatchSize" + #end if + #if str( $options.filteringContextRemoval ) != "" + --filtering-context-removal="$options.filteringContextRemoval" + #end if + #if str( $options.filteringSnp ) == "True" + --filtering-snp + #end if + #if str( $options.filteringSnpFrequency ) != "" + --filtering-snp-frequency="$options.filteringSnpFrequency" + #end if + #if str( $options.filteringSnpAccepted ) != "" + --filtering-snp-accepted="$options.filteringSnpAccepted" + #end if + #if str( $options.filteringSexChromosomesRemoval ) == "True" + --filtering-sex-chromosomes-removal + #end if + #if str( $options.filteringMissingValueQuantile ) != "" + --filtering-missing-value-quantile="$options.filteringMissingValueQuantile" + #end if + #if str( $options.filteringCoverageThreshold ) != "" + --filtering-coverage-threshold="$options.filteringCoverageThreshold" + #end if + #if str( $options.filteringLowCoverageMasking ) == "True" + --filtering-low-coverage-masking + #end if + #if str( $options.filteringHighCoverageOutliers ) == "True" + --filtering-high-coverage-outliers + #end if + #if str( $options.filteringGreedycut ) == "True" + --filtering-greedycut + #end if + #if str( $options.filteringGreedycutPvalueThreshold ) != "" + --filtering-greedycut-pvalue-threshold="$options.filteringGreedycutPvalueThreshold" + #end if + #if str( $options.filteringGreedycutRcTies ) != "" + --filtering-greedycut-rc-ties="$options.filteringGreedycutRcTies" + #end if + #if str( $options.filteringDeviationThreshold ) != "" + --filtering-deviation-threshold="$options.filteringDeviationThreshold" + #end if + #if str( $options.batch ) == "True" + --batch + #end if + #if str( $options.batchDreductionColumns ) != "" + --batch-dreduction-columns="$options.batchDreductionColumns" + #end if + #if str( $options.batchPrincipalComponents ) != "" + --batch-principal-components="$options.batchPrincipalComponents" + #end if + #if str( $options.batchCorrelationColumns ) != "" + --batch-correlation-columns="$options.batchCorrelationColumns" + #end if + #if str( $options.batchCorrelationPvalueThreshold ) != "" + --batch-correlation-pvalue-threshold="$options.batchCorrelationPvalueThreshold" + #end if + #if str( $options.batchCorrelationPermutations ) != "" + --batch-correlation-permutations="$options.batchCorrelationPermutations" + #end if + #if str( $options.batchCorrelationQc ) == "True" + --batch-correlation-qc + #end if + #if str( $options.profiles ) == "True" + --profiles + #end if + #if str( $options.profilesBetaDistribution ) == "True" + --profiles-beta-distribution + #end if + #if str( $options.profilesIntersample ) == "True" + --profiles-intersample + #end if + #if str( $options.profilesDeviationPlots ) == "True" + --profiles-deviation-plots + #end if + #if str( $options.profilesColumns ) != "" + --profiles-columns="$options.profilesColumns" + #end if + #if str( $options.profilesClustering ) == "True" + --profiles-clustering + #end if + #if str( $options.profilesClusteringTopProbes ) != "" + --profiles-clustering-top-probes="$options.profilesClusteringTopProbes" + #end if + #if str( $options.regionProfilesTypes ) != "" + --region-profiles-types="$options.regionProfilesTypes" + #end if + #if str( $options.differential ) == "True" + --differential + #end if + #if str( $options.differentialPermutations ) != "" + --differential-permutations="$options.differentialPermutations" + #end if + #if str( $options.differentialComparisonColumns ) != "" + --differential-comparison-columns="$options.differentialComparisonColumns" + #end if + #if str( $options.differentialComparisonColumnsAllPairwise ) != "" + --differential-comparison-columns-all-pairwise="$options.differentialComparisonColumnsAllPairwise" + #end if + #if str( $options.differentialEnrichment ) == "True" + --differential-enrichment + #end if + #if str( $options.exportToUcsc ) != "" + --export-to-ucsc="$options.exportToUcsc" + #end if + #if str( $options.exportToBed ) == "True" + --export-to-bed + #end if + #if str( $options.exportToCsv ) == "True" + --export-to-csv + #end if + #if str( $options.exportTypes ) != "" + --export-types="$options.exportTypes" + #end if + #if str( $options.colors3Gradient ) != "" + --colors-3-gradient="$options.colors3Gradient" + #end if + #if str( $options.loggingMemory ) == "True" + --logging-memory + #end if + #end if + </command> + <inputs> + <conditional name="inputDataSelector"> + <param name="dataType" type="select" label="Data Type"> + <option value="tables">Tabular data</option> + <option value="idats">IDAT files</option> + <option value="gsreport">GenomeStudio report</option> + <option value="geo">Gene Expression Omnibus series</option> + <option value="bed">BED files</option> + </param> + <when value="tables"> + <param name="sampleAnnotations" type="data" format="tabular" label="Sample Annotation File"/> + <param name="betaTable" type="data" format="tabular" label="Table with beta-values"/> + <param name="pvalTable" type="data" format="tabular" label="Table with detection p\-values"/> + </when> + <when value="idats"> + <param name="sampleAnnotations" type="data" format="tabular" label="Sample Annotation File"/> + <conditional name="idatSelector"> + <param name="idatSource" type="select" label="IDAT source"> + <option value="history">Select from history</option> + <option value="repo">Repository on the server</option> + </param> + <when value="repo"> + <param name="idatRepo" type="select" label="Select an IDAT repository"> + <options from_data_table="rnbeads_repos"> + <filter type="sort_by" column="2" /> + <validator type="no_options" message="No repositories are available" /> + </options> + </param> + </when> + <when value="history"> + <repeat min="1" name="idatSeries" title="Input IDAT file"> + <param name="idatFile" type="data" format="idat" label="IDAT file"/> + </repeat> + </when> + </conditional> + </when> + <when value="gsreport"> + <param name="gsReportFile" type="data" format="tabular" label="GenomeStudio report" /> + </when> + <when value="geo"> + <param name="geoSeries" type="text" label="GEO series" /> + </when> + <when value="bed"> + <param name="sampleAnnotations" type="data" format="tabular" label="Sample Annotation File" /> + <repeat min="1" name="bedSeries" title="Input BED file"> + <param name="bedFile" type="data" format="bed" label="BED file"/> + </repeat> + </when> + </conditional> + <conditional name="options"> + <param name="optionSet" type="select" label="Options Set"> + <option value="default">Default options</option> + <option value="full">Full option set</option> + </param> + <when value="default" /> + <when value="full"> + <param name="analysisName" type="text" label="analysis.name, character" value=""/> + <param name="logging" type="select" label="logging, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="email" type="text" label="email, character" value=""/> + <param name="assembly" type="text" label="assembly, character" value="hg19"/> + <param name="columnsPairing" type="text" label="columns.pairing, integer vector" value=""/> + <param name="analyzeSites" type="select" label="analyze.sites, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="regionTypes" type="text" label="region.types, character vector" value="tiling,genes,promoters,cpgislands"/> + <param name="identifiersColumn" type="text" label="identifiers.column, character" value=""/> + <param name="pointsCategory" type="text" label="points.category, integer vector" value="16,17,3,15,4,7,8"/> + <param name="colorsCategory" type="text" label="colors.category, character vector" value="#1B9E77,#D95F02,#7570B3,#E7298A,#66A61E,#E6AB02,#A6761D,#666666"/> + <param name="colorsGradient" type="text" label="colors.gradient, character vector" value="#132B43,#56B1F7"/> + <param name="minGroupSize" type="text" label="min.group.size, integer" value="2"/> + <param name="maxGroupCount" type="text" label="max.group.count, integer" value="8"/> + <param name="gzLargeFiles" type="select" label="gz.large.files, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="strandSpecific" type="select" label="strand.specific, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="replicateIdColumn" type="text" label="replicate.id.column, character" value=""/> + <param name="loadingNormalization" type="select" label="loading.normalization, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="loadingDefaultDataType" type="text" label="loading.default.data.type, character" value="idat.dir"/> + <param name="loadingTableSeparator" type="text" label="loading.table.separator, character" value=","/> + <param name="loadingBedStyle" type="text" label="loading.bed.style, character" value="BisSNP"/> + <param name="loadingBedColumns" type="text" label="loading.bed.columns, integer vector" value="1,2,3,6,4,5"/> + <param name="loadingBedFrameShift" type="text" label="loading.bed.frame.shift, integer" value="1"/> + <param name="normalizationMethod" type="text" label="normalization.method, character" value="swan"/> + <param name="normalizationBackgroundMethod" type="text" label="normalization.background.method, character" value="methylumi.noob"/> + <param name="qc" type="select" label="qc, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="qcBoxplots" type="select" label="qc.boxplots, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="qcBarplots" type="select" label="qc.barplots, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="qcSnpHeatmap" type="select" label="qc.snp.heatmap, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="qcSnpHeatmap" type="select" label="qc.snp.heatmap, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="qcSnpBoxplot" type="select" label="qc.snp.boxplot, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="qcSnpBarplot" type="select" label="qc.snp.barplot, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="qcSampleBatchSize" type="text" label="qc.sample.batch.size, integer" value="500"/> + <param name="filteringContextRemoval" type="text" label="filtering.context.removal, character vector" value="CC,CAG,CAH,CTG,CTH,Other"/> + <param name="filteringSnp" type="select" label="filtering.snp, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="filteringSnpFrequency" type="text" label="filtering.snp.frequency, double" value="0.01"/> + <param name="filteringSnpAccepted" type="text" label="filtering.snp.accepted, integer" value="2"/> + <param name="filteringSexChromosomesRemoval" type="select" label="filtering.sex.chromosomes.removal, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="filteringMissingValueQuantile" type="text" label="filtering.missing.value.quantile, double" value="1"/> + <param name="filteringCoverageThreshold" type="text" label="filtering.coverage.threshold, integer" value="5"/> + <param name="filteringLowCoverageMasking" type="select" label="filtering.low.coverage.masking, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="filteringHighCoverageOutliers" type="select" label="filtering.high.coverage.outliers, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="filteringGreedycut" type="select" label="filtering.greedycut, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="filteringGreedycutPvalueThreshold" type="text" label="filtering.greedycut.pvalue.threshold, double" value="0.05"/> + <param name="filteringGreedycutRcTies" type="text" label="filtering.greedycut.rc.ties, character" value="row"/> + <param name="filteringDeviationThreshold" type="text" label="filtering.deviation.threshold, double" value="0"/> + <param name="batch" type="select" label="batch, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="batchDreductionColumns" type="text" label="batch.dreduction.columns, integer vector" value=""/> + <param name="batchPrincipalComponents" type="text" label="batch.principal.components, integer" value="8"/> + <param name="batchCorrelationColumns" type="text" label="batch.correlation.columns, integer vector" value=""/> + <param name="batchCorrelationPvalueThreshold" type="text" label="batch.correlation.pvalue.threshold, double" value="0.01"/> + <param name="batchCorrelationPermutations" type="text" label="batch.correlation.permutations, integer" value="10000"/> + <param name="batchCorrelationQc" type="select" label="batch.correlation.qc, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="profiles" type="select" label="profiles, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="profilesBetaDistribution" type="select" label="profiles.beta.distribution, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="profilesIntersample" type="select" label="profiles.intersample, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="profilesDeviationPlots" type="select" label="profiles.deviation.plots, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="profilesColumns" type="text" label="profiles.columns, integer vector" value=""/> + <param name="profilesClustering" type="select" label="profiles.clustering, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="profilesClusteringTopProbes" type="text" label="profiles.clustering.top.probes, integer vector" value="1000"/> + <param name="regionProfilesTypes" type="text" label="region.profiles.types, character vector" value="genes,promoters,cpgislands"/> + <param name="differential" type="select" label="differential, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="differentialPermutations" type="text" label="differential.permutations, integer" value="0"/> + <param name="differentialComparisonColumns" type="text" label="differential.comparison.columns, integer vector" value=""/> + <param name="differentialComparisonColumnsAllPairwise" type="text" label="differential.comparison.columns.all.pairwise, integer vector" value=""/> + <param name="differentialEnrichment" type="select" label="differential.enrichment, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="exportToUcsc" type="text" label="export.to.ucsc, character vector" value="bigBed,bigWig"/> + <param name="exportToBed" type="select" label="export.to.bed, logical" value="1"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="exportToCsv" type="select" label="export.to.csv, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + <param name="exportTypes" type="text" label="export.types, character vector" value="sites"/> + <param name="colors3Gradient" type="text" label="colors.3.gradient, character vector" value="#832424,#FFFFFF,#3A3A98"/> + <param name="loggingMemory" type="select" label="logging.memory, logical" value="0"> + <option value="True">True</option> + <option value="False">False</option> + </param> + </when> + </conditional> + </inputs> + + <outputs> + <data format="html" name="html_file" label="index.html" /> + </outputs> + + <!-- + <tests> + <test> + <param name="input" value="fa_gc_content_input.fa"/> + <output name="out_file1" file="fa_gc_content_output.txt"/> + </test> + </tests> --> + + <help> + RnBeads is an R-package for comprehensive analysis of Illumina Infinium HumanMethylation450 BeadChip data. It extends previous approaches for this type of data analysis by high throughput capabilities, as well as presenting results in a comprehensive, highly interpretable fashion. + </help> + +</tool> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rnbeads_galaxy_wrapper.sh Fri Jul 05 17:23:02 2013 -0400 @@ -0,0 +1,27 @@ +#!/bin/bash +random_hash=`tr -dc "[:alpha:]" < /dev/urandom | head -c 8` +Rscript --no-save $(dirname $(readlink -f $0))/RnBeadsGalaxy.R $* > /tmp/rnbeads_${random_hash}.stdout 2>/tmp/rnbeads_${random_hash}.stderr +#Rscript --no-save \$R_SCRIPTS_PATH/RnBeadsGalaxy.R $* +outfile=`echo $* | cut -d\ -f2 | sed -e "s/--output-file=//g"` +echo $outfile +#outdir=`echo $* | sed -e "s/.*--report-dir=\(.*\)[[:blank:]].*/\1/g"` + + +errl=`cat /tmp/rnbeads_${random_hash}.stderr | grep -e "[E|e]rror" | wc -l` +if [ "$errl" -gt 0 ] +then + cat /tmp/rnbeads_${random_hash}.stdout >&2 + #cat $outdir/analysis.log >&2 + cat /tmp/rnbeads_${random_hash}.stderr >&2 + exit 3 +else + echo "<html><body>" >> $outfile + echo "<a href=\"index.html\">RnBeads report</a>" >> $outfile + echo "<br/><br/>Output was generated during the execution:<br/>" >> $outfile + echo "<pre>" >> outfile + cat /tmp/rnbeads_${random_hash}.stdout |sed -e "s/$/<br\/>/g" >> $outfile + echo "</pre>" >> outfile + echo "</p>" >> $outfile + echo "</body></html>" >> $outfile + exit 0 +fi \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rnbeads_repos.txt.sample Fri Jul 05 17:23:02 2013 -0400 @@ -0,0 +1,1 @@ +repo1 Repository1 /data/iscan/idats \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool_data_table_conf.xml.sample Fri Jul 05 17:23:02 2013 -0400 @@ -0,0 +1,6 @@ +<tables> + <table name="rnbeads_repos" comment_char="#"> + <columns>id, name, value</columns> + <file path="tool-data/rnbeads_repos.txt" /> + </table> +</tables> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool_dependencies.xml Fri Jul 05 17:23:02 2013 -0400 @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<tool_dependency> + <set_environment version="1.0"> + <environment_variable name="R_SCRIPTS_PATH" action="set_to">$REPOSITORY_INSTALL_DIR</environment_variable> + </set_environment> + <package name="R" version="3.0.0"> + <install version="1.0"> + <actions> + <action type="download_by_url">http://CRAN.R-project.org/src/base/R-3/R-3.0.0.tar.gz</action> + <action type="shell_command">./configure --prefix=$INSTALL_DIR --with-x=no</action> + <action type="shell_command">make</action> + <action type="set_environment"> + <environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/bin</environment_variable> + </action> + <action type="shell_command">R --no-save <<< "install.packages("getopt"); source('http://rnbeads.mpi-inf.mpg.de')"</action> + </actions> + </install> + <readme> + You need a FORTRAN compiler or perhaps f2c in addition to a C compiler to build R. + </readme> + </package> +</tool_dependency> \ No newline at end of file