changeset 1:e969699f49b6 draft

working version
author mingchen0919
date Fri, 02 Mar 2018 09:59:25 -0500
parents 746b9263ec64
children d9601e1eb360
files skewer.Rmd skewer.sh skewer.xml skewer_render.R
diffstat 4 files changed, 145 insertions(+), 54 deletions(-) [+]
line wrap: on
line diff
--- a/skewer.Rmd	Thu Mar 01 14:25:15 2018 -0500
+++ b/skewer.Rmd	Fri Mar 02 09:59:25 2018 -0500
@@ -1,29 +1,56 @@
 ---
-title: 'HTML report title'
-output:
-    html_document:
-      number_sections: true
-      toc: true
-      theme: cosmo
-      highlight: tango
+title: 'Skewer Trimming'
+output: html_document
 ---
 
 ```{r setup, include=FALSE, warning=FALSE, message=FALSE}
 knitr::opts_chunk$set(
-  echo = as.logical(), 
+  echo = as.logical(opt$X_e), 
   error = TRUE
 )
 ```
 
 
-# Code for computational analysis
+# Run Skewer
 
-```{r 'step 1'}
+```{bash}
+cd ${X_d}
 
-```
+cat >temp.sh <<EOL
+skewer \\
+  -q ${X_A} \\
+  -Q ${X_B} \\
+  -x ${X_x} \\
+  -y ${X_y} \\
+  ${X_X} \\
+  ${X_Y} \\
+  -o ${X_d}/trim > /dev/null 2>&1
+EOL
 
-```{r 'ste[ 2'}
+grep -v None temp.sh > skewer-job.sh
 
+# run skewer
+sh skewer-job.sh
+
+cp trim-trimmed-pair1.fastq ${X_f}
+cp trim-trimmed-pair2.fastq ${X_r}
+mv trim-trimmed.log trim-trimmed.txt
 ```
 
 
+```{r}
+# display skewer job script
+skewer_sh = paste0(opt$X_d, '/skewer-job.sh')
+tags$code(tags$pre(readChar(skewer_sh, file.info(skewer_sh)$size )))
+```
+
+# Results
+
+```{r}
+tags$ul(
+  tags$li(tags$a(href = 'trim-trimmed.txt', 'trim-trimmed.log')),
+  tags$li(tags$a(href = 'trim-trimmed-pair1.fastq', 'trim-trimmed-pair1.fastq')),
+  tags$li(tags$a(href = 'trim-trimmed-pair2.fastq', 'trim-trimmed-pair2.fastq'))
+)
+```
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/skewer.sh	Fri Mar 02 09:59:25 2018 -0500
@@ -0,0 +1,17 @@
+Rscript '${__tool_directory__}/skewer_render.R'
+
+    -e $echo
+    -o $report
+    -d $report.files_path
+    -s $sink_message
+    -t '${__tool_directory__}'
+    
+    -X $first_reads
+    -Y $second_reads
+    -x $adapter_x
+    -y $adapter_y
+    -A $end_quality
+    -B $mean_quality
+    
+    -f $trimmed_r1
+    -r $trimmed_r2
--- a/skewer.xml	Thu Mar 01 14:25:15 2018 -0500
+++ b/skewer.xml	Fri Mar 02 09:59:25 2018 -0500
@@ -1,29 +1,58 @@
 <tool id="aurora_skewer" name="Aurora Skewer" version="1.0.0">
-  <description>A fast and accurate adapter trimmer for next-generation sequencing paired-end reads&#xD;
+    <description>A fast and accurate adapter trimmer for next-generation sequencing paired-end reads&#xD;
     </description>
-  <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.6">r-rmarkdown</requirement><requirement type="package" version="0.2.2">skewer</requirement></requirements>
-  <stdio>
-        <regex match="XXX" source="stderr" level="warning" description="Check the warnings_and_errors.txt file for more details."/></stdio>
-  <command><![CDATA[
-        
-
-        Rscript '${__tool_directory__}/rmarkdown_site_render.R'
+    <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.6">r-rmarkdown</requirement>
+        <requirement type="package" version="0.2.2">skewer</requirement>
+    </requirements>
+    <stdio>
+        <regex match="XXX" source="stderr" level="warning"
+               description="Check the warnings_and_errors.txt file for more details."/>
+    </stdio>
+    <command><![CDATA[Rscript '${__tool_directory__}/skewer_render.R'
 
-			-e $echo
-			-o $report
-			-d $report.files_path
-			-s $sink_message
-			-t '${__tool_directory__}'
-
-
-        
-    ]]></command>
-  <inputs>
-        <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="tool site"/><data format="txt" name="sink_message" label="Warnings and Errors" from_work_dir="warnings_and_errors.txt"/></outputs>
-  <citations>
+    -e $echo
+    -o $report
+    -d $report.files_path
+    -s $sink_message
+    -t '${__tool_directory__}'
+    
+    -X $first_reads
+    -Y $second_reads
+    -x $adapter_x
+    -y $adapter_y
+    -A $end_quality
+    -B $mean_quality
+    
+    -f $trimmed_r1
+    -r $trimmed_r2
+]]></command>
+    <inputs>
+        <param type="data" name="first_reads" label="First reads file" optional="False" format="fastq,fastqsanger"/>
+        <param type="data" name="second_reads" label="Second reads" optional="False" format="fastq,fastqsanger"/>
+        <param type="data" name="adapter_x" argument="-x" label="Adapter sequence file for the first reads"
+               optional="True" format="fasta,fa"/>
+        <param type="data" name="adapter_y" argument="-y" label="Adapter sequence file for the second reads"
+               optional="True" format="fasta,fa"/>
+        <param type="integer" name="end_quality" argument="-q" label="3&#x2019; end quality trimming"
+               help="Trim 3&#x2019; end until specified or higher quality reached. The default value is 0."
+               optional="False" value="0"/>
+        <param type="integer" name="mean_quality" argument="-Q" label="Reads filtering by average quality"
+               help="Specifies the lowest mean quality value allowed before trimming. The default value is 0."
+               optional="False" value="0"/>
+        <param type="boolean" name="echo" truevalue="TRUE" falsevalue="FALSE" checked="false"
+               label="Display analysis code in report?"/>
+    </inputs>
+    <outputs>
+        <data name="report" format="html" label="Skewer trimmed" hidden="false"/>
+        <data format="txt" name="sink_message" label="Warnings and Errors" from_work_dir="warnings_and_errors.txt"/>
+        <data name="trimmed_r1" format="fastq" label="${tool.name} trimmed first reads on ${on_string}" hidden="false"/>
+        <data name="trimmed_r2" format="fastq" label="${tool.name} trimmed second reads on ${on_string}"
+              hidden="false"/>
+    </outputs>
+    <citations>
         <citation type="bibtex"><![CDATA[
             @article{allaire2016rmarkdown,
             title={rmarkdown: Dynamic Documents for R, 2016},
@@ -33,7 +62,8 @@
             volume={6},
             year={2016}
             }
-        ]]></citation><citation type="bibtex"><![CDATA[
+        ]]></citation>
+        <citation type="bibtex"><![CDATA[
             @book{xie2015dynamic,
             title={Dynamic Documents with R and knitr},
             author={Xie, Yihui},
@@ -41,14 +71,16 @@
             year={2015},
             publisher={CRC Press}
             }
-        ]]></citation><citation type="bibtex"><![CDATA[@article{jiang2014skewer,
-  title={Skewer: a fast and accurate adapter trimmer for next-generation sequencing paired-end reads},
-  author={Jiang, Hongshan and Lei, Rong and Ding, Shou-Wei and Zhu, Shuifang},
-  journal={BMC bioinformatics},
-  volume={15},
-  number={1},
-  pages={182},
-  year={2014},
-  publisher={BioMed Central}
-}]]></citation></citations>
+        ]]></citation>
+        <citation type="bibtex"><![CDATA[@article{jiang2014skewer,
+  title={Skewer: a fast and accurate adapter trimmer for next-generation sequencing paired-end reads},
+  author={Jiang, Hongshan and Lei, Rong and Ding, Shou-Wei and Zhu, Shuifang},
+  journal={BMC bioinformatics},
+  volume={15},
+  number={1},
+  pages={182},
+  year={2014},
+  publisher={BioMed Central}
+}]]></citation>
+    </citations>
 </tool>
--- a/skewer_render.R	Thu Mar 01 14:25:15 2018 -0500
+++ b/skewer_render.R	Fri Mar 02 09:59:25 2018 -0500
@@ -10,15 +10,28 @@
 
 library(getopt)
 library(rmarkdown)
+library(htmltools)
 #------------------------------------------------
 
 
 #------------get arguments into R--------------------
-# getopt_specification_matrix(extract_short_flags('fastqc_report.xml')) %>%
+# getopt_specification_matrix(extract_short_flags('skewer.xml')) %>%
 #   write.table(file = 'spec.txt', sep = ',', row.names = FALSE, col.names = TRUE, quote = FALSE)
 
 
-spec_matrix = as.matrix()
+spec_matrix = as.matrix(
+  data.frame(stringsAsFactors=FALSE,
+              long_flags = c("X_e", "X_o", "X_d", "X_s", "X_t", "X_X", "X_Y",
+                             "X_x", "X_y", "X_A", "X_B", "X_f", "X_r"),
+             short_flags = c("e", "o", "d", "s", "t", "X", "Y", "x", "y", "A",
+                             "B", "f", "r"),
+     argument_mask_flags = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L),
+         data_type_flags = c("character", "character", "character", "character",
+                             "character", "character", "character",
+                             "character", "character", "character", "character",
+                             "character", "character")
+  )
+)
 opt = getopt(spec_matrix)
 #----------------------------------------------------
 
@@ -31,15 +44,17 @@
 #---------- often used variables ----------------
 # OUTPUT_DIR: path to the output associated directory, which stores all outputs
 # TOOL_DIR: path to the tool installation directory
-OUTPUT_DIR = ''
-TOOL_DIR =   ''
-RMD_NAME = ''
+OUTPUT_DIR = opt$X_d
+TOOL_DIR =   opt$X_t
+RMD_NAME = 'skewer.Rmd'
+OUTPUT_REPORT = opt$X_o
 
 # create the output associated directory to store all outputs
-dir.create(OUT_DIR, recursive = TRUE)
-
+dir.create(OUTPUT_DIR, recursive = TRUE)
+opt
 #-----------------render Rmd--------------
-render(paste0(TOOL_DIR, RMD_NAME, sep = '/'), OUTPUT_DIR)
+paste0(TOOL_DIR, '/', RMD_NAME)
+render(paste0(TOOL_DIR, '/', RMD_NAME), output_file = OUTPUT_REPORT)
 #------------------------------------------
 
 #==============the end==============