view mashmap.xml @ 9:dc53eb4354a6 draft

planemo upload
author fubar
date Sat, 24 Feb 2024 08:20:07 +0000
parents 9ba0184870ef
children 08a74c1a4562
line wrap: on
line source

<tool name="mashmap" id="mashmap" version="1.19.2" profile="22.05">
  <!--Source in git at: https://github.com/fubar2/galaxy_tf_overlay-->
  <!--Created by toolfactory@galaxy.org at 24/02/2024 19:18:09 using the Galaxy Tool Factory.-->
  <description>Fast local alignment boundaries</description>
  <requirements>
    <requirement version="3.1.3" type="package">mashmap</requirement>
    <requirement version="1.19.2" type="package">samtools</requirement>
  </requirements>
  <version_command><![CDATA[echo "1.19.2"]]></version_command>
  <command><![CDATA[bash '$runme']]></command>
  <configfiles>
    <configfile name="runme"><![CDATA[ln -s '$query' 'query' &&
#if len($reflist) > 1:
#for i, mash in enumerate($reflist):
   #if i == 0:
       echo '$mash' > 'reflist' &&
   #else:
       echo '$mash' >> 'reflist' &&
   #end if
#end for
#end if
samtools faidx 'query' &&
mashmap --pi '$perc_identity' -s '$seqLength' -f '$filtermode' $dense \
#if int($sketchSize) > 0:
-J '$sketchSize' \
#end if
#if len($reflist) == 1:
 -r '$reflist' -q 'query' && 
#else
--rl 'reflist' -q 'query' && 
#end if
cp 'mashmap.out'  '$mashout']]></configfile>
  </configfiles>
  <inputs>
    <param name="query" type="data" optional="false" label="Query sequences (as fasta) to mash against the references supplied below" help="" format="fasta" multiple="false"/>
    <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"/>
    <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."/>
    <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."/>
    <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."/>
    <param name="dense" type="select" 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.">
      <option value="">No dense sketching</option>
      <option value="--dense">Dense sketching</option>
    </param>
    <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.">
      <option value="map">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>
  </inputs>
  <outputs>
    <data name="mashout" format="paf" label="mashmap on $query.element_identifier" hidden="false"/>
  </outputs>
  <tests>
    <test>
      <output name="mashout" value="mashout_sample" compare="diff" lines_diff="0"/>
      <param name="query" value="query_sample"/>
      <param name="reflist" value="reflist_sample"/>
      <param name="perc_identity" value="85.0"/>
      <param name="seqLength" value="5000"/>
      <param name="sketchSize" value="0"/>
      <param name="dense" value=""/>
      <param name="filtermode" value="map"/>
    </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.
   
 Output is in *paf* format
 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.
 Details at https://github.com/lh3/miniasm/blob/master/PAF.md
  
 More details at the Mashmap github repository https://github.com/marbl/MashMap
  
  ]]></help>
  <citations>
    <citation type="doi">10.1093/bioinformatics/btad512</citation>
    <citation type="doi">10.1093/bioinformatics/bts573</citation>
  </citations>
</tool>