a couple of suggestions
herbert_bernstein (yaya@aip.org)
Fri, 22 Sep 95 09:28:46 EDT
Subject: MTRIX and ORIGX
# Prepared by Herbert J. Bernstein
# with the assistance of Frances C. Bernstein
# Comments to yaya@aip.org and bernstei@bnl.gov
# 9/22/95
###################################################################
# #
# The following definitions are intended to convey the information#
# contained in the PDB MTRIX entries, which give the transforms #
# representing the non-crystallographic symmetry operations. #
# #
###################################################################
#################################
## ATOM_SITES_NON_CRYST_TRANSF ##
#################################
save_ATOM_SITES_NON_CRYST_TRANSF
_category.description
; Data items in the ATOM_SITES_NON_CRYST_TRANSF category record
details about non-crystallographic transformations, which are
common to all atom sites or to sub-domains of atom sites.
|11 12 13| x |1| x'
|21 22 23| ( y ) domain + |2| = ( y' ) result
|31 32 33| z |3| z'
For each value of the key
_atom_sites_non_cryst_transf.id
a 3x3 matrix and 3-element vector are used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation. The transformation may
either result in atomic coordinates _some_ of which
approximate coordinates provided elsewhere in the data block,
in which case _atom_sites_non_cryst_transf.result_given should
have the value "yes," or, if the transformation results in
atomic_coordinates which do not approximate any coordinates
given elsewhere, _atom_sites_non_cryst_transf.result_given
should be "no" or be unspecified.
The domains for the transformation are given by
items in the atom_sites_non_cryst_transf_domain category
;
_category.id atom_sites_non_cryst_transf
_category.mandatory_code no
_category_key.name '_atom_sites_non_cryst_transf.id'
loop_
_category_group.id 'inclusive_group'
'atom_group'
loop_
_category_examples.detail
_category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
Example 1 - TO BE PROVIDED
;
;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
save_
save__atom_sites_non_cryst_transf.id
_item_description.description
; The value of _atom_sites_non_cryst_transf.id must
uniquely identify the transformation elements (matrix,
vector, and result_given) of a non-crystallographic
transformation. Though good style and consistency with
PDB practices would suggest the use of sequential integers
in the range of 1 through 999, an arbitrary character
string is permitted.
;
_item.name '_atom_sites_non_cryst_transf.id'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code yes
_item_type.code char
loop_
_item_linked.child_name
_item_linked.parent_name
'_atom_sites_non_cryst_transf_domain.id'
'_atom_sites_non_cryst_transf.id'
save_
save__atom_sites_non_cryst_transf.matrix[1][1]
_item_description.description
; The [1][1] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.matrix[1][1]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites_non_cryst_transf.matrix[1][2]
_item_description.description
; The [1][2] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.matrix[1][2]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites_non_cryst_transf.matrix[1][3]
_item_description.description
; The [1][3] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.matrix[1][3]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites_non_cryst_transf.matrix[2][1]
_item_description.description
; The [2][1] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.matrix[2][1]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites_non_cryst_transf.matrix[2][2]
_item_description.description
; The [2][2] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.matrix[2][2]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites_non_cryst_transf.matrix[2][3]
_item_description.description
; The [2][3] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.matrix[2][3]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites_non_cryst_transf.matrix[3][1]
_item_description.description
; The [3][1] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.matrix[3][1]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites_non_cryst_transf.matrix[3][2]
_item_description.description
; The [3][2] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.matrix[3][2]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites_non_cryst_transf.matrix[3][3]
_item_description.description
; The [3][3] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.matrix[3][3]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites_non_cryst_transf.result_given
_item_description.description
; The value of _atom_sites_non_cryst_transf.result_given
is 'yes' or 'no' (default) indicating whether or not
applying the non-crystallographic tranformation to
atom sites in the domain of the transformation results
in atom sites for which the new coordinates approximate
the coordinates of atom sites given elsewhere in the
data block. The value 'yes' should be used even if
there is only a partial match.
;
_item.name '_atom_sites_non_cryst_transf.result_given'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code implicit
_item_type.code char
_item_default.value no
loop_
_item_enumeration.value
_item_enumeration.detail
yes 'some resulting atoms sites given'
no 'no resulting atom sites given'
save_
save__atom_sites_non_cryst_transf.vector[1]
_item_description.description
; The [1] element of the 3-element vector used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
_item.name '_atom_sites_non_cryst_transf.vector[1]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_type.code float
_item_default.value 0.0
_item_sub_category.id vector
save_
save__atom_sites_non_cryst_transf.vector[2]
_item_description.description
; The [2] element of the 3-element vector used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.vector[2]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_type.code float
_item_default.value 0.0
_item_sub_category.id vector
save_
save__atom_sites_non_cryst_transf.vector[3]
_item_description.description
; The [3] element of the 3-element vector used to transform
coordinates as given in the ATOM_SITE category to other
coordinates in the same category, representing a non-
crystallographic symmetry operation.
;
_item.name '_atom_sites_non_cryst_transf.vector[3]'
_item.category_id atom_sites_non_cryst_transf
_item.mandatory_code no
_item_type.code float
_item_default.value 0.0
_item_sub_category.id vector
save_
########################################
## ATOM_SITES_NON_CRYST_TRANSF_DOMAIN ##
########################################
save_ATOM_SITES_NON_CRYST_TRANSF_DOMAIN
_category.description
; Data items in the ATOM_SITES_NON_CRYST_TRANSF_DOMAIN category
record domains to which transformations given in the
atom_sites_non_cryst_transf category should be applied.
Domains may be given by structural element id (as, for example,
_atom_site.label_asym_id) with an optional range of
sequence ids or sequence numbers. Multiple domains may
be specified.
;
_category.id atom_sites_non_cryst_transf_domain
_category.mandatory_code no
_category_key.name '_atom_sites_non_cryst_transf_domain.id'
loop_
_category_group.id 'inclusive_group'
'atom_group'
loop_
_category_examples.detail
_category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
Example 1 - TO BE PROVIDED
;
;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
save_
#****************************************************************************
# **** NOTE -- entries into the loops in save__struct_asym.id are
# needed to establish relationships for the next item
#****************************************************************************
save__atom_sites_non_cryst_transf_domain.asym_id
_item_description.description
; The value of _atom_sites_non_cryst_transf_domain.asym_id
identifies a structural element to which the transformation
specified by _atom_sites_non_cryst_transf_domain.id is
to be applied.
This data item is a pointer to _atom_site.label_asym_id
in the ATOM_SITE category and to _struct_asym.id in the
STRUCT_ASYM category.
;
_item.name '_atom_sites_non_cryst_transf_domain.asym_id'
_item.category_id atom_sites_non_cryst_transf_domain
_item.mandatory_code no
_item_type.code char
save_
save__atom_sites_non_cryst_transf_domain.id
_item_description.description
; The value of _atom_sites_non_cryst_transf_domain.id
links domains to which non-crystallographic transformations
are to be applied.
This data item is a pointer to
_atom_sites_non_cryst_transf.id
in the ATOM_SITES_NON_CRYST_TRANSF category
;
_item.name '_atom_sites_non_cryst_transf_domain.id'
_item.category_id atom_sites_non_cryst_transf_domain
_item.mandatory_code yes
_item_type.code char
save_
#****************************************************************************
# **** NOTE -- entries into the loops in save__atom_site.label_seq_id are
# needed to establish relationships for the next two items
#****************************************************************************
save__atom_sites_non_cryst_transf_domain.seq_id1
_item_description.description
; The value of _atom_sites_non_cryst_transf_domain.seq_id1
identifies the first of a range of atom sites label_seq_id's
to which the transformation specified by
_atom_sites_non_cryst_transf_domain.id is to be applied.
Note that this field need _not_ be numeric. The "first"
atom_site.label_comp_id in a polypeptide chain is the
one which is closest to the N-terminus of the chain.
The "first" atom_site.label_comp_id in a polynucleotide
chain is the one closest to the 5'-terminus of the chain.
If not specified, the first label_seq_id within the
label_asym_id used is assumed.
This data item is a pointer to _atom_site.label_seq_id
in the ATOM_SITE category.
;
_item.name '_atom_sites_non_cryst_transf_domain.seq_id1'
_item.category_id atom_sites_non_cryst_transf_domain
_item.mandatory_code implicit
_item_type.code char
save_
save__atom_sites_non_cryst_transf_domain.seq_id2
_item_description.description
; The value of _atom_sites_non_cryst_transf_domain.seq_id2
identifies the last of a range of atom site label_seq_id's
to which the transformation specified by
_atom_sites_non_cryst_transf_domain.id is to be applied.
Note that this field need _not_ be numeric. The "last"
atom_site.label_comp_id in a polypeptide chain is the
one which is furthest from the N-terminus of the chain.
The "last" atom_site.label_comp_id in a polynucleotide
chain is the one furthest the 5'-terminus of the chain.
If not specified, the last label_seq_id within the
label_asym_id used is assumed.
This data item is a pointer to _atom_site.label_seq_id
in the ATOM_SITE category.
;
_item.name '_atom_sites_non_cryst_transf_domain.seq_id2'
_item.category_id atom_sites_non_cryst_transf_domain
_item.mandatory_code implicit
_item_type.code char
save_
#****************************************************************************
# **** NOTE -- entries into the loops in save__entity_poly_seq.num are
# needed to establish relationships for the next two items
#****************************************************************************
save__atom_sites_non_cryst_transf_domain.seq_num1
_item_description.description
; The value of _atom_sites_non_cryst_transf_domain.seq_num1
identifies the first of a range of atom sites to which
the transformation specified by
_atom_sites_non_cryst_transf_domain.id is to be applied.
If not specified, the first seq_num within the
label_asym_id used is assumed.
This data item is a pointer to _atom_site.entity_seq_num
in the ATOM_SITE category and to _entity_poly_seq.num in the
ENTITY_POLY_SEQ category.
;
_item.name '_atom_sites_non_cryst_transf_domain.seq_num1'
_item.category_id atom_sites_non_cryst_transf_domain
_item.mandatory_code implicit
_item_type.code int
save_
save__atom_sites_non_cryst_transf_domain.seq_num2
_item_description.description
; The value of _atom_sites_non_cryst_transf_domain.seq_num2
identifies the last of a range of atom sites to which
the transformation specified by
_atom_sites_non_cryst_transf_domain.id is to be applied.
If not specified, the last seq_num within the
label_asym_id used is assumed.
This data item is a pointer to _atom_site.entity_seq_num
in the ATOM_SITE category and to _entity_poly_seq.num in the
ENTITY_POLY_SEQ category.
;
_item.name '_atom_sites_non_cryst_transf_domain.seq_num2'
_item.category_id atom_sites_non_cryst_transf_domain
_item.mandatory_code implicit
_item_type.code int
save_
###################################################################
# #
# The following definitions are intended to convey the information#
# contained in the PDB ORIGX entries, which give the transform #
# necessary to return the coordinates as presented to the #
# coordinates as submitted. #
# #
###################################################################
save__atom_sites.revert_original_transf_matrix[1][1]
_item_description.description
; The [1][1] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_matrix[1][1]'
_item.category_id atom_sites
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites.revert_original_transf_matrix[1][2]
_item_description.description
; The [1][2] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_matrix[1][2]'
_item.category_id atom_sites
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites.revert_original_transf_matrix[1][3]
_item_description.description
; The [1][3] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_matrix[1][3]'
_item.category_id atom_sites
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites.revert_original_transf_matrix[2][1]
_item_description.description
; The [2][1] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_matrix[2][1]'
_item.category_id atom_sites
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites.revert_original_transf_matrix[2][2]
_item_description.description
; The [2][2] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_matrix[2][2]'
_item.category_id atom_sites
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites.revert_original_transf_matrix[2][3]
_item_description.description
; The [2][3] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_matrix[2][3]'
_item.category_id atom_sites
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites.revert_original_transf_matrix[3][1]
_item_description.description
; The [3][1] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_matrix[3][1]'
_item.category_id atom_sites
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites.revert_original_transf_matrix[3][2]
_item_description.description
; The [3][2] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_matrix[3][2]'
_item.category_id atom_sites
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites.revert_original_transf_matrix[3][3]
_item_description.description
; The [3][3] element of the 3x3 matrix used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_matrix[3][3]'
_item.category_id atom_sites
_item.mandatory_code no
_item_sub_category.id matrix
_item_type.code float
save_
save__atom_sites.revert_original_transf_vector[1]
_item_description.description
; The [1] element of the 3-element vector used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
_item.name '_atom_sites.revert_original_transf_vector[1]'
_item.category_id atom_sites
_item.mandatory_code no
_item_type.code float
_item_default.value 0.0
_item_sub_category.id vector
save_
save__atom_sites.revert_original_transf_vector[2]
_item_description.description
; The [2] element of the 3-element vector used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_vector[2]'
_item.category_id atom_sites
_item.mandatory_code no
_item_type.code float
_item_default.value 0.0
_item_sub_category.id vector
save_
save__atom_sites.revert_original_transf_vector[3]
_item_description.description
; The [3] element of the 3-element vector used to transform
coordinates as given in the ATOM_SITE category to
the original coordinate system as received for
preparation of the data block.
;
_item.name '_atom_sites.revert_original_transf_vector[3]'
_item.category_id atom_sites
_item.mandatory_code no
_item_type.code float
_item_default.value 0.0
_item_sub_category.id vector
save_
--- End of forwarded message from Herbert J. Bernstein <yaya@dynamics.chm.bnl.gov>