diff mashmap.xml @ 0:a3a6b0b31f2d draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/mashmap commit 4d07f324b25c62ef0b56b22dfff84af87d54d142
author iuc
date Mon, 26 Feb 2024 11:41:43 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mashmap.xml	Mon Feb 26 11:41:43 2024 +0000
@@ -0,0 +1,143 @@
+<tool name="mashmap" id="mashmap" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="22.05">
+    <description>Fast local alignment boundaries</description>
+    <macros>
+        <token name="@TOOL_VERSION@">3.1.3</token>
+        <token name="@VERSION_SUFFIX@">0</token>
+    </macros>
+    <requirements>
+        <requirement version="@TOOL_VERSION@" type="package">mashmap</requirement>
+    </requirements>
+    <version_command>mashmap --version</version_command>
+    <command><![CDATA[
+#if len($reflist) > 1:
+    #for $r in $reflist:
+        echo '$r' >> ./reflist &&
+    #end for
+    cat ./reflist &&
+#end if
+#if len($query) > 1:
+    #for $q in $query:
+        echo '$q' >> ./query &&
+    #end for
+    cat ./query &&
+#end if
+mashmap
+    --threads \${GALAXY_SLOTS:-1}
+    --perc_identity $perc_identity
+    --segLength $seqLength
+    --filter_mode $filter_mode
+    $reportPercentage
+    $dense
+    $noMerge
+    $noHgFilter
+    #if $kmerThreshold:
+        --kmerThreshold $kmerThreshold
+    #end if
+    #if $kmerComplexity
+        --kmerComplexity $kmerComplexity
+    #end if
+    #if int($sketchSize) > 0:
+        -J $sketchSize
+    #end if
+    #if len($reflist) == 1:
+        -r '$reflist'
+    #else
+        --rl ./reflist
+    #end if
+    #if len($query) == 1:
+        -q '$query'
+    #else
+        --ql ./query
+    #end if
+
+]]> </command>
+    <inputs>
+        <param name="query" type="data" format="fasta,fasta.gz,fastq,fastq.gz" multiple="true"
+            label="Query sequences to mash against the references supplied below"/>
+        <param name="reflist" type="data" format="fasta,fasta.gz,fastq,fastq.gz" multiple="true"
+            label="Reference or references to mash the query sequences on"
+            help="Choose one or more reference sequences to mash the query sequences against."/>
+        <param argument="--perc_identity" type="float" value="85.0" label="Identity threshold"
+            help="By default, it is set to 85, implying mappings with 85 or more identity should be reported. For example, it can be set to 80to account for more noisy long-read datasets or 95 for mapping human genome assembly to human reference."/>
+        <param argument="--seqLength" type="integer" value="5000" min="1" label="Minimum segment length"
+            help="Default is 5,000 bp. Sequences below this length are ignored. Mashmap provides guarantees on reporting local alignments of length twice this value."/>
+        <param argument="--sketchSize" type="integer" value="0" label="Sketch size - leave 0 for automatic setting based"
+            help="This parameter sets the seed density of the winnowing scheme, gauranteeing that the minhash will be calculated from a sample of sketchSize k-mers for each segment. It is set automatically based on --pi but can be manually set as well."/>
+        <param argument="dense" type="boolean" truevalue="--dense" falsevalue="" label="Dense sketching"
+            help="This flag will increase the seed density substantially, resulting in a density of roughly 0.02 * (1 + (1 - pi) / .05) where pi is the perc_identity threshold. This leads to longer runtimes and higher RAM usage, but significantly more accurate estimates of ANI."/>
+        <param argument="--kmerThreshold" type="float" min="0.0" max="0.0" optional="true" label="Ignore the top % most-frequent kmer window" />
+        <param argument="--kmerComplexity" type="float" min="0.0" max="1.0" optional="true" label="Threshold for kmer complexity" />
+        <param argument="filter_mode" type="select" label="Filter mode" help="Mashmap implements a plane-sweep based algorithm to perform the alignment filtering. Similar to delta-filter in nucmer, different filtering options are provided that are suitable for long read or assembly mapping. Option -f map is suitable for reporting the best mappings for long reads, whereas -f one-to-one is suitable for reporting orthologous mappings among all computed assembly to genome mappings.">
+            <option value="map" selected="true">map - best mapping for long reads</option>
+            <option value="one-to-one">one-to-one - best for mapping orthologous reads</option>
+            <option value="none">None</option>
+        </param>
+        <param argument="--reportPercentage" type="boolean" truevalue="--reportPercentage" falsevalue="" checked="false"
+            label="Report predicted ANI values in [0, 100]"
+            help="instead of [0,1]" />
+        <param argument="--noMerge" type="boolean" truevalue="--noMerge" falsevalue="" checked="false"
+            label="Don't merge consecutive segment-level mappings" />
+        <param argument="--noHgFilter" type="boolean" truevalue="--noHgFilter" falsevalue="" checked="false" label="Use MashMap2 first pass filtering"
+            help="Don't use the hypergeometric filtering and instead use the MashMap2 first pass filtering." />
+    </inputs>
+    <outputs>
+        <data name="mashout" format="paf" from_work_dir="mashmap.out" />
+    </outputs>
+    <tests>
+        <test expect_num_outputs="1">
+            <param name="query" value="query_sample.fasta" ftype="fasta"/>
+            <param name="reflist" value="reflist_sample.fasta" ftype="fasta"/>
+            <param name="perc_identity" value="85.0"/>
+            <param name="seqLength" value="5000"/>
+            <param name="sketchSize" value="0"/>
+            <param name="dense" value="true"/>
+            <param name="filter_mode" value="map"/>
+            <output name="mashout" value="mashout_sample.paf" ftype="paf"/>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="query" value="query_sample.fasta.gz" ftype="fasta.gz"/>
+            <param name="reflist" value="reflist_sample.fasta.gz" ftype="fasta.gz"/>
+            <param name="perc_identity" value="85.0"/>
+            <param name="seqLength" value="5000"/>
+            <param name="sketchSize" value="0"/>
+            <param name="dense" value="true"/>
+            <param name="filter_mode" value="map"/>
+            <output name="mashout" value="mashout_sample.paf" ftype="paf"/>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="query" value="query_sample.fasta.gz,query_sample.fasta.gz" ftype="fasta.gz"/>
+            <param name="reflist" value="reflist_1_sample.fasta.gz,reflist_2_sample.fasta.gz" ftype="fasta.gz"/>
+            <param name="perc_identity" value="85.0"/>
+            <param name="seqLength" value="5000"/>
+            <param name="sketchSize" value="0"/>
+            <param name="dense" value="true"/>
+            <param name="filter_mode" value="map"/>
+            <output name="mashout" value="mashout_multi_sample.paf" ftype="paf"/>
+        </test>
+    </tests>
+    <help><![CDATA[
+ *MashMap* implements a fast and approximate algorithm for computing local alignment boundaries between long DNA sequences.
+ It can be useful for mapping genome assembly or long reads (PacBio/ONT) to reference genome(s).
+ Given a minimum alignment length and an identity threshold for the desired local alignments, 
+ 
+ Mashmap computes alignment boundaries and identity estimates using k-mers. It does not compute the alignments explicitly,
+ but rather estimates an unbiased k-mer based Jaccard similarity using a combination of minmers (a novel winnowing scheme) and MinHash.
+ This is then converted to an estimate of sequence identity using the Mash distance. An appropriate k-mer sampling rate
+ is automatically determined using the given minimum local alignment length and identity thresholds.
+ 
+ As an example, Mashmap can map a human genome assembly to the human reference genome in about one minute total execution
+ time and < 4 GB memory using just 8 CPU threads, achieving more than an order of magnitude improvement in both runtime and
+ memory over alternative methods. We describe the algorithms associated with Mashmap, and report on speed, scalability, and
+ accuracy of the software in the publications listed below. Unlike traditional mappers, MashMap does not compute exact sequence alignments.
+ In future, we plan to add an optional alignment support to generate base-to-base alignments.
+ 
+ The output is space-delimited with each line consisting of query name, length, 0-based start, end, strand, target name,
+ length, start, end and mapping nucleotide identity.
+ 
+  ]]></help>
+    <citations>
+        <citation type="doi">10.1093/bioinformatics/btad512</citation>
+        <citation type="doi">10.1093/bioinformatics/bts573</citation>
+    </citations>
+</tool>
+