import json
from lazysignup.decorators import allow_lazy_user
from lazysignup.utils import is_lazy_user
+import random
res_codes = [
# 20 canonical amino acids
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)
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])
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
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"]
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"]
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"]
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)
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"]
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'
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)
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"]
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'
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)
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"]
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'
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':'FF2',
+ '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
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"]
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"]
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'
else:
return redirect('/')
else:
- if task.unres_ff == 'FF2':
+ 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':