X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=django_simple%2Ftodo%2Fviews.py;h=33276acee3b1973d718ae0707fcea2a3d0f1b5bd;hb=03c96699333f5c45ba11d3e1da84b4f471e52ace;hp=0387f2944024676fa3583588253d06399518575e;hpb=a6e111e381a874bd15dd6dcb33fdeb18079e3286;p=django_unres.git diff --git a/django_simple/todo/views.py b/django_simple/todo/views.py index 0387f29..33276ac 100644 --- a/django_simple/todo/views.py +++ b/django_simple/todo/views.py @@ -9,6 +9,7 @@ import subprocess import json from lazysignup.decorators import allow_lazy_user from lazysignup.utils import is_lazy_user +import random res_codes = [ # 20 canonical amino acids @@ -29,6 +30,27 @@ res_codes = [ three_to_one = dict(res_codes) +def load_pdbid(pdbid,dirname): + os.mkdir(dirname) + if len(pdbid)==4: + file,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', + dirname+'/plik.pdb') + else: + chain=pdbid[5] + pdbid=pdbid[:4] + pdb_tmp=urllib.urlopen('http://files.rcsb.org/download/'+pdbid+'.pdb') + with open(dirname+'/plik.pdb', 'w') as outfile: + for line in pdb_tmp: + if line[0:6] == 'SSBOND' and line[15] == chain and line[29] == chain: + outfile.write(line) + if line[0:6] == 'ATOM ' and line[21] == chain: + outfile.write(line) + pdb_tmp.close() + file=dirname+'/plik.pdb' + + return(file) + + def seq_2d_from_pdb(seq_2d,seq): if seq_2d =='': return(seq_2d) @@ -39,7 +61,7 @@ def seq_2d_from_pdb(seq_2d,seq): if seq[i]=='X': seq_2d_tmp=seq_2d_tmp+'-' else: - if len(seq_2d)>=ii: + if len(seq_2d)>ii: seq_2d_tmp=seq_2d_tmp+seq_2d[ii] ii+=1 tmp='' @@ -82,7 +104,7 @@ def from_pdb(file): unres_shift = {} chain_sorted=[] newchain = True - + i='' for line in file: if line[0:6] == 'ATOM ' and line[13:15] == 'CA': aa = three_to_one.get(line[17:20]) @@ -95,7 +117,7 @@ def from_pdb(file): chain_start[ch]=i chain_sorted.extend(ch) newchain = False - if line[0:3] == 'TER': + if line[0:3] == 'TER' and i != '': sequence.append('XX') chain_end[ch]=i newchain = True @@ -171,9 +193,7 @@ def add_min(request,task_id): task.jobdirname = "_".join([basename, suffix]) if pdbid: - os.mkdir(task.jobdirname) - task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', - task.jobdirname+'/plik.pdb') + task.myfile1=load_pdbid(pdbid,task.jobdirname) task.pdbcode=pdbid else: task.myfile1=form.cleaned_data["file1"] @@ -209,7 +229,7 @@ def add_min_a(request,task_id): if form.is_valid(): task.name=form.cleaned_data["name"] task.type="min" - task.min_choice=form.cleaned_data["min_choice"] +# task.min_choice=form.cleaned_data["min_choice"] task.min_overlap=form.cleaned_data["min_overlap"] task.min_searchsc=form.cleaned_data["min_searchsc"] task.min_maxmin=form.cleaned_data["min_maxmin"] @@ -222,9 +242,7 @@ def add_min_a(request,task_id): pdbid=form.cleaned_data["pdbid"] if pdbid: - os.mkdir(task.jobdirname) - task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', - task.jobdirname+'/plik.pdb') + task.myfile1=load_pdbid(pdbid,task.jobdirname) task.pdbcode=pdbid else: task.myfile1=form.cleaned_data["file1"] @@ -260,7 +278,7 @@ def add_md(request,task_id): if request.method == 'POST': if '_example' in request.POST: data= {'name':task.name,'pdbid':'1IGD','md_start':'pdbstart', - 'md_pdbref':True,'md_temp':200} + 'md_pdbref':True,'md_temp':200,'md_seed':-39912345} form = TaskForm_md(initial=data) else: form = TaskForm_md(request.POST,request.FILES) @@ -278,9 +296,7 @@ def add_md(request,task_id): pdbid=form.cleaned_data["pdbid"] if pdbid: - os.mkdir(task.jobdirname) - task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', - task.jobdirname+'/plik.pdb') + task.myfile1=load_pdbid(pdbid,task.jobdirname) task.pdbcode=pdbid else: task.myfile1=form.cleaned_data["file1"] @@ -306,7 +322,7 @@ def add_md(request,task_id): else: return redirect('/') else: - data= {'name':task.name} + data= {'name':task.name,'md_seed':-random.randint(10000000,99999999)} form = TaskForm_md(initial=data) basic_adv=True p_type='molecular dynamics' @@ -318,7 +334,7 @@ def add_md_a(request,task_id): if request.method == 'POST': if '_example' in request.POST: data= {'name':task.name,'pdbid':'1L2Y','md_start':'extconf', - 'md_pdbref':True,'md_mdpdb':True} + 'md_pdbref':True,'md_mdpdb':True,'md_seed':-39912345} form = TaskForm_md_a(initial=data) else: form = TaskForm_md_a(request.POST,request.FILES) @@ -332,9 +348,7 @@ def add_md_a(request,task_id): pdbid=form.cleaned_data["pdbid"] if pdbid: - os.mkdir(task.jobdirname) - task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', - task.jobdirname+'/plik.pdb') + task.myfile1=load_pdbid(pdbid,task.jobdirname) task.pdbcode=pdbid else: task.myfile1=form.cleaned_data["file1"] @@ -381,7 +395,7 @@ def add_md_a(request,task_id): else: return redirect('/') else: - data= {'name':task.name} + data= {'name':task.name,'md_seed':-random.randint(10000000,99999999)} form = TaskForm_md_a(initial=data) basic_adv=False p_type='molecular dynamics - advanced options' @@ -392,7 +406,7 @@ def add_remd(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': if '_example' in request.POST: - data= {'name':task.name,'pdbid':'1L2Y','md_pdbref':True} + data= {'name':task.name,'pdbid':'1L2Y','md_pdbref':True,'md_seed':-39912345} form = TaskForm_remd(initial=data) else: form = TaskForm_remd(request.POST,request.FILES) @@ -407,9 +421,7 @@ def add_remd(request,task_id): pdbid=form.cleaned_data["pdbid"] if pdbid: - os.mkdir(task.jobdirname) - task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', - task.jobdirname+'/plik.pdb') + task.myfile1=load_pdbid(pdbid,task.jobdirname) task.pdbcode=pdbid else: task.myfile1=form.cleaned_data["file1"] @@ -441,7 +453,7 @@ def add_remd(request,task_id): else: return redirect('/') else: - data= {'name':task.name} + data= {'name':task.name,'md_seed':-random.randint(10000000,99999999)} form = TaskForm_remd(initial=data) basic_adv=True p_type='replica exchange molecular dynamics' @@ -453,13 +465,15 @@ def add_remd_a(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': if '_example' in request.POST: - data= {'name':task.name,'pdbid':'1E0G','md_pdbref':True, - 'md_nstep':500000,'md_lang':'berendsen','unres_ff':'opt-wtfsa-2', - 'remd_cluter_temp':280} - form = TaskForm_remd_a(initial=data) + data= {'name':task.name,'pdbid':'5G3Q:B','md_pdbref':True, + 'md_nstep':2000000,'md_lang':'berendsen','unres_ff':'FF2','md_seed':-39912345, + 'remd_cluter_temp':290,'md_2d':'--EEEEEEE------EEEEEE------EEEEEE------HHHHHHHHHHH---HHHHHHHHHHHHHHHHHHHHHHH---'} + form = TaskForm_remd_a(initial=data) + task.example='casp12' + task.save() elif '_example_saxs' in request.POST: data= {'name':task.name,'pdbid':'5UJQ','md_pdbref':True, - 'md_nstep':200000,'md_lang':'langevin','unres_ff':'E0LL2Y', + 'md_nstep':200000,'md_lang':'langevin','unres_ff':'FF2','md_seed':-39912345, 'remd_cluter_temp':270, 'scal_rad':4.0,'wsaxs':100.0,'saxs_data': """ 0.5 1.33868e-02 @@ -500,6 +514,112 @@ def add_remd_a(request,task_id): 35.5 3.30592e-04 36.5 1.38359e-04"""} form = TaskForm_remd_a(initial=data) + elif '_example_saxs1' in request.POST: + data= {'name':task.name,'pdbid':'2KMS','md_pdbref':True,'md_start':'pdbstart', + 'md_2d':'----EEEEEE-EEEEE-------EEEEEEEEE--EEEEEE-EEEE---EEEEEEEEE-----EEEEEEE-EEE-HHHHH-EEEE-EEEEEEEEE----EEEEEE---EEE-----', + 'md_nstep':200000,'md_lang':'langevin','unres_ff':'FF2','md_seed':-39912345, + 'remd_cluter_temp':280, 'min_maxfun':50, + 'scal_rad':5.0,'wsaxs':1000.0,'saxs_data': +"""0.7100E-00 0.2036E-03 +0.1420E+01 0.4221E-03 +0.2130E+01 0.6548E-03 +0.2840E+01 0.9001E-03 +0.3550E+01 0.1156E-02 +0.4260E+01 0.1421E-02 +0.4970E+01 0.1692E-02 +0.5680E+01 0.1965E-02 +0.6390E+01 0.2239E-02 +0.7100E+01 0.2509E-02 +0.7810E+01 0.2772E-02 +0.8520E+01 0.3025E-02 +0.9230E+01 0.3265E-02 +0.9940E+01 0.3489E-02 +0.1065E+02 0.3694E-02 +0.1136E+02 0.3878E-02 +0.1207E+02 0.4039E-02 +0.1278E+02 0.4177E-02 +0.1349E+02 0.4289E-02 +0.1420E+02 0.4377E-02 +0.1491E+02 0.4439E-02 +0.1562E+02 0.4478E-02 +0.1633E+02 0.4493E-02 +0.1704E+02 0.4487E-02 +0.1775E+02 0.4461E-02 +0.1846E+02 0.4418E-02 +0.1917E+02 0.4361E-02 +0.1988E+02 0.4291E-02 +0.2059E+02 0.4211E-02 +0.2130E+02 0.4125E-02 +0.2201E+02 0.4034E-02 +0.2272E+02 0.3942E-02 +0.2343E+02 0.3850E-02 +0.2414E+02 0.3761E-02 +0.2485E+02 0.3677E-02 +0.2556E+02 0.3598E-02 +0.2627E+02 0.3526E-02 +0.2698E+02 0.3462E-02 +0.2769E+02 0.3405E-02 +0.2840E+02 0.3356E-02 +0.2911E+02 0.3315E-02 +0.2982E+02 0.3280E-02 +0.3053E+02 0.3251E-02 +0.3124E+02 0.3226E-02 +0.3195E+02 0.3205E-02 +0.3266E+02 0.3186E-02 +0.3337E+02 0.3167E-02 +0.3408E+02 0.3147E-02 +0.3479E+02 0.3125E-02 +0.3550E+02 0.3099E-02 +0.3621E+02 0.3068E-02 +0.3692E+02 0.3031E-02 +0.3763E+02 0.2987E-02 +0.3834E+02 0.2937E-02 +0.3905E+02 0.2878E-02 +0.3976E+02 0.2812E-02 +0.4047E+02 0.2739E-02 +0.4118E+02 0.2658E-02 +0.4189E+02 0.2571E-02 +0.4260E+02 0.2478E-02 +0.4331E+02 0.2381E-02 +0.4402E+02 0.2279E-02 +0.4473E+02 0.2174E-02 +0.4544E+02 0.2068E-02 +0.4615E+02 0.1960E-02 +0.4686E+02 0.1853E-02 +0.4757E+02 0.1748E-02 +0.4828E+02 0.1644E-02 +0.4899E+02 0.1544E-02 +0.4970E+02 0.1447E-02 +0.5041E+02 0.1355E-02 +0.5112E+02 0.1267E-02 +0.5183E+02 0.1184E-02 +0.5254E+02 0.1106E-02 +0.5325E+02 0.1033E-02 +0.5396E+02 0.9646E-03 +0.5467E+02 0.9008E-03 +0.5538E+02 0.8411E-03 +0.5609E+02 0.7852E-03 +0.5680E+02 0.7327E-03 +0.5751E+02 0.6831E-03 +0.5822E+02 0.6360E-03 +0.5893E+02 0.5909E-03 +0.5964E+02 0.5475E-03 +0.6035E+02 0.5055E-03 +0.6106E+02 0.4646E-03 +0.6177E+02 0.4245E-03 +0.6248E+02 0.3853E-03 +0.6319E+02 0.3467E-03 +0.6390E+02 0.3089E-03 +0.6461E+02 0.2719E-03 +0.6532E+02 0.2357E-03 +0.6603E+02 0.2007E-03 +0.6674E+02 0.1669E-03 +0.6745E+02 0.1345E-03 +0.6816E+02 0.1038E-03 +0.6887E+02 0.7482E-04 +0.6958E+02 0.4782E-04 +0.7029E+02 0.2286E-04"""} + form = TaskForm_remd_a(initial=data) else: form = TaskForm_remd_a(request.POST,request.FILES) if form.is_valid(): @@ -512,9 +632,7 @@ def add_remd_a(request,task_id): pdbid=form.cleaned_data["pdbid"] if pdbid: - os.mkdir(task.jobdirname) - task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', - task.jobdirname+'/plik.pdb') + task.myfile1=load_pdbid(pdbid,task.jobdirname) task.pdbcode=pdbid else: task.myfile1=form.cleaned_data["file1"] @@ -541,6 +659,7 @@ def add_remd_a(request,task_id): task.md_lang=form.cleaned_data["md_lang"] task.md_tau=form.cleaned_data["md_tau"] task.md_scal_fric=form.cleaned_data["md_scal_fric"] + task.min_maxfun=form.cleaned_data["min_maxfun"] task.remd_nrep=form.cleaned_data["remd_nrep"] task.remd_nstex=form.cleaned_data["remd_nstex"] task.md_ntwx=form.cleaned_data["md_ntwx"] @@ -563,7 +682,7 @@ def add_remd_a(request,task_id): task.save() return redirect('addmlist',task_id=task.id) else: - data= {'name':task.name} + data= {'name':task.name,'md_seed':-random.randint(10000000,99999999)} form = TaskForm_remd_a(initial=data) basic_adv=False p_type='replica exchange molecular dynamics - advanced options' @@ -585,7 +704,13 @@ def addmlist(request,task_id): else: return redirect('/') else: - if task.unres_ff == 'E0LL2Y': + if task.example == 'casp12': + data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing': + '["2", "2", "2", "2", "2", "2", "2", "2"]', + 'temperatures': + '["270", "280", "290", "300", "310", "320", "330", "340"]' + } + elif task.unres_ff == 'FF2': data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing': '["1", "1", "1", "1", "1", "1", "1", "1"]', 'temperatures':