############################################################################## # # # SBEVSL # # Structural Biology Extensible Visualization Scripting Language # # CIF Dictionary # # # # Extending the Macromolecular CIF Dictionary (mmCIF) # # and # # Image CIF Dictionary (imgCIF) # # # # Version 0.0.1 # # of 2006-11-10 # # # # by Herbert J. Bernstein and and Paul A. Craig # # # # Work funded in part by the NIGMS under grant 1R15GM078077-01 # # # ############################################################################## data_cif_sbevsl.dic _dictionary.title cif_sbevsl.dic _dictionary.version 0.0.1 _dictionary.datablock_id cif_sbevsl.dic ############################################################################## # CONTENTS # # CATEGORY_GROUP_LIST # # # ITEM_TYPE_LIST # ITEM_UNITS_LIST # DICTIONARY_HISTORY # ############################################################################## ############################################################################## # IMPORTANT NOTES: # # The model we use in constructing this dictionary is of # a scene containing objects. For the moment, the list # of objects is as follows. A major point of having an # extensible scripting language is that users will be # able to add to this list: # # object -- anything in the scene # an object may have many properties, depending # on its role, but all objects will have the # following properties: # poise: a combination of a location in # the scene and an orientation # selected: an indicator that the object # is to be processed by commands # sensitive to this indicator # visible: an indicator that the object # is to be seen by all observers # # observer_object -- an object in the scene that # collects and processes information about # objects in the scene. # # manipulator_object -- an object in the scene # that manipulates objects in the scene, # e.g. by moving them or by selecting # them # # From the point of the view of the user, # the major interactions with the scene # are through outputs from observer objects # and inputs to manipulator objects. # # illumination_object -- an object in the scene that # generates light that will reflect from or # pass through objects in the scene. An # illumination object may be a point source, # a diffuse source, or something in between # # molecular_object -- an object in the scene derived # from the properties of some portions of a # molecule. Think of the holographic projections # in Star Trek. A molecular object is not the # molecule, but the user can work with it # as if it were real. # # atom_object -- a molecular object derived from # the properties of individual atom sites in an # mmCIF entry (atom records in PDB entries) # # atom_object_ensemble -- an ensemble of atom_objects # # bond-object --a molecular object representing # a pair of bonded atoms. In the case of hydrogen # bonds, a third atom object may be included. # A bond object is an atom_object_ensemble # # group_object -- a molecular object derived from # the properties of individual chemical components # in an mmCIF entry (residues and het groups in # PDB entries). A group object is an atom_object_ # ensemble. # # group_object_ensemble -- an ensemble of group_objects # # chain_object -- a molecular object derived from # the properties of individual structural elements # of the asymmetric unit (from the struct_asym # category) in an mmCIF entry. A chain object is # a group_object_ensemble # # complex_object -- an ensemble of molecular_objects # # # Ensembles of objects will be handled as linked lists of # objects. In order to avoid issues of integrity of the # database, the links will be object references, rather # than list ordinals. # # This dictionary is a work in progress. We will be building a # a full scripting language for molecular graphics on top of # the existing mmCIF, imgCIF and symmetry dictionaries, while # adding features to support object-oriented programming. # # We need to do that last step cautiously. We wish to maintain # compatibility with UML, but also not to damage the solid # relational database support inherent in CIF. We also need # to keep an eye on the development of starDDL which is adding # methods support to CIF. # # The two issues that are essential to this work, but for which # we will have to experiment with representations are the # handling of methods and the handling of inheritance. # # We will adopt the view that each category is a class definition # and that each row is an object of that catgory. Thus a category # will also be used as an object type. A method will be a tag # within a category, distinguished from other tags by the # new DDL tag _item_type.function with the values 'variable' # and 'method' (default 'variable'). The valid types for # _item_type.code will now include all the categories as well # as the various 'primitive' types. The extension applies # both to variables and to methods, but further thought needs # to be given to the implicartions for normalization and the # handling of recursion. # # Methods may be category methods or may be instance methods. # A category method is associated with the category, rather # than with any particular object. # # Category methods are distinguished from instance methods # by the value of the new DDL tag _item_type.static # # The formal arguments for a method will be defined by # the new DDL category ITEM_PARAMETER. In addition to # use for methods, this will also be used to identify # key values for selection of an object in the super clas # for inheritance (see below) The tags in ITEM_PARAMETER # would be # _item_parameter.item_name the name of the method or variable # _item_parameter.parameter_type the type of the formal argument # _item_parameter.parameter_name the name of the formal argument # _item_parameter.parameter_ordinal the position of the formal # argument in a call # # Every parameter must be given a name, but it need not be given an # ordinal. Every parameter may be referred to by name or by ordinal # the reference by name is of the usual CIF form name value. # # The code of the method will be given in a text field that will # be parsed according to an approximation to the java or python # rules. The exact syntax is to be discussed and experimented with. # # Within a method, an argument may be referred to either by its # name or by its ordinal (counting from 0) in an array with the # name 'params', e.g. 'params[3]'. If an argument is a category # the tags within may be referenced with the usual dotted notation # (not the C-style ->, but the java style .). We'll flesh # this out more as we use it. # # The code of a method is given as a text field value for # _item_method.code # # Inheritance is a tricky issue. We will start with simple, java # style single inheritance. With the defintiion of a category # the new DDL category CATEGORY_EXTENDS with be user to specify # a super-category by use of the tags # # _category_extends.category_id the name of the subcategory # _category_extends.super_category_id # the name of the category # being extended # _category_extends.parent_object_reference # a reference within the # sub category to an object # of the super category from which # the values for inherited tags # should be drawn # The tag identified by _category_extends.parent_object_reference # will need a value unambiguously identifying the object of # the super category. If the super category has only one key column # the value given should be the value for the key. If the super # category has a composite key (multiple key columns), the value # should be a list of tag value pairs as a quoted string that # unambiguously identify a particular row. # # # The sub-category may then use all the tags defined for the # super-category as part of the sub-category. In the case where # a tag is defined in both, the sub category will only see the # sub-category defintion, as in java. The existing parent-child # relationships in DDL2 do not conform to this simple single # inheritance, and will still be used. # # One final issue that needs to be addressed is polymorphism. # For the moment we handle this is the same way as a C union. # Tags that may overlay one another are identified by listing # the overlaid tags as values for _item_related.related_name # with the value "overlaid" for _item_related.function_code # ############################################################################## ############################################################################## # # The SBEVSL dictionary provides definitions to support visualization # in structural biology # # The model used for visualization consists of views of images of scenes # # A scene is a composition of objects derived from transformed molecular # components such as atoms, groups (residues) and chains, from # map components, from labels and annotation, from scene-based light # sources, etc. # # The original molecular components may have been presented in any appropriate # coordinate frame. To produce a scene object the molecular # component is taken through the following possible transformations # in the following order when appropriate # # fractional-to-orthogonal coordinate transformations # _atom_sites.Cartn_transf_matrix[1][1] ... # orthogonal-to-orthogonal non-crystallographic symmetry transoformations # orthogonal-to-orthogonal crystallographic symmetry transformations # orthogonal-to-orthoganal axis-based repositionings (e.g. bond # rotations) # orthogonal-to-scene coordinate transformations. # scene-to-scene transformations # # # The resulting scene is described in 3 dimensions, using a right-handed # virtual laboratory coordinate system using units appropriate to # subsequent viewing transformations. # # # Composition operations for multiple scen objects are performed # partially before transofrmation to a view (as in buried onject # determination) and partially after transofrmation to a view # (as in hidden line removal) # # # # ############################################################################## ######################### ## CATEGORY_GROUP_LIST ## ######################### loop_ _category_group_list.id _category_group_list.parent_id _category_group_list.description 'inclusive_group' . ; Categories that belong to the dictionary extension. ; ############### ## SCENE_OBJ ## ############### save_scene_obj _category.description ; Data items in the SCENE_OBJ category provide information about objects in the scene. Every object has a poise, a selected property and a visible property. Additional properties may be defined in the various subclasses. If no poise is specified the object sits at the coordinates in the scene at which is was gewnerated. If a poise is specified the object is subject to a final rotation and translation. ; _category.mandatory_code no _category_key.name '_scene_obj.id' loop_ _category_group.id 'inclusive_group' 'scene_obj_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - A scene with one observer, one light an two atoms ; ; loop_ _scene_obj.id _scene_obj.poise _scene_obj.selected _scene_obj.visible observer1 poise1 no no light1 poise2 no yes atom1 . yes yes atom2 . yes yes ; save_ save__scene_obj.id _item_description.description ; The value of _scene_obj.id uniquely identifies a record in SCENE_OBJ list. In order to handle the various types of objects, the intermediate category SCENE_OBJ_ID is used ; loop_ _item.name _item.category_id _item.mandatory_code '_scene_obj.id' scene_obj yes _item_type.code scene_obj_id save_ save__scene_obj.poise _item_description.description ; The value of _scene_obj.poise identifies a final rotation and translation of the object identified by _scene_obj.id before placement in the scene. If no poise is given the coordinates of the object as generated are used. ; loop_ _item.name _item.category_id _item.mandatory_code '_scene_obj.poise' scene_obj no _item_type.code scene_xform_oper save_ save__scene_obj.selected _item_description.description ; The value of _scene_obj.selected identifies an object that may be manipulated by commands that do not explicitly specify the objects to which they apply. ; loop_ _item.name _item.category_id _item.mandatory_code '_scene_obj.selected' scene_obj no _item_type.code ucode _item_default.value yes loop_ _item_enumeration.value _item_enumeration.detail yes 'the object is subject to the action of commands with no specified object' no 'the object is not subject to the action of commands with no specified object' save_ save__scene_obj.visible _item_description.description ; The value of _scene_obj.visible identifies an object that is visible to observer objects and manipulator objects and whether the object intercepts rays from illumination objects. ; loop_ _item.name _item.category_id _item.mandatory_code '_scene_obj.visible' scene_obj no _item_type.code ucode _item_default.value yes loop_ _item_enumeration.value _item_enumeration.detail yes 'the object is visible to observers' no 'the object is not visible to observers' save_ ################## ## SCENE_OBJ_ID ## ################## save_scene_obj_id _category.description ; Data items in the SCENE_OBJ_ID category map _scene_obj.id values to particular objects. When new object types are added to scenes, they need to be added to this category. ; _category.mandatory_code no _category_key.name '_scene_obj_id.id' loop_ _category_group.id 'inclusive_group' 'scene_obj_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - A scene with one observer, one light an two atoms continues to the SCENE_OBJ_ID category ; ; loop_ _scene_obj.id _scene_obj.poise _scene_obj.selected _scene_obj.visible observer1 poise1 no no light1 poise2 no yes atom1 . yes yes atom2 . yes yes loop_ _scene_obj_id.id _scene_obj_id.observer_obj _scene_obj_id.illumination_obj _scene_obj_id.molecular_obj observer1 observer1 . . light1 . light1 . atom1 . . atom1 atom2 . . atom2 ; save_ save__scene_obj_id.id _item_description.description ; The value of _scene_obj_id.id uniquely identifies a record in SCENE_OBJ_ID list. The purpose of this category is to transfer an id to actual objects. This identifier need not be a number and is usually made identical to the id of the object that it is mapping. It is possible to map the same object to multiple ids, but this is not recommended because the object may inherit properties from the scene object. Note that the MOLECULAR_OBJ performs a similar mapping role. ; loop_ _item.name _item.category_id _item.mandatory_code '_scene_obj_id.id' scene_obj_id yes _item_type.code code loop_ save_ save__scene_obj_id.observer_obj _item_description.description ; The value of _scene_obj_id.observer_obj identifies an observer object to be associated with _scene_obj_id.id ; loop_ _item.name _item.category_id _item.mandatory_code '_scene_obj_id.observer_obj' scene_obj_id yes _item_type.code observer_obj _item_related.related_name _item_related.function_code '_scene_obj_id.illumination_obj' overlaid '_scene_obj_id.manipulator_obj' overlaid '_scene_obj_id.molecular_obj' overlaid save_ save__scene_obj_id.illumination_obj _item_description.description ; The value of _scene_obj_id.illumination_obj identifies an illumination object to be associated with _scene_obj_id.id ; loop_ _item.name _item.category_id _item.mandatory_code '_scene_obj_id.illumination_obj' scene_obj_id yes _item_type.code illumination_obj _item_related.related_name _item_related.function_code '_scene_obj_id.observer_obj' overlaid '_scene_obj_id.manipulator_obj' overlaid '_scene_obj_id.molecular_obj' overlaid save_ save__scene_obj_id.manipulator_obj _item_description.description ; The value of _scene_obj_id.manipulator_obj identifies a manipulator object to be associated with _scene_obj_id.id ; loop_ _item.name _item.category_id _item.mandatory_code '_scene_obj_id.manipulator_obj' scene_obj_id yes _item_type.code manipulator_obj _item_related.related_name _item_related.function_code '_scene_obj_id.observer_obj' overlaid '_scene_obj_id.illumination_obj' overlaid '_scene_obj_id.molecular_obj' overlaid save_ save__scene_obj_id.molecular_obj _item_description.description ; The value of _scene_obj_id.molecular_obj identifies a molecular object to be associated with _scene_obj_id.id ; loop_ _item.name _item.category_id _item.mandatory_code '_scene_obj_id.molecular_obj' scene_obj_id yes _item_type.code molecular_obj _item_related.related_name _item_related.function_code '_scene_obj_id.observer_obj' overlaid '_scene_obj_id.illumination_obj' overlaid '_scene_obj_id.manipulator_obj' overlaid save_ ################### ## MOLECULAR_OBJ ## ################### save_molecular_obj _category.description ; Data items in the MOLECULAR_OBJ category map _scene_obj_id.molecular_obj values to particular molecular objects. When new object types are added to the molecular object types, they need to be added to this category. ; _category.mandatory_code no _category_key.name '_molecular_obj.id' loop_ _category_group.id 'inclusive_group' 'scene_obj_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - A scene with one observer, one light an two atoms continues to the MOLECULAR category ; ; loop_ _scene_obj.id _scene_obj.poise _scene_obj.selected _scene_obj.visible observer1 poise1 no no light1 poise2 no yes atom1 . yes yes atom2 . yes yes loop_ _scene_obj_id.id _scene_obj_id.observer_obj _scene_obj_id.illumination_obj _scene_obj_id.molecular_obj observer1 observer1 . . light1 . light1 . atom1 . . atom1 atom2 . . atom2 loop_ _molecular_obj.id _molecular_obj.atom_obj _molecular_obj.atom_ensemble_obj _molecular_obj.bond_obj _molecular_obj.group_obj _molecular_obj.group_ensemble_obj _molecular_obj.chain_obj _molecular_obj.chain_ensemble_obj atom1 atom1 . . . . . . atom1 atom1 . . . . . . ; save_ save__molecular_obj.id _item_description.description ; The value of _molecular_obj.id uniquely identifies a record in MOLECULAR_OBJ list. The purpose of this category is to transfer an id to actual objects. This identifier need not be a number and is usually made identical to the id of the object that it is mapping. It is possible to map the same object to multiple ids, but this is not recommended because the object may inherit properties from the scene object. ; loop_ _item.name _item.category_id _item.mandatory_code '_molecular_obj.id' molecular_obj yes _item_type.code code loop_ save_ save__molecular_obj.atom_obj _item_description.description ; The value of _molecular_obj.atom_obj identifies an atom object to be associated with _molecular_obj.id ; loop_ _item.name _item.category_id _item.mandatory_code '_molecular_obj.atom_obj' molecular_obj yes _item_type.code atom_obj _item_related.related_name _item_related.function_code '_molecular_obj.atom_ensemble_obj overlaid '_molecular_obj.bond_obj overlaid '_molecular_obj.group_obj overlaid '_molecular_obj.group_ensemble_obj overlaid '_molecular_obj.chain_obj overlaid '_molecular_obj.chain_ensemble_obj overlaid save_ save__molecular_obj.atom_ensemble_obj _item_description.description ; The value of _molecular_obj.atom_ensemble_obj identifies an atom ensemble object to be associated with _molecular_obj.id ; loop_ _item.name _item.category_id _item.mandatory_code '_molecular_obj.atom_ensemble_obj' molecular_obj yes _item_type.code atom_ensemble_obj _item_related.related_name _item_related.function_code '_molecular_obj.atom_obj' overlaid '_molecular_obj.bond_obj overlaid '_molecular_obj.group_obj overlaid '_molecular_obj.group_ensemble_obj overlaid '_molecular_obj.chain_obj overlaid '_molecular_obj.chain_ensemble_obj overlaid save_ save__molecular_obj.bond_obj _item_description.description ; The value of _molecular_obj.bond_obj identifies a bond object to be associated with _molecular_obj.id ; loop_ _item.name _item.category_id _item.mandatory_code '_molecular_obj.bond_obj' molecular_obj yes _item_type.code bond_obj _item_related.related_name _item_related.function_code '_molecular_obj.atom_obj' overlaid '_molecular_obj.atom_ensemble_obj overlaid '_molecular_obj.group_obj overlaid '_molecular_obj.group_ensemble_obj overlaid '_molecular_obj.chain_obj overlaid '_molecular_obj.chain_ensemble_obj overlaid save_ save__molecular_obj.group_obj _item_description.description ; The value of _molecular_obj.group_obj identifies a group object to be associated with _molecular_obj.id ; loop_ _item.name _item.category_id _item.mandatory_code '_molecular_obj.group_obj' molecular_obj yes _item_type.code group_obj _item_related.related_name _item_related.function_code '_molecular_obj.atom_obj' overlaid '_molecular_obj.atom_ensemble_obj overlaid '_molecular_obj.bond_obj overlaid '_molecular_obj.group_ensemble_obj overlaid '_molecular_obj.chain_obj overlaid '_molecular_obj.chain_ensemble_obj overlaid save_ save__molecular_obj.group_ensemble_obj _item_description.description ; The value of _molecular_obj.group_ensemble_obj identifies a group object to be associated with _molecular_obj.id ; loop_ _item.name _item.category_id _item.mandatory_code '_molecular_obj.group_ensemble_obj' molecular_obj yes _item_type.code group_ensemble_obj _item_related.related_name _item_related.function_code '_molecular_obj.atom_obj' overlaid '_molecular_obj.atom_ensemble_obj overlaid '_molecular_obj.bond_obj overlaid '_molecular_obj.group_obj overlaid '_molecular_obj.chain_obj overlaid '_molecular_obj.chain_ensemble_obj overlaid save_ save__molecular_obj.chain_obj _item_description.description ; The value of _molecular_obj.chain_obj identifies a chain object to be associated with _molecular_obj.id ; loop_ _item.name _item.category_id _item.mandatory_code '_molecular_obj.chain_obj' molecular_obj yes _item_type.code chain_obj _item_related.related_name _item_related.function_code '_molecular_obj.atom_obj' overlaid '_molecular_obj.atom_ensemble_obj overlaid '_molecular_obj.bond_obj overlaid '_molecular_obj.group_obj overlaid '_molecular_obj.group_ensemble_obj overlaid '_molecular_obj.chain_ensemble_obj overlaid save_ save__molecular_obj.chain_ensemble_obj _item_description.description ; The value of _molecular_obj.chain_ensemble_objj identifies a chain ensembler object to be associated with _molecular_obj.id ; loop_ _item.name _item.category_id _item.mandatory_code '_molecular_obj.chain_ensemble_obj' molecular_obj yes _item_type.code chain_ensemble_obj _item_related.related_name _item_related.function_code '_molecular_obj.atom_obj' overlaid '_molecular_obj.atom_ensemble_obj overlaid '_molecular_obj.bond_obj overlaid '_molecular_obj.group_obj overlaid '_molecular_obj.group_ensemble_obj overlaid '_molecular_obj.chain_obj overlaid save_ ############## ## ATOM_OBJ ## ############## save_atom_obj _category.description ; Data items in the ATOM_OBJ category provide information about the those scene objects derived from records in the ATOM_SITE category ; _category.mandatory_code no _category_key.name '_atom_obj.id' loop_ _category_group.id 'inclusive_group' 'scene_obj_group' _category_extends.category_id atom_obj _category_extends.super_category_id atom_site _category_extends.parent_object_reference '_atom_obj.atom_site' loop_ _category_examples.detail _category_examples.case ; Example to be provided ; ; ; save__atom_obj.atom_site _item_description.description ; This data item give the atom site that from which this atom object inherits its propoerties. Multiple atom objects may inherit properties from the same site, e.g. when crystallopgraphic symmetry is applied. ; loop_ _item.name _item.category_id _item.mandatory_code '_atom_obj.atom_site' atom_obj yes _item_type.code code save_ save__atom_obj.color _item_description.description ; The color associated with the atom object. The color of the atom object is not necessarily the color of the atom object as viewed. The viewed color is a function of the atom object color, shading, specularity, light source colors, ambient fogging and transparent objects between the object and the eye of the viewer. ; loop_ _item.name _item.category_id _item.mandatory_code '_atom_obj.color' atom_obj no _item_type.code color save_ save__atom_obj.id _item_description.description ; The value of _atom_obj.id must uniquely identify a record in the ATOM_OBJ list. Note that this item need not be a number; it can be any unique identifier. ; loop_ _item.name _item.category_id _item.mandatory_code '_atom_obj.id' atom_obj yes _item_type.code code save_ save__atom_obj.label _item_description.description ; The value of _atom_obj.label is a descriptive label given as an object within the scene, as opposed to labels applied in creating a view of the scene. Such labels are not very useful in display on a screen, but are useful in cave views. The label is assumed to be an object 1 scene unit high standing vertically and running left to right parallel the x-axis as viewed down the z-axis, with the lower left corner of the first character at the origin, then transformed by the transform given by _atom_obj.label_xform and finally translated by the scene coordinates of the atom object. ; loop_ _item.name _item.category_id _item.mandatory_code '_atom_obj.label' atom_obj no _item_type.code text save_ save__atom_obj.label_xform _item_description.description ; The value of _atom_obj.xfrom is a transform applied to a label object in a scene before translation by object coordinates. ; loop_ _item.name _item.category_id _item.mandatory_code '_atom_obj.label' atom_obj no _item_type.code scene_xform_oper save_ save__atom_obj.next_atom_obj _item_description.description ; The value of _atom_obj.next_atom_obj is a reference to the next atom object in a sequential list of atom objects. The value given should be the value of the _atom_obj.atom_site_id that uniquely identifies the atom object that is next in the list, or should be a period if no atom object follows this one ; loop_ _item.name _item.category_id _item.mandatory_code '_atom_obj.next_atom_obj' atom_obj no _item_type.code atom_obj save_ save__atom_obj.radius _item_description.description ; The radius of the atom object in the scene when drawn as a sphere. Usually this will be the tranformed Van der Waals radius of the atom. ; loop_ _item.name _item.category_id _item.mandatory_code '_atom_obj.radius' atom_obj no _item_type.code float save_ save__atom_obj.scene_x _item_description.description ; The x atom object scene coordinate after application of all transformations. This is the result of the application of the transformation to orthogonal coordinates from fractional coordinates given by _atom_sites.Cartn_transf_matrix[][] and _atom_sites.Cartn_transf_vector[] as |x'| |11 12 13| |x| |1| |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2| |z'| |31 32 33| |z| |3| and the application of non crystallographic symmetry as specified by _atom_obj.site_ncs_oper_id, followed by the application of crystallographic symmetry as specified by __atom_obj.site_symmetry, and then by the operation specified by _atom_obj.site_object_xform_oper_id ; loop_ _item.name _item.category_id _item.mandatory_code '_atom_obj.scene_x' atom_obj no _item_type.code float _item_sub_category.id cartesian_coordinate save_ save__atom_obj.scene_y _item_description.description ; The y atom object scene coordinate after application of all transformations. This is the result of the application of the transformation to orthogonal coordinates from fractional coordinates given by _atom_sites.Cartn_transf_matrix[][] and _atom_sites.Cartn_transf_vector[] as |x'| |11 12 13| |x| |1| |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2| |z'| |31 32 33| |z| |3| and the application of non crystallographic symmetry as specified by _atom_obj.site_ncs_oper_id, followed by the application of crystallographic symmetry as specified by __atom_obj.site_symmetry, and then by the operation specified by _atom_obj.site_object_xform_oper_id ; loop_ _item.name _item.category_id _item.mandatory_code '_atom_obj.scene_y' atom_obj no _item_type.code float _item_sub_category.id cartesian_coordinate save_ save__atom_obj.scene_z _item_description.description ; The z atom object scene coordinate after application of all transformations. This is the result of the application of the transformation to orthogonal coordinates from fractional coordinates given by _atom_sites.Cartn_transf_matrix[][] and _atom_sites.Cartn_transf_vector[] as |x'| |11 12 13| |x| |1| |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2| |z'| |31 32 33| |z| |3| and the application of non crystallographic symmetry as specified by _atom_obj.site_ncs_oper_id, followed by the application of crystallographic symmetry as specified by __atom_obj.site_symmetry, and then by the operation specified by _atom_obj.site_object_xform_oper_id ; loop_ _item.name _item.category_id _item.mandatory_code '_atom_obj.scene_z' atom_obj no _item_type.code float _item_sub_category.id cartesian_coordinate save_ save__atom_obj.site_symmetry _item_description.description ; The symmetry code of the crystallographic symmetry operation, if any, applied to the atom site given by _atom_obj.atom_site_id in generating this atom object. This operation is applied after both transformation to othogonal coordinates and after application of non-crystallographic symmetry. ; _item.name '_atom_obj.site_symmetry' _item.category_id _atom_obj _item.mandatory_code implicit _item_default.value 1_555 _item_type.code symop loop_ _item_examples.case _item_examples.detail . 'no symmetry or translation to site' 4 '4th symmetry operation applied' 7_645 '7th symm. posn.; +a on x; -b on y' save_ save__atom_obj.site_ncs_oper_id _item_description.description ; The non-crystallographic symmetry operation, if any, applied to the atom site given by _atom_obj.atom_site_id in generating this atom object. This operation is applied after trsansformation to othogonal coordinates and before applying crystallographic symmetry. This item is effectively a pointer to _struct_ncs_oper.id ; _item.name '_atom_obj.site_ncs_oper_id' _item.category_id _atom_obj _item.mandatory_code no _item_type.code struct_ncs_oper loop_ _item_examples.case _item_examples.detail . 'no ncs operator applied' ncsop1 'ncs operator ncsop1 applied' save_ save__atom_obj.site_object_xform_oper _item_description.description ; The operator id of the object transform operation, if any, applied to the atom site given by _atom_obj.atom_site_id in generating this atom object. This item is effectively a pointer to _scene_xform_oper.id ; _item.name '_atom_obj.site_object_xform_oper_id' _item.category_id _atom_obj _item.mandatory_code no _item_type.code scene_xform_oper loop_ _item_examples.case _item_examples.detail . 'no scene transform operator applied' sxop1 'scene transform operator sxop1 applied' save_ save_ save__atom_obj.site_object_scene_oper_id _item_description.description ; The operator id of the scene transform operation, if any, applied to the atom site given by _atom_obj.atom_site_id in generating this atom object after application of _atom_obj.site_object_xform_oper, e.g. for a bond rotation. This item is a effectively a pointer to _scene_xform_oper.id ; _item.name '_atom_obj.site_object_xform_oper_id' _item.category_id _atom_obj _item.mandatory_code no _item_type.code scene_xform_oper loop_ _item_examples.case _item_examples.detail . 'no scene transform operator applied' sxop2 'scene transform operator sxop1 applied' save_ save_ ####################### ## ATOM_OBJ_ENSEMBLE ## ####################### save_atom_obj_ensemble _category.description ; Data items in the ATOM_OBJ_ENSEMBLE category describe ensembles of atom objects. ; _category.mandatory_code no loop_ _category_key.name '_atom_obj_ensemble.id' loop_ _category_group.id 'inclusive_group' 'scene_obj_group' _category_extends.category_id atom_obj_ensemble _category_extends.super_category_id atom_obj _category_extends.parent_object_reference '_atom_obj_ensemble.atom_obj' loop_ _category_examples.detail _category_examples.case ; Example 1 -- A pair of atoms to compose a bond ; ; loop_ _atom_obj_ensemble.ensemble_id _atom_obj_ensemble.id _atom_obj_ensemble.atom_obj _atom_obj_ensemble.next_item _atom_obj_ensemble.prev_item _atom_obj_ensemble.head bond1 b1a1 atom1 b1a2 . b1a1 bond1 b1a2 atom2 . b1a1 b1a1 ; #>>>> to be continued -- HJB, 14 Nov 06 ######################### ## ATOM_OBJ_ATTRIBUTES ## ######################### save_atom_obj_attributes _category.description ; Data items in the ATOM_OBJ_ATTRIBUTES category extend the information in the ATOM_OBJ category with additional information giving details about the attributes of a given atom site. All the values associated with tags of the atom site are also attributes of the atom object. One atom object can have many attributes. ; _category.id chem_comp_properties _category.mandatory_code no loop_ _category_key.name '_atom_site_attributes.atom_side' '_atom_site_attributes.attribute' loop_ _category_group.id 'inclusive_group' 'atom_group' loop_ _category_extends.category_id _category_extends.super_category_id _category_extends.parent_object_reference 'atom_obj_attributes' 'atom_obj' '_atom_obj_attributes.atom_obj' save_ save__atom_obj_attributes.atom_obj _item_description.description ; The tag to hold a reference to the paticular row in the atom_obj category ; _item.name '_atom_obj_attributes.atom_site' _item.category_id atom_obj_attributes _item.mandatory_code yes _item_type.code atom_obj _item_parameter.item_name '_atom_obj_attributes.atom_site' _item_parameter.parameter_type code _item_parameter.parameter_name _atom_obj.id _item_parameter.parameter_ordinal 0 save_ save__atom_obj_attributes.attribute _item_description.description ; An attribute of a particular atom object, such as being selected, an atom in a member of a disulfide bridge, or in a polar residue, or bonded to other atoms. All the specific parameters of the atom object are also attributes The initial enumeration of attributes is from the RasMol 2.7.3 manual ; _item.name '_atom_obj_attributes.attribute' _item.category_id atom_obj_attributes _item.mandatory_code yes _item_type.code uline loop_ _item_enumeration.value _item_enumeration.detail 'at' ; The atom at this atom site is a member of one of the complementary nucleotides adenosine and thymidine (A and T, respectively) ; 'acidic' ; The atom at this atom site is a member of one of the acidic amino acids, i.e. asp and glu, as contrasted with the 'neutral' and 'basic' amino acids ; 'acyclic' ; The atom at this atom site is a member of one of the acyclic amino acids, i.e. amino acids that do not contain a cycle or ring ; 'aliphatic' ; The atom at this atom site is a member of one of the aliphatic amino acids, i.e. ala, gly, ile, leu and val. ; 'alpha' ; The atom at this atom site is an alpha carbon in a protein molecule. ; 'amino' ; The atom at this atom site is a member of one of the amino acids, as opposed to components that are not amino acids, e.g. nucleic acids and heterogeneous (nonstandard) groups. ; 'aromatic' ; The atom at this atom site is a member of one of the amino acids containing aromatic rings, i.e. his, phe, trp and tyr. Because they contain aromatic rings all members of this set also have the property 'cyclic'. ; 'backbone' ; The atom at this atom site is a member of an amino acid and is one of the four atoms of each amino acid that form the polypeptide N-C-C-O backbone of proteins, or the atom at this atom site is a member of a the sugar phosphate backbone of a nucleic acids. Atoms in amino acids and nucleic acids are either 'sidechain'. ; 'basic' ; The atom at this atom site is a member of one of the basic amino acids, i.e. arg, his and lys, as contrasted with the 'acidic' and 'neutral' amino acids. ; 'bonded' ; The atom at this atom site is bonded to at least one other atom. ; 'buried' ; The atom at this atom site is a member of one of the amino acids that tend (prefer) to be buried inside protein, away from contact with solvent molecules. This property refers to the intrinsic properties of the amino acids not to the actual solvent accessibility for the current protein. ; 'cg' ; The atom at this atom site is a member of one of the complementary nucleotides cytidine and guanosine (C and G, respectively) ; 'charged' ; The atom at this atom site is a member of one of the charged amino acids, i.e. 'acidic' or 'basic'. ; 'cyclic' ; The atom at this atom site is one of the the heterogeneous amino acids containing a cycle or rings. ; 'cystine' ; The atom at this atom site is a member of one of the cysteine residues that form part of a disulphide bridge, i.e. half cystines. This is not the same as 'cys', which includes cycteines that are not part of a disulphide bridge. ; 'helix' ; The atom at this atom site is part of a protein alpha helix. ; 'hetero' ; The atom at this atom site is one of the heterogeneous atoms in the molecule. ; 'hydrogen' ; The atom at this atom site is one of the hydrogen, deuterium and tritium atoms of the current molecule. ; 'hydrophobic' ; The atom at this atom site is one of the heterogeneous the hydrophobic amino acids. These are the amino acids Ala, Leu, Val, Ile, Pro, Phe, Met and Trp. All amino acids are classified as either 'hydrophobic' or 'polar'. This set is equivalent to the RasMol atom expressions "ala, leu, val, ile, pro, phe, met, trp" and "amino and not polar". ; 'ion' ; The atom at this atom site is one of the heterogeneous heterogeneous phosphate or sulphate ions. in the current molecule data file. All 'solvent' atoms are classified as either 'water' or 'ions'. ; 'large' ; The atom at this atom site is a member of an amino acid classified as 'large'. Amino acids are classified as 'small', 'medium' or 'large'. 'ligand' ; The atom at this atom site is a member of heterogeneous cofactor or ligand. ; 'medium' ; The atom at this atom site is a member of an amino acid classified as 'medium'. All amino acids are classified as 'small', 'medium' or 'large'. ; 'neutral' ; The atom at this atom site is a member of one of the neutral amino acids. All amino acids are classified as 'acidic', 'basic' or 'neutral'. ; 'nucleic' ; The atom at this atom site is a member of one of the nucleic acids, i.e. one of the four nucleotide bases adenosine, cytidine, guanosine and thymidine (A, C, G and T, respectively). ; 'polar' ; The atom at this atom site is a member of one of the the polar amino acids. All amino acids are classified as either 'hydrophobic' or 'polar'. ; 'protein' ; The atom at this atom site is a member of a proteins, i.e. member of one of the 'amino' acids or of one of the common post-translation modifications. ; 'purine' ; The atom at this atom site is a member of a purine nucleotide. The purine nucleotides are the bases adenosine and guanosine (A and G, respectively). All nucleotides are either 'purines' or 'pyrimidines'. ; 'pyrimidine' ; The atom at this atom site is a member of a pyrimidine nucleotide. The pyrimidine nucleotides are the bases cytidine and thymidine (C and T, respectively). ; 'sheet' ; The atom at this atom site is part of a protein beta sheet. ; 'sidechain' ; The atom at this atom site is a member of a functional sidechain of an amino acids or a member of the base of a nucleotide. This atom is not part of the polypeptide N-C-C-O backbone of a protein nor part of the sugar phosphate backbone of nucleic acids. ; 'small' ; The atom at this atom site is a member of an amino acid classified as 'small'. All amino acids are classified as 'small', 'medium' or 'large'. ; 'solvent' ; The atom at this atom site is a member of a solvent molecule or ion, i.e. the heterogeneous water molecules or phosphate or sulphate ions. ; 'surface' ; The atom at this atom site is a member of one of the amino acids that tend (prefer) to be on the surface of proteins, in contact with solvent molecules. This attribute refers to the amino acids preference and not the actual solvent accessibility for the current protein. ; 'turn' ; The atom at this atom site is an atoms that forms part of a protein turn. 'water' ; heterogeneous water molecules. This includes both ligand and solvent molecules. ; ########################## ## CHEM_COMP_PROPERTIES ## ########################## save_chem_comp_properties _category.description ; Data items in the CHEM_COMP_PROPERTIES category give details about intrinsic properties of the chemical components. A given chemical component may have many overlapping properties. ; _category.id chem_comp_properties _category.mandatory_code no loop_ _category_key.name '_chem_comp_properties.id' '_chem_comp_properties.property' loop_ _category_group.id 'inclusive_group' 'chem_comp_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - Assignment of normal properties for the common amino acids as given in the RasMol manual ; ; loop_ _chem_comp_properties.property _chem_comp_properties.id # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val acidic asp acidic glu # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val acyclic ala acyclic arg acyclic asn acyclic asp acyclic cys acyclic glu acyclic gln acyclic gly acyclic ile acyclic leu acyclic lys acyclic met acyclic ser acyclic thr acyclic val # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val aliphatic ala aliphatic gly aliphatic ile aliphatic leu aliphatic val # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val aromatic his aromatic phe aromatic trp aromatic tyr # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val basic arg basic his basic lys # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val buried ala buried cys buried cys ile buried leu buried met buried met phe trp val buried met phe trp val buried met phe trp val # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val charged arg charged asp charged glu charged his charged lys # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val cyclic his cyclic phe cyclic pro cyclic trp cyclic tyr # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val hydrophobic ala hydrophobic gly hydrophobic ile hydrophobic leu hydrophobic met hydrophobic pro hydrophobic trp hydrophobic tyr hydrophobic val # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val large arg glu gln his ile leu lys mrt phe trp tyr # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val medium asn asp cyspro thr val # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val negative asp glu # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val neutral ala asn cys gln gly his ile leu met phe pro ser thr trp tyr val # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val polar arg asn asp cys glu gln his lys ser thr trp tyr val # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val positive arg his lys # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val small ala small gly small ser # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val surface arg surface asn surface asp surface glu surface gln surface gly surface his surface lys surface pro surface ser surface thr surface tyr # ala asn cys gln his leu met pro thr tyr # arg asp glu gly ile lys phe ser trp val ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save__chem_comp_properties.property _item_description.description ; A property of a chemical component, such as being polar or small or a member of the AT set The initial enumeration of properties is from the RasMol 2.7.3 manual These properties are intrinsic propoerties of the given shemical components as opposed to the extrinsic properties, such as 'selected' in the ENSEMBLE_COMP_PROPERTIES category ; _item.name '_chem_comp_properties.property' _item.category_id chem_comp_properties _item.mandatory_code yes _item_type.code uline loop_ _item_enumeration.value _item_enumeration.detail 'at' ; The atoms in this component are members of one of the complementary nucleotides adenosine and thymidine (A and T, respectively) ; 'acidic' ; The atoms in this component are members of one of the acidic amino acids, i.e. asp and glu, as contrasted with the 'neutral' and 'basic' amino acids ; 'acyclic' ; The atoms in this component are members of one of the acyclic amino acids, i.e. amino acids that do not contain a cycle or ring ; 'aliphatic' ; The atoms in this component are members of one of the aliphatic amino acids, i.e. ala, gly, ile, leu and val. ; 'amino' ; The atoms in this component are members of one of the amino acids, as opposed to components that are not amino acids, e.g. nucleic acids and heterogeneous (nonstandard) groups. ; 'aromatic' ; The atoms in this component are members of one of the amino acids containing aromatic rings, i.e. his, phe, trp and tyr. Because they contain aromatic rings all members of this set also have the property 'cyclic'. ; 'basic' ; The atoms in this component are members of one of the basic amino acids, i.e. arg, his and lys, as contrasted with the 'acidic' and 'neutral' amino acids. ; 'buried' ; The atoms in this component are members of one of the amino acids that tend (prefer) to be buried inside protein, away from contact with solvent molecules. This property refers to the intrinsic properties of the amino acids not to the actual solvent accessibility for the current protein. ; 'cg' ; The atoms in this component are members of one of the complementary nucleotides cytidine and guanosine (C and G, respectively) ; 'charged' ; The atoms in this component are members of one of the charged amino acids, i.e. 'acidic' or 'basic'. ; 'cyclic' ; The atoms in this component are members of one of the heterogeneous amino acids containing a cycle or rings. ; 'cystine' ; The atoms in this component are members of one of the cysteine residues that form part of a disulphide bridge, i.e. half cystines. This is not the same as 'cys', which includes cycteines that are not part of a disulphide bridge. ; 'hydrophobic' ; The atoms in this component are members of one of the the hydrophobic amino acids. These are the amino acids Ala, Leu, Val, Ile, Pro, Phe, Met and Trp. All amino acids are classified as either 'hydrophobic' or 'polar'. This set is equivalent to the RasMol atom expressions "ala, leu, val, ile, pro, phe, met, trp" and "amino and not polar". ; 'large' ; The atoms in this component are members of an amino acid classified as 'large'. Amino acids are classified as 'small', 'medium' or 'large'. 'medium' ; The atoms in this component are members of an amino acid classified as 'medium'. All amino acids are classified as 'small', 'medium' or 'large'. ; 'neutral' ; The atoms in this component are members of one of the neutral amino acids. All amino acids are classified as 'acidic', 'basic' or 'neutral'. ; 'nucleic' ; The atoms in this component are members of one of the nucleic acids, i.e. one of the four nucleotide bases adenosine, cytidine, guanosine and thymidine (A, C, G and T, respectively). ; 'polar' ; The atoms in this component are members of one of the the polar amino acids. All amino acids are classified as either 'hydrophobic' or 'polar'. ; 'protein' ; The atoms in this component are members of a protein, i.e. member of one of the 'amino' acids or of one of the common post-translation modifications. ; 'purine' ; The atoms in this component are members of a purine nucleotide. The purine nucleotides are the bases adenosine and guanosine (A and G, respectively). All nucleotides are either 'purines' or 'pyrimidines'. ; 'pyrimidine' ; The atoms in this component are members of a pyrimidine nucleotide. The pyrimidine nucleotides are the bases cytidine and thymidine (C and T, respectively). ; 'small' ; The atoms in this component are members of an amino acid classified as 'small'. All amino acids are classified as 'small', 'medium' or 'large'. ; 'surface' ; The atoms in this component are members of one of the amino acids that tend (prefer) to be on the surface of proteins, in contact with solvent molecules. This attribute refers to the amino acids preference and not the actual solvent accessibility for the current protein. ; save_ ########### ## COLOR ## ########### save_color _category.description ; Data items in the color category describe scene object colors. These are the colors of the objects, not necessarily the colors of the objects as viewed. The viewed color is a function of the object color, shading, specularity, light source colors, ambient fogging and transparent objects between the object and the eye of the viewer. ; _category.id color _category.mandatory_code no _category_key.name '_color.id' loop_ _category_group.id 'inclusive_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - The definition of a simple 8 opaque color palette ; ; loop_ _color.id _color.red _color.green _color.blue _color.alpha black 0 0 0 1 blue 0 0 1 1 green 0 1 0 1 cyan 0 1 1 1 red 1 0 0 1 magenta 1 0 1 1 yellow 1 1 0 1 while 1 1 1 1 ; save_ save__color.color _item_description.description ; A static constructor (actually a factory method) to return a color from rbga parameters. ; _item_type.code color _item_type.function method _item_type.static yes loop_ _item_parameter.item_name # the name of the method or variable _item_parameter.parameter_type # the type of the formal argument _item_parameter.parameter_name # the name of the formal argument _item_parameter.parameter_ordinal # the position of the formal argument in a call '_color.color' float red 1 '_color.color' float green 2 '_color.color' float blue 3 '_color.color' float alpha 4 _item_method.code ; color newcolor = new color(); newcolor.red = red; newcolor.green = green; newcolor.blue = blue; newcolor.alpha = alpha; return newcolor; ; save_ save__color.id _item_description.description ; A unique identifier for a color. ; _item.name '_color.id' _item.category_id color _item.mandatory_code no _item_type.code code save_ save__color.red _item_description.description ; The red component of a color given in the range of 0 through 1 This is an additive color component ; _item.name '_color.red' _item.category_id color _item.mandatory_code no _item_type.code float _item_range.minimum _item_range.maximum 0.0 0.0 0.0 1.0 1.0 0.0 save_ save__color.green _item_description.description ; The green component of a color given in the range of 0 through 1 This is an additive color component ; _item.name '_color.green' _item.category_id color _item.mandatory_code no _item_type.code float _item_range.minimum _item_range.maximum 0.0 0.0 0.0 1.0 1.0 0.0 save_ save__color.blue _item_description.description ; The blue component of a color given in the range of 0 through 1 This is an additive color component ; _item.name '_color.blue' _item.category_id color _item.mandatory_code no _item_type.code float _item_range.minimum _item_range.maximum 0.0 0.0 0.0 1.0 1.0 0.0 save_ save__color.alpha _item_description.description ; The transparency of a color in the range of 0 through 1. A value of 1 is opaque. A value of 1 is completely transparent. ; _item.name '_color.green' _item.category_id color _item.mandatory_code no _item_type.code float _item_range.minimum _item_range.maximum 0.0 0.0 0.0 1.0 1.0 0.0 save_ ###################### ## SCENE_XFORM_OPER ## ###################### save_scene_xform_oper _category.description ; Data items in the scene_xform_oper category describe the scene transformation operations. These operations scale and transform from the coordinates used in atom_site records to the coordinates used in describing objects in a scene after application of NCS and crystallographic transforms, but before the application of any viewing transforms. Each operator is specified as a matrix and a subsequent translation vector. Operators need not represent proper rotations. ; _category.id scene_xform_oper _category.mandatory_code no _category_key.name '_scene_xform_oper.id' loop_ _category_group.id 'inclusive_group' 'struct_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - a transform from orthogonal Angstroms to RasMol units with and inversion of the Z-axis and a centering shift down 2500 RasMol units in X and up 500 RasMol units in Z. ; ; _scene_xform_oper.id sxop1 _scene_xform_oper.matrix[1][1] 250.0 _scene_xform_oper.matrix[1][2] 0.0 _scene_xform_oper.matrix[1][3] 0.0 _scene_xform_oper.matrix[2][1] 0.0 _scene_xform_oper.matrix[2][2] 250.0 _scene_xform_oper.matrix[2][3] 0.0 _scene_xform_oper.matrix[3][1] 0.0 _scene_xform_oper.matrix[3][2] 0.0 _scene_xform_oper.matrix[3][3] -250.0 _scene_xform_oper.vector[1] -2500.0 _scene_xform_oper.vector[2] 0.0 _scene_xform_oper.vector[3] 500.0 _scene_xform_oper.details ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save__scene_xform_oper.details _item_description.description ; A description of special aspects of the scene transformation operator. ; _item.name '_scene_xform_oper.details' _item.category_id scene_xform_oper _item.mandatory_code no _item_type.code text _item_examples.case ; The operation is given as a precise threefold rotation, despite the fact the best rms fit between domain 1 and domain 2 yields a rotation of 119.7 degrees and a translation of 0.13 angstroms. ; save_ save__scene_xform_oper.id _item_description.description ; The value of _scene_xform_oper.id must uniquely identify a record in the scene_xform_oper list. Note that this item need not be a number; it can be any unique identifier. ; loop_ _item.name _item.category_id _item.mandatory_code '_scene_xform_oper.id' scene_xform_oper yes '_struct_ncs_ens_gen.oper_id' struct_ncs_ens_gen yes loop_ _item_linked.child_name _item_linked.parent_name '_struct_ncs_ens_gen.oper_id' '_scene_xform_oper.id' _item_type.code code save_ save__scene_xform_oper.matrix[1][1] _item_description.description ; The [1][1] element of the 3x3 matrix component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.matrix[1][1]' _item.category_id scene_xform_oper _item.mandatory_code no _item_sub_category.id matrix _item_type.code float save_ save__scene_xform_oper.matrix[1][2] _item_description.description ; The [1][2] element of the 3x3 matrix component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.matrix[1][2]' _item.category_id scene_xform_oper _item.mandatory_code no _item_sub_category.id matrix _item_type.code float save_ save__scene_xform_oper.matrix[1][3] _item_description.description ; The [1][3] element of the 3x3 matrix component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.matrix[1][3]' _item.category_id scene_xform_oper _item.mandatory_code no _item_sub_category.id matrix _item_type.code float save_ save__scene_xform_oper.matrix[2][1] _item_description.description ; The [2][1] element of the 3x3 matrix component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.matrix[2][1]' _item.category_id scene_xform_oper _item.mandatory_code no _item_sub_category.id matrix _item_type.code float save_ save__scene_xform_oper.matrix[2][2] _item_description.description ; The [2][2] element of the 3x3 matrix component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.matrix[2][2]' _item.category_id scene_xform_oper _item.mandatory_code no _item_sub_category.id matrix _item_type.code float save_ save__scene_xform_oper.matrix[2][3] _item_description.description ; The [2][3] element of the 3x3 matrix component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.matrix[2][3]' _item.category_id scene_xform_oper _item.mandatory_code no _item_sub_category.id matrix _item_type.code float save_ save__scene_xform_oper.matrix[3][1] _item_description.description ; The [3][1] element of the 3x3 matrix component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.matrix[3][1]' _item.category_id scene_xform_oper _item.mandatory_code no _item_sub_category.id matrix _item_type.code float save_ save__scene_xform_oper.matrix[3][2] _item_description.description ; The [3][2] element of the 3x3 matrix component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.matrix[3][2]' _item.category_id scene_xform_oper _item.mandatory_code no _item_sub_category.id matrix _item_type.code float save_ save__scene_xform_oper.matrix[3][3] _item_description.description ; The [3][3] element of the 3x3 matrix component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.matrix[3][3]' _item.category_id scene_xform_oper _item.mandatory_code no _item_sub_category.id matrix _item_type.code float save_ save__scene_xform_oper.vector[1] _item_description.description ; The [1] element of the three-element vector component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.vector[1]' _item.category_id scene_xform_oper _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float save_ save__scene_xform_oper.vector[2] _item_description.description ; The [2] element of the three-element vector component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.vector[2]' _item.category_id scene_xform_oper _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float save_ save__scene_xform_oper.vector[3] _item_description.description ; The [3] element of the three-element vector component of a noncrystallographic symmetry operation. ; _item.name '_scene_xform_oper.vector[3]' _item.category_id scene_xform_oper _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float save_ #-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof