view kleborate.xml @ 3:a7c43271312c draft default tip

planemo upload for repository https://github.com/katholt/Kleborate commit ebbb4da7c0c0176df539f9baa7c9323d9ff5f201
author iuc
date Tue, 31 Oct 2023 16:31:44 +0000
parents 959920e3e800
children
line wrap: on
line source

<tool id="kleborate" name="Kleborate" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05">
    <description>screen genome assemblies of Klebsiella pneumoniae</description>
    <macros>
        <token name="@TOOL_VERSION@">2.3.2</token>
        <token name="@VERSION_SUFFIX@">1</token>
    </macros>
    <xrefs>
        <xref type="bio.tools">kleborate</xref>
    </xrefs>
    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">kleborate</requirement>
        <requirement type="package" version="2.0.6">kaptive</requirement>
    </requirements>
    <version_command>kleborate --version</version_command>
    <command detect_errors="aggressive"><![CDATA[

## Symlink input files for human-readable names in output table
#for $a in $assemblies
  ln -s '$a' '$a.element_identifier' &&
#end for

kleborate
    $resistance
    -o '$outfile'
    #if $kaptive_k
        $kaptive_k
        --kaptive_k_outfile '$kaptive_k_outfile'
    #end if
    #if $kaptive_o
        $kaptive_o
        --kaptive_o_outfile '$kaptive_o_outfile'
    #end if
    #if $min_identity
        --min_identity $min_identity
    #end if
    #if $min_coverage
        --min_coverage $min_coverage
    #end if
    #if $min_spurious_identity
        --min_spurious_identity $min_spurious_identity
    #end if
    #if $min_spurious_coverage
        --min_spurious_coverage $min_spurious_coverage
    #end if
    --assemblies
    #for $a in $assemblies
    '$a.element_identifier'
    #end for
    1> '$concise'
    ]]></command>

    <inputs>
        <param argument="--assemblies" type="data" format="fasta" multiple="true" label="FASTA file(s) of assemblies" help="you may provide multiple assemblies for screening"/>

        <param argument="--resistance" type="select" label="Turn on resistance genes screening?">
            <option value="">no</option>
            <option value="--resistance" selected="true">yes</option>
        </param>

        <param argument="--kaptive_k" type="boolean" truevalue="--kaptive_k" falsevalue="" checked="false" label="Turn on screening of K loci?" help="Screen for capsule synthesis loci (K-loci) using the 'Kaptive' tool"/>
        <param argument="--kaptive_o" type="boolean" truevalue="--kaptive_o" falsevalue="" checked="false" label="Turn on screening of O loci?" help="Screen for lipopolysaccharide loci (O-loci) using the 'Kaptive' tool" />

        <param argument="--min_identity" type="integer" min="0" max="100" value="90" label="Minimum alignment percent identity for main results" help="Must be a value between 0 and 100" />
        <param argument="--min_coverage" type="integer" min="0" max="100" value="80" label="Minimum alignment percent coverage for main results" help="Must be a value between 0 and 100" />
        <param argument="--min_spurious_identity" type="integer" min="0" max="100" value="80" label="Minimum alignment percent identity for spurious results" help="Must be a value between 0 and 100" />
        <param argument="--min_spurious_coverage" type="integer" min="0" max="100" value="40" label="Minimum alignment percent coverage for spurious results" help="Must be a value between 0 and 100"/>
    </inputs>

    <outputs>
        <data name="concise" format="tabular" label="${tool.name} on ${on_string}: Concise Results" />
        <data name="outfile" format="tabular" label="${tool.name} on ${on_string}: Full Results" />
        <data name="kaptive_k_outfile" format="tabular" label="${tool.name} on ${on_string}: K-loci screening results" >
            <filter>kaptive_k</filter>
        </data>
        <data name="kaptive_o_outfile" format="tabular" label="${tool.name} on ${on_string}: O-loci screening results" >
            <filter>kaptive_o</filter>
        </data>
    </outputs>

    <tests>
        <test expect_num_outputs="4"><!-- test with resistance, kaptive k and kaptive o outputs -->
            <param name="assemblies" value="KP011_S63.scfd.fasta,KP012_S64.scfd.fasta" />
            <param name="resistance" value="--resistance"/>
            <param name="kaptive_k" value="--kaptive_k"/>
            <param name="kaptive_o" value="--kaptive_o"/>
            <output name="concise" ftype="tabular" file="Kleborate_concise_results.txt" />
            <output name="outfile" ftype="tabular" file="Kleborate_results.txt" />
            <output name="kaptive_k_outfile" ftype="tabular" file="Kleborate_kaptive_k_results.txt" />
            <output name="kaptive_o_outfile" ftype="tabular" file="Kleborate_kaptive_o_results.txt" />
        </test>
        <test expect_num_outputs="2"><!-- test without extra options -->
            <param name="assemblies" value="KP011_S63.scfd.fasta,KP012_S64.scfd.fasta" />
            <param name="resistance" value=""/>
            <param name="kaptive_k" value=""/>
            <param name="kaptive_o" value=""/>
            <output name="concise" ftype="tabular" file="Kleborate_concise_results_vanilla.txt" />
            <output name="outfile" ftype="tabular" file="Kleborate_results_vanilla.txt" />
        </test>

    </tests>

    <help><![CDATA[
**What it does**

Kleborate is a tool to screen genome assemblies of Klebsiella pneumoniae and the Klebsiella pneumoniae species complex (KpSC) for:

- MLST sequence type
- species (e.g. K. pneumoniae, K. quasipneumoniae, K. variicola, etc.)
- ICEKp associated virulence loci: yersiniabactin (ybt), colibactin (clb), salmochelin (iro), hypermucoidy (rmpA)
- virulence plasmid associated loci: salmochelin (iro), aerobactin (iuc), hypermucoidy (rmpA, rmpA2)
- antimicrobial resistance determinants: acquired genes, SNPs, gene truncations and intrinsic β-lactamases
- K (capsule) and O antigen (LPS) serotype prediction, via wzi alleles and Kaptive

For Klebsiella species outside of the KpSC, Kleborate will accurately determine the species and will report the presence of any accessory genes detected (AMR, virulence, K & O types); however species-focused markers (mutational resistance, MLST) and divergent forms of the virulence, K and O loci will not be reported.

More information can be found on the Kleborate `wiki`_.

.. _wiki: https://github.com/katholt/Kleborate/wiki


**Outputs**

Kleborate outputs the following concise results table (in this example with with resistance and K-loci screening enabled):

=============== ===================== ===== =============== ============== ===== ========== ==== ========== ==== =========== ===== =========================== ========= ============ ====== ==========
strain           species               ST   virulence_score Yersiniabactin YbST  Colibactin CbST Aerobactin AbST Salmochelin SmST  RmpADC                      RmST      rmpA2        wzi    K_locus
--------------- --------------------- ----- --------------- -------------- ----- ---------- ---- ---------- ---- ----------- ----- --------------------------- --------- ------------ ------ ----------
GCF_002248955.1 Klebsiella pneumoniae ST15  0               -              0     -          0    -          0    -           0     -                           0         -            wzi29  KL106
GCF_003095495.1 Klebsiella pneumoniae ST258 0               -              0     -          0    -          0    -           0     -                           0         -            wzi154 KL107
GCF_000009885.1 Klebsiella pneumoniae ST23  4               ybt 2;ICEKp1   326   -          0    iuc 1      1    iro 1,iro 3 19,18 rmp 3; ICEKp1,rmp 1; KpVP-1 30-1LV,26 rmpA2_3-47%  wzi1   KL1
GCF_900501255.1 Klebsiella pneumoniae ST86  3               -              0     -          0    iuc 1      1    iro 1       1     rmp 1; KpVP-1               26        rmpA2_9*-50% wzi2   KL2 (KL30)
=============== ===================== ===== =============== ============== ===== ========== ==== ========== ==== =========== ===== =========================== ========= ============ ====== ==========


Additional details can be found in the full results table, and the Kaptive screening of K-loci and O-loci each generate additional output tables.

**Scores**

Kleborate outputs a simple categorical virulence score, and if resistance screening is enabled, an antimicrobial resistance score as well. These scores provide a rough categorisation of the strains to facilitate monitoring resistance-virulence convergence.
Virulence score

The virulence score ranges from 0 to 5:

- 0 = negative for all of yersiniabactin (ybt), colibactin (clb), aerobactin (iuc)
- 1 = yersiniabactin only
- 2 = yersiniabactin and colibactin (or colibactin only)
- 3 = aerobactin (without yersiniabactin or colibactin)
- 4 = aerobactin with yersiniabactin (without colibactin)
- 5 = yersiniabactin, colibactin and aerobactin

Note neither the salmochelin (iro) locus nor rmpADC are explicitly considered in the virulence score, for simplicity. The iro and rmpADC loci typically appear alongside the aerobactin (iuc) locus on the Kp virulence plasmids, and so presence of iuc (score of 3-5) generally implies presence of iro and rmpADC. However we prioritise iuc in the calculation of the score, as aerobactin is specifically associated with growth in blood and is a stronger predictor of the hypervirulence phenotype (see this review). The iro and rmpADC loci are also occasionally present with ybt, in the ICEKp variant - ICEKp1, but this will still score 1.
Resistance score

The resistance score ranges from 0 to 3:

- 0 = no ESBL, no carbapenemase (regardless of colistin resistance)
- 1 = ESBL, no carbapenemase (regardless of colistin resistance)
- 2 = Carbapenemase without colistin resistance (regardless of ESBL genes or OmpK mutations)
- 3 = Carbapenemase with colistin resistance (regardless of ESBL genes or OmpK mutations)


**Confidence**

Kaptive K and O loci screening will indicate the best matching locus and types, and its confidence in the match:

- Perfect = the locus was found in a single piece with 100% coverage and 100% identity to the reference.
- Very high = the locus was found in a single piece with ≥99% coverage and ≥95% identity, with no missing genes and no extra genes.
- High = the locus was found in a single piece with ≥99% coverage, with ≤ 3 missing genes and no extra genes.
- Good = the locus was found in a single piece or with ≥95% coverage, with ≤ 3 missing genes and ≤ 1 extra genes.
- Low = the locus was found in a single piece or with ≥90% coverage, with ≤ 3 missing genes and ≤ 2 extra genes.
- None = did not qualify for any of the above.


**Spurious hits**

The default criteria for detection of virulence and resistance genes targeted for genotyping in Kleborate are minimum nucleotide identity ≥90% and minimum nucleotide sequence coverage ≥80% (these parameters can be changed in the tool settings).

To alert users to the possibility that target genes may be missed because of contig breaks or other assembly quality issues, Kleborate will also report the presence of 'spurious' BLAST hits that pass more relaxed criteria (default ≥80% identity, ≥40% coverage), in the dedicated columns spurious_virulence_hits and spurious_resistance_hits.
    ]]></help>

    <citations>
        <citation type="doi">10.1038/s41467-021-24448-3</citation> <!-- Kleborate publication -->
        <citation type="doi">10.1099/mgen.0.000102</citation><!-- Kaptive publication -->
    </citations>
</tool>