Package obitools :: Package tree :: Module layout
[hide private]
[frames] | no frames]

Source Code for Module obitools.tree.layout

  1   
2 -class NodeLayout(dict):
3 ''' 4 Layout data associated to a tree node. 5 ''' 6 pass
7
8 -class TreeLayout(dict):
9 ''' 10 Description of a phylogenetic tree layout 11 12 @see: 13 '''
14 - def addNode(self,node):
15 self[node]=NodeLayout()
16
17 - def setAttribute(self,node,key,value):
18 self[node][key]=value
19
20 - def hasAttribute(self,node,key):
21 return key in self[node]
22
23 - def getAttribute(self,node,key,default=None):
24 return self[node].get(key,default)
25
26 - def setNodesColor(self,color,predicat=True):
27 ''' 28 29 @param color: 30 @type color: 31 @param predicat: 32 @type predicat: 33 ''' 34 for node in self: 35 if callable(predicat): 36 change = predicat(node) 37 else: 38 change = predicat 39 40 if change: 41 if callable(color): 42 c = color(node) 43 else: 44 c = color 45 self.setAttribute(node, 'color', color)
46
47 - def setCircular(self,iscircularpredicat):
48 for node in self: 49 if callable(iscircularpredicat): 50 change = iscircularpredicat(node) 51 else: 52 change = iscircularpredicat 53 54 if change: 55 self.setAttribute(node, 'shape', 'circle') 56 else: 57 self.setAttribute(node, 'shape', 'square')
58
59 - def setRadius(self,radius,predicat=True):
60 for node in self: 61 if callable(predicat): 62 change = predicat(node) 63 else: 64 change = predicat 65 66 if change: 67 if callable(radius): 68 r = radius(node) 69 else: 70 r = radius 71 self.setAttribute(node, 'radius', r)
72
73 -def predicatGeneratorIsInfoEqual(info,value):
74 def isInfoEqual(node): 75 data = node._info 76 return data is not None and info in data and data[info]==value
77 78 return isInfoEqual 79
80 -def isTerminalNode(node):
81 return node._isterminal
82
83 -def constantColorGenerator(color):
84 def colorMaker(node): 85 return color
86 87 return colorMaker 88
89 -def constantColorGenerator(color):
90 def colorMaker(node): 91 return color
92 93 return colorMaker 94
95 -def notPredicatGenerator(predicat):
96 def notpred(x): 97 return not predicat(x)
98 return notpred 99