view macros.xml @ 11:67cbd80b83f5 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks commit 5f2ec13ecca435abaac2b99ba21f1d6497ec7139"
author iuc
date Tue, 22 Mar 2022 23:21:58 +0000
parents ede5223bc7f1
children a9ff3d0184b8
line wrap: on
line source

<?xml version="1.0"?>
<macros>
    <xml name="requirements">
        <requirements>
            <requirement type="package" version="1.46">stacks</requirement>
            <requirement type="package" version="1.2.10">velvet</requirement>
            <requirement type="package" version="1.1">stacks_summary</requirement>
            <yield/>
        </requirements>
    </xml>
    <xml name="bio_tools">
        <xrefs>
            <xref type="bio.tools">stacks</xref>
        </xrefs>
    </xml>
    <token name="@WRAPPER_VERSION@">1.46</token>

    <xml name="stdio">
        <stdio>
            <exit_code range="1:" level="fatal" description="Error in Stacks execution" />
        </stdio>
    </xml>

    <xml name="citation">
        <citations>
            <citation type="doi">10.1111/mec.12354</citation>
            <citation type="doi">10.1111/mec.12330</citation>
            <citation type="doi">10.1534/g3.111.000240</citation>
            <citation type="doi">10.1534/genetics.111.127324</citation>
            <citation type="doi">10.1111/j.1755-0998.2010.02967.x</citation>
            <citation type="doi">10.1073/pnas.1006538107</citation>
        </citations>
    </xml>

    <token name="@STACKS_INFOS@">
<![CDATA[
--------

**Created by:**

Stacks was developed by Julian Catchen with contributions from Angel Amores, Paul Hohenlohe, and Bill Cresko

**Project links:**

`Stacks website <http://catchenlab.life.illinois.edu/stacks/>`_

`Stacks manual <http://catchenlab.life.illinois.edu/stacks/manual/>`_

`Stacks google group <http://groups.google.com/group/stacks-users>`_
]]></token>

    <xml name="enzymes">
        <option value="aciI">aciI</option>
        <option value="ageI">ageI</option>
        <option value="aluI">aluI</option>
        <option value="apeKI">apeKI</option>
        <option value="apoI">apoI</option>
        <option value="aseI">aseI</option>
        <option value="bamHI">bamHI</option>
        <option value="bfaI">bfaI</option>
        <option value="bgIII">bgIII</option>
        <option value="bspDI">bspDI</option>
        <option value="bstYI">bstYI</option>
        <option value="claI">claI</option>
        <option value="ddeI">ddeI</option>
        <option value="dpnII">dpnII</option>
        <option value="eaeI">eaeI</option>
        <option value="ecoRI">ecoRI</option>
        <option value="ecoRV">ecoRV</option>
        <option value="ecoT22I">ecoT22I</option>
        <option value="hindIII">hindIII</option>
        <option value="kpnI">kpnI</option>
        <option value="mluCI">mluCI</option>
        <option value="mseI">mseI</option>
        <option value="mspI">mspI</option>
        <option value="ndeI">ndeI</option>
        <option value="nheI">nheI</option>
        <option value="nlaIII">nlaIII</option>
        <option value="notI">notI</option>
        <option value="nsiI">nsiI</option>
        <option value="pstI">pstI</option>
        <option value="rsaI">rsaI</option>
        <option value="sacI">sacI</option>
        <option value="sau3AI">sau3AI</option>
        <option value="sbfI">sbfI</option>
        <option value="sexAI">sexAI</option>
        <option value="sgrAI">sgrAI</option>
        <option value="speI">speI</option>
        <option value="sphI">sphI</option>
        <option value="taqI">taqI</option>
        <option value="xbaI">xbaI</option>
        <option value="xhoI">xhoI</option>
        <option value="csp6I">csp6I</option>
        <option value="bsaHI">bsaHI</option>
        <option value="hpaII">hpaII</option>
        <option value="ncoI">ncoI</option>
        <option value="ApaLI">ApaLI</option>
    </xml>

    <xml name="cross_types">
        <option value="CP">CP (F1 cross)</option>
        <option value="F2">F2 (F2 cross)</option>
        <option value="BC1">BC1 (backcross)</option>
        <option value="DH">DH (double haploid cross)</option>
        <option value="GEN">GEN (generic, unspecific to any map type)</option>
    </xml>

    <token name="@CLEAN_EXT@">
        <![CDATA[
        #from os.path import splitext
        #import re
        #def clean_ext($identifier)
            #while $identifier.endswith(('.1', '.fa', '.fq', '.fasta', '.fastq', '.gz', '.gzip', '.sam', '.bam'))
                #set $identifier = splitext($identifier)[0]
            #end while
$identifier#slurp
        #end def
        ]]>
    </token>

    <token name="@NORM_GENOTYPES_OUTPUT_LIGHT@">
        <![CDATA[
        ## We need to do this as the output file names contains the value of an option (min progeny)
        &&
        cd stacks_outputs/ &&
        ln -s batch_1.haplotypes_1.tsv batch_1.haplotypes.tsv &&
        ln -s batch_1.genotypes_*.loc batch_1.genotypes.loc &&
        ln -s batch_1.genotypes_1.txt batch_1.genotypes.txt &&
        ln -s batch_1.genotypes_1.tsv batch_1.genotypes.tsv &&
        cd ..
        ]]>
    </token>

    <token name="@NORM_GENOTYPES_OUTPUT_FULL@">
        <![CDATA[
        ## We need to do this as the output file names contains the value of an option (min progeny)
        &&
        cd stacks_outputs/ &&
        ln -s batch_1.genotypes_*onemap.tsv batch_1.genotypes.onemap.tsv &&
        ln -s batch_1.genotypes_*.onemap.txt batch_1.genotypes.onemap.txt &&
        ln -s batch_1.genomic_*.tsv batch_1.genomic.tsv &&
        ln -s batch_1.genotypes_*.rqtl.tsv batch_1.genotypes.rqtl.tsv &&
        ln -s batch_1.haplotypes_*.tsv batch_1.haplotypes.tsv &&
        ln -s batch_1.genotypes_*.loc batch_1.genotypes.loc &&
        ln -s batch_1.genotypes_*.txt batch_1.genotypes.txt &&
        ln -s batch_1.genotypes_*[^rqtl].tsv batch_1.genotypes.tsv &&
        cd ..
        ]]>
    </token>

    <xml name="genotypes_output_light">

        <data format="txt" name="out_joinmap" label="Haplotypes table (JoinMap format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genotypes.loc">
            <filter>options_usage['rad_analysis_type'] == "genetic"</filter>
            <filter>options_usage['cross_type'] in ['F2', 'BC1', 'DH', 'CP']</filter>
        </data>

        <data format="tabular" name="out_generic_haplo" label="Haplotypes table (generic format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.haplotypes.tsv">
            <filter>options_usage['rad_analysis_type'] == "genetic"</filter>
        </data>
        <data format="tabular" name="out_generic_geno" label="Genotypes table (generic format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genotypes.tsv">
            <filter>options_usage['rad_analysis_type'] == "genetic"</filter>
            <filter>options_usage['cross_type'] == "GEN"</filter>
        </data>

        <data format="tabular" name="out_sql_markers" label="Markers table (Stacks SQL format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.markers.tsv">
            <filter>options_usage['rad_analysis_type'] == "genetic"</filter>
        </data>

        <data format="tabular" name="out_sql_genotypes" label="Haplotypes table (Stacks SQL format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genotypes.txt">
            <filter>options_usage['rad_analysis_type'] == "genetic"</filter>
        </data>
    </xml>

    <xml name="genotypes_output_full">
        <!-- Output formats generated by genotypes:

             JoinMap, default, only if map type is F2/BC1/DH/CP => batch_1.genotypes_1.loc
             OneMap, only if map type is F2/BC1 => batch_1.genotypes_1onemap.tsv
             OneMap/MapMaker, only if map type is CP => batch_1.genotypes_1.onemap.txt
             Genomic, for all map types => batch_1.genomic_1.tsv
             R/QTL, only if map type is F2/BC1/DH => batch_1.genotypes_1.rqtl.tsv

             Additional non-optional output (ie not altered by -o option):

             Generic format, for every map types => batch_1.haplotypes_1.tsv
             Generic format, if map type is GEN => batch_1.genotypes_1.tsv -->

        <data format="txt" name="out_joinmap" label="Haplotypes table (JoinMap format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genotypes.loc">
            <filter>options_usage['cross_type'] in ['F2', 'BC1', 'DH', 'CP']</filter>
            <filter>'map_out' not in options_usage or options_usage['map_out']['map_out_type'] == 'joinmap'</filter>
        </data>

        <data format="tabular" name="out_onemap" label="Haplotypes table (OneMap format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genotypes.onemap.txt">
            <filter>options_usage['cross_type'] in ['F2', 'BC1']</filter>
            <filter>'map_out' in options_usage and options_usage['map_out']['map_out_type'] == 'onemap'</filter>
        </data>

        <data format="tabular" name="out_onemap_mapmaker" label="Haplotypes table (OneMap/MapMaker format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genotypes.onemap.tsv">
            <filter>options_usage['cross_type'] in ['CP']</filter>
            <filter>'map_out' in options_usage and options_usage['map_out']['map_out_type'] == 'onemap'</filter>
        </data>

        <data format="tabular" name="out_genomic" label="Haplotypes table (Genomic format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genomic.tsv">
            <filter>'map_out' in options_usage and options_usage['map_out']['map_out_type'] == 'genomic'</filter>
        </data>

        <data format="tabular" name="out_rqtl" label="Haplotypes table (R/QTL format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genotypes.rqtl.tsv">
            <filter>options_usage['cross_type'] in ['F2', 'BC1', 'DH']</filter>
            <filter>'map_out' in options_usage and options_usage['map_out']['map_out_type'] == 'rqtl'</filter>
        </data>

        <data format="tabular" name="out_generic_haplo" label="Haplotypes table (generic format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.haplotypes.tsv"/>

        <data format="tabular" name="out_generic_geno" label="Genotypes table (generic format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genotypes.tsv">
            <filter>options_usage['cross_type'] == "GEN"</filter>
        </data>

        <data format="tabular" name="out_sql_markers" label="Markers table (Stacks SQL format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.markers.tsv"/>

        <data format="tabular" name="out_sql_genotypes" label="Haplotypes table (Stacks SQL format) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genotypes.txt"/>
    </xml>

    <xml name="populations_output_light">
        <data format="tabular" name="out_haplotypes" label="Observed haplotypes with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.haplotypes.tsv">
            <filter>options_usage['rad_analysis_type'] == "population"</filter>
        </data>

        <data format="tabular" name="out_hapstats" label="Haplotype-based summary statistics for each locus in each population with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.hapstats.tsv">
            <filter>options_usage['rad_analysis_type'] == "population"</filter>
        </data>

        <data format="tabular" name="out_populations_log" label="Populations log with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.populations.log">
            <filter>options_usage['rad_analysis_type'] == "population"</filter>
        </data>

        <data format="tabular" name="out_sumstats_sum" label="Summary of summary statistics for each population with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.sumstats_summary.tsv">
            <filter>options_usage['rad_analysis_type'] == "population"</filter>
        </data>

        <data format="tabular" name="out_sumstats" label="Summary statistics for each population with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.sumstats.tsv">
            <filter>options_usage['rad_analysis_type'] == "population"</filter>
        </data>

        <data format="tabular" name="out_sql" label="Stacks SQL format with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.markers.tsv">
            <filter>options_usage['rad_analysis_type'] == "population"</filter>
        </data>
    </xml>

    <xml name="populations_output_full">
        <data format="tabular" name="out_haplotypes" label="Observed haplotypes with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.haplotypes.tsv"/>

        <data format="tabular" name="out_hapstats" label="Haplotype-based summary statistics for each locus in each population with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.hapstats.tsv"/>

        <data format="tabular" name="out_populations_log" label="Populations log with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.populations.log"/>

        <data format="tabular" name="out_sumstats_sum" label="Summary of summary statistics for each population with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.sumstats_summary.tsv"/>

        <data format="tabular" name="out_sumstats" label="Summary statistics for each population with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.sumstats.tsv"/>

        <data format="tabular" name="out_sql" label="Stacks SQL format with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.markers.tsv"/>

        <data format="tabular" name="out_fstats" label="SNP and Haplotype-based F statistics with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.phistats.tsv">
            <filter>fstats</filter>
        </data>
        <data format="tabular" name="out_fasta" label="Full sequence for each unique haplotype (regardless of plausibility) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.fa">
            <filter>populations_output['fasta']</filter>
        </data>
        <data format="tabular" name="out_phylip_all_partitions" label="Phylip all (partitions) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.fullseq.partitions.phylip">
            <filter>populations_output['phylip_var_all']</filter>
        </data>
        <data format="tabular" name="out_phylip_all_pop" label="Phylip all (pop) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.fullseq.phylip">
            <filter>populations_output['phylip_var_all']</filter>
        </data>
        <data format="tabular" name="out_phylip_all_loci" label="Phylip all (loci) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1fullseq.phylip.log">
            <filter>populations_output['phylip_var_all']</filter>
        </data>
        <data format="tabular" name="out_genepop" label="GenePop formatwith ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genepop">
            <filter>populations_output['genepop']</filter>
        </data>
        <data format="tabular" name="out_vcf_haplotypes" label="Haplotypes in VCF format with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.haplotypes.vcf">
            <filter>populations_output['vcf_haplotypes']</filter>
        </data>
        <data format="tabular" name="out_hzar" label="Genotypes in Hybrid Zone Analysis using R (HAZR) format with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.hzar.csv">
            <filter>populations_output['hzar']</filter>
        </data>
        <data format="tabular" name="out_beagle_phased_haplotypes" label="Beagle format (phased, haplotypes) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.myPopA-un.phased.bgl">
            <filter>populations_output['beagle_phased']</filter>
        </data>
        <data format="tabular" name="out_beagle_phased_markers" label="Beagle format (phased, markers) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.myPopA-un.phased.bgl.markers">
            <filter>populations_output['beagle_phased']</filter>
        </data>
        <data format="tabular" name="out_beagle_haplotypes" label="Beagle format (haplotypes) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.myPopA-un.unphased.bgl">
            <filter>populations_output['beagle']</filter>
        </data>
        <data format="tabular" name="out_beagle_markers" label="Beagle format (markers) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.myPopA-un.unphased.bgl.markers">
            <filter>populations_output['beagle']</filter>
        </data>
        <data format="tabular" name="out_phylip_pop" label="Phylip (pop) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.phylip">
            <filter>populations_output['phylip']</filter>
        </data>
        <data format="tabular" name="out_phylip_loci" label="Phylip (loci) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.phylip.log">
            <filter>populations_output['phylip']</filter>
        </data>
        <data format="tabular" name="out_plink_markers" label="PLINK (makers) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.plink.map">
            <filter>populations_output['plink']</filter>
        </data>
        <data format="tabular" name="out_plink_genotypes" label="PLINK format (genotypes) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.plink.ped">
            <filter>populations_output['plink']</filter>
        </data>
        <data format="tabular" name="out_fasta_strict" label="Full sequence for each haplotype (only for biologically plausible loci) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.strict.fa">
            <filter>populations_output['fasta_strict']</filter>
        </data>
        <data format="tabular" name="out_structure" label="Structure format with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.structure.tsv">
            <filter>populations_output['structure']</filter>
        </data>
        <data format="tabular" name="out_treemix_pop" label="TreeMix format (population) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.treemix">
            <filter>populations_output['treemix']</filter>
        </data>
        <data format="tabular" name="out_treemix_loci" label="TreeMix format (loci) with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.treemix.log">
            <filter>populations_output['treemix']</filter>
        </data>
        <data format="tabular" name="out_fastphase" label="fastPHASE format with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.un.fastphase.inp">
            <filter>populations_output['fastphase']</filter>
        </data>
        <data format="tabular" name="out_phase" label="PHASE format with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.un.phase.inp">
            <filter>populations_output['phase']</filter>
        </data>
        <data format="tabular" name="out_vcf" label="SNPs in VCF format with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.vcf">
            <filter>populations_output['vcf']</filter>
        </data>
        <data format="tabular" name="out_genomic" label="Each nucleotide position in all population members with ${tool.name} on ${on_string}" from_work_dir="stacks_outputs/batch_1.genomic.tsv">
            <filter>populations_output['options_genomic']['genomic']</filter>
        </data>

    </xml>

    <xml name="snp_options">
        <conditional name="select_model">
            <param name="model_type" type="select" label="Choose the model">
                <option value="snp" selected="true">SNP</option>
                <option value="bounded">Bounded SNP</option>
                <option value="fixed">Fixed</option>
            </param>
            <when value="snp">
                <param name="alpha" argument="--alpha" type="select" label="Chi square significance level required to call a heterozygote or homozygote" >
                    <option value="0.1">0.1</option>
                    <option value="0.05" selected="True">0.05</option>
                    <option value="0.01">0.01</option>
                    <option value="0.001">0.001</option>
                </param>
            </when>
            <when value="bounded">
                <param name="bound_low" argument="--bound_low" type="float" value="0.0" min="0.0" max="1.0" label="lower bound for epsilon, the error rate" help="between 0 and 1.0"/>
                <param name="bound_high" argument="--bound_high" type="float" value="1.0" min="0.0" max="1.0" label="upper bound for epsilon, the error rate" help="between 0 and 1.0" />
                <param name="alpha" argument="--alpha" type="select" label="Chi square significance level required to call a heterozygote or homozygote" >
                    <option value="0.1">0.1</option>
                    <option value="0.05" selected="True">0.05</option>
                    <option value="0.01">0.01</option>
                    <option value="0.001">0.001</option>
                </param>
            </when>
            <when value="fixed">
            </when>
        </conditional>
    </xml>

    <xml name="snp_options_full">
        <conditional name="select_model">
            <param name="model_type" type="select" label="Choose the model">
                <option value="snp" selected="true">SNP</option>
                <option value="bounded">Bounded SNP</option>
                <option value="fixed">Fixed</option>
            </param>
            <when value="snp">
                <param name="alpha" argument="--alpha" type="select" label="Chi square significance level required to call a heterozygote or homozygote" >
                    <option value="0.1">0.1</option>
                    <option value="0.05" selected="True">0.05</option>
                    <option value="0.01">0.01</option>
                    <option value="0.001">0.001</option>
                </param>
            </when>
            <when value="bounded">
                <param name="bound_low" argument="--bound_low" type="float" value="0.0" min="0.0" max="1.0" label="lower bound for epsilon, the error rate" help="between 0 and 1.0"/>
                <param name="bound_high" argument="--bound_high" type="float" value="1.0" min="0.0" max="1.0" label="upper bound for epsilon, the error rate" help="between 0 and 1.0" />
                <param name="alpha" argument="--alpha" type="select" label="Chi square significance level required to call a heterozygote or homozygote" >
                    <option value="0.1">0.1</option>
                    <option value="0.05" selected="True">0.05</option>
                    <option value="0.01">0.01</option>
                    <option value="0.001">0.001</option>
                </param>
            </when>
            <when value="fixed">
                <param name="bc_err_freq" argument="--bc_err_freq" type="float" value="0.1" min="0.0" max="1.0" label="Barcode error frequency" help="between 0 and 1.0"/>
            </when>
        </conditional>
    </xml>

    <xml name="barcode_encoding_single">
        <option value="--inline_null" selected="True">Barcode is inline with sequence</option>
        <option value="--index_null">Barcode is provided in FASTQ header</option>
    </xml>

    <xml name="barcode_encoding_pair">
        <option value="--inline_null" selected="True">Barcode is inline with sequence</option>
        <option value="--null_index">random oligo is provded in FASTQ header (Illumina i7 read if both i5 and i7 read are provided).</option>
        <option value="--index_null">random oligo is provded in FASTQ header (Illumina i5 or i7 read)</option>
        <option value="--inline_inline">random oligo is inline with sequence, occurs on single and paired-end read</option>
        <option value="--index_index">random oligo is provded in FASTQ header (Illumina i5 and i7 read)</option>
        <option value="--inline_index">random oligo is inline with sequence on single-end read and second oligo occurs in FASTQ header</option>
        <option value="--index_inline">random oligo occurs in FASTQ header (Illumina i5 or i7 read) and is inline with sequence on single-end read (if single read data) or paired-end read (if paired data)</option>
    </xml>
</macros>