Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/allpy/file/a717b6201063/repeats/test.py
Дата изменения: Unknown
Дата индексирования: Mon Feb 4 02:54:25 2013
Кодировка:
allpy: a717b6201063 repeats/test.py

allpy

view repeats/test.py @ 265:a717b6201063

repeats: mistake in intersection determination fixed If threshold is 15 and length of fragmant is 25, current version should treat it correctly. Previous version seems to find no intersected fragment in this case
author boris <bnagaev@gmail.com>
date Wed, 15 Dec 2010 00:46:13 +0300
parents 30238d84d597
children 4e6e85851133
line source
1 import sys
2 import pprint
4 from repeat_joiner import Interval, RepeatJoiner
6 rj = RepeatJoiner()
7 for line in open(sys.argv[1]):
8 line = line.strip()
9 if line:
10 c1, c2, from1, to1, from2, to2, ori1, ori2 = line.split()[:8]
11 if c1 == 'DNA_1':
12 continue # first line
13 ori1 = True if ori1 == '1' else False
14 ori2 = True if ori2 == '1' else False
15 from1 = int(from1)
16 to1 = int(to1) + 1
17 from2 = int(from2)
18 to2 = int(to2) + 1
20 r1 = Interval(rj, c1, from1, to1, ori1)
21 r2 = Interval(rj, c2, from2, to2, ori2)
22 Interval.pair(r1, r2)
24 rj.build_groups()
25 rj.interval_groups.sort(key=lambda g: len(g), reverse=True)
28 print "group\tchr\tchr_from\tchr_to\tgroup_from\tgroup_to\tori\tgroup_ori"
29 for i, interval_group in enumerate(rj.interval_groups):
30 interval_group.sort(key=lambda i: i.group_start)
31 prev = set()
32 for interval in interval_group:
33 if interval.tuple() in prev:
34 continue
35 prev.add(interval.tuple())
36 print "%i\t%s" % (i, str(interval).replace(' ', '\t'))