- 论坛徽章:
- 26
|
回复 18# 咏咏672418539
亲,这个 [ ]
date
>1
AGTGAA 2 0.285714
CAGTGA 1 0.142857
GAAATG 1 0.142857
GTGAAA 2 0.285714
TGAAAT 1 0.142857
>2
AGTGAA 2 0.666667
GTGAAA 1 0.333333
>3
AGTGAA 2 0.500000
CAGTGA 1 0.250000
GTGAAA 1 0.250000
save
E1-2 0.428572
E1-3 0.357143
E2-3 0.250000
code- #!/usr/bin/python2
- # coding: utf-8
- from collections import defaultdict as DICK
- from itertools import combinations as COMB
- FILE = 'data' # file name
- SAVE = 'save' # save name
- HEAD = '>' # change '>' ???
- D = DICK(dict)
- S = open(SAVE, 'w')
- K = ''
- for L in open(FILE):
- if L.startswith(HEAD):
- K = L.rstrip(HEAD)[1]
- else:
- k, _, v = L.split()
- D[K][k] = float(v)
- for k1, k2 in COMB(sorted(D.keys()), 2):
- ks = set(D[k1].keys()) & set(D[k2].keys())
- Eij = sum(abs(D[k1][k] - D[k2][k]) for k in ks)
- S.write('E%s-%s\t%f\n' % (k1, k2, Eij))
复制代码 |
|