allpy
changeset 190:08494fb2c47a
repeats: visitors for visiting tree items (almost) completed
(tree from 10 Nov 2010 of
https://docs1.google.com/document/d/1-7kCo7cdYTpHOtPXGMdSG9wxoXh6sIvrNyYyZuCKECs/edit?hl=en#)
author | boris (netbook) <bnagaev@gmail.com> |
---|---|
date | Thu, 18 Nov 2010 00:01:07 +0300 |
parents | 48cfacae0f79 |
children | 73f9779491ef |
files | repeats/repeat_joiner.py |
diffstat | 1 files changed, 17 insertions(+), 2 deletions(-) [+] |
line diff
1.1 --- a/repeats/repeat_joiner.py Wed Nov 17 21:06:18 2010 +0300 1.2 +++ b/repeats/repeat_joiner.py Thu Nov 18 00:01:07 2010 +0300 1.3 @@ -4,8 +4,9 @@ 1.4 Throuot: [from, to) 1.5 """ 1.6 1.7 +from bx.intervals.intersection import Intersecter, Interval 1.8 + 1.9 import config 1.10 -from bx.intervals.intersection import Intersecter, Interval 1.11 1.12 class Chromosome(Intersecter): 1.13 pass 1.14 @@ -34,7 +35,8 @@ 1.15 return self.repeat_pair[0] 1.16 1.17 def edges(self, min_intersection=config.min_intersection): 1.18 - return self.thin_edges(min_intersection) + [self.thick_edge()] 1.19 + """ visit thick edge at first and then all thin edges """ 1.20 + return [self.thick_edge()] + self.thin_edges(min_intersection) 1.21 1.22 class RepeatPair(tuple): 1.23 """ 1.24 @@ -49,3 +51,16 @@ 1.25 dictionary {<chromosome name>: chromosome} 1.26 """ 1.27 1.28 + def _treat_repeat(self, used): 1.29 + def treat_repeat(repeat): 1.30 + if repeat not in used: 1.31 + used.add(repeat) 1.32 + pass 1.33 + return treat_repeat 1.34 + 1.35 + 1.36 + def full_repeaits(self): 1.37 + used = set() 1.38 + for chromosome in self.values(): 1.39 + chromosome.traverse(self._treat_repeat(used)) 1.40 +