Exemplo n.º 1
0
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."
Exemplo n.º 2
0
    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=""