Fixed the addition of dummy chain ends to structures read from UNRES PDB files
[unres.git] / source / unres / src_MD-M / readpdb.F
index edd478e..8b6f331 100644 (file)
@@ -16,7 +16,9 @@ C geometry.
       character*3 seq,atom,res
       character*80 card
       dimension sccor(3,20)
+      double precision e1(3),e2(3),e3(3)
       integer rescode
+      logical fail
       ibeg=1
       lsecondary=.false.
       nhfrag=0
@@ -140,9 +142,16 @@ C Calculate the CM of the last side chain.
         nres=nres+1
         itype(nres)=21
         if (unres_pdb) then
-          c(1,nres)=c(1,nres-1)+3.8d0
-          c(2,nres)=c(2,nres-1)
-          c(3,nres)=c(3,nres-1)
+C 2/15/2013 by Adam: corrected insertion of the last dummy residue
+          call refsys(nres-3,nres-2,nres-1,e1,e2,e3,fail)
+          if (fail) then
+            e2(1)=0.0d0
+            e2(2)=1.0d0
+            e2(3)=0.0d0
+          endif
+          do j=1,3
+            c(j,nres)=c(j,nres-1)-3.8d0*e2(j)
+          enddo
         else
         do j=1,3
           dcj=c(j,nres-2)-c(j,nres-3)
@@ -164,9 +173,16 @@ C Calculate the CM of the last side chain.
         nsup=nsup-1
         nstart_sup=2
         if (unres_pdb) then
-          c(1,1)=c(1,2)-3.8d0
-          c(2,1)=c(2,2)
-          c(3,1)=c(3,2)
+C 2/15/2013 by Adam: corrected insertion of the first dummy residue
+          call refsys(2,3,4,e1,e2,e3,fail)
+          if (fail) then
+            e2(1)=0.0d0
+            e2(2)=1.0d0
+            e2(3)=0.0d0
+          endif
+          do j=1,3
+            c(j,1)=c(j,2)-3.8d0*e2(j)
+          enddo
         else
         do j=1,3
           dcj=c(j,4)-c(j,3)