X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;ds=sidebyside;f=django_simple%2Ftodo%2Fjobfiles.py;h=c6ab414b64d00a0bc74e367779af00905e3422ae;hb=HEAD;hp=f78b8738882cad1785a77b7082f0959b73ae8214;hpb=1fe43084eddf9a8ab2e9df0864caea1c18bd8090;p=django_unres.git diff --git a/django_simple/todo/jobfiles.py b/django_simple/todo/jobfiles.py index f78b873..c6ab414 100644 --- a/django_simple/todo/jobfiles.py +++ b/django_simple/todo/jobfiles.py @@ -72,7 +72,7 @@ def write_ssbond(ssbond): @receiver(post_save, sender=Task) def write_on_task_save(sender, instance, **kwargs): - if instance.ready and not instance.done and instance.running==0: + if instance.ready and not instance.done and instance.running==0 and instance.pbsjob=='': if (not os.path.isdir(instance.jobdirname)): os.mkdir(instance.jobdirname) # os.chdir(instance.jobdirname) @@ -155,6 +155,10 @@ CUTOFF=7.00000 WCORR4=0.00000""" if instance.md_pdbref: control_line = control_line+'pdbref ' +#---v + if instance.use_nmr: + control_line = control_line+' constr_dist=12 ' +#---^ if instance.unres_ff =='NEWCT-9P': control_line = control_line+'tormode=2 cart' @@ -190,6 +194,10 @@ CUTOFF=7.00000 WCORR4=0.00000""" if instance.unres_ff =='NEWCT-9P': control_line = control_line+'tormode=2 cart' +#---v + if instance.use_nmr: + control_line = control_line+' constr_dist=12 ' +#---^ cntrl_saxs='' if instance.saxs_data != '': @@ -307,6 +315,22 @@ CUTOFF=7.00000 WCORR4=0.00000""" 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))) +#---v + if instance.use_nmr: + f.write('ndist='+repr(instance.linijek_nmr)+' restr_type=12 scal_peak=') + f.write(repr(instance.nmr_scal)+' fordepth_peak='+repr(instance.nmr_fordepth)) + f.write(' slope_peak='+repr(instance.nmr_slope)+'\n') + if (instance.myfile3=='files/N1008_AmbiR-trunc.txt'): + fnmr = open(instance.jobdirname+'/../files/N1008_AmbiR-trunc.txt', 'r') + for linmr in fnmr: + f.write(linmr) + fnmr.close() + else: + fnmr = open(instance.jobdirname+'/plik3.nmr', 'r') + for linmr in fnmr: + f.write(linmr) + fnmr.close() +#---^ if instance.type == 'remd' and instance.md_start != 'pdbstart': @@ -324,6 +348,22 @@ CUTOFF=7.00000 WCORR4=0.00000""" 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))) +#---v + if instance.use_nmr: + f.write('ndist='+repr(instance.linijek_nmr)+' restr_type=12 scal_peak=') + f.write(repr(instance.nmr_scal)+' fordepth_peak='+repr(instance.nmr_fordepth)) + f.write(' slope_peak='+repr(instance.nmr_slope)+'\n') + if (instance.myfile3=='files/N1008_AmbiR-trunc.txt'): + fnmr = open(instance.jobdirname+'/../files/N1008_AmbiR-trunc.txt', 'r') + for linmr in fnmr: + f.write(linmr) + fnmr.close() + else: + fnmr = open(instance.jobdirname+'/plik3.nmr', 'r') + for linmr in fnmr: + f.write(linmr) + fnmr.close() +#---^ if instance.saxs_data != '': @@ -408,6 +448,17 @@ 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) + if instance.md_seq2 !='': + f2.write("""setenv FGPROCS 2 +setenv POT GB +setenv PREFIX file2 +setenv OUT1FILE YES +/users2/local/mpich2-1.4.1p1_intel/bin/mpirun -machinefile $PBS_NODEFILE -np 2 $UNRES_BIN +/users2/local/pulchra306/pulchra -q -g file2_MD000.pdb +cat file2_MD000.rebuilt.pdb |grep -v TER |grep -v END > tmp_plik2.pdb +/users2/local/mmtsb/perl/convpdb.pl -renumber 1 -out generic tmp_plik2.pdb > act.rebuilt.pdb +/users2/local/scwrl4/Scwrl4 -h -i act.rebuilt.pdb -o plik2.pdb +rm tmp_plik2.pdb act.rebuilt.pdb\n""") if instance.dock_peptide: f2.write('../files/generator_v13 plik.pdb plik2.pdb 1 \n') else: @@ -435,6 +486,10 @@ CUTOFF=7.00000 WCORR4=0.00000""" isampl=1 else: isampl=int(instance.md_nstep/instance.md_ntwx*nreplicas/8000) +#---v + if instance.use_nmr: + f.write('{:79}'.format('with_dist_constr constr_dist=12')+'&\n') +#---^ f.write('{:79}'.format(' isampl='+str(isampl))+'&\n') if instance.md_pdbref: f.write('{:79}'.format('SEED='+str(instance.md_seed)+ @@ -457,6 +512,23 @@ CUTOFF=7.00000 WCORR4=0.00000""" f.write(write_ssbond(instance.ssbond)) +#---v + if instance.use_nmr: + f.write('ndist='+repr(instance.linijek_nmr)+' restr_type=12 scal_peak=') + f.write(repr(instance.nmr_scal)+' fordepth_peak='+repr(instance.nmr_fordepth)) + f.write(' slope_peak='+repr(instance.nmr_slope)+'\n') + if (instance.myfile3=='files/N1008_AmbiR-trunc.txt'): + fnmr = open(instance.jobdirname+'/../files/N1008_AmbiR-trunc.txt', 'r') + for linmr in fnmr: + f.write(linmr) + fnmr.close() + else: + fnmr = open(instance.jobdirname+'/plik3.nmr', 'r') + for linmr in fnmr: + f.write(linmr) + fnmr.close() +#---^ + if instance.type == 'dock': f.write('HOMOL_DIST=0.1 HOMOL_ANGLE=1.0 HOMOL_THETA=1.0 HOMOL_SCD=1.0 DIST_CUT=15.0 &\n') f.write('READ2SIGMA \n') @@ -513,9 +585,14 @@ CUTOFF=7.00000 WCORR4=0.00000""" f.write(instance.name + ' UNRES server job'+ '\n') f.write('{:79}'.format('nres='+str(len(seq)) +' one_letter rescale=2 PRINT_CART PDBOUT=1 iopt=1' - +' temper='+str(instance.remd_cluter_temp))+'&\n') + +' temper='+str(instance.remd_cluter_temp) + +' nclust='+str(instance.remd_cluster_n))+'&\n') if instance.md_2d != '': f.write('{:79}'.format(' WITH_DIHED_CONSTR')+'&\n') +#---v + if instance.use_nmr: + f.write('{:79}'.format('constr_dist=12 ')+'&\n') +#---^ if instance.type == 'dock': f.write('{:79}'.format(' CONSTR_HOMOL=24')+'&\n') if instance.unres_ff =='NEWCT-9P': @@ -526,6 +603,24 @@ CUTOFF=7.00000 WCORR4=0.00000""" for i in range(0,len(seq),80): f.write(seq[i:i+80]+'\n') f.write(write_ssbond(instance.ssbond)) + +#---v + if instance.use_nmr: + f.write('ndist='+repr(instance.linijek_nmr)+' restr_type=12 scal_peak=') + f.write(repr(instance.nmr_scal)+' fordepth_peak='+repr(instance.nmr_fordepth)) + f.write(' slope_peak='+repr(instance.nmr_slope)+'\n') + if (instance.myfile3=='files/N1008_AmbiR-trunc.txt'): + fnmr = open(instance.jobdirname+'/../files/N1008_AmbiR-trunc.txt', 'r') + for linmr in fnmr: + f.write(linmr) + fnmr.close() + else: + fnmr = open(instance.jobdirname+'/plik3.nmr', 'r') + for linmr in fnmr: + f.write(linmr) + fnmr.close() +#---^ + if instance.type == 'dock': f.write('HOMOL_DIST=0.1 HOMOL_ANGLE=1.0 HOMOL_THETA=1.0 HOMOL_SCD=1.0 DIST_CUT=15.0 &\n') f.write('READ2SIGMA \n') @@ -542,17 +637,69 @@ CUTOFF=7.00000 WCORR4=0.00000""" if len(tmp)==2: f.write(tmp[0]+' '+tmp[1]+'\n') + if instance.type == 'dock' and instance.md_seq2 != '': + with open(instance.jobdirname+'/file2.inp','w') as f: + f.write(instance.name + ' chain2 random start'+ '\n') + control_line = 'SEED='+str(instance.md_seed)+' '\ + +'rand_conf md one_letter'\ + + ' BOXX=1000 BOXY=1000 BOXZ=1000 ' + + if instance.unres_ff =='NEWCT-9P': + control_line = control_line+'tormode=2 cart' + + type_line = ' reset_vel=0'\ + +' t_bath=300'\ + +' nstep=100000'\ + +' ntwe=10000'\ + +' ntwx=100000'\ + +' dt=0.2 lang=1 scal_fric=0.02 respa mdpdb ' + + wrapper = textwrap.TextWrapper(width=70) + word_list = wrapper.wrap(text=control_line) + for element in word_list[:-1]: + f.write('{:79}'.format(element)+'&\n') + f.write(word_list[-1]+'\n') + + word_list = wrapper.wrap(text=type_line) + for element in word_list[:-1]: + f.write('{:79}'.format(element)+'&\n') + f.write(word_list[-1]+'\n') + + f.write(w+'\n') + + seq=instance.md_seq2.replace(" ","") + f.write(str(len(seq))+'\n') + for i in range(0,len(seq),80): + f.write(seq[i:i+80]+'\n') + f.write('0\n') + f.write('0\n') + + os.chdir(instance.jobdirname) ret_code = subprocess.Popen(' /opt/torque/bin/qsub pbs8.csh', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) os.chdir('..') + + output = str(ret_code.communicate()[0]) + output=output.strip() + if output=='': + output='error' + logger.warning("PBS \"%s\" " % output) + instance.pbsjob = output + instance.save() - print ret_code.stdout.readlines() +# print ret_code.stdout.readlines() logger.warning("Dir \"%s\" has been saved." % instance.jobdirname) @receiver(post_delete, sender=Task) def delete_on_task_del(sender, instance, **kwargs): if instance.jobdirname: if os.path.isdir(instance.jobdirname): + if not instance.done: + ret_code_qdel = subprocess.Popen(' /opt/torque/bin/qdel '+str(instance.pbsjob), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + output = str(ret_code_qdel.communicate()[0]) + output=output.strip() + logger.warning("PBS qdel \"%s\" " % instance.pbsjob) + logger.warning("QDEL \"%s\" " % output) shutil.rmtree(instance.jobdirname) logger.warning("Dir \"%s\" has been rm." % instance.jobdirname) - \ No newline at end of file +