def get_extended_sbol(db, part_id, rule = "RFC10"): user_part = db.getUserPart(part_id) print user_part table = user_part["part_type"] model_param = None if table != "Coding": model_param = db.select_with_name(table, user_part["Number"]) component = json.loads(user_part["parts"]) sys_comp = filter(lambda x: x[0:3] == "BBa", component) sys_comp = [find_file(x+".xml", ".") for x in sys_comp] content = union(rule, sys_comp) print content cnt = 0 offset = 0 intermediat = len(getattr(__import__("component_union"), rule).intermediat) for i in xrange(len(component)): if component[i][0:3] == "BBa": content[cnt]["seq"]["bioStart"] += offset content[cnt]["seq"]["bioEnd"] += offset cnt += 1 else: offset += len(component[i]) if i > 0: offset += intermediat header = extend(user_part, model_param) print component dna_sequence = get_new_part_sequence(component, rule) sbol = formatter_v11(content, dna_sequence, header) return sbol
def getNewPartSequence(self,message): if message.has_key("rule"): rule = message["rule"] else: rule = "RFC10" return get_new_part_sequence(json.loads(message['data']), rule)