new format of read2sigma *sco files (res number in 1st column)
authorCezary Czaplewski <czarek@chem.univ.gda.pl>
Fri, 31 Jul 2015 14:23:15 +0000 (16:23 +0200)
committerCezary Czaplewski <czarek@chem.univ.gda.pl>
Fri, 31 Jul 2015 14:23:15 +0000 (16:23 +0200)
and correction for Gly as 1st residue

source/unres/src_MD/readrtns.F

index 4fd5a31..73ffe83 100644 (file)
@@ -2719,7 +2719,7 @@ c    &    sigma_odl_temp(maxres,maxres,max_template)
       character*2 kic2
       character*24 model_ki_dist, model_ki_angle
       character*500 controlcard
-      integer ki, i, j, k, l, ii_in_use(maxdim)
+      integer ki, i, j, k, l, ii_in_use(maxdim),i_tmp,idomain_tmp
       logical lprn /.true./
 c
 c     FP - Nov. 2014 Temporary specifications for new vars
@@ -2772,6 +2772,14 @@ c
       lim_theta=0
       lim_xx=0
 c
+      write(iout,*) 'nnt=',nnt,'nct=',nct
+c
+      do i = nnt,nct
+        do k=1,constr_homology
+         idomain(k,i)=0
+        enddo
+      enddo
+
       ii=0
       do i = nnt,nct-2 
         do j=i+2,nct 
@@ -2795,16 +2803,15 @@ c From read_dist_constr (commented out 25/11/2014 <-> res sim)
 c
 c         write(iout,*) "tpl_k_rescore - ",tpl_k_rescore
           open (ientin,file=tpl_k_rescore,status='old')
-          do irec=1,maxdim ! loop for reading res sim 
-            if (irec.eq.1) then
-               rescore(k,irec)=0.0d0
-               goto 1301 
-            endif
+          if (nnt.gt.1) rescore(k,1)=0.0d0
+          do irec=nnt,maxdim ! loop for reading res sim 
             if (read2sigma) then
-             read (ientin,*,end=1401) rescore2_tmp,rescore_tmp,
-     &                                idomain(k,irec)
-             rescore(k,irec)=0.5d0*(rescore_tmp+0.5d0)
-             rescore2(k,irec)=0.5d0*(rescore2_tmp+0.5d0)
+             read (ientin,*,end=1401) i_tmp,rescore2_tmp,rescore_tmp,
+     &                                idomain_tmp
+             i_tmp=i_tmp+nnt-1
+             idomain(k,i_tmp)=idomain_tmp
+             rescore(k,i_tmp)=0.5d0*(rescore_tmp+0.5d0)
+             rescore2(k,i_tmp)=0.5d0*(rescore2_tmp+0.5d0)
             else
              idomain(k,irec)=1
              read (ientin,*,end=1401) rescore_tmp
@@ -2813,7 +2820,6 @@ c           rescore(k,irec)=rescore_tmp+1.0d0 ! to avoid 0 values
              rescore(k,irec)=0.5d0*(rescore_tmp+0.5d0) ! alt transf to reduce scores
 c           write(iout,*) "rescore(",k,irec,") =",rescore(k,irec)
             endif
- 1301     continue
           enddo  
  1401   continue
           close (ientin)        
@@ -2961,8 +2967,8 @@ c    &                      "rescore(",k,i-1,") =",rescore(k,i-1),
 c    &                      "rescore(",k,i-2,") =",rescore(k,i-2),
 c    &                      "rescore(",k,i-3,") =",rescore(k,i-3)
 
-            sigma_dih(k,i)=rescore(k,i)+rescore(k,i-1)+
-     &                     rescore(k,i-2)+rescore(k,i-3)  !  right expression ?
+            sigma_dih(k,i)=(rescore(k,i)+rescore(k,i-1)+
+     &                     rescore(k,i-2)+rescore(k,i-3))/4.0
 c
 c           write (iout,*) "Raw sigmas for dihedral angle restraints"
 c           write (iout,'(i5,10(2f8.2,4x))') i,sigma_dih(k,i)
@@ -2998,8 +3004,8 @@ c            write(iout,*)  "rescore(",k,i,") =",rescore(k,i),
 c    &                      "rescore(",k,i-1,") =",rescore(k,i-1),
 c    &                      "rescore(",k,i-2,") =",rescore(k,i-2)
 c            read (ientin,*) sigma_theta(k,i) ! 1st variant
-             sigma_theta(k,i)=rescore(k,i)+rescore(k,i-1)+
-     &                        rescore(k,i-2) !  right expression ?
+             sigma_theta(k,i)=(rescore(k,i)+rescore(k,i-1)+
+     &                        rescore(k,i-2)/3.0
              sigma_theta(k,i)=1.0d0/(sigma_theta(k,i)*sigma_theta(k,i))
 
 c            sigma_theta(k,i)=hmscore(k)*rescore(k,i)*rescore(k,i-1)*