From 09ac4e3f826a0db6a950fe125bbea6c5286fbe27 Mon Sep 17 00:00:00 2001 From: Cezary Czaplewski Date: Tue, 4 Feb 2020 16:59:19 +0100 Subject: [PATCH] docking working version --- django_simple/todo/forms.py | 85 +++++++++++++++++++++++++++ django_simple/todo/jobfiles.py | 12 +++- django_simple/todo/templates/changelog.html | 6 ++ django_simple/todo/templates/edit.html | 6 +- django_simple/todo/views.py | 68 ++++++++++++++------- files/generator_v12a | Bin 0 -> 35584 bytes files/generator_v7 | Bin 27173 -> 0 bytes files/pbs8.csh | 4 ++ files/pbs8_new.csh | 3 + files/pbs8_newct-9p.csh | 3 + 10 files changed, 162 insertions(+), 25 deletions(-) create mode 100755 files/generator_v12a delete mode 100755 files/generator_v7 diff --git a/django_simple/todo/forms.py b/django_simple/todo/forms.py index 0feee49..04de3b2 100644 --- a/django_simple/todo/forms.py +++ b/django_simple/todo/forms.py @@ -554,6 +554,91 @@ class TaskForm_dock(forms.Form): if msg != '': self.add_error('file2',msg) +class TaskForm_dock_a(forms.Form): + name = forms.CharField(max_length=40,widget=forms.TextInput(attrs={'size':40, 'maxlength':40})) + + file1 = forms.FileField(label='Upload a PDB file1',required=False, + help_text='starting structure for chain1') + pdbid = forms.CharField(min_length=4,max_length=6,required=False, + widget=forms.TextInput(attrs={'size':6, 'maxlength':6, 'title':'PDB code or PDB code:chain id'}), + label='or PDB code (:chain)') + + + file2 = forms.FileField(label='Upload a PDB file2',required=False, + help_text='starting structure for chain2') + pdbid2 = forms.CharField(min_length=4,max_length=6,required=False, + widget=forms.TextInput(attrs={'size':6, 'maxlength':6, 'title':'PDB code or PDB code:chain id'}), + label='or PDB code (:chain)') + + + md_nstep = forms.IntegerField(label='NSTEP',initial=200000, + help_text='total number of steps', max_value=10000000) + md_seed = forms.IntegerField(label='SEED',initial=-39912345, + help_text='seed for random number generator') + + + unres_ff = forms.ChoiceField(choices=FF_CHOICE,widget=forms.RadioSelect, + label='Force Field',initial='FF2') + + md_ntwe = forms.IntegerField(label='NTWE',initial=1000, + help_text='write statfile every ntwe steps') + md_dt = forms.FloatField(label='DT',initial=0.2, + help_text='time step [mtu = 48.9 fs]') + md_lang = forms.ChoiceField(choices=MD_LANG,label='thermostat') + md_tau = forms.FloatField(label='tau_bath',initial=1.0, + help_text='coupling to the thermal bath (Berendsen)') + md_scal_fric = forms.FloatField(label='scal_froc',initial=0.02, + help_text='scaling of the friction coefficients (Langevin)') + min_maxfun = forms.IntegerField(label='MAXFUN',initial=5000, + help_text='preminim maximum number of function evaluations
'+ + 'used for start from pdb or random start') + remd_nrep = forms.IntegerField(label='NREP',initial=8, + help_text='number of replicas') + remd_nstex = forms.IntegerField(label='NSTEX',initial=1000, + help_text='exchange and write trajectory every nstex steps') + md_ntwx = forms.IntegerField(label='NTWX',initial=1000,min_value=100, + help_text='write trajectory every ntwx steps') + remd_cluter_temp = forms.FloatField(label='TEMPER', + help_text='temperature for cluster analysis',initial=280) + + + def clean(self): + cleaned_data = super(TaskForm_dock_a, self).clean() + + file1 = cleaned_data.get("file1") + pdbid = cleaned_data.get("pdbid") + file2 = cleaned_data.get("file2") + pdbid2 = cleaned_data.get("pdbid2") + + + if not (file1 or pdbid): + msg = 'no PDB file or code for chain1' + self.add_error('file1', msg) + + if not (file2 or pdbid2): + msg = 'no PDB file or code for chain2' + self.add_error('file2', msg) + + if pdbid: + msg=pdb_code_chain(pdbid) + if msg != '': + self.add_error('pdbid',msg) + + if file1: + msg=pdb_missing_res_chain(file1,'') + if msg != '': + self.add_error('file1',msg) + + if pdbid2: + msg=pdb_code_chain(pdbid2) + if msg != '': + self.add_error('pdbid2',msg) + + if file2: + msg=pdb_missing_res_chain(file2,'') + if msg != '': + self.add_error('file2',msg) + class TaskForm_list(forms.Form): name = forms.CharField(max_length=40,disabled=True,required=False) diff --git a/django_simple/todo/jobfiles.py b/django_simple/todo/jobfiles.py index e38d7ae..9855b31 100644 --- a/django_simple/todo/jobfiles.py +++ b/django_simple/todo/jobfiles.py @@ -272,7 +272,7 @@ CUTOFF=7.00000 WCORR4=0.00000""" if instance.type == 'min' or instance.md_start == 'pdbstart': if instance.type == 'dock': - f.write('model01.pdb\n') + f.write('plik1ter.pdb\n') else: f.write('plik.pdb\n') f.write(write_ssbond(instance.ssbond)) @@ -408,7 +408,10 @@ CUTOFF=7.00000 WCORR4=0.00000""" f2.write(line.replace('$ssbond',tmp_ss)) elif 'cd $PBS_O_WORKDIR' in line and instance.type == 'dock': f2.write(line) - f2.write('../files/generator_v7 plik.pdb plik2.pdb\n') + f2.write('../files/generator_v12a plik.pdb plik2.pdb 0 \n') + f2.write("sed '/END/q' plik.pdb |grep ATOM > plik1ter.pdb \n") + f2.write("echo TER >> plik1ter.pdb \n") + f2.write("sed '/END/q' plik2.pdb |grep ATOM >> plik1ter.pdb \n") else: tmp1=json.loads(instance.remd_multi_t) f2.write(line.replace('$temperatures','"'+" ".join(tmp1)+'" '+str(nreplicas))) @@ -497,7 +500,10 @@ CUTOFF=7.00000 WCORR4=0.00000""" f.write('file_MD000\n') if instance.md_pdbref: f.write('pdbref\n') - f.write('plik.pdb\n') + if instance.type == 'dock': + f.write('plik1ter.pdb\n') + else: + f.write('plik.pdb\n') with open(instance.jobdirname+'/file_cluster.inp','w') as f: diff --git a/django_simple/todo/templates/changelog.html b/django_simple/todo/templates/changelog.html index dc129c1..6edd189 100644 --- a/django_simple/todo/templates/changelog.html +++ b/django_simple/todo/templates/changelog.html @@ -71,6 +71,12 @@ The scale-consistent NEWCT-9P force field added in advanced mode.
+
4.02.2020
+
+ A beta version of docking of two proteins with random starting orientations + added.
+
+ diff --git a/django_simple/todo/templates/edit.html b/django_simple/todo/templates/edit.html index 626cccb..9e7ce80 100644 --- a/django_simple/todo/templates/edit.html +++ b/django_simple/todo/templates/edit.html @@ -6,7 +6,9 @@

Choose type of simulation:  

- +
+
+
{% if basic_adv %}
{% csrf_token %} @@ -73,7 +75,7 @@ {% endif %} - +

diff --git a/django_simple/todo/views.py b/django_simple/todo/views.py index 092b9bd..6e8b105 100644 --- a/django_simple/todo/views.py +++ b/django_simple/todo/views.py @@ -718,7 +718,7 @@ 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} + data= {'name':task.name,'pdbid':'1BON:A','pdbid2':'1BON:B','md_seed':-12396738,'md_nstep':500000} form = TaskForm_dock(initial=data) else: form = TaskForm_dock(request.POST,request.FILES) @@ -746,6 +746,7 @@ def add_dock(request,task_id): task.md_ntwx=task.remd_nstex task.md_start="pdbstart" + task.remd_multi_m='["3", "3", "3", "3", "3", "3", "3", "3"]' task.md_pdbref=True task.md_respa=False task.ssbond="" @@ -768,6 +769,7 @@ def add_dock(request,task_id): task.md_seed=form.cleaned_data["md_seed"] task.md_nstep=form.cleaned_data["md_nstep"] + task.md_total_steps=task.md_nstep if any(c.islower() for c in seq): task.md_respa=False @@ -795,13 +797,12 @@ def add_dock_a(request,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) + form = TaskForm_dock_a(initial=data) else: - form = TaskForm_remd(request.POST,request.FILES) + form = TaskForm_dock_a(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"] + task.type="dock" basename = str(task.owner) suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") @@ -813,23 +814,52 @@ def add_dock_a(request,task_id): task.pdbcode=pdbid else: task.myfile1=form.cleaned_data["file1"] - task.md_pdbref=form.cleaned_data["md_pdbref"] - task.md_ntwx=task.remd_nstex + + 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="" - if task.md_start == "pdbstart" or task.md_pdbref: - seq,task.ssbond=from_pdb(task.myfile1) + + 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=seq_add_x(form.cleaned_data["md_seq"]) + seq=seq1+'X'+seq2 + 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"] + task.md_total_steps=task.md_nstep + + task.md_dt=form.cleaned_data["md_dt"] + 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.md_ntwe=form.cleaned_data["md_ntwe"] + + task.remd_cluter_temp=form.cleaned_data["remd_cluter_temp"] + task.unres_ff=form.cleaned_data["unres_ff"] if any(c.islower() for c in seq): task.md_respa=False @@ -840,13 +870,11 @@ def add_dock_a(request,task_id): task.save() - if is_lazy_user(request.user): - return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/') - else: - return redirect('/') + return redirect('addmlist',task_id=task.id) + else: data= {'name':task.name,'md_seed':-random.randint(10000000,99999999)} - form = TaskForm_remd(initial=data) + form = TaskForm_dock_a(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}) @@ -1062,7 +1090,7 @@ def refresh_done0(task): task.results_text=text - if task.md_pdbref and task.type=='remd': + if task.md_pdbref and task.type=='remd' or task.type=='dock': for i in range(1,6): try: @@ -1104,7 +1132,7 @@ def refresh_done0(task): - if task.type=='remd': + if task.type=='remd' or task.type=='dock': with open(task.jobdirname+'/file_cluster_clust.out_000', 'r') as f: for line in f: diff --git a/files/generator_v12a b/files/generator_v12a new file mode 100755 index 0000000000000000000000000000000000000000..091190afeb73ef094a81054e72a407cb81b907ca GIT binary patch literal 35584 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 literal 0 HcmV?d00001 diff --git a/files/generator_v7 b/files/generator_v7 deleted file mode 100755 index f12d7c92fbdd03ed451693af2fe838173812abd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27173 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 IE7|P-14voN@Bjb+ diff --git a/files/pbs8.csh b/files/pbs8.csh index 650f7f9..f554a0b 100755 --- a/files/pbs8.csh +++ b/files/pbs8.csh @@ -96,9 +96,13 @@ endif if ( `grep -c pdbref file.inp` ) then awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' plik.pdb > tmp.pdb + if ( -f "plik1ter.pdb" ) then + grep -v TER plik1ter.pdb | awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' > tmp.pdb + endif /users2/local/mmtsb/perl/convpdb.pl -renumber 1 -out generic tmp.pdb > plik1.pdb rm tmp.pdb + /users2/local/bin/tmscore MODEL1.pdb plik1.pdb > tmscore1.out /users2/local/bin/tmscore MODEL2.pdb plik1.pdb > tmscore2.out /users2/local/bin/tmscore MODEL3.pdb plik1.pdb > tmscore3.out diff --git a/files/pbs8_new.csh b/files/pbs8_new.csh index ec056c1..cdd73f6 100755 --- a/files/pbs8_new.csh +++ b/files/pbs8_new.csh @@ -96,6 +96,9 @@ endif if ( `grep -c pdbref file.inp` ) then awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' plik.pdb > tmp.pdb + if ( -f "plik1ter.pdb" ) then + grep -v TER plik1ter.pdb | awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' > tmp.pdb + endif /users2/local/mmtsb/perl/convpdb.pl -renumber 1 -out generic tmp.pdb > plik1.pdb rm tmp.pdb diff --git a/files/pbs8_newct-9p.csh b/files/pbs8_newct-9p.csh index bb332fd..49083e0 100755 --- a/files/pbs8_newct-9p.csh +++ b/files/pbs8_newct-9p.csh @@ -96,6 +96,9 @@ endif if ( `grep -c pdbref file.inp` ) then awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' plik.pdb > tmp.pdb + if ( -f "plik1ter.pdb" ) then + grep -v TER plik1ter.pdb | awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' > tmp.pdb + endif /users2/local/mmtsb/perl/convpdb.pl -renumber 1 -out generic tmp.pdb > plik1.pdb rm tmp.pdb -- 1.7.9.5