コード例 #1
0
def smax(s1, s2):
    a1 = pa.alignment(s1, s1)
    a2 = pa.alignment(s2, s2)
    return float(a1[2] + a2[2]) / 2
コード例 #2
0
def smax(s1, s2):
    a1 = pa.alignment(s1, s1)
    a2 = pa.alignment(s2, s2)
    return float(a1[2] + a2[2]) / 2


def dij(s_ij, s_rand, s_max):
    return -np.log(float(s_ij - s_rand) / (s_max - s_rand))


if __name__ == "__main__":
    seqs = [
        "GCAAAGC",
        "GTAGAATC",
        "GCCTG",
        "CCATC"
    ]

    for i in range(len(seqs)):
        for j in range(i + 1, len(seqs)):
            a1, a2, score = pa.alignment(seqs[i], seqs[j])
            print str(i+1) + ": " + a1
            print str(j+1) + ": " + a2
            print "score: " + str(score)
            s_max = smax(seqs[i], seqs[j])
            print "smax: " + str(s_max)
            s_rand = srand(a1, a2)
            print "srand: " + str(s_rand)
            print "D" + str(i+1) + str(j+1) + ": " +\
                  str(dij(score, s_rand, s_max)) + "\n"