view srst2v2.xml @ 2:6787d952242e draft

Uploaded
author estrain
date Sun, 19 May 2019 07:36:55 -0400
parents 43cc60256036
children 8bf4865cc3e3
line wrap: on
line source

<tool id="srst2" name="SRST2 - Short Read Sequence Typer (v2)" version="0.2.0">
    <requirements>
        <requirement type="package" version="0.2.0">srst2</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
        #if $paired_conditional.sPaired == "paired"
           ln -s $paired_conditional.fastq1 sample_1.fastq;
           ln -s $paired_conditional.fastq2 sample_2.fastq;
        #else if $paired_conditional.sPaired == "paired_coll" 
           ln -s $paired_conditional.coll.forward sample_1.fastq;
           ln -s $paired_conditional.coll.reverse sample_2.fastq;
        #end if

        srst2

        #if $paired_conditional.sPaired == "single"
            --input_se $paired_conditional.fastq1
        #else if $paired_conditional.sPaired == "paired"
            --input_pe sample_1.fastq sample_2.fastq
        #else if $paired_conditional.sPaired == "paired_coll"
            --input_pe sample_1.fastq sample_2.fastq
        #end if

        --output srst2out 
        --save_scores 

        #if $job_type.job == "mlst"
          --mlst_definitions $job_type.mlst_definitions
          --mlst_db $job_type.mlst_db 
          --mlst_delimiter $job_type.mlstdelim
          --mlst_max_mismatch $job_type.mlst_max_mismatch
        #else if $job_type.job == "gene"
          --gene_db $job_type.genedb
          --gene_max_mismatch $job_type.gene_max_mismatch
        #else if $job_type.job == "nost"
          --mlst_db $job_type.mlst_db 
          --mlst_delimiter $job_type.mlstdelim
          --mlst_max_mismatch $job_type.mlst_max_mismatch
        #end if

        #if $options.select == "advanced"
          #if $options.min_coverage
              --min_coverage $options.min_coverage
          #end if
          #if $options.max_divergence
              --max_divergence $options.max_divergence
          #end if
          #if $options.min_depth
              --min_depth $options.min_depth
          #end if
          #if $options.min_edge_depth
              --min_edge_depth $options.min_edge_depth
          #end if
          #if $options.prob_err
              --prob_err $options.prob_err
          #end if
          #if $options.stop_after
              --stop_after $options.stop_after
          #end if
              --other "'-p \${GALAXY_SLOTS:-1}
          #if $options.maxins
              --maxins $options.maxins
              --minins $options.minins
          #end if
              '"
          #if $options.mapq
              --mapq $options.mapq
          #end if
          #if $options.baseq
              --baseq $options.baseq
          #end if
      #else
          --other "'-p \${GALAXY_SLOTS:-1}'"
      #end if

      #if $job_type.job == "mlst" 
        ; python $__tool_directory__/scoreProfiles.py --mlst_definitions $job_type.mlst_definitions --profile_cov $job_type.profile_cov --profile_max_mismatch $job_type.profile_max_mismatch --output srst2.pscores
      #end if

    ]]></command>
    <inputs>
      <conditional name="paired_conditional">
        <param name="sPaired" type="select" label="Single-End or Paired-End FASTQ?">
          <option value="single">Single FASTQ</option>
          <option value="paired">Forward and Reverse FASTQ</option>
          <option value="paired_coll">Paired FASTQ Collection</option>
        </param>
        <when value="single">
          <param name="fastq1" type="data" format="fastq,fastqsanger" label="FASTQ file" help="FASTQ" />
        </when>
        <when value="paired">
          <param name="fastq1" type="data" format="fastq,fastqsanger" label="Forward FASTQ file" help="FASTQ" />
          <param name="fastq2" type="data" format="fastq,fastqsanger" label="Reverse FASTQ file" help="FASTQ" />
        </when>
        <when value="paired_coll">
          <param name="coll" label="Paired FASTQ" type="data_collection" format="fastq,fastqsanger" collection_type="paired" />
        </when>
      </conditional>

      <conditional name="job_type">
        <param name="job" type="select" label="MLST, MLST with ST, or Gene Presence/Absence?">
          <option value="nost">MLST</option>
          <option value="mlst">MLST with ST Definitions</option>
          <option value="gene">Gene</option>
        </param>
        <when value="nost">
          <param type="data" name="mlst_db" label="Fasta file of MLST alleles" format="fasta" />
          <param type="text" name="mlstdelim" value="_" format="txt" label="Character(s) separating gene name from allele number in MLST database (default &apos;_&apos;)" />
          <param type="integer" name="mlst_max_mismatch" value="10" format="txt" label="Maximum number of mismatches per read" />
        </when> 
        <when value="mlst">
          <param type="data" name="mlst_db" label="Fasta file of MLST alleles" format="fasta" />
          <param type="data" name="mlst_definitions" label="ST definitions for MLST scheme" format="tabular" />
          <param type="text" name="mlstdelim" value="_" format="txt" label="Character(s) separating gene name from allele number in MLST database (default &apos;_&apos;)" />
          <param type="integer" name="mlst_max_mismatch" value="10" format="txt" label="Maximum number of mismatches per read" />
          <param type="float" name="profile_max_mismatch" value="1" format="txt" label="Maximum number of mismatches for reporting ST profile" />
          <param type="float" name="profile_cov" value="98" format="txt" label="Minimum mean % coverage for reporting ST profile" />
   
        </when>
        <when value="gene">
          <param name="genedb" type="data" format="fasta" label="Fasta file for gene database" />
          <param name="gene_max_mismatch" type="integer" value="10" format="txt" label="Maximum number of mistaches per read (default 10)" />
        </when>
      </conditional>

      <conditional name="options">
        <param name="select" type="select" label="Options Type">
          <option value="basic">Basic</option>
          <option value="advanced">Advanced</option>
        </param>
        <when value="advanced">
          <param name="min_coverage" type="integer" label="Minimum %coverage cutoff for gene reporting" value="90"/>
          <param name="max_divergence" type="integer" label="Maximum %divergence cutoff for gene reporting" value="10"/>
          <param name="min_depth" type="integer" label="Minimum mean depth to flag as dubious allele call" value="5"/>
          <param name="min_edge_depth" type="integer" label="Minimum edge depth to flag as dubious allele call" value="2"/>
          <param name="prob_err" type="float" label="Probability of sequencing error" value="0.01"/>
          <param name="stop_after" type="integer" label="Stop mapping after this number of reads have been mapped (otherwise map all)" optional="true"/>
          <param name="mapq" type="integer" label="Samtools -q parameter" value="1"/>
          <param name="baseq" type="integer" label="Samtools -Q parameter" value="20"/>
          <param name="minins" type="integer" label="Bowtie 2 -I parameter. The minimum fragment length for valid paired-end alignments." value="0" >
            <validator type="in_range" message="Must be less than -X parameter." min="0"/>
          </param>
          <param name="maxins" type="integer" label="Bowtie 2 -X parameter. The maximum fragment length for valid paired-end alignments." value="1000" >
            <validator type="in_range" message="Must be greater than -I parameter." min="0"/>
          </param>
          </when>
        <when value="basic"/>
      </conditional>

    </inputs>

    <outputs>
      <data format="tabular" label="SRST2 Results" name="results" from_work_dir="*.txt"/>
      <data format="tabular" label="SRST2 Allele Scores" name="scores" from_work_dir="*.scores">
        <filter>job_type['job'] == "mlst"</filter>
      </data>  
      <data format="tabular" label="SRST2 Profile Scores" name="pscores" from_work_dir="*.pscores">
        <filter> job_type['job'] == "mlst"</filter>
      </data>  
      <data format="tabular" label="SRST2 Predicted Alleles" name="alleles" from_work_dir="*results.txt">
        <filter> job_type['job'] == "mlst"</filter>
      </data>  
      <data format="tabular" label="SRST2 Gene Scores" name="gscores" from_work_dir="*.scores">
        <filter>job_type['job'] == "gene"</filter>
      </data>  
    </outputs>

    <help><![CDATA[

SRST2 - Short Read Sequence Typer (v2)

This program is designed to take Illumina sequence data, a MLST database and/or a database of gene sequences (e.g. resistance genes, virulence genes, etc) and report the presence of STs and/or reference genes.

    ]]></help>


    <citations>
        <citation type="bibtex">
        @misc{pope_dashnow_zobel_holt_raven_schultz_inouye_tomita_2014, 
        title={SRST2: Rapid genomic surveillance for public health and hospital microbiology labs}, 
        url={https://genomemedicine.biomedcentral.com/articles/10.1186/s13073-014-0090-6}, 
        journal={Genome Medicine}, publisher={BioMed Central}, 
        author={Pope, Bernard J and Dashnow, Harriet and Zobel, Justin and Holt, Kathryn E and Raven, Lesley-Ann and Schultz, Mark B and Inouye, Michael and Tomita, Takehiro}, 
        year={2014}, month={Nov}} ,
       }</citation>
    </citations>
</tool>