diff hydra.xml @ 0:71976cfc9022 draft

planemo upload for repository https://github.com/phac-nml/quasitools commit 8a264400a75945e2e0fdd5a08c007a8b1b7a2f0f
author nml
date Mon, 04 Dec 2017 10:25:26 -0500
parents
children 1abf6b32ecfd
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hydra.xml	Mon Dec 04 10:25:26 2017 -0500
@@ -0,0 +1,223 @@
+<tool id="hydra" name="Hydra pipeline" version="0.1.0">
+    <description>Identifies drug resistance within an NGS dataset</description>
+    <requirements>
+          <requirement type="package" version="0.2.2">quasitools</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+
+        quasitools hydra '$forward' 
+
+        #if $reverse:
+            '$reverse' 
+        #end if
+
+        #if $mutation_db:
+            -m '$mutation_db' 
+        #end if
+
+        #if $reporting_threshold:
+            -rt '$reporting_threshold' 
+        #end if
+
+        #if $consensus_pct:
+            -cp '$consensus_pct' 
+        #end if
+
+        #if $length_cutoff:
+            -lc '$length_cutoff' 
+        #end if
+
+        #if $score_cutoff:
+            -sc '$score_cutoff' 
+        #end if
+
+        #if $error_rate:
+            -e '$error_rate' 
+        #end if
+
+        #if $min_qual:
+            -mq '$min_qual' 
+        #end if
+
+        #if $min_depth:
+            -md '$min_depth' 
+        #end if
+
+        #if $min_ac:
+            -ma '$min_ac' 
+        #end if
+
+        #if $min_freq:
+            -mf '$min_freq' 
+        #end if
+
+        #if $generate_consensus:
+            --generate_consensus 
+        #end if
+
+        #if $filter_ns:
+            --ns 
+        #end if
+
+        -o output
+
+    ]]></command>
+    <inputs>
+        <param name="forward" type="data" format="fastq" optional="false" label="Forward read" />
+        <param name="reverse" type="data" format="fastq" optional="true" label="Reverse read" help="Not required."/>
+        <param name="mutation_db" type="data" format="tsv" optional="true" label="Mutation DB" help="Defaults to HIV mutation database." />
+        <param name="reporting_threshold" type="integer" optional="true" min="1" max="100" value="1" label="Reporting threshold. Defaults to 1." help="Minimum mutation frequency to report." />
+        <param name="consensus_pct" type="integer" optional="true" min="1" max="20" value="20" label="Reporting threshold" help="Minimum mutation frequency to report. Defaults to 20." />
+        <param name="length_cutoff" type="integer" optional="true" min="0" max="1000" label="Length cutoff" value="100" help="Reads which fall short of the specified length will be filtered out. Defaults to 100." />
+        <param name="score_cutoff" type="integer" optional="true" min="0" max="40" label="Score cutoff" value="30" help="Reads whose average quality score is less than the specified score will be filtered out. Defaults to 30." />
+        <param name="error_rate" type="float" optional="true" min="0" max="1" label="Error rate" value="0.0021" help="Estimated sequencing error rate. Defaults to 0.0021."/>
+        <param name="min_qual" type="integer" optional="true" min="1" max="100" label="Minimum quality" value="30" help="Minimum required quality for variant to be considered later on in the pipeline. Defaults to 30." />
+        <param name="min_depth" type="integer" optional="true" min="0" max="5000" label="Minimum depth" value="100" help="Minimum required depth for variant to be considered later on in the pipeline. Defaults to 100." />
+        <param name="min_ac" type="integer" optional="true" min="0" max="5000" label="Minimum allele count" value="5" help="Minimum required allele count for variant to be considered later on in the pipeline. Defaults to 5." />
+        <param name="min_freq" type="float" optional="true" min="0" max="1" label="Minimum frequency" value="0.01" help="Minimum required frequency for variant to be considered later on in the pipeline. Defaults to 0.01." />
+        <param name="generate_consensus" type="boolean" truevalue="--generate_consensus" falsevalue="" checked="False" label="Generate consensus" />
+        <param name="filter_ns" type="boolean" truevalue="--ns" falsevalue="" checked="False" label="Filter out n's" />
+    </inputs>
+    <outputs>
+        <data format="bam" label="HyDRA: alignment bam output" name="output_bam" from_work_dir="output/align.bam" />
+        <data format="bam" label="HyDRA: bam.bai output" name="output_bam_bai" from_work_dir="output/align.bam.bai" />
+        <data format="csv" label="HyDRA: coverage output" name="output_coverage" from_work_dir="output/coverage_file.csv" />
+        <data format="csv" label="HyDRA: drug resistance output" name="output_dr" from_work_dir="output/dr_report.csv" />
+        <data format="fastq" label="HyDRA: filtered reads output" name="output_filtered" from_work_dir="output/filtered.fastq" />
+        <data format="vcf" label="HyDRA: variants output" name="output_hydra" from_work_dir="output/hydra.vcf" />
+        <data format="vcf" label="HyDRA: aa mutations output" name="output_aa_mt" from_work_dir="output/mutation_report.hmcf" />
+        <data format="txt" label="HyDRA: stats output" name="output_stats" from_work_dir="output/stats.txt" />
+    </outputs>
+    <tests>
+        <test>
+            <param name="forward" value="forward.fastq" />
+            <output name="output_coverage">
+                <assert_contents>
+                    <has_text text="frame: 0" />
+                    <has_text text="1,0" />
+                    <has_text text="948,0" />
+                </assert_contents>
+            </output>
+            <output name="output_dr">
+                <assert_contents>
+                    <has_text text="Chromosome,Gene,Category,Surveillance,Wildtype,Position,Mutation,Mutation Frequency,Coverage" />
+                    <has_text text="hxb2_pol,RT,NNRTI,Yes,K,101,P,14.23,1574" />
+                    <has_text text="hxb2_pol,RT,NNRTI,Yes,K,103,N,5.49,1912" />
+                    <has_text text="hxb2_pol,RT,NNRTI,Yes,Y,181,C,24.07,4557" />
+                    <has_text text="hxb2_pol,RT,NNRTI,Yes,Y,181,I,18.04,4557" />
+                    <has_text text="hxb2_pol,RT,NNRTI,Yes,Y,181,V,20.08,4557" />
+                    <has_text text="hxb2_pol,RT,NNRTI,Yes,Y,188,C,2.81,3454" />
+                    <has_text text="hxb2_pol,RT,NNRTI,Yes,G,190,A,5.20,3233" />
+                    <has_text text="hxb2_pol,RT,NNRTI,Yes,G,190,S,6.68,3233" />
+                </assert_contents>
+            </output>
+            <output name="output_hydra">
+                <assert_contents>
+                    <has_text_matching expression="#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO"/>
+                    <has_text_matching expression="hxb2_pol\s576\s.\sa\sg\s100\sPASS\sDP=805;AC=245;AF=0.3043" />
+                    <has_text_matching expression="hxb2_pol\s958\s.\sc\sa\s100\sPASS\sDP=2503;AC=28;AF=0.0112" />
+                </assert_contents>
+            </output>
+            <output name="output_aa_mt">
+                <assert_contents>
+                    <has_text_matching expression="#CHROM\sGENE\sTYPE\sWILDTYPE\sPOS\sMUTANT\sFILTER\sMUTANT_FREQ\sCOVERAGE\sINFO"/>
+                    <has_text_matching expression="hxb2_pol\sRT\smutation\sK\s101\sP\sPASS\s0.1423\s1574\sWC=aaa;MC=CCa;MCF=0.1423;CAT=NNRTI;SRVL=Yes" />
+                    <has_text_matching expression="hxb2_pol\sRT\smutation\sH\s221\sN\sPASS\s0.0113\s2475\sWC=cat;MC=Aat;MCF=0.0113;CAT=.;SRVL=." />
+                </assert_contents>
+            </output>
+            <output name="output_stats">
+                <assert_contents>
+                    <has_text text="Input Size: 25000"/>
+                    <has_text text="Number of reads filtered due to length: 15074"/>
+                    <has_text text="Number of reads filtered due to average quality score: 501"/>
+                    <has_text text="Number of reads filtered due to presence of Ns: 0"/>
+                    <has_text text="Number of reads filtered due to excess coverage: 0"/>
+                    <has_text text="Number of reads filtered due to poor mapping: 12"/>
+                    <has_text text="Percentage of reads filtered: 62.35"/>
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+
+HyDRA - HIV Drug Resistance Analyzer
+====================================
+
+The HyDRA pipeline provides a pipeline for identifying drug resistance within a Next Generation Sequencing dataset. The pipeline takes as input the raw reads produced by a Next Generation Sequencer and produces a report detailing found drug resistance per sample.
+
+Authors
+-------
+
+The HyDRA pipeline was developed by Eric Enns and David Peddle.
+
+Stages
+------
+
+The HyDRA pipleine proceeds through the following stages:
+
+1. Quality Control/Filtering
+2. Reference mapping using bowtie2.
+3. Variant Calling and filtering using a Poisson distribution.
+4. AA Mutation Calling and filtering.
+5. Drug Resistance report generation.
+
+Details
+-------
+
+The following is an example for running the pipeline, using our included test dataset:
+    * Output directory name: "/tmp/hydra_out"
+    * Forward reads: "reads_w_K103N.fastq"
+
+### Output ###
+
+The detailed output directory tree looks as follows:
+
+    /tmp/hydra_out/
+        * align.bam
+        * align.bam.bai
+        * coverage_file.csv
+        * dr_report.csv
+        * filtered.fastq
+        * hydra.vcf
+        * mutation_report.hmcf
+        * stats.txt
+
+The description of each of these directories/files are as follows:
+
+* __run.conf__: The configuration used when this output was produced.
+* __reads_w_K103N/__: The results directory for the input file reads_w_K103N.fastq
+    * __align.bam__: The alignment file in bam format.
+    * __align.bam.bai__: The index to the alignment file.
+    * __coverage_file.csv__: A file with one entry per line with the AA position and the coverage at the position.
+    * __dr_report.csv__: A report detailing the drug resistant mutations found, above the reporting threshold (default: 1%).
+    * __filtered.fastq__: The reads remaining after the filtering stage.
+    * __hydra.vcf__: The variants found by the pipeline.
+    * __mutation_report.hmcf__: The AA mutations found by the pipeline.
+    * __stats.txt__: A log file detailing size after filtering and major stages.
+
+The __dr_report.csv__ file lists all found drug resistant mutations (mutations included in the mutation database) which have frequency greater than the reporting threshold. An example of this file is given below.
+
+Example: __dr_report.csv__
+
+    Gene,Category,Surveillance,Wildtype,Position,Mutation,Mutation Frequency,Coverage
+    RT,NNRTI,Yes,K,103,N,9.03,155
+
+The __mutation_report.hmcf__ files is our custom VCF like file which details all of the AA mutations found by the pipeline. An example if this file is given below.
+
+Example: __mutation_report.hmcf__
+
+    ##fileformat=HMCFv1
+    ##fileDate=20150008
+    ##source=HyDRA
+    ##reference=/home/ericenns/hydra/var/hxb2_pol.fas
+    ##INFO=<ID=MC,Number=.,Description="String">
+    ##INFO=<ID=MCF,Number=.,Description="String">
+    ##INFO=<ID=WC,Number=.,Description="String">
+    ##FILTER=<ID=mf0.01,Description="Mutant freq below 0.01">
+    #GENE   CATEGORY        SURVEILLANCE    TYPE    WILDTYPE        POS     MUTANT  FILTER  MUTANT_FREQ     COVERAGE INFO
+    RT      NNRTI   Yes     mutation        K       103     N       PASS    0.0903  155     WC=aaa;MC=aaC;MCF=0.0903
+
+    ]]></help>
+    <citations>
+    </citations>
+</tool>