Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions tools/kneaddata/.shed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: kneaddata
owner: iuc
type: unrestricted
description: Quality control and contaminant removal for metagenomic data
long_description: >
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
long_description: >
long_description: |

KneadData is a tool designed to perform quality control on
metagenomic and metatranscriptomic sequencing data, especially
data from microbiome experiments. It performs adapter trimming,
quality filtering, and removal of host contamination using
Bowtie2/TRIMMOMATIC/TRF.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Bowtie2/TRIMMOMATIC/TRF.
Bowtie2, TRIMMOMATIC and TRF.

homepage_url: https://github.com/biobakery/kneaddata
remote_repository_url: https://github.com/galaxyproject/tools-iuc/tree/master/tools/kneaddata
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
remote_repository_url: https://github.com/galaxyproject/tools-iuc/tree/master/tools/kneaddata
remote_repository_url: https://github.com/galaxyproject/tools-iuc/tree/main/tools/kneaddata

categories:
- Metagenomics
- Statistics
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Statistics
- Sequence Analysis

272 changes: 272 additions & 0 deletions tools/kneaddata/kneaddata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,272 @@
<tool id="kneaddata" name="KneadData" version="0.12.1+galaxy0" python_template_version="3.5" profile="21.05">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<tool id="kneaddata" name="KneadData" version="0.12.1+galaxy0" python_template_version="3.5" profile="21.05">
<tool id="kneaddata" name="KneadData" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">

Please introduce the above tokens in the macros.xml file

<description>Quality control and contaminant removal for metagenomic data</description>
<requirements>
<requirement type="package" version="0.12.3">kneaddata</requirement>
<requirement type="package" version="0.40">trimmomatic</requirement>
<requirement type="package" version="2.5.4">bowtie2</requirement>
<requirement type="package" version="4.09.1">trf</requirement>
<requirement type="package" version="0.12.1">fastqc</requirement>
</requirements>
Comment on lines +3 to +9
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can go in macros.xml. Wondering if these dependencies are already part of Kneaddata or does one explicitly need them?

<command detect_errors="exit_code"><![CDATA[
kneaddata
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
kneaddata
mkdir -p results/
kneaddata

#if $read_type.select_read_type == "s"
--unpaired "$read_type.single_read"
#else
-i1 "$read_type.forward_read"
-i2 "$read_type.backward_read"
#end if
-o "output_dir"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
-o "output_dir"
-o results/

#if "$output_prefix"
--output-prefix "$output_prefix"
#end if
Comment on lines +19 to +21
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would be in favor of removing this parameter

--threads "$number_threads"
--processes "$number_processes"
Comment on lines +22 to +23
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
--threads "$number_threads"
--processes "$number_processes"

--quality-scores "$quality_scores"
#if $trimmomatic.trimmomatic_options.select_option == "c"
--trimmomatic-options "$trimmomatic.trimmomatic_options.custom_settings"
#end if
#if $trimmomatic.max_memory
--max-memory "$trimmomatic.max_memory"
#end if
Comment on lines +28 to +30
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#if $trimmomatic.max_memory
--max-memory "$trimmomatic.max_memory"
#end if

#if $trimmomatic.sequencer
--sequencer-source "$trimmomatic.sequencer"
#end if
#if $trf_step.trf_bool == "include"
--mismatch "$trf.mismatch"
--delta "$trf.indel"
--minscore "$trf.minimum_score"
--maxperiod "$trf.maximum_period"
#else
--bypass-trf
#end if
$trim_repetitive
#if $trim_repetitive
--fastqc "fastqc"
#end if


]]></command>

<inputs>

<conditional name="read_type">
<param name="select_read_type" type="select" label="Read type">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

perhaps adding a help tag could be beneficial?

<option value="s">Single read</option>
<option value="p">Paired reads</option>
Comment on lines +54 to +55
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<option value="s">Single read</option>
<option value="p">Paired reads</option>
<option value="single">Single read</option>
<option value="paired">Paired reads</option>

</param>

<when value="s">
<param name="single_read" type="data" format="fastq" label="Single Read"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<param name="single_read" type="data" format="fastq" label="Single Read"/>
<param name="single_read" type="data" format="fastqsanger" label="Single Read"/>

Does it also support fastq.gz?

</when>
<when value="p">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<when value="p">
<when value="paired">

<param name="forward_read" type="data" format="fastq" label="Forward read"/>
<param name="backward_read" type="data" format="fastq" label="Reversed read" />
</when>
</conditional>

<param name="trim_repetitive" type="boolean" truevalue="--run-trim-repetitive" falsevalue="" label="Trim repetitive/overrepresented sequences generated by FASTQC reports"/>

<param name="output_prefix" type="text" label="Custom prefix for all output files" help="Leave empty to keep the input file name."/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<param name="output_prefix" type="text" label="Custom prefix for all output files" help="Leave empty to keep the input file name."/>


<param name="number_threads" type="integer" value="1" label="Number of threads"/>

<param name="number_processes" type="integer" value="1" label="Number of processes"/>
Comment on lines +71 to +73
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<param name="number_threads" type="integer" value="1" label="Number of threads"/>
<param name="number_processes" type="integer" value="1" label="Number of processes"/>

This is not required


<param name="quality_scores" type="select" label="Select quality score">
<option value="phred33" selected="true" >phred33</option>
<option value="phred64">phred64</option>
</param>

<section name="trimmomatic" title="Trimmomatic arguments" >

<param name="max_memory" type="text" value="500m" label="Maximum memory for Trimmomatic"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<param name="max_memory" type="text" value="500m" label="Maximum memory for Trimmomatic"/>


<conditional name="trimmomatic_options">
<param name="select_option" type="select" label="Trimmomatic settings">
<option value="d">Default settings</option>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better names for option values?

<option value="c">Customize settings</option>
</param>

<when value="c">
<param name="custom_settings" type="text" label="Custom Trimmomatic options" help="Manually specifying additional arguments will completely override the defaults."/>
Comment on lines +90 to +91
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better value names?

</when>
<when value="d">
</when>

</conditional>

<param name="sequencer" type="select" label="Available sequencers">
<option value="NexteraPE" selected="true">NexteraPE</option>
<option value="TruSeq2">TruSeq2</option>
<option value="TruSeq3">TruSeq3</option>
</param>
</section>


<conditional name="trf_step">
<param name="trf_bool" type="select" label="Tandem Repeat Finder">
<option value="include">Include TRF in KneadData Workflow</option>
<option value="skip">Skip TRF</option>
</param>

<when value="include">

<section name="trf" title="TRF (Tandem Repeats Finder) arguments" >

<param name="mismatch" type="select" label="Mismatch penalty">
<option value="3">3 (more permissive)</option>
<option value="5">5</option>
<option value="7" selected="true">7 (less permissive)</option>
</param>

<param name="indel" type="select" label="Indel penalty (delta)">
<option value="3">3 (more permissive)</option>
<option value="5">5</option>
<option value="7" selected="true">7 (less permissive)</option>
</param>

<param name="minimum_score" type="integer" value="50" label="Minimum alignment score to report"/>
<param name="maximum_period" type="integer" value="500" min="1" max="2000" label="Maximum period size to report"/>

</section>
</when>
<when value="skip">

</when>
Comment on lines +133 to +135
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<when value="skip">
</when>
<when value="skip"/>

</conditional>

</inputs>
<outputs>
<data name="single_output" format="fastq" from_work_dir="output_dir/.repeats.removed.fastq" label="KneadData single end results (with TRF)">
<filter>read_type["select_read_type"] == "s" and trf_step["trf_bool"] == "include"</filter>
</data>
<data name="single_output_trimmed" format="fastq" from_work_dir="output_dir/.trimmed.fastq" label="KneadData single end results (without TRF)">
<filter>read_type["select_read_type"] == "s" and trf_step["trf_bool"] == "skip"</filter>
</data>

<data name="paired_forward" format="fastq" from_work_dir="output_dir/.repeats.removed.1.fastq" label="KneadData paired end forward reads (with TRF)">
<filter>read_type["select_read_type"] == "p" and trf_step["trf_bool"] == "include"</filter>
</data>
<data name="paired_forward_trimmed" format="fastq" from_work_dir="output_dir/.trimmed.1.fastq" label="KneadData paired end forward reads (without TRF)">
<filter>read_type["select_read_type"] == "p" and trf_step["trf_bool"] == "skip"</filter>
</data>

<data name="paired_backward" format="fastq" from_work_dir="output_dir/.repeats.removed.2.fastq" label="KneadData paired end reverse reads (with TRF)">
<filter>read_type["select_read_type"] == "p" and trf_step["trf_bool"] == "include"</filter>
</data>
<data name="paired_backward_trimmed" format="fastq" from_work_dir="output_dir/.trimmed.2.fastq" label="KneadData paired end reverse reads (without TRF)">
<filter>read_type["select_read_type"] == "p" and trf_step["trf_bool"] == "skip"</filter>
</data>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change from_work_dir to results/...

</outputs>
<tests>
<test expect_num_outputs="1">
<param name="number_threads" value="1"/>
<param name="number_processes" value="1"/>
Comment on lines +163 to +164
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<param name="number_threads" value="1"/>
<param name="number_processes" value="1"/>

<param name="quality_scores" value="phred33"/>
<section name="trimmomatic">
<param name="max_memory" value="500m"/>
<param name="sequencer" value="NexteraPE"/>
<section name="trimmomatic_options">
<param name="select_option" value="d"/>
</section>
</section>
<section name="read_type">
<param name="select_read_type" value="s"/>
<param name="single_read" value="28C.single.fastq"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<param name="single_read" value="28C.single.fastq"/>
<param name="single_read" value="test_single.fastq"/>

</section>
<output name="single_output" file="single_output.fastq"/>
</test>
<test expect_num_outputs="2">
<param name="number_threads" value="2"/>
<param name="number_processes" value="2"/>
<param name="quality_scores" value="phred33"/>
<section name="trimmomatic">
<param name="max_memory" value="500m"/>
<param name="sequencer" value="NexteraPE"/>
<section name="trimmomatic_options">
<param name="select_option" value="d"/>
</section>
</section>
<section name="read_type">
<param name="select_read_type" value="p"/>
<param name="forward_read" value="28C.R1.fastq"/>
<param name="backward_read" value="28C.R2.fastq"/>
</section>
<output name="paired_forward" file="paired_forward.fastq"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<output name="paired_forward" file="paired_forward.fastq"/>
<output name="paired_forward" file="test_paired_1.fastq"/>

<output name="paired_backward" file="paired_backward.fastq"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<output name="paired_backward" file="paired_backward.fastq"/>
<output name="paired_backward" file="test_paired_2.fastq"/>

</test>
</tests>

<help><![CDATA[
usage: kneaddata [-h] [--version] [-v] [-i1 INPUT1] [-i2 INPUT2]
[-un UNPAIRED] -o OUTPUT_DIR
[-db REFERENCE_DB] [--bypass-trim] [--run-trim-repetitive]
[--output-prefix OUTPUT_PREFIX] [-t &lt;1&gt;] [-p &lt;1&gt;]
[-q {phred33,phred64}] [--run-bmtagger]
[--run-fastqc-start] [--run-fastqc-end] [--store-temp-output]
[--cat-final-output]
[--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--log LOG]
[--trimmomatic TRIMMOMATIC_PATH] [--max-memory MAX_MEMORY]
[--trimmomatic-options TRIMMOMATIC_OPTIONS]
[--bowtie2 BOWTIE2_PATH] [--bowtie2-options BOWTIE2_OPTIONS]
[--bmtagger BMTAGGER_PATH] [--trf TRF_PATH] [--match MATCH]
[--mismatch MISMATCH] [--delta DELTA] [--pm PM] [--pi PI]
[--minscore MINSCORE] [--maxperiod MAXPERIOD]
[--fastqc FASTQC_PATH]

KneadData

options:


-h, --help show this help message and exit
-v, --verbose additional output is printed
--version show program's version number and exit
-i INPUT, --input INPUT input FASTQ file (add a second argument instance to run with paired input files)
-o OUTPUT_DIR, --output OUTPUT_DIR directory to write output files
--db REFERENCE_DB, --reference-db REFERENCE_DB location of reference database
--run-trim-repetitive Option to trim repetitive/overrepresented sequences generated by FASTQC reports
--bypass-trim bypass the trim step
--output-prefix OUTPUT_PREFIX prefix for all output files [ DEFAULT : $SAMPLE_kneaddata ]
-t <1>, --threads <1> number of threads [ Default : 1 ]
-p <1>, --processes <1> number of processes [ Default : 1 ]
-q <quality>, --quality-scores <quality> quality scores [phred33|phred64] [DEFAULT: phred33]
--run-bmtagger run BMTagger instead of Bowtie2 to identify contaminant reads
--bypass-trf option to bypass the removal of tandem repeats
--run-fastqc-start run fastqc at the beginning of the workflow
--run-fastqc-end run fastqc at the end of the workflow
--store-temp-output store temp output files [ DEFAULT : temp output files are removed ]
--cat-final-output concatenate all final output files [ DEFAULT : final output is not concatenated ]
--log-level <DEBUG|INFO|WARNING|ERROR|CRITICAL> level of log messages [DEFAULT: DEBUG]
--log LOG log file [ DEFAULT : $OUTPUT_DIR/$SAMPLE_kneaddata.log ]
--trimmomatic TRIMMOMATIC_PATH path to trimmomatic [ DEFAULT : $PATH ]
--max-memory MAX_MEMORY max amount of memory [ DEFAULT : 500m ]
--trimmomatic-options TRIMMOMATIC_OPTIONS options for trimmomatic [ DEFAULT : SLIDINGWINDOW:4:20 MINLEN:50 ]
MINLEN is set to 50 percent of total input read length. The user can alternatively specify a length (in bases) for MINLEN.
--sequencer-source options for sequencer-source [ DEFAULT: NexteraPE] Available sequencers: ["NexteraPE","TruSeq2","TruSeq3"]
--bowtie2 BOWTIE2_PATH path to bowtie2 [ DEFAULT : $PATH ]
--bowtie2-options BOWTIE2_OPTIONS options for bowtie2 [ DEFAULT : --very-sensitive ]
--bmtagger BMTAGGER_PATH path to BMTagger [ DEFAULT : $PATH ]
--bypass-trf bypass the TRF step
--trf TRF_PATH path to TRF [ DEFAULT : $PATH ]
--mismatch MISMATCH mismatching penalty [ DEFAULT : 7 ]
--delta DELTA indel penalty [ DEFAULT : 7 ]
--pm PM match probability [ DEFAULT : 80 ]
--pi PI indel probability [ DEFAULT : 10 ]
--minscore MINSCORE minimum alignment score to report [ DEFAULT : 50 ]
--maxperiod MAXPERIOD maximum period size to report [ DEFAULT : 500 ]
--fastqc FASTQC_PATH path to fastqc [ DEFAULT : $PATH ]

Comment on lines +201 to +259
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A better help could be what is KneadData tool, what does it do, what inputs it requires, what outputs it gives out etc. Perhaps explanation of a few important parameters

]]></help>
<citations>
<citation type="bibtex">
@software{kneaddata,
title = {KneadData},
author = {Harvard School of Public Health},
year = {2015},
url = {https://github.com/biobakery/kneaddata},
license = {MIT},
note = {Quality control and contaminant removal tool for metagenomic sequencing data}
}</citation>
</citations>
</tool>
38 changes: 38 additions & 0 deletions tools/kneaddata/test-data/bowtie2_indices.loc
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# bowtie2_indices.loc.sample
# This is a *.loc.sample file distributed with Galaxy that enables tools
# to use a directory of indexed data files. This one is for Bowtie2 and Tophat2.
# See the wiki: http://wiki.galaxyproject.org/Admin/NGS%20Local%20Setup
# First create these data files and save them in your own data directory structure.
# Then, create a bowtie_indices.loc file to use those indexes with tools.
# Copy this file, save it with the same name (minus the .sample),
# follow the format examples, and store the result in this directory.
# The file should include an one line entry for each index set.
# The path points to the "basename" for the set, not a specific file.
# It has four text columns seperated by TABS.
#
# <unique_build_id> <dbkey> <display_name> <file_base_path>
#
# So, for example, if you had hg18 indexes stored in:
#
# /depot/data2/galaxy/hg19/bowtie2/
#
# containing hg19 genome and hg19.*.bt2 files, such as:
# -rw-rw-r-- 1 james james 914M Feb 10 18:56 hg19canon.fa
# -rw-rw-r-- 1 james james 914M Feb 10 18:56 hg19canon.1.bt2
# -rw-rw-r-- 1 james james 683M Feb 10 18:56 hg19canon.2.bt2
# -rw-rw-r-- 1 james james 3.3K Feb 10 16:54 hg19canon.3.bt2
# -rw-rw-r-- 1 james james 683M Feb 10 16:54 hg19canon.4.bt2
# -rw-rw-r-- 1 james james 914M Feb 10 20:45 hg19canon.rev.1.bt2
# -rw-rw-r-- 1 james james 683M Feb 10 20:45 hg19canon.rev.2.bt2
#
# then the bowtie2_indices.loc entry could look like this:
#
#hg19 hg19 Human (hg19) /depot/data2/galaxy/hg19/bowtie2/hg19canon
#
#More examples:
#
#mm10 mm10 Mouse (mm10) /depot/data2/galaxy/mm10/bowtie2/mm10
#dm3 dm3 D. melanogaster (dm3) /depot/data2/galaxy/mm10/bowtie2/dm3
#
#
test_value test_dbkey test_name ${__HERE__}/bowtie2-ref
4 changes: 4 additions & 0 deletions tools/kneaddata/test-data/test_paired_1.fastq
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@test1
ACGTACGT
+
IIIIIIII
4 changes: 4 additions & 0 deletions tools/kneaddata/test-data/test_paired_2.fastq
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@test1
TGCTAGCT
+
IIIIIIII
8 changes: 8 additions & 0 deletions tools/kneaddata/test-data/test_single.fastq
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@test1
ACGTACGT
+
IIIIIIII
@test2
TGCTAGCT
+
IIIIIIII
35 changes: 35 additions & 0 deletions tools/kneaddata/tool-data/bowtie2_indices.loc.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# bowtie2_indices.loc.sample
# This is a *.loc.sample file distributed with Galaxy that enables tools
# to use a directory of indexed data files. This one is for Bowtie2 and Tophat2.
# See the wiki: http://wiki.galaxyproject.org/Admin/NGS%20Local%20Setup
# First create these data files and save them in your own data directory structure.
# Then, create a bowtie_indices.loc file to use those indexes with tools.
# Copy this file, save it with the same name (minus the .sample),
# follow the format examples, and store the result in this directory.
# The file should include an one line entry for each index set.
# The path points to the "basename" for the set, not a specific file.
# It has four text columns seperated by TABS.
#
# <unique_build_id> <dbkey> <display_name> <file_base_path>
#
# So, for example, if you had hg18 indexes stored in:
#
# /depot/data2/galaxy/hg19/bowtie2/
#
# containing hg19 genome and hg19.*.bt2 files, such as:
# -rw-rw-r-- 1 james james 914M Feb 10 18:56 hg19canon.fa
# -rw-rw-r-- 1 james james 914M Feb 10 18:56 hg19canon.1.bt2
# -rw-rw-r-- 1 james james 683M Feb 10 18:56 hg19canon.2.bt2
# -rw-rw-r-- 1 james james 3.3K Feb 10 16:54 hg19canon.3.bt2
# -rw-rw-r-- 1 james james 683M Feb 10 16:54 hg19canon.4.bt2
# -rw-rw-r-- 1 james james 914M Feb 10 20:45 hg19canon.rev.1.bt2
# -rw-rw-r-- 1 james james 683M Feb 10 20:45 hg19canon.rev.2.bt2
#
# then the bowtie2_indices.loc entry could look like this:
#
#hg19 hg19 Human (hg19) /depot/data2/galaxy/hg19/bowtie2/hg19canon
#
#More examples:
#
#mm10 mm10 Mouse (mm10) /depot/data2/galaxy/mm10/bowtie2/mm10
#dm3 dm3 D. melanogaster (dm3) /depot/data2/galaxy/mm10/bowtie2/dm3
8 changes: 8 additions & 0 deletions tools/kneaddata/tool_data_table_conf.xml.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!-- Use the file tool_data_table_conf.xml.oldlocstyle if you don't want to update your loc files as changed in revision 4550:535d276c92bc-->
<tables>
<!-- Locations of indexes in the Bowtie2 mapper format -->
<table name="bowtie2_indexes" comment_char="#">
<columns>value, dbkey, name, path</columns>
<file path="tool-data/bowtie2_indices.loc" />
</table>
</tables>
Loading
Loading