+def add_dock(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_seed':-39912345}
+ form = TaskForm_dock(initial=data)
+ else:
+ form = TaskForm_dock(request.POST,request.FILES)
+ if form.is_valid():
+ task.name=form.cleaned_data["name"]
+ task.type="dock"
+
+ basename = str(task.owner)
+ suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
+ task.jobdirname = "_".join([basename, suffix])
+
+ pdbid=form.cleaned_data["pdbid"]
+ if pdbid:
+ task.myfile1=load_pdbid(pdbid,task.jobdirname)
+ task.pdbcode=pdbid
+ else:
+ task.myfile1=form.cleaned_data["file1"]
+
+ pdbid2=form.cleaned_data["pdbid2"]
+ if pdbid2:
+ task.myfile2=load_pdbid(pdbid2,task.jobdirname,'plik2.pdb')
+ task.pdbcode2=pdbid2
+ else:
+ task.myfile2=form.cleaned_data["file2"]
+
+ task.md_ntwx=task.remd_nstex
+ task.md_start="pdbstart"
+ task.md_pdbref=True
+ task.md_respa=False
+ task.ssbond=""
+
+ task.md_seq=""
+
+ seq1,ssbond1=from_pdb(task.myfile1)
+ seq2,ssbond2=from_pdb(task.myfile2)
+
+ if seq1[-1]=='X' and seq2[0]=='X':
+ seq=seq1+seq2
+ elif seq1[-1]!='X' and seq2[0]!='X':
+ seq=seq1+'XX'+seq2
+ else:
+ seq=seq1+'X'+seq2
+
+ for i in range(0,len(seq),40):
+ task.md_seq=task.md_seq+seq[i:i+40]+" "
+
+ task.md_seed=form.cleaned_data["md_seed"]
+
+ task.md_nstep=form.cleaned_data["md_nstep"]
+
+ if any(c.islower() for c in seq):
+ task.md_respa=False
+ task.damino=True
+
+
+ task.ready=True
+
+
+ task.save()
+ if is_lazy_user(request.user):
+ return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/')
+ else:
+ return redirect('/')
+ else:
+ data= {'name':task.name,'md_seed':-random.randint(10000000,99999999)}
+ form = TaskForm_dock(initial=data)
+ basic_adv=True
+ p_type='docking'
+ return render(request, 'edit.html', {'form': form, 'task':task, 'basic_adv':basic_adv, 'p_type':p_type})
+
+@login_required
+def add_dock_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':'1L2Y','md_pdbref':True,'md_seed':-39912345}
+ form = TaskForm_remd(initial=data)
+ else:
+ form = TaskForm_remd(request.POST,request.FILES)
+ if form.is_valid():
+ task.name=form.cleaned_data["name"]
+ task.type="remd"
+ task.md_start=form.cleaned_data["md_start"]
+
+ basename = str(task.owner)
+ suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
+ task.jobdirname = "_".join([basename, suffix])
+
+ pdbid=form.cleaned_data["pdbid"]
+ if pdbid:
+ task.myfile1=load_pdbid(pdbid,task.jobdirname)
+ task.pdbcode=pdbid
+ else:
+ task.myfile1=form.cleaned_data["file1"]
+ task.md_pdbref=form.cleaned_data["md_pdbref"]
+ task.md_ntwx=task.remd_nstex
+
+ task.md_seq=""
+ if task.md_start == "pdbstart" or task.md_pdbref:
+ seq,task.ssbond=from_pdb(task.myfile1)
+ else:
+ seq=seq_add_x(form.cleaned_data["md_seq"])
+ for i in range(0,len(seq),40):
+ task.md_seq=task.md_seq+seq[i:i+40]+" "
+
+ if task.md_start != "pdbstart":
+ task.ssbond=''
+
+ task.md_seed=form.cleaned_data["md_seed"]
+
+ task.md_nstep=form.cleaned_data["md_nstep"]
+
+ if any(c.islower() for c in seq):
+ task.md_respa=False
+ task.damino=True
+
+
+ task.ready=True
+
+
+ task.save()
+ if is_lazy_user(request.user):
+ return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/')
+ else:
+ return redirect('/')
+ else:
+ data= {'name':task.name,'md_seed':-random.randint(10000000,99999999)}
+ form = TaskForm_remd(initial=data)
+ basic_adv=False
+ p_type='docking - advanced options'
+ return render(request, 'edit.html', {'form': form, 'task':task, 'basic_adv':basic_adv, 'p_type':p_type})
+
+
+
+@login_required