7 from enums
import SeqTypes
23 assert len(seq1) == len(seq2)
25 if kwargs.has_key(
"gap_penalty"):
26 gap_penalty = kwargs[
"gap_penalty"]
27 positions_all = len(seq1)
30 for idx
in range(positions_all):
33 if res1 == res2
and not(res1 ==
"-" and res2 ==
"-"):
35 elif res1 ==
"-" or res2 ==
"-" and not(res1 ==
"-" and res2 ==
"-"):
37 return 1 - float(matches) / ((positions_all - gaps) + gaps * gap_penalty)
51 p_dist =
p_distance(seq1, seq2, *args, **kwargs)
52 return -1 * math.log(1 - p_dist)
67 p_dist =
p_distance(seq1, seq2, *args, **kwargs)
68 if kwargs[
"sequence_type"] == SeqTypes.AA:
69 return (-19.0/20.0) * math.log(1 - (20.0/19.0) * p_dist)
70 elif kwargs[
"sequence_type"] == SeqTypes.DNA
or kwargs[
"sequence_type"] == SeqTypes.RNA:
71 return (-3.0/4.0) * math.log(1 - (4.0/3.0) * p_dist)