def report_check_res(ins_dict,path_dict): import draw_plasmid as dp vector_path_gb=path_dict["vector_path_gb"] vector_rep_seq=str(dp.plasmid(vector_path_gb).record.seq) re_names=ins_dict["vec_re_names"]+\ [ins_dict["utr_5_re_name"]]+[ins_dict["utr_3_re_name"]] repeat_list=[]#record the repeat enzymes for re_name in set(re_names): re_seq=re.sub(r"'","",RE_dict[re_name]) re_pattern=dp.deg_pattern(re_seq) if re.search(re_pattern,vector_rep_seq,re.I): repeat_list.append(re_name) if repeat_list: return "warning","The restriction enzymes used to build the construct.",\ "The REs you have used are %s."%", ".join(set(re_names)),\ "%s still exist in your construct, please be careful."%", ".join(repeat_list) else: return "check","The restriction enzymes used to build the construct.",\ "The REs you have used are %s."%", ".join(set(re_names)),\ "None of them will cut your construct, it is safe to use."
user_name="test_user" if form.has_key("advance"): modi_headline=change_headline_color(modi_headline_list[0])\ +modi_headline_list[1]+modi_headline_list[2] button_name="goto_advance" else: modi_headline=change_headline_color(modi_headline_list[0])\ +modi_headline_list[2] button_name="goto_review" #decide whether to go to advanced mode vector_path=form["vector"].value task_name=form.getvalue("task_name") ins_name=form.getvalue("ins_name") vec_name=re.search(r'.+/(.+?)\.gb$',vector_path).group(1) out_path="tmp/"+user_name+"___"+re.sub(r"\.","",str(time.time()))+"/" os.mkdir(out_path) vector_um=dp.plasmid(vector_path,out_path=out_path,step_name="goto_modification")#vector_um:unmodified vector # open("./"+"test.txt","w").write(str(vector_um.get_mcs())) mcs_dict=vector_um.get_mcs() mcs_path=vector_um.draw_mcs() vector_um.organize() mcs_ac=[] for start_pos,end_pos,RE_name,RE_seq in mcs_dict["RE_list"]: RE_seq=re.sub("'","|",vector_um.RE_dict[RE_name]) mcs_ac.append(dict(value=str(start_pos), label=str(start_pos)+": "+RE_name+"("+RE_seq+")", desc=RE_name+"("+RE_seq+")")) mcs_dict["mcs_ac"]=sorted(mcs_ac,key=lambda x:int(x["value"])) vector_um_path= vector_um.draw()#this function returns the path of figure if not form["5utr"].value: utr_5=""