Skip to content

Commit

Permalink
KmerFinder to TheiaProk (#188)
Browse files Browse the repository at this point in the history
* skeleton on kmerfinder task

* remove kmerfinder_db_name

* still trying to get kmerfinder to run

* is this working now?!?

* first working version of kmerfinder task

* parse top hit

* make results output file optional

* final version of task (for now..)

* add kmerfinder_bacteria to theiaprok!

* fix typo

* pass empty file for tests - kmerfinder_db

* fix input json

* add kmerfinder query coverage to theiaprok SE, PE, FASTA and ONT

* remove undeeded skip on kmerfinder (set to false by default)

* fix ops

* update md5sum (part1)

* update md5sum (part2)

* fiz sister typo

* missed a file

* update CI

* add kmerfinder_template_coverage to theiaprok output

* expose database name on kmerfinder outputs

* update md5sum

* fix bug - headers being outputed to datatable
  • Loading branch information
cimendes authored Oct 9, 2023
1 parent 801baa2 commit 7828f47
Show file tree
Hide file tree
Showing 10 changed files with 185 additions and 16 deletions.
67 changes: 67 additions & 0 deletions tasks/taxon_id/task_kmerfinder.wdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
version 1.0

task kmerfinder_bacteria {
input {
File assembly
String samplename
File kmerfinder_db = "gs://theiagen-public-files-rp/terra/theiaprok-files/kmerfinder_bacteria_20230911.tar.gz"
String docker = "us-docker.pkg.dev/general-theiagen/biocontainers/kmerfinder:3.0.2--hdfd78af_0"
Int memory = 32
Int cpu = 4
Int disk_size = 100
String kmerfinder_args = ""
}
command <<<
# Decompress the kmerfinder bacterial database
mkdir db
tar -C ./db/ -xzvf ~{kmerfinder_db}

# Run kmerfinder
kmerfinder.py \
-db ./db/bacteria/bacteria.ATG \
-tax ./db/bacteria/bacteria.tax \
-i ~{assembly} \
-o ~{samplename} \
~{kmerfinder_args}

# parse outputs
if [ ! -f ~{samplename}/results.txt ]; then
PF="No hit detected in database"
QC="No hit detected in database"
TC="No hit detected in database"
else
PF="$(cat ~{samplename}/results.txt | head -n 2 | tail -n 1 | cut -f 19)"
QC="$(cat ~{samplename}/results.txt | head -n 2 | tail -n 1 | cut -f 6)"
TC="$(cat ~{samplename}/results.txt | head -n 2 | tail -n 1 | cut -f 7)"
# String is empty or just contains the header
if [ "$PF" == "" ] || [ "$PF" == "Species" ]; then
PF="No hit detected in database"
QC="No hit detected in database"
TC="No hit detected in database"
fi
mv -v ~{samplename}/results.txt ~{samplename}_kmerfinder.tsv
fi
echo $PF | tee TOP_HIT
echo $QC | tee QC_METRIC
echo $TC | tee TEMPLATE_COVERAGE

# extract database name
DB=$(basename ~{kmerfinder_db} | sed 's/\.tar\.gz$//')
echo $DB | tee DATABASE
>>>
output {
String kmerfinder_docker = docker
File? kmerfinder_results_tsv = "~{samplename}_kmerfinder.tsv"
String kmerfinder_top_hit = read_string("TOP_HIT")
String kmerfinder_query_coverage = read_string("QC_METRIC")
String kmerfinder_template_coverage = read_string("TEMPLATE_COVERAGE")
String kmerfinder_database = read_string("DATABASE")
}
runtime {
docker: docker
memory: "~{memory} GB"
cpu: cpu
disks: "local-disk ~{disk_size} SSD"
preemptible: 0
}
}
16 changes: 14 additions & 2 deletions tasks/utilities/task_broad_terra_tools.wdl
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,12 @@ task export_taxon_tables {
File? ani_output_tsv
String? ani_top_species_match
String? ani_mummer_version
String? kmerfinder_docker
File? kmerfinder_results_tsv
String? kmerfinder_top_hit
String? kmerfinder_query_coverage
String? kmerfinder_template_coverage
String? kmerfinder_database
File? amrfinderplus_all_report
File? amrfinderplus_amr_report
File? amrfinderplus_stress_report
Expand Down Expand Up @@ -169,7 +175,7 @@ task export_taxon_tables {
String? lissero_serotype
File? sistr_results
File? sistr_allele_json
File? sister_allele_fasta
File? sistr_allele_fasta
File? sistr_cgmlst
String? sistr_version
String? sistr_predicted_serotype
Expand Down Expand Up @@ -495,7 +501,7 @@ task export_taxon_tables {
"lissero_serotype": "~{lissero_serotype}",
"sistr_results": "~{sistr_results}",
"sistr_allele_json": "~{sistr_allele_json}",
"sister_allele_fasta": "~{sister_allele_fasta}",
"sistr_allele_fasta": "~{sistr_allele_fasta}",
"sistr_cgmlst": "~{sistr_cgmlst}",
"sistr_version": "~{sistr_version}",
"sistr_predicted_serotype": "~{sistr_predicted_serotype}",
Expand Down Expand Up @@ -589,6 +595,12 @@ task export_taxon_tables {
"ani_output_tsv": "~{ani_output_tsv}",
"ani_top_species_match": "~{ani_top_species_match}",
"ani_mummer_version": "~{ani_mummer_version}",
"kmerfinder_docker": "~{kmerfinder_docker}",
"kmerfinder_results_tsv": "~{kmerfinder_results_tsv}",
"kmerfinder_top_hit": "~{kmerfinder_top_hit}",
"kmerfinder_query_coverage": "~{kmerfinder_query_coverage}",
"kmerfinder_template_coverage": "~{kmerfinder_template_coverage}",
"kmerfinder_database": "~{kmerfinder_database}",
"resfinder_pheno_table": "~{resfinder_pheno_table}",
"resfinder_pheno_table_species": "~{resfinder_pheno_table_species}",
"resfinder_seqs": "~{resfinder_seqs}",
Expand Down
3 changes: 2 additions & 1 deletion tests/inputs/theiaprok/wf_theiaprok_illumina_pe.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,6 @@
"theiaprok_illumina_pe.merlin_magic.cladetyper.ref_clade5_annotated" : "./tests/inputs/empty-for-test.txt",
"theiaprok_illumina_pe.bakta.bakta_db" : "./tests/inputs/empty-for-test.txt",
"theiaprok_illumina_pe.gambit.gambit_db_signatures" : "./tests/inputs/completely-empty-for-test.txt",
"theiaprok_illumina_pe.gambit.gambit_db_genomes" : "./tests/inputs/completely-empty-for-test.txt"
"theiaprok_illumina_pe.gambit.gambit_db_genomes" : "./tests/inputs/completely-empty-for-test.txt",
"theiaprok_illumina_pe.kmerfinder.kmerfinder_db" : "./tests/inputs/completely-empty-for-test.txt"
}
3 changes: 2 additions & 1 deletion tests/inputs/theiaprok/wf_theiaprok_illumina_se.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,6 @@
"theiaprok_illumina_se.merlin_magic.cladetyper.ref_clade5_annotated" : "./tests/inputs/empty-for-test.txt",
"theiaprok_illumina_se.bakta.bakta_db" : "./tests/inputs/empty-for-test.txt",
"theiaprok_illumina_se.gambit.gambit_db_signatures" : "./tests/inputs/completely-empty-for-test.txt",
"theiaprok_illumina_se.gambit.gambit_db_genomes" : "./tests/inputs/completely-empty-for-test.txt"
"theiaprok_illumina_se.gambit.gambit_db_genomes" : "./tests/inputs/completely-empty-for-test.txt",
"theiaprok_illumina_se.kmerfinder.kmerfinder_db" : "./tests/inputs/completely-empty-for-test.txt"
}
4 changes: 2 additions & 2 deletions tests/workflows/theiaprok/test_wf_theiaprok_illumina_pe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -632,9 +632,9 @@
- path: miniwdl_run/wdl/tasks/taxon_id/task_midas.wdl
md5sum: 024971d1439dff7d59c0a26a824bd2c6
- path: miniwdl_run/wdl/tasks/utilities/task_broad_terra_tools.wdl
md5sum: 7cffaf4d159b65fbcf9091dd8477500a
md5sum: 43ef050bde1fb8755f38e697a1794918
- path: miniwdl_run/wdl/workflows/theiaprok/wf_theiaprok_illumina_pe.wdl
md5sum: ca8825e5cc5a6d910e0368fcb6992905
md5sum: 6dc6c393281a19e8dcbcc15964b8e08a
- path: miniwdl_run/wdl/workflows/utilities/wf_merlin_magic.wdl
md5sum: 2614fac622fa2035b80a7b220b1aed86
- path: miniwdl_run/wdl/workflows/utilities/wf_read_QC_trim_pe.wdl
Expand Down
4 changes: 2 additions & 2 deletions tests/workflows/theiaprok/test_wf_theiaprok_illumina_se.yml
Original file line number Diff line number Diff line change
Expand Up @@ -600,9 +600,9 @@
- path: miniwdl_run/wdl/tasks/taxon_id/task_midas.wdl
md5sum: 024971d1439dff7d59c0a26a824bd2c6
- path: miniwdl_run/wdl/tasks/utilities/task_broad_terra_tools.wdl
md5sum: 7cffaf4d159b65fbcf9091dd8477500a
md5sum: 43ef050bde1fb8755f38e697a1794918
- path: miniwdl_run/wdl/workflows/theiaprok/wf_theiaprok_illumina_se.wdl
md5sum: 627a157d962453229f619da37e03e43d
md5sum: 24bfd35867f4ae864364e24195bf7f6f
- path: miniwdl_run/wdl/workflows/utilities/wf_merlin_magic.wdl
md5sum: 2614fac622fa2035b80a7b220b1aed86
- path: miniwdl_run/wdl/workflows/utilities/wf_read_QC_trim_se.wdl
Expand Down
26 changes: 24 additions & 2 deletions workflows/theiaprok/wf_theiaprok_fasta.wdl
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import "../../tasks/quality_control/task_quast.wdl" as quast_task
import "../../tasks/quality_control/task_busco.wdl" as busco_task
import "../../tasks/taxon_id/task_gambit.wdl" as gambit_task
import "../../tasks/quality_control/task_mummer_ani.wdl" as ani_task
import "../../tasks/taxon_id/task_kmerfinder.wdl" as kmerfinder_task
import "../../tasks/gene_typing/task_amrfinderplus.wdl" as amrfinderplus
import "../../tasks/gene_typing/task_resfinder.wdl" as resfinder
import "../../tasks/species_typing/task_ts_mlst.wdl" as ts_mlst_task
Expand Down Expand Up @@ -35,6 +36,7 @@ workflow theiaprok_fasta {
String terra_workspace="NA"
# module options
Boolean call_ani = false # by default do not call ANI task, but user has ability to enable this task if working with enteric pathogens or supply their own high-quality reference genome
Boolean call_kmerfinder = false
Boolean call_resfinder = false
String genome_annotation = "prokka" # options: "prokka" or "bakta"
String? expected_taxon # allow user to provide organism (e.g. "Clostridioides_difficile") string to amrfinder. Useful when gambit does not predict the correct species
Expand Down Expand Up @@ -66,6 +68,13 @@ workflow theiaprok_fasta {
samplename = samplename
}
}
if (call_kmerfinder) {
call kmerfinder_task.kmerfinder_bacteria as kmerfinder {
input:
assembly = assembly_fasta,
samplename = samplename
}
}
call amrfinderplus.amrfinderplus_nuc as amrfinderplus_task {
input:
assembly = assembly_fasta,
Expand Down Expand Up @@ -166,6 +175,12 @@ workflow theiaprok_fasta {
ani_output_tsv = ani.ani_output_tsv,
ani_top_species_match = ani.ani_top_species_match,
ani_mummer_version = ani.ani_mummer_version,
kmerfinder_docker = kmerfinder.kmerfinder_docker,
kmerfinder_results_tsv = kmerfinder.kmerfinder_results_tsv,
kmerfinder_top_hit = kmerfinder.kmerfinder_top_hit,
kmerfinder_query_coverage = kmerfinder.kmerfinder_query_coverage,
kmerfinder_template_coverage = kmerfinder.kmerfinder_template_coverage,
kmerfinder_database = kmerfinder.kmerfinder_database,
amrfinderplus_all_report = amrfinderplus_task.amrfinderplus_all_report,
amrfinderplus_amr_report = amrfinderplus_task.amrfinderplus_amr_report,
amrfinderplus_stress_report = amrfinderplus_task.amrfinderplus_stress_report,
Expand Down Expand Up @@ -243,7 +258,7 @@ workflow theiaprok_fasta {
lissero_serotype = merlin_magic.lissero_serotype,
sistr_results = merlin_magic.sistr_results,
sistr_allele_json = merlin_magic.sistr_allele_json,
sister_allele_fasta = merlin_magic.sistr_allele_fasta,
sistr_allele_fasta = merlin_magic.sistr_allele_fasta,
sistr_cgmlst = merlin_magic.sistr_cgmlst,
sistr_version = merlin_magic.sistr_version,
sistr_predicted_serotype = merlin_magic.sistr_predicted_serotype,
Expand Down Expand Up @@ -412,6 +427,13 @@ workflow theiaprok_fasta {
File? ani_output_tsv = ani.ani_output_tsv
String? ani_top_species_match = ani.ani_top_species_match
String? ani_mummer_version = ani.ani_mummer_version
# kmerfinder outputs
String? kmerfinder_docker = kmerfinder.kmerfinder_docker
File? kmerfinder_results_tsv = kmerfinder.kmerfinder_results_tsv
String? kmerfinder_top_hit = kmerfinder.kmerfinder_top_hit
String? kmerfinder_query_coverage = kmerfinder.kmerfinder_query_coverage
String? kmerfinder_template_coverage = kmerfinder.kmerfinder_template_coverage
String? kmerfinder_database = kmerfinder.kmerfinder_database
# NCBI-AMRFinderPlus Outputs
File amrfinderplus_all_report = amrfinderplus_task.amrfinderplus_all_report
File amrfinderplus_amr_report = amrfinderplus_task.amrfinderplus_amr_report
Expand Down Expand Up @@ -499,7 +521,7 @@ workflow theiaprok_fasta {
# Salmonella Typing
File? sistr_results = merlin_magic.sistr_results
File? sistr_allele_json = merlin_magic.sistr_allele_json
File? sister_allele_fasta = merlin_magic.sistr_allele_fasta
File? sistr_allele_fasta = merlin_magic.sistr_allele_fasta
File? sistr_cgmlst = merlin_magic.sistr_cgmlst
String? sistr_version = merlin_magic.sistr_version
String? sistr_predicted_serotype = merlin_magic.sistr_predicted_serotype
Expand Down
26 changes: 24 additions & 2 deletions workflows/theiaprok/wf_theiaprok_illumina_pe.wdl
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import "../../tasks/quality_control/task_screen.wdl" as screen
import "../../tasks/quality_control/task_busco.wdl" as busco_task
import "../../tasks/taxon_id/task_gambit.wdl" as gambit_task
import "../../tasks/quality_control/task_mummer_ani.wdl" as ani_task
import "../../tasks/taxon_id/task_kmerfinder.wdl" as kmerfinder_task
import "../../tasks/gene_typing/task_amrfinderplus.wdl" as amrfinderplus
import "../../tasks/gene_typing/task_resfinder.wdl" as resfinder
import "../../tasks/species_typing/task_ts_mlst.wdl" as ts_mlst_task
Expand Down Expand Up @@ -53,6 +54,7 @@ workflow theiaprok_illumina_pe {
Int trim_window_size = 10
# module options
Boolean call_ani = false # by default do not call ANI task, but user has ability to enable this task if working with enteric pathogens or supply their own high-quality reference genome
Boolean call_kmerfinder = false
Boolean call_resfinder = false
String genome_annotation = "prokka" # options: "prokka" or "bakta"
String? expected_taxon # allow user to provide organism (e.g. "Clostridioides_difficile") string to amrfinder. Useful when gambit does not predict the correct species # qc check parameters
Expand Down Expand Up @@ -142,6 +144,13 @@ workflow theiaprok_illumina_pe {
samplename = samplename
}
}
if (call_kmerfinder) {
call kmerfinder_task.kmerfinder_bacteria as kmerfinder {
input:
assembly = shovill_pe.assembly_fasta,
samplename = samplename
}
}
call amrfinderplus.amrfinderplus_nuc as amrfinderplus_task {
input:
assembly = shovill_pe.assembly_fasta,
Expand Down Expand Up @@ -291,6 +300,12 @@ workflow theiaprok_illumina_pe {
ani_output_tsv = ani.ani_output_tsv,
ani_top_species_match = ani.ani_top_species_match,
ani_mummer_version = ani.ani_mummer_version,
kmerfinder_docker = kmerfinder.kmerfinder_docker,
kmerfinder_results_tsv = kmerfinder.kmerfinder_results_tsv,
kmerfinder_top_hit = kmerfinder.kmerfinder_top_hit,
kmerfinder_query_coverage = kmerfinder.kmerfinder_query_coverage,
kmerfinder_template_coverage = kmerfinder.kmerfinder_template_coverage,
kmerfinder_database = kmerfinder.kmerfinder_database,
amrfinderplus_all_report = amrfinderplus_task.amrfinderplus_all_report,
amrfinderplus_amr_report = amrfinderplus_task.amrfinderplus_amr_report,
amrfinderplus_stress_report = amrfinderplus_task.amrfinderplus_stress_report,
Expand Down Expand Up @@ -368,7 +383,7 @@ workflow theiaprok_illumina_pe {
lissero_serotype = merlin_magic.lissero_serotype,
sistr_results = merlin_magic.sistr_results,
sistr_allele_json = merlin_magic.sistr_allele_json,
sister_allele_fasta = merlin_magic.sistr_allele_fasta,
sistr_allele_fasta = merlin_magic.sistr_allele_fasta,
sistr_cgmlst = merlin_magic.sistr_cgmlst,
sistr_version = merlin_magic.sistr_version,
sistr_predicted_serotype = merlin_magic.sistr_predicted_serotype,
Expand Down Expand Up @@ -606,6 +621,13 @@ workflow theiaprok_illumina_pe {
File? ani_output_tsv = ani.ani_output_tsv
String? ani_top_species_match = ani.ani_top_species_match
String? ani_mummer_version = ani.ani_mummer_version
# kmerfinder outputs
String? kmerfinder_docker = kmerfinder.kmerfinder_docker
File? kmerfinder_results_tsv = kmerfinder.kmerfinder_results_tsv
String? kmerfinder_top_hit = kmerfinder.kmerfinder_top_hit
String? kmerfinder_query_coverage = kmerfinder.kmerfinder_query_coverage
String? kmerfinder_template_coverage = kmerfinder.kmerfinder_template_coverage
String? kmerfinder_database = kmerfinder.kmerfinder_database
# NCBI-AMRFinderPlus Outputs
File? amrfinderplus_all_report = amrfinderplus_task.amrfinderplus_all_report
File? amrfinderplus_amr_report = amrfinderplus_task.amrfinderplus_amr_report
Expand Down Expand Up @@ -721,7 +743,7 @@ workflow theiaprok_illumina_pe {
# Salmonella Typing
File? sistr_results = merlin_magic.sistr_results
File? sistr_allele_json = merlin_magic.sistr_allele_json
File? sister_allele_fasta = merlin_magic.sistr_allele_fasta
File? sistr_allele_fasta = merlin_magic.sistr_allele_fasta
File? sistr_cgmlst = merlin_magic.sistr_cgmlst
String? sistr_version = merlin_magic.sistr_version
String? sistr_predicted_serotype = merlin_magic.sistr_predicted_serotype
Expand Down
26 changes: 24 additions & 2 deletions workflows/theiaprok/wf_theiaprok_illumina_se.wdl
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import "../../tasks/quality_control/task_screen.wdl" as screen
import "../../tasks/quality_control/task_busco.wdl" as busco_task
import "../../tasks/taxon_id/task_gambit.wdl" as gambit_task
import "../../tasks/quality_control/task_mummer_ani.wdl" as ani_task
import "../../tasks/taxon_id/task_kmerfinder.wdl" as kmerfinder_task
import "../../tasks/gene_typing/task_amrfinderplus.wdl" as amrfinderplus
import "../../tasks/gene_typing/task_resfinder.wdl" as resfinder
import "../../tasks/species_typing/task_ts_mlst.wdl" as ts_mlst_task
Expand Down Expand Up @@ -52,6 +53,7 @@ workflow theiaprok_illumina_se {
Int trim_window_size = 4
# module options
Boolean call_ani = false # by default do not call ANI task, but user has ability to enable this task if working with enteric pathogens or supply their own high-quality reference genome
Boolean call_kmerfinder = false
Boolean call_resfinder = false
String genome_annotation = "prokka" # options: "prokka" or "bakta"
String? expected_taxon # allow user to provide organism (e.g. "Clostridioides_difficile") string to amrfinder. Useful when gambit does not predict the correct species
Expand Down Expand Up @@ -135,6 +137,13 @@ workflow theiaprok_illumina_se {
samplename = samplename
}
}
if (call_kmerfinder) {
call kmerfinder_task.kmerfinder_bacteria as kmerfinder {
input:
assembly = shovill_se.assembly_fasta,
samplename = samplename
}
}
call amrfinderplus.amrfinderplus_nuc as amrfinderplus_task {
input:
assembly = shovill_se.assembly_fasta,
Expand Down Expand Up @@ -264,6 +273,12 @@ workflow theiaprok_illumina_se {
ani_output_tsv = ani.ani_output_tsv,
ani_top_species_match = ani.ani_top_species_match,
ani_mummer_version = ani.ani_mummer_version,
kmerfinder_docker = kmerfinder.kmerfinder_docker,
kmerfinder_results_tsv = kmerfinder.kmerfinder_results_tsv,
kmerfinder_top_hit = kmerfinder.kmerfinder_top_hit,
kmerfinder_query_coverage = kmerfinder.kmerfinder_query_coverage,
kmerfinder_template_coverage = kmerfinder.kmerfinder_template_coverage,
kmerfinder_database = kmerfinder.kmerfinder_database,
amrfinderplus_all_report = amrfinderplus_task.amrfinderplus_all_report,
amrfinderplus_amr_report = amrfinderplus_task.amrfinderplus_amr_report,
amrfinderplus_stress_report = amrfinderplus_task.amrfinderplus_stress_report,
Expand Down Expand Up @@ -341,7 +356,7 @@ workflow theiaprok_illumina_se {
lissero_serotype = merlin_magic.lissero_serotype,
sistr_results = merlin_magic.sistr_results,
sistr_allele_json = merlin_magic.sistr_allele_json,
sister_allele_fasta = merlin_magic.sistr_allele_fasta,
sistr_allele_fasta = merlin_magic.sistr_allele_fasta,
sistr_cgmlst = merlin_magic.sistr_cgmlst,
sistr_version = merlin_magic.sistr_version,
sistr_predicted_serotype = merlin_magic.sistr_predicted_serotype,
Expand Down Expand Up @@ -558,6 +573,13 @@ workflow theiaprok_illumina_se {
File? ani_output_tsv = ani.ani_output_tsv
String? ani_top_species_match = ani.ani_top_species_match
String? ani_mummer_version = ani.ani_mummer_version
# kmerfinder outputs
String? kmerfinder_docker = kmerfinder.kmerfinder_docker
File? kmerfinder_results_tsv = kmerfinder.kmerfinder_results_tsv
String? kmerfinder_top_hit = kmerfinder.kmerfinder_top_hit
String? kmerfinder_query_coverage = kmerfinder.kmerfinder_query_coverage
String? kmerfinder_template_coverage = kmerfinder.kmerfinder_template_coverage
String? kmerfinder_database = kmerfinder.kmerfinder_database
# NCBI-AMRFinderPlus Outputs
File? amrfinderplus_all_report = amrfinderplus_task.amrfinderplus_all_report
File? amrfinderplus_amr_report = amrfinderplus_task.amrfinderplus_amr_report
Expand Down Expand Up @@ -673,7 +695,7 @@ workflow theiaprok_illumina_se {
# Salmonella Typing
File? sistr_results = merlin_magic.sistr_results
File? sistr_allele_json = merlin_magic.sistr_allele_json
File? sister_allele_fasta = merlin_magic.sistr_allele_fasta
File? sistr_allele_fasta = merlin_magic.sistr_allele_fasta
File? sistr_cgmlst = merlin_magic.sistr_cgmlst
String? sistr_version = merlin_magic.sistr_version
String? sistr_predicted_serotype = merlin_magic.sistr_predicted_serotype
Expand Down
Loading

0 comments on commit 7828f47

Please sign in to comment.