# HG changeset patch
# User mingchen0919
# Date 1529504685 14400
# Node ID a1448d1f2ee4c8eb40bcc17f5675557a24d509e5
planemo upload
diff -r 000000000000 -r a1448d1f2ee4 1-index-genome.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/1-index-genome.sh Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,11 @@
+# create genome directory for genome indices.
+mkdir -p ${X_d}/genomeDir
+
+STAR \
+ --runMode genomeGenerate \
+ --genomeDir ${X_d}/genomeDir \
+ --genomeFastaFiles $( echo ${X_A} | sed 's/,/ /g' ) \
+ --sjdbGTFfile ${X_B} \
+ --sjdbOverhang ${X_C} \
+ > genome-indexing.log.txt 2>&1
+
\ No newline at end of file
diff -r 000000000000 -r a1448d1f2ee4 2-mapping.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/2-mapping.sh Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,6 @@
+STAR \
+ --genomeDir ${X_d}/genomeDir \
+ --readFilesIn \
+ ${X_F} \
+ ${X_R} \
+ > mapping.log.txt 2>&1
\ No newline at end of file
diff -r 000000000000 -r a1448d1f2ee4 3-sam2bam.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/3-sam2bam.sh Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,1 @@
+samtools sort -o Aligned.out.sorted.bam Aligned.out.sam
\ No newline at end of file
diff -r 000000000000 -r a1448d1f2ee4 4-flagstat.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/4-flagstat.sh Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,1 @@
+samtools flagstat Aligned.out.sorted.bam > flagstat.txt
\ No newline at end of file
diff -r 000000000000 -r a1448d1f2ee4 htseq_count.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/htseq_count.xml Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,59 @@
+
+ ultrafasta universal RNA-Seq aligner
+
+
+ pandocr-getoptr-rmarkdown
+
+
+
+
+
+
+
+
diff -r 000000000000 -r a1448d1f2ee4 run-star-jobs.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/run-star-jobs.sh Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,15 @@
+cd ${REPORT_FILES_PATH}
+
+# index genome
+grep -v None ${TOOL_INSTALL_DIR}/1-index-genome.sh > 1-index-genome.sh
+sh 1-index-genome.sh
+
+# mapping
+grep -v None ${TOOL_INSTALL_DIR}/1-mapping.sh > 1-mapping.sh
+sh 1-mapping.sh
+
+# convert sam to bam
+sh 3-sam2bam.sh
+
+# mapping evaluation
+sh 4-flagstat.sh
\ No newline at end of file
diff -r 000000000000 -r a1448d1f2ee4 star.Rmd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/star.Rmd Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,108 @@
+---
+title: 'Aurora Tool Report'
+output:
+ html_document:
+ highlight: pygments
+---
+
+```{r setup, include=FALSE, warning=FALSE, message=FALSE}
+knitr::opts_chunk$set(error = TRUE, echo = FALSE)
+```
+
+```{css echo=FALSE}
+# code chunks scrollable
+pre code, pre, code {
+ white-space: pre !important;
+ overflow-x: scroll !important;
+ word-break: keep-all !important;
+ word-wrap: initial !important;
+}
+```
+
+
+```{r, echo=FALSE}
+# to make the css theme to work, tags cannot be added directly
+# as tags as below.
+# it has to be added using a code chunk with the htmltool functions!!!
+css_link = tags$link()
+css_link$attribs = list(rel="stylesheet", href="vakata-jstree-3.3.5/dist/themes/default/style.min.css")
+css_link
+```
+
+```{r, eval=FALSE, echo=FALSE}
+# this code chunk is purely for adding comments
+# below is to add jQuery and jstree javascripts
+```
+
+
+
+---
+# javascript code below is to build the file tree interface
+# see this for how to implement opening hyperlink: https://stackoverflow.com/questions/18611317/how-to-get-i-get-leaf-nodes-in-jstree-to-open-their-hyperlink-when-clicked-when
+---
+
+
+---
+# ADD YOUR DATA ANALYSIS CODE AND MARKUP TEXT BELOW TO EXTEND THIS R MARKDOWN FILE
+---
+
+
+
+## Job scripts
+
+```{bash, echo=FALSE}
+sh ${TOOL_INSTALL_DIR}/run-star-jobs.sh
+```
+
+### Index genome
+
+```{r echo=FALSE,results='asis'}
+# display content of the job-script.sh file.
+cat('```bash\n')
+cat(readLines(paste0(Sys.getenv('REPORT_FILES_PATH'), '/1-index-genome.sh')), sep = '\n')
+cat('\n```')
+```
+
+### Mapping
+
+```{r echo=FALSE,results='asis'}
+# display content of the job-script.sh file.
+cat('```bash\n')
+cat(readLines(paste0(Sys.getenv('REPORT_FILES_PATH'), '/2-mapping.sh')), sep = '\n')
+cat('\n```')
+```
+
+### SAM to sorted BAM
+
+```{r echo=FALSE,warning=FALSE,results='asis'}
+# display content of the job-script.sh file.
+cat('```bash\n')
+cat(readLines(paste0(Sys.getenv('REPORT_FILES_PATH'), '/3-sam2bam.sh')), sep = '\n')
+cat('\n```')
+```
+
+### Mapping evaluation
+
+```{r echo=FALSE,warning=FALSE,results='asis'}
+# display content of the job-script.sh file.
+cat('```bash\n')
+cat(readLines(paste0(Sys.getenv('REPORT_FILES_PATH'), '/4-flagstat.sh')), sep = '\n')
+cat('\n```')
+```
+
+
+### Mapping evaluation results
+
+```{r echo=FALSE,warning=FALSE,results='asis'}
+# display content of the job-script.sh file.
+cat('```bash\n')
+cat(readLines(paste0(Sys.getenv('REPORT_FILES_PATH'), '/5-flagstat.txt')), sep = '\n')
+cat('\n```')
+```
\ No newline at end of file
diff -r 000000000000 -r a1448d1f2ee4 star.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/star.xml Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,61 @@
+
+ ultrafast universal RNA-Seq aligner
+
+
+ pandocr-getoptr-rmarkdownstarsamtools
+
+
+
+
+
+
+
+
diff -r 000000000000 -r a1448d1f2ee4 star_galaxy_outputs.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/star_galaxy_outputs.sh Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,15 @@
+# change directory to tool outputs directory
+cd ${REPORT_FILES_PATH}
+
+# copy outputs from tool outputs directory to corresponding galaxy output path
+if [ -e "rmarkdown_report.html" ]; then
+ cp rmarkdown_report.html ${REPORT}
+fi
+
+if [ -e "index.html" ]; then
+ cp index.html ${REPORT}
+fi
+
+if [ -e "Aligned.out.sorted.bam" ]; then
+ cp index.html ${REPORT}
+fi
\ No newline at end of file
diff -r 000000000000 -r a1448d1f2ee4 star_getopt.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/star_getopt.csv Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,9 @@
+short flag,argument mask,data type,variable name
+o,1,character,report
+d,1,character,report.files_path
+A,1,character,genomeFastaFiles
+B,1,character,sjdbGTFfile
+C,1,character,sjdbOverhang
+F,1,character,first_reads
+R,1,character,second_reads
+S,1,character,sorted_bam
diff -r 000000000000 -r a1448d1f2ee4 star_render.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/star_render.R Wed Jun 20 10:24:45 2018 -0400
@@ -0,0 +1,159 @@
+##============ Sink warnings and errors to a file ==============
+## use the sink() function to wrap all code within it.
+##==============================================================
+zz = file(paste0(Sys.getenv('REPORT_FILES_PATH'), '/rmarkdown_rendering.log.txt'))
+sink(zz)
+sink(zz, type = 'message')
+
+#============== preparation ====================================
+# import libraries
+#------------------------------------------------------------------
+# ADD MORE LIBRARIES HERE IF YOUR TOOL DEPENDS ON OTHER R LIBRARIES
+#------------------------------------------------------------------
+library('getopt')
+library('rmarkdown')
+library('htmltools')
+#------------------------------------------------------------------
+options(stringsAsFactors = FALSE)
+
+
+# define two helper functions
+#-----: helper function 1
+#' \code{getopt_specification_matrix} returns a getopt specification matrix.
+#'
+#' @param specification_file a cvs file within the \code{galaxy_tool_directory} which stores getopt specification matrix data.
+#' The first column are short flags, the second column are argument masks, the third column
+#' is data types. The fourth column are variable names used in the tool XML. These three columns are required.
+#' @param gtg_name the name of a running GTG.
+getopt_specification_matrix = function(specification_file,
+ gtg_name = 'gtg',
+ tool_dir = Sys.getenv('TOOL_INSTALL_DIR')) {
+ df = read.csv(
+ paste0(tool_dir, '/', specification_file),
+ header = TRUE,
+ stringsAsFactors = FALSE
+ )
+ # check if there are duplicated short flags
+ short_flags = df[, 1]
+ if (length(unique(short_flags)) < length(short_flags)) {
+ cat('----Duplicated short flags found ----\n')
+ cat('short flags: ', df[, 1][duplicated(df[, 1])], '\n')
+ stop('Duplicated short flags are not allowed.')
+ }
+
+ # use short flags to generate long flags
+ long_flags = paste0('X_', df[, 1])
+
+ # specification matrix
+ df2 = data.frame(
+ long_flags = long_flags,
+ short_flags = df[, 1],
+ argument_mask = df[, 2],
+ data_type = df[, 3]
+ )
+
+ as.matrix(df2)
+}
+
+#-----: helper function 2
+#' \code{file_tree} generate file tree of a directory in the format of HTML lists.
+#'
+#' @param dir the path to the directory for generating the file tree.
+#' @param output_dir the REPORT_FILES_PATH folder name, which has the name style: dataset_NUMBER_files.
+# define a recursive function to build html string of the file tree
+file_tree = function(dir = '.') {
+ # get the OUTPUT_DIR folder data: dataset_NUMBER_files
+ report_files_path = Sys.getenv('REPORT_FILES_PATH')
+ output_dir = tail(strsplit(report_files_path, '/')[[1]], 1)
+
+ files = list.files(path = dir,
+ recursive = FALSE,
+ full.names = TRUE)
+ # files also include directorys, need to remove directorys
+ files = files[!dir.exists(files)]
+ dirs = list.dirs(path = dir,
+ recursive = FALSE,
+ full.names = TRUE)
+ tags$ul({
+ if (length(files) > 0) {
+ lapply(files, function(x) {
+ path_end = tail(strsplit(x, '/')[[1]], 1)
+ href_path = strsplit(x, paste0(output_dir, '/'))[[1]][2]
+ li_item = tags$li(tags$a(path_end, href = href_path))
+ li_item$attribs = list('data-jstree' = '{"icon":"jstree-file"}')
+ li_item
+ })
+ }
+ },
+ {
+ if (length(dirs) > 0) {
+ lapply(dirs, function(x) {
+ path_end = tail(strsplit(x, '/')[[1]], 1)
+ # hide vakata-jstree-3.3.5 folder
+ if (!(path_end %in% c('vakata-jstree-3.3.5', 'rmarkdown_report_files', 'site_libs'))) {
+ # x_path = strsplit(x, paste0(output_dir, '/'))[[1]][2]
+ li_item = tags$li(path_end, file_tree(x))
+ li_item$attribs = list('data-jstree' = '{"icon":"jstree-folder"}')
+ li_item
+ }
+ })
+ }
+ })
+}
+#----------------- end of help functions -------------------------
+
+
+# import getopt specification matrix from a csv file
+opt = getopt(getopt_specification_matrix('star_getopt.csv',
+ tool_dir = Sys.getenv('TOOL_INSTALL_DIR')))
+# define environment variables for all input values. this is useful when we
+# want to use input values by other programming language in r markdown
+do.call(Sys.setenv, opt[-1])
+# add current job working directory
+Sys.setenv(JOB_WORKING_DIR=getwd())
+#===============================================================
+
+
+#======================== render Rmd files =========================
+# copy jstree javascript library to tool output directory
+file.copy(
+ from = paste0(Sys.getenv('TOOL_INSTALL_DIR'), '/vakata-jstree-3.3.5'),
+ to = Sys.getenv('REPORT_FILES_PATH'),
+ recursive = TRUE
+)
+
+# if '_site.yml' file exists, this tool is assumed to render a website.
+# otherwise, it renders a single html.
+if (file.exists(paste0(Sys.getenv('TOOL_INSTALL_DIR'), '/_site.yml'))) {
+ # render a website
+ system(command = 'cp -r ${TOOL_INSTALL_DIR}/*.Rmd ${REPORT_FILES_PATH}')
+ system(command = 'cp -r ${TOOL_INSTALL_DIR}/_site.yml ${REPORT_FILES_PATH}')
+ render_site(input = Sys.getenv('REPORT_FILES_PATH'))
+} else {
+ # render a single html
+ system(command = 'cp -r ${TOOL_INSTALL_DIR}/star.Rmd ${REPORT_FILES_PATH}')
+ # add a few lines to 'star.Rmd' to generate file tree outputs
+ jstree_lines = '
+## Outputs
+
+```{r, echo=FALSE}
+tags$div(id="jstree", file_tree(Sys.getenv(\'REPORT_FILES_PATH\')))
+```'
+ write(
+ x = jstree_lines,
+ append = TRUE,
+ file = paste0(Sys.getenv('REPORT_FILES_PATH'), '/star.Rmd')
+ )
+ render(input = paste0(Sys.getenv('REPORT_FILES_PATH'), '/star.Rmd'))
+}
+#===============================================================
+
+
+#============== expose outputs to galaxy history ===============
+system(command = 'sh ${TOOL_INSTALL_DIR}/star_galaxy_outputs.sh')
+#===============================================================
+
+
+##--------end of code rendering .Rmd templates----------------
+sink()
+##=========== End of sinking output=============================
diff -r 000000000000 -r a1448d1f2ee4 vakata-jstree-3.3.5.zip
Binary file vakata-jstree-3.3.5.zip has changed