diff hifiasm.xml @ 0:bf0a4667e3ce draft

"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/hifiasm commit a118fad06e94683813e214af107fedd5fd80500a"
author bgruening
date Tue, 02 Mar 2021 20:23:49 +0000
parents
children 6505bd37670d
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hifiasm.xml	Tue Mar 02 20:23:49 2021 +0000
@@ -0,0 +1,229 @@
+<tool id="hifiasm" name="Hifiasm" version="@VERSION@">
+    <description>de novo assembler</description>
+    <macros>
+        <token name="@VERSION@">0.14</token>
+        <token name="@FORMATS@">fasta,fasta.gz,fastq,fastq.gz</token>
+        <xml name="reads">
+            <param name="reads" type="data" format="@FORMATS@" label="Input reads" />
+        </xml>
+    </macros>
+    <requirements>
+        <requirement type="package" version="@VERSION@">hifiasm</requirement>
+        <requirement type="package" version="0.1">yak</requirement>
+    </requirements>
+    <version_command>hifiasm --version</version_command>
+    <command detect_errors="exit_code">
+        <![CDATA[
+        #if str($mode.mode_selector) == 'standard':
+            ln -s '$mode.reads' input.${mode.reads.extension} &&
+        #else:
+            ln -s '$mode.hap1_reads' hap1_reads.${mode.hap1_reads.extension} &&
+            ln -s '$mode.hap2_reads' hap2_reads.${mode.hap2_reads.extension} &&
+            yak count -k31 -b37 -t\${GALAXY_SLOTS:-1} -o hap1.yak hap1_reads.${mode.hap1_reads.extension} &&
+            yak count -k31 -b37 -t\${GALAXY_SLOTS:-1} -o hap2.yak hap2_reads.${mode.hap2_reads.extension} &&
+        #end if
+        hifiasm -i input.${mode.reads.extension} -t \${GALAXY_SLOTS:-1} -o output -f $filter_bits
+        #if str($advanced_options.advanced_selector) == 'set':
+            -z $advanced_options.adapter_length
+            -k $advanced_options.kmer_length
+            -w $advanced_options.window_size
+            -D $advanced_options.drop_kmers
+            -N $advanced_options.max_overlaps
+            -r $advanced_options.correction_rounds
+        #end if
+        #if str($assembly_options.assembly_selector) == 'set':
+            -a $assembly_options.cleaning_rounds
+            -m $assembly_options.pop_contigs
+            -p $assembly_options.pop_unitigs
+            -n $assembly_options.remove_tips
+            -x $assembly_options.max_overlap
+            -y $assembly_options.min_overlap
+            $assembly_options.disable_post_join
+            --pb-range $assembly_options.pb_range
+        #end if
+        #if str($mode.mode_selector) == 'trio':
+            -1 hap1.yak
+            -2 hap2.yak
+            -c $mode.max_kmers
+            -d $mode.min_kmers
+        #end if
+        #if str($purge_options.purge_selector) == 'set':
+            -l $purge_options.purge_level
+            -s $purge_options.similarity_threshold
+            -O $purge_options.minimum_overlap
+            #if $purge_options.purge_cov:
+                --purge-cov $purge_options.purge_cov
+            #end if
+            $purge_options.high_het
+        #end if
+        ]]>
+    </command>
+    <inputs>
+        <conditional name="mode">
+            <param name="mode_selector" type="select" label="Assembly mode">
+                <option value="standard">Standard</option>
+                <option value="trio">Trio mode</option>
+            </param>
+            <when value="standard">
+                <expand macro="reads" />
+            </when>
+            <when value="trio">
+                <expand macro="reads" />
+                <param name="hap1_reads" type="data" format="fastq,fastq.gz" label="Haplotype 1 reads" />
+                <param name="hap2_reads" type="data" format="fastq,fastq.gz" label="Haplotype 2 reads" />
+                <param name="max_kmers" argument="-c" type="integer" value="2" label="Lower bound of the binned k-mer's frequency" />
+                <param name="min_kmers" argument="-d" type="integer" value="5" label="Upper bound of the binned k-mer's frequency" />
+            </when>
+        </conditional>
+        <param name="filter_bits" argument="-f" type="integer" min="0" value="37" label="Bits for bloom filter" help="A value of 0 disables the bloom filter" />
+        <conditional name="advanced_options">
+            <param name="advanced_selector" type="select" label="Advanced options">
+                <option value="blank">Leave default</option>
+                <option value="set">Specify</option>
+            </param>
+            <when value="blank" />
+            <when value="set">
+                <param name="adapter_length" argument="-z" type="integer" min="0" value="0" label="Length of adapters to be removed" />
+                <param name="kmer_length" argument="-k" type="integer" min="0" max="64" value="51" label="K-mer length" />
+                <param name="window_size" argument="-w" type="integer" min="0" value="51" label="Minimizer window size" />
+                <param name="drop_kmers" argument="-D" type="float" value="5.0" label="Drop k-mers" help="K-mers that occur more than this value multiplied by the coverage will be discarded" />
+                <param name="max_overlaps" argument="-N" type="integer" value="100" label="Maximum overlaps to consider" help="The software selects the larger of this value and the k-mer count multiplied by coverage" />
+                <param name="correction_rounds" argument="-r" type="integer" value="3" label="Correction rounds" />
+            </when>
+        </conditional>
+        <conditional name="assembly_options">
+            <param name="assembly_selector" type="select" label="Assembly options">
+                <option value="blank">Leave default</option>
+                <option value="set">Specify</option>
+            </param>
+            <when value="blank" />
+            <when value="set">
+                <param name="cleaning_rounds" argument="-a" type="integer" value="4" label="Cleaning rounds" />
+                <param name="pop_contigs" argument="-m" type="integer" value="10000000" label="Minimum contig bubble size" help="Pop contig graph bubbles smaller than this value" />
+                <param name="pop_unitigs" argument="-p" type="integer" value="100000" label="Minimum unitig bubble size" help="Pop unitig graph bubbles smaller than this value" />
+                <param name="remove_tips" argument="-n" type="integer" value="3" label="Tip unitigs" help="Keep only tip unitigs with a number of reads greater than or equal to this value" />
+                <param name="max_overlap" argument="-x" type="float" min="0" max="1" value="0.8" label="Maximum overlap drop ratio" />
+                <param name="min_overlap" argument="-y" type="float" min="0" max="1" value="0.2" label="Minimum overlap drop ratio" />
+                <param name="disable_post_join" argument="-u" type="boolean" truevalue="-u" falsevalue="" label="Skip post join contigs step" help="May improve N50" />
+                <param argument="--pb-range" type="integer" min="0" max="100" value="0" label="Inconsistent contigs" help="If this option is set to a value greater than zero the tool generates an additional BED dataset containing regions that are &gt;= x% inconsistent." />
+            </when>
+        </conditional>
+        <conditional name="purge_options">
+            <param name="purge_selector" type="select" label="Options for purging duplicates">
+                <option value="blank">Leave default</option>
+                <option value="set">Specify</option>
+            </param>
+            <when value="blank" />
+            <when value="set">
+                <param name="purge_level" argument="-l" type="select" label="Purge level">
+                    <option value="0" selected="true">None</option>
+                    <option value="1">Light</option>
+                    <option value="2">Aggressive</option>
+                </param>
+                <param name="similarity_threshold" argument="-s" type="float" min="0" max="1" value="0.75" label="Similarity threshold for duplicate haplotigs" />
+                <param name="minimum_overlap" argument="-O" type="integer" value="1" label="Minimum overlapped reads for duplicate haplotigs" />
+                <param argument="--purge-cov" type="integer" optional="true" label="Coverage upper bound" help="If not set, this will be determined automatically" />
+                <param argument="--high-het" type="boolean" truevalue="--high-het" falsevalue="" label="Experimental high-heterozygosity mode" help="NB: May be unstable" />
+            </when>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data name="raw_unitigs" format="gfa1" from_work_dir="output.r_utg.gfa" label="${tool.name} on ${on_string} Haplotype-resolved raw unitig graph">
+            <filter>mode['mode_selector'] == 'standard'</filter>
+        </data>
+        <data name="raw_unitigs" format="gfa1" from_work_dir="output.dip.r_utg.gfa" label="${tool.name} on ${on_string} Haplotype-resolved raw unitig graph">
+            <filter>mode['mode_selector'] == 'trio'</filter>
+        </data>
+        <data name="processed_unitigs" format="gfa1" from_work_dir="output.p_utg.gfa" label="${tool.name} on ${on_string} Processed unitig graph">
+            <filter>mode['mode_selector'] == 'standard'</filter>
+        </data>
+        <data name="primary_contig_graph" format="gfa1" from_work_dir="output.p_ctg.gfa" label="${tool.name} on ${on_string} Primary assembly contig graph">
+            <filter>mode['mode_selector'] == 'standard'</filter>
+        </data>
+        <data name="alternate_contig_graph" format="gfa1" from_work_dir="output.a_ctg.gfa" label="${tool.name} on ${on_string} Alternate assembly contig graph">
+            <filter>mode['mode_selector'] == 'standard'</filter>
+        </data>
+        <data name="hap1_contigs" format="gfa1" from_work_dir="output.hap1.p_ctg.gfa" label="${tool.name} ${mode.hap1_reads.name} contig graph">
+            <filter>mode['mode_selector'] == 'trio'</filter>
+        </data>
+        <data name="hap2_contigs" format="gfa1" from_work_dir="output.hap2.p_ctg.gfa" label="${tool.name} ${mode.hap2_reads.name} contig graph">
+            <filter>mode['mode_selector'] == 'trio'</filter>
+        </data>
+    </outputs>
+    <tests>
+        <test>
+            <param name="reads" value="hifiasm-in1.fa.gz" ftype="fasta.gz" />
+            <param name="filter_bits" value="0" />
+            <param name="mode_selector" value="standard" />
+            <output name="raw_unitigs" file="hifiasm-out1-raw.gfa" ftype="gfa1" />
+            <output name="processed_unitigs" file="hifiasm-out1-processed.gfa" ftype="gfa1" />
+            <output name="primary_contig_graph" file="hifiasm-out1-primary.gfa" ftype="gfa1" />
+            <output name="alternate_contig_graph" file="hifiasm-out1-alternate.gfa" ftype="gfa1" />
+        </test>
+    </tests>
+    <help><![CDATA[
+***********************************
+HiFiASM - a fast de novo assembler
+***********************************
+
+Hifiasm is a fast haplotype-resolved de novo assembler for PacBio Hifi reads. It can assemble a human genome in several hours and works with the California redwood genome, one of the most complex genomes sequenced so far. Hifiasm can produce primary/alternate assemblies of quality competitive with the best assemblers. It also introduces a new graph binning algorithm and achieves the best haplotype-resolved assembly given trio data.
+
+#### Assembly mode
+- *Standard*
+- *Trio* When parental short reads are available, hifiasm can generate a pair of haplotype-resolved assemblies with trio binning.
+
+#### Trio Options
+- *Haplotype 1 reads* : list of hap1/paternal read names
+- *Haplotype 2 reads* : list of hap2/maternal read names
+- *Lower bound of the binned k-mer's frequency*
+- *Upper bound of the binned k-mer's frequency*
+
+*Bits for bloom filter* (-f) - A value of 0 disables the bloom filter for small genomes. For genomes much larger than human, applying -f 38 or even - f39 is preferred to save memory on k-mer counting.
+
+#### Advanced options
+- *Length of adapters to be removed* Old HiFi reads may contain short adapter sequences at the ends of reads. You can specify 20 to trim both ends of reads by 20bp.
+- *K-mer length* (must be <64)
+- *Minimizer window size*
+- *Drop K-mers* K-mers that occur more than this value multiplied by the coverage will be discarded
+- *Maximum overlaps to consider* consider up to max(-D*coverage,-N) overlaps for each oriented read
+- *Correction rounds* round of correction
+
+#### Assembly options
+- *Cleaning rounds* round of assembly cleaning
+- *Minimum contig bubble* size Pop contig graph bubbles smaller than this value
+- *Minimum unitig bubble* size Pop unitig graph bubbles smaller than this value
+- *Tip unitigs* Keep only tip unitigs with a number of reads greater than or equal to this value
+- *Maximum overlap drop ratio*
+- *Minimum overlap drop ratio*
+- *Skip post join contigs step*  disable post join contigs step which may improve N50
+- *Inconsistent contigs* If this option is set to a value greater than zero the tool generates an additional BED dataset containing regions that are &gt;= x% inconsistent.
+
+#### Options for purging duplicates
+- *Purge level* 0: no purging; 1: light; 2: aggressive [0 for trio; 2 for unzip]
+- *Similarity threshold for duplicate haplotigs*
+- *Minimum overlapped reads for duplicate haplotigs*
+- *Coverage upper bound* If not set, this will be determined automatically
+- *Experimental high-heterozygosity mode*   enable this mode for high heterozygosity sample NB: May be unstable
+
+
+### Outputs
+
+Non Trio assembly
+- Haplotype-resolved raw unitig graph in GFA format. This graph keeps all haplotype information, including somatic mutations and recurrent sequencing errors.
+- Haplotype-resolved processed unitig graph without small bubbles : Small bubbles might be caused by somatic mutations or noise in data, which are not the real haplotype information.
+- Primary assembly contig graph :  This graph collapses different haplotypes.
+- Alternate assembly contig graph : This graph consists of all assemblies that are discarded in primary contig graph.
+
+
+Trio assembly
+- Haplotype-resolved raw unitig graph in GFA format . This graph keeps all haplotype information.
+- Phased paternal/haplotype1 contig graph. This graph keeps the phased paternal/haplotype1 assembly.
+- Phased maternal/haplotype2 contig graph. This graph keeps the phased maternal/haplotype2 assembly.
+
+
+
+]]></help>
+    <citations>
+        <citation type="doi">10.1038/s41592-020-01056-5</citation>
+    </citations>
+</tool>