changeset 0:3e0d5ceeeb0f draft default tip

planemo upload for repository https://github.com/public-health-bioinformatics/galaxy_tools/blob/master/tools/tbprofiler_json_to_tabular commit 24535690aedb81353cf5e036dc4577022d9604ad
author public-health-bioinformatics
date Tue, 19 Sep 2023 18:03:41 +0000
parents
children
files tbprofiler_json_to_tabular.py tbprofiler_json_to_tabular.xml test-data/test-01_analysis_metadata.tsv test-data/test-01_gene_coverage.csv test-data/test-01_missing_positions.tsv test-data/test-01_other_variants.tsv test-data/test-01_qc.tsv test-data/test-01_resistance_variants.tsv test-data/test-01_tbprofiler.json
diffstat 9 files changed, 878 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tbprofiler_json_to_tabular.py	Tue Sep 19 18:03:41 2023 +0000
@@ -0,0 +1,137 @@
+#!/usr/bin/env python
+
+import argparse
+import csv
+import json
+        
+
+def main(args):
+
+    with open(args.input, 'r') as f:
+        report = json.load(f)
+
+    qc_fieldnames = [
+        'pct_reads_mapped',
+        'num_reads_mapped',
+        'median_coverage',
+    ]
+
+    with open(args.qc, 'w') as f:
+        writer = csv.DictWriter(f, fieldnames=qc_fieldnames, dialect='excel-tab', quoting=csv.QUOTE_MINIMAL)
+        writer.writeheader()
+        output = {k: report['qc'][k] for k in qc_fieldnames}
+        writer.writerow(output)
+
+    gene_coverage_fieldnames = [
+        'locus_tag',
+        'gene',
+        'fraction',
+        'cutoff',
+    ]
+
+    with open(args.gene_coverage, 'w') as f:
+        writer = csv.DictWriter(f, fieldnames=gene_coverage_fieldnames, dialect='excel-tab', quoting=csv.QUOTE_MINIMAL)
+        writer.writeheader()
+        for row in report['qc']['gene_coverage']:
+            writer.writerow(row)
+
+    missing_positions_fieldnames = [
+        'locus_tag',
+        'gene',
+        'position',
+        'variants',
+        'drugs'
+    ]
+
+    with open(args.missing_positions, 'w') as f:
+        writer = csv.DictWriter(f, fieldnames=missing_positions_fieldnames, dialect='excel-tab', quoting=csv.QUOTE_MINIMAL)
+        writer.writeheader()
+        for row in report['qc']['missing_positions']:
+            writer.writerow(row)
+
+    resistance_variants_fieldnames = [
+        'chrom',
+        'genome_pos',
+        'locus_tag',
+        'feature_id',
+        'gene',
+        'type',
+        'ref',
+        'alt',
+        'freq',
+        'nucleotide_change',
+        'protein_change',
+        'change',
+        'drugs',
+    ]
+
+    with open(args.resistance_variants, 'w') as f:
+        writer = csv.DictWriter(f, fieldnames=resistance_variants_fieldnames, dialect='excel-tab', quoting=csv.QUOTE_MINIMAL)
+        writer.writeheader()
+        for row in report['dr_variants']:
+            row['drugs'] = ', '.join([drug['drug'] + ':' + drug['confers'] for drug in row['drugs']])
+            output = {k: row[k] for k in resistance_variants_fieldnames}
+            writer.writerow(output)
+
+    other_variants_fieldnames = [
+        'chrom',
+        'genome_pos',
+        'locus_tag',
+        'feature_id',
+        'gene',
+        'type',
+        'ref',
+        'alt',
+        'freq',
+        'nucleotide_change',
+        'protein_change',
+        'change',
+        'gene_associated_drugs',
+    ]
+
+    with open(args.other_variants, 'w') as f:
+        writer = csv.DictWriter(f, fieldnames=other_variants_fieldnames, dialect='excel-tab', quoting=csv.QUOTE_MINIMAL)
+        writer.writeheader()
+        for row in report['other_variants']:
+            row['gene_associated_drugs'] = ', '.join(row['gene_associated_drugs'])
+            output = {k: row[k] for k in other_variants_fieldnames}
+            writer.writerow(output)
+
+    analysis_metadata_fieldnames = [
+        'timestamp',
+        'tbprofiler_version',
+        'mapping_program',
+        'variant_calling_program',
+        'db_name',
+        'db_commit',
+        'db_date',
+    ]
+
+    with open(args.analysis_metadata, 'w') as f:
+        writer = csv.DictWriter(f, fieldnames=analysis_metadata_fieldnames, dialect='excel-tab', quoting=csv.QUOTE_MINIMAL)
+        writer.writeheader()
+        output = {}
+        output['timestamp'] = report['timestamp']
+        output['tbprofiler_version'] = report['tbprofiler_version']
+        output['db_name'] = report['db_version']['name']
+        output['db_commit'] = report['db_version']['commit']
+        output['db_date'] = report['db_version']['Date']
+        for pipeline_entry in report['pipeline']:
+            if pipeline_entry['Analysis'] == "Mapping":
+                output['mapping_program'] = pipeline_entry['Program']
+            elif pipeline_entry['Analysis'] == "Variant calling":
+                output['variant_calling_program'] = pipeline_entry['Program']
+        
+        writer.writerow(output)
+            
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser()
+    parser.add_argument('input')
+    parser.add_argument('--qc')
+    parser.add_argument('--gene-coverage')
+    parser.add_argument('--missing-positions')
+    parser.add_argument('--resistance-variants')
+    parser.add_argument('--other-variants')
+    parser.add_argument('--analysis-metadata')
+    args = parser.parse_args()
+    main(args)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tbprofiler_json_to_tabular.xml	Tue Sep 19 18:03:41 2023 +0000
@@ -0,0 +1,41 @@
+<tool id="tbprofiler_json_to_tabular" name="Convert tbprofiler json report to tabular" version="0.1.0+galaxy2">
+    <description>Convert tbprofiler json report to tabular</description>
+    <requirements>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+        '$__tool_directory__/tbprofiler_json_to_tabular.py'
+          ${report}
+          --qc ${qc}
+          --gene-coverage ${gene_coverage}
+          --missing-positions ${missing_positions}
+          --resistance-variants ${resistance_variants}
+          --other-variants ${other_variants}
+          --analysis-metadata ${analysis_metadata}
+    ]]></command>
+    <inputs>
+      <param name="report" type="data" format="json" />
+    </inputs>
+    <outputs>
+      <data name="qc" label="QC" format="tabular"/>
+      <data name="gene_coverage" label="Gene Coverage" format="tabular"/>
+      <data name="missing_positions" label="Missing positions" format="tabular"/>
+      <data name="resistance_variants" label="Resistance variants" format="tabular"/>
+      <data name="other_variants" label="Other variants" format="tabular"/>
+      <data name="analysis_metadata" label="Analysis metadata" format="tabular"/>
+    </outputs>
+    <tests>
+      <test>
+        <param name="report" value="test-01_tbprofiler.json" />
+        <output name="qc" file="test-01_qc.tsv" ftype="tabular" />
+        <output name="gene_coverage" file="test-01_gene_coverage.tsv" ftype="tabular" />
+        <output name="missing_positions" file="test-01_missing_positions.tsv" ftype="tabular" />
+        <output name="resistance_variants" file="test-01_resistance_variants.tsv" ftype="tabular" />
+        <output name="other_variants" file="test-01_other_variants.tsv" ftype="tabular" />
+        <output name="analysis_metadata" file="test-01_analysis_metadata.tsv" ftype="tabular" />
+      </test>
+    </tests>
+    <help><![CDATA[
+    ]]></help>
+    <citations>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test-01_analysis_metadata.tsv	Tue Sep 19 18:03:41 2023 +0000
@@ -0,0 +1,2 @@
+timestamp	tbprofiler_version	mapping_program	variant_calling_program	db_name	db_commit	db_date
+22-10-2022 01:09:50	4.1.1	bwa	freebayes	tbdb	7fc199d	Tue Jan 25 17:21:48 2022 +0000
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test-01_gene_coverage.csv	Tue Sep 19 18:03:41 2023 +0000
@@ -0,0 +1,43 @@
+locus_tag	gene	fraction	cutoff
+Rv0005	gyrB	0.0	0
+Rv0006	gyrA	0.0	0
+Rv0407	fgd1	0.0	0
+Rv0486	mshA	0.0	0
+Rv0667	rpoB	0.0	0
+Rv0668	rpoC	0.0	0
+Rv0678	mmpR5	0.0	0
+Rv0682	rpsL	0.0	0
+Rv0701	rplC	0.0	0
+Rv1173	fbiC	0.0	0
+Rv1267c	embR	0.0	0
+Rv1305	atpE	0.0	0
+EBG00000313325	rrs	0.0	0
+EBG00000313339	rrl	0.0	0
+Rv1483	fabG1	0.0	0
+Rv1484	inhA	0.0	0
+Rv1630	rpsA	0.0	0
+Rv1694	tlyA	0.0	0
+Rv1908c	katG	0.0	0
+Rv2043c	pncA	0.0	0
+Rv2245	kasA	0.0	0
+Rv2416c	eis	0.0	0
+Rv2428	ahpC	0.0	0
+Rv2447c	folC	0.0	0
+Rv2535c	pepQ	0.0	0
+Rv2671	ribD	0.0	0
+Rv2754c	thyX	0.0	0
+Rv2764c	thyA	0.0	0
+Rv2780	ald	0.0	0
+Rv2983	fbiD	0.0	0
+Rv3261	fbiA	0.0	0
+Rv3262	fbiB	0.0	0
+Rv3423c	alr	0.0	0
+Rv3547	ddn	0.0	0
+Rv3601c	panD	0.0	0
+Rv3793	embC	0.0	0
+Rv3794	embA	0.0	0
+Rv3795	embB	0.0	0
+Rv3806c	ubiA	0.0	0
+Rv3854c	ethA	0.0	0
+Rv3855	ethR	0.0	0
+Rv3919c	gid	0.0	0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test-01_missing_positions.tsv	Tue Sep 19 18:03:41 2023 +0000
@@ -0,0 +1,1 @@
+locus_tag	gene	position	variants	drugs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test-01_other_variants.tsv	Tue Sep 19 18:03:41 2023 +0000
@@ -0,0 +1,14 @@
+chrom	genome_pos	locus_tag	feature_id	gene	type	ref	alt	freq	nucleotide_change	protein_change	change	gene_associated_drugs
+Chromosome	7362	Rv0006	CCP42728	gyrA	missense_variant	G	C	1.0	c.61G>C	p.Glu21Gln	p.Glu21Gln	levofloxacin, ciprofloxacin, ofloxacin, moxifloxacin, fluoroquinolones
+Chromosome	7585	Rv0006	CCP42728	gyrA	missense_variant	G	C	1.0	c.284G>C	p.Ser95Thr	p.Ser95Thr	levofloxacin, ciprofloxacin, ofloxacin, moxifloxacin, fluoroquinolones
+Chromosome	7892	Rv0006	CCP42728	gyrA	synonymous_variant	G	A	1.0	c.591G>A	p.Leu197Leu	c.591G>A	levofloxacin, ciprofloxacin, ofloxacin, moxifloxacin, fluoroquinolones
+Chromosome	9304	Rv0006	CCP42728	gyrA	missense_variant	G	A	1.0	c.2003G>A	p.Gly668Asp	p.Gly668Asp	levofloxacin, ciprofloxacin, ofloxacin, moxifloxacin, fluoroquinolones
+Chromosome	766789	Rv0668	CCP43411	rpoC	synonymous_variant	G	A	1.0	c.3420G>A	p.Glu1140Glu	c.3420G>A	rifampicin
+Chromosome	781395	Rv0682	CCP43425	rpsL	upstream_gene_variant	T	C	1.0	c.-165T>C		c.-165T>C	streptomycin
+Chromosome	1305494	Rv1173	CCP43929	fbiC	frameshift_variant&stop_lost&splice_region_variant	CGGCCTAGCCCCGGCGACGATGCCGGGTCGCGGGATGCGGCCCGTTGAGGAGCGGGGCAATCT	C	0.21739130434782608	c.2565_*55delGGCCTAGCCCCGGCGACGATGCCGGGTCGCGGGATGCGGCCCGTTGAGGAGCGGGGCAATCT	p.Ala855fs	c.2565_*55delGGCCTAGCCCCGGCGACGATGCCGGGTCGCGGGATGCGGCCCGTTGAGGAGCGGGGCAATCT	delamanid
+Chromosome	1460976	Rv1305	CCP44062	atpE	upstream_gene_variant	C	T	1.0	c.-69C>T		c.-69C>T	bedaquiline
+Chromosome	1471659	EBG00000313325	EBG00000313325-1	rrs	upstream_gene_variant	C	T	1.0	n.-187C>T		n.-187C>T	aminoglycosides, streptomycin, amikacin, capreomycin, kanamycin
+Chromosome	1917972	Rv1694	CCP44459	tlyA	synonymous_variant	A	G	1.0	c.33A>G	p.Leu11Leu	c.33A>G	capreomycin
+Chromosome	3073868	Rv2764c	CCP45563	thyA	missense_variant	T	C	1.0	c.604A>G	p.Thr202Ala	p.Thr202Ala	para-aminosalicylic_acid
+Chromosome	4242643	Rv3794	CCP46623	embA	upstream_gene_variant	C	T	1.0	c.-590C>T		c.-590C>T	ethambutol
+Chromosome	1305494	Rv1173	CCP43929	fbiC	frameshift_variant&stop_lost&splice_region_variant	C	<DEL>	1.0	c.2565_*56delCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN	p.Ala855fs	c.2565_*56delCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN	delamanid
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test-01_qc.tsv	Tue Sep 19 18:03:41 2023 +0000
@@ -0,0 +1,2 @@
+pct_reads_mapped	num_reads_mapped	median_coverage
+99.47	1731409	84
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test-01_resistance_variants.tsv	Tue Sep 19 18:03:41 2023 +0000
@@ -0,0 +1,3 @@
+chrom	genome_pos	locus_tag	feature_id	gene	type	ref	alt	freq	nucleotide_change	protein_change	change	drugs
+Chromosome	761155	Rv0667	CCP43410	rpoB	missense_variant	C	T	1.0	c.1349C>T	p.Ser450Leu	p.Ser450Leu	rifampicin:resistance
+Chromosome	1674048	Rv1484	CCP44244	inhA	upstream_gene_variant	G	A	1.0	c.-154G>A		c.-154G>A	isoniazid:resistance, ethionamide:resistance
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test-01_tbprofiler.json	Tue Sep 19 18:03:41 2023 +0000
@@ -0,0 +1,635 @@
+{
+    "qc": {
+        "pct_reads_mapped": 99.47,
+        "num_reads_mapped": 1731409,
+        "median_coverage": 84,
+        "gene_coverage": [
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv0005",
+                "gene": "gyrB"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv0006",
+                "gene": "gyrA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv0407",
+                "gene": "fgd1"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv0486",
+                "gene": "mshA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv0667",
+                "gene": "rpoB"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv0668",
+                "gene": "rpoC"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv0678",
+                "gene": "mmpR5"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv0682",
+                "gene": "rpsL"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv0701",
+                "gene": "rplC"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv1173",
+                "gene": "fbiC"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv1267c",
+                "gene": "embR"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv1305",
+                "gene": "atpE"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "EBG00000313325",
+                "gene": "rrs"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "EBG00000313339",
+                "gene": "rrl"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv1483",
+                "gene": "fabG1"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv1484",
+                "gene": "inhA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv1630",
+                "gene": "rpsA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv1694",
+                "gene": "tlyA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv1908c",
+                "gene": "katG"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2043c",
+                "gene": "pncA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2245",
+                "gene": "kasA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2416c",
+                "gene": "eis"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2428",
+                "gene": "ahpC"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2447c",
+                "gene": "folC"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2535c",
+                "gene": "pepQ"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2671",
+                "gene": "ribD"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2754c",
+                "gene": "thyX"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2764c",
+                "gene": "thyA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2780",
+                "gene": "ald"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv2983",
+                "gene": "fbiD"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3261",
+                "gene": "fbiA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3262",
+                "gene": "fbiB"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3423c",
+                "gene": "alr"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3547",
+                "gene": "ddn"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3601c",
+                "gene": "panD"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3793",
+                "gene": "embC"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3794",
+                "gene": "embA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3795",
+                "gene": "embB"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3806c",
+                "gene": "ubiA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3854c",
+                "gene": "ethA"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3855",
+                "gene": "ethR"
+            },
+            {
+                "fraction": 0.0,
+                "cutoff": 0,
+                "locus_tag": "Rv3919c",
+                "gene": "gid"
+            }
+        ],
+        "missing_positions": []
+    },
+    "delly": "success",
+    "lineage": [
+        {
+            "lin": "lineage4",
+            "family": "Euro-American",
+            "spoligotype": "LAM;T;S;X;H",
+            "rd": "None",
+            "frac": 1.0
+        },
+        {
+            "lin": "lineage4.5",
+            "family": "Euro-American",
+            "spoligotype": "H;T",
+            "rd": "RD122",
+            "frac": 1.0
+        }
+    ],
+    "main_lin": "lineage4",
+    "sublin": "lineage4.5",
+    "dr_variants": [
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 761155,
+            "ref": "C",
+            "alt": "T",
+            "freq": 1.0,
+            "feature_id": "CCP43410",
+            "type": "missense_variant",
+            "nucleotide_change": "c.1349C>T",
+            "protein_change": "p.Ser450Leu",
+            "annotation": [
+                {
+                    "type": "resistance_association_confidence",
+                    "drug": "rifampicin",
+                    "confidence": "high"
+                }
+            ],
+            "alternate_consequences": [],
+            "change": "p.Ser450Leu",
+            "locus_tag": "Rv0667",
+            "gene": "rpoB",
+            "drugs": [
+                {
+                    "type": "drug",
+                    "drug": "rifampicin",
+                    "confers": "resistance",
+                    "literature": "10.1128/AAC.01093-18"
+                }
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 1674048,
+            "ref": "G",
+            "alt": "A",
+            "freq": 1.0,
+            "feature_id": "CCP44244",
+            "type": "upstream_gene_variant",
+            "nucleotide_change": "c.-154G>A",
+            "protein_change": "",
+            "annotation": [],
+            "alternate_consequences": [],
+            "change": "c.-154G>A",
+            "locus_tag": "Rv1484",
+            "gene": "inhA",
+            "drugs": [
+                {
+                    "type": "drug",
+                    "drug": "isoniazid",
+                    "confers": "resistance",
+                    "literature": "https://www.who.int/publications/i/item/9789240028173"
+                },
+                {
+                    "type": "drug",
+                    "drug": "ethionamide",
+                    "confers": "resistance",
+                    "literature": "https://www.who.int/publications/i/item/9789240028173"
+                }
+            ]
+        }
+    ],
+    "other_variants": [
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 7362,
+            "ref": "G",
+            "alt": "C",
+            "freq": 1.0,
+            "feature_id": "CCP42728",
+            "type": "missense_variant",
+            "nucleotide_change": "c.61G>C",
+            "protein_change": "p.Glu21Gln",
+            "alternate_consequences": [],
+            "change": "p.Glu21Gln",
+            "locus_tag": "Rv0006",
+            "gene": "gyrA",
+            "gene_associated_drugs": [
+                "levofloxacin",
+                "ciprofloxacin",
+                "ofloxacin",
+                "moxifloxacin",
+                "fluoroquinolones"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 7585,
+            "ref": "G",
+            "alt": "C",
+            "freq": 1.0,
+            "feature_id": "CCP42728",
+            "type": "missense_variant",
+            "nucleotide_change": "c.284G>C",
+            "protein_change": "p.Ser95Thr",
+            "annotation": [
+                {
+                    "type": "phylogenetic_mutation",
+                    "lineage": "lineage4"
+                }
+            ],
+            "alternate_consequences": [],
+            "change": "p.Ser95Thr",
+            "locus_tag": "Rv0006",
+            "gene": "gyrA",
+            "gene_associated_drugs": [
+                "levofloxacin",
+                "ciprofloxacin",
+                "ofloxacin",
+                "moxifloxacin",
+                "fluoroquinolones"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 7892,
+            "ref": "G",
+            "alt": "A",
+            "freq": 1.0,
+            "feature_id": "CCP42728",
+            "type": "synonymous_variant",
+            "nucleotide_change": "c.591G>A",
+            "protein_change": "p.Leu197Leu",
+            "alternate_consequences": [],
+            "change": "c.591G>A",
+            "locus_tag": "Rv0006",
+            "gene": "gyrA",
+            "gene_associated_drugs": [
+                "levofloxacin",
+                "ciprofloxacin",
+                "ofloxacin",
+                "moxifloxacin",
+                "fluoroquinolones"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 9304,
+            "ref": "G",
+            "alt": "A",
+            "freq": 1.0,
+            "feature_id": "CCP42728",
+            "type": "missense_variant",
+            "nucleotide_change": "c.2003G>A",
+            "protein_change": "p.Gly668Asp",
+            "alternate_consequences": [],
+            "change": "p.Gly668Asp",
+            "locus_tag": "Rv0006",
+            "gene": "gyrA",
+            "gene_associated_drugs": [
+                "levofloxacin",
+                "ciprofloxacin",
+                "ofloxacin",
+                "moxifloxacin",
+                "fluoroquinolones"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 766789,
+            "ref": "G",
+            "alt": "A",
+            "freq": 1.0,
+            "feature_id": "CCP43411",
+            "type": "synonymous_variant",
+            "nucleotide_change": "c.3420G>A",
+            "protein_change": "p.Glu1140Glu",
+            "alternate_consequences": [],
+            "change": "c.3420G>A",
+            "locus_tag": "Rv0668",
+            "gene": "rpoC",
+            "gene_associated_drugs": [
+                "rifampicin"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 781395,
+            "ref": "T",
+            "alt": "C",
+            "freq": 1.0,
+            "feature_id": "CCP43425",
+            "type": "upstream_gene_variant",
+            "nucleotide_change": "c.-165T>C",
+            "protein_change": "",
+            "alternate_consequences": [],
+            "change": "c.-165T>C",
+            "locus_tag": "Rv0682",
+            "gene": "rpsL",
+            "gene_associated_drugs": [
+                "streptomycin"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 1305494,
+            "ref": "CGGCCTAGCCCCGGCGACGATGCCGGGTCGCGGGATGCGGCCCGTTGAGGAGCGGGGCAATCT",
+            "alt": "C",
+            "freq": 0.21739130434782608,
+            "feature_id": "CCP43929",
+            "type": "frameshift_variant&stop_lost&splice_region_variant",
+            "nucleotide_change": "c.2565_*55delGGCCTAGCCCCGGCGACGATGCCGGGTCGCGGGATGCGGCCCGTTGAGGAGCGGGGCAATCT",
+            "protein_change": "p.Ala855fs",
+            "alternate_consequences": [],
+            "change": "c.2565_*55delGGCCTAGCCCCGGCGACGATGCCGGGTCGCGGGATGCGGCCCGTTGAGGAGCGGGGCAATCT",
+            "locus_tag": "Rv1173",
+            "gene": "fbiC",
+            "gene_associated_drugs": [
+                "delamanid"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 1460976,
+            "ref": "C",
+            "alt": "T",
+            "freq": 1.0,
+            "feature_id": "CCP44062",
+            "type": "upstream_gene_variant",
+            "nucleotide_change": "c.-69C>T",
+            "protein_change": "",
+            "alternate_consequences": [],
+            "change": "c.-69C>T",
+            "locus_tag": "Rv1305",
+            "gene": "atpE",
+            "gene_associated_drugs": [
+                "bedaquiline"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 1471659,
+            "ref": "C",
+            "alt": "T",
+            "freq": 1.0,
+            "feature_id": "EBG00000313325-1",
+            "type": "upstream_gene_variant",
+            "nucleotide_change": "n.-187C>T",
+            "protein_change": "",
+            "alternate_consequences": [],
+            "change": "n.-187C>T",
+            "locus_tag": "EBG00000313325",
+            "gene": "rrs",
+            "gene_associated_drugs": [
+                "aminoglycosides",
+                "streptomycin",
+                "amikacin",
+                "capreomycin",
+                "kanamycin"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 1917972,
+            "ref": "A",
+            "alt": "G",
+            "freq": 1.0,
+            "feature_id": "CCP44459",
+            "type": "synonymous_variant",
+            "nucleotide_change": "c.33A>G",
+            "protein_change": "p.Leu11Leu",
+            "alternate_consequences": [],
+            "change": "c.33A>G",
+            "locus_tag": "Rv1694",
+            "gene": "tlyA",
+            "gene_associated_drugs": [
+                "capreomycin"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 3073868,
+            "ref": "T",
+            "alt": "C",
+            "freq": 1.0,
+            "feature_id": "CCP45563",
+            "type": "missense_variant",
+            "nucleotide_change": "c.604A>G",
+            "protein_change": "p.Thr202Ala",
+            "alternate_consequences": [],
+            "change": "p.Thr202Ala",
+            "locus_tag": "Rv2764c",
+            "gene": "thyA",
+            "gene_associated_drugs": [
+                "para-aminosalicylic_acid"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 4242643,
+            "ref": "C",
+            "alt": "T",
+            "freq": 1.0,
+            "feature_id": "CCP46623",
+            "type": "upstream_gene_variant",
+            "nucleotide_change": "c.-590C>T",
+            "protein_change": "",
+            "alternate_consequences": [
+                {
+                    "gene_name": "embC",
+                    "gene_id": "Rv3793",
+                    "feature_id": "CCP46622",
+                    "type": "synonymous_variant",
+                    "nucleotide_change": "c.2781C>T",
+                    "protein_change": "p.Arg927Arg"
+                }
+            ],
+            "change": "c.-590C>T",
+            "locus_tag": "Rv3794",
+            "gene": "embA",
+            "gene_associated_drugs": [
+                "ethambutol"
+            ]
+        },
+        {
+            "chrom": "Chromosome",
+            "genome_pos": 1305494,
+            "ref": "C",
+            "alt": "<DEL>",
+            "freq": 1.0,
+            "feature_id": "CCP43929",
+            "type": "frameshift_variant&stop_lost&splice_region_variant",
+            "nucleotide_change": "c.2565_*56delCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+            "protein_change": "p.Ala855fs",
+            "alternate_consequences": [],
+            "change": "c.2565_*56delCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+            "locus_tag": "Rv1173",
+            "gene": "fbiC",
+            "gene_associated_drugs": [
+                "delamanid"
+            ]
+        }
+    ],
+    "drtype": "MDR-TB",
+    "db_version": {
+        "name": "tbdb",
+        "commit": "7fc199d",
+        "Merge": "bad550a 277d053",
+        "Author": "Jody Phelan <jody.phelan@lshtm.ac.uk>",
+        "Date": "Tue Jan 25 17:21:48 2022 +0000"
+    },
+    "id": "tbprofiler",
+    "tbprofiler_version": "4.1.1",
+    "pipeline": [
+        {
+            "Analysis": "Mapping",
+            "Program": "bwa"
+        },
+        {
+            "Analysis": "Variant calling",
+            "Program": "freebayes"
+        }
+    ],
+    "timestamp": "22-10-2022 01:09:50"
+}