def upload_newick(): #n = "_".join(request.vars.name.strip().split()) n = None age = request.vars.age.strip() if age: try: age = float(age) except: session.flash = "Age must be a number" s = request.vars.newick_string.strip() if s: r = None try: r = newick.parse(s) except: session.flash = "Problem with newick string" if r: m = current_model() m.treelist.append(s, name=n, age=age) t = m.treelist.trees[-1] t.parse() if not t.scaled: for n in t.root.iternodes(): if n.parent and (n.length is None): n.length = 1 t.calibrate() t.scaled = True t.newick = newick.tostring(t.root)+";" session.flash = "Branches without lengths assigned a value of 1" if not t.is_ultrametric(): session.flash = "Tree is not ultrametric" redirect(URL(r=request, f=request.vars.f or "index"))
def upload_newick(): #n = "_".join(request.vars.name.strip().split()) n = None age = request.vars.age.strip() if age: try: age = float(age) except: session.flash = "Age must be a number" s = request.vars.newick_string.strip() if s: r = None try: r = newick.parse(s) except: session.flash = "Problem with newick string" if r: m = current_model() m.treelist.append(s, name=n, age=age) t = m.treelist.trees[-1] t.parse() if not t.scaled: for n in t.root.iternodes(): if n.parent and (n.length is None): n.length = 1 t.calibrate() t.scaled = True t.newick = newick.tostring(t.root) + ";" session.flash = "Branches without lengths assigned a value of 1" if not t.is_ultrametric(): session.flash = "Tree is not ultrametric" redirect(URL(r=request, f=request.vars.f or "index"))
def parse(self, s=None): if s: self.newick = s self.root = newick.parse(self.newick) scaled = True for i, n in enumerate(self.root.iternodes(phylo.POSTORDER)): n.number = i if (not n.istip) and (not n.label): n.label = "N%s" % n.number n.age = None if n.parent and (n.length is None): scaled = False if scaled: for i, n in enumerate(self.root.iternodes(phylo.POSTORDER)): if n.length == 0: n.length = 1e-05 self.newick = newick.tostring(self.root) + ";" self.scaled = scaled
def parse(self, s=None): if s: self.newick = s self.root = newick.parse(self.newick) scaled = True for i, n in enumerate(self.root.iternodes(phylo.POSTORDER)): n.number = i if (not n.istip) and (not n.label): n.label = "N%s" % n.number n.age = None if n.parent and (n.length is None): scaled = False if scaled: for i, n in enumerate(self.root.iternodes(phylo.POSTORDER)): if n.length == 0: n.length = 1e-05 self.newick = newick.tostring(self.root)+";" self.scaled = scaled