view rpbasicdesign.xml @ 2:8a087d7546b8 draft

"planemo upload commit f40274f6b9f6a15eb4022aab21286d4c96cd8475-dirty"
author tduigou
date Mon, 28 Mar 2022 14:16:59 +0000
parents de9f53630349
children e4821c820f7c
line wrap: on
line source

<tool id="rpbasicdesign" name="BasicDesign" version="@TOOL_VERSION@" profile="19.09">
    <description>Build DNA-BOT input files from rpSBML</description>
    <macros>
        <token name="@TOOL_VERSION@">1.0.1</token>
    </macros>
    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">rpbasicdesign</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
        python -m rpbasicdesign.cli
        --rpsbml_file '$rpsbml_file'
        #if $adv.parts_files
            #set files = '" "'.join([str($file) for $file in $adv.parts_files])
            --parts_files "${files}"
        #end if
        --lms_id '$adv.lms_id'
        --lmp_id '$adv.lmp_id'
        --backbone_id '$backbone_id'
        --sample_size '$sample_size'
        $adv.cds_permutation
        --o_dnabot_dir 'out/dnabot_in'
        $adv.sbol_output
        --max_enz_per_rxn $adv.max_enz_per_rxn
    ]]></command>
    <inputs>
        <param name="rpsbml_file" type="data" format="xml" label="rpSBML file" help="SBML file from which enzymes UniProt IDs will be collected."/>
        <param argument="--backbone_id" type="text" value="BASIC_SEVA_37_CmR-p15A.1" label="Backbone part ID" help="Part ID to be used as the backbone.">
            <sanitizer invalid_char="">
                <valid initial="string.letters,string.digits">
                    <add value=":" />
                    <add value="." />
                    <add value="-" />
                    <add value="_" />
                </valid>
            </sanitizer>
            <validator type="empty_field" message="Backbone ID is required"/>
            <validator type="regex">[0-9a-zA-Z_:-]+</validator>
        </param>
        <param argument="--sample_size" type="integer" value="88" min="1" max="88" label="Number of constructs to generate" help="Number of construct to generate."/>
        <section name="adv" title="Advanced Options" expanded="false">
            <param name="parts_files" type="data" format="csv" optional="true" multiple="true" label="Linkers and user parts" help="List of files providing available linkers and user parts (backbone, promoters, ...) for constructs. Default: Standard Biolegio Parts" />
            <param argument="--lms_id" type="text" value="LMS" label="LMS part ID" help="Part ID to be used as the LMS methylated linker." >
                <sanitizer invalid_char="">
                    <valid initial="string.letters,string.digits">
                        <add value=":" />
                        <add value="-" />
                        <add value="_" />
                        <add value="." />
                    </valid>
                </sanitizer>
                <validator type="empty_field" message="LMS ID is required"/>
            </param>
            <param argument="--lmp_id" type="text" value="LMP" label="LMP part ID" help="Part ID to be used as the LMP methylated linker.">
                <sanitizer invalid_char="">
                    <valid initial="string.letters,string.digits">
                        <add value=":" />
                        <add value="-" />
                        <add value="_" />
                        <add value="." />
                    </valid>
                </sanitizer>
                <validator type="empty_field" message="LMP ID is required"/>
            </param>
            <param argument="--cds_permutation" type="boolean" truevalue="--cds_permutation true" falsevalue="--cds_permutation false" checked="true" label="Perform CDS permutation?" help="Whether all combinations of CDS permutation should be built." />
            <param argument="--sbol_output" type="boolean" checked="false" truevalue="--o_sbol_dir out/sbol_export" falsevalue="" label="Output SBOL results?" help="Output folder to write SBOL depictions of constructs." />
            <param argument="--max_enz_per_rxn" type="integer" value="1" min="1" max="99" label="Maximum number of enyzme to consider per reaction." help="Maximum number of enyzme to consider per reaction. If more enzymes are available for a given reaction, then only the last one listed in the MIRIAM annotation section will be kept."/>
        </section>
    </inputs>
    <outputs>
        <data name="Constructs" format="csv" from_work_dir="out/dnabot_in/constructs.csv" label="${tool.name} on ${rpsbml_file.name}: constructs" />
        <data name="User parts plate" format="csv" from_work_dir="out/dnabot_in/user_parts_plate.csv" label="${tool.name} on ${rpsbml_file.name}: User parts plate"/>
        <data name="Biolegio plate" format="csv" from_work_dir="out/dnabot_in/biolegio_plate.csv" label="${tool.name} on ${rpsbml_file.name}: Biolegio plate"/>
        <collection name="sbol_dir" type="list" label="${tool.name} on ${rpsbml_file.name}: SBOL constructs">
            <filter> adv['sbol_output'] </filter>
            <discover_datasets pattern="__designation_and_ext__" format="xml" directory="out/sbol_export" />
        </collection>
    </outputs>
    <tests>
        <test>
            <!-- test 1: check if identical outputs are produced (Lycopene input)-->
            <param name="rpsbml_file" value="lycopene_CrtEBI_from_selenzy.xml" />
            <param name="sample_size" value="3" />
            <output name="Constructs" file="constructs_lycopene.csv" ftype="csv" compare="diff">
                <assert_contents>
                    <has_n_lines n="4"/>
                </assert_contents>
            </output>
            <output name="User parts plate" file="user_parts_plate_lycopene.csv" ftype="csv" compare="diff"/>
            <output name="Biolegio plate" file="biolegio_plate_lycopene.csv" ftype="csv" compare="diff"/>
            <param name="sbol_output" value="--o_sbol_dir out/sbol_export" />
            <output_collection name="sbol_dir" type="list" count="3">
                <element name="BASIC_construct_A1">
                    <assert_contents>
                        <is_valid_xml />
                        <has_text text="BASIC_construct_A1" />
                        <has_n_lines n="339" />
                    </assert_contents>
                </element>
                <element name="BASIC_construct_B1">
                    <assert_contents>
                        <is_valid_xml />
                        <has_text text="BASIC_construct_B1" />
                        <has_n_lines n="339" />
                    </assert_contents>
                </element>
                <element name="BASIC_construct_C1">
                    <assert_contents>
                        <is_valid_xml />
                        <has_text text="BASIC_construct_C1" />
                        <has_n_lines n="339" />
                    </assert_contents>
                </element>
            </output_collection>
        </test>
        <test>
            <!-- test 2: check if identical outputs are produced (Muconate input)-->
            <param name="rpsbml_file" value="muconate_example.xml" />
            <param name="sample_size" value="88" />
            <output name="Constructs" file="constructs_muconate.csv" ftype="csv" compare="diff">
                <assert_contents>
                    <has_n_lines n="89"/>
                </assert_contents>
            </output>
            <output name="User parts plate" file="user_parts_plate_muconate.csv" ftype="csv" compare="diff"/>
            <output name="Biolegio plate" file="biolegio_plate_muconate.csv" ftype="csv" compare="diff"/>
        </test>
    </tests>
    <help><![CDATA[
rpbasicdesign
================

Convert rpSBML enzyme info in to BASIC construct. UniProt IDs corresponding
enzyme variants are extracted rpSBMl files. Promoters and RBSs are randomly
chosen from a default list. CDSs, in other words gene variants, of enzymes are
randomly chosen from amongst the UniProt IDs extracted. Constructs generated
can be stored as (i) a CSV file ready to be used by DNA-Bot, (ii) as SBOL
files.

Input
-----

Required:

* **rpsbml_file**\ : (string) rpSBML file from which enzymes UniProt IDs will be collected.

Advanced options:

* **parts_files**\ : (string) List of files providing available linkers and user parts (backbone, promoters, ...) for constructs. Default: [data/biolegio_parts.csv, data/user_parts.csv]
* **lms_id**\ : (string) part ID to be used as the LMS methylated linker. Default: LMS.
* **lmp_id**\ : (string) part ID to be used as the LMP methylated linker. Default: LMP.
* **backbone_id**\ : (string) part ID to be used as the backbone. Default: BASIC_SEVA_37_CmR-p15A.1.
* **sample_size**\ : (int) Number of construct to generate. Default: 88.
* **cds_permutation**\ : (boolean) Whether all combinations of CDS permutation should be built Default: true.
* **max_enz_per_rxn**\ : (integer) Maximum number of enyzme to consider per reaction. If more enzymes are available for a given reaction, then only the last one listed in the MIRIAM annotation section will be kept. (Default: 1). 

Output
------

* **o_dnabot_dir**\ : (string) Output folder to write construct and plate files. It will be created if it does not exist yet. Existing files will be overwritten. Default: out/dnabot_in.
* **o_sbol_dir**\ : (string) Output folder to write SBOL depictions of constructs. Existing files will be overwritten. Default: not output.

Project Links
------------------

* `GitHub <https://github.com/brsynth/rpbasicdesign>`_

License
-------

* `MIT <https://github.com/brsynth/rpbasicdesign/blob/master/LICENSE.txt>`_

    ]]></help>
    <citations>
        <citation type="doi">10.1093/synbio/ysaa010</citation>
    </citations>
</tool>