view macros.xml @ 24:288f97432497 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/cutadapt commit b26a2d90a1c70476fd2de33cd9fd739100f54fcf"
author iuc
date Wed, 02 Jun 2021 22:47:34 +0000
parents c4b82dce8335
children 4e5056fefd88
line wrap: on
line source

<macros>
    <token name="@TOOL_VERSION@">3.4</token>
    <token name="@GALAXY_TOOL_VERSION@">galaxy0</token>
    <xml name="edam_ontology">
        <edam_topics>                                                                                  
            <edam_topic>topic_0632</edam_topic>
        </edam_topics>
        <edam_operations>
            <edam_operation>operation_0231</edam_operation>
        </edam_operations>
    </xml>
    <xml name="requirements">
        <requirements>
            <requirement type="package" version="@TOOL_VERSION@">cutadapt</requirement>
        </requirements>
    </xml>
    <xml name="citations">
        <citations>
            <citation type="doi">10.14806/ej.17.1.200</citation>
        </citations>
    </xml>
    <xml name="xrefs">
        <xrefs>
            <xref type='bio.tools'>cutadapt</xref>
        </xrefs>
    </xml>
     <token name="@read1_options@"><![CDATA[

        ## Read1 trimming

        #for $a in $library.r1.adapters
            #if $a.adapter_source.adapter_source_list == 'builtin':
                -a '${a.adapter_source.adapter.fields.name}'='${a.adapter_source.adapter}${adapter_options.internal}'
            #else if $a.adapter_source.adapter_source_list == 'file':
                -a file:'${a.adapter_source.adapter_file}${adapter_options.internal}'
            #else if str($a.adapter_source.adapter_name) != "":
                -a '${a.adapter_source.adapter_name}'='${a.adapter_source.adapter}${adapter_options.internal}'
            #else
                -a '${a.adapter_source.adapter}${adapter_options.internal}'
            #end if
        #end for
        #for $aa in $library.r1.anywhere_adapters
            #if $aa.anywhere_adapter_source.anywhere_adapter_source_list == 'builtin':
                -b '${aa.anywhere_adapter_source.anywhere_adapter.fields.name}'='${aa.anywhere_adapter_source.anywhere_adapter}'
            #else if $aa.anywhere_adapter_source.anywhere_adapter_source_list == 'file':
                -b file:'${aa.anywhere_adapter_source.anywhere_adapter_file}'
            #else if str($aa.anywhere_adapter_source.anywhere_adapter_name) != "":
                -b '${aa.anywhere_adapter_source.anywhere_adapter_name}'='${aa.anywhere_adapter_source.anywhere_adapter}'
            #else
                -b '${aa.anywhere_adapter_source.anywhere_adapter}'
            #end if
        #end for
        #for $fa in $library.r1.front_adapters
            #if $fa.front_adapter_source.front_adapter_source_list == 'builtin':
                -g '${fa.front_adapter_source.front_adapter.fields.name}'='${adapter_options.internal}${fa.front_adapter_source.front_adapter}'
            #else if $fa.front_adapter_source.front_adapter_source_list == 'file':
                -g file:'${adapter_options.internal}${fa.front_adapter_source.front_adapter_file}'
            #else if str($fa.front_adapter_source.front_adapter_name) != "":
                -g '${fa.front_adapter_source.front_adapter_name}'='${adapter_options.internal}${fa.front_adapter_source.front_adapter}'
            #else
                -g '${adapter_options.internal}${fa.front_adapter_source.front_adapter}'
            #end if
        #end for

        #if str($library.r1.cut) != '0':
            -u $library.r1.cut
        #end if

        ## Additional Outputs

        #if 'info_file' in $output_selector:
            --info-file=$info_file
        #end if
        #if 'rest_file' in $output_selector:
            --rest-file='${rest_output}'
        #end if
        #if 'wildcard_file' in $output_selector:
            --wildcard-file='${wild_output}'
        #end if
        #if 'too_short_file' in $output_selector:
            --too-short-output='${too_short_output}'
        #end if
        #if 'too_long_file' in $output_selector:
            --too-long-output='${too_long_output}'
        #end if
        #if 'untrimmed_file' in $output_selector:
            --untrimmed-output='${untrimmed_output}'
        #end if

    ]]></token>

    <token name="@read2_options@"><![CDATA[

        ## Read2 trimming

        #for $a in $library.r2.adapters2
            #if $a.adapter_source2.adapter_source_list2 == 'builtin':
                -A '${a.adapter_source2.adapter2.fields.name}'='${a.adapter_source2.adapter2}${adapter_options.internal}'
            #else if $a.adapter_source2.adapter_source_list2 == 'file':
                -A file:'${a.adapter_source2.adapter_file2}${adapter_options.internal}'
            #else if str($a.adapter_source2.adapter_name2) != "":
                -A '${a.adapter_source2.adapter_name2}'='${a.adapter_source2.adapter2}${adapter_options.internal}'
            #else
                -A '${a.adapter_source2.adapter2}${adapter_options.internal}'
            #end if
        #end for
        #for $aa in $library.r2.anywhere_adapters2
            #if $aa.anywhere_adapter_source2.anywhere_adapter_source_list2 == 'builtin':
                -B '${aa.anywhere_adapter_source2.anywhere_adapter2.fields.name}'='${aa.anywhere_adapter_source2.anywhere_adapter2}'
            #else if $aa.anywhere_adapter_source2.anywhere_adapter_source_list2 == 'file':
                -B file:'${aa.anywhere_adapter_source2.anywhere_adapter_file2}'
            #else if str($aa.anywhere_adapter_source2.anywhere_adapter_name2) != "":
                -B '${aa.anywhere_adapter_source2.anywhere_adapter_name2}'='${aa.anywhere_adapter_source2.anywhere_adapter2}'
            #else
                -B '${aa.anywhere_adapter_source2.anywhere_adapter2}'
            #end if
        #end for
        #for $fa in $library.r2.front_adapters2
            #if $fa.front_adapter_source2.front_adapter_source_list2 == 'builtin':
                -G '${fa.front_adapter_source2.front_adapter2.fields.name}'='${adapter_options.internal}${fa.front_adapter_source2.front_adapter2}'
            #else if $fa.front_adapter_source2.front_adapter_source_list2  == 'file':
                -G file:'${adapter_options.internal}${fa.front_adapter_source2.front_adapter_file2}'
            #else if str($fa.front_adapter_source2.front_adapter_name2) != "":
                -G '${fa.front_adapter_source2.front_adapter_name2}'='${adapter_options.internal}${fa.front_adapter_source2.front_adapter2}'
            #else
                -G '${adapter_options.internal}${fa.front_adapter_source2.front_adapter2}'
            #end if
        #end for

        #if str($library.r2.cut2) != '0':
            -U $library.r2.cut2
        #end if

        ## Additional Outputs - Read 2

        #if 'too_short_file' in $output_selector:
            --too-short-paired-output='${too_short_paired_output}'
        #end if
        #if 'too_long_file' in $output_selector:
            --too-long-paired-output='${too_long_paired_output}'
        #end if
        #if 'untrimmed_file' in $output_selector:
            --untrimmed-paired-output='${untrimmed_paired_output}'
        #end if

    ]]></token>

        <xml name="adapter_sanitizer">
            <sanitizer>
                <valid initial="string.digits">
                    <add value="A"/><!--standard nucleotides-->
                    <add value="T"/>
                    <add value="C"/>
                    <add value="G"/>
                    
                    <add value="U"/><!--ambiguous nucleotides-->
                    <add value="R"/>
                    <add value="Y"/>
                    <add value="S"/>
                    <add value="W"/>
                    <add value="K"/>
                    <add value="M"/>
                    <add value="B"/>
                    <add value="D"/>
                    <add value="H"/>
                    <add value="V"/>
                    <add value="N"/>

                    <add value="X"/><!-- don't match any nucleotide-->
                    
                    <add value="{"/><!--specify repeats .. needs digits which are added as default-->
                    <add value="}"/>

                    <add value="^"/><!--anchoring-->
                    <add value="$"/>
                    <add value="."/>
                    <add value="("/><!--specify what to keep-->
                    <add value=")"/>

                </valid>
            </sanitizer>
        </xml>
        
        <xml name="adapter" token_name="" token_argument="" token_value="" token_label="">
            <param name="@NAME@" argument="@ARGUMENT@" type="text" value="@VALUE@" label="@LABEL@">
                <expand macro="adapter_sanitizer"/>
            </param>
        </xml>
        
        <xml name="adapter_select" token_name="" token_argument="" token_label="">
            <param name="@NAME@" argument="@ARGUMENT@" type="select" label="@LABEL@">
                <options from_data_table="adapters">
                    <filter type="sort_by" column="1" />
                </options>
                <expand macro="adapter_sanitizer"/>
            </param>
        </xml>

        <xml name="single_end_options" >

            <section name="r1" title="Read 1 Options" expanded="True">

                <repeat name="adapters" title="3' (End) Adapters" help="Sequence of an adapter ligated to the 3' end (paired data: of the first read). The adapter and subsequent bases are trimmed. If a '$' character is appended ('anchoring'), the adapter is only found if it is a suffix of the read. To search for a linked adapter, separate the 2 sequences with 3 dots (ADAPTER1...ADAPTER2), see Help below.">
                    <conditional name="adapter_source">
                        <param name="adapter_source_list" type="select" label="Source" >
                            <option value="builtin" selected="True">Standard (select from the list below)</option>
                            <option value="user">Enter custom sequence</option>
                            <option value="file">File from history</option>
                        </param>

                        <when value="user">
                            <param name="adapter_name" type="text" value="" optional="True" label="Enter custom 3' adapter name (Optional if Multiple output is 'No')" />
                            <expand macro="adapter" name="adapter" argument="-a" type="text" value="AATTGGCC" label="Enter custom 3' adapter sequence" />
                        </when>

                        <when value="builtin">
                            <expand macro="adapter_select" name="adapter" argument="-a" label="Choose 3' adapter"/>
                        </when>

                        <when value="file">
                            <param name="adapter_file" argument="-a" format="fasta" type="data" help="Should be of datatype FASTA" label="Choose file containing 3' adapters" />
                        </when>
                    </conditional>
                </repeat>

                <repeat name="front_adapters" title="5' (Front) Adapters" help="Sequence of an adapter ligated to the 5' end (paired data: of the first read). The adapter and any preceding bases are trimmed. Partial matches at the 5' end are allowed. If a '^' character is prepended ('anchoring'), the adapter is only found if it is a prefix of the read. To search for a linked adapter, separate the 2 sequences with 3 dots (ADAPTER1...ADAPTER2), see Help below.">
                    <conditional name="front_adapter_source">
                        <param name="front_adapter_source_list" type="select" label="Source">
                            <option value="builtin" selected="True">Standard (select from the list below)</option>
                            <option value="user">Enter custom sequence</option>
                            <option value="file">File from history</option>
                        </param>

                        <when value="user">
                            <param name="front_adapter_name" type="text" value="" optional="True" label="Enter custom 5' adapter name (Optional if Multiple output is 'No')" />
                            <expand macro="adapter" name="front_adapter" argument="-g" value="AATTGGCC" label="Enter custom 5' adapter sequence" />
                        </when>
                        <when value="builtin">
                            <expand macro="adapter_select" name="front_adapter" argument="-g" label="Choose 5' adapter"/>
                        </when>
                        <when value="file">
                            <param name="front_adapter_file" argument="-g" format="fasta" type="data" help="Should be of datatype &quot;FASTA&quot;" label="Choose file containing 5' adapters" />
                        </when>
                    </conditional>
                </repeat>

                <repeat name="anywhere_adapters" title="5' or 3' (Anywhere) Adapters" help="Sequence of an adapter that may be ligated to the 5' or 3' end (paired data: of the first read). Both types of matches as described under 3' und 5' Adapters are allowed. If the first base of the read is part of the match, the behavior is as with 5' Adapters, otherwise as with 3' Adapters. This option is mostly for rescuing failed library preparations - do not use if you know which end your adapter was ligated to!">
                    <conditional name="anywhere_adapter_source">
                        <param name="anywhere_adapter_source_list" type="select" label="Source">
                            <option value="builtin" selected="True">Standard (select from the list below)</option>
                            <option value="user">Enter custom sequence</option>
                            <option value="file">File from history</option>
                        </param>

                        <when value="user">
                            <param name="anywhere_adapter_name" type="text" value="" optional="True" label="Enter custom 5' or 3' adapter name (Optional if Multiple output is 'No')"  />
                            <expand macro="adapter" name="anywhere_adapter" argument="-b" value="AATTGGCC" label="Enter custom 5' or 3' adapter sequence" />
                        </when>
                        <when value="builtin">
                            <expand macro="adapter_select" name="anywhere_adapter" argument="-b" label="Choose 5' or 3' adapter"/>
                        </when>
                        <when value="file">
                            <param name="anywhere_adapter_file" argument="-b" format="fasta" type="data" help="Should be of datatype &quot;FASTA&quot;" label="Choose file containing 3' or 5' adapters" />
                        </when>
                    </conditional>
                </repeat>

                <param name="cut" argument="-u" type="integer" value="0" optional="True" label="Cut bases from reads before adapter trimming" help="Remove bases from each read (first read only if paired). If positive, remove bases from the beginning. If negative, remove bases from the end. This is applied *before* adapter trimming." />

            </section>

        </xml>

        <xml name="paired_end_options" >

            <!-- Read 1 Options -->
            <expand macro="single_end_options" />

            <!-- Read 2 Options -->
            <section name="r2" title="Read 2 Options" expanded="True">

                <repeat name="adapters2" title="3' (End) Adapters" help="Sequence of an adapter ligated to the 3' end of the second read in each pair. The adapter and subsequent bases are trimmed. If a '$' character is appended ('anchoring'), the adapter is only found if it is a suffix of the read. To search for a linked adapter, separate the 2 sequences with 3 dots (ADAPTER1...ADAPTER2), see Help below.">
                    <conditional name="adapter_source2">
                        <param name="adapter_source_list2" type="select" label="Source" >
                            <option value="builtin" selected="True">Standard (select from the list below)</option>
                            <option value="user">Enter custom sequence</option>
                            <option value="file">File from history</option>
                        </param>

                        <when value="user">
                            <param name="adapter_name2" type="text" value="" optional="True" label="Enter custom 3' adapter name (Optional)" />
                            <expand macro="adapter" name="adapter2" argument="-A" label="Enter custom 3' adapter sequence" value="AATTGGCC" />
                        </when>

                        <when value="builtin">
                            <expand macro="adapter_select" name="adapter2" argument="-A" label="Choose 3' adapter"/>
                        </when>
                        <when value="file">
                            <param name="adapter_file2" argument="-a" format="fasta" type="data" help="Should be of datatype &quot;FASTA&quot;" label="Choose file containing 3' adapters" />
                        </when>
                    </conditional>
                </repeat>

                <repeat name="front_adapters2" title="5' (Front) Adapters" help="Sequence of an adapter ligated to the 5' end of the second read in each pair. The adapter and any preceding bases are trimmed. Partial matches at the 5' end are allowed. If a '^' character is prepended ('anchoring'), the adapter is only found if it is a prefix of the read. To search for a linked adapter, separate the 2 sequences with 3 dots (ADAPTER1...ADAPTER2), see Help below.">
                    <conditional name="front_adapter_source2">
                        <param name="front_adapter_source_list2" type="select" label="Source">
                            <option value="builtin" selected="True">Standard (select from the list below)</option>
                            <option value="user">Enter custom sequence</option>
                            <option value="file">File from history</option>
                        </param>

                        <when value="user">
                            <param name="front_adapter_name2" type="text" value="" label="Enter custom 5' adapter name (Optional)" />
                            <expand macro="adapter" name="front_adapter2" argument="-G" value="AATTGGCC" label="Enter custom 5' adapter sequence" />
                        </when>
                        <when value="builtin">
                            <expand macro="adapter_select" name="front_adapter2" argument="-G" label="Choose 5' adapter"/>
                        </when>
                        <when value="file">
                            <param name="front_adapter_file2" argument="-g" format="fasta" type="data" help="Should be of datatype &quot;FASTA&quot;" label="Choose file containing 5' adapters" />
                        </when>
                    </conditional>
                </repeat>

                <repeat name="anywhere_adapters2" title="5' or 3' (Anywhere) Adapters" help="Sequence of an adapter that may be ligated to the 5' or 3' end of the second read in each pair. Both types of matches as described under under 3' und 5' Adapters are allowed. If the first base of the read is part of the match, the behavior is as with 5' Adapters, otherwise as with 3' Adapters. This option is mostly for rescuing failed library preparations - do not use if you know which end your adapter was ligated to!">
                    <conditional name="anywhere_adapter_source2">
                        <param name="anywhere_adapter_source_list2" type="select" label="Source">
                            <option value="builtin" selected="True">Standard (select from the list below)</option>
                            <option value="user">Enter custom sequence</option>
                            <option value="file">File from history</option>
                        </param>

                        <when value="user">
                            <param name="anywhere_adapter_name2" type="text" value="" optional="True" label="Enter custom 5' or 3' adapter name (Optional)" />
                            <expand macro="adapter" name="anywhere_adapter2" argument="-B" label="Enter custom 5' or 3' adapter sequence" value="AATTGGCC" />
                        </when>
                        <when value="builtin">
                            <expand macro="adapter_select" name="anywhere_adapter2" argument="-B" type="select" label="Choose 5' or 3' adapter"/>
                        </when>
                        <when value="file">
                            <param name="anywhere_adapter_file2" argument="-b" format="fasta" type="data" help="Should be of datatype &quot;FASTA&quot;" label="Choose file containing 3' or 5' adapters" />
                        </when>
                    </conditional>
                </repeat>

            <param name="cut2" argument="-U" type="integer" value="0" optional="True" label="Cut bases from the second read in each pair." help="Remove bases from the beginning or end of each read before trimming adapters. If positive, the bases are removed from the beginning of each read. If negative, the bases are removed from the end of each read." />

            </section>

        </xml>

        <xml name="inherit_format_1">
            <actions>
                <conditional name="library.type">
                    <when value="single">
                        <action type="format">
                            <option type="from_param" name="library.input_1" param_attribute="ext" />
                        </action>
                    </when>
                    <when value="paired">
                        <action type="format">
                            <option type="from_param" name="library.input_1" param_attribute="ext" />
                        </action>
                    </when>
                </conditional>
            </actions>
        </xml>

        <xml name="inherit_format_2">
            <actions>
                <conditional name="library.type">
                    <when value="paired">
                        <action type="format">
                            <option type="from_param" name="library.input_2" param_attribute="ext" />
                        </action>
                    </when>
                </conditional>
            </actions>
        </xml>

</macros>