7
|
1 <tool name="mashmap" id="mashmap" version="1.19.2" profile="22.05">
|
2
|
2 <!--Source in git at: https://github.com/fubar2/galaxy_tf_overlay-->
|
10
|
3 <!--Created by toolfactory@galaxy.org at 24/02/2024 19:28:59 using the Galaxy Tool Factory.-->
|
2
|
4 <description>Fast local alignment boundaries</description>
|
|
5 <requirements>
|
|
6 <requirement version="3.1.3" type="package">mashmap</requirement>
|
7
|
7 <requirement version="1.19.2" type="package">samtools</requirement>
|
2
|
8 </requirements>
|
7
|
9 <version_command><![CDATA[echo "1.19.2"]]></version_command>
|
2
|
10 <command><![CDATA[bash '$runme']]></command>
|
|
11 <configfiles>
|
9
|
12 <configfile name="runme"><![CDATA[ln -s '$query' 'query' &&
|
|
13 #if len($reflist) > 1:
|
5
|
14 #for i, mash in enumerate($reflist):
|
|
15 #if i == 0:
|
6
|
16 echo '$mash' > 'reflist' &&
|
5
|
17 #else:
|
6
|
18 echo '$mash' >> 'reflist' &&
|
5
|
19 #end if
|
|
20 #end for
|
|
21 #end if
|
9
|
22 samtools faidx 'query' &&
|
5
|
23 mashmap --pi '$perc_identity' -s '$seqLength' -f '$filtermode' $dense \
|
2
|
24 #if int($sketchSize) > 0:
|
|
25 -J '$sketchSize' \
|
|
26 #end if
|
10
|
27 #if $dense:
|
|
28 --dense \
|
|
29 #end if
|
2
|
30 #if len($reflist) == 1:
|
9
|
31 -r '$reflist' -q 'query' &&
|
2
|
32 #else
|
9
|
33 --rl 'reflist' -q 'query' &&
|
2
|
34 #end if
|
6
|
35 cp 'mashmap.out' '$mashout']]></configfile>
|
2
|
36 </configfiles>
|
|
37 <inputs>
|
|
38 <param name="query" type="data" optional="false" label="Query sequences (as fasta) to mash against the references supplied below" help="" format="fasta" multiple="false"/>
|
|
39 <param name="reflist" type="data" optional="false" label="Reference or references to mash the query sequences on" help="Choose one or more reference sequences to mash the query sequences against." format="fasta" multiple="true"/>
|
|
40 <param name="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."/>
|
|
41 <param name="seqLength" type="integer" value="5000" 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."/>
|
|
42 <param name="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."/>
|
10
|
43 <param name="dense" type="boolean" value="false" 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." checked="false" truevalue="--dense" falsevalue=""/>
|
2
|
44 <param name="filtermode" 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.">
|
|
45 <option value="map">map - best mapping for long reads</option>
|
|
46 <option value="one-to-one">one-to-one - best for mapping orthologous reads</option>
|
|
47 <option value="none">None</option>
|
|
48 </param>
|
|
49 </inputs>
|
|
50 <outputs>
|
|
51 <data name="mashout" format="paf" label="mashmap on $query.element_identifier" hidden="false"/>
|
|
52 </outputs>
|
|
53 <tests>
|
|
54 <test>
|
|
55 <output name="mashout" value="mashout_sample" compare="diff" lines_diff="0"/>
|
|
56 <param name="query" value="query_sample"/>
|
|
57 <param name="reflist" value="reflist_sample"/>
|
|
58 <param name="perc_identity" value="85.0"/>
|
|
59 <param name="seqLength" value="5000"/>
|
|
60 <param name="sketchSize" value="0"/>
|
10
|
61 <param name="dense" value="false"/>
|
2
|
62 <param name="filtermode" value="map"/>
|
|
63 </test>
|
|
64 </tests>
|
|
65 <help><![CDATA[
|
|
66 *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,
|
|
67
|
|
68 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.
|
8
|
69
|
|
70 Output is in *paf* format
|
|
71 This 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.
|
|
72 Details at https://github.com/lh3/miniasm/blob/master/PAF.md
|
|
73
|
|
74 More details at the Mashmap github repository https://github.com/marbl/MashMap
|
|
75
|
2
|
76 ]]></help>
|
|
77 <citations>
|
|
78 <citation type="doi">10.1093/bioinformatics/btad512</citation>
|
|
79 <citation type="doi">10.1093/bioinformatics/bts573</citation>
|
|
80 </citations>
|
|
81 </tool>
|
|
82
|