From: Cezary Czaplewski Date: Wed, 16 Oct 2019 11:50:39 +0000 (+0200) Subject: NEWCT-9P force field X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=commitdiff_plain;h=e6952112c3c270c93a61b721cd8840b483a52621;p=django_unres.git NEWCT-9P force field --- diff --git a/django_simple/todo/jobfiles.py b/django_simple/todo/jobfiles.py index ee1ed09..32deb54 100644 --- a/django_simple/todo/jobfiles.py +++ b/django_simple/todo/jobfiles.py @@ -90,6 +90,12 @@ WSCLOC=0.10554 WTOR=1.34316 WTORD=1.26571 WCORRH=0.19212 WCORR5=0.00000 & WCORR6=0.00000 WEL_LOC=0.37357 WTURN3=1.40323 WTURN4=0.64673 WTURN6=0.00000 & WVDWPP=0.23173 WHPB=1.00000 WSCCOR=0.25 & CUTOFF=7.00000 WCORR4=0.00000""" + elif instance.unres_ff =='NEWCT-9P': + w="""WSC=0.81230 WSCP=1.20420 WELEC=0.87690 WBOND=1.00000 WANG=1.97730 & +WSCLOC=0.063657 WTOR=1.41540 WTORD=0.00000 WCORRH=0.00000 WCORR5=0.00000 & +WCORR6=0.00000 WEL_LOC=0.036638 WTURN3=1.45110 WTURN4=0.00000 WTURN6=0.00000 & +WSCCOR=0.00000 WVDWPP=0.33393 WHPB=1.00000 WSCP14=0.00000 & +CUTOFF=7.00000 WCORR4=0.00000""" else: w="""WSC=0.82686 WSCP=0.96947 WELEC=0.79373 WBOND=1.00000 WANG=0.46542 & WSCLOC=0.07969 WTOR=0.81684 WTORD=0.67806 WCORRH=0.00000 WCORR5=0.00000 & @@ -117,6 +123,8 @@ CUTOFF=7.00000 WCORR4=0.00000""" control_line = control_line+'pdbout ' if instance.min_unres_pdb: control_line = control_line+'unres_pdb ' + if instance.unres_ff =='NEWCT-9P': + control_line = control_line+'tormode=2 ' type_line = 'print_min_ini print_min_res print_min_stat'\ +' MAXMIN='+str(instance.min_maxmin)\ @@ -146,6 +154,9 @@ CUTOFF=7.00000 WCORR4=0.00000""" if instance.md_pdbref: control_line = control_line+'pdbref ' + + if instance.unres_ff =='NEWCT-9P': + control_line = control_line+'tormode=2 ' type_line = ' reset_vel=0'\ +' t_bath='+str(instance.md_temp)\ @@ -176,6 +187,9 @@ CUTOFF=7.00000 WCORR4=0.00000""" if instance.md_pdbref: control_line = control_line+'pdbref ' + + if instance.unres_ff =='NEWCT-9P': + control_line = control_line+'tormode=2 ' cntrl_saxs='' if instance.saxs_data != '': @@ -223,7 +237,7 @@ CUTOFF=7.00000 WCORR4=0.00000""" f.write('{:79}'.format(element)+'&\n') f.write(word_list[-1]+'\n') - if instance.md_start == 'pdbstart': + if instance.md_start == 'pdbstart' and instance.unres_ff !='NEWCT-9P': if instance.type == 'remd' or instance.type == 'dock': f.write('print_min_ini print_min_res print_min_stat maxfun='+ str(instance.min_maxfun)+'\n') @@ -265,6 +279,9 @@ CUTOFF=7.00000 WCORR4=0.00000""" if instance.md_2d == '': f.write('0\n') else: + if instance.unres_ff =='NEWCT-9P': + f.write(seq_2d_write_50(seq_2d_xx(instance.md_2d,seq))) + else: f.write(seq_2d_write(seq_2d_xx(instance.md_2d,seq))) if instance.type == 'dock': @@ -286,6 +303,9 @@ CUTOFF=7.00000 WCORR4=0.00000""" if instance.md_2d == '': f.write('0\n') else: + if instance.unres_ff =='NEWCT-9P': + f.write(seq_2d_write_50(seq_2d_xx(instance.md_2d,seq))) + else: f.write(seq_2d_write(seq_2d_xx(instance.md_2d,seq))) @@ -300,6 +320,9 @@ CUTOFF=7.00000 WCORR4=0.00000""" if instance.md_2d == '': f.write('0\n') else: + if instance.unres_ff =='NEWCT-9P': + f.write(seq_2d_write_50(seq_2d_xx(instance.md_2d,seq))) + else: f.write(seq_2d_write(seq_2d_xx(instance.md_2d,seq))) @@ -315,6 +338,8 @@ CUTOFF=7.00000 WCORR4=0.00000""" os.chdir(instance.jobdirname) if instance.unres_ff =='FF2': shutil.copy('../files/pbs.csh','.') + elif instance.unres_ff =='NEWCT-9P': + shutil.copy('../files/pbs_newct-9p.csh','pbs.csh') else: shutil.copy('../files/pbs_new.csh','pbs.csh') ret_code = subprocess.Popen(' /opt/torque/bin/qsub pbs.csh', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) @@ -323,6 +348,8 @@ CUTOFF=7.00000 WCORR4=0.00000""" os.chdir(instance.jobdirname) if instance.unres_ff =='FF2': f1 = open('../files/pbs_md.csh', 'r') + elif instance.unres_ff =='NEWCT-9P': + f1 = open('../files/pbs_md_newct-9p.csh', 'r') else: f1 = open('../files/pbs_md_new.csh', 'r') f2 = open('pbs.csh', 'w') @@ -369,6 +396,8 @@ CUTOFF=7.00000 WCORR4=0.00000""" os.chdir(instance.jobdirname) if instance.unres_ff =='FF2': f1 = open('../files/pbs8.csh', 'r') + elif instance.unres_ff =='NEWCT-9P': + f1 = open('../files/pbs8_newct-9p.csh', 'r') else: f1 = open('../files/pbs8_new.csh', 'r') f2 = open('pbs8.csh', 'w') @@ -411,6 +440,8 @@ CUTOFF=7.00000 WCORR4=0.00000""" f.write('{:79}'.format(' WITH_DIHED_CONSTR')+'&\n') if instance.type == 'dock': f.write('{:79}'.format(' n_ene=19 CONSTR_HOMOL=20')+'&\n') + if instance.unres_ff =='NEWCT-9P': + f.write('{:79}'.format('tormode=2 ')+'&\n') f.write('BOXX='+str(instance.boxx)+' BOXY='+str(instance.boxy)+ ' BOXZ='+str(instance.boxz)+cntrl_saxs +'\n') @@ -478,6 +509,8 @@ CUTOFF=7.00000 WCORR4=0.00000""" f.write('{:79}'.format(' WITH_DIHED_CONSTR')+'&\n') if instance.type == 'dock': f.write('{:79}'.format(' CONSTR_HOMOL=20')+'&\n') + if instance.unres_ff =='NEWCT-9P': + f.write('{:79}'.format('tormode=2 ')+'&\n') f.write('BOXX='+str(instance.boxx)+' BOXY='+str(instance.boxy)+ ' BOXZ='+str(instance.boxz)+cntrl_saxs +'\n') f.write(w+'\n') diff --git a/django_simple/todo/models.py b/django_simple/todo/models.py index f900769..ba4f3cb 100644 --- a/django_simple/todo/models.py +++ b/django_simple/todo/models.py @@ -9,7 +9,7 @@ import json MIN_CHOICE = (('minimize cart','minimize'),('minimize regular','regularize'),('minimize softreg','soft regularize'),('minimize','minimize internal coordinates')) MD_START= (('extconf','extended chain'),('pdbstart','start from pdb'),('rand_conf','random chain')) MD_LANG = (('langevin','Langevin'),('berendsen','Berendsen')) -FF_CHOICE = (('FF2','FF2 = JCC 30 2127 (2009) + JCTC 11 817-831 (2015)'),('opt-wtfsa-2','OPT-WTFSA-2 = JCIM 57 2364-2377 (2017)')) +FF_CHOICE = (('FF2','FF2 = JCC 30 2127 (2009) + JCTC 11 817-831 (2015)'),('opt-wtfsa-2','OPT-WTFSA-2 = JCIM 57 2364-2377 (2017)'),('NEWCT-9P','NEWCT-9P = JCP 150 155104 (2019)')) logger = logging.getLogger(__name__) diff --git a/django_simple/todo/templates/changelog.html b/django_simple/todo/templates/changelog.html index 8dd0eac..dc129c1 100644 --- a/django_simple/todo/templates/changelog.html +++ b/django_simple/todo/templates/changelog.html @@ -66,6 +66,11 @@ Button to download all files from displaed job as zip archive added. +
16.10.2019
+
+ The scale-consistent NEWCT-9P force field added in advanced mode.
+
+ diff --git a/django_simple/todo/views.py b/django_simple/todo/views.py index cddfc88..092b9bd 100644 --- a/django_simple/todo/views.py +++ b/django_simple/todo/views.py @@ -1115,15 +1115,15 @@ def refresh_done0(task): if i>6: break if i==1: - task.remd_model1=task.remd_model1+' Cluster1 probability= '+line1.split()[2] + task.remd_model1=task.remd_model1+' Cluster1 probability= '+line1.split()[-2] elif i==2: - task.remd_model2=task.remd_model2+' Cluster2 probability= '+line1.split()[2] + task.remd_model2=task.remd_model2+' Cluster2 probability= '+line1.split()[-2] elif i==3: - task.remd_model3=task.remd_model3+' Cluster3 probability= '+line1.split()[2] + task.remd_model3=task.remd_model3+' Cluster3 probability= '+line1.split()[-2] elif i==4: - task.remd_model4=task.remd_model4+' Cluster4 probability= '+line1.split()[2] + task.remd_model4=task.remd_model4+' Cluster4 probability= '+line1.split()[-2] elif i==5: - task.remd_model5=task.remd_model5+' Cluster5 probability= '+line1.split()[2] + task.remd_model5=task.remd_model5+' Cluster5 probability= '+line1.split()[-2] diff --git a/files/pbs8_newct-9p.csh b/files/pbs8_newct-9p.csh new file mode 100755 index 0000000..bb332fd --- /dev/null +++ b/files/pbs8_newct-9p.csh @@ -0,0 +1,123 @@ +#PBS -N test_server +#PBS -q nowy +#PBS -l nodes=4:ppn=4 + +#----------------------------------------------------------------------------- +setenv UNRES_BIN /users2/czarek/UNRES/run/ADAM/unres-mult-symetr_KCC_ifort_MPICH-NEWCORR-SAXS-NMRAMB-Bfac.exe +#----------------------------------------------------------------------------- +setenv DD /users2/czarek/UNRES/PARAM +setenv BONDPAR $DD/bond_AM1_ext_dum.parm +setenv THETPAR $DD/theta_opt.parm.OPT_TRP1_FSD_Villin_E0L_QHK_N9L_LX7_BDD_I18 +setenv THETPARPDB $DD/thetaml_ext.5parm +setenv ROTPARPDB $DD/scgauss_ext.parm +setenv ROTPAR $DD/rotamers_AM1_aura_ext.10022007.parm +setenv TORPAR $DD/torsion_abinitio.parm-2d-all-DL-03-02-2cos +setenv TORDPAR $DD/pot_tord_G631_DIL_ext.parm +setenv ELEPAR $DD/electr_631Gdp_ext.parm +setenv SIDEPAR $DD/scinter_GB_ext_lip.parm +setenv FOURIER $DD/fourier_opt.parm.OPT_TRP1_FSD_Villin_E0L_QHK_N9L_LX7_BDD_I18 +setenv SCCORPAR $DD/sccor_am1_pawel_ext.dat +setenv SCPPAR $DD/scp_ext.parm +setenv PATTERN $DD/patterns.cart +setenv LIPTRANPAR $DD/Lip_tran_initial_ext.parm +#----------------------------------------------------------------------------- +cd $PBS_O_WORKDIR + +setenv MPIRUN "/users2/local/mpich2-1.4.1p1_intel/bin/mpirun " +set NPROCS=`cat $PBS_NODEFILE | wc -l` + +setenv FGPROCS 2 +setenv POT GB +setenv PREFIX file +setenv OUT1FILE YES + +#UNRES MREMD +$MPIRUN -machinefile $PBS_NODEFILE -np $NPROCS $UNRES_BIN + +#WHAM +setenv WHAM_BIN /users2/czarek/UNRES/run/ADAM/wham_ifort_KCC_MPICH-okeanos_NEWCORR-SAXS-NMRAMB-Bfac.exe +setenv CONTFUNC GB +setenv SIDEP $DD/contact_ext.3.parm +setenv SCRATCHDIR . +setenv PREFIX file_wham + +$MPIRUN -machinefile $PBS_NODEFILE -np 2 $WHAM_BIN + +#test images +setenv line `awk '{}END{print int(NR*0.2)}' file_GB000.stat` + +if ( `grep -c pdbref file.inp` ) then + tail -q -n +$line file_GB*.stat | awk '{if ( NF == 14 ) print}' >remd_all.stat + cat file_GB*.stat | awk '{if ( NF == 14 ) print}' > remd_all0.stat +else + tail -q -n +$line file_GB*.stat | awk '{if ( NF == 10 ) print}' >remd_all.stat + cat file_GB*.stat |awk '{if ( NF == 10 ) print}' > remd_all0.stat +endif +../files/matplotlib_hist.py $temperatures +rm remd_all.stat remd_all0.stat + +#CLUSTER WHAM +setenv INPUT file_cluster +setenv INTIN file_wham +setenv OUTPUT file_cluster +setenv PDB CART +setenv COORD CX +setenv PRINTCOOR PRINT_PDB +setenv CLUSTER_WHAM_BIN /users2/czarek/UNRES/run/ADAM/unres_clustMD-mult_ifort_MPICH_NEWCORR-SAXS-MRAMB-bfac.exe + +$MPIRUN -machinefile $PBS_NODEFILE -np 2 $CLUSTER_WHAM_BIN + +if `awk '{cap=toupper($0); if (cap!=$0) {print 1;exit}}' file.seq` then +#no allatom conversion/refinementkx for proteins with D-aminoacids + ln -s file_wham_T*K_ave.pdb ave + sed -n '/ENERGY/,/ENDMDL/p' ave >tmp.pdb + setenv numstruc `grep ENERGY tmp.pdb|wc -l` + setenv allline `cat tmp.pdb|wc -l` + setenv onestruc `echo $allline "/" $numstruc| bc -l|sed 's/\.0*//'` + foreach i (2 4 6 8 10) + setenv headval `echo $i "*" $onestruc|bc -l` + setenv halfi `echo $i/2|bc` + head -n $headval tmp.pdb | tail -n $onestruc >MODEL${halfi}.pdb + end + rm ave tmp.pdb +else +# proteins with L-aminoacids only +ln -s file_wham_T*K_ave.pdb ave +../files/cluster2allatom.sh ave +rm ave + +#amber min refinement +foreach i (`seq 1 5`) +../files/refine.sh MODEL$i.pdb $ssbond +end +endif + +/users2/local/pymol_1.6/pymol -c ../files/model.pml + +if ( `grep -c pdbref file.inp` ) then + awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' plik.pdb > tmp.pdb + /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 + /users2/local/bin/tmscore MODEL4.pdb plik1.pdb > tmscore4.out + /users2/local/bin/tmscore MODEL5.pdb plik1.pdb > tmscore5.out + if (-e saxs.data) then + awk -f ../files/saxs_dist.awk plik1.pdb > plik_saxs.data + endif +# rm plik1.pdb +endif + +if (-e saxs.data) then +awk -f ../files/saxs_dist.awk MODEL1.pdb > MODEL1_saxs.data +awk -f ../files/saxs_dist.awk MODEL2.pdb > MODEL2_saxs.data +awk -f ../files/saxs_dist.awk MODEL3.pdb > MODEL3_saxs.data +awk -f ../files/saxs_dist.awk MODEL4.pdb > MODEL4_saxs.data +awk -f ../files/saxs_dist.awk MODEL5.pdb > MODEL5_saxs.data +../files/plot_saxs.py +endif + +#END +touch finished diff --git a/files/pbs_md_newct-9p.csh b/files/pbs_md_newct-9p.csh new file mode 100755 index 0000000..0406bb6 --- /dev/null +++ b/files/pbs_md_newct-9p.csh @@ -0,0 +1,70 @@ +#PBS -N test_server +#PBS -q express +#PBS -l nodes=1:ppn=4 + +#----------------------------------------------------------------------------- +setenv UNRES_BIN /users2/czarek/UNRES/run/ADAM/unres-mult-symetr_KCC_ifort_MPICH-NEWCORR-SAXS-NMRAMB-Bfac.exe +#----------------------------------------------------------------------------- +setenv DD /users2/czarek/UNRES/PARAM +setenv BONDPAR $DD/bond_AM1_ext_dum.parm +setenv THETPAR $DD/theta_opt.parm.OPT_TRP1_FSD_Villin_E0L_QHK_N9L_LX7_BDD_I18 +setenv THETPARPDB $DD/thetaml_ext.5parm +setenv ROTPARPDB $DD/scgauss_ext.parm +setenv ROTPAR $DD/rotamers_AM1_aura_ext.10022007.parm +setenv TORPAR $DD/torsion_abinitio.parm-2d-all-DL-03-02-2cos +setenv TORDPAR $DD/pot_tord_G631_DIL_ext.parm +setenv ELEPAR $DD/electr_631Gdp_ext.parm +setenv SIDEPAR $DD/scinter_GB_ext_lip.parm +setenv FOURIER $DD/fourier_opt.parm.OPT_TRP1_FSD_Villin_E0L_QHK_N9L_LX7_BDD_I18 +setenv SCCORPAR $DD/sccor_am1_pawel_ext.dat +setenv SCPPAR $DD/scp_ext.parm +setenv PATTERN $DD/patterns.cart +setenv LIPTRANPAR $DD/Lip_tran_initial_ext.parm +#----------------------------------------------------------------------------- +cd $PBS_O_WORKDIR + +setenv MPIRUN "/users2/local/mpich2-1.4.1p1_intel/bin/mpirun " +set NPROCS=`cat $PBS_NODEFILE | wc -l` + +setenv FGPROCS 4 +setenv POT GB +setenv PREFIX file +setenv OUT1FILE YES + +$MPIRUN -machinefile $PBS_NODEFILE -np $NPROCS $UNRES_BIN + +if ( `grep -c pdbref file.inp` ) then + awk '{if ( NF == 14 ) print}' file_GB000.stat > md.stat +else + awk '{if ( NF == 10 ) print}' file_GB000.stat > md.stat +endif + +../files/matplotlib_fit_hist.py $dimen3 +rm md.stat + +if ( -f "file_MD000.pdb" ) then + mkdir tmp + /users2/local/pymol_1.6/pymol -c ../files/movie.pml + ffmpeg2theora tmp/aa%4d.png -o md.ogv + if ( `grep -c pdbstart file.inp` ) then + /users2/local/pymol_1.6/pymol -c ../files/overlap.pml + ../files/fluct_plot.py intra_fit.pdb > fluctuations.txt + /users2/local/pymol_1.6/pymol -c -r ../files/fluct.py + rm -f intra_fit.pdb + endif + rm -rf tmp +else + /users2/czarek/UNRES/git3_tmp/build/bin/xdrf2pdb-mult one file.seq file_MD000.cx + mkdir tmp + /users2/local/pymol_1.6/pymol -c ../files/movie.pml + ffmpeg2theora tmp/aa%4d.png -o md.ogv + if ( `grep -c pdbstart file.inp` ) then + /users2/local/pymol_1.6/pymol -c ../files/overlap.pml + ../files/fluct_plot.py intra_fit.pdb > fluctuations.txt + /users2/local/pymol_1.6/pymol -c -r ../files/fluct.py + rm -f intra_fit.pdb + endif + rm -rf tmp file_MD000.pdb +endif + +touch finished diff --git a/files/pbs_newct-9p.csh b/files/pbs_newct-9p.csh new file mode 100755 index 0000000..8fcfe3a --- /dev/null +++ b/files/pbs_newct-9p.csh @@ -0,0 +1,38 @@ +#PBS -N test_server +#PBS -q express +#PBS -l nodes=1:ppn=4 + +#----------------------------------------------------------------------------- +setenv UNRES_BIN /users2/czarek/UNRES/run/ADAM/unres-mult-symetr_KCC_ifort_MPICH-NEWCORR-SAXS-NMRAMB-Bfac.exe +#----------------------------------------------------------------------------- +setenv DD /users2/czarek/UNRES/PARAM +setenv BONDPAR $DD/bond_AM1_ext_dum.parm +setenv THETPAR $DD/theta_opt.parm.OPT_TRP1_FSD_Villin_E0L_QHK_N9L_LX7_BDD_I18 +setenv THETPARPDB $DD/thetaml_ext.5parm +setenv ROTPARPDB $DD/scgauss_ext.parm +setenv ROTPAR $DD/rotamers_AM1_aura_ext.10022007.parm +setenv TORPAR $DD/torsion_abinitio.parm-2d-all-DL-03-02-2cos +setenv TORDPAR $DD/pot_tord_G631_DIL_ext.parm +setenv ELEPAR $DD/electr_631Gdp_ext.parm +setenv SIDEPAR $DD/scinter_GB_ext_lip.parm +setenv FOURIER $DD/fourier_opt.parm.OPT_TRP1_FSD_Villin_E0L_QHK_N9L_LX7_BDD_I18 +setenv SCCORPAR $DD/sccor_am1_pawel_ext.dat +setenv SCPPAR $DD/scp_ext.parm +setenv PATTERN $DD/patterns.cart +setenv LIPTRANPAR $DD/Lip_tran_initial_ext.parm +#----------------------------------------------------------------------------- +cd $PBS_O_WORKDIR + +setenv MPIRUN "/users2/local/mpich2-1.4.1p1_intel/bin/mpirun " +set NPROCS=`cat $PBS_NODEFILE | wc -l` + +setenv FGPROCS 4 +setenv POT GB +setenv PREFIX file +setenv OUT1FILE YES + +$MPIRUN -machinefile $PBS_NODEFILE -np $NPROCS $UNRES_BIN + +/users2/local/pymol_1.6/pymol -c ../files/pdb.pml + +touch finished