Mercurial > repos > mingchen0919 > rmarkdown_collection_builder
changeset 50:3a2154271930 draft
planemo upload for repository https://github.com/statonlab/docker-GRReport/tree/master/my_tools/rmarkdown_collection_builder commit b33359f9f0ca5bb3227050b4b586a9969c7e20ad-dirty
author | mingchen0919 |
---|---|
date | Tue, 26 Sep 2017 13:25:07 -0400 |
parents | 7a65e6827c25 |
children | 2556fed6c3c7 |
files | collection_paired.Rmd collection_paired.xml collection_paired_render.R |
diffstat | 3 files changed, 0 insertions(+), 169 deletions(-) [+] |
line wrap: on
line diff
--- a/collection_paired.Rmd Tue Sep 26 13:12:19 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ ---- -title: 'Build collection: a paired datasets' -output: - html_document: - number_sections: true - toc: true - theme: cosmo - highlight: tango ---- - -```{r setup, include=FALSE, warning=FALSE, message=FALSE} -knitr::opts_chunk$set( - echo = ECHO -) -``` - -# Command line arguments - -```{r 'command line arguments'} -str(opt) -``` - -# Rename files - -```{r} -file.copy("FORWARD_INPUT", './OUTPUT_DIR/forward.FORMAT') -file.copy("REVERSE_INPUT", './OUTPUT_DIR/reverse.FORMAT') -``` -
--- a/collection_paired.xml Tue Sep 26 13:12:19 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -<tool id="rmarkdown_collection_paired" name="Collection type (paired)" version="1.0.0"> - <requirements> - <requirement type="package" version="1.15.0.6-0">pandoc</requirement> - <requirement type="package" version="1.20.0">r-getopt</requirement> - <requirement type="package" version="1.2">r-rmarkdown</requirement> - <requirement type="package" version="0.3.5">r-htmltools</requirement> - <requirement type="package" version="0.5.0">r-dplyr</requirement> - </requirements> - <description> - Create a paired dataset collection from files in history. - </description> - <stdio> - <regex match="Execution halted" - source="both" - level="fatal" - description="Execution halted." /> - <regex match="Error in" - source="both" - level="fatal" - description="An undefined error occured, please check your intput carefully and contact your administrator." /> - <regex match="Fatal error" - source="both" - level="fatal" - description="An undefined error occured, please check your intput carefully and contact your administrator." /> - </stdio> - <command> - <![CDATA[ - Rscript '${__tool_directory__}/collection_paired_render.R' - -L $forward_input - -R $reverse_input - -e $echo - -f $format - - -r $report - -d $report.files_path - - -t '${__tool_directory__}/collection_paired.Rmd' - ]]> - </command> - <inputs> - <param type="data" name="forward_input" multiple="false" label="forward input"/> - <param type="data" name="reverse_input" multiple="false" label="reverse input"/> - <param type="text" name="format" label="the format (extension) of input files (e.g., fastq, fastqsanger, fasta)"/> - - <param type="boolean" name="echo" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Display analysis code in report?" /> - </inputs> - <outputs> - <data format="html" name="report" label="Collection builder (paired collection)" /> - <collection type="paired" name="list_collection"> - </collection> - </outputs> -</tool> \ No newline at end of file
--- a/collection_paired_render.R Tue Sep 26 13:12:19 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -##======= Handle arguments from command line ======== -# setup R error handline to go to stderr -options(show.error.messages=FALSE, - error=function(){ - cat(geterrmessage(), file=stderr()) - quit("no", 1, F) - }) - -# we need that to not crash galaxy with an UTF8 error on German LC settings. -loc = Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") - -# suppress warning -options(warn = -1) - -options(stringsAsFactors=FALSE, useFancyQuotes=FALSE) -args = commandArgs(trailingOnly=TRUE) - -suppressPackageStartupMessages({ - library(getopt) - library(tools) -}) - -# column 1: the long flag name -# column 2: the short flag alias. A SINGLE character string -# column 3: argument mask -# 0: no argument -# 1: argument required -# 2: argument is optional -# column 4: date type to which the flag's argument shall be cast. -# possible values: logical, integer, double, complex, character. -##------- 1. input data --------------------- -spec_list=list() -spec_list$FORWARD_INPUT = c('forward_input', 'L', '1', 'character') -spec_list$REVERSE_INPUT = c('reverse_input', 'R', '1', 'character') -spec_list$ECHO = c('echo', 'e', '1', 'character') -spec_list$FORMAT = c('format', 'f', '1', 'character') -##--------2. output report and outputs -------------- -spec_list$OUTPUT_HTML = c('paired_collection_html', 'r', '1', 'character') -spec_list$OUTPUT_DIR = c('paired_collection_dir', 'd', '1', 'character') -##--------3. Rmd templates in the tool directory ---------- -spec_list$PAIRED_COLLECTION_RMD = c('paired_collection_rmd', 't', '1', 'character') - -spec = t(as.data.frame(spec_list)) -opt = getopt(spec) -##====== End of arguments handling ========== - -#------ Load libraries --------- -library(rmarkdown) -library(htmltools) -library(dplyr) - -#----- 1. create the report directory ------------------------ -system(paste0('mkdir -p ', opt$paired_collection_dir)) - -#----- 2. generate Rmd files with Rmd templates -------------- -# a. templates without placeholder variables: -# copy templates from tool directory to the working directory. -# b. templates with placeholder variables: -# substitute variables with user input values and place them in the working directory. - -#----- 01 paired_collection.Rmd ----------------------- -readLines(opt$paired_collection_rmd) %>% - (function(x) { - gsub('ECHO', opt$echo, x) - }) %>% - (function(x) { - gsub('FORMAT', opt$format, x) - }) %>% - (function(x) { - gsub('FORWARD_INPUT', opt$forward_input, x) - }) %>% - (function(x) { - gsub('REVERSE_INPUT', opt$reverse_input, x) - }) %>% - (function(x) { - gsub('OUTPUT_DIR', opt$paired_collection_dir, x) - }) %>% - (function(x) { - fileConn = file('paired_collection.Rmd') - writeLines(x, con=fileConn) - close(fileConn) - }) - -#------ 3. render all Rmd files -------- -render('paired_collection.Rmd', output_file = opt$paired_collection_html) - - -#-------4. manipulate outputs -----------------------------