changeset 2:4934c0ac6197 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/blob/master/tools/tbvcfreport commit eb93304c3aef325f02a62675d53c69a2b73c0fef"
author iuc
date Thu, 17 Mar 2022 07:33:00 +0000
parents adc0645b945c
children 42818629ec4c
files tbvcfreport.xml test-data/rif_resistant_drug_resistance_report.html test-data/rif_resistant_drug_resistance_report.txt test-data/vcf_with_no_protein.vcf test-data/vcf_with_no_protein_report.html test-data/vcf_with_no_protein_report.txt
diffstat 6 files changed, 789 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/tbvcfreport.xml	Wed Jul 07 09:22:44 2021 +0000
+++ b/tbvcfreport.xml	Thu Mar 17 07:33:00 2022 +0000
@@ -2,7 +2,7 @@
 <tool id="tbvcfreport" name="TB Variant Report" version="@TOOL_VERSION@+galaxy0">
   <description>- generate HTML report from SnpEff annotated M.tb VCF(s)</description>
   <macros>
-    <token name="@TOOL_VERSION@">0.1.8</token>
+    <token name="@TOOL_VERSION@">0.1.10</token>
   </macros>
   <requirements>
     <requirement type="package" version="@TOOL_VERSION@">tbvcfreport</requirement>
@@ -64,7 +64,7 @@
     <param name="tbprofiler_json" type="data" format="json" optional="true" label="TBProfiler Drug Resistance Report (Optional)" help="--tbprofiler-report" />
     <param name="filter_udi" argument="--filter-udi" type="boolean" truevalue="--filter-udi" falsevalue="--no-filter-udi" checked="true" label="Filter UPSTREAM, DOWNSTREAM and INTERGENIC variants" />
     <section name="adv" title="Advanced options" expanded="false">
-      <param name="database_uri" type="text" optional="true" value="neodb.sanbi.ac.za" label="Specify on-premise COMBAT-TB-NeoDB URI" help="For people with an on-premise deployment of COMBAT-TB-NeoDB" />
+      <param name="database_uri" type="text" optional="true" value="neodb.sanbi.ac.za" label="Specify COMBAT-TB-NeoDB URI" help="For people with their own deployment of COMBAT-TB-NeoDB" />
     </section>
   </inputs>
   <outputs>
@@ -78,12 +78,12 @@
     </data>
   </outputs>
   <tests>
-    <test>
+    <test expect_num_outputs="2">
       <param name="input_vcf" value="rif_resistant.vcf" ftype="vcf" />
       <output name="variants_report_html" compare="diff" lines_diff="2" file="rif_resistant_variants_report.html" ftype="html" />
       <output name="variants_report_txt" compare="diff" lines_diff="2" file="rif_resistant_variants_report.txt" ftype="txt" />
     </test>
-    <test>
+    <test expect_num_outputs="4">
       <param name="input_vcf" value="rif_resistant.vcf" ftype="vcf" />
       <param name="tbprofiler_json" value="rif_resistant.results.json" ftype="json" />
       <output name="variants_report_html" compare="diff" lines_diff="2" file="rif_resistant_variants_report_with_lineage.html" ftype="html" />
@@ -91,6 +91,12 @@
       <output name="drug_resistance_report_html" file="rif_resistant_drug_resistance_report.html" lines_diff="2" ftype="html" />
       <output name="drug_resistance_report_txt" compare="diff" lines_diff="2" file="rif_resistant_drug_resistance_report.txt" ftype="txt" />
     </test>
+    <test expect_num_outputs="2">
+      <!-- test for bug fixed in 0.1.9 onwards: a gene with no protein product -->
+      <param name="input_vcf" value="vcf_with_no_protein.vcf" ftype="vcf" />
+      <output name="variants_report_html" compare="diff" lines_diff="2" file="vcf_with_no_protein_report.html" ftype="html" />
+      <output name="variants_report_txt" compare="diff" lines_diff="2" file="vcf_with_no_protein_report.txt" ftype="txt" />      
+    </test>
   </tests>
   <help>
     <![CDATA[
--- a/test-data/rif_resistant_drug_resistance_report.html	Wed Jul 07 09:22:44 2021 +0000
+++ b/test-data/rif_resistant_drug_resistance_report.html	Thu Mar 17 07:33:00 2022 +0000
@@ -127,6 +127,13 @@
             <td>S</td>
             <td></td>
         </tr>
+        </tr>
+                <tr>
+            <td>Aminoglycosides</td>
+            <td>S</td>
+            <td></td>
+        </tr>
+
             </table>
 </div>
                 <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
--- a/test-data/rif_resistant_drug_resistance_report.txt	Wed Jul 07 09:22:44 2021 +0000
+++ b/test-data/rif_resistant_drug_resistance_report.txt	Thu Mar 17 07:33:00 2022 +0000
@@ -23,5 +23,6 @@
 Delaminid	S	
 Clofazimine	S	
 Bedaquiline	S	
+Aminoglycosides	S	
 
 #Drug resistance predictions are for research purposes only and are produced by the TBProfiler software.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/vcf_with_no_protein.vcf	Thu Mar 17 07:33:00 2022 +0000
@@ -0,0 +1,88 @@
+##fileformat=VCFv4.2
+##fileDate=20220316
+##source=freeBayes v1.1.0-dirty
+##reference=reference/ref.fa
+##contig=<ID=Chromosome,length=4411532>
+##phasing=none
+##commandline="freebayes -p 1 -q 20 -m 60 --min-coverage 10 -V -f reference/ref.fa snps.bam --region Chromosome:0-1121280"
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of samples with data">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total read depth at the locus">
+##INFO=<ID=DPB,Number=1,Type=Float,Description="Total read depth per bp at the locus; bases in reads overlapping / bases in haplotype">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Total number of alternate alleles in called genotypes">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Estimated allele frequency in the range (0,1]">
+##INFO=<ID=RO,Number=1,Type=Integer,Description="Count of full observations of the reference haplotype.">
+##INFO=<ID=AO,Number=A,Type=Integer,Description="Count of full observations of this alternate haplotype.">
+##INFO=<ID=PRO,Number=1,Type=Float,Description="Reference allele observation count, with partial observations recorded fractionally">
+##INFO=<ID=PAO,Number=A,Type=Float,Description="Alternate allele observations, with partial observations recorded fractionally">
+##INFO=<ID=QR,Number=1,Type=Integer,Description="Reference allele quality sum in phred">
+##INFO=<ID=QA,Number=A,Type=Integer,Description="Alternate allele quality sum in phred">
+##INFO=<ID=PQR,Number=1,Type=Float,Description="Reference allele quality sum in phred for partial observations">
+##INFO=<ID=PQA,Number=A,Type=Float,Description="Alternate allele quality sum in phred for partial observations">
+##INFO=<ID=SRF,Number=1,Type=Integer,Description="Number of reference observations on the forward strand">
+##INFO=<ID=SRR,Number=1,Type=Integer,Description="Number of reference observations on the reverse strand">
+##INFO=<ID=SAF,Number=A,Type=Integer,Description="Number of alternate observations on the forward strand">
+##INFO=<ID=SAR,Number=A,Type=Integer,Description="Number of alternate observations on the reverse strand">
+##INFO=<ID=SRP,Number=1,Type=Float,Description="Strand balance probability for the reference allele: Phred-scaled upper-bounds estimate of the probability of observing the deviation between SRF and SRR given E(SRF/SRR) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=SAP,Number=A,Type=Float,Description="Strand balance probability for the alternate allele: Phred-scaled upper-bounds estimate of the probability of observing the deviation between SAF and SAR given E(SAF/SAR) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=AB,Number=A,Type=Float,Description="Allele balance at heterozygous sites: a number between 0 and 1 representing the ratio of reads showing the reference allele to all reads, considering only reads from individuals called as heterozygous">
+##INFO=<ID=ABP,Number=A,Type=Float,Description="Allele balance probability at heterozygous sites: Phred-scaled upper-bounds estimate of the probability of observing the deviation between ABR and ABA given E(ABR/ABA) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=RUN,Number=A,Type=Integer,Description="Run length: the number of consecutive repeats of the alternate allele in the reference genome">
+##INFO=<ID=RPP,Number=A,Type=Float,Description="Read Placement Probability: Phred-scaled upper-bounds estimate of the probability of observing the deviation between RPL and RPR given E(RPL/RPR) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=RPPR,Number=1,Type=Float,Description="Read Placement Probability for reference observations: Phred-scaled upper-bounds estimate of the probability of observing the deviation between RPL and RPR given E(RPL/RPR) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=RPL,Number=A,Type=Float,Description="Reads Placed Left: number of reads supporting the alternate balanced to the left (5') of the alternate allele">
+##INFO=<ID=RPR,Number=A,Type=Float,Description="Reads Placed Right: number of reads supporting the alternate balanced to the right (3') of the alternate allele">
+##INFO=<ID=EPP,Number=A,Type=Float,Description="End Placement Probability: Phred-scaled upper-bounds estimate of the probability of observing the deviation between EL and ER given E(EL/ER) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=EPPR,Number=1,Type=Float,Description="End Placement Probability for reference observations: Phred-scaled upper-bounds estimate of the probability of observing the deviation between EL and ER given E(EL/ER) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=DPRA,Number=A,Type=Float,Description="Alternate allele depth ratio.  Ratio between depth in samples with each called alternate allele and those without.">
+##INFO=<ID=ODDS,Number=1,Type=Float,Description="The log odds ratio of the best genotype combination to the second-best.">
+##INFO=<ID=GTI,Number=1,Type=Integer,Description="Number of genotyping iterations required to reach convergence or bailout.">
+##INFO=<ID=TYPE,Number=A,Type=String,Description="The type of allele, either snp, mnp, ins, del, or complex.">
+##INFO=<ID=CIGAR,Number=A,Type=String,Description="The extended CIGAR representation of each alternate allele, with the exception that '=' is replaced by 'M' to ease VCF parsing.  Note that INDEL alleles do not have the first matched base (which is provided by default, per the spec) referred to by the CIGAR.">
+##INFO=<ID=NUMALT,Number=1,Type=Integer,Description="Number of unique non-reference alleles in called genotypes at this position.">
+##INFO=<ID=MEANALT,Number=A,Type=Float,Description="Mean number of unique non-reference allele observations per sample with the corresponding alternate alleles.">
+##INFO=<ID=LEN,Number=A,Type=Integer,Description="allele length">
+##INFO=<ID=MQM,Number=A,Type=Float,Description="Mean mapping quality of observed alternate alleles">
+##INFO=<ID=MQMR,Number=1,Type=Float,Description="Mean mapping quality of observed reference alleles">
+##INFO=<ID=PAIRED,Number=A,Type=Float,Description="Proportion of observed alternate alleles which are supported by properly paired read fragments">
+##INFO=<ID=PAIREDR,Number=1,Type=Float,Description="Proportion of observed reference alleles which are supported by properly paired read fragments">
+##INFO=<ID=MIN_DP,Number=1,Type=Integer,Description="Minimum depth in gVCF output block.">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Last position (inclusive) in gVCF output record.">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality, the Phred-scaled marginal (or unconditional) probability of the called genotype">
+##FORMAT=<ID=GL,Number=G,Type=Float,Description="Genotype Likelihood, log10-scaled likelihoods of the data given the called genotype for each possible genotype generated from the reference and alternate alleles given the sample ploidy">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=AD,Number=R,Type=Integer,Description="Number of observation for each allele">
+##FORMAT=<ID=RO,Number=1,Type=Integer,Description="Reference allele observation count">
+##FORMAT=<ID=QR,Number=1,Type=Integer,Description="Sum of quality of the reference observations">
+##FORMAT=<ID=AO,Number=A,Type=Integer,Description="Alternate allele observation count">
+##FORMAT=<ID=QA,Number=A,Type=Integer,Description="Sum of quality of the alternate observations">
+##FORMAT=<ID=MIN_DP,Number=1,Type=Integer,Description="Minimum depth in gVCF output block.">
+##filter=/usr/local/tools/_conda/envs/__snippy@3.2/bin/snippy-vcf_filter --minqual 10 --mincov 10 --minfrac 0.9 snps.raw.vcf
+##SnpEffVersion="4.3 (build 2016-07-03 08:26), by Pablo Cingolani"
+##SnpEffCmd="SnpEff  -no-downstream -no-upstream -no-intergenic -no-utr -noStats ref snps.filt.vcf "
+##INFO=<ID=ANN,Number=.,Type=String,Description="Functional annotations: 'Allele | Annotation | Annotation_Impact | Gene_Name | Gene_ID | Feature_Type | Feature_ID | Transcript_BioType | Rank | HGVS.c | HGVS.p | cDNA.pos / cDNA.length | CDS.pos / CDS.length | AA.pos / AA.length | Distance | ERRORS / WARNINGS / INFO' ">
+##INFO=<ID=LOF,Number=.,Type=String,Description="Predicted loss of function effects for this variant. Format: 'Gene_Name | Gene_ID | Number_of_transcripts_in_gene | Percent_of_transcripts_affected' ">
+##INFO=<ID=NMD,Number=.,Type=String,Description="Predicted nonsense mediated decay effects for this variant. Format: 'Gene_Name | Gene_ID | Number_of_transcripts_in_gene | Percent_of_transcripts_affected' ">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	snps
+Chromosome	4198611	.	CGGGGGT	CGGGGT	6312.89	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=193;CIGAR=1M1D5M;DP=194;DPB=182.429;DPRA=0;EPP=3.11156;EPPR=0;GTI=0;LEN=1;MEANALT=2;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1453.6;PAIRED=0.989637;PAIREDR=0;PAO=19;PQA=553.5;PQR=355.5;PRO=13;QA=6821;QR=0;RO=0;RPL=100;RPP=3.56161;RPPR=0;RPR=93;RUN=1;SAF=96;SAP=3.02155;SAR=97;SRF=0;SRP=0;SRR=0;TYPE=del	GT:DP:AD:RO:QR:AO:QA:GL	1:194:0,193:0:0:193:6821:-631.289,0
+Chromosome	4200220	.	G	A	7422.62	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=234;CIGAR=1X;DP=234;DPB=234;DPRA=0;EPP=6.72222;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1709.12;PAIRED=0.991453;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=8248;QR=0;RO=0;RPL=108;RPP=6.01695;RPPR=0;RPR=126;RUN=1;SAF=123;SAP=4.34659;SAR=111;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=A|missense_variant|MODERATE|Rv3753c|Rv3753c|transcript|TRANSCRIPT_Rv3753c|protein_coding|1/1|c.2C>T|p.Thr1Met|2/501|2/501|1/166||WARNING_TRANSCRIPT_NO_START_CODON	GT:DP:AD:RO:QR:AO:QA:GL	1:234:0,234:0:0:234:8248:-742.262,0
+Chromosome	4202383	.	C	A	4389.44	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=137;CIGAR=1X;DP=137;DPB=137;DPRA=0;EPP=3.02615;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1010.7;PAIRED=1;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=4876;QR=0;RO=0;RPL=65;RPP=3.78696;RPPR=0;RPR=72;RUN=1;SAF=74;SAP=4.92817;SAR=63;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=A|synonymous_variant|LOW|Rv3756c|Rv3756c|transcript|TRANSCRIPT_Rv3756c|protein_coding|1/1|c.231G>T|p.Val77Val|231/720|231/720|77/239||	GT:DP:AD:RO:QR:AO:QA:GL	1:137:0,137:0:0:137:4876:-438.944,0
+Chromosome	4205120	.	G	A	5602.51	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=177;CIGAR=1X;DP=178;DPB=178;DPRA=0;EPP=14.8;EPPR=5.18177;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=60;NS=1;NUMALT=1;ODDS=1290.03;PAIRED=0.988701;PAIREDR=1;PAO=0;PQA=0;PQR=0;PRO=0;QA=6248;QR=21;RO=1;RPL=80;RPP=6.55581;RPPR=5.18177;RPR=97;RUN=1;SAF=89;SAP=3.02257;SAR=88;SRF=1;SRP=5.18177;SRR=0;TYPE=snp;ANN=A|missense_variant|MODERATE|Rv3759c|Rv3759c|transcript|TRANSCRIPT_Rv3759c|protein_coding|1/1|c.254C>T|p.Pro85Leu|254/948|254/948|85/315||	GT:DP:AD:RO:QR:AO:QA:GL	1:178:1,177:1:21:177:6248:-560.251,0
+Chromosome	4210876	.	C	T	8084.63	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=256;CIGAR=1X;DP=256;DPB=256;DPRA=0;EPP=4.23175;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1861.55;PAIRED=0.996094;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=8984;QR=0;RO=0;RPL=139;RPP=7.11574;RPPR=0;RPR=117;RUN=1;SAF=117;SAP=7.11574;SAR=139;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=T|missense_variant|MODERATE|Rv3764c|Rv3764c|transcript|TRANSCRIPT_Rv3764c|protein_coding|1/1|c.134G>A|p.Arg45His|134/1428|134/1428|45/475||	GT:DP:AD:RO:QR:AO:QA:GL	1:256:0,256:0:0:256:8984:-808.463,0
+Chromosome	4214747	.	C	T	6141.11	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=194;CIGAR=1X;DP=194;DPB=194;DPRA=0;EPP=3.41325;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1414.04;PAIRED=0.994845;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=6823;QR=0;RO=0;RPL=114;RPP=15.9496;RPPR=0;RPR=80;RUN=1;SAF=98;SAP=3.05507;SAR=96;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=T|missense_variant|MODERATE|Rv3769|Rv3769|transcript|TRANSCRIPT_Rv3769|protein_coding|1/1|c.133C>T|p.His45Tyr|133/273|133/273|45/90||	GT:DP:AD:RO:QR:AO:QA:GL	1:194:0,194:0:0:194:6823:-614.111,0
+Chromosome	4215484	.	C	G	7180.37	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=225;CIGAR=1X;DP=225;DPB=225;DPRA=0;EPP=3.4832;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1653.34;PAIRED=0.991111;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=7979;QR=0;RO=0;RPL=111;RPP=3.09716;RPPR=0;RPR=114;RUN=1;SAF=102;SAP=7.26639;SAR=123;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=G|missense_variant|MODERATE|Rv3770c|Rv3770c|transcript|TRANSCRIPT_Rv3770c|protein_coding|1/1|c.292G>C|p.Ala98Pro|292/576|292/576|98/191||	GT:DP:AD:RO:QR:AO:QA:GL	1:225:0,225:0:0:225:7979:-718.037,0
+Chromosome	4216255	.	G	C	6090.49	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=193;CIGAR=1X;DP=193;DPB=193;DPRA=0;EPP=7.07197;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1402.39;PAIRED=0.974093;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=6767;QR=0;RO=0;RPL=99;RPP=3.29158;RPPR=0;RPR=94;RUN=1;SAF=89;SAP=5.54181;SAR=104;SRF=0;SRP=0;SRR=0;TYPE=snp	GT:DP:AD:RO:QR:AO:QA:GL	1:193:0,193:0:0:193:6767:-609.049,0
+Chromosome	4217557	.	G	A	4628.62	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=147;CIGAR=1X;DP=147;DPB=147;DPRA=0;EPP=4.20683;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1065.78;PAIRED=0.993197;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=5142;QR=0;RO=0;RPL=78;RPP=4.20683;RPPR=0;RPR=69;RUN=1;SAF=76;SAP=3.3796;SAR=71;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=A|missense_variant|MODERATE|Rv3772|Rv3772|transcript|TRANSCRIPT_Rv3772|protein_coding|1/1|c.424G>A|p.Ala142Thr|424/1062|424/1062|142/353||	GT:DP:AD:RO:QR:AO:QA:GL	1:147:0,147:0:0:147:5142:-462.862,0
+Chromosome	4223172	.	C	T	3477.35	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=110;CIGAR=1X;DP=110;DPB=110;DPRA=0;EPP=18.487;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=800.69;PAIRED=0.981818;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=3862;QR=0;RO=0;RPL=41;RPP=18.487;RPPR=0;RPR=69;RUN=1;SAF=28;SAP=60.5741;SAR=82;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=T|missense_variant|MODERATE|Rv3777|Rv3777|transcript|TRANSCRIPT_Rv3777|protein_coding|1/1|c.479C>T|p.Ala160Val|479/987|479/987|160/328||	GT:DP:AD:RO:QR:AO:QA:GL	1:110:0,110:0:0:110:3862:-347.735,0
+Chromosome	4232327	.	G	A	7703.92	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=242;CIGAR=1X;DP=243;DPB=243;DPRA=0;EPP=5.91756;EPPR=0;GTI=0;LEN=1;MEANALT=2;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1773.89;PAIRED=0.995868;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=8565;QR=0;RO=0;RPL=135;RPP=10.0452;RPPR=0;RPR=107;RUN=1;SAF=113;SAP=5.30739;SAR=129;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=A|synonymous_variant|LOW|Rv3785|Rv3785|transcript|TRANSCRIPT_Rv3785|protein_coding|1/1|c.1008G>A|p.Arg336Arg|1008/1074|1008/1074|336/357||	GT:DP:AD:RO:QR:AO:QA:GL	1:243:0,242:0:0:242:8565:-770.392,0
+Chromosome	4238963	.	C	T	6583.6	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=214;CIGAR=1X;DP=216;DPB=216;DPRA=0;EPP=7.92148;EPPR=7.35324;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=60;NS=1;NUMALT=1;ODDS=1515.93;PAIRED=0.985981;PAIREDR=1;PAO=0;PQA=0;PQR=0;PRO=0;QA=7378;QR=60;RO=2;RPL=101;RPP=4.47148;RPPR=7.35324;RPR=113;RUN=1;SAF=99;SAP=5.60795;SAR=115;SRF=0;SRP=7.35324;SRR=2;TYPE=snp;ANN=T|synonymous_variant|LOW|Rv3792|Rv3792|transcript|TRANSCRIPT_Rv3792|protein_coding|1/1|c.1032C>T|p.His344His|1032/1932|1032/1932|344/643||	GT:DP:AD:RO:QR:AO:QA:GL	1:216:2,214:2:60:214:7378:-658.36,0
+Chromosome	4239274	.	C	G	7506.51	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=238;CIGAR=1X;DP=238;DPB=238;DPRA=0;EPP=7.42624;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1728.44;PAIRED=0.995798;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=8341;QR=0;RO=0;RPL=124;RPP=3.92268;RPPR=0;RPR=114;RUN=1;SAF=116;SAP=3.33876;SAR=122;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=G|missense_variant|MODERATE|Rv3792|Rv3792|transcript|TRANSCRIPT_Rv3792|protein_coding|1/1|c.1343C>G|p.Pro448Arg|1343/1932|1343/1932|448/643||	GT:DP:AD:RO:QR:AO:QA:GL	1:238:0,238:0:0:238:8341:-750.651,0
+Chromosome	4240671	.	T	C	6428.63	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=203;CIGAR=1X;DP=203;DPB=203;DPRA=0;EPP=5.4171;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1480.25;PAIRED=0.980296;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=7143;QR=0;RO=0;RPL=89;RPP=9.69587;RPPR=0;RPR=114;RUN=1;SAF=92;SAP=6.87188;SAR=111;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=C|missense_variant|MODERATE|Rv3793|Rv3793|transcript|TRANSCRIPT_Rv3793|protein_coding|1/1|c.809T>C|p.Ile270Thr|809/3285|809/3285|270/1094||	GT:DP:AD:RO:QR:AO:QA:GL	1:203:0,203:0:0:203:7143:-642.863,0
+Chromosome	4247429	.	A	G	6696.64	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=211;CIGAR=1X;DP=212;DPB=212;DPRA=0;EPP=5.32585;EPPR=0;GTI=0;LEN=1;MEANALT=2;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1541.96;PAIRED=0.990521;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=7445;QR=0;RO=0;RPL=118;RPP=9.44239;RPPR=0;RPR=93;RUN=1;SAF=99;SAP=4.74954;SAR=112;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=G|missense_variant|MODERATE|Rv3795|Rv3795|transcript|TRANSCRIPT_Rv3795|protein_coding|1/1|c.916A>G|p.Met306Val|916/3297|916/3297|306/1098||	GT:DP:AD:RO:QR:AO:QA:GL	1:212:0,211:0:0:211:7445:-669.664,0
+Chromosome	4247646	.	C	A	6787.39	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=223;CIGAR=1X;DP=224;DPB=224;DPRA=0;EPP=9.09627;EPPR=5.18177;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=60;NS=1;NUMALT=1;ODDS=1562.85;PAIRED=0.982063;PAIREDR=1;PAO=0;PQA=0;PQR=0;PRO=0;QA=7580;QR=35;RO=1;RPL=106;RPP=4.18854;RPPR=5.18177;RPR=117;RUN=1;SAF=120;SAP=5.82445;SAR=103;SRF=0;SRP=5.18177;SRR=1;TYPE=snp;ANN=A|missense_variant|MODERATE|Rv3795|Rv3795|transcript|TRANSCRIPT_Rv3795|protein_coding|1/1|c.1133C>A|p.Ala378Glu|1133/3297|1133/3297|378/1098||	GT:DP:AD:RO:QR:AO:QA:GL	1:224:1,223:1:35:223:7580:-678.739,0
+Chromosome	4251297	.	C	G	6197.38	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=193;CIGAR=1X;DP=194;DPB=194;DPRA=0;EPP=3.29158;EPPR=0;GTI=0;LEN=1;MEANALT=2;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1427;PAIRED=0.984456;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=6891;QR=0;RO=0;RPL=96;RPP=3.02155;RPPR=0;RPR=97;RUN=1;SAF=91;SAP=4.37169;SAR=102;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=G|synonymous_variant|LOW|Rv3797|Rv3797|transcript|TRANSCRIPT_Rv3797|protein_coding|1/1|c.213C>G|p.Gly71Gly|213/1782|213/1782|71/593||	GT:DP:AD:RO:QR:AO:QA:GL	1:194:0,193:0:0:193:6891:-619.738,0
+Chromosome	4254290	.	T	G	2461.94	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=79;CIGAR=1X;DP=79;DPB=79;DPRA=0;EPP=12.9331;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=566.884;PAIRED=1;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=2733;QR=0;RO=0;RPL=0;RPP=174.557;RPPR=0;RPR=79;RUN=1;SAF=30;SAP=12.9331;SAR=49;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=G|missense_variant|MODERATE|Rv3798|Rv3798|transcript|TRANSCRIPT_Rv3798|protein_coding|1/1|c.1298T>G|p.Leu433Arg|1298/1335|1298/1335|433/444||	GT:DP:AD:RO:QR:AO:QA:GL	1:79:0,79:0:0:79:2733:-246.194,0
+Chromosome	4254478	.	G	A	7180.38	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=227;CIGAR=1X;DP=227;DPB=227;DPRA=0;EPP=3.09639;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1653.34;PAIRED=0.986784;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=7979;QR=0;RO=0;RPL=103;RPP=7.22889;RPPR=0;RPR=124;RUN=1;SAF=135;SAP=20.6978;SAR=92;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=A|missense_variant|MODERATE|Rv3799c|Rv3799c|transcript|TRANSCRIPT_Rv3799c|protein_coding|1/1|c.1471C>T|p.His491Tyr|1471/1569|1471/1569|491/522||	GT:DP:AD:RO:QR:AO:QA:GL	1:227:0,227:0:0:227:7979:-718.038,0
+Chromosome	4261499	.	A	G	5307.9	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=171;CIGAR=1X;DP=171;DPB=171;DPRA=0;EPP=7.59452;EPPR=0;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=0;NS=1;NUMALT=1;ODDS=1222.19;PAIRED=0.982456;PAIREDR=0;PAO=0;PQA=0;PQR=0;PRO=0;QA=5897;QR=0;RO=0;RPL=88;RPP=3.32777;RPPR=0;RPR=83;RUN=1;SAF=83;SAP=3.32777;SAR=88;SRF=0;SRP=0;SRR=0;TYPE=snp;ANN=G|missense_variant|MODERATE|Rv3801c|Rv3801c|transcript|TRANSCRIPT_Rv3801c|protein_coding|1/1|c.1568T>C|p.Val523Ala|1568/1914|1568/1914|523/637||	GT:DP:AD:RO:QR:AO:QA:GL	1:171:0,171:0:0:171:5897:-530.79,0
+Chromosome	4263279	.	G	A	6207.29	PASS	AB=0;ABP=0;AC=1;AF=1;AN=1;AO=196;CIGAR=1X;DP=198;DPB=198;DPRA=0;EPP=9.39177;EPPR=3.0103;GTI=0;LEN=1;MEANALT=1;MQM=60;MQMR=60;NS=1;NUMALT=1;ODDS=1429.28;PAIRED=0.994898;PAIREDR=1;PAO=0;PQA=0;PQR=0;PRO=0;QA=6971;QR=70;RO=2;RPL=100;RPP=3.18756;RPPR=7.35324;RPR=96;RUN=1;SAF=102;SAP=3.71935;SAR=94;SRF=1;SRP=3.0103;SRR=1;TYPE=snp	GT:DP:AD:RO:QR:AO:QA:GL	1:198:2,196:2:70:196:6971:-620.729,0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/vcf_with_no_protein_report.html	Thu Mar 17 07:33:00 2022 +0000
@@ -0,0 +1,661 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+        <title></title>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"
+        integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
+    <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/dataTables.bootstrap4.min.css">
+    <link rel="stylesheet" type="text/css"
+        href="https://cdn.datatables.net/buttons/1.5.2/css/buttons.bootstrap4.min.css">
+    <link rel="stylesheet" type="text/css"
+        href="https://cdn.datatables.net/buttons/1.5.2/css/buttons.dataTables.min.css">
+    </head>
+
+<body>
+    <div class="container">
+        <div class="row">
+            <h2 class="mt-5">
+                vcf_with_no_protein Report
+            </h2>
+        </div>
+                        <hr>
+        <div class="row justify-content-center align-items-center">
+    <table id="vcfreport" class="table table-bordered table-striped table-hover table-sm" cellspacing="0">
+        <thead class="thead-light">
+            <tr>
+                <th scope="col">CHR</th>
+                <th scope="col">GENE</th>
+                <th scope="col">LOCUS</th>
+                <th scope="col">PRODUCT</th>
+                <th scope="col">TYPE</th>
+                <th scope="col">EFFECT</th>
+                <th scope="col">POS</th>
+                <th scope="col">REF</th>
+                <th scope="col">ALT</th>
+                <th scope="col">BIOTYPE</th>
+                <th scope="col">NUCLEOTIDE</th>
+                <th scope="col">CONSEQUENCE</th>
+                <th scope="col">IMPACT</th>
+                <th scope="col">PATHWAY</th>
+            </tr>
+        </thead>
+        <tbody>
+
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3753c</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3753c" target="_blank"
+                        rel="noreferrer noopener">Rv3753c</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=O69720"
+                        target="_blank" rel="noreferrer noopener">O69720</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4200220..4200220&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4200220..4200220"
+                        target="_blank" rel="noreferrer noopener">4200220</a>
+                </td>
+                <td>G</td>
+                <td>A</td>
+                <td>protein_coding</td>
+                <td>c.2C>T</td>
+                <td>p.Thr1Met</td>
+                <td>MODERATE</td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3756c</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3756c" target="_blank"
+                        rel="noreferrer noopener">Rv3756c</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=O69722"
+                        target="_blank" rel="noreferrer noopener">O69722</a>
+                                    </td>
+                <td>snp</td>
+                <td>synonymous_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4202383..4202383&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4202383..4202383"
+                        target="_blank" rel="noreferrer noopener">4202383</a>
+                </td>
+                <td>C</td>
+                <td>A</td>
+                <td>protein_coding</td>
+                <td>c.231G>T</td>
+                <td>p.Val77Val</td>
+                <td>LOW</td>
+                <td>
+                                                                                                     <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu02010" target="_blank"
+                                rel="noreferrer noopener">ABC transporters</a>
+                        </small>
+                    </p>
+                                     </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3759c</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3759c" target="_blank"
+                        rel="noreferrer noopener">Rv3759c</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=O69725"
+                        target="_blank" rel="noreferrer noopener">O69725</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4205120..4205120&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4205120..4205120"
+                        target="_blank" rel="noreferrer noopener">4205120</a>
+                </td>
+                <td>G</td>
+                <td>A</td>
+                <td>protein_coding</td>
+                <td>c.254C>T</td>
+                <td>p.Pro85Leu</td>
+                <td>MODERATE</td>
+                <td>
+                                                                                                     <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu02010" target="_blank"
+                                rel="noreferrer noopener">ABC transporters</a>
+                        </small>
+                    </p>
+                                     </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3764c</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3764c" target="_blank"
+                        rel="noreferrer noopener">Rv3764c</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=O69729"
+                        target="_blank" rel="noreferrer noopener">O69729</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4210876..4210876&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4210876..4210876"
+                        target="_blank" rel="noreferrer noopener">4210876</a>
+                </td>
+                <td>C</td>
+                <td>T</td>
+                <td>protein_coding</td>
+                <td>c.134G>A</td>
+                <td>p.Arg45His</td>
+                <td>MODERATE</td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3769</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3769" target="_blank"
+                        rel="noreferrer noopener">Rv3769</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=P72036"
+                        target="_blank" rel="noreferrer noopener">P72036</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4214747..4214747&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4214747..4214747"
+                        target="_blank" rel="noreferrer noopener">4214747</a>
+                </td>
+                <td>C</td>
+                <td>T</td>
+                <td>protein_coding</td>
+                <td>c.133C>T</td>
+                <td>p.His45Tyr</td>
+                <td>MODERATE</td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3770c</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3770c" target="_blank"
+                        rel="noreferrer noopener">Rv3770c</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=P72037"
+                        target="_blank" rel="noreferrer noopener">P72037</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4215484..4215484&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4215484..4215484"
+                        target="_blank" rel="noreferrer noopener">4215484</a>
+                </td>
+                <td>C</td>
+                <td>G</td>
+                <td>protein_coding</td>
+                <td>c.292G>C</td>
+                <td>p.Ala98Pro</td>
+                <td>MODERATE</td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3772</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3772" target="_blank"
+                        rel="noreferrer noopener">Rv3772</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=P9WML5"
+                        target="_blank" rel="noreferrer noopener">P9WML5</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4217557..4217557&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4217557..4217557"
+                        target="_blank" rel="noreferrer noopener">4217557</a>
+                </td>
+                <td>G</td>
+                <td>A</td>
+                <td>protein_coding</td>
+                <td>c.424G>A</td>
+                <td>p.Ala142Thr</td>
+                <td>MODERATE</td>
+                <td>
+                                                                                                     <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu00400" target="_blank"
+                                rel="noreferrer noopener">Phenylalanine, tyrosine and tryptophan biosynthesis</a>
+                        </small>
+                    </p>
+                                                                                 <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu00360" target="_blank"
+                                rel="noreferrer noopener">Phenylalanine metabolism</a>
+                        </small>
+                    </p>
+                                                                                 <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu00340" target="_blank"
+                                rel="noreferrer noopener">Histidine metabolism</a>
+                        </small>
+                    </p>
+                                                                                 <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu00350" target="_blank"
+                                rel="noreferrer noopener">Tyrosine metabolism</a>
+                        </small>
+                    </p>
+                                     </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3777</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3777" target="_blank"
+                        rel="noreferrer noopener">Rv3777</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=P72043"
+                        target="_blank" rel="noreferrer noopener">P72043</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4223172..4223172&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4223172..4223172"
+                        target="_blank" rel="noreferrer noopener">4223172</a>
+                </td>
+                <td>C</td>
+                <td>T</td>
+                <td>protein_coding</td>
+                <td>c.479C>T</td>
+                <td>p.Ala160Val</td>
+                <td>MODERATE</td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3785</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3785" target="_blank"
+                        rel="noreferrer noopener">Rv3785</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=P9WKX1"
+                        target="_blank" rel="noreferrer noopener">P9WKX1</a>
+                                    </td>
+                <td>snp</td>
+                <td>synonymous_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4232327..4232327&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4232327..4232327"
+                        target="_blank" rel="noreferrer noopener">4232327</a>
+                </td>
+                <td>G</td>
+                <td>A</td>
+                <td>protein_coding</td>
+                <td>c.1008G>A</td>
+                <td>p.Arg336Arg</td>
+                <td>LOW</td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3792</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3792" target="_blank"
+                        rel="noreferrer noopener">Rv3792</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=P9WN03"
+                        target="_blank" rel="noreferrer noopener">P9WN03</a>
+                                    </td>
+                <td>snp</td>
+                <td>synonymous_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4238963..4238963&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4238963..4238963"
+                        target="_blank" rel="noreferrer noopener">4238963</a>
+                </td>
+                <td>C</td>
+                <td>T</td>
+                <td>protein_coding</td>
+                <td>c.1032C>T</td>
+                <td>p.His344His</td>
+                <td>LOW</td>
+                <td>
+                                                                                                     <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu00572" target="_blank"
+                                rel="noreferrer noopener">Arabinogalactan biosynthesis - Mycobacterium</a>
+                        </small>
+                    </p>
+                                     </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3792</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3792" target="_blank"
+                        rel="noreferrer noopener">Rv3792</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=P9WN03"
+                        target="_blank" rel="noreferrer noopener">P9WN03</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4239274..4239274&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4239274..4239274"
+                        target="_blank" rel="noreferrer noopener">4239274</a>
+                </td>
+                <td>C</td>
+                <td>G</td>
+                <td>protein_coding</td>
+                <td>c.1343C>G</td>
+                <td>p.Pro448Arg</td>
+                <td>MODERATE</td>
+                <td>
+                                                                                                     <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu00572" target="_blank"
+                                rel="noreferrer noopener">Arabinogalactan biosynthesis - Mycobacterium</a>
+                        </small>
+                    </p>
+                                     </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3793</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3793" target="_blank"
+                        rel="noreferrer noopener">Rv3793</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=P9WNL5"
+                        target="_blank" rel="noreferrer noopener">P9WNL5</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4240671..4240671&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4240671..4240671"
+                        target="_blank" rel="noreferrer noopener">4240671</a>
+                </td>
+                <td>T</td>
+                <td>C</td>
+                <td>protein_coding</td>
+                <td>c.809T>C</td>
+                <td>p.Ile270Thr</td>
+                <td>MODERATE</td>
+                <td>
+                                                                                                     <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu00571" target="_blank"
+                                rel="noreferrer noopener">Lipoarabinomannan (LAM) biosynthesis</a>
+                        </small>
+                    </p>
+                                     </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3795</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3795" target="_blank"
+                        rel="noreferrer noopener">Rv3795</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=P9WNL7"
+                        target="_blank" rel="noreferrer noopener">P9WNL7</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4247429..4247429&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4247429..4247429"
+                        target="_blank" rel="noreferrer noopener">4247429</a>
+                </td>
+                <td>A</td>
+                <td>G</td>
+                <td>protein_coding</td>
+                <td>c.916A>G</td>
+                <td>p.Met306Val</td>
+                <td>MODERATE</td>
+                <td>
+                                                                                                     <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu00572" target="_blank"
+                                rel="noreferrer noopener">Arabinogalactan biosynthesis - Mycobacterium</a>
+                        </small>
+                    </p>
+                                     </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3795</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3795" target="_blank"
+                        rel="noreferrer noopener">Rv3795</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=P9WNL7"
+                        target="_blank" rel="noreferrer noopener">P9WNL7</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4247646..4247646&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4247646..4247646"
+                        target="_blank" rel="noreferrer noopener">4247646</a>
+                </td>
+                <td>C</td>
+                <td>A</td>
+                <td>protein_coding</td>
+                <td>c.1133C>A</td>
+                <td>p.Ala378Glu</td>
+                <td>MODERATE</td>
+                <td>
+                                                                                                     <p>
+                        <small>
+                            <a href="http://www.genome.jp/dbget-bin/www_bget?mtu00572" target="_blank"
+                                rel="noreferrer noopener">Arabinogalactan biosynthesis - Mycobacterium</a>
+                        </small>
+                    </p>
+                                     </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3797</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3797" target="_blank"
+                        rel="noreferrer noopener">Rv3797</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=O53577"
+                        target="_blank" rel="noreferrer noopener">O53577</a>
+                                    </td>
+                <td>snp</td>
+                <td>synonymous_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4251297..4251297&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4251297..4251297"
+                        target="_blank" rel="noreferrer noopener">4251297</a>
+                </td>
+                <td>C</td>
+                <td>G</td>
+                <td>protein_coding</td>
+                <td>c.213C>G</td>
+                <td>p.Gly71Gly</td>
+                <td>LOW</td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3798</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3798" target="_blank"
+                        rel="noreferrer noopener">Rv3798</a>
+                                    </td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4254290..4254290&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4254290..4254290"
+                        target="_blank" rel="noreferrer noopener">4254290</a>
+                </td>
+                <td>T</td>
+                <td>G</td>
+                <td>protein_coding</td>
+                <td>c.1298T>G</td>
+                <td>p.Leu433Arg</td>
+                <td>MODERATE</td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3799c</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3799c" target="_blank"
+                        rel="noreferrer noopener">Rv3799c</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=O53578"
+                        target="_blank" rel="noreferrer noopener">O53578</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4254478..4254478&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4254478..4254478"
+                        target="_blank" rel="noreferrer noopener">4254478</a>
+                </td>
+                <td>G</td>
+                <td>A</td>
+                <td>protein_coding</td>
+                <td>c.1471C>T</td>
+                <td>p.His491Tyr</td>
+                <td>MODERATE</td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+            </tr>
+                        <tr>
+                <td>Chromosome</td>
+                <td>Rv3801c</td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/gene?q=Rv3801c" target="_blank"
+                        rel="noreferrer noopener">Rv3801c</a>
+                                    </td>
+                <td>
+                                        <a href="https://explorer.sanbi.ac.za/search?q=O53580"
+                        target="_blank" rel="noreferrer noopener">O53580</a>
+                                    </td>
+                <td>snp</td>
+                <td>missense_variant</td>
+                <td>
+                    <a href="https://explorer.sanbi.ac.za/jbrowse/?loc=NC_000962.3%3A4261499..4261499&tracks=DNA%2CGenes&highlight=NC_000962.3%3A4261499..4261499"
+                        target="_blank" rel="noreferrer noopener">4261499</a>
+                </td>
+                <td>A</td>
+                <td>G</td>
+                <td>protein_coding</td>
+                <td>c.1568T>C</td>
+                <td>p.Val523Ala</td>
+                <td>MODERATE</td>
+                <td>
+                                        <p>NA</p>
+                                    </td>
+            </tr>
+                    </tbody>
+        <tfoot class="thead-light">
+            <tr>
+                <th scope="col">CHR</th>
+                <th scope="col">GENE</th>
+                <th scope="col">LOCUS</th>
+                <th scope="col">PRODUCT</th>
+                <th scope="col">TYPE</th>
+                <th scope="col">EFFECT</th>
+                <th scope="col">POS</th>
+                <th scope="col">REF</th>
+                <th scope="col">ALT</th>
+                <th scope="col">BIOTYPE</th>
+                <th scope="col">NUCLEOTIDE</th>
+                <th scope="col">CONSEQUENCE</th>
+                <th scope="col">IMPACT</th>
+                <th scope="col">PATHWAY</th>
+            </tr>
+        </tfoot>
+    </table>
+</div>
+</main>
+<div class="mt-5">
+</div>
+                <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
+            integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous">
+        </script>
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
+            integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous">
+        </script>
+        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
+            integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous">
+        </script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js"></script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdn.datatables.net/buttons/1.5.2/js/dataTables.buttons.min.js"></script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.bootstrap4.min.js"></script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.flash.min.js"></script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js"></script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"></script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.html5.min.js"></script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.print.min.js"></script>
+        <script type="text/javascript" charset="utf8"
+            src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.colVis.min.js"></script>
+        <script type="text/javascript" language="javascript" class="init">
+            $(function () {
+                var table = $('#vcfreport').DataTable({
+                    lengthChange: false,
+                    buttons: [{
+                        extend: 'csv',
+                        text: 'Download CSV',
+                        filename: 'vcf_with_no_protein'
+                    }]
+                });
+                table.buttons().container().appendTo('#vcfreport_wrapper .col-md-6:eq(0)');
+            });
+        </script>
+            </div>
+</body>
+
+</html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/vcf_with_no_protein_report.txt	Thu Mar 17 07:33:00 2022 +0000
@@ -0,0 +1,22 @@
+#Vcf_with_no_protein Report
+#Lineage	Family	Spoligotype	RD	Agreement
+
+#CHR	GENE	IDENTIFIER	PRODUCT	TYPE	ANNOTATION	POS	REF	ALT	CONSEQUENCE	IMPACT	PATHWAY
+Chromosome	Rv3753c	Rv3753c	O69720	snp	missense_variant	4200220	G	A	p.Thr1Met	MODERATE	
+Chromosome	Rv3756c	Rv3756c	O69722	snp	synonymous_variant	4202383	C	A	p.Val77Val	LOW	ABC transporters
+Chromosome	Rv3759c	Rv3759c	O69725	snp	missense_variant	4205120	G	A	p.Pro85Leu	MODERATE	ABC transporters
+Chromosome	Rv3764c	Rv3764c	O69729	snp	missense_variant	4210876	C	T	p.Arg45His	MODERATE	
+Chromosome	Rv3769	Rv3769	P72036	snp	missense_variant	4214747	C	T	p.His45Tyr	MODERATE	
+Chromosome	Rv3770c	Rv3770c	P72037	snp	missense_variant	4215484	C	G	p.Ala98Pro	MODERATE	
+Chromosome	Rv3772	Rv3772	P9WML5	snp	missense_variant	4217557	G	A	p.Ala142Thr	MODERATE	Phenylalanine, tyrosine and tryptophan biosynthesis,Phenylalanine metabolism,Histidine metabolism,Tyrosine metabolism
+Chromosome	Rv3777	Rv3777	P72043	snp	missense_variant	4223172	C	T	p.Ala160Val	MODERATE	
+Chromosome	Rv3785	Rv3785	P9WKX1	snp	synonymous_variant	4232327	G	A	p.Arg336Arg	LOW	
+Chromosome	Rv3792	Rv3792	P9WN03	snp	synonymous_variant	4238963	C	T	p.His344His	LOW	Arabinogalactan biosynthesis - Mycobacterium
+Chromosome	Rv3792	Rv3792	P9WN03	snp	missense_variant	4239274	C	G	p.Pro448Arg	MODERATE	Arabinogalactan biosynthesis - Mycobacterium
+Chromosome	Rv3793	Rv3793	P9WNL5	snp	missense_variant	4240671	T	C	p.Ile270Thr	MODERATE	Lipoarabinomannan (LAM) biosynthesis
+Chromosome	Rv3795	Rv3795	P9WNL7	snp	missense_variant	4247429	A	G	p.Met306Val	MODERATE	Arabinogalactan biosynthesis - Mycobacterium
+Chromosome	Rv3795	Rv3795	P9WNL7	snp	missense_variant	4247646	C	A	p.Ala378Glu	MODERATE	Arabinogalactan biosynthesis - Mycobacterium
+Chromosome	Rv3797	Rv3797	O53577	snp	synonymous_variant	4251297	C	G	p.Gly71Gly	LOW	
+Chromosome	Rv3798	Rv3798	NOPROTEIN	snp	missense_variant	4254290	T	G	p.Leu433Arg	MODERATE	
+Chromosome	Rv3799c	Rv3799c	O53578	snp	missense_variant	4254478	G	A	p.His491Tyr	MODERATE	
+Chromosome	Rv3801c	Rv3801c	O53580	snp	missense_variant	4261499	A	G	p.Val523Ala	MODERATE