def Edge(seq1, seq2, length, bin_data, switch=1.0, bprobs=None): # one sequence pair in, potentialy, a tree bins = len(bin_data) pair = pairwise.Pair(seq1, seq2) EP = pair.makeReversibleEmissionProbs([(bin.mprobs, bin.Qd) for bin in bin_data], length) tms = [bin.indel.calcTransitionMatrix(length) for bin in bin_data] if bins == 1: TM = tms[0] else: assert bprobs R = SiteClassTransitionMatrix(switch, bprobs) TM = R.nestTransitionMatricies(tms) assert min(TM.Matrix.flat) >=0, bin_data return EP.makePairHMM(TM)