Class Hedron
hedron structure class for rFold
a hedron consists of 3 coplanar objects, specified as two bond lengths and the angle between them.
Hedron.atoms |
three 4x1 matrices specifying coordinates of constituent atoms, initially atom3 on +Z axis |
Hedron.atomsR |
three 4x1 matrices specifying coordinates of constituent atoms, reversed order - initially atom1 on +Z axis |
Hedron.key |
3 atom tokens separated by ':' identifying this hedron : 4SCA:4SC:4SO |
Hedron.len1 |
distance between first and second atoms |
Hedron.angle2 |
angle formed between 3 atoms |
Hedron.len3 |
distance between second and third atoms |
Hedron.updated |
flag indicting that atom coordinates are up to date (do not need to be recalculated from len1-angle2-len3) |
Methods
-
hedron.new (o)
-
initialiser for hedron class (not a class method).
The input object 'o' is a table with expected fields:
[1..3] = atom string tokens for 3 bonded atoms forming plane
'len1' = atom1 to atom2 distance
'angle2' = angle formed by 3 atoms
'len3' = atom2 to atom3 distance
Parameters:
Returns:
initialised hedron object
-
Hedron.atoms
-
three 4x1 matrices specifying coordinates of constituent atoms, initially atom3 on +Z axis
-
Hedron.atomsR
-
three 4x1 matrices specifying coordinates of constituent atoms, reversed order - initially atom1 on +Z axis
-
Hedron.key
-
3 atom tokens separated by ':' identifying this hedron : 4SCA:4SC:4SO
-
Hedron.len1
-
distance between first and second atoms
-
Hedron.angle2
-
angle formed between 3 atoms
-
Hedron.len3
-
distance between second and third atoms
-
Hedron.updated
-
flag indicting that atom coordinates are up to date (do not need to be recalculated from len1-angle2-len3)
-
Hedron:tostring ()
-
generate descriptive string for Hedron. 3- followed by 'key' for this Hedron = 3 atom tokens separated by :'s
Returns:
descriptive string
-
Hedron:initPos ()
-
generate hedron space coordinates for 3 atoms. with specified bond lengths and angle between on XZ plane
(Y=0 for all atoms).
initialises [atoms] and [atomsR].
Hedron coordinate system: a2 = 0,0,0 ; a3 on Z-axis ; a1 on XZ plane (-Z for angle >90).
reverse coordinates swap : a2 = 0,0,0 ; a1 on Z-axis ; a3 on XZ plane.
-
Hedron:writeDb (rfpg, res_id, update)
-
write hedron data to rfold database
Parameters:
- rfpg
open database handle
- res_id
residue id
- update
optional flag, if false skip with warning if entry exists already in dihedral / angle / bond tables
Returns:
angleID identifier for new or updated entry in angle table