def aln_identity(aln1: AASeq, aln2: AASeq) -> float: """ :param aln1: alignment sequence (with gaps) :param aln2: alignment sequence (with gaps) :return: the identity calculated by: (# identities)/(aln1 length, no gaps) >>> a = AASeq(aligned='-ABC-D') >>> b = AASeq(aligned='-ABCED') >>> aln_identity(a, b) 1.0 >>> b = AASeq(string='-BBCED') >>> aln_identity(a, b) 0.75 """ res = 0. for i, aa in enumerate(aln1): res += 1. if aln1.get_aligned()[i] == aln2.get_aligned()[i] != '-' else 0. length = float(len(len(aln1))) return res/length
def aln_identity(aln1: AASeq, aln2: AASeq) -> float: """ :param aln1: alignment sequence (with gaps) :param aln2: alignment sequence (with gaps) :return: the identity calculated by: (# identities)/(aln1 length, no gaps) >>> a = AASeq(aligned='-ABC-D') >>> b = AASeq(aligned='-ABCED') >>> aln_identity(a, b) 1.0 >>> b = AASeq(string='-BBCED') >>> aln_identity(a, b) 0.75 """ res = 0. for i, aa in enumerate(aln1): res += 1. if aln1.get_aligned()[i] == aln2.get_aligned( )[i] != '-' else 0. length = float(len(len(aln1))) return res / length