From: Cezary Czaplewski Date: Fri, 29 Apr 2016 17:01:42 +0000 (+0200) Subject: DIST2_CUT introduced for homology to remove restraints X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=commitdiff_plain;h=96d29f8250d30733e8a1f624f918388ef4f4050f;p=unres.git DIST2_CUT introduced for homology to remove restraints --- diff --git a/source/unres/src_MD/COMMON.CONTROL b/source/unres/src_MD/COMMON.CONTROL index 4895b45..e2b4b80 100644 --- a/source/unres/src_MD/COMMON.CONTROL +++ b/source/unres/src_MD/COMMON.CONTROL @@ -1,7 +1,8 @@ integer modecalc,iscode,indpdb,indback,indphi,iranconf,icheckgrad, & iprint,i2ndstr,mucadyn,constr_dist,constr_homology,homol_nset real*8 waga_homology - real*8 waga_dist, waga_angle, waga_theta, waga_d, dist_cut + real*8 waga_dist, waga_angle, waga_theta, waga_d, dist_cut, + & dist2_cut logical minim,refstr,pdbref,outpdb,outmol2,outx,overlapsc, & energy_dec, & sideadd,lsecondary,read_cart,unres_pdb, @@ -16,6 +17,6 @@ & constr_dist,gnorm_check,gradout,split_ene,constr_homology, & homol_nset,read2sigma,start_from_model common /homol/ waga_homology(maxprocs/20), - & waga_dist, waga_angle, waga_theta, waga_d, dist_cut + & waga_dist, waga_angle, waga_theta, waga_d, dist_cut,dist2_cut C... minim = .true. means DO minimization. C... energy_dec = .true. means print energy decomposition matrix diff --git a/source/unres/src_MD/readrtns.F b/source/unres/src_MD/readrtns.F index eb10b7f..6b59d69 100644 --- a/source/unres/src_MD/readrtns.F +++ b/source/unres/src_MD/readrtns.F @@ -2581,6 +2581,7 @@ c call flush(iout) call readi(controlcard,"NPAIR",npair_,0) call readi(controlcard,"NDIST",ndist_,0) call reada(controlcard,'DIST_CUT',dist_cut,5.0d0) + call reada(controlcard,'DIST2_CUT',dist2_cut,9999.0d0) call multreadi(controlcard,"IFRAG",ifrag_(1,1),2*nfrag_,0) call multreadi(controlcard,"IPAIR",ipair_(1,1),2*npair_,0) call multreada(controlcard,"WFRAG",wfrag_(1),nfrag_,0.0d0) @@ -2885,8 +2886,15 @@ c write(iout,*) "rescore(",k,irec,") =",rescore(k,irec) do i = nnt,nct-2 do j=i+2,nct - if (idomain(k,i).eq.idomain(k,j).and.idomain(k,i).ne.0) then - + x12=c(1,i)-c(1,j) + y12=c(2,i)-c(2,j) + z12=c(3,i)-c(3,j) + distal=dsqrt(x12*x12+y12*y12+z12*z12) + + + if (idomain(k,i).eq.idomain(k,j).and.idomain(k,i).ne.0 + & .and. distal.le.dist2_cut ) then + ii=ii+1 ii_in_use(ii)=1 l_homo(k,ii)=.true. @@ -2896,13 +2904,6 @@ c write (iout,*) "i",i," j",j," constr_homology", c & constr_homology ires_homo(ii)=i jres_homo(ii)=j -c -c Attempt to replace dist(i,j) by its definition in ... -c - x12=c(1,i)-c(1,j) - y12=c(2,i)-c(2,j) - z12=c(3,i)-c(3,j) - distal=dsqrt(x12*x12+y12*y12+z12*z12) odl(k,ii)=distal if (read2sigma) then sigma_odl(k,ii)=0 @@ -2914,30 +2915,18 @@ c & sigma_odl(k,ii)*dexp(0.5d0*(odl(k,ii)/dist_cut)**2-0.5d0) else if (odl(k,ii).le.dist_cut) then - sigma_odl(k,ii)=rescore(k,i)+rescore(k,j) ! other exprs possible -c sigma_odl(k,ii)=hmscore(k)*rescore(k,i)*rescore(k,j) + sigma_odl(k,ii)=rescore(k,i)+rescore(k,j) else #ifdef OLDSIGMA - sigma_odl(k,ii)=(rescore(k,i)+rescore(k,j))* ! sigma ~ rescore ~ error + sigma_odl(k,ii)=(rescore(k,i)+rescore(k,j))* & dexp(0.5d0*(odl(k,ii)/dist_cut)**2) #else - sigma_odl(k,ii)=(rescore(k,i)+rescore(k,j))* ! sigma ~ rescore ~ error + sigma_odl(k,ii)=(rescore(k,i)+rescore(k,j))* & dexp(0.5d0*(odl(k,ii)/dist_cut)**2-0.5d0) #endif endif endif -c Following expr replaced by a positive exp argument -c sigma_odl(k,ii)=(rescore(k,i)+rescore(k,j))* -c & dexp(-0.5d0*(odl(k,ii)/dist_cut)**2) - -c sigma_odl(k,ii)=hmscore(k)*rescore(k,i)*rescore(k,j)* -c & dexp(-0.5d0*(odl(k,ii)/dist_cut)**2) -c - sigma_odl(k,ii)=1.0d0/(sigma_odl(k,ii)*sigma_odl(k,ii)) ! rescore ~ error -c sigma_odl(k,ii)=sigma_odl(k,ii)*sigma_odl(k,ii) -c -c sigma_odl(k,ii)=sigma_odl_temp(i,j,k)* ! new var read from file (?) -c & sigma_odl_temp(i,j,k) ! not inverse because of use of res. similarity + sigma_odl(k,ii)=1.0d0/(sigma_odl(k,ii)*sigma_odl(k,ii)) else ii=ii+1 l_homo(k,ii)=.false.