Mercurial > repos > nate > data_manager_hisat2_index_builder
diff data_manager/hisat2_index_builder.xml @ 0:f7c16185b8e1 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_hisat2_index_builder commit 36a598c1014c3fa9696c4bdbf13d98a9e1e528c9
author | nate |
---|---|
date | Fri, 25 Apr 2025 21:06:04 +0000 |
parents | |
children | b3d94db291c1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/hisat2_index_builder.xml Fri Apr 25 21:06:04 2025 +0000 @@ -0,0 +1,148 @@ +<tool id="hisat2_index_builder_data_manager" name="HISAT2 index" tool_type="manage_data" version="@WRAPPER_VERSION@+galaxy@VERSION_SUFFIX@" profile="23.0"> + <description>builder</description> + <macros> + <token name="@WRAPPER_VERSION@">2.2.1</token> + <token name="@VERSION_SUFFIX@">0</token> + </macros> + <requirements> + <requirement type="package" version="@WRAPPER_VERSION@">hisat2</requirement> + </requirements> + <command detect_errors="exit_code"><![CDATA[ + #set $value = $sequence_id or $all_fasta_source.fields.dbkey + #set $fasta_file_name = str($all_fasta_source.fields.path).split('/')[-1] + #if $advanced.adv_param_select == 'yes' and $advanced.gtf_input: + ln -s '${advanced.gtf_input}' gtf_file.gtf && + hisat2_extract_splice_sites.py gtf_file.gtf > splice_sites.txt && + hisat2_extract_exons.py gtf_file.gtf > exon.txt && + #end if + #if $advanced.adv_param_select == 'yes' and $advanced.snps: + ln -s '${advanced.snps}' snps.tabular && + #if $advanced.snps.is_of_type('vcf') + hisat2_extract_snps_haplotypes_VCF.py '${all_fasta_source.fields.path}' snps.tabular extracted && + #else + hisat2_extract_snps_haplotypes_UCSC.py '${all_fasta_source.fields.path}' snps.tabular extracted && + #end if + #end if + + mkdir -p '${out_file.extra_files_path}' && + ln -s '${all_fasta_source.fields.path}' '${out_file.extra_files_path}/${fasta_file_name}' && + working=`pwd` && + cd '${out_file.extra_files_path}' && + + hisat2-build -p \${GALAXY_SLOTS:-1} + #if $advanced.adv_param_select == 'yes': + --noauto + #if $advanced.snps: + --snp "\${working}/extracted.snp" + --haplotype "\${working}/extracted.haplotype" + #end if + #if $advanced.gtf_input: + --ss "\${working}/splice_sites.txt" + --exon "\${working}/exon.txt" + #end if + --bmax $advanced.bmax + --bmaxdivn $advanced.bmaxdivn + --dcv $advanced.dcv + --offrate $advanced.offrate + #end if + '${fasta_file_name}' '${value}' && + + cp '$dmjson' '$out_file' + ]]> + </command> + <configfiles> + <configfile name="dmjson"><![CDATA[#slurp +#set $fasta_file_name = str($all_fasta_source.fields.path).split('/')[-1] +#set $value = $sequence_id or $all_fasta_source.fields.dbkey +#set $name = $sequence_name or $all_fasta_source.fields.name +{ + "data_tables":{ + "hisat2_indexes":[ + { + "value": "${value}", + "dbkey": "${all_fasta_source.fields.dbkey}", + "name": "${name}", + "path": "${fasta_file_name}" + } + ] + } +} +]]></configfile> + </configfiles> + <inputs> + <param label="Source FASTA Sequence" name="all_fasta_source" type="select"> + <options from_data_table="all_fasta" /> + </param> + <conditional name="advanced" label="Advanced parameters"> + <param name="adv_param_select" type="select" label="Advanced parameters"> + <option value="no">Use defaults</option> + <option value="yes">Fine-tune indexing parameters</option> + </param> + <when value="no" /> + <when value="yes"> + <param argument="--bmax" type="integer" value="4" label="Maximum number of suffixes allowed in a block" /> + <param argument="--bmaxdivn" type="integer" value="4" label="Maximum number of suffixes allowed in a block, expressed as a fraction of the length of the reference" /> + <param argument="--dcv" type="integer" min="2" max="4096" value="1024" label="Period for the difference-cover sample" help="A larger period yields less memory overhead, but may make suffix sorting slower, especially if repeats are present. Must be a power of 2 no greater than 4096" /> + <param argument="--offrate" type="integer" value="4" label="Mark rows in the Burrows-Wheeler transform" help="To map alignments back to positions on the reference sequences, it's necessary to annotate ("mark") some or all of the Burrows-Wheeler rows with their corresponding location on the genome. This parameter governs how many rows get marked: the indexer will mark every 2^<int> rows. Marking more rows makes reference-position lookups faster, but requires more memory to hold the annotations at runtime. The default is 4 (every 16th row is marked; for human genome, annotations occupy about 680 megabytes)" /> + <param name="snps" type="data" format="tabular,vcf" optional="true" label="Provide a list of SNPs in the UCSC dbSNP or VCF format" help="If you include SNPs or splice sites and exons, building an index on the human genome will consume up to 200GB RAM as index building involves a graph construction" /> + <param name="gtf_input" type="data" format="gtf" optional="true" label="Provide a GTF file for HISAT2 to extract splice sites from" help="If you include SNPs or splice sites and exons, building an index on the human genome will consume up to 200GB RAM as index building involves a graph construction" /> + </when> + </conditional> + <param name="sequence_name" type="text" value="" label="Name of sequence" /> + <param name="sequence_id" type="text" value="" label="ID for sequence" /> + </inputs> + <outputs> + <data name="out_file" format="data_manager_json" /> + </outputs> + <tests> + <test> + <param name="all_fasta_source" value="phiX174"/> + <output name="out_file" file="hisat2_data_manager.1.json"/> + </test> + <test> + <param name="all_fasta_source" value="phiX174"/> + <param name="sequence_name" value="Galeocerdo cuvier"/> + <param name="sequence_id" value="tigHai1"/> + <param name="adv_param_select" value="yes"/> + <param name="bmax" value="3"/> + <param name="bmaxdivn" value="3"/> + <param name="dcv" value="4"/> + <param name="offrate" value="5"/> + <output name="out_file" file="hisat2_data_manager.2.json"/> + </test> + </tests> + <help> +<![CDATA[ +.. class:: infomark + +**Notice:** If you leave name, description, or id blank, it will be generated automatically. + +What is HISAT2? +--------------- + +`HISAT <http://ccb.jhu.edu/software/hisat>`__ is a fast and sensitive alignment +program for mapping next-generation sequencing reads (both DNA and RNA) against +the general human population (as well as against a single reference genome). +Based on an extension of BWT for graphs (`BWT <http://dl.acm.org/citation.cfm?id=2674828>`__) +we designed and implemented a graph FM index (GFM), an original approach and +its first implementation to the best of our knowledge. In addition to using one +global GFM index that represents the general population, HISAT2 uses a large set +of small GFM indexes that collectively cover the whole genome (each index +representing a genomic region of 56 Kbp, with 55,000 indexes needed to cover +the human population). These small indexes (called local indexes), combined +with several alignment strategies, enable rapid and accurate alignment of +sequencing reads. This new indexing scheme is called a Hierarchical Graph +FM index (HGFM). In addition to spliced alignment, HISAT handles reads +involving indels and supports a paired-end alignment mode. Multiple processors +can be used simultaneously to achieve greater alignment speed. HISAT outputs +alignments in `SAM <http://samtools.sourceforge.net/SAM1.pdf>`__ format, enabling +interoperation with a large number of other tools (e.g. `SAMtools <http://samtools.sourceforge.net>`__, +`GATK <http://www.broadinstitute.org/gsa/wiki/index.php/The_Genome_Analysis_Toolkit>`__) +that use SAM. HISAT is distributed under the `GPLv3 license <http://www.gnu.org/licenses/gpl-3.0.html>`__, +and it runs on the command line under Linux, Mac OS X and Windows. +]]> + </help> + <citations> + <citation type="doi">10.1038/nmeth.3317</citation> + </citations> +</tool>