diff elastic_tool.Rmd @ 9:06f38d3febdc draft default tip

planemo upload
author mingchen0919
date Wed, 28 Mar 2018 23:34:03 -0400
parents ea3271940757
children
line wrap: on
line diff
--- a/elastic_tool.Rmd	Tue Mar 27 23:42:53 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
----
-title: 'Tool Report'
-output: html_document
----
-
-<style>
-pre code, pre, code {
-  white-space: pre !important;
-  overflow-x: scroll !important;
-  word-break: keep-all !important;
-  word-wrap: initial !important;
-}
-</style>
-
-```{r setup, include=FALSE, warning=FALSE, message=FALSE}
-knitr::opts_chunk$set(error = TRUE)
-```
-
-## User input
-
-```{r, 'display user input'}
-# get user input and save it into a data frame.
-df = read.table(paste0(Sys.getenv('REPORT_FILES_PATH'), '/options_and_arguments.txt'), 
-                sep = '|', header = TRUE)
-
-# if the input type is 'path_relative_to_a_tool', prepend A_TOOL_OUTPUT_PATH to the value to make
-# the value a full path.
-if (nrow(df[df$type == 'path_relative_to_a_tool', ]) > 0) {
-  for (i in 1:nrow(df[df$type == 'path_relative_to_a_tool', ])) {
-    root_path = readLines(df[df$type == 'path_relative_to_a_tool', ][i, 'path_type'])[1]
-    df[df$type == 'path_relative_to_a_tool', ][i, 'value'] = paste(root_path, 
-                                                                   df[df$type == 'path_relative_to_a_tool', ][i, 'value'], 
-                                                                   sep = '/')
-  }
-}
-
-## display user input as a table
-knitr::kable(df)
-```
-
-
-```{r, 'build script', echo=FALSE}
-##-------- build script files -----------
-
-# get tool name, the first line of the script is always the tool name.
-tool_name = df[df$type == 'tool_name', 'value']
-
-# if the number of option/argument pairs is larger than 0, build script file
-df2 = df[df$type != 'tool_name', ]
-if (nrow(df2) > 0) {
-  # write tool name as the first line of the script.sh
-  # before running the job, cd into the ${REPORT_FILES_PATH} directory
-  write(paste0(tool_name, ' \\'), 
-        paste0(Sys.getenv('REPORT_FILES_PATH'), '/script.sh'))
-  df2 = df[df$type != 'tool_name', ]
-  write(paste(' ', df2$flag, df2$value, '\\', sep = ' '), 
-        file = paste0(Sys.getenv('REPORT_FILES_PATH'), '/script.sh'), 
-        append = TRUE )
-  # remember that after writing option/argument lines to the script.sh, the last line
-  # has an extra newline character '\' which causes a problem. We can either remove that extra
-  # '\' or add a new line to the end. We choose to add a new line.
-  
-  # add an extra line to the end to redirect stdout to stdout.txt and stderr to stderr.txt
-  write('  > ${REPORT_FILES_PATH}/stdout.txt 2>${REPORT_FILES_PATH}/stderr.txt', 
-        paste0(Sys.getenv('REPORT_FILES_PATH'), '/script.sh'), append = TRUE)
-} else {
-  # if no option/argument input, simply display the help message
-  write(paste0(tool_name, ' -h'), 
-        file = paste0(Sys.getenv('REPORT_FILES_PATH'), '/script.sh'))
-}
-```
-
-
-```{r, 'create paths if they do not exist', echo=FALSE}
-## if the input type is 'path_relative_to_this_tool', that means 
-## we need to create a directory or file path.
-
-# create paths before running the job script
-df_paths = df[df$type == 'path_relative_to_this_tool', ]
-
-if (nrow(df_paths) > 0) {
-  for (i in 1:nrow(df_paths)) {
-    path = paste0(Sys.getenv('REPORT_FILES_PATH'), '/', df_paths[i, 'value'])
-    path_type = df_paths[i, 'path_type']
-  
-    # create file paths
-    if ((path_type == 'file_path') & !file.exists(path)) {
-      dir_path = paste(head(strsplit(path, '/')[[1]], -1), collapse = '/' )
-      if (!dir.exists(dir_path)) {
-        dir.create(dir_path, recursive = TRUE)
-      }
-      file.create(path)
-    }
-    
-    # create dir paths
-    if ((path_type == 'dir_path') & !dir.exists(path)) {
-      dir.create(path, recursive = TRUE)
-    }
-  }
-}
-```
-
-
-```{bash, 'run jobs', echo=FALSE}
-# run job script, always use absolute path. 
-# we want to run all jobs within the working path.
-sh ${REPORT_FILES_PATH}/script.sh
-```
-
-
-```{bash, 'display script', results='asis', echo=FALSE}
-echo '## Job script'
-echo ''
-echo ''
-echo '```bash'
-cat ${REPORT_FILES_PATH}/script.sh
-echo '```'
-```
-
-
-```{r, 'display output directory contents', results='asis', echo=FALSE}
-## after the job is done, we list all files from the output directory.
-## full relative path to the output directory needs to be displayed.
-
-cat('##All output files')
-cat('\n\n')
-all_files = list.files(path = Sys.getenv('REPORT_FILES_PATH'), 
-                       full.names = TRUE, 
-                       recursive = TRUE)
-
-for (f in sub(Sys.getenv('REPORT_FILES_PATH'), '.', all_files) ) {
-  cat('* [', f, '](', f, ')\n')
-}
-cat('\n')
-```
-
-
-```{r, 'save output directory of this tool', echo=FALSE}
-## each elastic tool has a galaxy history output which contains the REPORT_FILES_PATH of this tool
-## so that other tools can reference the outputs from this tool.
-
-## obtain REPORT_FILES_PAHT and save it to a galaxy output.
-database_root = paste(head(strsplit(Sys.getenv('TOOL_LOG'), '/')[[1]], -1), collapse = '/')
-tool_output_dir_id = tail(strsplit(Sys.getenv('REPORT_FILES_PATH'), '/')[[1]], 1)
-tool_output_dir = paste0(database_root, '/', tool_output_dir_id)
-write(tool_output_dir, Sys.getenv('TOOL_OUTPUT_DIR'))
-```