Skip to content

Commit 86c0dd0

Browse files
committed
Add some tests for planned amino acid matching
1 parent 814efd1 commit 86c0dd0

11 files changed

+151
-4
lines changed

kleborate/resBLAST.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,9 @@ def blast_against_all(seqs, mincov, minident, contigs, gene_info):
163163
if hit_class == 'Bla':
164164
hit_class = hit_bla_class
165165
if pcid < 100.00:
166-
hit_allele += settings.inexact_nucleotide_match
166+
hit_allele += '*'
167167
if allele_length < length:
168-
hit_allele += settings.partial_match
168+
hit_allele += '?'
169169
if hit_class in hits_dict:
170170
hits_dict[hit_class].append(hit_allele)
171171
else:

test/res_test/01.fasta

+2
Large diffs are not rendered by default.

test/res_test/02.fasta

+2
Large diffs are not rendered by default.

test/res_test/03.fasta

+2
Large diffs are not rendered by default.

test/res_test/04.fasta

+2
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
clusterid,queryID,class,gene,allele,seqID,accession,positions,size,cluster_contains_multiple_genes,gene_found_in_multiple_clusters,bla_description,bla_class
2+
0,ABC-1__1,Flq,ABC,ABC-1,1,0123456789,1-999,999,no,no,NA,NA
3+
0,ABC-2__2,Flq,ABC,ABC-2,2,0123456789,1-999,999,no,no,NA,NA
4+
0,ABC-3__3,Flq,ABC,ABC-3,3,0123456789,1-999,999,no,no,NA,NA
5+
1,XYZ-1__5,Tet,XYZ,XYZ-1,5,0123456789,1-999,999,no,no,NA,NA
6+
1,XYZ-2__6,Tet,XYZ,XYZ-2,6,0123456789,1-999,999,no,no,NA,NA
7+
1,XYZ-3__7,Tet,XYZ,XYZ-3,7,0123456789,1-999,999,no,no,NA,NA
8+
2,BET-1__5,Bla,BET,BET-1,8,0123456789,1-999,999,no,no,class A beta-lactamase,Bla
9+
2,BET-2__5,Bla,BET,BET-2,9,0123456789,1-999,999,no,no,class A broad-spectrum beta-lactamase,Bla_broad
10+
2,BET-3__5,Bla,BET,BET-3,10,0123456789,1-999,999,no,no,class A extended-spectrum beta-lactamase,Bla_ESBL
11+
2,BET-4__5,Bla,BET,BET-4,11,0123456789,1-999,999,no,no,carbapenem-hydrolyzing class A beta-lactamase,Bla_Carb

test/res_test/data/ARGannot_r3.fasta

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
>0__ABC_Flq__ABC-1__1 no;no;ABC;Flq;0123456789;1-999;999
2+
ATGCTGATTAGCACCGAACCGGCGGAAACCATGCTGAACCTGTATGGCCATACCGATTATTATCCGACCTGGTATAGCCAGGATTGGTGCACCGATAACTGCATGCGCTTTCAGCCGTTTACCCTGATGTATACCTGCGATCTGAACGTGAAATTTGGCCAGGATACCTGCTTTACCGAACGCACCCCGATTCGCTGGGATGCGTGGATTTATGTGCGCTGCAAAGAAACCTGGTGGGGCCCGATGATTCTGAGCCTGGAAATGAACCGCGATTTTTGGATGATGATGCATCAGCGCGGCAGCAACCAGTGCCTGTGCTGCAACCAGTATTGCGAAGAACAGCAGTATGAAATTCTGAAAGGCTGCTATAGCTGCTGCACCCAGGATATGGAACCGTTTATTTGCATTTTTGGCTTTATTCCGTGGCCGAAAGAAAAAAGCTTTACCTTTCATAAAGGCCCGGGCCATCATGATAGCCAGGCGTGGCGCGAAAAAAAACCGCGCAAACAGTTTGGCACCGATTATCTGTTTATGGTGAGCATGCGCAGCCAGAACATGGCGATTGATGATAAAACCCGCTATCAGTTTCAGGCGGTGTTTTGGACCGCGCTGGGCGCGCAGTTTCTGCTGGATGGCAACCCGAAAATGCGCCAGCTGAGCACCGGCTATTGGGAATGCGTGTGCCTGCATCCGCATGATCTGCTGACCCATACCAGCAGCGCGTATTATATTAGCATTGCGTGCCAGTGCCCGAAAAAAAAACTGCGCGCGCAGGAAATTACCGCGGCGAAAATGTTTCAGCGCAGCGAAAACTGCTTTGGCCGCATGATGTGCATGCTGGGCGGCCATCATACCGTGATGTATCCGGGCCGCCGCAGCGGCTGGCGCGTGAACCCGAAATGCGGCAGCATTAGCCGCCATATTCAGCAGCCGGAAAACGATAGCTGGTGCAGCACCGATTGCGGCATTGATTTTGTGACCTGCGGCACCGAACATTAA
3+
>0__ABC_Flq__ABC-2__2 no;no;ABC;Flq;0123456789;1-999;999
4+
ATGCTGATTAGCACCGAACCGGCGGAAACCATGCTGAACCTGTATGGCCATACCGATTATTATCCGACCTGGTATAGCCAGGATTGGTGCACCGATAACTGCATGCGCTTTCAGCCGTTTACCCTGATGTATACCTGCGATCTGAACGTGAAATTTGGCCAGGATACCTGCTTTACCGAACGCACCCCGATTCGCTGGGATGCGTGGATTTATGTGCGCTGCAAAGAAACCTGGTGGGGCCCGATGATTCTGAGCCTGGAAATGAACCGCGATTTTTGGATGATGATGCATCAGCGCGGCAGCAACCAGTGCCTGTGCTGCAACCAGTATTGCGAAGAACAGCAGTATGAAATTCTGAAAGGCTGCTATAGCTGCTGCACCCAGGATATGGAACCGTTTATTTGCATTTTTGGATTTATTCCGTGGCCGAAAGAAAAAAGCTTTACCTTTCATAAAGGCCCGGGCCATCATGATAGCCAGGCGTGGCGCGAAAAAAAACCGCGCAAACAGTTTGGCACCGATTATCTGTTTATGGTGAGCATGCGCAGCCAGAACATGGCGATTGATGATAAAACCCGCTATCAGTTTCAGGCGGTGTTTTGGACCGCGCTGGGCGCGCAGTTTCTGCTGGATGGCAACCCGAAAATGCGCCAGCTGAGCACCGGCTATTGGGAATGCGTGTGCCTGCATCCGCATGATCTGCTGACCCATACCAGCAGCGCGTATTATATTAGCATTGCGTGCCAGTGCCCGAAAAAAAAACTGCGCGCGCAGGAAATTACCGCGGCTAAAATGTTTCAGCGCAGCGAAAACTGCTTTGGCCGCATGATGTGCATGCTGGGCGGCCATCATACCGTGATGTATCCGGGCCGCCGCAGCGGCTGGCGCGTGAACCCGAAATGCGGCAGCATTAGCCGCCATATTCAGCAGCCGGAAAACGATAGCTGGTGCAGCACCGATTGCGGCATTGATTTTGTGACCTGCGGCACCGAACATTAA
5+
>0__ABC_Flq__ABC-3__3 no;no;ABC;Flq;0123456789;1-999;999
6+
ATGCTGATTAGCACCGAACCGGCGGAAACCATGCTGAACCTGTATGGCCATACCGATTATTATCCGACCTGGTATAGCCAGGATTGGTGCACCGATAACTGCATGCGCTTTCAGCCGTTTACCCTGATGTATACCTGCGATCTGAACGTGAAATTTGGCCAGGATACCTGCTTTACCGAACGCACCCCGATTCGCTGGGATGCGTGGATTTATGTGCGCTGCAAAGAAACCTGGTGGGGCCCGATGATTCTGAGCCTGGAAATGAACCGCGATTTTTGGATGATGATGCATCAGCGCGGCAGCAACCAGTGCCTGTGCTGCAACCAGTATTGCGAAGAACAGCAGTATGAAATTCTGAAAGGCTGCTATAGCTGCTGCACCCAGGATATGGAACCGTTTATTTGCATTTTTGGCTTTATTCCGTGGCCGAAAGAAAAAAGCTTTACCTTTCATAAAGGCCCGGGCCATCATGATAGCCAGGAATGGCGCGAAAAAAAACCGCGCAAACAGTTTGGCACCGATTATCTGTTTATGGTGAGCATGCGCAGCCAGAACATGGCGATTGATGATAAAACCCGCTATCAGTTTCAGGCGGTGTTTTGGACCGCGCTGGGCGCGCAGTTTCTGCTGGATGGCAACATGAAAATGCGCCAGCTGAGCACCGGCTATTGGGAATGCGTGTGCCTGCATCCGCATGATCTGCTGACCCATACCAGCAGCGCGTATTATATTAGCATTGCGTGCCAGTGCCCGAAAAAAAAACTGCGCGCGCAGGAAATTACCGCGGTGAAAATGTTTCAGCGCAGCGAAAACTGCTTTGGCCGCATGATGTGCATGCTGGGCGGCCATCATACCGTGATGTATCCGGGCCGCCGCAGCGGCTGGCGCGTGAACCCGAAATGCGGCAGCATTAGCCGCCATATTCAGCAGCCGGAAAACGATAGCTGGTGCAGCACCGATTGCGGCATTGATTTTGTGACCTGCGGCACCGAACATTAA
7+
>1__XYZ_Tet__XYZ-1__5 no;no;XYZ;Tet;0123456789;1-999;999
8+
ACGT
9+
>1__XYZ_Tet__XYZ-2__6 no;no;XYZ;Tet;0123456789;1-999;999
10+
ACGT
11+
>1__XYZ_Tet__XYZ-3__7 no;no;XYZ;Tet;0123456789;1-999;999
12+
ACGT
13+
>2__BET_Bla__BET-1__8 no;no;BET;Bla;0123456789;1-999;999
14+
ACGT
15+
>2__BET_Bla__BET-2__9 no;no;BET;Bla;0123456789;1-999;999
16+
ACGT
17+
>2__BET_Bla__BET-3__10 no;no;BET;Bla;0123456789;1-999;999
18+
ACGT
19+
>2__BET_Bla__BET-4__11 no;no;BET;Bla;0123456789;1-999;999
20+
ACGT

test/res_test/data/MgrB_and_PmrB.aa

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
>MgrB
2+
MKKLRWVLLIVIIAGCLLLWTQMLNVMCDQDVQFFSGICTINKFIPW
3+
>PmrB
4+
MALFATETWTMRHRLLLTIGAILVVCQLISVFWLWHESKEQIQLLVASAIEGHNNQKHVEHEVREAVASLLVPSLLIVGLALYISMLAVRKITRPLSRLQSELENRTPDNLTPIVLSESVPEVTAVTTALNQLVSRLNLTLDRERLFTADVAHELRTPLAGLRLHLELLAKVHGMGVDPLIQRLDQMTTSISQLLQLARVGQSFSAGSYQQVLLLDDVVKPLQDELEAMLAQRQQRLLLTDIENEAVVSGDATLIRVILRNLVENAHRYSPEGSTIRVSVKAGLMPVMAVEDEGPGIDEAKSGELSKAFVRMDSRYGGIGLGLSIVTRIAQLHDAQFFLHNRQPGPGVRAWVLFPQRGGQNVSTH

test/res_test/data/QRDR_120.aa

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
>GyrA
2+
MSDLAREITPVNIEEELKNSYLDYAMSVIVGRALPDVRDGLKPVHRRVLYAMNVLGNDWN
3+
KAYKKSARVVGDVIGKYHPHGDSAVYDTIVRMAQPFSLRYMLVDGQGNFGSIDGDSAAAM
4+
>ParC
5+
MSDMAERLALHEFTENAYLNYSMYVIMDRALPFIGDGLKPVQRRIVYAMSELGLNASAKF
6+
KKSARTVGDVLGKYHPHGDSACYEAMVLMAQPFSYRYPLVDGQGNWGAPDDPKSFAAMRY

test/res_test/data/info

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
ABC-1
2+
---------------------
3+
MLISTEPAETMLNLYGHTDYYPTWYSQDWCTDNCMRFQPFTLMYTCDLNVKFGQDTCFTERTPIRWDAWIYVRCKETWWGPMILSLEMNRDFWMMMHQRGSNQCLCCNQYCEEQQYEILKGCYSCCTQDMEPFICIFGFIPWPKEKSFTFHKGPGHHDSQAWREKKPRKQFGTDYLFMVSMRSQNMAIDDKTRYQFQAVFWTALGAQFLLDGNPKMRQLSTGYWECVCLHPHDLLTHTSSAYYISIACQCPKKKLRAQEITAAKMFQRSENCFGRMMCMLGGHHTVMYPGRRSGWRVNPKCGSISRHIQQPENDSWCSTDCGIDFVTCGTEH*
4+
ATGCTGATTAGCACCGAACCGGCGGAAACCATGCTGAACCTGTATGGCCATACCGATTATTATCCGACCTGGTATAGCCAGGATTGGTGCACCGATAACTGCATGCGCTTTCAGCCGTTTACCCTGATGTATACCTGCGATCTGAACGTGAAATTTGGCCAGGATACCTGCTTTACCGAACGCACCCCGATTCGCTGGGATGCGTGGATTTATGTGCGCTGCAAAGAAACCTGGTGGGGCCCGATGATTCTGAGCCTGGAAATGAACCGCGATTTTTGGATGATGATGCATCAGCGCGGCAGCAACCAGTGCCTGTGCTGCAACCAGTATTGCGAAGAACAGCAGTATGAAATTCTGAAAGGCTGCTATAGCTGCTGCACCCAGGATATGGAACCGTTTATTTGCATTTTTGGCTTTATTCCGTGGCCGAAAGAAAAAAGCTTTACCTTTCATAAAGGCCCGGGCCATCATGATAGCCAGGCGTGGCGCGAAAAAAAACCGCGCAAACAGTTTGGCACCGATTATCTGTTTATGGTGAGCATGCGCAGCCAGAACATGGCGATTGATGATAAAACCCGCTATCAGTTTCAGGCGGTGTTTTGGACCGCGCTGGGCGCGCAGTTTCTGCTGGATGGCAACCCGAAAATGCGCCAGCTGAGCACCGGCTATTGGGAATGCGTGTGCCTGCATCCGCATGATCTGCTGACCCATACCAGCAGCGCGTATTATATTAGCATTGCGTGCCAGTGCCCGAAAAAAAAACTGCGCGCGCAGGAAATTACCGCGGCGAAAATGTTTCAGCGCAGCGAAAACTGCTTTGGCCGCATGATGTGCATGCTGGGCGGCCATCATACCGTGATGTATCCGGGCCGCCGCAGCGGCTGGCGCGTGAACCCGAAATGCGGCAGCATTAGCCGCCATATTCAGCAGCCGGAAAACGATAGCTGGTGCAGCACCGATTGCGGCATTGATTTTGTGACCTGCGGCACCGAACATTAA
5+
ATGYTNATHWSNACNGARCCNGCNGARACNATGYTNAAYYTNTAYGGNCAYACNGAYTAYTAYCCNACNTGGTAYWSNCARGAYTGGTGYACNGAYAAYTGYATGMGNTTYCARCCNTTYACNYTNATGTAYACNTGYGAYYTNAAYGTNAARTTYGGNCARGAYACNTGYTTYACNGARMGNACNCCNATHMGNTGGGAYGCNTGGATHTAYGTNMGNTGYAARGARACNTGGTGGGGNCCNATGATHYTNWSNYTNGARATGAAYMGNGAYTTYTGGATGATGATGCAYCARMGNGGNWSNAAYCARTGYYTNTGYTGYAAYCARTAYTGYGARGARCARCARTAYGARATHYTNAARGGNTGYTAYWSNTGYTGYACNCARGAYATGGARCCNTTYATHTGYATHTTYGGNTTYATHCCNTGGCCNAARGARAARWSNTTYACNTTYCAYAARGGNCCNGGNCAYCAYGAYWSNCARGCNTGGMGNGARAARAARCCNMGNAARCARTTYGGNACNGAYTAYYTNTTYATGGTNWSNATGMGNWSNCARAAYATGGCNATHGAYGAYAARACNMGNTAYCARTTYCARGCNGTNTTYTGGACNGCNYTNGGNGCNCARTTYYTNYTNGAYGGNAAYCCNAARATGMGNCARYTNWSNACNGGNTAYTGGGARTGYGTNTGYYTNCAYCCNCAYGAYYTNYTNACNCAYACNWSNWSNGCNTAYTAYATHWSNATHGCNTGYCARTGYCCNAARAARAARYTNMGNGCNCARGARATHACNGCNGCNAARATGTTYCARMGNWSNGARAAYTGYTTYGGNMGNATGATGTGYATGYTNGGNGGNCAYCAYACNGTNATGTAYCCNGGNMGNMGNWSNGGNTGGMGNGTNAAYCCNAARTGYGGNWSNATHWSNMGNCAYATHCARCARCCNGARAAYGAYWSNTGGTGYWSNACNGAYTGYGGNATHGAYTTYGTNACNTGYGGNACNGARCAYTRR
6+
7+
8+
ABC-2
9+
---------------------
10+
same protein sequence as ABC-1, but with two nucleotide differences
11+
MLISTEPAETMLNLYGHTDYYPTWYSQDWCTDNCMRFQPFTLMYTCDLNVKFGQDTCFTERTPIRWDAWIYVRCKETWWGPMILSLEMNRDFWMMMHQRGSNQCLCCNQYCEEQQYEILKGCYSCCTQDMEPFICIFGFIPWPKEKSFTFHKGPGHHDSQAWREKKPRKQFGTDYLFMVSMRSQNMAIDDKTRYQFQAVFWTALGAQFLLDGNPKMRQLSTGYWECVCLHPHDLLTHTSSAYYISIACQCPKKKLRAQEITAAKMFQRSENCFGRMMCMLGGHHTVMYPGRRSGWRVNPKCGSISRHIQQPENDSWCSTDCGIDFVTCGTEH*
12+
ATGCTGATTAGCACCGAACCGGCGGAAACCATGCTGAACCTGTATGGCCATACCGATTATTATCCGACCTGGTATAGCCAGGATTGGTGCACCGATAACTGCATGCGCTTTCAGCCGTTTACCCTGATGTATACCTGCGATCTGAACGTGAAATTTGGCCAGGATACCTGCTTTACCGAACGCACCCCGATTCGCTGGGATGCGTGGATTTATGTGCGCTGCAAAGAAACCTGGTGGGGCCCGATGATTCTGAGCCTGGAAATGAACCGCGATTTTTGGATGATGATGCATCAGCGCGGCAGCAACCAGTGCCTGTGCTGCAACCAGTATTGCGAAGAACAGCAGTATGAAATTCTGAAAGGCTGCTATAGCTGCTGCACCCAGGATATGGAACCGTTTATTTGCATTTTTGGATTTATTCCGTGGCCGAAAGAAAAAAGCTTTACCTTTCATAAAGGCCCGGGCCATCATGATAGCCAGGCGTGGCGCGAAAAAAAACCGCGCAAACAGTTTGGCACCGATTATCTGTTTATGGTGAGCATGCGCAGCCAGAACATGGCGATTGATGATAAAACCCGCTATCAGTTTCAGGCGGTGTTTTGGACCGCGCTGGGCGCGCAGTTTCTGCTGGATGGCAACCCGAAAATGCGCCAGCTGAGCACCGGCTATTGGGAATGCGTGTGCCTGCATCCGCATGATCTGCTGACCCATACCAGCAGCGCGTATTATATTAGCATTGCGTGCCAGTGCCCGAAAAAAAAACTGCGCGCGCAGGAAATTACCGCGGCTAAAATGTTTCAGCGCAGCGAAAACTGCTTTGGCCGCATGATGTGCATGCTGGGCGGCCATCATACCGTGATGTATCCGGGCCGCCGCAGCGGCTGGCGCGTGAACCCGAAATGCGGCAGCATTAGCCGCCATATTCAGCAGCCGGAAAACGATAGCTGGTGCAGCACCGATTGCGGCATTGATTTTGTGACCTGCGGCACCGAACATTAA
13+
ATGYTNATHWSNACNGARCCNGCNGARACNATGYTNAAYYTNTAYGGNCAYACNGAYTAYTAYCCNACNTGGTAYWSNCARGAYTGGTGYACNGAYAAYTGYATGMGNTTYCARCCNTTYACNYTNATGTAYACNTGYGAYYTNAAYGTNAARTTYGGNCARGAYACNTGYTTYACNGARMGNACNCCNATHMGNTGGGAYGCNTGGATHTAYGTNMGNTGYAARGARACNTGGTGGGGNCCNATGATHYTNWSNYTNGARATGAAYMGNGAYTTYTGGATGATGATGCAYCARMGNGGNWSNAAYCARTGYYTNTGYTGYAAYCARTAYTGYGARGARCARCARTAYGARATHYTNAARGGNTGYTAYWSNTGYTGYACNCARGAYATGGARCCNTTYATHTGYATHTTYGGNTTYATHCCNTGGCCNAARGARAARWSNTTYACNTTYCAYAARGGNCCNGGNCAYCAYGAYWSNCARGCNTGGMGNGARAARAARCCNMGNAARCARTTYGGNACNGAYTAYYTNTTYATGGTNWSNATGMGNWSNCARAAYATGGCNATHGAYGAYAARACNMGNTAYCARTTYCARGCNGTNTTYTGGACNGCNYTNGGNGCNCARTTYYTNYTNGAYGGNAAYCCNAARATGMGNCARYTNWSNACNGGNTAYTGGGARTGYGTNTGYYTNCAYCCNCAYGAYYTNYTNACNCAYACNWSNWSNGCNTAYTAYATHWSNATHGCNTGYCARTGYCCNAARAARAARYTNMGNGCNCARGARATHACNGCNGCNAARATGTTYCARMGNWSNGARAAYTGYTTYGGNMGNATGATGTGYATGYTNGGNGGNCAYCAYACNGTNATGTAYCCNGGNMGNMGNWSNGGNTGGMGNGTNAAYCCNAARTGYGGNWSNATHWSNMGNCAYATHCARCARCCNGARAAYGAYWSNTGGTGYWSNACNGAYTGYGGNATHGAYTTYGTNACNTGYGGNACNGARCAYTRR
14+
15+
16+
ABC-3
17+
---------------------
18+
slightly different protein sequence than ABC-1
19+
MLISTEPAETMLNLYGHTDYYPTWYSQDWCTDNCMRFQPFTLMYTCDLNVKFGQDTCFTERTPIRWDAWIYVRCKETWWGPMILSLEMNRDFWMMMHQRGSNQCLCCNQYCEEQQYEILKGCYSCCTQDMEPFICIFGFIPWPKEKSFTFHKGPGHHDSQEWREKKPRKQFGTDYLFMVSMRSQNMAIDDKTRYQFQAVFWTALGAQFLLDGNMKMRQLSTGYWECVCLHPHDLLTHTSSAYYISIACQCPKKKLRAQEITAVKMFQRSENCFGRMMCMLGGHHTVMYPGRRSGWRVNPKCGSISRHIQQPENDSWCSTDCGIDFVTCGTEH*
20+
ATGCTGATTAGCACCGAACCGGCGGAAACCATGCTGAACCTGTATGGCCATACCGATTATTATCCGACCTGGTATAGCCAGGATTGGTGCACCGATAACTGCATGCGCTTTCAGCCGTTTACCCTGATGTATACCTGCGATCTGAACGTGAAATTTGGCCAGGATACCTGCTTTACCGAACGCACCCCGATTCGCTGGGATGCGTGGATTTATGTGCGCTGCAAAGAAACCTGGTGGGGCCCGATGATTCTGAGCCTGGAAATGAACCGCGATTTTTGGATGATGATGCATCAGCGCGGCAGCAACCAGTGCCTGTGCTGCAACCAGTATTGCGAAGAACAGCAGTATGAAATTCTGAAAGGCTGCTATAGCTGCTGCACCCAGGATATGGAACCGTTTATTTGCATTTTTGGCTTTATTCCGTGGCCGAAAGAAAAAAGCTTTACCTTTCATAAAGGCCCGGGCCATCATGATAGCCAGGAATGGCGCGAAAAAAAACCGCGCAAACAGTTTGGCACCGATTATCTGTTTATGGTGAGCATGCGCAGCCAGAACATGGCGATTGATGATAAAACCCGCTATCAGTTTCAGGCGGTGTTTTGGACCGCGCTGGGCGCGCAGTTTCTGCTGGATGGCAACATGAAAATGCGCCAGCTGAGCACCGGCTATTGGGAATGCGTGTGCCTGCATCCGCATGATCTGCTGACCCATACCAGCAGCGCGTATTATATTAGCATTGCGTGCCAGTGCCCGAAAAAAAAACTGCGCGCGCAGGAAATTACCGCGGTGAAAATGTTTCAGCGCAGCGAAAACTGCTTTGGCCGCATGATGTGCATGCTGGGCGGCCATCATACCGTGATGTATCCGGGCCGCCGCAGCGGCTGGCGCGTGAACCCGAAATGCGGCAGCATTAGCCGCCATATTCAGCAGCCGGAAAACGATAGCTGGTGCAGCACCGATTGCGGCATTGATTTTGTGACCTGCGGCACCGAACATTAA
21+
ATGYTNATHWSNACNGARCCNGCNGARACNATGYTNAAYYTNTAYGGNCAYACNGAYTAYTAYCCNACNTGGTAYWSNCARGAYTGGTGYACNGAYAAYTGYATGMGNTTYCARCCNTTYACNYTNATGTAYACNTGYGAYYTNAAYGTNAARTTYGGNCARGAYACNTGYTTYACNGARMGNACNCCNATHMGNTGGGAYGCNTGGATHTAYGTNMGNTGYAARGARACNTGGTGGGGNCCNATGATHYTNWSNYTNGARATGAAYMGNGAYTTYTGGATGATGATGCAYCARMGNGGNWSNAAYCARTGYYTNTGYTGYAAYCARTAYTGYGARGARCARCARTAYGARATHYTNAARGGNTGYTAYWSNTGYTGYACNCARGAYATGGARCCNTTYATHTGYATHTTYGGNTTYATHCCNTGGCCNAARGARAARWSNTTYACNTTYCAYAARGGNCCNGGNCAYCAYGAYWSNCARGARTGGMGNGARAARAARCCNMGNAARCARTTYGGNACNGAYTAYYTNTTYATGGTNWSNATGMGNWSNCARAAYATGGCNATHGAYGAYAARACNMGNTAYCARTTYCARGCNGTNTTYTGGACNGCNYTNGGNGCNCARTTYYTNYTNGAYGGNAAYATGAARATGMGNCARYTNWSNACNGGNTAYTGGGARTGYGTNTGYYTNCAYCCNCAYGAYYTNYTNACNCAYACNWSNWSNGCNTAYTAYATHWSNATHGCNTGYCARTGYCCNAARAARAARYTNMGNGCNCARGARATHACNGCNGTNAARATGTTYCARMGNWSNGARAAYTGYTTYGGNMGNATGATGTGYATGYTNGGNGGNCAYCAYACNGTNATGTAYCCNGGNMGNMGNWSNGGNTGGMGNGTNAAYCCNAARTGYGGNWSNATHWSNMGNCAYATHCARCARCCNGARAAYGAYWSNTGGTGYWSNACNGAYTGYGGNATHGAYTTYGTNACNTGYGGNACNGARCAYTRR
22+
23+
24+
ABC-4
25+
---------------------
26+
same protein sequence as ABC-3, but with many nucleotide differences
27+
MLISTEPAETMLNLYGHTDYYPTWYSQDWCTDNCMRFQPFTLMYTCDLNVKFGQDTCFTERTPIRWDAWIYVRCKETWWGPMILSLEMNRDFWMMMHQRGSNQCLCCNQYCEEQQYEILKGCYSCCTQDMEPFICIFGFIPWPKEKSFTFHKGPGHHDSQEWREKKPRKQFGTDYLFMVSMRSQNMAIDDKTRYQFQAVFWTALGAQFLLDGNMKMRQLSTGYWECVCLHPHDLLTHTSSAYYISIACQCPKKKLRAQEITAVKMFQRSENCFGRMMCMLGGHHTVMYPGRRSGWRVNPKCGSISRHIQQPENDSWCSTDCGIDFVTCGTEH*
28+
ATGCTGATTAGCACCGAACCGGCGGAAACCATGCTGAACCTGTATGGCCATACCGATTATTATCCGACCTGGTATAGACAGGATTGGTGCACCGATAACTGCATGCGCTTTCAGCCGTTTACCCTGATGTATACCTGCGATCTCAACGTGAAATTTGGCCAGGATACCTGCTTTACCGAACGCACCCCGATTCGATGGGATGCGTGGATTTATGTGCGCTGCAAAGAAACGTGGTGGGGCCCGATGATTCTGAGCCTCGAAATGAACCGCGATTTTTGGATGATGATGCATCAGCGCGGCAGCAACCAGTGCCTGTGCTGCAACCAGTATTGCGAAGAACAGCAGTATGAAATTCTGAAAGGATGCTATAGCTGCTGCACCCAGGATATGGAACCCTTTATTTGCATTTTTGGATTTATTCCGTGGCCGAAAGAAAAAAGCTTTACCTTTCATAAAGGCCCGGGCCATCATGATAGCCAGGAATGGCGCGAAAAAAAACCTCGCAAACAGTTTGGCACCGATTATCTTTTTATGGTGAGCATGCGCAGCCAGAACATGGCGATTGATGATAAAACCCGCTATCAGTTTCAGGCGGTGTTTTGGACAGCGCTGGGCGCGCAGTTTCTACTGGATGGCAACATGAAAATGCGCCAGCTCAGCACCGGGTATTGGGAATGCGTGTGCCTGCATCCGCATGATCTGCTGACCCATACCAGCAGCGCGTATTATATTAGCATTGCGTGCCAGTGCCCGAAAAAAAAACTGCGCGCCCAGGAAATTACCGCGGTGAAAATGTTTCAGCGCAGTGAAAACTGCTTTGGCCGCATGATGTGCATGCTGGGCGGGCATCATACCGTGATGTATCCGGGCCGCCGCAGCGGCTGGCGCGTGAACCCGAAATGCGGCAGCATTAGCCGCCATATTCAGCAGCCGGAAAACGATAGCTGGTGCAGCACCGATTGCGGCATTGATTTTGTGACCTGCGGCACCGAACATTAA
29+
ATGYTNATHWSNACNGARCCNGCNGARACNATGYTNAAYYTNTAYGGNCAYACNGAYTAYTAYCCNACNTGGTAYWSNCARGAYTGGTGYACNGAYAAYTGYATGMGNTTYCARCCNTTYACNYTNATGTAYACNTGYGAYYTNAAYGTNAARTTYGGNCARGAYACNTGYTTYACNGARMGNACNCCNATHMGNTGGGAYGCNTGGATHTAYGTNMGNTGYAARGARACNTGGTGGGGNCCNATGATHYTNWSNYTNGARATGAAYMGNGAYTTYTGGATGATGATGCAYCARMGNGGNWSNAAYCARTGYYTNTGYTGYAAYCARTAYTGYGARGARCARCARTAYGARATHYTNAARGGNTGYTAYWSNTGYTGYACNCARGAYATGGARCCNTTYATHTGYATHTTYGGNTTYATHCCNTGGCCNAARGARAARWSNTTYACNTTYCAYAARGGNCCNGGNCAYCAYGAYWSNCARGARTGGMGNGARAARAARCCNMGNAARCARTTYGGNACNGAYTAYYTNTTYATGGTNWSNATGMGNWSNCARAAYATGGCNATHGAYGAYAARACNMGNTAYCARTTYCARGCNGTNTTYTGGACNGCNYTNGGNGCNCARTTYYTNYTNGAYGGNAAYATGAARATGMGNCARYTNWSNACNGGNTAYTGGGARTGYGTNTGYYTNCAYCCNCAYGAYYTNYTNACNCAYACNWSNWSNGCNTAYTAYATHWSNATHGCNTGYCARTGYCCNAARAARAARYTNMGNGCNCARGARATHACNGCNGTNAARATGTTYCARMGNWSNGARAAYTGYTTYGGNMGNATGATGTGYATGYTNGGNGGNCAYCAYACNGTNATGTAYCCNGGNMGNMGNWSNGGNTGGMGNGTNAAYCCNAARTGYGGNWSNATHWSNMGNCAYATHCARCARCCNGARAAYGAYWSNTGGTGYWSNACNGAYTGYGGNATHGAYTTYGTNACNTGYGGNACNGARCAYTRR
30+
31+
32+
33+
34+
>0__ABC_Flq__ABC-3__3 no;no;ABC;Flq;0123456789;1-999;999
35+
36+
>0__ABC_Flq__ABC-4__4 no;no;ABC;Flq;0123456789;1-999;999
37+
38+
>1__XYZ_Tet__XYZ-1__5 no;no;XYZ;Tet;0123456789;1-999;999
39+
MQYHERNKRASEDGSFLNSYKRWKRGTIIRNVTGIDVYRDSGRLMIWAQYCGTTRMMGCLHNIKIYLVCEKYDYDQWDWKKVSHDMTANKPVHKVNVYTYIGTHNKMNAAYLDICYRSRLQAVMQNEQVYMLFKIEHSANEFFHQFMWSLMGISFVKYTCPVGLKFISQCIYRYENTLLHIMYVPFEMEEVMGENDMHNCYQRSNLAQCPVGNYNVPNYWCVLPYGLSGGWDRTKIIKIHCPAVFSTHHKPVEHNCRFAQQIKSLLGFFIGTLHCARALYMKPYYIDMLAVGGLSWLMISTSWDMNHVGINWQWQYEKMQGNCDHDHCGRGQ*
40+
>1__XYZ_Tet__XYZ-2__6 no;no;XYZ;Tet;0123456789;1-999;999
41+
42+
>1__XYZ_Tet__XYZ-3__7 no;no;XYZ;Tet;0123456789;1-999;999
43+
44+
>2__BET_Bla__BET-1__8 no;no;BET;Bla;0123456789;1-999;999
45+
46+
>2__BET_Bla__BET-2__9 no;no;BET;Bla;0123456789;1-999;999
47+
48+
>2__BET_Bla__BET-3__10 no;no;BET;Bla;0123456789;1-999;999
49+
50+
>2__BET_Bla__BET-4__11 no;no;BET;Bla;0123456789;1-999;999
51+
MHGKTNTVNQGYAKANDQNVERMTGWMYSLMKMGCQHEPPSMITWLGLKKPILYAYIDWKQCEKNYSHLNIWVCVPELNAIQCSWWTYSTPHGVPVCRICDKDKWFTPPNKGQYNNWSGYILWHVHDWQSGTRMHPVVRAIVFPTDKGMPSKLTTHTWPGGRNYFSQEGNVFKPTVLYHHLFSSGYQMSMNCTFNTRLMIACGYTPDEKVRTERMIEYRRWEHWYTNWSHTCRRTIYFRWNMKQLDKTPGYLPNFMNHDKVDDGFWKYYMNDQSLGFRCISCKDGNQQDFFGQTQIDYRPHHAEKFSQSEHFRWFHHCCKHFQNVMQFTFSE*

test/test_res_alleles.py

+49-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,55 @@ class TestResAlleles(unittest.TestCase):
2626
"""
2727

2828
def setUp(self):
29-
self.data_dir = get_data_path()
30-
29+
self.data_dir = 'test/res_test/data'
3130
Args = collections.namedtuple('Args', ['species', 'resistance', 'kaptive_k', 'kaptive_o'])
3231
self.args = Args(species=False, resistance=True, kaptive_k=False, kaptive_o=False)
3332
_, _, self.res_headers = get_output_headers(self.args, self.data_dir)
33+
34+
def test_res_01(self):
35+
results = get_resistance_results(self.data_dir, 'test/res_test/01.fasta', self.args,
36+
self.res_headers)
37+
self.assertEqual(results['Flq'], 'ABC-1')
38+
self.assertEqual(results['Tet'], '-')
39+
self.assertEqual(results['Bla'], '-')
40+
self.assertEqual(results['Bla_Carb'], '-')
41+
self.assertEqual(results['Bla_ESBL'], '-')
42+
self.assertEqual(results['Bla_broad'], '-')
43+
44+
def test_res_02(self):
45+
results = get_resistance_results(self.data_dir, 'test/res_test/02.fasta', self.args,
46+
self.res_headers)
47+
self.assertEqual(results['Flq'], 'ABC-2')
48+
self.assertEqual(results['Tet'], '-')
49+
self.assertEqual(results['Bla'], '-')
50+
self.assertEqual(results['Bla_Carb'], '-')
51+
self.assertEqual(results['Bla_ESBL'], '-')
52+
self.assertEqual(results['Bla_broad'], '-')
53+
54+
def test_res_03(self):
55+
"""
56+
This query allele is equally distant from both ABC-1 and ABC-2 (two substitutions), but an
57+
exact amino acid match for each. While both alleles are an acceptable answer, we should
58+
return ABC-1 because it's the lower numbered allele.
59+
"""
60+
results = get_resistance_results(self.data_dir, 'test/res_test/03.fasta', self.args,
61+
self.res_headers)
62+
self.assertEqual(results['Flq'], 'ABC-1*')
63+
self.assertEqual(results['Tet'], '-')
64+
self.assertEqual(results['Bla'], '-')
65+
self.assertEqual(results['Bla_Carb'], '-')
66+
self.assertEqual(results['Bla_ESBL'], '-')
67+
self.assertEqual(results['Bla_broad'], '-')
68+
69+
def test_res_04(self):
70+
"""
71+
This query allele has no perfect nucleotide matches but it matches ABC-3's amino acids.
72+
"""
73+
results = get_resistance_results(self.data_dir, 'test/res_test/04.fasta', self.args,
74+
self.res_headers)
75+
self.assertEqual(results['Flq'], 'ABC-3^')
76+
self.assertEqual(results['Tet'], '-')
77+
self.assertEqual(results['Bla'], '-')
78+
self.assertEqual(results['Bla_Carb'], '-')
79+
self.assertEqual(results['Bla_ESBL'], '-')
80+
self.assertEqual(results['Bla_broad'], '-')

0 commit comments

Comments
 (0)