view uniprotxml_downloader.xml @ 5:265c35540faa draft default tip

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/uniprotxml_downloader commit ba0d41c2dc0dbc0a0d3d200f51e67c6598c7e4e9
author galaxyp
date Fri, 04 Nov 2022 15:08:37 +0000
parents 12692567c7f9
children
line wrap: on
line source

<tool id="uniprotxml_downloader" name="UniProt" version="2.3.0" profile="21.01">
    <description>download proteome as XML or fasta</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <requirements>
        <requirement type="package" version="2.25.1">requests</requirement>
    </requirements>
    <stdio>
        <exit_code range="1:"  level="fatal" description="Error downloading proteome." />
    </stdio>
    <command>
<![CDATA[
python '$__tool_directory__/uniprotxml_downloader.py'
#if $taxid.input_choice == 'common':
    --taxon $taxid.organism
    --field taxonomy_id
    #if $taxid.reviewed:
        --reviewed=$taxid.reviewed
    #end if
#elif $taxid.input_choice == 'taxids':
    --field $taxid.field
    #for $id in $taxid.taxons.split(','):
        -t '$id'
    #end for
#elif $taxid.input_choice == 'history':
    --field $taxid.field
    --input='${taxid.taxon_file}'
    --column=#echo int(str($taxid.column)) - 1#
#end if
--format $format
--output '${proteome}'
]]>
    </command>
    <inputs>
        <conditional name="taxid">
            <param name="input_choice" type="select" label="Select">
                <option value="common">A Common Organism</option>
                <option value="taxids">A manually entered list of Taxon IDs or names</option>
                <option value="history">A history dataset with a column containing Taxon IDs or names</option>
            </param>
            <when value="common">
                <param name="organism" type="select" label="Common Organisms"
                       help="select species for protein database">
                    <options from_file="uniprot_taxons.loc">
                        <column name="name" index="0" />
                        <column name="value" index="1" />
                    </options>
                </param>
                <param name="reviewed" type="select" label="filter by reviewed status" optional="true">
                    <help><![CDATA[
                    UniProtKB/TrEMBL (unreviewed)is a large, automatically annotated database that may contain 
                    redundant sequences, but there is a higher chance peptides will be identified. 
                    UniProtKB/Swiss-Prot (reviewed) is a smaller, manually annotated database with 
                    less of a chance peptides will be identified but less sequence redundancy
                    ]]>
                    </help>
                    <option value="yes">UniProtKB/Swiss-Prot (reviewed only)</option>
                    <option value="no">UniProtKB/TrEMBL (unreviewed only)</option>
                </param>
            </when>
            <when value="taxids">
                <param name="taxons" type="text" label="NCBI Taxon IDs or names" 
                       help="Enter one or more Organsim IDs (separated by commas) from http://www.uniprot.org/proteomes/">
                    <validator type="regex" message="OrganismID[,OrganismID]">^\w+( \w+)*(,\w+( \w+)*)*$</validator>
                </param>
                <expand macro="query_field"/>
            </when>
            <when value="history">
                <param name="taxon_file" type="data" format="tabular,txt" label="Dataset (tab separated) with Taxon ID/Name column"/>
                <param name="column" type="data_column" data_ref="taxon_file" label="Column with Taxon ID/name"/>
                <expand macro="query_field"/>
            </when>
        </conditional>
        <param name="format" type="select" label="uniprot output format">
            <option value="xml">xml</option>
            <option value="fasta">fasta</option>
        </param>
    </inputs>
    <outputs>
        <data format="uniprotxml" name="proteome" label="UniProt.${format}">
            <change_format>
                <when input="format" value="fasta" format="fasta" />
            </change_format>
        </data>
    </outputs>
    <tests>
        <test>
            <param name="input_choice" value="taxids"/>
            <param name="taxons" value="1566990"/>
            <param name="format" value="xml"/>
            <output name="proteome">
                <assert_contents>
                    <has_text text="&lt;/uniprot&gt;" />
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="input_choice" value="taxids"/>
            <param name="taxons" value="765963,512562"/>
            <param name="field" value="taxonomy_id"/>
            <param name="format" value="fasta"/>
            <output name="proteome">
                <assert_contents>
                    <has_text text="Shi470" />
                    <has_text text="PeCan4" />
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="input_choice" value="taxids"/>
            <param name="taxons" value="Shi470,PeCan4"/>
            <param name="field" value="taxonomy_name"/>
            <param name="format" value="fasta"/>
            <output name="proteome">
                <assert_contents>
                    <has_text text="Shi470" />
                    <has_text text="PeCan4" />
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="input_choice" value="history"/>
            <param name="taxon_file" value="Helicobacter_strains.tsv" ftype="tabular"/>
            <param name="column" value="1"/>
            <param name="field" value="taxonomy_name"/>
            <param name="format" value="fasta"/>
            <output name="proteome">
                <assert_contents>
                    <has_text text="Shi470" />
                    <has_text text="PeCan4" />
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="input_choice" value="history"/>
            <param name="taxon_file" value="Helicobacter_strains_ids.tsv" ftype="tabular"/>
            <param name="column" value="2"/>
            <param name="field" value="taxonomy_id"/>
            <param name="format" value="fasta"/>
            <output name="proteome">
                <assert_contents>
                    <has_text text="Shi470" />
                    <has_text text="PeCan4" />
                </assert_contents>
            </output>
        </test>
    </tests>
    <help>
<![CDATA[
**UniProt Downloader**

Downloads either a UniProtXML file or a fasta file from UniProtKB

The Morpheus proteomics search algorithm can use the UniProtXML format as a search database.

Available proteomes: http://www.uniprot.org/proteomes/

Available taxon names: http://www.uniprot.org/taxonomy/

Example taxon: http://www.uniprot.org/taxonomy/512562

Taxon IDs or names can be entered as text or read from a column in a tabular dataset from your history.

Example IDs and names releated to the Bacteria Helicobacter pylori (strain Shi470) ::


 - 512562
 - Shi470
 - Helicobacter pylori
 - Helicobacter
 - Helicobacteraceae


UniProtKB help: http://www.uniprot.org/help/uniprotkb

]]>
    </help>
    <citations>
      <citation type="doi">10.1093/nar/gku989</citation>
    </citations>
</tool>