diegozea / MIToS.jl

A Julia package to analyze protein sequences, structures, and evolutionary information
https://diegozea.github.io/MIToS.jl/stable/
Other
75 stars 18 forks source link

Using the 12 interaction types of PICCOLO #3

Closed diegozea closed 9 years ago

diegozea commented 9 years ago

Instead of using a single distance cutoff for measuring contacts, It would be useful to determine the 12 iteration types of PICCOLO database. Everything was described in the PICCOLO's paper and its supporting information.

HBonanza publication has a good description for H-bond calculation.

diegozea commented 9 years ago

All the interaction types are implemented now, except for water-mediated hydrogen bond and amino-aromatic hydrogen bond. Prediction of H bonds with the new method (following the rules in the Table 1 of PICCOLO's publication) gives 60 differences against the result of chimera's hbonds:

julia> 100 * ( 60/(60+37770) ) # chimera
0.1586042823156225

julia> 100 * ( 136/(136+37694) ) # stride
0.35950303991541105

H bonds can also be calculated from MIToS using chimera or stride, which can be more accurate.

Closing this issue for the moment.

diegozea commented 9 years ago

Pairs of the 58(60) different from Chimera. This pair was predicted by MIToS but they wasn't found in chimera output (1SSX):

PDBAtom{Float64}(PDBResidueIdentifier("220","CYS","ATOM","1","A"),Coordinates{Float64}(17.341,40.892,5.585),"N","N",1.0,"6.13")
PDBAtom{Float64}(PDBResidueIdentifier("219","ASN","ATOM","1","A"),Coordinates{Float64}(15.001,39.552,4.687),"OD1","O",1.0,"7.62")
PDBAtom{Float64}(PDBResidueIdentifier("219","ASN","ATOM","1","A"),Coordinates{Float64}(11.384,40.389,4.375),"CG","C",1.0,"7.18")
PDBAtom{Float64}(PDBResidueIdentifier("220","CYS","ATOM","1","A"),Coordinates{Float64}(16.716,40.273,5.568),"H","H",1.0,"7.35")
136.04249828596525
139.996167338623
147.838373206223
2.058452574143988
2.8421125945324572
(PDBResidueIdentifier("219","ASN","ATOM","1","A"),PDBResidueIdentifier("220","CYS","ATOM","1","A")) true false
diegozea commented 9 years ago

I need to test it using HBPLUS.

diegozea commented 9 years ago

The pair between CYS 220 and ASN 219 is in the result of HBPLUS:

1SSX <- Brookhaven Code "1SSX.pdb" <- PDB file
<---DONOR---> <-ACCEPTOR-->    atom                        ^               
c    i                          cat <-CA-CA->   ^        H-A-AA   ^      H- 
h    n   atom  resd res      DA  || num        DHA   H-A  angle D-A-AA Bond
n    s   type  num  typ     dist DA aas  dist angle  dist       angle   num
A0220ACYS N   A0219DASN OD1 2.84 MS   2  5.48 147.8  2.06 122.0 130.9   601
diegozea commented 9 years ago

There was a problem with the number of the residues in getpdbatoms. Now the function was modificated and the numbers are correct now ;)

julia> (PDBResidueIdentifier("219D","ASN","ATOM","1","A"), PDBResidueIdentifier("220A","CYS","ATOM","1","A"))
(PDBResidueIdentifier("219D","ASN","ATOM","1","A"),PDBResidueIdentifier("220A","CYS","ATOM","1","A"))

julia> N = Coordinates{Float64}(17.341,40.892,5.585)
Coordinates{Float64}(17.341,40.892,5.585)

julia> H = Coordinates{Float64}(16.716,40.273,5.568)
Coordinates{Float64}(16.716,40.273,5.568)

julia> OD1 = Coordinates{Float64}(15.001,39.552,4.687)
Coordinates{Float64}(15.001,39.552,4.687)

julia> CG = Coordinates{Float64}(14.624,38.376,4.844)
Coordinates{Float64}(14.624,38.376,4.844)

julia> angle(N,H,OD1)
147.838373206223

julia> angle(H,OD1,CG)
121.95228363560967

julia> angle(N,OD1,CG)
130.91032486899792
diegozea commented 9 years ago

Pairs in HBPLUS output but not in hydrogenbond output:

(PDBResidueIdentifier("15A","ALA","ATOM","1","A"),PDBResidueIdentifier("112","GLN","ATOM","1","A"))

(PDBResidueIdentifier("141","ARG","ATOM","1","A"),PDBResidueIdentifier("193","GLY","ATOM","1","A"))
(PDBResidueIdentifier("57","HIS","ATOM","1","A"),PDBResidueIdentifier("195","SER","ATOM","1","A"))

ARG 141 and SER 195 have atoms (hydrogens) with occupancy != 1

ALA 15A and GLN 112 is for HBPLUS:

A0015AALA N A0112-GLN OE1 2.75 MS 72 5.29 163.6 1.86 134.1 135.4 1

hydrogenbond doesn't find the H of the N of ALA 15A. PDB 1SSX has H1, H2, H3, HA, HB1, HB2 and HB3 but not H or HN: 15A is the N-terminus!

diegozea commented 9 years ago

Pairs in hydrogenbond output but not in HBPLUS output:

(PDBResidueIdentifier("182","GLN","ATOM","1","A"),PDBResidueIdentifier("225","SER","ATOM","1","A"))
(PDBResidueIdentifier("142","THR","ATOM","1","A"),PDBResidueIdentifier("141","ARG","ATOM","1","A"))

ARG 141 and GLN 182 have atoms (hydrogens) with occupancy != 1

diegozea commented 9 years ago

There is a problem in HBPLUS (distances -1):

HBPLUS Hydrogen Bond Calculator v 3.2            Jul 13 18:29:23 ART 2015
(c) I McDonald, D Naylor, D Jones and J Thornton 1993 All Rights Reserved.
Citing HBPLUS in publications that use these results is condition of use.
1SSX <- Brookhaven Code "1SSX.pdb" <- PDB file
<---DONOR---> <-ACCEPTOR-->    atom                        ^               
c    i                          cat <-CA-CA->   ^        H-A-AA   ^      H- 
h    n   atom  resd res      DA  || num        DHA   H-A  angle D-A-AA Bond
n    s   type  num  typ     dist DA aas  dist angle  dist       angle   num
A0141-ARG NE  A0193-GLY O   3.25 SM  36  6.24  -1.0 -1.00  -1.0  98.8   353

And the NE2 of HIS 57 doesn't have an hydrogen HE2 in the PDB:

A0057-HIS NE2 A0195-SER OG  2.96 SS 107  8.25 117.5  2.36  91.8  90.4   107
A0057-HIS NE2 A0195-SER OG  2.83 SS 107  8.25 136.9  2.01  -1.0  -1.0   108
diegozea commented 9 years ago

From PICCOLO's publication:

Each of the 20 canonical residue types also has an extra negatively ionizable OXT atom defined, to include the acidic carboxyl group when the residue is chain terminating.

Aromatic interactions are defined when two criteria are met. When a pair of aromatic atoms is within the appropriate distance threshold then the centroids of the two parent planar ring systems are calculated. If the centroids are also within the distance threshold, then the contact is considered aromatic. In generating PICCOLO's sister database, CREDO [43], a procedure was devised to sub-classify aromatic contacts as being "face-to-face", "edge-to-face" or "displaced edge to face" and the same procedure was used in this work. To achieve this, for each pair of atoms involved in an aromatic contact, the normals of the two parent planar ring systems are calculated using Newell's method [44]. The dihedral angle between the two planes is defined as the angle between the normals. The displacement angle is defined as the angle between the normal of the first ring and the vector between the two ring centroids. The aromatic interaction is classified as "edge to face" where the dihedral angle is greater than 30°. Dihedral angles less than or equal to 30° are classified as "face to face" where the displacement angle is less than or equal to 20° and "displaced face to face" otherwise.

diegozea commented 9 years ago

The aromatic interaction was solved in https://github.com/diegozea/MIToS.jl/commit/3a55ccd08dd64fa6972872ad7e95edf35d20671c

diegozea commented 9 years ago

Solved by the last commits ;)