From 493071bb80e74ca06934ad00390acb51f2f55895 Mon Sep 17 00:00:00 2001 From: Paula Ruiz Rodriguez <50167687+Paururo@users.noreply.github.com> Date: Sun, 16 Aug 2026 16:40:16 +0200 Subject: [PATCH 1/3] feat(galaxy): add tool wrappers for all five subcommands Five Galaxy tools, one per subcommand, sharing a macros.xml. The layout matches galaxyproject/tools-iuc, so submitting there is a directory copy rather than a rewrite. pathotypr is already on Bioconda with a BioContainer built from it and is registered on bio.tools, so the wrappers declare the conda package and nothing is vendored. Verified with planemo: lint is clean on all five with no warnings, and all 8 tests pass. The test suite was itself checked by mutation: changing the output prefix so it no longer matches from_work_dir fails both classify tests, which is how we know the assertions read the real outputs. The test data is 64 KB of synthetic input, generated deterministically by a script kept alongside it. It is not filler. The generator asserts that every marker k-mer occurs exactly once in the reference, in both orientations, because a marker matching in two places would make the tests pass for the wrong reason. The expected calls follow from how the samples are built, and they cross-check each other: split-fastq on a sample's reads produces the same summary as classify on its assembly, which is the property the marker format promises. Three things had to be worked around, none of which is visible from the CLI help and all of which were found by running the tools: * classify and split-fastq take the sample name from the input filename. Galaxy datasets arrive as dataset_NNN.dat, so outputs would have been named after a Galaxy id. Inputs are symlinked to stable names first. * match writes the absolute paths of its inputs into the report's first column, which would differ between instances. Same fix. * --min-alt-percent is parsed as an integer. A Galaxy float parameter renders 95.0, which the tool rejects with "invalid digit found in string". It is declared as an integer, which also means fractional thresholds such as 99.5% are not reachable. Marker panels and models come from the history for now. A data manager and a .loc table would let an administrator install the published MTBC panels once, which is how Galaxy usually handles reference data; that is left as its own piece of work rather than half-built. --- galaxy/tools/pathotypr/.shed.yml | 18 + galaxy/tools/pathotypr/README.md | 74 +++ galaxy/tools/pathotypr/macros.xml | 85 ++++ galaxy/tools/pathotypr/pathotypr_classify.xml | 143 ++++++ galaxy/tools/pathotypr/pathotypr_match.xml | 128 ++++++ galaxy/tools/pathotypr/pathotypr_predict.xml | 78 ++++ .../tools/pathotypr/pathotypr_split_fastq.xml | 144 ++++++ galaxy/tools/pathotypr/pathotypr_train.xml | 135 ++++++ .../pathotypr/test-data/make_testdata.py | 178 ++++++++ galaxy/tools/pathotypr/test-data/markers.tsv | 9 + .../pathotypr/test-data/model.pathotypr.zst | Bin 0 -> 563 bytes galaxy/tools/pathotypr/test-data/query.fasta | 70 +++ .../tools/pathotypr/test-data/reference.fasta | 35 ++ .../pathotypr/test-data/references.fasta | 70 +++ .../tools/pathotypr/test-data/sample1.fasta | 35 ++ .../pathotypr/test-data/sample1_R1.fastq.gz | Bin 0 -> 2140 bytes .../pathotypr/test-data/sample1_R2.fastq.gz | Bin 0 -> 1995 bytes .../tools/pathotypr/test-data/sample2.fasta | 35 ++ .../tools/pathotypr/test-data/training.fasta | 420 ++++++++++++++++++ 19 files changed, 1657 insertions(+) create mode 100644 galaxy/tools/pathotypr/.shed.yml create mode 100644 galaxy/tools/pathotypr/README.md create mode 100644 galaxy/tools/pathotypr/macros.xml create mode 100644 galaxy/tools/pathotypr/pathotypr_classify.xml create mode 100644 galaxy/tools/pathotypr/pathotypr_match.xml create mode 100644 galaxy/tools/pathotypr/pathotypr_predict.xml create mode 100644 galaxy/tools/pathotypr/pathotypr_split_fastq.xml create mode 100644 galaxy/tools/pathotypr/pathotypr_train.xml create mode 100644 galaxy/tools/pathotypr/test-data/make_testdata.py create mode 100644 galaxy/tools/pathotypr/test-data/markers.tsv create mode 100644 galaxy/tools/pathotypr/test-data/model.pathotypr.zst create mode 100644 galaxy/tools/pathotypr/test-data/query.fasta create mode 100644 galaxy/tools/pathotypr/test-data/reference.fasta create mode 100644 galaxy/tools/pathotypr/test-data/references.fasta create mode 100644 galaxy/tools/pathotypr/test-data/sample1.fasta create mode 100644 galaxy/tools/pathotypr/test-data/sample1_R1.fastq.gz create mode 100644 galaxy/tools/pathotypr/test-data/sample1_R2.fastq.gz create mode 100644 galaxy/tools/pathotypr/test-data/sample2.fasta create mode 100644 galaxy/tools/pathotypr/test-data/training.fasta diff --git a/galaxy/tools/pathotypr/.shed.yml b/galaxy/tools/pathotypr/.shed.yml new file mode 100644 index 0000000..416aed8 --- /dev/null +++ b/galaxy/tools/pathotypr/.shed.yml @@ -0,0 +1,18 @@ +categories: + - Sequence Analysis + - Variant Analysis +description: Lineage classification and marker-driven genotyping from assemblies or raw reads +long_description: | + pathotypr classifies microbial genomes into lineages and genotypes them + against user-defined marker panels. It works from assembled genomes (FASTA) + and from raw reads (FASTQ) without aligning them, and it carries no assumption + about the organism: the marker panel supplied defines what is typed. +homepage_url: https://pathogenomics-lab.github.io/pathotypr/ +remote_repository_url: https://github.com/PathoGenOmics-Lab/pathotypr +owner: iuc +suite: + name: suite_pathotypr + description: Lineage classification and marker-driven genotyping with pathotypr + long_description: | + A suite of the five pathotypr commands: train, predict, classify, + split-fastq and match. diff --git a/galaxy/tools/pathotypr/README.md b/galaxy/tools/pathotypr/README.md new file mode 100644 index 0000000..a4733cc --- /dev/null +++ b/galaxy/tools/pathotypr/README.md @@ -0,0 +1,74 @@ +# Galaxy wrappers for pathotypr + +Five tools, one per subcommand, sharing `macros.xml`. + +| Tool | Wraps | Outputs | +|---|---|---| +| `pathotypr_train` | `train` | model, and optionally the two feature-importance reports | +| `pathotypr_predict` | `predict` | predictions TSV | +| `pathotypr_classify` | `classify` | per-marker hits, summary, optionally masked FASTA | +| `pathotypr_split_fastq` | `split-fastq` | per-marker calls, summary | +| `pathotypr_match` | `match` | best-match report | + +## Running the tests + +```bash +python3 -m venv .venv && .venv/bin/pip install planemo +.venv/bin/planemo lint tools/pathotypr/*.xml +.venv/bin/planemo test tools/pathotypr/ +``` + +`planemo test` resolves `pathotypr` from Bioconda. On a machine where that +package has no build for the local platform, put a `pathotypr` binary on `PATH` +and add `--no_dependency_resolution`; that still exercises the command lines, +the outputs and the assertions, and leaves only the dependency resolution to CI. + +## The test data + +Everything under `test-data/` is synthetic and generated deterministically: +a 2 kb reference, eight markers, two samples, paired reads at about 18x, and a +twelve-genome training set in two classes. 64 KB in total. + +It is not filler. The generator asserts that **every marker k-mer occurs exactly +once in the reference**, in both orientations, because a marker that matched in +two places would make the tests pass for the wrong reason. The expected calls +follow from how the samples were built: + +- `sample1` carries the L2 to L2.1 to L2.1.1 path plus the RIF marker, so + `classify` calls L2 and reports `rpoB` / `S450L`. +- `sample2` carries L3 to L3.2 plus the INH marker. +- `split-fastq` on `sample1`'s reads produces the **same summary** as `classify` + on its assembly, which is the property the marker format promises. +- `predict` assigns the two held-out queries to L2 and L3. +- `match` picks `ref_A`, which is `sample1`'s own genome. + +## Three things the wrappers have to work around + +1. **Sample names come from filenames.** Galaxy datasets arrive as + `dataset_NNN.dat`, so `classify` and `split-fastq` would name their outputs + after a Galaxy id. Each input is symlinked to a stable name first. +2. **`match` echoes input paths into its report.** Same fix, otherwise the first + column is full of absolute paths that differ between instances. +3. **`--min-alt-percent` is an integer.** A Galaxy `float` parameter renders + `95.0`, which the tool rejects outright. It is declared as an integer, so + fractional thresholds such as 99.5% are not available. + +## Submitting to the IUC + +The directory layout matches `galaxyproject/tools-iuc`, so submission is a copy: + +```bash +cp -r galaxy/tools/pathotypr /tools/pathotypr +``` + +then a pull request against that repository. Their CI runs the same planemo +lint and tests on Linux, where the Bioconda package resolves. + +## Not done yet + +Marker panels and models come from the history. A **data manager** plus a +`.loc` table would let an administrator install the published MTBC panels once +so users pick them from a dropdown, which is how Galaxy normally handles +reference data. That is a separate piece of work and was left out deliberately +rather than half-built: shipping a data table with nothing to populate it moves +the burden to administrators without helping anyone. diff --git a/galaxy/tools/pathotypr/macros.xml b/galaxy/tools/pathotypr/macros.xml new file mode 100644 index 0000000..c42bac2 --- /dev/null +++ b/galaxy/tools/pathotypr/macros.xml @@ -0,0 +1,85 @@ + + 1.0.2 + 0 + 23.0 + + + + pathotypr + + + + + + pathotypr + + + + + pathotypr --version + + + + + 10.64898/2026.03.24.714002 + 10.5281/zenodo.19210044 + + + + + -t \${GALAXY_SLOTS:-1} + + + + + + + + + + + + + + + + +**Marker file format** + +Tab-separated, no header required. Column order: + +:: + + position REF ALT level1 level2 ... (empty) gene mutation + +Positions are 1-based on the reference genome you supply. The lineage hierarchy +runs from column 4 until the first empty cell; whatever follows that empty cell +is read as gene and mutation. SNPs and equal-length MNVs work everywhere; +indels are accepted by *classify* and skipped by *split-fastq*. + +The full rules are at +https://pathogenomics-lab.github.io/pathotypr/marker_format/ + +Ready-made panels for the *M. tuberculosis* complex, and a pre-trained model, +are published on Zenodo: https://doi.org/10.5281/zenodo.19210044 + + + +**A note on other organisms** + +Nothing in pathotypr is hard-coded to one organism: the panel you supply defines +what is typed. In practice it has only been validated on the *M. tuberculosis* +complex, so treat other organisms as exploratory and check the calls against a +truth set you trust. + + diff --git a/galaxy/tools/pathotypr/pathotypr_classify.xml b/galaxy/tools/pathotypr/pathotypr_classify.xml new file mode 100644 index 0000000..0ad6544 --- /dev/null +++ b/galaxy/tools/pathotypr/pathotypr_classify.xml @@ -0,0 +1,143 @@ + + genotypes assembled genomes against a marker panel + + macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + output_masked_fasta + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/galaxy/tools/pathotypr/pathotypr_match.xml b/galaxy/tools/pathotypr/pathotypr_match.xml new file mode 100644 index 0000000..17c4209 --- /dev/null +++ b/galaxy/tools/pathotypr/pathotypr_match.xml @@ -0,0 +1,128 @@ + + finds which reference genome a set of reads is closest to + + macros.xml + + + + + 0 + --early-stop-confidence $early_stop_confidence + --early-stop-min-kmers $early_stop_min_kmers +#end if + $strict_percentages + @THREADS@ + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/galaxy/tools/pathotypr/pathotypr_predict.xml b/galaxy/tools/pathotypr/pathotypr_predict.xml new file mode 100644 index 0000000..a384f06 --- /dev/null +++ b/galaxy/tools/pathotypr/pathotypr_predict.xml @@ -0,0 +1,78 @@ + + assigns lineages to genomes using a trained model + + macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/galaxy/tools/pathotypr/pathotypr_split_fastq.xml b/galaxy/tools/pathotypr/pathotypr_split_fastq.xml new file mode 100644 index 0000000..a85256c --- /dev/null +++ b/galaxy/tools/pathotypr/pathotypr_split_fastq.xml @@ -0,0 +1,144 @@ + + genotypes raw reads against a marker panel without aligning them + + macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/galaxy/tools/pathotypr/pathotypr_train.xml b/galaxy/tools/pathotypr/pathotypr_train.xml new file mode 100644 index 0000000..f8a22d3 --- /dev/null +++ b/galaxy/tools/pathotypr/pathotypr_train.xml @@ -0,0 +1,135 @@ + + fits a Random Forest lineage classifier on labelled genomes + + macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + want_reports + + + want_reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GCF_000195955.2 Mycobacterium tuberculosis H37Rv``, which yields one +class per accession rather than one class per group, and nothing warns you. +Rewrite the headers to the labels you actually want predicted:: + + >L2 sample_A collected_2021 + >L2 sample_B + >L4.3 sample_C + +Labels are compared as flat strings. ``L4`` and ``L4.1`` are two unrelated +classes; the tool knows nothing about the hierarchy in the name. If you want +hierarchical calls, use a marker panel with *pathotypr classify* or +*pathotypr split-fastq* instead. + +**How much data** + +Nothing enforces a minimum per class, but a class represented by one or two +genomes contributes almost nothing the forest can generalise from. Aim for ten +or more per class, and prefer cross-validation over a single split when the set +is small or imbalanced. + +@ORGANISM_NOTE@ + ]]> + + diff --git a/galaxy/tools/pathotypr/test-data/make_testdata.py b/galaxy/tools/pathotypr/test-data/make_testdata.py new file mode 100644 index 0000000..32ebf29 --- /dev/null +++ b/galaxy/tools/pathotypr/test-data/make_testdata.py @@ -0,0 +1,178 @@ +#!/usr/bin/env python3 +"""Generate the smallest test data that still exercises every pathotypr module. + +Everything is deterministic: a fixed seed, and every derived file is built from +the same reference so the expected calls can be reasoned about rather than +copied out of a run. + +Size matters here. tools-iuc carries this data forever, so the reference is a +couple of kb rather than a genome. +""" +import gzip +import os +import random +import sys + +random.seed(20260816) + +OUT = sys.argv[1] if len(sys.argv) > 1 else "test-data" +os.makedirs(OUT, exist_ok=True) + +REF_LEN = 2000 +K = 31 # default --kmer-size +FLANK = 10 # default --min-flank-bases +READ_LEN = 100 +DEPTH = 20 # comfortably above the default --min-depth of 10 + + +def w(name, text): + with open(os.path.join(OUT, name), "w") as fh: + fh.write(text) + return os.path.join(OUT, name) + + +def revcomp(s): + return s.translate(str.maketrans("ACGT", "TGCA"))[::-1] + + +# ---------------------------------------------------------------- reference +# Random sequence, but every k-mer window around a marker has to be unique or +# the diagnostic k-mers match in more than one place. Random 2 kb over a 31-mer +# window is unique with overwhelming probability; asserted below rather than +# assumed. +ref = "".join(random.choice("ACGT") for _ in range(REF_LEN)) + +# Marker positions are 1-based. Keep them clear of the ends so a centred 31-mer +# with 10 flanking bases always fits. +MARKERS = [ + # pos, alt, lineage levels, gene, mutation + (200, "L1",), + (400, "L2",), + (600, "L2", "L2.1"), + (800, "L2", "L2.1", "L2.1.1"), + (1000, "L3",), + (1200, "L3", "L3.2"), +] +ANNOTATED = [ + (1400, "RIF", "rpoB", "S450L"), + (1600, "INH", "katG", "Ser315Thr"), +] + + +def alt_of(base): + return {"A": "G", "G": "A", "C": "T", "T": "C"}[base] + + +rows = ["#position\tref\talt\tlevel1\tlevel2\tlevel3"] +marker_alts = {} +for m in MARKERS: + pos, levels = m[0], list(m[1:]) + r = ref[pos - 1] + a = alt_of(r) + marker_alts[pos] = (r, a) + rows.append("\t".join([str(pos), r, a] + levels)) +for pos, lineage, gene, mut in ANNOTATED: + r = ref[pos - 1] + a = alt_of(r) + marker_alts[pos] = (r, a) + # The empty cell after the lineage is what makes gene and mutation be read + # as annotations rather than as two more lineage levels. + rows.append("\t".join([str(pos), r, a, lineage, "", gene, mut])) + +# Every marker k-mer must be unique in the reference, otherwise a hit is +# ambiguous and the test data would be testing the wrong thing. +half = K // 2 +for pos in marker_alts: + kmer = ref[pos - 1 - half: pos + half] + assert len(kmer) == K, f"marker {pos} too close to the end" + assert ref.count(kmer) == 1 and ref.count(revcomp(kmer)) == 0, ( + f"marker k-mer at {pos} is not unique") + assert pos - 1 - half >= FLANK and pos + half <= REF_LEN - FLANK + +w("reference.fasta", ">MTB_test_ref synthetic 2 kb reference\n" + + "\n".join(ref[i:i + 60] for i in range(0, len(ref), 60)) + "\n") +w("markers.tsv", "\n".join(rows) + "\n") + + +def genome_with(alt_positions, name, desc): + """The reference with the ALT allele substituted at the given positions.""" + g = list(ref) + for pos in alt_positions: + g[pos - 1] = marker_alts[pos][1] + seq = "".join(g) + w(name, f">{desc}\n" + "\n".join(seq[i:i + 60] for i in range(0, len(seq), 60)) + "\n") + return seq + + +# sample1 carries the full L2 -> L2.1 -> L2.1.1 path plus the RIF marker. +s1 = genome_with([400, 600, 800, 1400], "sample1.fasta", "sample1") +# sample2 carries L3 -> L3.2 and the INH marker. +s2 = genome_with([1000, 1200, 1600], "sample2.fasta", "sample2") + +# ------------------------------------------------------------------- FASTQ +def reads(seq, path, depth=DEPTH, read_len=READ_LEN, paired=True): + """Tile the genome so every position, markers included, is covered `depth` + times. Tiling rather than random sampling keeps the file small and the + coverage guaranteed.""" + step = max(1, (read_len * 2) // depth) + r1, r2 = [], [] + n = 0 + for start in range(0, len(seq) - read_len * 2, step): + f = seq[start:start + read_len] + rc = revcomp(seq[start + read_len: start + read_len * 2]) + if len(f) < read_len or len(rc) < read_len: + continue + n += 1 + q = "I" * read_len + r1.append(f"@read{n}/1\n{f}\n+\n{q}\n") + r2.append(f"@read{n}/2\n{rc}\n+\n{q}\n") + if paired: + with gzip.open(path + "_R1.fastq.gz", "wt") as fh: + fh.write("".join(r1)) + with gzip.open(path + "_R2.fastq.gz", "wt") as fh: + fh.write("".join(r2)) + return n + + +n1 = reads(s1, os.path.join(OUT, "sample1")) + +# ---------------------------------------------------------------- training +# train takes the label from the first whitespace-separated token of the +# header. Several genomes per class, each a mutated copy, so the forest has +# something to separate. +def mutate(seq, n_changes, rng): + g = list(seq) + for _ in range(n_changes): + i = rng.randrange(len(g)) + g[i] = alt_of(g[i]) + return "".join(g) + + +rng = random.Random(7) +train_records = [] +for i in range(6): + train_records.append((f"L2 train_L2_{i}", mutate(s1, 20, rng))) +for i in range(6): + train_records.append((f"L3 train_L3_{i}", mutate(s2, 20, rng))) + +w("training.fasta", "".join( + f">{h}\n" + "\n".join(s[j:j + 60] for j in range(0, len(s), 60)) + "\n" + for h, s in train_records)) + +# query set for predict: two unseen genomes, one per class +w("query.fasta", "".join( + f">{h}\n" + "\n".join(s[j:j + 60] for j in range(0, len(s), 60)) + "\n" + for h, s in [("query_a", mutate(s1, 20, rng)), ("query_b", mutate(s2, 20, rng))])) + +# ------------------------------------------------------------- match refs +w("references.fasta", + ">ref_A\n" + "\n".join(s1[i:i + 60] for i in range(0, len(s1), 60)) + "\n" + + ">ref_B\n" + "\n".join(s2[i:i + 60] for i in range(0, len(s2), 60)) + "\n") + +print(f"reference {REF_LEN} bp") +print(f"markers {len(marker_alts)} ({len(MARKERS)} lineage, {len(ANNOTATED)} annotated)") +print(f"reads {n1} pairs, ~{n1 * READ_LEN * 2 / REF_LEN:.0f}x") +print(f"training {len(train_records)} records, 2 classes") +print() +for f in sorted(os.listdir(OUT)): + print(f" {os.path.getsize(os.path.join(OUT, f)):>8} B {f}") diff --git a/galaxy/tools/pathotypr/test-data/markers.tsv b/galaxy/tools/pathotypr/test-data/markers.tsv new file mode 100644 index 0000000..a0d38c5 --- /dev/null +++ b/galaxy/tools/pathotypr/test-data/markers.tsv @@ -0,0 +1,9 @@ +#position ref alt level1 level2 level3 +200 C T L1 +400 G A L2 +600 G A L2 L2.1 +800 T C L2 L2.1 L2.1.1 +1000 A G L3 +1200 C T L3 L3.2 +1400 A G RIF rpoB S450L +1600 A G INH katG Ser315Thr diff --git a/galaxy/tools/pathotypr/test-data/model.pathotypr.zst b/galaxy/tools/pathotypr/test-data/model.pathotypr.zst new file mode 100644 index 0000000000000000000000000000000000000000..d1a7536afa42458a126651d3c605226d3efa69ca GIT binary patch literal 563 zcmV-30?hp=wJ-euSXB`KR@6>EATQXA0a(7D@cRN{Y{C!GW=8x)vl^41Q?z*i-z<_~ zC@3I}Y8W6RU`}%K#f^RWehOAzhq|(R61yk2NlF1b06+jd0IW2ek#Xg;PL9eqRuMn+ z0D2eVyeA;2HROj29N5{dv;A8>5GUI+F>Ov_ej+i=Ie{>xC2PSlx%=_TRQ^q5xILB3nyICU zcLPScrUK_JiinEtR^|{_Y^-8K8d&}I2w1o=M&@KxY}sF2jK#(KKvN;Juu=f>V%1=TbJH28ICKvnjHVNGpU4{i3%_=!!+N8~wk zoOA-(r1XDF18EZ{liaDiWulH}Xl^$<`H85R&|Aaln*9#g*pQ85G;L!TH=GHis6lW^ z`K&Ot(%285Mh_w4llQGryEky7?MYQG;X$6n>kXFDl4PHaxmc2hY%a_^!$~+EN~h5@ zB?;kX;u(C1!-vQ>SWJkTugrPHe8WS*i{(X9Gm1a(!h{JHY+O1p`O@%HhuJZG{REV? B2}A$@ literal 0 HcmV?d00001 diff --git a/galaxy/tools/pathotypr/test-data/query.fasta b/galaxy/tools/pathotypr/test-data/query.fasta new file mode 100644 index 0000000..ccc6788 --- /dev/null +++ b/galaxy/tools/pathotypr/test-data/query.fasta @@ -0,0 +1,70 @@ +>query_a +CGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCCGGGGGATGCGTT +AATGAAACTCCTTAGAATAGAGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTTCGGCGTCTACCTGTATAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTCAAGTAGTTTTCCTATGGGGGATTGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCCGTATCCCCACAGATTAATCGTTTGTCATC +AGGGGCTGGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTA +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACAGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTACCAACCGATACGTGCTAGTTCGTCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATGGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTGATCTAGCGGAATATGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTCCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCGCTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAC +CGATTGGAACTGATGATCGCGAGAAACTCTACTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCCGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCGCGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGATCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>query_b +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAGCTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTGGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATCTCCGACGTCTACCTGTACAACTTATGTCTGCT +CGCGGTACCTAATATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGAGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCGCAGATTAATCGTTTGTCATC +AGGGGTTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGACCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTG +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCTATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCCAGCGAGCGATCCTATAGAAGGCCTGCATGACACCT +TTTATGTAGGCGCGTTGTATCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACGTAGTAAATCGTCTTAATCTAGCGGAATGTGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAT +CGATTGGAACTGATGATCGCGAGAAACTCTGCTATACTTGGAGATAGGCTATTCATTGCC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCCGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCACGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGGTCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTACCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAGTTCACATTGCTGATTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG diff --git a/galaxy/tools/pathotypr/test-data/reference.fasta b/galaxy/tools/pathotypr/test-data/reference.fasta new file mode 100644 index 0000000..258cfee --- /dev/null +++ b/galaxy/tools/pathotypr/test-data/reference.fasta @@ -0,0 +1,35 @@ +>MTB_test_ref synthetic 2 kb reference +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCGCAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTG +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTATCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATATGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAC +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCACGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGATCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG diff --git a/galaxy/tools/pathotypr/test-data/references.fasta b/galaxy/tools/pathotypr/test-data/references.fasta new file mode 100644 index 0000000..4022036 --- /dev/null +++ b/galaxy/tools/pathotypr/test-data/references.fasta @@ -0,0 +1,70 @@ +>ref_A +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCACAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTA +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTACCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATATGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAC +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCGCGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGATCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>ref_B +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCGCAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTG +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTATCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATGTGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAT +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCACGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGGTCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG diff --git a/galaxy/tools/pathotypr/test-data/sample1.fasta b/galaxy/tools/pathotypr/test-data/sample1.fasta new file mode 100644 index 0000000..d29bd70 --- /dev/null +++ b/galaxy/tools/pathotypr/test-data/sample1.fasta @@ -0,0 +1,35 @@ +>sample1 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCACAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTA +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTACCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATATGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAC +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCGCGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGATCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG diff --git a/galaxy/tools/pathotypr/test-data/sample1_R1.fastq.gz b/galaxy/tools/pathotypr/test-data/sample1_R1.fastq.gz new file mode 100644 index 0000000000000000000000000000000000000000..46a949383bb7b23f38045319776958485a37770c GIT binary patch literal 2140 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 +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTG +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTATCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATGTGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAT +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCACGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGGTCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG diff --git a/galaxy/tools/pathotypr/test-data/training.fasta b/galaxy/tools/pathotypr/test-data/training.fasta new file mode 100644 index 0000000..e878ffe --- /dev/null +++ b/galaxy/tools/pathotypr/test-data/training.fasta @@ -0,0 +1,420 @@ +>L2 train_L2_0 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAGGGACTGACAGGCGTGAACCGGATCCAGCGCTGGGGGATGCGCT +AATGAAATTCCTTAGAACAGAGTTAGATCCCTACCTTTGTGGGGTGGTGCTTCACCGGGG +TCTGTGACCACTTGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGCTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCACAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCACTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTA +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGTAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCAAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTACCAACCGACGCGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAATACCTTTGAAAGGAACAAATCCGGAACGATGTTCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATATGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTGGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGCTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCTAGACAC +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACGTGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCGCGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGATCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CTTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAACCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGACAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>L2 train_L2_1 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCTAGCGCTGGGGGATGCGTT +AGTGAAGTTCCTTAGAACAGAGTCAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTAACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTGTTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCACAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTTCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCTGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTA +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTACCAACCGACACGTACTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGGACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATATGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCGATGTCGGGGCA +AAAACTGCACCTCTTATCACACTTAGGGCCGACGTGCACTACCTTCTCCGCCCTAGACAT +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGACGGGAGAGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCGCGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGATCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGATTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>L2 train_L2_2 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACTGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCAACGTCTACCTGTACAACTTATGTCCGCT +CACGGTACCTAGTATTGTGTTGGACCTCCACTTTCGAAGTCGAGATAAGAACATCTACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATCTCCTTCACCGACCCTATGCTGTATCCCCACAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGACATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTAGCTCTA +GTCGGAATAAACTTGAAAAAGGACAGCGGCAGCGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTACCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACATCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATATGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTTTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +GAAACTGTACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCTCCAGACAC +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACTCCGCGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGATCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGACGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCCAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGA +>L2 train_L2_3 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AACGAAATCCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGTGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCTTATGCTGTATCCCCACAGATTAATCGTTTGTCATC +AAGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTA +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGTTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGGAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTACCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAACCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCCGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATATGCCGACGCCAAGTTTTGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGATTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTCGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTGTCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAT +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCATGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAAAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAGACCCCGCGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTTAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAATATCTTTGATCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCAGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>L2 train_L2_4 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGCGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATGTTTCCTTCACCGACCCTATGCTGTATCCCCACAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATATTAAGTCATATTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGGAGTGGCTCTA +GTCGGAATAAACTCAAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAGAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAATGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTACCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGCTGGATTACGGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATATGCCGACGCCAAGCTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTACGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGTACTATCTTCTCCGCCCCAGACAC +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGACTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCGCGTAAATTAATACAGTGAATATTTCTCACAAGTATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTCACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTCGATCCGTTAAAGCCTGCGGCCC +CCATCCCAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCTAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>L2 train_L2_5 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGATTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTTCTACCTTTATGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CACGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAGGTAGTTTTCCTATGGGGGATCGCTCAGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCACAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTA +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATCCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTACCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAATACCTTTAAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATATACCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCCATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAGACTGCACCTCTTATCGCACTTAGGGCCGACATGCACTATCTTCTCCGCCCCAGACAC +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATACGCTACCCTATC +TGCGTCCTCAGGAAACCCCGCGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCATCAATTTAAA +ATGGCCTCCACGCCTGCTATAGCGGCCCAAACATCTTTGATCCGTTAAAGCCTGCGACCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCTAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTCCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCTTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>L3 train_L3_0 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGGAATTCCTTGGAACAGGGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACCCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCGCAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAGGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTG +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTACTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACAGATTCAAAGAATCCCATGCCTCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTATCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCGTATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAATATAGTAAATCGTCTTAATCTAGCGGAATGTGCCGACGCCAAGTTTCAGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTTCGCCCCAGACAT +CGATTGGAACTGATGATTGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAATGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCACGTAAATTAATACAGTGAATATTCCTCGCAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGGTCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTCGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCCTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCAAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTTGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>L3 train_L3_1 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGATACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAAGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCGCAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGTCGTCAGAAGTGGCTCTG +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGGTACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCTCATGCCCCA +GGCGTACATACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGTGCGTTGTATCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGCGGCAGGTTGGATTACAGCGCCATATACGGTTGTGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATGTGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCCTCTCCGCCCCAGACAT +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTACTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGCCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATACTACCCTATC +TGCGTCCTCAGGAAATCCCACGTAAATTAATACAGTGAATATTTCTCACAAATATAACAC +ATTTTTTTAACTAAATCTCAGCGAATGACGACGAGTGATGCTTAAACAATGGTTACGCGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGGTCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTCGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAATAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGCGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>L3 train_L3_2 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +GATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTAGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCC +CGCGGTACCTAGTATTGTGTTGGATCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCCGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCGCAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTTGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCACGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGTAACTAGGTTGCGCCGTCAAAAGTGGCTCTG +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTATTAACCGACACGTGCCAGTTCATTACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGCTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATGTGCCGACGCCAGGTTTTGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCCTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAT +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCACGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACCCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCTTGCTATAGCGGCCCAAACATCTTTGGTCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCCACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTGCCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>L3 train_L3_3 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGTGTTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTTGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +TTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCGCAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATCCTAGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCGACTAGGTTGCGCCGTCAGAAGTGGCTCTG +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTTTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCC +TTTATGTAGGCGCGTTGTATCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTAGACAACACCTTTGAAAGGAACAAATCCGGAGCGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATGTGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTCCAATGTCGGGGCA +AAAACTGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAT +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCTACGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTCTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGGTCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTGTA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGTAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAACGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATTGCTGGTTCCCATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>L3 train_L3_4 +TGTGAGTCATGTTCACCTCGGTACGGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGGGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGCGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACCT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCTTTCACCGACCCTATGCTGTATCCCCGCAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGTAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATTC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGCTGCGCCGTCAGAAGTGGCTCTG +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCCGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCTTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTATCAACCGACACGTGCTAGTTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACATCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCATATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGTGGAATGTGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCCCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATACGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACTGCACCTCTTATCGTACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAT +CGATTGAAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGTTATTCATCACC +CGCTGCACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGGCTAGCTGGATACATGCAACGGTCATATGCTACCCTATC +TGCGTCCTCAGGAAACCCCACGTAAATTAATACAATGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCTTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTTGGTCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGTCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCCGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTAAGAGATGAGCAGTACACGCGTGGCTACCTATCCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGTTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTCACATCGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG +>L3 train_L3_5 +TGTGAGTCGTGTTCACCTCGGTACAGGACGACAATGCTGGCACAGACACTCAACTTCCCA +GTAGCGCTGATAGGGAAGGACTGACAGGCGTGAACCGGGTCCAGCGCTGGAGGATGCGTT +AATGAAATTCCTTAGAACAGAGTTAGATTCCTACCTTTGTGGGGTGGTGCTTCACCAGGG +TCTGTGACCACTCGACCCGCGCTAGATTTCCGACGTCTACCTGTACAACTTATGTCCGCT +CGCGGTACCTAGTATTGTGTTGGACCTCCACTCTCGAAGTCGAGATAAGAACATCCACTT +AAAGGGTGTTAAGTAGTTTTCCTATGGGGGATCGCTCGGCTGGAGGAACACATCGTGATA +CTACTAATATTTCCTTCACCGACCCTATGCTGTATCCCCGCAGATTAATCGTTTGTCATC +AGGGGCTAGTACGATTTTCGCTTTGTCGAAGATATTTCCCCGTTAACTTTATTCTGGCAG +AAGTCTCATGTCCGATATACTAAGTCATGTTAAAGATCTCCGACCCGGGTAGTAAAATCC +GTTTGACAACTAAGTACAAGCAGGTTAAGCAACTAGGTTGCGCCGTCAGAAGTGGCTCTG +GTCGGAATAAACTTGAAAAAGGACAGCGGCAACGATACTCTTGCTAGACGCCTGGAACTT +GGGCAGGCTCATACCTCATGCACCAGCCCCCTAAACGGATTCAAAGAATCCCATGCCCCA +GGCGTACGTACGGTCTGGGAGTGCTGGCGAGCGATCCTATAGAAGGCCTGTATGACACCT +TTTATGTAGGCGCGTTGTATCAATCGACACGTGCTGGCTCATCACAATTCCCGTTATACA +TCGCTGGGGTGGACAACACCTTTGAAAGGAACAAATCCGGAACGATGTCCCGTCACTGCA +ATAGTAGAGAAGTGGCAGGTTGGATTACAGCGCCACATACGGTTGCGTACTGCTGTCTCA +GAATTTCTAACATAGTAAATCGTCTTAATCTAGCGGAATGTGCCGACGCCAAGTTTCGGT +CATAGTAAGGTGTGGTGCTAGGGGCTCCTATACGCTCAGTGTGGGCGACTGATTTGCGTA +CGGAGCGACTTAATGCGTTCCAGGTCTCTAACCGCGAAGCTTGCCTTCAATGTCGGGGCA +AAAACCGCACCTCTTATCGCACTTAGGGCCGACGTGCACTATCTTCTCCGCCCCAGACAT +CGATTGGAACTGATGATCGCGAGAAACTCTGCTGTACTTGGAGATAGGCTATTCATCACC +CGCTACACGATCGGTCATCGAGGGGCGGGAGGGATAGCCTGGGTCACAGAAGCTGCAGGG +GGTCGTCCATGACATGGATGGACTAGCTAGATACATGCAACGGTCATATGCTACCCTATC +TGCGCCCTCAGGAGACCCCACGTAAATTAATACAGTGAATATTTCTCACAAATATAGCAC +ATTTTTTTAACTAAATCTCAGCGAATGGCGACGAGTGATGCTTAAACAATGGTTACGTGT +GCTCTAAGCTACTCCCTACGAGAGTGCCCCCCATGGTCAAAGGATCGCCACCAATTTAAA +ATGGCTTCCACGCCTGCTATAGCGGCCCAAACATCTTCGGTCCGTTAAAGCCTGCGGCCC +CCATCCTAGCGTTGCCTGTAATAGTATCAATCGCGCTAGTACGGTCGGTTGGCGCTTATA +CCTTGCACCATGACTTCAGTCCTGAGCCGATTGATTGAGCGAGCGCTGCCAGCGCTCATA +TGATTAGCAATCTCCGGCTGAGAGATGAGCAGTACACGCGTGGTTACCTATTCAATGCTG +GCTACGCTAGTGGTAACAAGAAACTCAGTTAGTGGCCACTTGCTGGGAGTAATCGTCTCG +GAATCCATGCGCGGAGTACCTGGCTGCAAGCGGCATACTGATCCGTGTTGTTCCCTAGAC +GCTGGGTGTCTCGTCGGACGATAATTTACGTTGCTGGTTCCTATAGTCTCCTGTCACAGG +ATCACGGCAGAAAGGAGGGG From b9b079fe889be906ba4b62c733a7aa34a12064bb Mon Sep 17 00:00:00 2001 From: Paula Ruiz Rodriguez <50167687+Paururo@users.noreply.github.com> Date: Sun, 16 Aug 2026 16:41:17 +0200 Subject: [PATCH 2/3] ci: give the galaxy directory a labeler rule labeler.yml was written before galaxy/ existed and has no catch-all, so the pull request adding five Galaxy wrappers arrived with no labels at all. The list has now aged exactly the way the comment in that file predicts a file-by-file list would. --- .github/labeler.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/labeler.yml b/.github/labeler.yml index 109d044..bf3373e 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -71,6 +71,11 @@ area:packaging: - "src-tauri/tauri.conf.json" - "CITATION.cff" +area:galaxy: + - changed-files: + - any-glob-to-any-file: + - "galaxy/**" + # Everything under .github, not a list of the files there. Naming them one by one # would leave this file itself uncovered, so the pull request adding a rule would # arrive with no label, which is a small thing that says exactly how such a list From 940466f9d0e50e73c185bdf32b45b3c47d4da5ff Mon Sep 17 00:00:00 2001 From: Paula Ruiz Rodriguez <50167687+Paururo@users.noreply.github.com> Date: Sun, 16 Aug 2026 16:57:01 +0200 Subject: [PATCH 3/3] fix(galaxy): bring .shed.yml to the IUC standard and test the masked output Checked against a current tools-iuc tool rather than from memory, which turned up three things. .shed.yml was missing name, type and auto_tool_repositories. That last one is what turns a directory of five tools into five ToolShed repositories, so without it the suite would not have been built the way the IUC expects. Its remote_repository_url also pointed at this repository rather than at the path the wrappers will live at inside tools-iuc. The masked FASTA output had no test. It is a collection discovered by pattern, so its naming is exactly the kind of thing that breaks silently. Verified first that the file is sample1_masked.fasta, that the discovered designation is sample1, and that it carries exactly eight Ns, one per marker. The input genomes contain no N at all, so an N in the output can only have come from masking. detect_errors stays exit_code rather than the aggressive setting the reference tool uses. That is now a measured decision: pathotypr writes its INFO log to stderr, and aggressive scans stderr, so a log line containing the word error would fail an otherwise correct job. No EDAM annotations. The reference tool carries none either, and wrong ontology terms are worse than absent ones. planemo: lint clean on all five, 9 of 9 tests passing. --- galaxy/tools/pathotypr/.shed.yml | 23 +++++++++++-------- galaxy/tools/pathotypr/pathotypr_classify.xml | 17 ++++++++++++++ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/galaxy/tools/pathotypr/.shed.yml b/galaxy/tools/pathotypr/.shed.yml index 416aed8..17a0a0f 100644 --- a/galaxy/tools/pathotypr/.shed.yml +++ b/galaxy/tools/pathotypr/.shed.yml @@ -1,18 +1,21 @@ -categories: - - Sequence Analysis - - Variant Analysis +name: pathotypr +owner: iuc description: Lineage classification and marker-driven genotyping from assemblies or raw reads long_description: | pathotypr classifies microbial genomes into lineages and genotypes them against user-defined marker panels. It works from assembled genomes (FASTA) and from raw reads (FASTQ) without aligning them, and it carries no assumption about the organism: the marker panel supplied defines what is typed. +categories: +- Sequence Analysis +- Variant Analysis +remote_repository_url: https://github.com/galaxyproject/tools-iuc/tree/main/tools/pathotypr homepage_url: https://pathogenomics-lab.github.io/pathotypr/ -remote_repository_url: https://github.com/PathoGenOmics-Lab/pathotypr -owner: iuc +type: unrestricted +auto_tool_repositories: + name_template: "{{ tool_id }}" + description_template: "Wrapper for the pathotypr tool {{ tool_name }}." suite: - name: suite_pathotypr - description: Lineage classification and marker-driven genotyping with pathotypr - long_description: | - A suite of the five pathotypr commands: train, predict, classify, - split-fastq and match. + name: "suite_pathotypr" + description: A suite of Galaxy tools for the five pathotypr commands. + type: repository_suite_definition diff --git a/galaxy/tools/pathotypr/pathotypr_classify.xml b/galaxy/tools/pathotypr/pathotypr_classify.xml index 0ad6544..cf3daaf 100644 --- a/galaxy/tools/pathotypr/pathotypr_classify.xml +++ b/galaxy/tools/pathotypr/pathotypr_classify.xml @@ -112,6 +112,23 @@ pathotypr classify + + + + + + + + + + + + + + +