view salsa2.xml @ 5:58a870ef434c draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/salsa2 commit 270d2e701478bcf3f7cd1db8e188eb2cd69f5db5
author iuc
date Thu, 01 Aug 2024 11:41:30 +0000
parents 9a22227bb6d0
children
line wrap: on
line source

<tool id="salsa" name="SALSA" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.01">
    <description>scaffold long read assemblies with Hi-C</description>
    <macros>
        <token name="@TOOL_VERSION@">2.3</token>
        <token name="@VERSION_SUFFIX@">5</token>
    </macros>
    <xrefs>
        <xref type="bio.tools">SALSA</xref>
    </xrefs>
    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">salsa2</requirement>
        <requirement type="package" version="1.11">samtools</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
ln -s '$fasta_in' input.fasta &&
samtools faidx input.fasta &&

run_pipeline.py
-a '$fasta_in'
-l input.fasta.fai
#if $enzyme_conditional.enzyme_options == 'preconfigured':
    #if $enzyme_conditional.preconfigured_enzymes == 'dovetail'
        -e 'GATC'
    #else if $enzyme_conditional.preconfigured_enzymes == 'arima1'
        -e 'GATC,GANTC'
    #else if $enzyme_conditional.preconfigured_enzymes == 'arima2'
        -e 'GATC,GANTC,CTNAG,TTAA'
    #else if $enzyme_conditional.preconfigured_enzymes == 'omnic'
        -e 'DNASE'
    #end if
#else:
    -e '${enzyme_conditional.manual_enzyme}'
#end if
-b '$bed_file'
#if str($cutoff):
    -c '$cutoff'
#end if
#if $gfa_file:
    -g '$gfa_file'
#end if
#if $iter:
    -i '$iter'
#end if
#if $gensize:
    -s  '$gensize'
#end if
-m '$clean'
-o ./out

&& 

## The tool seems to generate malformed AGP. Print exactly
## 9 tab-delimited columns, adding blank columns or
## removing columns if necessary.
awk -F'\t'
'{while(NF<9)\$0=\$0 FS""; if(NF>9)\$9=\$9 FS \$(NF--); print \$1,\$2,\$3,\$4,\$5,\$6,\$7,\$8,\$9}'
OFS='\t' out/scaffolds_FINAL.agp 
| cut -f1-9
> out/scaffolds_FINAL.fixed.agp

    ]]></command>
    <inputs>
        <param name="fasta_in" type="data" format="fasta" label="Initial assembly file" help="Headers must not contain ':'."/>
        <param name="bed_file" type="data" format="bed" label="Bed alignment" help="To start scaffolding with SALSA, reads need to be mapped to the assembly. BWA or BOWTIE2 are recommended. SALSA requires a bed file as the input. The alignment bam file can be converted using the bamToBed command from the Bedtools package."/>
        <param name="cutoff" argument="-c" type="integer" min="1" label="Cutoff" optional="true" help="Minimum contig length to scaffold"/>
        <param name="gfa_file" argument="-g" type="data" format="gfa1,gfa2" optional="true" label="Sequence graphs" help="An assembly graph can be optionally provided to guide the scaffolding, potentially reducing the scaffolding errors"/>
        <conditional name="enzyme_conditional">
            <param name="enzyme_options" type="select" label="Enzyme selection" help="Hi-C experiments can use different restriction enzymes. The enzyme frequency in contigs is used to normalize the Hi-C interaction frequency. Note that you need to specify the actual sequence of the cutting site for a restriction enzyme and not the enzyme name. You can also specify DNASE as an enzyme if you use an enzyme-free prep, e.g. Omni-C.">
                <option value="preconfigured">Preconfigured restriction enzymes</option>
                <option value="specific">Enter a specific sequence</option>
            </param>
            <when value="preconfigured">
                <param name="preconfigured_enzymes" type="select" multiple="true" label="Preconfigured enzymes">
                    <option value="dovetail">Dovetail Chicago, Dovetail Hi-C or Phase: GATC</option>
                    <option value="arima1">Arima Hi-C 1.0: GATC, GANTC</option>
                    <option value="arima2">Arima Hi-C 2.0: GATC, GANTC, CTNAG, TTAA</option>
                    <option value="omnic">Dovetail Omni-C: enzyme-free prep</option>
                </param>
            </when>
            <when value="specific">
                <param name="manual_enzyme" argument="-e" type="text" label="Restriction enzyme sequence(s)" help="Restriction enzyme sequence. If multiple were used, include all as a comma separated list without spaces (ex. 'GATC,AAGCTT').">
                    <validator type="expression" message="Only alphabetical letters and the comma can be used in to define restriction enzym sequences.">value.replace(',', '').isalpha()</validator>
                </param>
            </when>
        </conditional>
        <param name="iter" argument="-i" type="integer" min="0" max="20" label="Iterations" optional="true" help="SALSA will scaffold through sequential iterations. The default number of iterations is 3. Increasing the number of iterations will potentially increase the number of joins, however it could also introduce additional misjoins"/>
        <param name="clean" argument="-m" type="boolean" label="Clean Assembly" checked="false" truevalue="yes" falsevalue="no" help="Set this option to 'yes' if you want to find misassemblies in input assembly"/>
        <param name="gensize" argument="-s" type="integer" label="Expected Genome Size" optional="true" help="Expected Genome size of the assembled genome. If not set, Salsa will estimate genome size."/>
    </inputs>
    <outputs>
        <data name="scaffolds_fasta" format="fasta" from_work_dir="out/scaffolds_FINAL.fasta" label="${tool.name} on ${on_string}: FASTA assembly"/>
        <data name="scaffolds_agp" format="agp" from_work_dir="out/scaffolds_FINAL.fixed.agp" label="${tool.name} on ${on_string}: agp output"/>
    </outputs>
    <tests>
        <test>
            <param name="fasta_in" value="test.fasta"/>
            <param name="bed_file" value="test.bed"/>
            <param name="gfa_file" value="test.gfa1"/>
            <conditional name="enzyme_conditional">
                <param name="enzyme_options" value="specific"/>
                <param name="manual_enzyme" value="GATC,GANTC"/>
            </conditional>
            <param name="cutoff" value="1000"/>
            <param name="iter" value="3"/>
            <param name="clean" value="yes"/>
            <output name="scaffolds_fasta" file="out.fasta"/>
            <output name="scaffolds_agp" file="out.agp"/>
        </test>
        <!--Test predefined enzyme-->
        <test>
            <param name="fasta_in" value="test.fasta"/>
            <param name="bed_file" value="test.bed"/>
            <param name="gfa_file" value="test.gfa1"/>
            <conditional name="enzyme_conditional">
                <param name="enzyme_options" value="preconfigured"/>
                <param name="preconfigured_enzymes" value="arima1"/>
            </conditional>
            <param name="cutoff" value="1000"/>
            <param name="iter" value="3"/>
            <param name="clean" value="yes"/>
            <output name="scaffolds_fasta" file="arima1.fasta"/>
            <output name="scaffolds_agp" file="arima1.agp"/>
        </test>
        <!--Test omnic-->
        <test>
            <param name="fasta_in" value="test.fasta"/>
            <param name="bed_file" value="test.bed"/>
            <param name="gfa_file" value="test.gfa1"/>
            <conditional name="enzyme_conditional">
                <param name="enzyme_options" value="preconfigured"/>
                <param name="preconfigured_enzymes" value="arima1"/>
            </conditional>
            <param name="cutoff" value="1000"/>
            <param name="iter" value="3"/>
            <param name="clean" value="yes"/>
            <output name="scaffolds_fasta" file="omnic.fasta"/>
            <output name="scaffolds_agp" file="omnic.agp"/>
        </test>
    </tests>
    <help><![CDATA[
.. class:: infomark

**Purpose**

SALSA (Simple AssembLy ScAffolder) is a scaffolding tool based on a computational method that exploits the genomic proximity
information in Hi-C data sets for long range scaffolding of de novo genome assemblies.

----

.. class:: infomark

**Mapping reads**

To start the scaffolding, first step is to map reads to the assembly. We recommend using `BWA <https://usegalaxy.eu/root?tool_id=toolshed.g2.bx.psu.edu/repos/devteam/bwa/bwa_mem/0.7.17.2>`_
or `BOWTIE2 <https://usegalaxy.eu/root?tool_id=toolshed.g2.bx.psu.edu/repos/devteam/bowtie2/bowtie2/2.4.2+galaxy0>`_ aligner to map reads. The read mapping generates a bam file. SALSA requires
BED file as the input. This can be done using the bamToBed command from the `Bedtools package <http://bedtools.readthedocs.io/en/latest/>`_. Also, SALSA requires BED files to be sorted by the
read name, rather than the alignment coordinates. Once you have bam file, you can run following commands to get the bam file needed as an input to SALSA.

Since Hi-C reads and alignments contain experimental artifacts, the alignments needs some postprocessing. To align and postprocess
the alignments, you can use the pipeline released by Arima Genomics which can be found in the `GitHub repository <https://github.com/ArimaGenomics>`_.

Additional information on how to generate/filter the bam `here <https://github.com/marbl/SALSA#mapping-reads>`_.

    ]]></help>
    <citations>
        <citation type="doi">10.1101/261149</citation>
        <citation type="doi">10.1186/s12864-017-3879-z</citation>
    </citations>
</tool>