| 1 |
#! /bin/sh /usr/share/dpatch/dpatch-run
|
| 2 |
## 02_cyclic_protein.dpatch by LI Daobing <lidaobing@gmail.com>
|
| 3 |
##
|
| 4 |
## All lines beginning with `## DP:' are a description of the patch.
|
| 5 |
## DP: fix a bug when generate cyclic peptide, sometimes the atom type will
|
| 6 |
## DP: have some error.
|
| 7 |
|
| 8 |
@DPATCH@
|
| 9 |
diff -urNad tinker~/source/protein.f tinker/source/protein.f
|
| 10 |
--- tinker~/source/protein.f 2004-09-08 06:37:36.000000000 +0800
|
| 11 |
+++ tinker/source/protein.f 2007-05-19 14:49:10.000000000 +0800
|
| 12 |
@@ -429,7 +429,7 @@
|
| 13 |
& ni(i),cai(i),ci(i),0)
|
| 14 |
call zatom (hatyp(k),1.11d0,109.5d0,107.9d0,
|
| 15 |
& cai(i),ni(i),ci(i),-chiral(i))
|
| 16 |
- call proside (resname,i,cai(i),ni(i),ci(i))
|
| 17 |
+ call proside (resname,i,cai(i),ni(i),ci(i), cyclic)
|
| 18 |
c
|
| 19 |
c build the first residue as an N-terminal formyl group
|
| 20 |
c
|
| 21 |
@@ -479,7 +479,7 @@
|
| 22 |
& ni(i),cai(i),ci(i),0)
|
| 23 |
call zatom (hantyp(k),1.11d0,109.5d0,107.9d0,
|
| 24 |
& cai(i),ni(i),ci(i),-chiral(i))
|
| 25 |
- call proside (resname,i,cai(i),ni(i),ci(i))
|
| 26 |
+ call proside (resname,i,cai(i),ni(i),ci(i), cyclic)
|
| 27 |
c
|
| 28 |
c build the first residue as a pyroglutamic acid
|
| 29 |
c
|
| 30 |
@@ -502,7 +502,7 @@
|
| 31 |
& ni(i),cai(i),ci(i),0)
|
| 32 |
call zatom (hantyp(k),1.11d0,109.5d0,107.9d0,
|
| 33 |
& cai(i),ni(i),ci(i),-chiral(i))
|
| 34 |
- call proside (resname,i,cai(i),ni(i),ci(i))
|
| 35 |
+ call proside (resname,i,cai(i),ni(i),ci(i), cyclic)
|
| 36 |
c
|
| 37 |
c build the first residue for all other standard amino acids
|
| 38 |
c
|
| 39 |
@@ -529,7 +529,7 @@
|
| 40 |
& ni(i),cai(i),n-2,-1)
|
| 41 |
call zatom (hantyp(k),1.11d0,109.5d0,107.9d0,
|
| 42 |
& cai(i),ni(i),ci(i),-chiral(i))
|
| 43 |
- call proside (resname,i,cai(i),ni(i),ci(i))
|
| 44 |
+ call proside (resname,i,cai(i),ni(i),ci(i), cyclic)
|
| 45 |
end if
|
| 46 |
c
|
| 47 |
c build atoms for residues in the middle of the chain
|
| 48 |
@@ -552,7 +552,7 @@
|
| 49 |
& ni(i),cai(i),ci(i),0)
|
| 50 |
call zatom (hatyp(k),1.11d0,109.5d0,107.9d0,
|
| 51 |
& cai(i),ni(i),ci(i),-chiral(i))
|
| 52 |
- call proside (resname,i,cai(i),ni(i),ci(i))
|
| 53 |
+ call proside (resname,i,cai(i),ni(i),ci(i), cyclic)
|
| 54 |
end do
|
| 55 |
c
|
| 56 |
c set the number and type of the last residue
|
| 57 |
@@ -580,7 +580,7 @@
|
| 58 |
& ni(i),cai(i),ci(i),0)
|
| 59 |
call zatom (hatyp(k),1.11d0,109.5d0,107.9d0,
|
| 60 |
& cai(i),ni(i),ci(i),-chiral(i))
|
| 61 |
- call proside (resname,i,cai(i),ni(i),ci(i))
|
| 62 |
+ call proside (resname,i,cai(i),ni(i),ci(i), cyclic)
|
| 63 |
c
|
| 64 |
c build the last residue as a C-terminal amide
|
| 65 |
c
|
| 66 |
@@ -627,7 +627,7 @@
|
| 67 |
& ni(i),cai(i),ci(i),0)
|
| 68 |
call zatom (hactyp(k),1.11d0,109.5d0,107.9d0,
|
| 69 |
& cai(i),ni(i),ci(i),-chiral(i))
|
| 70 |
- call proside (resname,i,cai(i),ni(i),ci(i))
|
| 71 |
+ call proside (resname,i,cai(i),ni(i),ci(i), cyclic)
|
| 72 |
end if
|
| 73 |
call zatom (octyp(k),1.25d0,117.0d0,psi(i),
|
| 74 |
& ci(i),cai(i),ni(i),0)
|
| 75 |
@@ -655,24 +655,26 @@
|
| 76 |
c cai atom number of alpha carbon in residue i
|
| 77 |
c ni atom number of amide nitrogen in residue i
|
| 78 |
c ci atom number of carbonyl carbon in residue i
|
| 79 |
+c cyclic is cyclic?
|
| 80 |
c
|
| 81 |
c
|
| 82 |
- subroutine proside (resname,i,cai,ni,ci)
|
| 83 |
+ subroutine proside (resname,i,cai,ni,ci,cyclic)
|
| 84 |
implicit none
|
| 85 |
include 'sizes.i'
|
| 86 |
include 'atoms.i'
|
| 87 |
include 'phipsi.i'
|
| 88 |
include 'sequen.i'
|
| 89 |
integer i,cai,ni,ci
|
| 90 |
+ logical cyclic
|
| 91 |
character*3 resname
|
| 92 |
c
|
| 93 |
c
|
| 94 |
c glycine residue (GLY)
|
| 95 |
c
|
| 96 |
if (resname .eq. 'GLY') then
|
| 97 |
- if (i .eq. 1) then
|
| 98 |
+ if (i .eq. 1 .and. .not. cyclic) then
|
| 99 |
call zatom (355,1.11d0,109.5d0,107.9d0,cai,ni,ci,chiral(i))
|
| 100 |
- else if (i .eq. nseq) then
|
| 101 |
+ else if (i .eq. nseq .and. .not. cyclic) then
|
| 102 |
call zatom (506,1.11d0,109.5d0,107.9d0,cai,ni,ci,chiral(i))
|
| 103 |
else
|
| 104 |
call zatom (6,1.11d0,109.5d0,107.9d0,cai,ni,ci,chiral(i))
|
| 105 |
@@ -786,7 +788,7 @@
|
| 106 |
else if (resname .eq. 'PRO') then
|
| 107 |
call zatom (101,1.54d0,107.0d0,109.5d0,cai,ni,ci,chiral(i))
|
| 108 |
call zatom (103,1.54d0,107.0d0,chi(1,i),n-1,cai,ni,0)
|
| 109 |
- if (i .eq. 1) then
|
| 110 |
+ if (i .eq. 1 .and. .not. cyclic) then
|
| 111 |
call zatom (410,1.54d0,107.0d0,chi(2,i),n-1,n-2,cai,0)
|
| 112 |
else
|
| 113 |
call zatom (105,1.54d0,107.0d0,chi(2,i),n-1,n-2,cai,0)
|
| 114 |
@@ -796,7 +798,7 @@
|
| 115 |
call zatom (102,1.11d0,109.4d0,109.4d0,n-4,cai,n-3,-1)
|
| 116 |
call zatom (104,1.11d0,109.4d0,109.4d0,n-4,n-5,n-3,1)
|
| 117 |
call zatom (104,1.11d0,109.4d0,109.4d0,n-5,n-6,n-4,-1)
|
| 118 |
- if (i .eq. 1) then
|
| 119 |
+ if (i .eq. 1 .and. .not. cyclic) then
|
| 120 |
call zatom (411,1.11d0,109.4d0,109.4d0,n-5,n-6,ni,1)
|
| 121 |
call zatom (411,1.11d0,109.4d0,109.4d0,n-6,n-7,ni,-1)
|
| 122 |
else
|
| 123 |
@@ -1068,9 +1070,9 @@
|
| 124 |
c unknown residue (UNK)
|
| 125 |
c
|
| 126 |
else if (resname .eq. 'UNK') then
|
| 127 |
- if (i .eq. 1) then
|
| 128 |
+ if (i .eq. 1 .and. .not. cyclic) then
|
| 129 |
call zatom (355,1.11d0,109.5d0,107.9d0,cai,ni,ci,chiral(i))
|
| 130 |
- else if (i .eq. nseq) then
|
| 131 |
+ else if (i .eq. nseq .and. .not. cyclic) then
|
| 132 |
call zatom (506,1.11d0,109.5d0,107.9d0,cai,ni,ci,chiral(i))
|
| 133 |
else
|
| 134 |
call zatom (6,1.11d0,109.5d0,107.9d0,cai,ni,ci,chiral(i))
|