view amas_concat.xml @ 0:fb24e1904d08 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/amas commit 158ec0e635067d354c425baf14b95cb616fd93c4
author iuc
date Tue, 02 Dec 2025 09:26:01 +0000
parents
children
line wrap: on
line source

<tool id="amas_concat" name="AMAS concat" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
    <description>concatenate multiple alignments</description>

    <macros>
        <import>macros.xml</import>
    </macros>

    <xrefs>
        <xref type="bio.tools">amas</xref>
    </xrefs>

    <expand macro="requirements" />
    <expand macro="version_command" />

    <command detect_errors="exit_code"><![CDATA[
        #import re
        set -eu;

        @SNIFF_INPUT_FORMAT@

        @CHECK_INTERLEAVED@

        @SYMLINK_INPUTS@

        python -m amas.AMAS
            concat
            --concat-part partitions.txt
            --concat-out concatenated.out
            --part-format $part_format
            --out-format $out_format
            --in-files
                @INPUT_FILENAMES@
            --in-format "\${IN_FORMAT}"
            --data-type $data_type
            --cores "\${GALAXY_SLOTS:-1}"
            $check_align
    ]]></command>

    <inputs>
        <param name="input_files" type="data" format="fasta,phylip,nex" label="Sequences to concatenate" multiple="true" 
               help="Provide pre-aligned FASTA/PHYLIP/NEXUS files (DNA or protein); mixes of unaligned reads or contigs will produce meaningless results." />
        <expand macro="output_format" label="Select output format for concatenated alignment" />
        <param name="part_format" type="select" label="Format of the partitions file"
               help="A file defining how the concatenated alignment is split into separate gene/locus regions. Each line specifies a partition name and its position range (e.g., 'gene1 = 1-500' or 'DNA, gene1 = 1-500' for RAxML format).">
            <option value="unspecified" selected="true">unspecified</option>            
            <option value="nexus">nexus</option>
            <option value="raxml">raxml</option>
        </param>
        <expand macro="data_type" />
        <expand macro="check_align" />
    </inputs>

    <outputs>
        <data name="output" from_work_dir="concatenated.out" format="txt" label="${tool.name} on ${on_string}: Concatenated alignment">
            <change_format>
                <when input="out_format" value="fasta" format="fasta" />
                <when input="out_format" value="phylip" format="phylip" />
                <when input="out_format" value="phylip-int" format="phylip" />
                <when input="out_format" value="nexus" format="nex" />
                <when input="out_format" value="nexus-int" format="nex" />
            </change_format>
        </data>
        <data name="partitions_out" from_work_dir="partitions.txt" format="txt" label="${tool.name} on ${on_string}: Partition file">
            <change_format>
                <!-- Untitled and RAxML partition formats have no current equivalent datatypes so are outputted as txt by default -->
                <when input="part_format" value="nexus" format="nex" />
            </change_format>
        </data>
    </outputs>

    <tests>
        <test expect_num_outputs="2">
            <param name="input_files" value="inputs/concat_1.fasta,inputs/concat_2.fasta" />
            <param name="out_format" value="phylip" />
            <param name="part_format" value="nexus" />
            <param name="data_type" value="dna" />
            <param name="check_align" value="false" />
            <output name="output" file="outputs/expected_concat.phylip" ftype="phylip" />
            <output name="partitions_out" file="outputs/expected_partitions.nex" ftype="nex" />
        </test>
        <test expect_num_outputs="2">
            <param name="input_files" value="inputs/concat_1.fasta,inputs/concat_2.fasta" />
            <param name="out_format" value="fasta" />
            <param name="part_format" value="raxml" />
            <param name="data_type" value="dna" />
            <param name="check_align" value="false" />
            <output name="output" file="outputs/expected_concat_fasta.fas" ftype="fasta" />
            <output name="partitions_out" file="outputs/expected_partitions_raxml.txt" ftype="txt" />
        </test>
        <!-- Interleave tests: amas starts interleaving when sequences have lines > 500 characters -->
        <test expect_num_outputs="2">
            <param name="input_files" value="inputs/concat_int_1.phylip,inputs/concat_int_2.phylip" />
            <param name="out_format" value="nexus-int" />
            <param name="part_format" value="unspecified" />
            <param name="data_type" value="dna" />
            <param name="check_align" value="false" />
            <output name="output" file="outputs/expected_concat_int.nex" ftype="nex" />
            <output name="partitions_out" file="outputs/expected_partitions_int.txt" ftype="txt" />
        </test>
        <!-- Nexus interleave tests for: 'INTERLEAVE', 'Interleave=yes;', no interleave flag -->
        <test expect_num_outputs="2">
            <param name="input_files" value="inputs/concat_int_1.nex,inputs/concat_int_2.nex,inputs/concat_int_3.nex" />
            <param name="out_format" value="nexus-int" />
            <param name="part_format" value="unspecified" />
            <param name="data_type" value="dna" />
            <param name="check_align" value="false" />
            <output name="output" file="outputs/expected_concat_int_multi.nex" ftype="nex" />
            <output name="partitions_out" file="outputs/expected_partitions_int_multi.txt" ftype="txt" />
        </test>
    </tests>

    <help><![CDATA[
        **What it does**

        AMAS Concat combines multiple sequence alignments into a single concatenated alignment, commonly used in phylogenomic analyses.

        **Inputs**

        - **Multiple alignment files**: Select 2 or more pre-aligned sequence files (FASTA, PHYLIP, or NEXUS format)
        - **Input format**: Specify the format of your input files
        - **Partition format**: Specify how you want the partition file to be formatted (Unspecified, RAxML, NEXUS)
        - **Data type**: Choose DNA for nucleotide sequences or Protein for amino acid sequences
        - **Output format**: Select the desired format for the concatenated alignment

        **Outputs**

        1. **Concatenated alignment**: A single file containing all input alignments joined end-to-end
        2. **Partitions file**: Defines the boundaries of each original alignment within the concatenated file

        @PARTITIONS_HELP@

        **Use cases**

        - **Multi-locus phylogenomics**: Combine hundreds of genes for species tree inference
        - **Partitioned phylogenetic analysis**: Apply different evolutionary models to different genes using tools like RAxML or IQ-TREE
        - **Supermatrix construction**: Create dataset for concatenation-based phylogenetic methods
        - **Increased phylogenetic signal**: Leverage information from multiple loci to resolve difficult nodes
        - **Comparative analyses**: Prepare datasets for testing hypotheses across multiple genomic regions

        @AMAS_SHARED_HELP@
    ]]></help>

    <expand macro="citations" />
</tool>