Fix for BLAST XML to tabular when both query and subject have XXX masking

This commit is contained in:
Peter Cock
2011-05-18 18:43:46 +01:00
parent 68a514d789
commit 720dea16dc
+10 -7
View File
@@ -176,16 +176,19 @@ for event, elem in context:
expected_mismatch = len(q_seq) \
- sum(1 for q,h in zip(q_seq, h_seq) \
if q == h or q == "-" or h == "-")
assert expected_mismatch - q_seq.count("X") <= int(mismatch) <= expected_mismatch, \
"%s vs %s mismatches, expected %i <= %i <= %i" \
% (qseqid, sseqid, expected_mismatch - q_seq.count("X"), int(mismatch), expected_mismatch)
xx = sum(1 for q,h in zip(q_seq, h_seq) if q=="X" and h=="X")
if not (expected_mismatch - q_seq.count("X") <= int(mismatch) <= expected_mismatch + xx):
stop_err("%s vs %s mismatches, expected %i <= %i <= %i" \
% (qseqid, sseqid, expected_mismatch - q_seq.count("X"),
int(mismatch), expected_mismatch))
#TODO - Remove this alternative identity calculation and test
#once satisifed there are no problems
expected_idendity = sum(1 for q,h in zip(q_seq, h_seq) if q == h)
assert expected_idendity <= int(nident) <= expected_idendity + q_seq.count("X"), \
"%s vs %s identities, expected %i <= %i <= %i" \
% (qseqid, sseqid, expected_idendity, int(identity), expected_idendity + q_seq.count("X"))
expected_identity = sum(1 for q,h in zip(q_seq, h_seq) if q == h)
if not (expected_identity - xx <= int(nident) <= expected_identity + q_seq.count("X")):
stop_err("%s vs %s identities, expected %i <= %i <= %i" \
% (qseqid, sseqid, expected_identity, int(nident),
expected_identity + q_seq.count("X")))
evalue = hsp.findtext("Hsp_evalue")