diff --git a/.github/data/ERR1664619_mutations.vcf b/.github/data/ERR1664619_mutations.vcf new file mode 100644 index 0000000..f841f6c --- /dev/null +++ b/.github/data/ERR1664619_mutations.vcf @@ -0,0 +1,55 @@ +##fileformat=VCFv4.2 +##FILTER= +##contig= +##ALT= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##FORMAT= +##FORMAT= +##FORMAT= +##FORMAT= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT ERR1664619 +NC_000962.3 6140 . G T 225.417 PASS DP=40;VDB=0.970148;SGB=-0.693145;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,18,22;MQ=60;ANN=T|missense_variant|MODERATE|gyrB|Rv0005|transcript|CCP42727|protein_coding|1/1|c.901G>T|p.Val301Leu|901/2028|901/2028|301/675||WARNING_TRANSCRIPT_NO_START_CODON,T|upstream_gene_variant|MODIFIER|gyrA|Rv0006|transcript|CCP42728|protein_coding||c.-1162G>T|||||1162|,T|upstream_gene_variant|MODIFIER|Rv0007|Rv0007|transcript|CCP42729|protein_coding||c.-3774G>T|||||3774|WARNING_TRANSCRIPT_NO_START_CODON,T|upstream_gene_variant|MODIFIER|ileT|EBG00000313329|transcript|EBG00000313329-1|protein_coding||c.-4747G>T|||||4747|WARNING_TRANSCRIPT_MULTIPLE_STOP_CODONS,T|upstream_gene_variant|MODIFIER|alaT|EBG00000313365|transcript|EBG00000313365-1|protein_coding||c.-4972G>T|||||4972|WARNING_TRANSCRIPT_INCOMPLETE,T|downstream_gene_variant|MODIFIER|dnaA|Rv0001|transcript|CCP42723|protein_coding||c.*4616G>T|||||4616|,T|downstream_gene_variant|MODIFIER|dnaN|Rv0002|transcript|CCP42724|protein_coding||c.*2880G>T|||||2880|,T|downstream_gene_variant|MODIFIER|recF|Rv0003|transcript|CCP42725|protein_coding||c.*1703G>T|||||1703|WARNING_TRANSCRIPT_NO_START_CODON,T|downstream_gene_variant|MODIFIER|Rv0004|Rv0004|transcript|CCP42726|protein_coding||c.*1143G>T|||||1143| GT:PL:DP:AD 1/1:255,120,0:40:0,40 +NC_000962.3 7362 . G C 225.417 PASS DP=46;VDB=0.685673;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,25,21;MQ=60;ANN=C|missense_variant|MODERATE|gyrA|Rv0006|transcript|CCP42728|protein_coding|1/1|c.61G>C|p.Glu21Gln|61/2517|61/2517|21/838||,C|upstream_gene_variant|MODIFIER|Rv0007|Rv0007|transcript|CCP42729|protein_coding||c.-2552G>C|||||2552|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|ileT|EBG00000313329|transcript|EBG00000313329-1|protein_coding||c.-3525G>C|||||3525|WARNING_TRANSCRIPT_MULTIPLE_STOP_CODONS,C|upstream_gene_variant|MODIFIER|alaT|EBG00000313365|transcript|EBG00000313365-1|protein_coding||c.-3750G>C|||||3750|WARNING_TRANSCRIPT_INCOMPLETE,C|downstream_gene_variant|MODIFIER|dnaN|Rv0002|transcript|CCP42724|protein_coding||c.*4102G>C|||||4102|,C|downstream_gene_variant|MODIFIER|recF|Rv0003|transcript|CCP42725|protein_coding||c.*2925G>C|||||2925|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv0004|Rv0004|transcript|CCP42726|protein_coding||c.*2365G>C|||||2365|,C|downstream_gene_variant|MODIFIER|gyrB|Rv0005|transcript|CCP42727|protein_coding||c.*95G>C|||||95|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv0008c|Rv0008c|transcript|CCP42730|protein_coding||c.*4512C>G|||||4512| GT:PL:DP:AD 1/1:255,138,0:46:0,46 +NC_000962.3 7582 . A C 225.417 PASS DP=58;VDB=0.99981;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,27,31;MQ=60;ANN=C|missense_variant|MODERATE|gyrA|Rv0006|transcript|CCP42728|protein_coding|1/1|c.281A>C|p.Asp94Ala|281/2517|281/2517|94/838||,C|upstream_gene_variant|MODIFIER|Rv0007|Rv0007|transcript|CCP42729|protein_coding||c.-2332A>C|||||2332|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|ileT|EBG00000313329|transcript|EBG00000313329-1|protein_coding||c.-3305A>C|||||3305|WARNING_TRANSCRIPT_MULTIPLE_STOP_CODONS,C|upstream_gene_variant|MODIFIER|alaT|EBG00000313365|transcript|EBG00000313365-1|protein_coding||c.-3530A>C|||||3530|WARNING_TRANSCRIPT_INCOMPLETE,C|upstream_gene_variant|MODIFIER|ppiA|Rv0009|transcript|CCP42731|protein_coding||c.-4886A>C|||||4886|,C|downstream_gene_variant|MODIFIER|dnaN|Rv0002|transcript|CCP42724|protein_coding||c.*4322A>C|||||4322|,C|downstream_gene_variant|MODIFIER|recF|Rv0003|transcript|CCP42725|protein_coding||c.*3145A>C|||||3145|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv0004|Rv0004|transcript|CCP42726|protein_coding||c.*2585A>C|||||2585|,C|downstream_gene_variant|MODIFIER|gyrB|Rv0005|transcript|CCP42727|protein_coding||c.*315A>C|||||315|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv0008c|Rv0008c|transcript|CCP42730|protein_coding||c.*4292T>G|||||4292| GT:PL:DP:AD 1/1:255,175,0:58:0,58 +NC_000962.3 7585 . G C 225.417 PASS DP=58;VDB=0.999716;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,27,31;MQ=60;ANN=C|missense_variant|MODERATE|gyrA|Rv0006|transcript|CCP42728|protein_coding|1/1|c.284G>C|p.Ser95Thr|284/2517|284/2517|95/838||,C|upstream_gene_variant|MODIFIER|Rv0007|Rv0007|transcript|CCP42729|protein_coding||c.-2329G>C|||||2329|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|ileT|EBG00000313329|transcript|EBG00000313329-1|protein_coding||c.-3302G>C|||||3302|WARNING_TRANSCRIPT_MULTIPLE_STOP_CODONS,C|upstream_gene_variant|MODIFIER|alaT|EBG00000313365|transcript|EBG00000313365-1|protein_coding||c.-3527G>C|||||3527|WARNING_TRANSCRIPT_INCOMPLETE,C|upstream_gene_variant|MODIFIER|ppiA|Rv0009|transcript|CCP42731|protein_coding||c.-4883G>C|||||4883|,C|downstream_gene_variant|MODIFIER|dnaN|Rv0002|transcript|CCP42724|protein_coding||c.*4325G>C|||||4325|,C|downstream_gene_variant|MODIFIER|recF|Rv0003|transcript|CCP42725|protein_coding||c.*3148G>C|||||3148|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv0004|Rv0004|transcript|CCP42726|protein_coding||c.*2588G>C|||||2588|,C|downstream_gene_variant|MODIFIER|gyrB|Rv0005|transcript|CCP42727|protein_coding||c.*318G>C|||||318|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv0008c|Rv0008c|transcript|CCP42730|protein_coding||c.*4289C>G|||||4289| GT:PL:DP:AD 1/1:255,175,0:58:0,58 +NC_000962.3 9304 . G A 225.417 PASS DP=48;VDB=0.261952;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,22,26;MQ=60;ANN=A|missense_variant|MODERATE|gyrA|Rv0006|transcript|CCP42728|protein_coding|1/1|c.2003G>A|p.Gly668Asp|2003/2517|2003/2517|668/838||,A|upstream_gene_variant|MODIFIER|Rv0007|Rv0007|transcript|CCP42729|protein_coding||c.-610G>A|||||610|WARNING_TRANSCRIPT_NO_START_CODON,A|upstream_gene_variant|MODIFIER|ileT|EBG00000313329|transcript|EBG00000313329-1|protein_coding||c.-1583G>A|||||1583|WARNING_TRANSCRIPT_MULTIPLE_STOP_CODONS,A|upstream_gene_variant|MODIFIER|alaT|EBG00000313365|transcript|EBG00000313365-1|protein_coding||c.-1808G>A|||||1808|WARNING_TRANSCRIPT_INCOMPLETE,A|upstream_gene_variant|MODIFIER|ppiA|Rv0009|transcript|CCP42731|protein_coding||c.-3164G>A|||||3164|,A|upstream_gene_variant|MODIFIER|Rv0012|Rv0012|transcript|CCP42734|protein_coding||c.-4785G>A|||||4785|,A|downstream_gene_variant|MODIFIER|recF|Rv0003|transcript|CCP42725|protein_coding||c.*4867G>A|||||4867|WARNING_TRANSCRIPT_NO_START_CODON,A|downstream_gene_variant|MODIFIER|Rv0004|Rv0004|transcript|CCP42726|protein_coding||c.*4307G>A|||||4307|,A|downstream_gene_variant|MODIFIER|gyrB|Rv0005|transcript|CCP42727|protein_coding||c.*2037G>A|||||2037|WARNING_TRANSCRIPT_NO_START_CODON,A|downstream_gene_variant|MODIFIER|Rv0008c|Rv0008c|transcript|CCP42730|protein_coding||c.*2570C>T|||||2570|,A|downstream_gene_variant|MODIFIER|Rv0010c|Rv0010c|transcript|CCP42732|protein_coding||c.*3829C>T|||||3829|,A|downstream_gene_variant|MODIFIER|Rv0011c|Rv0011c|transcript|CCP42733|protein_coding||c.*4410C>T|||||4410| GT:PL:DP:AD 1/1:255,144,0:48:0,48 +NC_000962.3 490655 . T C 225.417 PASS DP=32;VDB=0.378776;SGB=-0.69312;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,17,15;MQ=60;ANN=C|synonymous_variant|LOW|Rv0406c|Rv0406c|transcript|CCP43137|protein_coding|1/1|c.51A>G|p.Arg17Arg|51/819|51/819|17/272||,C|upstream_gene_variant|MODIFIER|fgd1|Rv0407|transcript|CCP43138|protein_coding||c.-128T>C|||||128|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|pta|Rv0408|transcript|CCP43139|protein_coding||c.-1131T>C|||||1131|,C|upstream_gene_variant|MODIFIER|ackA|Rv0409|transcript|CCP43140|protein_coding||c.-3196T>C|||||3196|,C|downstream_gene_variant|MODIFIER|fadD30|Rv0404|transcript|CCP43135|protein_coding||c.*4921T>C|||||4921|,C|downstream_gene_variant|MODIFIER|pks6|Rv0405|transcript|CCP43136|protein_coding||c.*716T>C|||||716|,C|downstream_gene_variant|MODIFIER|pknG|Rv0410c|transcript|CCP43141|protein_coding||c.*4407A>G|||||4407| GT:PL:DP:AD 1/1:255,96,0:32:0,32 +NC_000962.3 761155 . C T 225.417 PASS DP=35;VDB=0.662388;SGB=-0.693136;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,19,16;MQ=60;ANN=T|missense_variant|MODERATE|rpoB|Rv0667|transcript|CCP43410|protein_coding|1/1|c.1349C>T|p.Ser450Leu|1349/3519|1349/3519|450/1172||,T|upstream_gene_variant|MODIFIER|rpoC|Rv0668|transcript|CCP43411|protein_coding||c.-2215C>T|||||2215|WARNING_TRANSCRIPT_NO_START_CODON,T|downstream_gene_variant|MODIFIER|atsD|Rv0663|transcript|CCP43406|protein_coding||c.*2655C>T|||||2655|,T|downstream_gene_variant|MODIFIER|vapB8|Rv0664|transcript|CCP43407|protein_coding||c.*2351C>T|||||2351|,T|downstream_gene_variant|MODIFIER|vapC8|Rv0665|transcript|CCP43408|protein_coding||c.*2016C>T|||||2016|WARNING_TRANSCRIPT_NO_START_CODON,T|downstream_gene_variant|MODIFIER|Rv0666|Rv0666|transcript|CCP43409|protein_coding||c.*1846C>T|||||1846|WARNING_TRANSCRIPT_NO_START_CODON GT:PL:DP:AD 1/1:255,105,0:35:0,35 +NC_000962.3 761998 . T C 228.36 PASS DP=55;VDB=0.158421;SGB=-0.693147;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0;AC=2;AN=2;DP4=0,1,31,23;MQ=60;ANN=C|missense_variant|MODERATE|rpoB|Rv0667|transcript|CCP43410|protein_coding|1/1|c.2192T>C|p.Leu731Pro|2192/3519|2192/3519|731/1172||,C|upstream_gene_variant|MODIFIER|rpoC|Rv0668|transcript|CCP43411|protein_coding||c.-1372T>C|||||1372|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|atsD|Rv0663|transcript|CCP43406|protein_coding||c.*3498T>C|||||3498|,C|downstream_gene_variant|MODIFIER|vapB8|Rv0664|transcript|CCP43407|protein_coding||c.*3194T>C|||||3194|,C|downstream_gene_variant|MODIFIER|vapC8|Rv0665|transcript|CCP43408|protein_coding||c.*2859T>C|||||2859|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv0666|Rv0666|transcript|CCP43409|protein_coding||c.*2689T>C|||||2689|WARNING_TRANSCRIPT_NO_START_CODON GT:PL:DP:AD 1/1:255,134,0:55:1,54 +NC_000962.3 764995 . C G 225.417 PASS DP=54;VDB=0.998895;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,33,21;MQ=60;ANN=G|synonymous_variant|LOW|rpoC|Rv0668|transcript|CCP43411|protein_coding|1/1|c.1626C>G|p.Ala542Ala|1626/3951|1626/3951|542/1316||WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|end|Rv0670|transcript|CCP43413|protein_coding||c.-4797C>G|||||4797|WARNING_TRANSCRIPT_NO_START_CODON,G|downstream_gene_variant|MODIFIER|rpoB|Rv0667|transcript|CCP43410|protein_coding||c.*1670C>G|||||1670|,G|downstream_gene_variant|MODIFIER|Rv0669c|Rv0669c|transcript|CCP43412|protein_coding||c.*2689G>C|||||2689| GT:PL:DP:AD 1/1:255,163,0:54:0,54 +NC_000962.3 781395 . T C 225.417 PASS DP=43;VDB=0.7789;SGB=-0.693146;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,19,24;MQ=60;ANN=C|upstream_gene_variant|MODIFIER|mmpL5|Rv0676c|transcript|CCP43419|protein_coding||c.-2915A>G|||||2915|,C|upstream_gene_variant|MODIFIER|mmpS5|Rv0677c|transcript|CCP43420|protein_coding||c.-2490A>G|||||2490|,C|upstream_gene_variant|MODIFIER|Rv0679c|Rv0679c|transcript|CCP43422|protein_coding||c.-1355A>G|||||1355|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|Rv0680c|Rv0680c|transcript|CCP43423|protein_coding||c.-979A>G|||||979|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|rpsL|Rv0682|transcript|CCP43425|protein_coding||c.-165T>C|||||165|,C|upstream_gene_variant|MODIFIER|rpsG|Rv0683|transcript|CCP43426|protein_coding||c.-539T>C|||||539|,C|upstream_gene_variant|MODIFIER|fusA1|Rv0684|transcript|CCP43427|protein_coding||c.-1090T>C|||||1090|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|tuf|Rv0685|transcript|CCP43428|protein_coding||c.-3426T>C|||||3426|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|Rv0686|Rv0686|transcript|CCP43429|protein_coding||c.-4754T>C|||||4754|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv0678|Rv0678|transcript|CCP43421|protein_coding||c.*1908T>C|||||1908|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv0681|Rv0681|transcript|CCP43424|protein_coding||c.*84T>C|||||84|WARNING_TRANSCRIPT_NO_START_CODON,C|intergenic_region|MODIFIER|Rv0681-rpsL|Rv0681-Rv0682|intergenic_region|Rv0681-Rv0682|||n.781395T>C|||||| GT:PL:DP:AD 1/1:255,129,0:43:0,43 +NC_000962.3 1471659 . C T 225.417 PASS DP=45;VDB=0.574509;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,15,30;MQ=60;ANN=T|upstream_gene_variant|MODIFIER|Rv1313c|Rv1313c|transcript|CCP44070|protein_coding||c.-2154G>A|||||2154|WARNING_TRANSCRIPT_NO_START_CODON,T|upstream_gene_variant|MODIFIER|Rv1314c|Rv1314c|transcript|CCP44071|protein_coding||c.-1407G>A|||||1407|,T|upstream_gene_variant|MODIFIER|rrs|EBG00000313325|transcript|EBG00000313325-1|rRNA||n.-187C>T|||||187|,T|upstream_gene_variant|MODIFIER|rrl|EBG00000313339|transcript|EBG00000313339-1|rRNA||n.-1999C>T|||||1999|,T|downstream_gene_variant|MODIFIER|atpD|Rv1310|transcript|CCP44067|protein_coding||c.*4358C>T|||||4358|,T|downstream_gene_variant|MODIFIER|atpC|Rv1311|transcript|CCP44068|protein_coding||c.*3979C>T|||||3979|,T|downstream_gene_variant|MODIFIER|Rv1312|Rv1312|transcript|CCP44069|protein_coding||c.*3528C>T|||||3528|,T|downstream_gene_variant|MODIFIER|murA|Rv1315|transcript|CCP44072|protein_coding||c.*82C>T|||||82|WARNING_TRANSCRIPT_NO_START_CODON,T|non_coding_transcript_exon_variant|MODIFIER|mcr3|EBG00000313377|transcript|EBG00000313377-1|lincRNA|1/1|n.41C>T|||||| GT:PL:DP:AD 1/1:255,135,0:45:0,45 +NC_000962.3 1473246 . A G 225.417 PASS DP=47;VDB=0.846133;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,23,24;MQ=60;ANN=G|upstream_gene_variant|MODIFIER|Rv1313c|Rv1313c|transcript|CCP44070|protein_coding||c.-3741T>C|||||3741|WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|Rv1314c|Rv1314c|transcript|CCP44071|protein_coding||c.-2994T>C|||||2994|,G|upstream_gene_variant|MODIFIER|rrl|EBG00000313339|transcript|EBG00000313339-1|rRNA||n.-412A>G|||||412|,G|upstream_gene_variant|MODIFIER|rrf|EBG00000313349|transcript|EBG00000313349-1|rRNA||n.-3653A>G|||||3653|,G|downstream_gene_variant|MODIFIER|murA|Rv1315|transcript|CCP44072|protein_coding||c.*1669A>G|||||1669|WARNING_TRANSCRIPT_NO_START_CODON,G|downstream_gene_variant|MODIFIER|mcr3|EBG00000313377|transcript|EBG00000313377-1|lincRNA||n.*1504A>G|||||1504|,G|downstream_gene_variant|MODIFIER|ogt|Rv1316c|transcript|CCP44073|protein_coding||c.*3888T>C|||||3888|,G|downstream_gene_variant|MODIFIER|alkA|Rv1317c|transcript|CCP44074|protein_coding||c.*4382T>C|||||4382|WARNING_TRANSCRIPT_NO_START_CODON,G|non_coding_transcript_exon_variant|MODIFIER|rrs|EBG00000313325|transcript|EBG00000313325-1|rRNA|1/1|n.1401A>G|||||| GT:PL:DP:AD 1/1:255,141,0:47:0,47 +NC_000962.3 1673425 . C T 225.417 PASS DP=31;VDB=0.442172;SGB=-0.69311;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,21,10;MQ=60;ANN=T|upstream_gene_variant|MODIFIER|Rv1482c|Rv1482c|transcript|CCP44242|protein_coding||c.-126G>A|||||126|,T|upstream_gene_variant|MODIFIER|fabG1|Rv1483|transcript|CCP44243|protein_coding||c.-15C>T|||||15|WARNING_TRANSCRIPT_NO_START_CODON,T|upstream_gene_variant|MODIFIER|inhA|Rv1484|transcript|CCP44244|protein_coding||c.-777C>T|||||777|,T|upstream_gene_variant|MODIFIER|hemZ|Rv1485|transcript|CCP44245|protein_coding||c.-1592C>T|||||1592|,T|upstream_gene_variant|MODIFIER|Rv1487|Rv1487|transcript|CCP44247|protein_coding||c.-3516C>T|||||3516|,T|upstream_gene_variant|MODIFIER|Rv1488|Rv1488|transcript|CCP44248|protein_coding||c.-3972C>T|||||3972|WARNING_TRANSCRIPT_NO_START_CODON,T|downstream_gene_variant|MODIFIER|Rv1478|Rv1478|transcript|CCP44238|protein_coding||c.*4281C>T|||||4281|,T|downstream_gene_variant|MODIFIER|moxR1|Rv1479|transcript|CCP44239|protein_coding||c.*3009C>T|||||3009|,T|downstream_gene_variant|MODIFIER|Rv1480|Rv1480|transcript|CCP44240|protein_coding||c.*2059C>T|||||2059|WARNING_TRANSCRIPT_NO_START_CODON,T|downstream_gene_variant|MODIFIER|Rv1481|Rv1481|transcript|CCP44241|protein_coding||c.*1041C>T|||||1041|,T|downstream_gene_variant|MODIFIER|Rv1486c|Rv1486c|transcript|CCP44246|protein_coding||c.*2592G>A|||||2592|,T|intergenic_region|MODIFIER|Rv1482c-fabG1|Rv1482c-Rv1483|intergenic_region|Rv1482c-Rv1483|||n.1673425C>T|||||| GT:PL:DP:AD 1/1:255,93,0:31:0,31 +NC_000962.3 1674782 . T C 225.417 PASS DP=39;VDB=0.923491;SGB=-0.693144;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,22,17;MQ=60;ANN=C|missense_variant|MODERATE|inhA|Rv1484|transcript|CCP44244|protein_coding|1/1|c.581T>C|p.Ile194Thr|581/810|581/810|194/269||,C|upstream_gene_variant|MODIFIER|Rv1482c|Rv1482c|transcript|CCP44242|protein_coding||c.-1483A>G|||||1483|,C|upstream_gene_variant|MODIFIER|hemZ|Rv1485|transcript|CCP44245|protein_coding||c.-235T>C|||||235|,C|upstream_gene_variant|MODIFIER|Rv1487|Rv1487|transcript|CCP44247|protein_coding||c.-2159T>C|||||2159|,C|upstream_gene_variant|MODIFIER|Rv1488|Rv1488|transcript|CCP44248|protein_coding||c.-2615T>C|||||2615|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|Rv1489|Rv1489|transcript|CCP44249|protein_coding||c.-3770T>C|||||3770|,C|upstream_gene_variant|MODIFIER|Rv1489A|Rv1489A|transcript|CCP44250|protein_coding||c.-4160T>C|||||4160|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|Rv1490|Rv1490|transcript|CCP44251|protein_coding||c.-4540T>C|||||4540|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|moxR1|Rv1479|transcript|CCP44239|protein_coding||c.*4366T>C|||||4366|,C|downstream_gene_variant|MODIFIER|Rv1480|Rv1480|transcript|CCP44240|protein_coding||c.*3416T>C|||||3416|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv1481|Rv1481|transcript|CCP44241|protein_coding||c.*2398T>C|||||2398|,C|downstream_gene_variant|MODIFIER|fabG1|Rv1483|transcript|CCP44243|protein_coding||c.*599T>C|||||599|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv1486c|Rv1486c|transcript|CCP44246|protein_coding||c.*1235A>G|||||1235| GT:PL:DP:AD 1/1:255,117,0:39:0,39 +NC_000962.3 1917972 . A G 225.417 PASS DP=36;VDB=0.839332;SGB=-0.693139;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,21,15;MQ=60;ANN=G|synonymous_variant|LOW|tlyA|Rv1694|transcript|CCP44459|protein_coding|1/1|c.33A>G|p.Leu11Leu|33/807|33/807|11/268||WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|G2|EBG00000313337|transcript|EBG00000313337-1|lincRNA||n.-2782T>C|||||2782|,G|upstream_gene_variant|MODIFIER|ppnK|Rv1695|transcript|CCP44460|protein_coding||c.-774A>G|||||774|WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|recN|Rv1696|transcript|CCP44461|protein_coding||c.-1711A>G|||||1711|WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|Rv1697|Rv1697|transcript|CCP44462|protein_coding||c.-3570A>G|||||3570|,G|upstream_gene_variant|MODIFIER|mctB|Rv1698|transcript|CCP44463|protein_coding||c.-4773A>G|||||4773|,G|downstream_gene_variant|MODIFIER|mpg|Rv1688|transcript|CCP44453|protein_coding||c.*4382A>G|||||4382|,G|downstream_gene_variant|MODIFIER|tyrS|Rv1689|transcript|CCP44454|protein_coding||c.*3096A>G|||||3096|,G|downstream_gene_variant|MODIFIER|lprJ|Rv1690|transcript|CCP44455|protein_coding||c.*2062A>G|||||2062|,G|downstream_gene_variant|MODIFIER|Rv1691|Rv1691|transcript|CCP44456|protein_coding||c.*1271A>G|||||1271|WARNING_TRANSCRIPT_NO_START_CODON,G|downstream_gene_variant|MODIFIER|Rv1692|Rv1692|transcript|CCP44457|protein_coding||c.*213A>G|||||213|,G|downstream_gene_variant|MODIFIER|Rv1693|Rv1693|transcript|CCP44458|protein_coding||c.*40A>G|||||40| GT:PL:DP:AD 1/1:255,108,0:36:0,36 +NC_000962.3 2288868 . A C 225.417 PASS DP=35;VDB=0.788686;SGB=-0.693136;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,17,18;MQ=60;ANN=C|missense_variant|MODERATE|pncA|Rv2043c|transcript|CCP44816|protein_coding|1/1|c.374T>G|p.Val125Gly|374/561|374/561|125/186||,C|upstream_gene_variant|MODIFIER|Rv2038c|Rv2038c|transcript|CCP44811|protein_coding||c.-4072T>G|||||4072|,C|upstream_gene_variant|MODIFIER|Rv2039c|Rv2039c|transcript|CCP44812|protein_coding||c.-3227T>G|||||3227|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|Rv2040c|Rv2040c|transcript|CCP44813|protein_coding||c.-2338T>G|||||2338|,C|upstream_gene_variant|MODIFIER|Rv2041c|Rv2041c|transcript|CCP44814|protein_coding||c.-1022T>G|||||1022|,C|upstream_gene_variant|MODIFIER|Rv2042c|Rv2042c|transcript|CCP44815|protein_coding||c.-187T>G|||||187|,C|upstream_gene_variant|MODIFIER|lppI|Rv2046|transcript|CCP44819|protein_coding||c.-2401A>C|||||2401|,C|downstream_gene_variant|MODIFIER|Rv2044c|Rv2044c|transcript|CCP44817|protein_coding||c.*414T>G|||||414|,C|downstream_gene_variant|MODIFIER|lipT|Rv2045c|transcript|CCP44818|protein_coding||c.*817T>G|||||817|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv2047c|Rv2047c|transcript|CCP44820|protein_coding||c.*3094T>G|||||3094|WARNING_TRANSCRIPT_NO_START_CODON GT:PL:DP:AD 1/1:255,105,0:35:0,35 +NC_000962.3 3067464 . A G 225.417 PASS DP=49;VDB=0.35383;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,22,27;MQ=60;ANN=G|missense_variant|MODERATE|thyX|Rv2754c|transcript|CCP45553|protein_coding|1/1|c.482T>C|p.Ile161Thr|482/753|482/753|161/250||WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|ftsK|Rv2748c|transcript|CCP45547|protein_coding||c.-4958T>C|||||4958|,G|upstream_gene_variant|MODIFIER|Rv2752c|Rv2752c|transcript|CCP45551|protein_coding||c.-1273T>C|||||1273|WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|dapA|Rv2753c|transcript|CCP45552|protein_coding||c.-340T>C|||||340|WARNING_TRANSCRIPT_NO_START_CODON,G|downstream_gene_variant|MODIFIER|Rv2749|Rv2749|transcript|CCP45548|protein_coding||c.*4645A>G|||||4645|,G|downstream_gene_variant|MODIFIER|Rv2750|Rv2750|transcript|CCP45549|protein_coding||c.*3830A>G|||||3830|WARNING_TRANSCRIPT_NO_START_CODON,G|downstream_gene_variant|MODIFIER|Rv2751|Rv2751|transcript|CCP45550|protein_coding||c.*2936A>G|||||2936|,G|downstream_gene_variant|MODIFIER|hsdS.1|Rv2755c|transcript|CCP45554|protein_coding||c.*725T>C|||||725|,G|downstream_gene_variant|MODIFIER|hsdM|Rv2756c|transcript|CCP45555|protein_coding||c.*997T>C|||||997|,G|downstream_gene_variant|MODIFIER|vapC21|Rv2757c|transcript|CCP45556|protein_coding||c.*2706T>C|||||2706|,G|downstream_gene_variant|MODIFIER|vapB21|Rv2758c|transcript|CCP45557|protein_coding||c.*3119T>C|||||3119|,G|downstream_gene_variant|MODIFIER|vapC42|Rv2759c|transcript|CCP45558|protein_coding||c.*3411T>C|||||3411|WARNING_TRANSCRIPT_NO_START_CODON,G|downstream_gene_variant|MODIFIER|vapB42|Rv2760c|transcript|CCP45559|protein_coding||c.*3803T>C|||||3803|,G|downstream_gene_variant|MODIFIER|hsdS|Rv2761c|transcript|CCP45560|protein_coding||c.*4082T>C|||||4082| GT:PL:DP:AD 1/1:255,148,0:49:0,49 +NC_000962.3 3067949 . G A 225.417 PASS DP=42;VDB=0.819574;SGB=-0.693146;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,19,23;MQ=60;ANN=A|upstream_gene_variant|MODIFIER|Rv2752c|Rv2752c|transcript|CCP45551|protein_coding||c.-1758C>T|||||1758|WARNING_TRANSCRIPT_NO_START_CODON,A|upstream_gene_variant|MODIFIER|dapA|Rv2753c|transcript|CCP45552|protein_coding||c.-825C>T|||||825|WARNING_TRANSCRIPT_NO_START_CODON,A|upstream_gene_variant|MODIFIER|thyX|Rv2754c|transcript|CCP45553|protein_coding||c.-4C>T|||||4|WARNING_TRANSCRIPT_NO_START_CODON,A|downstream_gene_variant|MODIFIER|Rv2750|Rv2750|transcript|CCP45549|protein_coding||c.*4315G>A|||||4315|WARNING_TRANSCRIPT_NO_START_CODON,A|downstream_gene_variant|MODIFIER|Rv2751|Rv2751|transcript|CCP45550|protein_coding||c.*3421G>A|||||3421|,A|downstream_gene_variant|MODIFIER|hsdS.1|Rv2755c|transcript|CCP45554|protein_coding||c.*240C>T|||||240|,A|downstream_gene_variant|MODIFIER|hsdM|Rv2756c|transcript|CCP45555|protein_coding||c.*512C>T|||||512|,A|downstream_gene_variant|MODIFIER|vapC21|Rv2757c|transcript|CCP45556|protein_coding||c.*2221C>T|||||2221|,A|downstream_gene_variant|MODIFIER|vapB21|Rv2758c|transcript|CCP45557|protein_coding||c.*2634C>T|||||2634|,A|downstream_gene_variant|MODIFIER|vapC42|Rv2759c|transcript|CCP45558|protein_coding||c.*2926C>T|||||2926|WARNING_TRANSCRIPT_NO_START_CODON,A|downstream_gene_variant|MODIFIER|vapB42|Rv2760c|transcript|CCP45559|protein_coding||c.*3318C>T|||||3318|,A|downstream_gene_variant|MODIFIER|hsdS|Rv2761c|transcript|CCP45560|protein_coding||c.*3597C>T|||||3597|,A|downstream_gene_variant|MODIFIER|Rv2762c|Rv2762c|transcript|CCP45561|protein_coding||c.*4688C>T|||||4688|,A|intergenic_region|MODIFIER|thyX-hsdS.1|Rv2754c-Rv2755c|intergenic_region|Rv2754c-Rv2755c|||n.3067949G>A|||||| GT:PL:DP:AD 1/1:255,126,0:42:0,42 +NC_000962.3 3086788 . T C 225.417 PASS DP=57;VDB=0.604457;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,32,25;MQ=60;ANN=C|upstream_gene_variant|MODIFIER|dapB|Rv2773c|transcript|CCP45572|protein_coding||c.-4447A>G|||||4447|,C|upstream_gene_variant|MODIFIER|Rv2774c|Rv2774c|transcript|CCP45573|protein_coding||c.-4032A>G|||||4032|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|Rv2776c|Rv2776c|transcript|CCP45575|protein_coding||c.-2485A>G|||||2485|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|Rv2777c|Rv2777c|transcript|CCP45576|protein_coding||c.-1233A>G|||||1233|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|Rv2778c|Rv2778c|transcript|CCP45577|protein_coding||c.-605A>G|||||605|,C|upstream_gene_variant|MODIFIER|Rv2779c|Rv2779c|transcript|CCP45578|protein_coding||c.-34A>G|||||34|,C|upstream_gene_variant|MODIFIER|ald|Rv2780|transcript|CCP45579|protein_coding||c.-32T>C|||||32|,C|downstream_gene_variant|MODIFIER|Rv2775|Rv2775|transcript|CCP45574|protein_coding||c.*3418T>C|||||3418|,C|downstream_gene_variant|MODIFIER|Rv2781c|Rv2781c|transcript|CCP45580|protein_coding||c.*1162A>G|||||1162|,C|downstream_gene_variant|MODIFIER|pepR|Rv2782c|transcript|CCP45581|protein_coding||c.*2257A>G|||||2257|,C|downstream_gene_variant|MODIFIER|gpsI|Rv2783c|transcript|CCP45582|protein_coding||c.*3551A>G|||||3551|,C|intergenic_region|MODIFIER|Rv2779c-ald|Rv2779c-Rv2780|intergenic_region|Rv2779c-Rv2780|||n.3086788T>C|||||| GT:PL:DP:AD 1/1:255,172,0:57:0,57 +NC_000962.3 3840719 . T C 225.417 PASS DP=35;VDB=0.415745;SGB=-0.693136;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,23,12;MQ=60;ANN=C|synonymous_variant|LOW|alr|Rv3423c|transcript|CCP46245|protein_coding|1/1|c.702A>G|p.Leu234Leu|702/1227|702/1227|234/408||WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|groEL1|Rv3417c|transcript|CCP46239|protein_coding||c.-3828A>G|||||3828|,C|upstream_gene_variant|MODIFIER|groES|Rv3418c|transcript|CCP46240|protein_coding||c.-3431A>G|||||3431|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|gcp|Rv3419c|transcript|CCP46241|protein_coding||c.-2130A>G|||||2130|,C|upstream_gene_variant|MODIFIER|rimI|Rv3420c|transcript|CCP46242|protein_coding||c.-1657A>G|||||1657|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|Rv3421c|Rv3421c|transcript|CCP46243|protein_coding||c.-1025A>G|||||1025|,C|upstream_gene_variant|MODIFIER|Rv3422c|Rv3422c|transcript|CCP46244|protein_coding||c.-522A>G|||||522|,C|upstream_gene_variant|MODIFIER|PPE57|Rv3425|transcript|CCP46247|protein_coding||c.-1520T>C|||||1520|,C|upstream_gene_variant|MODIFIER|PPE58|Rv3426|transcript|CCP46248|protein_coding||c.-2317T>C|||||2317|,C|downstream_gene_variant|MODIFIER|Rv3424c|Rv3424c|transcript|CCP46246|protein_coding||c.*995A>G|||||995|,C|downstream_gene_variant|MODIFIER|Rv3427c|Rv3427c|transcript|CCP46249|protein_coding||c.*3166A>G|||||3166|,C|downstream_gene_variant|MODIFIER|Rv3428c|Rv3428c|transcript|CCP46250|protein_coding||c.*4019A>G|||||4019|WARNING_TRANSCRIPT_NO_START_CODON GT:PL:DP:AD 1/1:255,105,0:35:0,35 +NC_000962.3 3841433 . C G 225.417 PASS DP=44;VDB=0.987756;SGB=-0.693146;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,24,20;MQ=60;ANN=G|upstream_gene_variant|MODIFIER|groEL1|Rv3417c|transcript|CCP46239|protein_coding||c.-4542G>C|||||4542|,G|upstream_gene_variant|MODIFIER|groES|Rv3418c|transcript|CCP46240|protein_coding||c.-4145G>C|||||4145|WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|gcp|Rv3419c|transcript|CCP46241|protein_coding||c.-2844G>C|||||2844|,G|upstream_gene_variant|MODIFIER|rimI|Rv3420c|transcript|CCP46242|protein_coding||c.-2371G>C|||||2371|WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|Rv3421c|Rv3421c|transcript|CCP46243|protein_coding||c.-1739G>C|||||1739|,G|upstream_gene_variant|MODIFIER|Rv3422c|Rv3422c|transcript|CCP46244|protein_coding||c.-1236G>C|||||1236|,G|upstream_gene_variant|MODIFIER|alr|Rv3423c|transcript|CCP46245|protein_coding||c.-13G>C|||||13|WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|PPE57|Rv3425|transcript|CCP46247|protein_coding||c.-806C>G|||||806|,G|upstream_gene_variant|MODIFIER|PPE58|Rv3426|transcript|CCP46248|protein_coding||c.-1603C>G|||||1603|,G|downstream_gene_variant|MODIFIER|Rv3424c|Rv3424c|transcript|CCP46246|protein_coding||c.*281G>C|||||281|,G|downstream_gene_variant|MODIFIER|Rv3427c|Rv3427c|transcript|CCP46249|protein_coding||c.*2452G>C|||||2452|,G|downstream_gene_variant|MODIFIER|Rv3428c|Rv3428c|transcript|CCP46250|protein_coding||c.*3305G>C|||||3305|WARNING_TRANSCRIPT_NO_START_CODON,G|intergenic_region|MODIFIER|alr-Rv3424c|Rv3423c-Rv3424c|intergenic_region|Rv3423c-Rv3424c|||n.3841433C>G|||||| GT:PL:DP:AD 1/1:255,132,0:44:0,44 +NC_000962.3 4242643 . C T 225.417 PASS DP=47;VDB=0.853588;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,25,22;MQ=60;ANN=T|synonymous_variant|LOW|embC|Rv3793|transcript|CCP46622|protein_coding|1/1|c.2781C>T|p.Arg927Arg|2781/3285|2781/3285|927/1094||,T|upstream_gene_variant|MODIFIER|embA|Rv3794|transcript|CCP46623|protein_coding||c.-590C>T|||||590|WARNING_TRANSCRIPT_NO_START_CODON,T|upstream_gene_variant|MODIFIER|embB|Rv3795|transcript|CCP46624|protein_coding||c.-3871C>T|||||3871|,T|downstream_gene_variant|MODIFIER|dprE2|Rv3791|transcript|CCP46620|protein_coding||c.*4714C>T|||||4714|,T|downstream_gene_variant|MODIFIER|aftA|Rv3792|transcript|CCP46621|protein_coding||c.*2780C>T|||||2780| GT:PL:DP:AD 1/1:255,141,0:47:0,47 +NC_000962.3 4243217 . C T 225.417 PASS DP=42;VDB=0.278066;SGB=-0.693146;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,22,20;MQ=60;ANN=T|upstream_gene_variant|MODIFIER|embA|Rv3794|transcript|CCP46623|protein_coding||c.-16C>T|||||16|WARNING_TRANSCRIPT_NO_START_CODON,T|upstream_gene_variant|MODIFIER|embB|Rv3795|transcript|CCP46624|protein_coding||c.-3297C>T|||||3297|,T|downstream_gene_variant|MODIFIER|aftA|Rv3792|transcript|CCP46621|protein_coding||c.*3354C>T|||||3354|,T|downstream_gene_variant|MODIFIER|embC|Rv3793|transcript|CCP46622|protein_coding||c.*70C>T|||||70|,T|intergenic_region|MODIFIER|embC-embA|Rv3793-Rv3794|intergenic_region|Rv3793-Rv3794|||n.4243217C>T|||||| GT:PL:DP:AD 1/1:255,126,0:42:0,42 +NC_000962.3 4247429 . A G 225.417 PASS DP=51;VDB=0.564372;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,30,21;MQ=60;ANN=G|missense_variant|MODERATE|embB|Rv3795|transcript|CCP46624|protein_coding|1/1|c.916A>G|p.Met306Val|916/3297|916/3297|306/1098||,G|upstream_gene_variant|MODIFIER|Rv3796|Rv3796|transcript|CCP46625|protein_coding||c.-2449A>G|||||2449|,G|upstream_gene_variant|MODIFIER|fadE35|Rv3797|transcript|CCP46626|protein_coding||c.-3656A>G|||||3656|,G|downstream_gene_variant|MODIFIER|embC|Rv3793|transcript|CCP46622|protein_coding||c.*4282A>G|||||4282|,G|downstream_gene_variant|MODIFIER|embA|Rv3794|transcript|CCP46623|protein_coding||c.*912A>G|||||912|WARNING_TRANSCRIPT_NO_START_CODON GT:PL:DP:AD 1/1:255,154,0:51:0,51 +NC_000962.3 4247781 . T C 225.417 PASS DP=48;VDB=0.86667;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,19,29;MQ=60;ANN=C|missense_variant|MODERATE|embB|Rv3795|transcript|CCP46624|protein_coding|1/1|c.1268T>C|p.Met423Thr|1268/3297|1268/3297|423/1098||,C|upstream_gene_variant|MODIFIER|Rv3796|Rv3796|transcript|CCP46625|protein_coding||c.-2097T>C|||||2097|,C|upstream_gene_variant|MODIFIER|fadE35|Rv3797|transcript|CCP46626|protein_coding||c.-3304T>C|||||3304|,C|downstream_gene_variant|MODIFIER|embC|Rv3793|transcript|CCP46622|protein_coding||c.*4634T>C|||||4634|,C|downstream_gene_variant|MODIFIER|embA|Rv3794|transcript|CCP46623|protein_coding||c.*1264T>C|||||1264|WARNING_TRANSCRIPT_NO_START_CODON GT:PL:DP:AD 1/1:255,144,0:48:0,48 +NC_000962.3 4328127 . G C 225.421 PASS DP=45;VDB=0.99981;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,20,25;MQ=60;ANN=C|synonymous_variant|LOW|ethR|Rv3855|transcript|CCP46684|protein_coding|1/1|c.579G>C|p.Ser193Ser|579/651|579/651|193/216||WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|ethA|Rv3854c|transcript|CCP46683|protein_coding||c.-654C>G|||||654|,C|downstream_gene_variant|MODIFIER|Rv3848|Rv3848|transcript|CCP46677|protein_coding||c.*4893G>C|||||4893|,C|downstream_gene_variant|MODIFIER|espR|Rv3849|transcript|CCP46678|protein_coding||c.*4230G>C|||||4230|,C|downstream_gene_variant|MODIFIER|Rv3850|Rv3850|transcript|CCP46679|protein_coding||c.*3456G>C|||||3456|,C|downstream_gene_variant|MODIFIER|Rv3851|Rv3851|transcript|CCP46680|protein_coding||c.*3160G>C|||||3160|,C|downstream_gene_variant|MODIFIER|hns|Rv3852|transcript|CCP46681|protein_coding||c.*2649G>C|||||2649|,C|downstream_gene_variant|MODIFIER|rraA|Rv3853|transcript|CCP46682|protein_coding||c.*2159G>C|||||2159|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv3856c|Rv3856c|transcript|CCP46685|protein_coding||c.*274C>G|||||274|,C|downstream_gene_variant|MODIFIER|Rv3857c|Rv3857c|transcript|CCP46686|protein_coding||c.*1290C>G|||||1290|,C|downstream_gene_variant|MODIFIER|gltD|Rv3858c|transcript|CCP46687|protein_coding||c.*1912C>G|||||1912|,C|downstream_gene_variant|MODIFIER|gltB|Rv3859c|transcript|CCP46688|protein_coding||c.*3371C>G|||||3371| GT:PL:DP:AD 1/1:255,132,0:45:0,44 +NC_000962.3 4407965 . C G 225.417 PASS DP=32;VDB=0.907065;SGB=-0.69312;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,11,21;MQ=60;ANN=G|missense_variant|MODERATE|gid|Rv3919c|transcript|CCP46748|protein_coding|1/1|c.238G>C|p.Ala80Pro|238/675|238/675|80/224||,G|upstream_gene_variant|MODIFIER|Rv3916c|Rv3916c|transcript|CCP46745|protein_coding||c.-2798G>C|||||2798|WARNING_TRANSCRIPT_NO_START_CODON,G|upstream_gene_variant|MODIFIER|parB|Rv3917c|transcript|CCP46746|protein_coding||c.-1474G>C|||||1474|,G|upstream_gene_variant|MODIFIER|parA|Rv3918c|transcript|CCP46747|protein_coding||c.-434G>C|||||434|WARNING_TRANSCRIPT_NO_START_CODON,G|downstream_gene_variant|MODIFIER|trxC|Rv3914|transcript|CCP46743|protein_coding||c.*4883C>G|||||4883|,G|downstream_gene_variant|MODIFIER|Rv3915|Rv3915|transcript|CCP46744|protein_coding||c.*3553C>G|||||3553|,G|downstream_gene_variant|MODIFIER|Rv3920c|Rv3920c|transcript|CCP46749|protein_coding||c.*369G>C|||||369|,G|downstream_gene_variant|MODIFIER|Rv3921c|Rv3921c|transcript|CCP46750|protein_coding||c.*1004G>C|||||1004|WARNING_TRANSCRIPT_NO_START_CODON,G|downstream_gene_variant|MODIFIER|Rv3922c|Rv3922c|transcript|CCP46751|protein_coding||c.*2088G>C|||||2088|WARNING_TRANSCRIPT_NO_START_CODON,G|downstream_gene_variant|MODIFIER|rnpA|Rv3923c|transcript|CCP46752|protein_coding||c.*2447G>C|||||2447|,G|downstream_gene_variant|MODIFIER|rpmH|Rv3924c|transcript|CCP46753|protein_coding||c.*2821G>C|||||2821|WARNING_TRANSCRIPT_NO_START_CODON GT:PL:DP:AD 1/1:255,96,0:32:0,32 +NC_000962.3 4408156 . A C 225.417 PASS DP=51;VDB=0.982574;SGB=-0.693147;MQSB=1;MQ0F=0;AC=2;AN=2;DP4=0,0,32,19;MQ=60;ANN=C|missense_variant|MODERATE|gid|Rv3919c|transcript|CCP46748|protein_coding|1/1|c.47T>G|p.Leu16Arg|47/675|47/675|16/224||,C|upstream_gene_variant|MODIFIER|Rv3916c|Rv3916c|transcript|CCP46745|protein_coding||c.-2989T>G|||||2989|WARNING_TRANSCRIPT_NO_START_CODON,C|upstream_gene_variant|MODIFIER|parB|Rv3917c|transcript|CCP46746|protein_coding||c.-1665T>G|||||1665|,C|upstream_gene_variant|MODIFIER|parA|Rv3918c|transcript|CCP46747|protein_coding||c.-625T>G|||||625|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv3915|Rv3915|transcript|CCP46744|protein_coding||c.*3744A>C|||||3744|,C|downstream_gene_variant|MODIFIER|Rv3920c|Rv3920c|transcript|CCP46749|protein_coding||c.*178T>G|||||178|,C|downstream_gene_variant|MODIFIER|Rv3921c|Rv3921c|transcript|CCP46750|protein_coding||c.*813T>G|||||813|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|Rv3922c|Rv3922c|transcript|CCP46751|protein_coding||c.*1897T>G|||||1897|WARNING_TRANSCRIPT_NO_START_CODON,C|downstream_gene_variant|MODIFIER|rnpA|Rv3923c|transcript|CCP46752|protein_coding||c.*2256T>G|||||2256|,C|downstream_gene_variant|MODIFIER|rpmH|Rv3924c|transcript|CCP46753|protein_coding||c.*2630T>G|||||2630|WARNING_TRANSCRIPT_NO_START_CODON GT:PL:DP:AD 1/1:255,154,0:51:0,51 diff --git a/.github/data/reads_to_simulate.csv b/.github/data/reads_to_simulate.csv new file mode 100644 index 0000000..bf5e005 --- /dev/null +++ b/.github/data/reads_to_simulate.csv @@ -0,0 +1,2 @@ +NC000962.3,.github/data/assemblies/NC_000962.3.fa +ERR1664619,.github/data/assemblies/ERR1664619.fa diff --git a/.github/environments/art.yml b/.github/environments/art.yml new file mode 100644 index 0000000..bb6458a --- /dev/null +++ b/.github/environments/art.yml @@ -0,0 +1,7 @@ +name: art +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - art=2016.06.05 diff --git a/.github/environments/check-outputs.yml b/.github/environments/check-outputs.yml new file mode 100644 index 0000000..414072e --- /dev/null +++ b/.github/environments/check-outputs.yml @@ -0,0 +1,9 @@ +name: check-outputs +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - python=3 + - jsonschema=4.20.0 + - pyyaml=6.0.1 diff --git a/.github/scripts/apply_variants.py b/.github/scripts/apply_variants.py new file mode 100755 index 0000000..cdbc496 --- /dev/null +++ b/.github/scripts/apply_variants.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 + + +import argparse +import json + +def parse_fasta(fasta): + """ + Parse a fasta file into a header and a sequence. + """ + with open(fasta, 'r') as f: + lines = f.readlines() + header = lines[0].strip() + sequence = ''.join(lines[1:]) + sequence = sequence.replace('\n', '') + parsed_fasta = { + 'header': header, + 'sequence': sequence + } + + return parsed_fasta + +def parse_vcf(vcf): + """ + """ + parsed_vcf = [] + header = [] + with open(vcf, 'r') as f: + for line in f: + if line.startswith('##'): + continue + elif line.startswith('#'): + header = line.strip().lstrip('#').split('\t') + else: + vcf_line_split = line.strip().split('\t') + vcf_dict = dict(zip(header, vcf_line_split)) + vcf_dict['POS'] = int(vcf_dict['POS']) + vcf_dict['INFO'] = dict([x.split('=') for x in vcf_dict['INFO'].split(';')]) + if 'ANN' in vcf_dict['INFO']: + vcf_dict['INFO']['ANN'] = vcf_dict['INFO']['ANN'].split(',') + parsed_vcf.append(vcf_dict) + + return parsed_vcf + + +def apply_variants(genome, variants): + """ + Apply variants to a reference genome. + """ + for variant in variants: + if variant['ALT'] == '.': + continue + genome['sequence'] = genome['sequence'][:variant['POS']-1] + variant['ALT'] + genome['sequence'][variant['POS']:] + + return genome + + + +def main(args): + genome = parse_fasta(args.genome) + variants = parse_vcf(args.variants) + genome = apply_variants(genome, variants) + with open(args.output, 'w') as f: + f.write(genome['header'] + '\n') + f.write(genome['sequence'] + '\n') + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='') + parser.add_argument('-g', '--genome', type=str, help='Input reference genome') + parser.add_argument('-v', '--variants', type=str, help='Variants to apply to the reference genome (vcf format)') + parser.add_argument('-o', '--output', type=str, help='Output file path, (fasta format)') + args = parser.parse_args() + main(args) diff --git a/.github/scripts/apply_variants.sh b/.github/scripts/apply_variants.sh new file mode 100755 index 0000000..69d467f --- /dev/null +++ b/.github/scripts/apply_variants.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +.github/scripts/apply_variants.py --genome .github/data/assemblies/NC_000962.3.fa --variants .github/data/ERR1664619_mutations.vcf -o .github/data/assemblies/ERR1664619.fa diff --git a/.github/scripts/check_outputs.py b/.github/scripts/check_outputs.py new file mode 100755 index 0000000..d966ca6 --- /dev/null +++ b/.github/scripts/check_outputs.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python3 + +import argparse +import csv +import glob +import json +import urllib.request + +from jsonschema import validate +import yaml + + +def check_provenance_format_valid(provenance_files, schema): + """ + Check that the provenance files are valid according to the schema. + """ + for provenance_file in provenance_files: + with open(provenance_file) as f: + try: + provenance = yaml.load(f, Loader=yaml.BaseLoader) + validate(provenance, schema) + except Exception as e: + return False + + return True + + +def check_expected_mutations(resistance_mutations_files, expected_mutations_by_sample_id): + """ + Check that the resistance mutations files contain the expected mutations. + """ + found_mutations_by_sample = {} + for resistance_mutations_file in resistance_mutations_files: + with open(resistance_mutations_file) as f: + reader = csv.DictReader(f) + for row in reader: + sample_id = row['sample_id'] + gene = row['gene'] + mutation = row['mutation'] + if sample_id not in found_mutations_by_sample: + found_mutations_by_sample[sample_id] = set([]) + if mutation != '': + found_mutations_by_sample[sample_id].add(':'.join([gene, mutation])) + + for sample_id, expected_mutations in expected_mutations_by_sample_id.items(): + if sample_id not in found_mutations_by_sample: + return False + if expected_mutations != found_mutations_by_sample[sample_id]: + return False + + return True + + +def main(args): + provenance_schema_url = "https://raw.githubusercontent.com/BCCDC-PHL/pipeline-provenance-schema/main/schema/pipeline-provenance.json" + provenance_schema_path = ".github/data/pipeline-provenance.json" + urllib.request.urlretrieve(provenance_schema_url, provenance_schema_path) + + provenance_schema = None + with open(provenance_schema_path) as f: + provenance_schema = json.load(f) + + provenace_files_glob = f"{args.pipeline_outdir}/**/*_provenance.yml" + provenance_files = glob.glob(provenace_files_glob, recursive=True) + + resistance_mutations_files_glob = f"{args.pipeline_outdir}/**/*tbprofiler_resistance_mutations.csv" + resistance_mutations_files = glob.glob(resistance_mutations_files_glob, recursive=True) + + expected_mutations_by_sample_id = { + 'NC000962.3': set([]), + 'ERR1664619': set([ + 'inhA:p.Ile194Thr', + 'embA:c.-16C>T', + 'embB:p.Met306Val', + 'embB:p.Met423Thr', + 'gyrA:p.Asp94Ala', + 'rrs:n.1401A>G', + ]), + } + + tests = [ + { + "test_name": "provenance_format_valid", + "test_passed": check_provenance_format_valid(provenance_files, provenance_schema), + }, + { + "test_name": "expected_mutations", + "test_passed": check_expected_mutations(resistance_mutations_files, expected_mutations_by_sample_id), + }, + ] + + output_fields = [ + "test_name", + "test_result" + ] + + output_path = args.output + with open(output_path, 'w') as f: + writer = csv.DictWriter(f, fieldnames=output_fields, extrasaction='ignore') + writer.writeheader() + for test in tests: + if test["test_passed"]: + test["test_result"] = "PASS" + else: + test["test_result"] = "FAIL" + writer.writerow(test) + + for test in tests: + if not test['test_passed']: + exit(1) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Check outputs') + parser.add_argument('--pipeline-outdir', type=str, help='Path to the pipeline output directory') + parser.add_argument('-o', '--output', type=str, help='Path to the output file') + args = parser.parse_args() + main(args) diff --git a/.github/scripts/check_outputs.sh b/.github/scripts/check_outputs.sh new file mode 100755 index 0000000..c4e1986 --- /dev/null +++ b/.github/scripts/check_outputs.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +source ${HOME}/.bashrc + +eval "$(conda shell.bash hook)" + +conda activate check-outputs + + +.github/scripts/check_outputs.py --pipeline-outdir .github/data/test_output -o artifacts/check_outputs_results.csv diff --git a/.github/scripts/create_art_environment.sh b/.github/scripts/create_art_environment.sh new file mode 100755 index 0000000..d393421 --- /dev/null +++ b/.github/scripts/create_art_environment.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +conda env create -f .github/environments/art.yml diff --git a/.github/scripts/create_output_checking_environment.sh b/.github/scripts/create_output_checking_environment.sh new file mode 100755 index 0000000..0f9a4a4 --- /dev/null +++ b/.github/scripts/create_output_checking_environment.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +conda env create -f .github/environments/check-outputs.yml diff --git a/.github/scripts/download_assemblies.sh b/.github/scripts/download_assemblies.sh new file mode 100755 index 0000000..bb936db --- /dev/null +++ b/.github/scripts/download_assemblies.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +mkdir -p .github/data/assemblies + +curl -o .github/data/assemblies/NC_000962.3.fa "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?retmode=text&id=NC_000962.3&db=nucleotide&rettype=fasta" diff --git a/.github/scripts/install_conda.sh b/.github/scripts/install_conda.sh new file mode 100755 index 0000000..fd82b1a --- /dev/null +++ b/.github/scripts/install_conda.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -eo pipefail + +artifacts_dir="artifacts" + +echo "Install Miniconda .." >> ${artifacts_dir}/test.log + +export PATH=/opt/miniconda3/bin:$PATH + +wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh + +/bin/bash ~/miniconda.sh -b -p /opt/miniconda3 + +rm ~/miniconda.sh + +echo ". /opt/minconda3/etc/profile.d/conda.sh" >> ~/.bashrc + +conda update -n base -c defaults conda + +conda install -y -c conda-forge mamba + +conda init bash diff --git a/.github/scripts/install_nextflow.sh b/.github/scripts/install_nextflow.sh new file mode 100755 index 0000000..ae5cde8 --- /dev/null +++ b/.github/scripts/install_nextflow.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -eo pipefail + +artifacts_dir="artifacts" + +echo Install Nextflow .. >> ${artifacts_dir}/test.log + +wget -qO- https://get.nextflow.io | bash + +sudo mv nextflow /usr/local/bin/ diff --git a/.github/scripts/prepare_artifacts.sh b/.github/scripts/prepare_artifacts.sh new file mode 100755 index 0000000..2ac7069 --- /dev/null +++ b/.github/scripts/prepare_artifacts.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +artifacts_dir="artifacts" + +echo "Prepare artifacts .." >> ${artifacts_dir}/test.log + +mkdir -p ${artifacts_dir}/fastq + +mv .github/data/fastq/*.fastq.gz ${artifacts_dir}/fastq + +mkdir -p ${artifacts_dir}/pipeline_outputs + +mv .github/data/test_output/* ${artifacts_dir}/pipeline_outputs diff --git a/.github/scripts/run_pipeline.sh b/.github/scripts/run_pipeline.sh new file mode 100755 index 0000000..6b97fc8 --- /dev/null +++ b/.github/scripts/run_pipeline.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -eo pipefail + +sed -i 's/cpus = 8/cpus = 4/g' nextflow.config + +nextflow run main.nf \ + -profile conda \ + --cache ${HOME}/.conda/envs \ + --fastq_input .github/data/fastq \ + --outdir .github/data/test_output \ + -with-report .github/data/test_output/nextflow_report.html \ + -with-trace .github/data/test_output/nextflow_trace.tsv diff --git a/.github/scripts/simulate_reads.sh b/.github/scripts/simulate_reads.sh new file mode 100755 index 0000000..7001cce --- /dev/null +++ b/.github/scripts/simulate_reads.sh @@ -0,0 +1,35 @@ +#!/bin/bash + + +source ${HOME}/.bashrc + +eval "$(conda shell.bash hook)" + +conda activate art + +mkdir -p .github/data/fastq + +while IFS=',' read -r sample_id assembly; do + art_illumina \ + --paired \ + --in ${assembly} \ + --fcov 12 \ + --len 150 \ + --mflen 400 \ + --sdev 100 \ + --rndSeed 42 \ + --qShift 0 \ + --qShift2 0 \ + --out .github/data/fastq/${sample_id}_R + + rm -f .github/data/fastq/${sample_id}_R1.aln + rm -f .github/data/fastq/${sample_id}_R2.aln + + mv .github/data/fastq/${sample_id}_R1.fq .github/data/fastq/${sample_id}_R1.fastq + mv .github/data/fastq/${sample_id}_R2.fq .github/data/fastq/${sample_id}_R2.fastq + + gzip -f .github/data/fastq/${sample_id}_R1.fastq + gzip -f .github/data/fastq/${sample_id}_R2.fastq + +done < .github/data/reads_to_simulate.csv + diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..4cd8e15 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,50 @@ +on: + pull_request: + branches: + - main + push: + branches: + - main + workflow_dispatch: +name: Tests +jobs: + test: + strategy: + fail-fast: false + matrix: + nextflow_version: ["21.04.3", "23.10.1"] + name: Run tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Create Artifacts Directory + run: mkdir artifacts + - name: Install Miniconda + run: bash .github/scripts/install_conda.sh + - name: Install Nextflow + env: + NXF_VER: ${{ matrix.nextflow_version }} + run: bash .github/scripts/install_nextflow.sh + - name: Create ART Read-Simulation Environment + run: bash .github/scripts/create_art_environment.sh + - name: Download Assemblies + run: bash .github/scripts/download_assemblies.sh + - name: Apply Variants + run: bash .github/scripts/apply_variants.sh + - name: Simulate Reads + run: bash .github/scripts/simulate_reads.sh + - name: Run Pipeline + run: bash .github/scripts/run_pipeline.sh + - name: Create Output Checking Environment + run: bash .github/scripts/create_output_checking_environment.sh + - name: Check Outputs + run: bash .github/scripts/check_outputs.sh + - name: Prepare Artifacts + if: always() + run: bash .github/scripts/prepare_artifacts.sh + - name: Upload Artifacts + uses: actions/upload-artifact@v4 + if: always() + with: + name: artifacts-BCCDC-PHL-tbprofiler-nf-nextflow-v${{ matrix.nextflow_version }}-${{ github.run_id }}.${{ github.run_attempt }} + path: artifacts diff --git a/.gitignore b/.gitignore index 6f952b0..4f2a15c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,10 @@ *~ .nextflow* +.github/data/assemblies +.github/data/fastq +.github/data/test_output +.github/data/pipeline-provenance.json +artifacts work test_input test_output \ No newline at end of file diff --git a/README.md b/README.md index 2aac39e..b229414 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[![Tests](https://github.com/BCCDC-PHL/tbprofiler-nf/actions/workflows/pull_request.yml/badge.svg)](https://github.com/BCCDC-PHL/tbprofiler-nf/actions/workflows/pull_request.yml) + # TBProfiler-NF: A Nextflow Wrapper for the TBProfiler Mycobacteria Genomics Analysis Tool This is a Nextflow-based wrapper for the [TBProfiler](https://github.com/jodyphelan/TBProfiler) pipeline for antimicrobial resistance (AMR) diff --git a/nextflow.config b/nextflow.config index ea04845..c18f920 100644 --- a/nextflow.config +++ b/nextflow.config @@ -52,6 +52,7 @@ def parsePipelineName(name) { profiles { conda { + conda.enabled = true process.conda = "$baseDir/environments/environment.yml" if (params.cache){ conda.cacheDir = params.cache @@ -64,3 +65,9 @@ process { cpus = 8 } } + +trace { + enabled = true + overwrite = true + file = "${params.outdir}/nextflow_trace.tsv" +}