data_mmcif_ihm_ext.dic

_datablock.id           mmcif_ihm_ext.dic
_datablock.description  
;
     This data block holds the extension dictionary for Integrative/Hybrid (I/H) methods.
     This extension is based on the PDBx/mmCIF dictionary.
     This resource is actively developed and maintained in a github repository available at
     https://github.com/ihmwg/IHMCIF.
     I/H structural models that are compliant to this extension dictionary can be deposited
     to PDB-IHM (https://pdb-ihm.org).
;

#
_dictionary.title         mmcif_ihm_ext.dic
_dictionary.datablock_id  mmcif_ihm_ext.dic
_dictionary.version       1.28
#
loop_
_dictionary_history.version
_dictionary_history.update
_dictionary_history.revision
0.000  2017-03-20  
;
  Changes (jdw/bv)
  + Release as initial version 0.000
  + Changed _imp to _ihm
  + Changed _imp_template_details to _ihm_starting_model_details
  + Changed _imp_tempate_model_coord to _ihm_starting_model_coord
  + Changed _imp_pseudo_atom_site to _ihm_sphere_object_site
  + Added enumeration 'integrative' to _ihm_starting_model_details.starting_model_source
  + Separated ihm_cross_link_restraint and ihm_cross_link_list categories
  + Updated ambiguous crosslinks in ihm_cross_link_restraint and ihm_cross_link_list categories
  + Added ihm_dataset_list, ihm_related_database_reference and ihm_dataset_other categories
  + Added ihm_cross_link_result (yet to be completed) and ihm_entity_assembly categories
  + Updated ihm_2dem_class_average_restraint category
  + Removed ihm_cross_link_db_reference, ihm_cross_link_reference_auxiliary, ihm_2dem_class_average categories
  + Revised several data items to be non-mandatory
  + Changed category key item in ihm_model_details category to account for multiple coarse-grained representations
    of the same model segment (introduced _ihm_model_details.ordinal_id)
  + Updated _ihm_sphere_obj_site.entity_instance_id, ihm_cross_link_restraint (psi and sigma parameters)
  + Added ihm_modeling_protocol, ihm_cluster_info, ihm_struct_assembly (previously ihm_entity_assembly)
  + Added _ihm_3dem_restraint category; minor changes to other categories
  + Changed ihm_model_details category name to ihm_model_representation (handles multi-scale representation)
  + Changed several data items in the ihm_modeling_protocol category
  + Added ihm_modeling_post_process, ihm_model_list, ihm_multi_state_modeling,
    ihm_time_ordered_ensemble, ihm_gaussian_object_site categories
  + Linked ihm_model_list to ihm_sphere_obj_site through model_id
  + Linked ihm_starting_model_details to ihm_dataset_list through dataset_list_id
  + Added new data item _ihm_model_representation.representation_id and more changes to ihm_modeling_protocol
    and ihm_gaussian_obj_site categories.
  + Added ihm_gaussian_obj_ensemble category to represent ensembles as gaussian objects - to be different from
  + ihm_gaussian_object_site category that is used in model representation and hence by visualization software.
  + Changed ihm_cluster_info category name to ihm_ensemble_info and changed relevant data item names accordingly.
  + Changed ihm_related_database_reference category name to ihm_dataset_related_db_reference to be consistent
    with other similar categories  
  + Minor changes in other categories: ihm_model_list, ihm_dataset_list, ihm_modeling_protocol, ihm_ensemble_info,
    ihm_multi_state_modeling, ihm_time_ordered_ensemble, ihm_2dem_class_average_restraint (data items are now
    similar to 2D class average images in EMPIAR), ihm_model_represenation.
  + Updated parent-child relationships across several categories (ihm_modeling_protocol, ihm_ensemble_info
    ihm_model_list, ihm_multi_state_modeling, ihm_time_ordered_ensemble, ihm_2dem_class_average_fitting,
    ihm_cross_link_result)
  + Updated examples in ihm_dataset_list, ihm_dataset_other and ihm_dataset_related_db_reference
  + Changed ihm_modeling_experiment to ihm_modeling_protocol to be consistent with the model archive naming convention
  + Added ihm_sas_restraint category; added _ihm_3dem_restraint.map_segment_flag
  + Modified the following categories: ihm_model_list, ihm_modeling_protocol, ihm_multi_state_modeling,
    ihm_time_ordered_ensemble
  + Minor updates to ihm_cross_link_list, ihm_cross_link_restraint and ihm_model_representation categories.
  + Added _ihm_sphere_obj_site.rmsf and _ihm_starting_model_details.asym_id
  + Added ihm_related_datasets and ihm_cross_link_result_parameters
  + Added _ihm_3dem_restraint.struct_assembly_id, _ihm_sas_restraint.struct_assembly_id,
    _ihm_starting_model_details.notes and _ihm_starting_model_coord.group_PDB
  + Changed _ihm_3dem_restraint.id to _ihm_3dem_restraint.ordinal_id and _ihm_sas_restraint.id to
    _ihm_sas_restraint.ordinal_id
  + Changed _ihm_dataset_related_db_reference.access_code to _ihm_dataset_related_db_reference.accession_code
  + Added new categories to reference externally hosted files: IHM_LOCALIZATION_DENSITY_FILES,
  + IHM_STARTING_MODEL_ALIGNMENT_FILES, IHM_MODELING_WORKFLOW_FILES
  + Added IHM_DATA_DOI_URL_INFO category to include a URL corresponding to a DOI. This enables automated
    download of files.
  + Removed redundant DOI references from several categories
  + Added _ihm_starting_model_details.starting_model_sequence_offset
  + Changed _ihm_starting_model_details.starting_model_db_pdb_auth_asym_id to
    _ihm_starting_model_details.starting_model_auth_asym_id
  + Changed IHM_DOI_URL_INFO to IHM_EXTERNAL_REFERENCE_INFO; modified all downstream dependencies
  + Changed IHM_DATASET_OTHER to IHM_DATASET_EXTERNAL_REFERENCE_DETAILS; modified all downstream dependencies
  + Modified definitions within IHM_EXTERNAL_REFERENCE_INFO
  + Added IHM_EXTERNAL_FILES category; Removed IHM_STARTING_MODEL_ALIGNMENT_FILES category
  + Changed IHM_MODELING_WORKFLOW_FILES, IHM_LOCALIZATION_DENSITY_FILES
  + Changed IHM_DATASET_EXTERNAL_REFERENCE_DETAILS to IHM_DATASET_EXTERNAL_REFERENCE
  + Modified IHM_STARTING_MODEL_DETAILS category
  + Added IHM_STARTING_COMPARATIVE_MODELS category
  + Added IHM_STARTING_MODEL_SEQ_DIF category; removed _ihm_starting_model_details.notes
  + Updated IHM_ENSEMBLE_INFO, IHM_EXTERNAL_FILES and IHM_EXTERNAL_REFERENCE_INFO
  + Added _ihm_multi_state_modeling.experiment_type; updated IHM_ENSEMBLE_INFO
;
  
0.100  2017-03-23  
;
  Changes (bv):
  + Release as provisional version 0.100
  + Added _ihm_external_files.content_type
  + Added _ihm_external_files.details
  + Removed IHM_MODELING_WORKFLOW_FILES
;
  
0.101  2017-03-29  
;
  Changes (bv):
  + Updated _ihm_starting_model_seq_dif.db_entity_id as non-mandatory
;
  
0.102  2017-03-29  
;
  Changes (bv):
  + Updated examples in IHM_STARTING_COMPARATIVE_MODELS
;
  
0.103  2017-03-30  
;
  Changes (bv):
  + Updated IHM_STARTING_MODEL_DETAILS
  + Updated IHM_STARTING_COMPARATIVE_MODELS
  + Updated IHM_DATASET_LIST, IHM_RELATED_DATASETS
  + Updated IHM_DATASET_RELATED_DB_REFERENCE
  + Updated IHM_DATASET_EXTERNAL_REFERENCE
  + Added examples to IHM_EXTERNAL_REFERENCE_INFO and IHM_EXTERNAL_FILES
;
  
0.104  2017-04-19  
;
  Changes (bv):
  + Updated IHM_STARTING_MODEL_DETAILS
  + Updated IHM_STARTING_COMPARATIVE_MODELS
  + Updated IHM_STARTING_MODEL_SEQ_DIF
  + Updated IHM_MODEL_REPRESENTATION
  + Updated IHM_DATASET_LIST
  + Added IHM_DATASET_GROUP
  + Updated IHM_MODELING_PROTOCOL
;
  
0.105  2017-05-25  
;
  Changes (bv):
  + Added item description to _ihm_ensemble_info.ensemble_file_id
  + Added item description to _ihm_2dem_class_average_restraint.pixel_size_width
  + Added item description to _ihm_2dem_class_average_restraint.pixel_size_height
  + Added category description to ihm_2dem_class_average_fitting
  + Added enumeration 'DCD' to _ihm_external_files.file_format
  + Changed _ihm_external_files.file_size_kb to _ihm_external_files.file_size_bytes
;
  
0.106  2017-07-13  
;
  Changes (bv):
  + Updated dictionary description and version history
;
  
0.107  2017-07-17  
;
  Changes (ep/bv):
  + Added category_group_list, item_type_list and item_units_list categories
;
  
0.108  2017-09-12  
;
  Changes (bv):
  + Added IHM_STRUCT_ASSEMBLY_CLASS, IHM_STRUCT_ASSEMBLY_CLASS_LIST
  + Added _ihm_struct_assembly.parent_assembly_id
;
  
0.109  2017-09-28  
;
  Changes (bv):
  + Added _ihm_model_list.representation_id
  + Added _atom_site.ihm_model_id
;
  
0.110  2017-10-03  
;
  Changes (bv):
  + Added _ihm_cross_link_restraint.atom_id_1, _ihm_cross_link_restraint.atom_id_2
  + Added _ihm_cross_link_restraint.restraint_type
  + Changed _ihm_cross_link_restraint.type to _ihm_cross_link_restraint.linker_type
  + Changed _ihm_cross_link_list.type to _ihm_cross_link_list.linker_type
  + Added enumerations to _ihm_cross_link_restraint.linker_type and _ihm_cross_link_list.linker_type
  + Added enumeration to and changed _item.mandatory_code of _ihm_cross_link_restraint.model_granularity
  + Added ihm_predicted_contact_restraint category
  + Added enumeration to _ihm_dataset_list.data_type
;
  
0.111  2017-10-04  
;
  Changes (bv):
  + Removed _ihm_cross_link_restraint.linker_type
  + Updated enumerations to _ihm_cross_link_restraint.restraint_type
;
  
0.112  2017-10-04  
;
  Changes (bv):
  + Added _ihm_dataset_list.details
  + Added enumeration to _ihm_dataset_list.data_type
;
  
0.113  2017-10-06  
;
  Changes (bv):
  + Added IHM_MODEL_REPRESENTATIVE
  + Added enumeration to _ihm_cross_link_list.linker_type
  + Updated item description for _ihm_predicted_contact_restraint.probability
;
  
0.114  2017-10-09  
;
  Changes (bv):
  + Fixed typos and syntax
;
  
0.115  2017-10-12  
;
  Changes (bv):
  + Added _ihm_modeling_post_process.feature_name
  + Fixed enumeration for _ihm_cross_link_list.linker_type
;
  
0.116  2017-10-16  
;
  Changes (bv):
  + Updated _item_description.description for _ihm_model_list.model_group_id
  + Updated enumerations for _ihm_dataset_list.data_type
  + Updated parent-child relationships within _ihm_model_list.model_id
;
  
0.117  2017-11-09  
;
  Changes (bv):
  + Updated description for _ihm_starting_model_details.starting_model_sequence_offset
;
  
0.118  2017-12-06  
;
  Changes (bv):
  + Changed ihm_time_ordered_ensemble to ihm_ordered_ensemble with appropriate revisions to the category
  + Changed _ihm_modeling_protocol.time_ordered_flag to _ihm_modeling_protocol.ordered_flag
  + Changed mandatory code for _ihm_model_list.representation_id
  + Added an example to ihm_model_list category
;
  
0.119  2017-12-07  
;
  Changes (bv):
  + Changed ihm_ordered_ensemble.ordered_process_id to ihm_ordered_ensemble.process_id
  + Changed ihm_ordered_ensemble.ordered_process_description to ihm_ordered_ensemble.process_description. 
  + Changed parent-child relationships for _ihm_predicted_contact_restraint.atom_id_1,
    _ihm_predicted_contact_restraint.atom_id_2, _ihm_cross_link_restraint.atom_id_1, 
    _ihm_cross_link_restraint.atom_id_2, _ihm_starting_model_coord.atom_id
;
  
0.120  2018-01-10  
;
  Changes (bv):
  + Added ihm_feature_selection_atom, ihm_feature_selection_residue, ihm_derived_distance_restraint
  + Fixed typos in the parent name of _ihm_predicted_contact_restraint.atom_id_1 and
    _ihm_predicted_contact_restraint.atom_id_2
  + Fixed _item_type.code in _ihm_starting_model_coord.atom_id
;
  
0.121  2018-01-17  
;
  Changes (bv):
  + Added _ihm_derived_distance_restraint.distance_upper_limit_std and 
    _ihm_derived_distance_restraint.distance_lower_limit_std
  + Updated _item_type.code for _ihm_external_reference_info.reference_type and
    _ihm_external_reference_info.reference_provider
;
  
0.122  2018-01-22  
;
  Changes (bv):
  + Updated parent-child relationships for _ihm_model_representation.entity_id,
    _ihm_struct_assembly.entity_id, _ihm_feature_selection_atom.entity_id, 
    _ihm_feature_selection_residue.entity_id
  + Changed _ihm_derived_distance_restraint.distance_lower_limit_std to 
    _ihm_derived_distance_restraint.distance_lower_limit_esd
  + Changed _ihm_derived_distance_restraint.distance_upper_limit_std to 
    _ihm_derived_distance_restraint.distance_upper_limit_esd
  + Added enumeration for _ihm_external_reference_info.refers_to and 
    _ihm_external_files.file_format
;
  
0.123  2018-01-24  
;
  Changes (bv):
  + Added IHM_STRUCT_ASSEMBLY_DETAILS category. 
  + Updated parent-child relationships for _ihm_starting_model_details.entity_description,
    _ihm_model_representation.entity_description, _ihm_struct_assembly.entity_description,
    _ihm_predicted_contact_restraint.entity_description_1, _ihm_cross_link_list.entity_description_1,
    _ihm_predicted_contact_restraint.entity_description_2, _ihm_cross_link_list.entity_description_2
;
  
0.124  2018-02-01  
;
  Changes (bv):
  + Updated parent-child relationships for _ihm_model_representation.entity_id,
    _ihm_struct_assembly.entity_id
  + Added IHM_FEATURE_LIST and IHM_NON_POLY_ATOM_FEATURE categories. 
  + Changed IHM_FEATUTE_SELECTION_ATOM to IHM_POLY_ATOM_FEATURE. 
  + Changed IHM_FEATUTE_SELECTION_RESDIUE to IHM_POLY_RESIDUE_FEATURE.
  + Updated IHM_DERIVED_DISTANCE_RESTRAINT
;
  
0.125  2018-02-05  
;
  Changes (bv):
  + Added _ihm_derived_distance_restraint.random_exclusion_fraction
  + Changed _ihm_derived_distance_restraint.conditionality to
    _ihm_derived_distance_restraint.group_conditionality
  + Updated description for _ihm_derived_distance_restraint.group_conditionality
;
  
0.126  2018-02-06  
;
  Changes (bv): 
  + Updated enumeration list for _ihm_dataset_list.data_type
;
  
0.127  2018-02-26  
;
  Changes (bv):
  + Added _ihm_poly_residue_feature.residue_range_granularity, _ihm_poly_residue_feature.rep_atom
  + Updated enumeration for _ihm_cross_link_list.linker_type, _ihm_external_files.content_type
;
  
0.128  2018-03-16  
;
  Changes (bv):
  + Added _ihm_dataset_group.application and _ihm_dataset_group.details
  + Updated enumeration for _ihm_modeling_post_process.type  
  + Fixed typos
;
  
0.129  2018-03-22  
;
  Changes (bv):
  + Added _ihm_modeling_post_process.struct_assembly_id and _ihm_modeling_post_process.dataset_group_id
  + Added ihm_residues_not_modeled
;
  
0.130  2018-04-19  
;
  Changes (bv):
  + Updated enumeration for ihm_dataset_related_db_reference.db_name and ihm_dataset_list.data_type
;
  
0.131  2018-05-21  
;
  Changes (bv):
  + Added _ihm_modeling_post_process.software_id, _ihm_modeling_protocol.software_id
  + Added _ihm_multi_state_modeling.population_fraction_sd
  + Added _ihm_starting_comparative_models.software_id, _ihm_starting_comparative_models.script_file_id
  + Updated enumeration for _ihm_starting_model_details.starting_model_source
  + Updated _item.mandatory_code for _ihm_starting_comparative_models.starting_model_seq_id_begin
  + Updated _item.mandatory_code for _ihm_starting_comparative_models.starting_model_seq_id_end
;
  
0.132  2018-05-25  
;
  Changes (bv):
  + Added IHM_STARTING_COMPUTATIONAL_MODELS
  + Removed _ihm_starting_comparative_models.software_id, _ihm_starting_comparative_models.script_file_id
  + Added _ihm_modeling_post_process.script_file_id, _ihm_modeling_protocol.script_file_id
;
  
0.133  2018-06-29  
;
  Changes (bv):
  + Added IHM_GEOMETRIC_OBJECT_LIST, IHM_GEOMETRIC_OBJECT_CENTER, IHM_GEOMETRIC_OBJECT_TRANSFORMATION
  + Added IHM_GEOMETRIC_OBJECT_SPHERE, IHM_GEOMETRIC_OBJECT_TORUS, IHM_GEOMETRIC_OBJECT_HALF_TORUS
  + Added IHM_GEOMETRIC_OBJECT_AXIS, IHM_GEOMETRIC_OBJECT_PLANE, IHM_GEOMETRIC_OBJECT_DISTANCE_RESTRAINT
;
  
0.134  2018-07-18  
;
  Changes (bv):
  + Updated _item_sub_category.id for matrices and vectors
;
  
0.135  2018-10-04  
;
  Changes (bv):
  + Added DSSO crosslinker
  + Updated parent-child relationships for several data items: 
    _ihm_starting_model_details.entity_id, _ihm_model_representation.entity_id,
    _ihm_struct_assembly.entity_id, _ihm_localization_density_files.entity_id,
    _ihm_starting_model_coord.entity_id, _ihm_starting_model_coord.comp_id, 
    _ihm_sphere_obj_site.entity_id, _ihm_gaussian_obj_site.entity_id,
    _ihm_gaussian_obj_ensemble.entity_id
  + Updated _item_type.code for _ihm_external_files.file_path
;
  
0.136  2018-10-05  
;
  Changes (bv):
  + Added ihm_hydroxyl_radical_fp_restraint
;
  
0.137  2018-10-26  
;
  Changes (bv): 
  + Renamed IHM_NON_POLY_ATOM_FEATURE to IHM_NON_POLY_FEATURE
  + Updated _ihm_feature_list.feature_type
  + Added IHM_FEATURE_PSEUDO_SITE
;
  
0.138  2018-12-20  
;
  Changes (bv):
  + Added _ihm_modeling_protocol.ensemble_flag
  + Changed _item.type_code from code to ucode for: 
    _ihm_modeling_protocol.multi_scale_flag
    _ihm_modeling_protocol.multi_state_flag
    _ihm_modeling_protocol.ordered_flag
    _ihm_dataset_list.database_hosted
    _ihm_2dem_class_average_restraint.image_segment_flag
    _ihm_3dem_restraint.map_segment_flag
    _ihm_sas_restraint.profile_segment_flag
  + Updated definitions for _ihm_feature_list.entity_type
  + Updated enumeration list for _ihm_feature_list.feature_type
;
  
0.139  2019-01-03  
;
  Changes (bv): 
  + Changed IHM_FEATURE_PSEUDO_SITE to IHM_PSEUDO_SITE_FEATURE
;
  
0.140  2019-03-11  
;
  Changes (bv):
  + Added IHM_INTERFACE_RESIDUE_FEATURE
  + Added _ihm_poly_residue_feature.interface_residue_flag
  + Updated item_mandatory.code for _ihm_poly_residue_feature.asym_id
    _ihm_poly_atom_feature.asym_id, _ihm_non_poly_feature.asym_id
;
  
0.141  2019-05-06  
;
  Changes (bv):
  + Added IHM_CHEMICAL_COMPONENT_DESCRIPTOR, IHM_PROBE_LIST, IHM_EPR_RESTRAINT
  + Added IHM_POLY_PROBE_POSITION, IHM_POLY_PROBE_CONJUGATE
  + Added IHM_LIGAND_PROBE
  + Added _ihm_cross_link_list.linker_chem_comp_descriptor_id
;
  
  1.0  2019-05-31  
;
  Changes (bv):
  + Updated several categories to fix primary key information and parent-child relationships
;
  
 1.01  2019-07-26  
;
  Changes (bv):
  + Updated _item_mandatory.code and _pdbx_item.mandatory_code for several data items. 
  + Added _item_sub_category.id in ihm_poly_probe_position.
  + Added PDB-Dev to the enumeration list in ihm_dataset_related_db_reference.db_name.
;
  
 1.02  2019-10-01  
;
  Changes (bv):
  + Added _ihm_starting_model_details.description, _ihm_starting_comparative_models.details
  + Added _ihm_model_representation_details.description, _ihm_modeling_protocol_details.description
  + Added _ihm_modeling_post_process.details, _ihm_ensemble_info.details
  + Added _ihm_external_reference_info.details, _ihm_cross_link_list.details
  + Added _ihm_feature_list.details, _ihm_geometric_object_half_torus.details
  + Added enumerations (DSG and BSP) to _ihm_cross_link_list.linker_type
  + Updated _item_enumeration.detail for items in _ihm_cross_link_list.linker_type
  + Updated _item_description.description for _ihm_external_files.details
;
  
 1.03  2019-10-03  
;
  Changes (bv):
  + Changed _ihm_geometric_object_distance_restraint.other_details to _ihm_geometric_object_distance_restraint.details
  + Removed _ihm_geometric_object_list.other_details and _ihm_geometric_object_half_torus.details
;
  
 1.04  2019-10-10  
;
  Changes (bv):
  + Added _ihm_derived_distance_restraint.mic_value
  + Added enumeration to _ihm_dataset_list.data_type
;
  
 1.05  2019-11-15  
;
  Changes (bv):
  + Added BMSO and DHSO to _ihm_cross_link_list.linker_type enumeration list
;
  
 1.06  2020-01-24  
;
  Changes (bv):
  + Added _ihm_cross_link_restraint.pseudo_site_flag
  + Added ihm_cross_link_pseudo_site category  
  + Added ihm_pseudo_site category
  + Removed _ihm_pseudo_site_feature.Cartn_x, _ihm_pseudo_site_feature.Cartn_y
    _ihm_pseudo_site_feature.Cartn_z, _ihm_pseudo_site_feature.radius 
    _ihm_pseudo_site_feature.description
  + Added _ihm_pseudo_site_feature.pseudo_site_id
;
  
 1.07  2020-02-10  
;
  Changes (bv):
  + Added CYS to _ihm_cross_link_list.linker_type enumeration list
;
  
 1.08  2020-02-14  
;
  Changes (bv):
  + Added _ihm_ensemble_info.sub_sample_flag, _ihm_ensemble_info.sub_sampling_type
  + Added ihm_ensemble_sub_sample
;
  
 1.09  2020-03-19  
;
  Changes (bv):
  + Added ihm_data_transformation
  + Added _ihm_related_datasets.transformation_id
;
  
 1.10  2020-06-04  
;
  Changes (bv):
  + Added ihm_derived_angle_restraint, ihm_derived_dihedral_restraint
  + Added _ihm_derived_distance_restraint.distance_threshold_mean
  + Added _ihm_derived_distance_restraint.distance_threshold_esd
  + Updated enumeration for _ihm_derived_distance_restraint.restraint_type
  + Updated enumeration for _ihm_dataset_list.data_type
;
  
 1.11  2020-07-03  
;
  Changes (bv):
  + Added ihm_hdx_restraint
;
  
 1.12  2020-07-10  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
 1.13  2021-01-28  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
 1.14  2021-03-04  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
 1.15  2021-03-16  
;
  Changes (bv):
  + Added enumerations to _ihm_dataset_related_db_reference.db_name
;
  
 1.16  2021-04-14  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
 1.17  2021-05-21  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
 1.18  2022-12-20  
;
  Changes (bv):
  + Added _ihm_ensemble_info.model_group_superimposed_flag 
  + Added enumerations to _ihm_dataset_list.data_type and _ihm_ensemble_info.ensemble_clustering_method
  + Added ihm_entry_collection and ihm_entry_collection_mapping
;
  
 1.19  2023-02-02  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type and _ihm_dataset_related_db_reference.db_name
;
  
 1.20  2023-02-19  
;
  Changes (bv):
  + Updated category keys for ihm_entry_collection_mapping
  + Added enumerations to _ihm_cross_link_list.linker_type and _ihm_dataset_related_db_reference.db_name
  + Add nanoseconds to item_units_list
;
  
 1.21  2023-03-24  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
 1.22  2023-05-26  
;
  Changes (bv):
  + Added enumerations to _ihm_dataset_related_db_reference.db_name
;
  
 1.23  2023-07-05  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
 1.24  2023-11-30  
;
  Changes (bv):
  + Added ihm_multi_state_scheme, ihm_multi_state_scheme_connectivity
  + Added ihm_kinetic_rate, ihm_relaxation_time, ihm_relaxation_time_multi_state_scheme
;
  
 1.25  2023-12-22  
;
  + Rename dictionary
  + Reorganize repository
;
  
 1.26  2024-07-11  
; 
  + Add "Crosslinking-MS" to the enumeration list of _ihm_dataset_list.data_type
  + Add "modeling" to the enumeration list of _ihm_dataset_group.application
  + Update category descriptions of ihm_model_list, ihm_model_group, ihm_model_group_link, ihm_model_representative
  + Add category "ihm_ordered_model" and deprecate category "ihm_ordered_ensemble"
  + Update enumerations for _ihm_cross_link_list.linker_type
  + Update _item_type.code for _ihm_dataset_related_db_reference.accession_code and _ihm_ensemble_info.ensemble_clustering_method
  + Add "ProteomeXchange" to the enumeration list of _ihm_dataset_related_db_reference.db_name
;
  
 1.27  2024-11-25  
; 
  + Added BMRbig to the enumeration list in ihm_dataset_related_db_reference.db_name
;
  
 1.28  2025-03-24  
;
  + Add _ihm_cross_link_result.model_group_id
  + Update _item.mandatory_code for _ihm_cross_link_result.ensemble_id and _ihm_cross_link_result.num_models
;
  
#
loop_
_pdbx_dictionary_component.datablock_id
_pdbx_dictionary_component.dictionary_component_id
_pdbx_dictionary_component.title
_pdbx_dictionary_component.version
mmcif_ihm-data.dic   mmcif_ihm-data.dic   "IHMCIF dictionary: mmcif_ihm-data"    1.1  
entity_poly_seq.dic  entity_poly_seq.dic  "entity_poly_seq for IHMCIF"         0.001  
mmcif_ihm-core.dic   mmcif_ihm-core.dic   "IHMCIF dictionary: mmcif_ihm-core"   1.28  
#
loop_
_pdbx_dictionary_component_history.dictionary_component_id
_pdbx_dictionary_component_history.version
_pdbx_dictionary_component_history.update
_pdbx_dictionary_component_history.revision
mmcif_ihm-data.dic     1.1  2025-03-24  
;  
  Changes (bv)
  + Update author data type to match PDBx/mmCIF definitions
;
  
mmcif_ihm-data.dic     1.0  2023-12-22  
;
  Changes (bv)
  + Updated dictionary files organization
;
  
entity_poly_seq.dic  0.001  2023-12-22  
;
  Changes (bv)
  + Release as initial version 0.001
;
  
mmcif_ihm-core.dic   0.000  2017-03-20  
;
  Changes (jdw/bv)
  + Release as initial version 0.000
  + Changed _imp to _ihm
  + Changed _imp_template_details to _ihm_starting_model_details
  + Changed _imp_tempate_model_coord to _ihm_starting_model_coord
  + Changed _imp_pseudo_atom_site to _ihm_sphere_object_site
  + Added enumeration 'integrative' to _ihm_starting_model_details.starting_model_source
  + Separated ihm_cross_link_restraint and ihm_cross_link_list categories
  + Updated ambiguous crosslinks in ihm_cross_link_restraint and ihm_cross_link_list categories
  + Added ihm_dataset_list, ihm_related_database_reference and ihm_dataset_other categories
  + Added ihm_cross_link_result (yet to be completed) and ihm_entity_assembly categories
  + Updated ihm_2dem_class_average_restraint category
  + Removed ihm_cross_link_db_reference, ihm_cross_link_reference_auxiliary, ihm_2dem_class_average categories
  + Revised several data items to be non-mandatory
  + Changed category key item in ihm_model_details category to account for multiple coarse-grained representations
    of the same model segment (introduced _ihm_model_details.ordinal_id)
  + Updated _ihm_sphere_obj_site.entity_instance_id, ihm_cross_link_restraint (psi and sigma parameters)
  + Added ihm_modeling_protocol, ihm_cluster_info, ihm_struct_assembly (previously ihm_entity_assembly)
  + Added _ihm_3dem_restraint category; minor changes to other categories
  + Changed ihm_model_details category name to ihm_model_representation (handles multi-scale representation)
  + Changed several data items in the ihm_modeling_protocol category
  + Added ihm_modeling_post_process, ihm_model_list, ihm_multi_state_modeling,
    ihm_time_ordered_ensemble, ihm_gaussian_object_site categories
  + Linked ihm_model_list to ihm_sphere_obj_site through model_id
  + Linked ihm_starting_model_details to ihm_dataset_list through dataset_list_id
  + Added new data item _ihm_model_representation.representation_id and more changes to ihm_modeling_protocol
    and ihm_gaussian_obj_site categories.
  + Added ihm_gaussian_obj_ensemble category to represent ensembles as gaussian objects - to be different from
  + ihm_gaussian_object_site category that is used in model representation and hence by visualization software.
  + Changed ihm_cluster_info category name to ihm_ensemble_info and changed relevant data item names accordingly.
  + Changed ihm_related_database_reference category name to ihm_dataset_related_db_reference to be consistent
    with other similar categories  
  + Minor changes in other categories: ihm_model_list, ihm_dataset_list, ihm_modeling_protocol, ihm_ensemble_info,
    ihm_multi_state_modeling, ihm_time_ordered_ensemble, ihm_2dem_class_average_restraint (data items are now
    similar to 2D class average images in EMPIAR), ihm_model_represenation.
  + Updated parent-child relationships across several categories (ihm_modeling_protocol, ihm_ensemble_info
    ihm_model_list, ihm_multi_state_modeling, ihm_time_ordered_ensemble, ihm_2dem_class_average_fitting,
    ihm_cross_link_result)
  + Updated examples in ihm_dataset_list, ihm_dataset_other and ihm_dataset_related_db_reference
  + Changed ihm_modeling_experiment to ihm_modeling_protocol to be consistent with the model archive naming convention
  + Added ihm_sas_restraint category; added _ihm_3dem_restraint.map_segment_flag
  + Modified the following categories: ihm_model_list, ihm_modeling_protocol, ihm_multi_state_modeling,
    ihm_time_ordered_ensemble
  + Minor updates to ihm_cross_link_list, ihm_cross_link_restraint and ihm_model_representation categories.
  + Added _ihm_sphere_obj_site.rmsf and _ihm_starting_model_details.asym_id
  + Added ihm_related_datasets and ihm_cross_link_result_parameters
  + Added _ihm_3dem_restraint.struct_assembly_id, _ihm_sas_restraint.struct_assembly_id,
    _ihm_starting_model_details.notes and _ihm_starting_model_coord.group_PDB
  + Changed _ihm_3dem_restraint.id to _ihm_3dem_restraint.ordinal_id and _ihm_sas_restraint.id to
    _ihm_sas_restraint.ordinal_id
  + Changed _ihm_dataset_related_db_reference.access_code to _ihm_dataset_related_db_reference.accession_code
  + Added new categories to reference externally hosted files: IHM_LOCALIZATION_DENSITY_FILES,
  + IHM_STARTING_MODEL_ALIGNMENT_FILES, IHM_MODELING_WORKFLOW_FILES
  + Added IHM_DATA_DOI_URL_INFO category to include a URL corresponding to a DOI. This enables automated
    download of files.
  + Removed redundant DOI references from several categories
  + Added _ihm_starting_model_details.starting_model_sequence_offset
  + Changed _ihm_starting_model_details.starting_model_db_pdb_auth_asym_id to
    _ihm_starting_model_details.starting_model_auth_asym_id
  + Changed IHM_DOI_URL_INFO to IHM_EXTERNAL_REFERENCE_INFO; modified all downstream dependencies
  + Changed IHM_DATASET_OTHER to IHM_DATASET_EXTERNAL_REFERENCE_DETAILS; modified all downstream dependencies
  + Modified definitions within IHM_EXTERNAL_REFERENCE_INFO
  + Added IHM_EXTERNAL_FILES category; Removed IHM_STARTING_MODEL_ALIGNMENT_FILES category
  + Changed IHM_MODELING_WORKFLOW_FILES, IHM_LOCALIZATION_DENSITY_FILES
  + Changed IHM_DATASET_EXTERNAL_REFERENCE_DETAILS to IHM_DATASET_EXTERNAL_REFERENCE
  + Modified IHM_STARTING_MODEL_DETAILS category
  + Added IHM_STARTING_COMPARATIVE_MODELS category
  + Added IHM_STARTING_MODEL_SEQ_DIF category; removed _ihm_starting_model_details.notes
  + Updated IHM_ENSEMBLE_INFO, IHM_EXTERNAL_FILES and IHM_EXTERNAL_REFERENCE_INFO
  + Added _ihm_multi_state_modeling.experiment_type; updated IHM_ENSEMBLE_INFO
;
  
mmcif_ihm-core.dic   0.100  2017-03-23  
;
  Changes (bv):
  + Release as provisional version 0.100
  + Added _ihm_external_files.content_type
  + Added _ihm_external_files.details
  + Removed IHM_MODELING_WORKFLOW_FILES
;
  
mmcif_ihm-core.dic   0.101  2017-03-29  
;
  Changes (bv):
  + Updated _ihm_starting_model_seq_dif.db_entity_id as non-mandatory
;
  
mmcif_ihm-core.dic   0.102  2017-03-29  
;
  Changes (bv):
  + Updated examples in IHM_STARTING_COMPARATIVE_MODELS
;
  
mmcif_ihm-core.dic   0.103  2017-03-30  
;
  Changes (bv):
  + Updated IHM_STARTING_MODEL_DETAILS
  + Updated IHM_STARTING_COMPARATIVE_MODELS
  + Updated IHM_DATASET_LIST, IHM_RELATED_DATASETS
  + Updated IHM_DATASET_RELATED_DB_REFERENCE
  + Updated IHM_DATASET_EXTERNAL_REFERENCE
  + Added examples to IHM_EXTERNAL_REFERENCE_INFO and IHM_EXTERNAL_FILES
;
  
mmcif_ihm-core.dic   0.104  2017-04-19  
;
  Changes (bv):
  + Updated IHM_STARTING_MODEL_DETAILS
  + Updated IHM_STARTING_COMPARATIVE_MODELS
  + Updated IHM_STARTING_MODEL_SEQ_DIF
  + Updated IHM_MODEL_REPRESENTATION
  + Updated IHM_DATASET_LIST
  + Added IHM_DATASET_GROUP
  + Updated IHM_MODELING_PROTOCOL
;
  
mmcif_ihm-core.dic   0.105  2017-05-25  
;
  Changes (bv):
  + Added item description to _ihm_ensemble_info.ensemble_file_id
  + Added item description to _ihm_2dem_class_average_restraint.pixel_size_width
  + Added item description to _ihm_2dem_class_average_restraint.pixel_size_height
  + Added category description to ihm_2dem_class_average_fitting
  + Added enumeration 'DCD' to _ihm_external_files.file_format
  + Changed _ihm_external_files.file_size_kb to _ihm_external_files.file_size_bytes
;
  
mmcif_ihm-core.dic   0.106  2017-07-13  
;
  Changes (bv):
  + Updated dictionary description and version history
;
  
mmcif_ihm-core.dic   0.107  2017-07-17  
;
  Changes (ep/bv):
  + Added category_group_list, item_type_list and item_units_list categories
;
  
mmcif_ihm-core.dic   0.108  2017-09-12  
;
  Changes (bv):
  + Added IHM_STRUCT_ASSEMBLY_CLASS, IHM_STRUCT_ASSEMBLY_CLASS_LIST
  + Added _ihm_struct_assembly.parent_assembly_id
;
  
mmcif_ihm-core.dic   0.109  2017-09-28  
;
  Changes (bv):
  + Added _ihm_model_list.representation_id
  + Added _atom_site.ihm_model_id
;
  
mmcif_ihm-core.dic   0.110  2017-10-03  
;
  Changes (bv):
  + Added _ihm_cross_link_restraint.atom_id_1, _ihm_cross_link_restraint.atom_id_2
  + Added _ihm_cross_link_restraint.restraint_type
  + Changed _ihm_cross_link_restraint.type to _ihm_cross_link_restraint.linker_type
  + Changed _ihm_cross_link_list.type to _ihm_cross_link_list.linker_type
  + Added enumerations to _ihm_cross_link_restraint.linker_type and _ihm_cross_link_list.linker_type
  + Added enumeration to and changed _item.mandatory_code of _ihm_cross_link_restraint.model_granularity
  + Added ihm_predicted_contact_restraint category
  + Added enumeration to _ihm_dataset_list.data_type
;
  
mmcif_ihm-core.dic   0.111  2017-10-04  
;
  Changes (bv):
  + Removed _ihm_cross_link_restraint.linker_type
  + Updated enumerations to _ihm_cross_link_restraint.restraint_type
;
  
mmcif_ihm-core.dic   0.112  2017-10-04  
;
  Changes (bv):
  + Added _ihm_dataset_list.details
  + Added enumeration to _ihm_dataset_list.data_type
;
  
mmcif_ihm-core.dic   0.113  2017-10-06  
;
  Changes (bv):
  + Added IHM_MODEL_REPRESENTATIVE
  + Added enumeration to _ihm_cross_link_list.linker_type
  + Updated item description for _ihm_predicted_contact_restraint.probability
;
  
mmcif_ihm-core.dic   0.114  2017-10-09  
;
  Changes (bv):
  + Fixed typos and syntax
;
  
mmcif_ihm-core.dic   0.115  2017-10-12  
;
  Changes (bv):
  + Added _ihm_modeling_post_process.feature_name
  + Fixed enumeration for _ihm_cross_link_list.linker_type
;
  
mmcif_ihm-core.dic   0.116  2017-10-16  
;
  Changes (bv):
  + Updated _item_description.description for _ihm_model_list.model_group_id
  + Updated enumerations for _ihm_dataset_list.data_type
  + Updated parent-child relationships within _ihm_model_list.model_id
;
  
mmcif_ihm-core.dic   0.117  2017-11-09  
;
  Changes (bv):
  + Updated description for _ihm_starting_model_details.starting_model_sequence_offset
;
  
mmcif_ihm-core.dic   0.118  2017-12-06  
;
  Changes (bv):
  + Changed ihm_time_ordered_ensemble to ihm_ordered_ensemble with appropriate revisions to the category
  + Changed _ihm_modeling_protocol.time_ordered_flag to _ihm_modeling_protocol.ordered_flag
  + Changed mandatory code for _ihm_model_list.representation_id
  + Added an example to ihm_model_list category
;
  
mmcif_ihm-core.dic   0.119  2017-12-07  
;
  Changes (bv):
  + Changed ihm_ordered_ensemble.ordered_process_id to ihm_ordered_ensemble.process_id
  + Changed ihm_ordered_ensemble.ordered_process_description to ihm_ordered_ensemble.process_description. 
  + Changed parent-child relationships for _ihm_predicted_contact_restraint.atom_id_1,
    _ihm_predicted_contact_restraint.atom_id_2, _ihm_cross_link_restraint.atom_id_1, 
    _ihm_cross_link_restraint.atom_id_2, _ihm_starting_model_coord.atom_id
;
  
mmcif_ihm-core.dic   0.120  2018-01-10  
;
  Changes (bv):
  + Added ihm_feature_selection_atom, ihm_feature_selection_residue, ihm_derived_distance_restraint
  + Fixed typos in the parent name of _ihm_predicted_contact_restraint.atom_id_1 and
    _ihm_predicted_contact_restraint.atom_id_2
  + Fixed _item_type.code in _ihm_starting_model_coord.atom_id
;
  
mmcif_ihm-core.dic   0.121  2018-01-17  
;
  Changes (bv):
  + Added _ihm_derived_distance_restraint.distance_upper_limit_std and 
    _ihm_derived_distance_restraint.distance_lower_limit_std
  + Updated _item_type.code for _ihm_external_reference_info.reference_type and
    _ihm_external_reference_info.reference_provider
;
  
mmcif_ihm-core.dic   0.122  2018-01-22  
;
  Changes (bv):
  + Updated parent-child relationships for _ihm_model_representation.entity_id,
    _ihm_struct_assembly.entity_id, _ihm_feature_selection_atom.entity_id, 
    _ihm_feature_selection_residue.entity_id
  + Changed _ihm_derived_distance_restraint.distance_lower_limit_std to 
    _ihm_derived_distance_restraint.distance_lower_limit_esd
  + Changed _ihm_derived_distance_restraint.distance_upper_limit_std to 
    _ihm_derived_distance_restraint.distance_upper_limit_esd
  + Added enumeration for _ihm_external_reference_info.refers_to and 
    _ihm_external_files.file_format
;
  
mmcif_ihm-core.dic   0.123  2018-01-24  
;
  Changes (bv):
  + Added IHM_STRUCT_ASSEMBLY_DETAILS category. 
  + Updated parent-child relationships for _ihm_starting_model_details.entity_description,
    _ihm_model_representation.entity_description, _ihm_struct_assembly.entity_description,
    _ihm_predicted_contact_restraint.entity_description_1, _ihm_cross_link_list.entity_description_1,
    _ihm_predicted_contact_restraint.entity_description_2, _ihm_cross_link_list.entity_description_2
;
  
mmcif_ihm-core.dic   0.124  2018-02-01  
;
  Changes (bv):
  + Updated parent-child relationships for _ihm_model_representation.entity_id,
    _ihm_struct_assembly.entity_id
  + Added IHM_FEATURE_LIST and IHM_NON_POLY_ATOM_FEATURE categories. 
  + Changed IHM_FEATUTE_SELECTION_ATOM to IHM_POLY_ATOM_FEATURE. 
  + Changed IHM_FEATUTE_SELECTION_RESDIUE to IHM_POLY_RESIDUE_FEATURE.
  + Updated IHM_DERIVED_DISTANCE_RESTRAINT
;
  
mmcif_ihm-core.dic   0.125  2018-02-05  
;
  Changes (bv):
  + Added _ihm_derived_distance_restraint.random_exclusion_fraction
  + Changed _ihm_derived_distance_restraint.conditionality to
    _ihm_derived_distance_restraint.group_conditionality
  + Updated description for _ihm_derived_distance_restraint.group_conditionality
;
  
mmcif_ihm-core.dic   0.126  2018-02-06  
;
  Changes (bv): 
  + Updated enumeration list for _ihm_dataset_list.data_type
;
  
mmcif_ihm-core.dic   0.127  2018-02-26  
;
  Changes (bv):
  + Added _ihm_poly_residue_feature.residue_range_granularity, _ihm_poly_residue_feature.rep_atom
  + Updated enumeration for _ihm_cross_link_list.linker_type, _ihm_external_files.content_type
;
  
mmcif_ihm-core.dic   0.128  2018-03-16  
;
  Changes (bv):
  + Added _ihm_dataset_group.application and _ihm_dataset_group.details
  + Updated enumeration for _ihm_modeling_post_process.type  
  + Fixed typos
;
  
mmcif_ihm-core.dic   0.129  2018-03-22  
;
  Changes (bv):
  + Added _ihm_modeling_post_process.struct_assembly_id and _ihm_modeling_post_process.dataset_group_id
  + Added ihm_residues_not_modeled
;
  
mmcif_ihm-core.dic   0.130  2018-04-19  
;
  Changes (bv):
  + Updated enumeration for ihm_dataset_related_db_reference.db_name and ihm_dataset_list.data_type
;
  
mmcif_ihm-core.dic   0.131  2018-05-21  
;
  Changes (bv):
  + Added _ihm_modeling_post_process.software_id, _ihm_modeling_protocol.software_id
  + Added _ihm_multi_state_modeling.population_fraction_sd
  + Added _ihm_starting_comparative_models.software_id, _ihm_starting_comparative_models.script_file_id
  + Updated enumeration for _ihm_starting_model_details.starting_model_source
  + Updated _item.mandatory_code for _ihm_starting_comparative_models.starting_model_seq_id_begin
  + Updated _item.mandatory_code for _ihm_starting_comparative_models.starting_model_seq_id_end
;
  
mmcif_ihm-core.dic   0.132  2018-05-25  
;
  Changes (bv):
  + Added IHM_STARTING_COMPUTATIONAL_MODELS
  + Removed _ihm_starting_comparative_models.software_id, _ihm_starting_comparative_models.script_file_id
  + Added _ihm_modeling_post_process.script_file_id, _ihm_modeling_protocol.script_file_id
;
  
mmcif_ihm-core.dic   0.133  2018-06-29  
;
  Changes (bv):
  + Added IHM_GEOMETRIC_OBJECT_LIST, IHM_GEOMETRIC_OBJECT_CENTER, IHM_GEOMETRIC_OBJECT_TRANSFORMATION
  + Added IHM_GEOMETRIC_OBJECT_SPHERE, IHM_GEOMETRIC_OBJECT_TORUS, IHM_GEOMETRIC_OBJECT_HALF_TORUS
  + Added IHM_GEOMETRIC_OBJECT_AXIS, IHM_GEOMETRIC_OBJECT_PLANE, IHM_GEOMETRIC_OBJECT_DISTANCE_RESTRAINT
;
  
mmcif_ihm-core.dic   0.134  2018-07-18  
;
  Changes (bv):
  + Updated _item_sub_category.id for matrices and vectors
;
  
mmcif_ihm-core.dic   0.135  2018-10-04  
;
  Changes (bv):
  + Added DSSO crosslinker
  + Updated parent-child relationships for several data items: 
    _ihm_starting_model_details.entity_id, _ihm_model_representation.entity_id,
    _ihm_struct_assembly.entity_id, _ihm_localization_density_files.entity_id,
    _ihm_starting_model_coord.entity_id, _ihm_starting_model_coord.comp_id, 
    _ihm_sphere_obj_site.entity_id, _ihm_gaussian_obj_site.entity_id,
    _ihm_gaussian_obj_ensemble.entity_id
  + Updated _item_type.code for _ihm_external_files.file_path
;
  
mmcif_ihm-core.dic   0.136  2018-10-05  
;
  Changes (bv):
  + Added ihm_hydroxyl_radical_fp_restraint
;
  
mmcif_ihm-core.dic   0.137  2018-10-26  
;
  Changes (bv): 
  + Renamed IHM_NON_POLY_ATOM_FEATURE to IHM_NON_POLY_FEATURE
  + Updated _ihm_feature_list.feature_type
  + Added IHM_FEATURE_PSEUDO_SITE
;
  
mmcif_ihm-core.dic   0.138  2018-12-20  
;
  Changes (bv):
  + Added _ihm_modeling_protocol.ensemble_flag
  + Changed _item.type_code from code to ucode for: 
    _ihm_modeling_protocol.multi_scale_flag
    _ihm_modeling_protocol.multi_state_flag
    _ihm_modeling_protocol.ordered_flag
    _ihm_dataset_list.database_hosted
    _ihm_2dem_class_average_restraint.image_segment_flag
    _ihm_3dem_restraint.map_segment_flag
    _ihm_sas_restraint.profile_segment_flag
  + Updated definitions for _ihm_feature_list.entity_type
  + Updated enumeration list for _ihm_feature_list.feature_type
;
  
mmcif_ihm-core.dic   0.139  2019-01-03  
;
  Changes (bv): 
  + Changed IHM_FEATURE_PSEUDO_SITE to IHM_PSEUDO_SITE_FEATURE
;
  
mmcif_ihm-core.dic   0.140  2019-03-11  
;
  Changes (bv):
  + Added IHM_INTERFACE_RESIDUE_FEATURE
  + Added _ihm_poly_residue_feature.interface_residue_flag
  + Updated item_mandatory.code for _ihm_poly_residue_feature.asym_id
    _ihm_poly_atom_feature.asym_id, _ihm_non_poly_feature.asym_id
;
  
mmcif_ihm-core.dic   0.141  2019-05-06  
;
  Changes (bv):
  + Added IHM_CHEMICAL_COMPONENT_DESCRIPTOR, IHM_PROBE_LIST, IHM_EPR_RESTRAINT
  + Added IHM_POLY_PROBE_POSITION, IHM_POLY_PROBE_CONJUGATE
  + Added IHM_LIGAND_PROBE
  + Added _ihm_cross_link_list.linker_chem_comp_descriptor_id
;
  
mmcif_ihm-core.dic     1.0  2019-05-31  
;
  Changes (bv):
  + Updated several categories to fix primary key information and parent-child relationships
;
  
mmcif_ihm-core.dic    1.01  2019-07-26  
;
  Changes (bv):
  + Updated _item_mandatory.code and _pdbx_item.mandatory_code for several data items. 
  + Added _item_sub_category.id in ihm_poly_probe_position.
  + Added PDB-Dev to the enumeration list in ihm_dataset_related_db_reference.db_name.
;
  
mmcif_ihm-core.dic    1.02  2019-10-01  
;
  Changes (bv):
  + Added _ihm_starting_model_details.description, _ihm_starting_comparative_models.details
  + Added _ihm_model_representation_details.description, _ihm_modeling_protocol_details.description
  + Added _ihm_modeling_post_process.details, _ihm_ensemble_info.details
  + Added _ihm_external_reference_info.details, _ihm_cross_link_list.details
  + Added _ihm_feature_list.details, _ihm_geometric_object_half_torus.details
  + Added enumerations (DSG and BSP) to _ihm_cross_link_list.linker_type
  + Updated _item_enumeration.detail for items in _ihm_cross_link_list.linker_type
  + Updated _item_description.description for _ihm_external_files.details
;
  
mmcif_ihm-core.dic    1.03  2019-10-03  
;
  Changes (bv):
  + Changed _ihm_geometric_object_distance_restraint.other_details to _ihm_geometric_object_distance_restraint.details
  + Removed _ihm_geometric_object_list.other_details and _ihm_geometric_object_half_torus.details
;
  
mmcif_ihm-core.dic    1.04  2019-10-10  
;
  Changes (bv):
  + Added _ihm_derived_distance_restraint.mic_value
  + Added enumeration to _ihm_dataset_list.data_type
;
  
mmcif_ihm-core.dic    1.05  2019-11-15  
;
  Changes (bv):
  + Added BMSO and DHSO to _ihm_cross_link_list.linker_type enumeration list
;
  
mmcif_ihm-core.dic    1.06  2020-01-24  
;
  Changes (bv):
  + Added _ihm_cross_link_restraint.pseudo_site_flag
  + Added ihm_cross_link_pseudo_site category  
  + Added ihm_pseudo_site category
  + Removed _ihm_pseudo_site_feature.Cartn_x, _ihm_pseudo_site_feature.Cartn_y
    _ihm_pseudo_site_feature.Cartn_z, _ihm_pseudo_site_feature.radius 
    _ihm_pseudo_site_feature.description
  + Added _ihm_pseudo_site_feature.pseudo_site_id
;
  
mmcif_ihm-core.dic    1.07  2020-02-10  
;
  Changes (bv):
  + Added CYS to _ihm_cross_link_list.linker_type enumeration list
;
  
mmcif_ihm-core.dic    1.08  2020-02-14  
;
  Changes (bv):
  + Added _ihm_ensemble_info.sub_sample_flag, _ihm_ensemble_info.sub_sampling_type
  + Added ihm_ensemble_sub_sample
;
  
mmcif_ihm-core.dic    1.09  2020-03-19  
;
  Changes (bv):
  + Added ihm_data_transformation
  + Added _ihm_related_datasets.transformation_id
;
  
mmcif_ihm-core.dic    1.10  2020-06-04  
;
  Changes (bv):
  + Added ihm_derived_angle_restraint, ihm_derived_dihedral_restraint
  + Added _ihm_derived_distance_restraint.distance_threshold_mean
  + Added _ihm_derived_distance_restraint.distance_threshold_esd
  + Updated enumeration for _ihm_derived_distance_restraint.restraint_type
  + Updated enumeration for _ihm_dataset_list.data_type
;
  
mmcif_ihm-core.dic    1.11  2020-07-03  
;
  Changes (bv):
  + Added ihm_hdx_restraint
;
  
mmcif_ihm-core.dic    1.12  2020-07-10  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
mmcif_ihm-core.dic    1.13  2021-01-28  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
mmcif_ihm-core.dic    1.14  2021-03-04  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
mmcif_ihm-core.dic    1.15  2021-03-16  
;
  Changes (bv):
  + Added enumerations to _ihm_dataset_related_db_reference.db_name
;
  
mmcif_ihm-core.dic    1.16  2021-04-14  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
mmcif_ihm-core.dic    1.17  2021-05-21  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
mmcif_ihm-core.dic    1.18  2022-12-20  
;
  Changes (bv):
  + Added _ihm_ensemble_info.model_group_superimposed_flag 
  + Added enumerations to _ihm_dataset_list.data_type and _ihm_ensemble_info.ensemble_clustering_method
  + Added ihm_entry_collection and ihm_entry_collection_mapping
;
  
mmcif_ihm-core.dic    1.19  2023-02-02  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type and _ihm_dataset_related_db_reference.db_name
;
  
mmcif_ihm-core.dic    1.20  2023-02-19  
;
  Changes (bv):
  + Updated category keys for ihm_entry_collection_mapping
  + Added enumerations to _ihm_cross_link_list.linker_type and _ihm_dataset_related_db_reference.db_name
  + Add nanoseconds to item_units_list
;
  
mmcif_ihm-core.dic    1.21  2023-03-24  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
mmcif_ihm-core.dic    1.22  2023-05-26  
;
  Changes (bv):
  + Added enumerations to _ihm_dataset_related_db_reference.db_name
;
  
mmcif_ihm-core.dic    1.23  2023-07-05  
;
  Changes (bv):
  + Added enumerations to _ihm_cross_link_list.linker_type
;
  
mmcif_ihm-core.dic    1.24  2023-11-30  
;
  Changes (bv):
  + Added ihm_multi_state_scheme, ihm_multi_state_scheme_connectivity
  + Added ihm_kinetic_rate, ihm_relaxation_time, ihm_relaxation_time_multi_state_scheme
;
  
mmcif_ihm-core.dic    1.25  2023-12-22  
;
  + Rename dictionary
  + Reorganize repository
;
  
mmcif_ihm-core.dic    1.26  2024-07-11  
;
  + Add "Crosslinking-MS" to the enumeration list of _ihm_dataset_list.data_type
  + Add "modeling" to the enumeration list of _ihm_dataset_group.application
  + Update category descriptions of ihm_model_list, ihm_model_group, ihm_model_group_link, ihm_model_representative
  + Add category "ihm_ordered_model" and deprecate category "ihm_ordered_ensemble"
  + Update enumerations for _ihm_cross_link_list.linker_type
  + Update _item_type.code for _ihm_dataset_related_db_reference.accession_code and _ihm_ensemble_info.ensemble_clustering_method
  + Add "ProteomeXchange" to the enumeration list of _ihm_dataset_related_db_reference.db_name
;
  
mmcif_ihm-core.dic    1.27  2024-11-25  
;
  + Added BMRbig to the enumeration list in ihm_dataset_related_db_reference.db_name
;
  
mmcif_ihm-core.dic    1.28  2025-03-24  
;
  + Add _ihm_cross_link_result.model_group_id
  + Update _item.mandatory_code for _ihm_cross_link_result.ensemble_id and _ihm_cross_link_result.num_models
;
  
#
loop_
_sub_category.id
_sub_category.description
cartesian_coordinate       
;              The collection of x, y, and z components of a position specified
               with reference to a Cartesian (orthogonal angstrom) coordinate
               system.
;
  
cartesian_coordinate_esd   
;              The collection of estimated standard deviations of the x, y, and
               z components of a position specified with reference to a
               Cartesian (orthogonal angstrom) coordinate system.
;
  
fractional_coordinate      
;              The collection of x, y, and z components of a position specified
               with reference to unit cell directions.
;
  
fractional_coordinate_esd  
;              The collection of estimated standard deviations of the x, y, and
               z components of a position specified with reference to unit cell
               directions.
;
  
matrix                     "              The collection of elements of a matrix."  
miller_index               
;              The collection of h, k, and l components of the Miller index of
               a reflection.
;
  
cell_length                "              The collection of a, b, and c axis lengths of a unit cell."  
cell_length_esd            
;              The collection of estimated standard deviations of the a, b, and
               c axis lengths of a unit cell.
;
  
cell_angle                 "              The collection of alpha, beta, and gamma angles of a unit cell."  
cell_angle_esd             
;              The collection of estimated standard deviations of the alpha,
               beta, and gamma angles of a unit cell.
;
  
mm_atom_site_auth_label    
;              The collection of asym id, atom id, comp id and seq id
               components of an author's alternative specification for
               a macromolecular atom site.
;
  
mm_atom_site_label         
;              The collection of alt id, asym id, atom id, comp id and seq id
               components of the label for a macromolecular atom site.
;
  
vector                     "              The collection of elements of a vector."  
unit_vector                "              The collection of elements of a vector whose norm equals 1."  
eigendecomposition         
;              The collection of items making up the Eigendecomposition of a
               matrix. For an n x n matrix, instances of this subcategory will
               consist of n Eigenvectors of dimension n, and n Eigenvalues.
;
  
mm_poly_res_label          "              The collection of entity id, comp id and seq id components of the label for a residue in a polymer."  
#
loop_
_category_group_list.id
_category_group_list.parent_id
_category_group_list.description
inclusive_group               .                "              The parent category group containing all of the data categories in the macromolecular dictionary."  
atom_group                    inclusive_group  "              Categories that describe the properties of atoms."  
array_data_group              inclusive_group  "             Categories that describe array data."  
axis_group                    inclusive_group  "             Categories that describe axes."  
audit_group                   inclusive_group  
;              Categories that describe dictionary maintenance and
               identification.
;
  
cell_group                    inclusive_group  "              Categories that describe the unit cell."  
chemical_group                inclusive_group  "              Categories that describe chemical features derived from the experimental coordinate data."  
chem_comp_group               inclusive_group  "              Categories that define the chemical structure and nomenclature of the momoners and ligands in the experiment."  
chem_comp_dictionary_group    inclusive_group  
;              Categories defining chemical structure and nomenclature of the momoners and ligands used in
               the Chemical Component Dictionary.
;
  
chem_comp_model_group         inclusive_group  "              Categories defining structural models for chemical components defined in the Chemical Component Dictionary."  
bird_dictionary_group         inclusive_group  
;              Categories defining chemical structure and nomenclature of the small polymer molecules used in
               the Biologically Interesting Molecule Reference Dictionary (BIRD).
;
  
bird_family_dictionary_group  inclusive_group  "              Categories defining families of related molecules used in the Biologically Interesting Molecule Reference Dictionary (BIRD)."  
chem_link_group               inclusive_group  
;              Categories that describe links between components of
               chemical structure.
;
  
citation_group                inclusive_group  "              Categories that provide bibliographic references."  
computing_group               inclusive_group  "              Categories that describe the computational details of the experiment."  
compliance_group              inclusive_group  
;              Categories that are included in this dictionary specifically to
               comply with previous dictionaries.
;
  
database_group                inclusive_group  
;              Categories that hold references to entries in databases that
               contain related information.
;
  
diffrn_group                  inclusive_group  "              Categories that describe details of the diffraction experiment."  
em_group                      inclusive_group  "              Categories that describe 3-dimensional electron microscopy."  
em_legacy_group               inclusive_group  "              Categories that describe 3-dimensional electron microscopy (legacy)."  
emdb_admin_group              inclusive_group  "              Administrative Categories for Electron Microscopy Data Bank."  
emdb_extension_group          inclusive_group  "              Categories that describe 3-dimensional electron microscopy (EMDB extension)."  
entity_group                  inclusive_group  "              Categories that describe the unique chemical and molecular entities."  
entry_group                   inclusive_group  "              Categories that pertain to the entire data block."  
exptl_group                   inclusive_group  "              Categories that hold details of the experimental conditions."  
geom_group                    inclusive_group  "              Categories that hold details of molecular and crystal geometry."  
iucr_group                    inclusive_group  
;              Categories that are used for manuscript submission and
               internal processing by the staff of the International Union of
               Crystallography.
;
  
nmr_group                     inclusive_group  "              Categories that describe Nuclear Magnetic Spectroscopy experiments."  
pdb_group                     inclusive_group  
;              Categories that pertain to the file-format or data-processing
               codes used by the Protein Data Bank.
;
  
phasing_group                 inclusive_group  "              Categories that describe phasing."  
refine_group                  inclusive_group  "              Categories that describe refinement."  
refln_group                   inclusive_group  "              Categories that describe the details of reflection measurements."  
struct_group                  inclusive_group  "              Categories that contain details about the experimental structure."  
symmetry_group                inclusive_group  "              Categories that describe symmetry information."  
pdbx_group                    inclusive_group  "             Categories which have been added to support the data archiving and exchange for the Protein Data Bank."  
pdbx_erf_group                inclusive_group  
;             Categories which are used by RCSB PDB to store derived
              and computed data.
;
  
ccp4_group                    inclusive_group  "             Categories from the CCP4 harvest dictionary."  
ndb_group                     inclusive_group  "             Categories which are used by the Nucleic Acid Database."  
rcsb_group                    inclusive_group  "             Categories which are used internally by the RCSB PDB."  
protein_production_group      inclusive_group  "             Categories which describe the details of protein production."  
solution_scattering_group     inclusive_group  "             Categories which describe the details of solution scattering experiments."  
validate_group                inclusive_group  
;              Categories that describe geometric properties
               of residues that deviate from expected standards
               by 6 * the expected RMSD
;
  
view_group                    inclusive_group  "             Categories which are used to storing view transformations."  
em_specimen                   inclusive_group  "              Categories that describe electron microscopy specimens."  
em_sample                     inclusive_group  "              Categories that describe electron microscopy samples."  
em_crystallography            inclusive_group  "              Categories that describe electron crystallography."  
em_fitting                    inclusive_group  "              Categories that describe electron microscopy fitting."  
em_tomography                 inclusive_group  "              Categories that describe electron tomography."  
em_imaging                    inclusive_group  "              Categories that describe electron microscopy imaging."  
em_reconstruction             inclusive_group  "              Categories that describe electron microscopy reconstruction."  
em_symmetry_group             inclusive_group  "              Categories that describe electron microscopy symmetry."  
em_experiment                 inclusive_group  "              Categories that describe electron microscopy experimental details."  
em_symmetry                   inclusive_group  "              Categories that describe electron microscopy symmetry details."  
emd_group                     inclusive_group  "              Categories describing electron microscopy that are used by the wwPDB deposition and annotation system."  
chem_comp_model_group         inclusive_group  "              Categories describing experimental and computational models for individual chemical components."  
dcc_group                     inclusive_group  "              Categories output by the crystallographic data utility application DCC."  
xfel_group                    inclusive_group  "              Categories that describe X-ray Free Electron Laser (XFEL) data collection and experimental details."  
diffrn_data_set_group         inclusive_group  "              Categories extending the description of measured diffraction data."  
branch_group                  inclusive_group  "              Categories that describe branched chain carbohydrates."  
reference_sequence_group      inclusive_group  "              Categories that describe SIFTS mapping of sequence data."  
ihm_group                     inclusive_group  "              Categories that describe the integrative/hybrid methods extension dictionary (IHMCIF)."  
#
loop_
_item_type_list.code
_item_type_list.primitive_code
_item_type_list.construct
_item_type_list.detail
code                      char   
;[][_,.;:"&<>()/\{}'`~!@#$%A-Za-z0-9*|+-]*
;
  "              code item types/single words ..."  
ucode                     uchar  
;[][_,.;:"&<>()/\{}'`~!@#$%A-Za-z0-9*|+-]*
;
  "              code item types/single words  (case insensitive) ..."  
line                      char   
;[][ \t_(),.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*
;
  "              char item types / multi-word items ..."  
uline                     uchar  
;[][ \t_(),.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*
;
  "              char item types / multi-word items (case insensitive)..."  
text                      char   
;[][ \n\t()_,.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*
;
  "              text item types / multi-line text ..."  
int                       numb   "[+-]?[0-9]+"  
;              int item types are the subset of numbers that are the negative
               or positive integers.
;
  
float                     numb   -?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)?  
;              float item types are the subset of numbers that are the floating
               numbers.
;
  
name                      uchar  "_[_A-Za-z0-9]+\.[][_A-Za-z0-9%-]+"  "              name item types take the form..."  
idname                    uchar  "[_A-Za-z0-9]+"  "              idname item types take the form..."  
any                       char   .*  "              A catch all for items that may take any form..."  
yyyy-mm-dd                char   "[0-9]?[0-9]?[0-9][0-9]-[0-9]?[0-9]-[0-9][0-9]"  
;
               Standard format for CIF dates.
;
  
yyyy-mm-dd:hh:mm-flex     char   "[0-9][0-9][0-9][0-9](-[0-9]?[0-9])?(-[0-9][0-9])?(:[0-9]?[0-9]:[0-9][0-9])?"  
;
               Flexible date-time format.
;
  
uchar3                    uchar  "[+]?[A-Za-z0-9][A-Za-z0-9]?[A-Za-z0-9]?"  
;
               data item for 3 character codes
;
  
uchar5                    uchar  "[+]?[A-Za-z0-9][A-Za-z0-9]?[A-Za-z0-9]?[A-Za-z0-9]?[A-Za-z0-9]?"  
;
               data item for 5 character codes
;
  
uchar1                    uchar  "[+]?[A-Za-z0-9]"  
;
               data item for 1 character codes
;
  
symop                     char   ([1-9]|[1-9][0-9]|1[0-8][0-9]|19[0-2])(_[1-9][1-9][1-9])?  
;              symop item types take the form n_klm, where n refers to the
               symmetry operation that is applied to the coordinates in the
               ATOM_SITE category identified by _atom_site_label.  It must
               match a number given in _symmetry_equiv_pos_site_id.

               k, l, and m refer to the translations that are subsequently
               applied to the symmetry transformed coordinates to generate
               the atom used.  These translations (x,y,z) are related to
               (k,l,m) by
                     k = 5 + x
                     l = 5 + y
                     m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;
  
atcode                    char   
;[][ _(),.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*
;
  "              Character data type for atom names  ..."  
yyyy-mm-dd:hh:mm          char   "[0-9]?[0-9]?[0-9][0-9]-[0-9]?[0-9](-[0-9]?[0-9])?(:[0-9]?[0-9]:[0-9][0-9])?"  
;
               Standard format for CIF dates with optional time stamp.
;
  
fax                       uchar  
;[_,.;:"&<>/\{}'`~!@#$%A-Za-z0-9*|+-]*
;
  "              code item types/single words  (case insensitive) ..."  
phone                     uchar  
;[_,.;:"&<>/\{}'`~!@#$%A-Za-z0-9*|+-]*
;
  "              code item types/single words  (case insensitive) ..."  
email                     uchar  
;[_,.;:"&<>/\{}'`~!@#$%A-Za-z0-9*|+-]*
;
  "              code item types/single words  (case insensitive) ..."  
int-range                 numb   "[+-]?[0-9]+-[+-]?[0-9]+"  
;              range of integer item types are the subset of numbers that are the negative
               or positive integers.
;
  
float-range               numb   -?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)?(--?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)?)?  
;              int item types are the subset of numbers that are the floating
               numbers.
;
  
code30                    char   .?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?  "A string value, not allowed to exceed 30 characters."  
binary                    char   
;\n--CIF-BINARY-FORMAT-SECTION--\n\
[][ \n\t()_,.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*\
\n--CIF-BINARY-FORMAT-SECTION----
;
  
;              binary items are presented as MIME-like ascii-encoded
               sections in an imgCIF.  In a CBF, raw octet streams
               are used to convey the same information.
;
  
operation_expression      char   
;[][ \t_(),.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*
;
  "              sequence of parenthetical integer ranges and character codes"  
ec-type                   char   "([1-7]((.[1-9][0-9]?)|(.-))((.[1-9][0-9]?)|(.-))((.[1-9][0-9]?[0-9]?)|(.-)))(([ ]*,[ ]*)([1-7]((.[1-9][0-9]?)|(.-))((.[1-9][0-9]?)|(.-))((.[1-9][0-9]?[0-9]?)|(.-))))*"  
;
               Approximate format of Enzyme Commission EC number. 1.2.3.4 with
               optional parts.
;
  
seq-one-letter-code       char   (([\nUGPAVLIMCFYWHKRQNEDSTX]+)?|(\([0-9A-Z][0-9A-Z]?[0-9A-Z]?\))?)+  "  One letter code sequence supporting parenthetical modified residues with 3-letter codes"  
ucode-alphanum-csv        uchar  "[A-Za-z0-9]+(,[A-Za-z0-9]+)?"  "              comma separated alpha numeric codes (single words)  (case insensitive) ..."  
point_symmetry            char   "[CD][1-9]|[CD][1-9][0-9]*|T|O|I"  "              Encodes point symmetry as Cn, Dn, T, O, or I  (case sensitive), where n is a positive integer."  
asym_id                   char   "[A-Za-z0-9]+"  "              A single chain or asym ids."  
id_list                   char   "[A-Za-z0-9]+(,[A-Za-z0-9]+)*"  "              A list of comma separated chain or asym ids."  
id_list_spc               char   "[ \t]*[A-Za-z0-9]+([ \t]*,[ \t]*[A-Za-z0-9]+)*[ \t]*"  "              A list of comma separated chain or asym ids with optional spaces."  
3x4_matrices              char   "(((([ \t]*-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)? +){3})?(-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)? *\n([\t ]*\n)*)){3})*((([ \t]*-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)? +){3})?(-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)? *\n([\t ]*\n)*)){2}((([ \t]*-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)? +){3})(-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)? *\n?([\t ]*\n)*))[ \t]*"  
;              A set of 3x4 matrices separated by spaces and newlines on each line.
               Final newline optional. Optional spaces at start of lines. Blank lines accepted.
;
  
3x4_matrix                char   "((([ \t]*-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)? +){3})?(-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)? *\n([\t ]*\n)*)){2}((([ \t]*-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)? +){3})(-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)? *\n?([\t ]*\n)*))[ \t]*"  
;              A 3x4 matrix separated by spaces and newlines on each line.
               Final newline optional. Optional spaces at start of lines. Blank lines accepted.
;
  
pdbx_related_db_id        char   
;[][_.:"&<>()/\{}'`~!@#$%A-Za-z0-9*|+-]*
;
  "              code item types/single words without semi-colon or comma ..."  
pdbx_PDB_obsoleted_db_id  char   "[0-9][0-9a-zA-Z]{3}( [0-9][0-9a-zA-Z]{3})*"  "              List of PDB ids for obsoletion - space separated"  
positive_int              numb   "[1-9][0-9]*"  "Positive integers (1,2,3,..)"  
emd_id                    char   EMD-[0-9]{4,}  "EMDB code"  
pdb_id                    char   ([1-9][A-Z0-9]{3}|PDB_[A-Z0-9]{8})  "PDB code (upper cases)"  
pdb_id_u                  uchar  ([1-9][A-Za-z0-9]{3}|[Pp][Dd][Bb]_[A-Za-z0-9]{8})  "PDB code (case insensitive)"  
point_group               char   (C[1-9][0-9]*|D[2-9]|D[1-9][0-9]+|O|T|I)  "Point group symmetry in Schoenflies notation"  
point_group_helical       char   "[CD][1-9][0-9]*"  "Point group symmetry for helices in Schoenflies notation"  
boolean                   char   YES|NO  "Boolean type"  
author                    char   "(([A-Za-z0-9_]+(( |-|'|\. )[A-Za-z0-9_]+)*( Jr.| III)?, [A-Za-z0-9_]\.(-?[A-Za-z0-9_]+\.)*)|(Seattle Structural Genomics Center for Infectious Disease.*)|(Structural Genomics Consortium.*)|(QCRG Structural Biology Consortium.*)|(Center for Structural Genomics of Infectious Diseases.*)|(Center for Structural Biology of Infectious Diseases.*)|(Center for Structures of Membrane Proteins.*))"  "Author name in PDB format: Taylor, C.A."  
orcid_id                  char   "[0-9]{4}-[0-9]{4}-[0-9]{4}-([0-9]{3}X|[0-9]{4})"  "ORCID pattern - dddd-dddd-dddd-dddd|dddX"  
symmetry_operation        char   "[-+0-9XxYyZ/ ]+,[-+0-9XxYyZ/ ]+,[-+0-9XxYyZ/ ]+"  "Allowed characters for use in symmetry operation such as 1/2-x,y,1/2-z"  
sequence_dep              char   "[a-zA-Z0-9\t \r\n\v\f\(\)]+$"  "Deposition specific one letter code"  
date_dep                  char   ([1-9][0-9](([02468][048])|([13579][26]))-02-29)|[1-9][0-9][0-9][0-9]-((((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30))))  "Deposition specific date with better checking"  
citation_doi              char   10\..*  "Citation DOI specification."  
exp_data_doi              char   10\.[0-9]{4,9}/[-._;()/:A-Za-z0-9]+  "Experimental dataset DOI"  
deposition_email          uchar  "[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+"  "code item types/single words  (case insensitive) ..."  
#
loop_
_item_units_list.code
_item_units_list.detail
metres                          "metres (metres)"  
centimetres                     "centimetres (metres * 10^( -2)^)"  
millimetres                     "millimetres (metres * 10^( -3)^)"  
micrometres                     "micrometres (metres * 10^( -6)^)"  
nanometres                      "nanometres  (metres * 10^( -9)^)"  
nanometers                      "nanometers  (metres * 10^( -9)^)"  
angstroms                       "angstroms   (metres * 10^(-10)^)"  
picometres                      "picometres  (metres * 10^(-12)^)"  
femtometres                     "femtometres (metres * 10^(-15)^)"  
reciprocal_metres               "reciprocal metres (metres^(-1)^)"  
reciprocal_centimetres          "reciprocal centimetres ((metres * 10^( -2))^(-1))"  
reciprocal_millimetres          "reciprocal millimetres ((metres * 10^( -3)^)^(-1)^)"  
reciprocal_nanometres           "reciprocal nanometres  ((metres * 10^( -9)^)^(-1)^)"  
reciprocal_angstroms            "reciprocal angstroms   ((metres * 10^(-10)^)^(-1)^)"  
reciprocal_picometres           "reciprocal picometres  ((metres * 10^(-12)^)^(-1)^)"  
micrometres_squared             "micrometres squared (metres * 10^( -6)^)^2^"  
nanometres_squared              "nanometres squared (metres * 10^( -9)^)^2^"  
angstroms_squared               "angstroms squared  (metres * 10^(-10)^)^2^"  
8pi2_angstroms_squared          "8pi^2^ * angstroms squared (metres * 10^(-10)^)^2^"  
picometres_squared              "picometres squared (metres * 10^(-12)^)^2^"  
nanometres_cubed                "nanometres cubed (metres * 10^( -9)^)^3^"  
angstroms_cubed                 "angstroms cubed  (metres * 10^(-10)^)^3^"  
picometres_cubed                "picometres cubed (metres * 10^(-12)^)^3^"  
kilopascals                     kilopascals  
gigapascals                     gigapascals  
hours                           hours  
minutes                         minutes  
seconds                         seconds  
microseconds                    "microseconds (seconds * 10^( -6)^)"  
femtoseconds                    "femtoseconds (seconds * 10^( -15)^)"  
degrees                         "degrees (of arc)"  
milliradians                    "milliradians (of arc)"  
degrees_per_minute              "degrees (of arc) per minute"  
celsius                         "degrees (of temperature) Celsius"  
kelvins                         "temperature in Kelvin"  
electrons                       electrons  
electrons_squared               "electrons squared"  
electrons_per_nanometres_cubed  " electrons per nanometres cubed (electrons/(metres * 10^( -9)^)^(-3)^)"  
electrons_per_angstroms_cubed   " electrons per angstroms cubed (electrons/(metres * 10^(-10)^)^(-3)^)"  
electrons_per_picometres_cubed  " electrons per picometres cubed (electrons/(metres * 10^(-12)^)^(-3)^)"  
ions_per_cm_squared_per_sec     " ions per centimetre squared per second (ions/(meters * 10^(-2)^)^(-2)/second^)"  
kilowatts                       kilowatts  
milliamperes                    milliamperes  
kilovolts                       kilovolts  
volts                           volts  
arbitrary                       " arbitrary system of units."  
angstroms_degrees               "angstroms * degrees"  
degrees_squared                 "degrees squared"  
mg_per_ml                       "milliliter per milligram"  
ml_per_min                      "milliliters per minute"  
microliters_per_min             "microliters per minute"  
milliliters                     "liter / 1000"  
milligrams                      "grams / 1000"  
megadaltons                     megadaltons  
kilodaltons                     kilodaltons  
kilodaltons/nanometer           kilodaltons/nanometer  
microns_squared                 "micrometres squared (metres * 10^( -6)^)^2^"  
microns                         "micrometres  (metres * 10^( -6)^)"  
electrons_angstrom_squared      "electrons square angstrom"  
electron_volts                  "electron volts"  
kiloelectron_volts              "KeV (electron volts * 10^( 3)^)"  
millimolar                      millimolar  
megagrams_per_cubic_metre       "megagrams per cubic metre"  
pixels_per_millimetre           "pixels per millimetre"  
counts                          counts  
counts_per_photon               "counts per photon"  
pascals                         pascals  
teraphotons_per_pulse           "(photons * 10^( 12)^) per pulse"  
joules                          Joules  
microjoules                     "joules * 10^( -6)^"  
hertz                           "reciprocal seconds"  
reciprocal_seconds              "reciprocal seconds (seconds^(-1)^)"  
nanoseconds                     "nanoseconds (seconds * 10^( -9)^)"  
#
loop_
_item_units_conversion.from_code
_item_units_conversion.to_code
_item_units_conversion.operator
_item_units_conversion.factor
metres                          centimetres                     *  1.0E+02  
metres                          millimetres                     *  1.0E+03  
metres                          nanometres                      *  1.0E+09  
metres                          angstroms                       *  1.0E+10  
metres                          picometres                      *  1.0E+12  
metres                          femtometres                     *  1.0E+15  
centimetres                     millimetres                     *  1.0E+01  
centimetres                     nanometres                      *  1.0E+07  
centimetres                     angstroms                       *  1.0E+08  
centimetres                     picometres                      *  1.0E+10  
centimetres                     femtometres                     *  1.0E+13  
millimetres                     centimetres                     *  1.0E-01  
millimetres                     nanometres                      *  1.0E+06  
millimetres                     angstroms                       *  1.0E+07  
millimetres                     picometres                      *  1.0E+09  
millimetres                     femtometres                     *  1.0E+12  
nanometres                      centimetres                     *  1.0E-07  
nanometres                      millimetres                     *  1.0E-06  
nanometres                      angstroms                       *  1.0E+01  
nanometres                      picometres                      *  1.0E+03  
nanometres                      femtometres                     *  1.0E+06  
angstroms                       centimetres                     *  1.0E-08  
angstroms                       millimetres                     *  1.0E-07  
angstroms                       nanometres                      *  1.0E-01  
angstroms                       picometres                      *  1.0E+02  
angstroms                       femtometres                     *  1.0E+05  
picometres                      centimetres                     *  1.0E-10  
picometres                      millimetres                     *  1.0E-09  
picometres                      nanometres                      *  1.0E-03  
picometres                      angstroms                       *  1.0E-02  
picometres                      femtometres                     *  1.0E+03  
femtometres                     centimetres                     *  1.0E-13  
femtometres                     millimetres                     *  1.0E-12  
femtometres                     nanometres                      *  1.0E-06  
femtometres                     angstroms                       *  1.0E-05  
femtometres                     picometres                      *  1.0E-03  
reciprocal_centimetres          reciprocal_millimetres          *  1.0E-01  
reciprocal_centimetres          reciprocal_nanometres           *  1.0E-07  
reciprocal_centimetres          reciprocal_angstroms            *  1.0E-08  
reciprocal_centimetres          reciprocal_picometres           *  1.0E-10  
reciprocal_millimetres          reciprocal_centimetres          *  1.0E+01  
reciprocal_millimetres          reciprocal_nanometres           *  1.0E-06  
reciprocal_millimetres          reciprocal_angstroms            *  1.0E-07  
reciprocal_millimetres          reciprocal_picometres           *  1.0E-09  
reciprocal_nanometres           reciprocal_centimetres          *  1.0E+07  
reciprocal_nanometres           reciprocal_millimetres          *  1.0E+06  
reciprocal_nanometres           reciprocal_angstroms            *  1.0E-01  
reciprocal_nanometres           reciprocal_picometres           *  1.0E-03  
reciprocal_angstroms            reciprocal_centimetres          *  1.0E+08  
reciprocal_angstroms            reciprocal_millimetres          *  1.0E+07  
reciprocal_angstroms            reciprocal_nanometres           *  1.0E+01  
reciprocal_angstroms            reciprocal_picometres           *  1.0E-02  
reciprocal_picometres           reciprocal_centimetres          *  1.0E+10  
reciprocal_picometres           reciprocal_millimetres          *  1.0E+09  
reciprocal_picometres           reciprocal_nanometres           *  1.0E+03  
reciprocal_picometres           reciprocal_angstroms            *  1.0E+01  
nanometres_squared              angstroms_squared               *  1.0E+02  
nanometres_squared              picometres_squared              *  1.0E+06  
angstroms_squared               nanometres_squared              *  1.0E-02  
angstroms_squared               picometres_squared              *  1.0E+04  
angstroms_squared               8pi2_angstroms_squared          *  78.9568  
picometres_squared              nanometres_squared              *  1.0E-06  
picometres_squared              angstroms_squared               *  1.0E-04  
nanometres_cubed                angstroms_cubed                 *  1.0E+03  
nanometres_cubed                picometres_cubed                *  1.0E+09  
angstroms_cubed                 nanometres_cubed                *  1.0E-03  
angstroms_cubed                 picometres_cubed                *  1.0E+06  
picometres_cubed                nanometres_cubed                *  1.0E-09  
picometres_cubed                angstroms_cubed                 *  1.0E-06  
kilopascals                     gigapascals                     *  1.0E-06  
gigapascals                     kilopascals                     *  1.0E+06  
hours                           minutes                         *  6.0E+01  
hours                           seconds                         *  3.6E+03  
hours                           microseconds                    *  3.6E+09  
minutes                         hours                           /  6.0E+01  
minutes                         seconds                         *  6.0E+01  
minutes                         microseconds                    *  6.0E+07  
seconds                         hours                           /  3.6E+03  
seconds                         minutes                         /  6.0E+01  
seconds                         microseconds                    *  1.0E+06  
microseconds                    hours                           /  3.6E+09  
microseconds                    minutes                         /  6.0E+07  
microseconds                    seconds                         /  1.0E+06  
celsius                         kelvins                         -    273.0  
kelvins                         celsius                         +    273.0  
electrons_per_nanometres_cubed  electrons_per_angstroms_cubed   *  1.0E+03  
electrons_per_nanometres_cubed  electrons_per_picometres_cubed  *  1.0E+09  
electrons_per_angstroms_cubed   electrons_per_nanometres_cubed  *  1.0E-03  
electrons_per_angstroms_cubed   electrons_per_picometres_cubed  *  1.0E+06  
electrons_per_picometres_cubed  electrons_per_nanometres_cubed  *  1.0E-09  
electrons_per_picometres_cubed  electrons_per_angstroms_cubed   *  1.0E-06  
#
loop_
_pdbx_comparison_operator_list.code
_pdbx_comparison_operator_list.description
=        Equal  
>=       "greater or equal"  
!=       "Not equal"  
<        "Less than"  
not_set  "If not set"  
true     "Always true"  
#
loop_
_pdbx_conditional_context_list.ordinal_id
_pdbx_conditional_context_list.context_id
_pdbx_conditional_context_list.target_item_name
_pdbx_conditional_context_list.target_item_value
_pdbx_conditional_context_list.cmp_op
_pdbx_conditional_context_list.log_op
1  WWPDB_NOT_ACCEPT_GDPR_20210924  "_pdbx_database_status.date_accepted_terms_and_conditions"  ?                                      not_set  ?   
2  WWPDB_NOT_ACCEPT_GDPR_20210924  "_pdbx_database_status.date_accepted_terms_and_conditions"  2021-09-24                             <        or  
3  WWPDB_NOT_PI                    "_pdbx_contact_author.role"                                 ?                                      not_set  ?   
4  WWPDB_NOT_PI                    "_pdbx_contact_author.role"                                 "principal investigator/group leader"  !=       or  
5  WWPDB_ALWAYS_SUPPRESS           "_pdbx_contact_author.role"                                 ?                                      true     ?   
##
save__entity_poly_seq.entity_id
   _item_description.description  
;              This data item is a pointer to _entity_poly.entity_id in the 
               ENTITY_POLY category.
;

   #
   _item.name            "_entity_poly_seq.entity_id"
   _item.category_id     entity_poly_seq
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_entity_poly_seq.entity_id"
   _item_linked.parent_name  "_entity_poly.entity_id"
   #
save_
#
save__entity_poly_seq.mon_id
   _item_description.description  
;              This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;

   #
   _item.name            "_entity_poly_seq.mon_id"
   _item.category_id     entity_poly_seq
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_entity_poly_seq.mon_id"
   _item_linked.parent_name  "_chem_comp.id"
   #
save_
#
save__entity_poly_seq.num
   _item_description.description  
;              The value of _entity_poly_seq.num must uniquely and sequentially
               identify a record in the ENTITY_POLY_SEQ list.

               Note that this item must be a number and that the sequence
               numbers must progress in increasing numerical order.
;

   #
   _item.name            "_entity_poly_seq.num"
   _item.category_id     entity_poly_seq
   _item.mandatory_code  yes
   #
   loop_
   _item_range.maximum
   _item_range.minimum
     .  1  
     1  1  
   #
   _item_type.code  int
   #
   _item_sub_category.id  mm_poly_res_label
   #
save_
#
save__entity_poly_seq.hetero
   _item_description.description  
;              A flag to indicate whether this monomer in the polymer is
               heterogeneous in sequence.
;

   #
   _item.name            "_entity_poly_seq.hetero"
   _item.category_id     entity_poly_seq
   _item.mandatory_code  no
   #
   _item_default.value  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     no   "sequence is not heterogeneous at this monomer"  
     n    'abbreviation for "no"'  
     yes  "sequence is heterogeneous at this monomer"  
     y    'abbreviation for "yes"'  
   #
save_
#
save_ihm_entity_poly_segment
   _category.description     
;              Data items in the IHM_ENTITY_POLY_SEGMENT category identifies
               segments of polymeric entities. 
;

   _category.id              ihm_entity_poly_segment
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_entity_poly_segment.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_entity_poly_segment.id
        _ihm_entity_poly_segment.entity_id
        _ihm_entity_poly_segment.seq_id_begin
        _ihm_entity_poly_segment.seq_id_end
        _ihm_entity_poly_segment.comp_id_begin
        _ihm_entity_poly_segment.comp_id_end
         1  1   1     6   MET THR
         2  1   7    20   TYR LYS
         3  1  21    26   GLU GLN
         4  1  27    80   ASN LEU
         5  1  81    95   LEU GLU
         6  1  96   126   LEU LEU
         7  1 127   135   LYS ARG
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_entity_poly_segment
   #
save_
#
save__ihm_entity_poly_segment.id
   _item_description.description  "     A unique identifier for the polymeric segment."
   #
   _item.name            "_ihm_entity_poly_segment.id"
   _item.category_id     ihm_entity_poly_segment
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_entity_poly_segment.entity_id
   _item_description.description  
;     A unique identifier for the polymeric entity. 
      This data item is a pointer to _entity_poly_seq.entity_id in the
      ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_entity_poly_segment.entity_id"
   _item.category_id     ihm_entity_poly_segment
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_sub_category.id
   _item_sub_category.pdbx_label
     mm_poly_res_label  mm_poly_res_label_begin  
     mm_poly_res_label  mm_poly_res_label_end    
   #
   _item_linked.child_name   "_ihm_entity_poly_segment.entity_id"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_entity_poly_segment.seq_id_begin
   _item_description.description  
;     The leading residue index for the polymeric segment.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_entity_poly_segment.seq_id_begin"
   _item.category_id     ihm_entity_poly_segment
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_begin
   #
   _item_linked.child_name   "_ihm_entity_poly_segment.seq_id_begin"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_entity_poly_segment.seq_id_end
   _item_description.description  
;     The trailing residue index for the polymeric segment.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_entity_poly_segment.seq_id_end"
   _item.category_id     ihm_entity_poly_segment
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_end
   #
   _item_linked.child_name   "_ihm_entity_poly_segment.seq_id_end"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_entity_poly_segment.comp_id_begin
   _item_description.description  
;     The leading monomer component of the polymeric segment.
      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_entity_poly_segment.comp_id_begin"
   _item.category_id     ihm_entity_poly_segment
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_begin
   #
   _item_linked.child_name   "_ihm_entity_poly_segment.comp_id_begin"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_entity_poly_segment.comp_id_end
   _item_description.description  
;     The trailing monomer component of the polymeric segment.
      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_entity_poly_segment.comp_id_end"
   _item.category_id     ihm_entity_poly_segment
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_end
   #
   _item_linked.child_name   "_ihm_entity_poly_segment.comp_id_end"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save_ihm_starting_model_details
   _category.description     
;              Data items in the IHM_STARTING_MODEL_DETAILS category records the
               details about structural models used as starting inputs in 
               the integrative model building process.
;

   _category.id              ihm_starting_model_details
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_starting_model_details.starting_model_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_starting_model_details.starting_model_id
        _ihm_starting_model_details.entity_id
        _ihm_starting_model_details.entity_description
        _ihm_starting_model_details.asym_id
        _ihm_starting_model_details.entity_poly_segment_id
        _ihm_starting_model_details.starting_model_source
        _ihm_starting_model_details.starting_model_auth_asym_id
        _ihm_starting_model_details.starting_model_sequence_offset
        _ihm_starting_model_details.dataset_list_id
         Nup84-m1    1 Nup84   A   1 'comparative model'  A 0  5
         Nup85-m1    2 Nup85   B   2 'comparative model'  B 0  9
         Nup120-m1   3 Nup120  C   3 'comparative model'  C 0 13
         Nup133-m1   4 Nup133  D   4 'comparative model'  D 0 15
         Nup133-m2   4 Nup133  D   4 'comparative model'  D 0 16
         Nup145c-m1  5 Nup145c E   5 'comparative model'  E 0 19
         Seh1-m1     6 Seh1    F   6 'experimental model' A 0 20
         Sec13-m1    7 Sec13   G   7 'experimental model' D 0 21
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_starting_model_details
   #
save_
#
save__ihm_starting_model_details.starting_model_id
   _item_description.description  "     A unique identifier for the starting structural model."
   #
   _item.name            "_ihm_starting_model_details.starting_model_id"
   _item.category_id     ihm_starting_model_details
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
save_
#
save__ihm_starting_model_details.entity_id
   _item_description.description  
;     A unique identifier for the distinct molecular entities.
      This data item is a pointer to _entity.id in the ENTITY category.
;

   #
   _item.name            "_ihm_starting_model_details.entity_id"
   _item.category_id     ihm_starting_model_details
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_starting_model_details.entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_starting_model_details.entity_description
   _item_description.description  
;     A text description of the molecular entity
;

   #
   _item.name            "_ihm_starting_model_details.entity_description"
   _item.category_id     ihm_starting_model_details
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_starting_model_details.asym_id
   _item_description.description  
;   An asym/strand identifier for the entity molecule.
    This data item is a pointer to _struct_asym.id in the
    STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_starting_model_details.asym_id"
   _item.category_id     ihm_starting_model_details
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_starting_model_details.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_starting_model_details.entity_poly_segment_id
   _item_description.description  
;     The identifier for the polymeric segment modeled using this starting model.
      This data item is a pointer to _ihm_entity_poly_segment.id in the 
      IHM_ENTITY_POLY_SEGMENT category.
;

   #
   _item.name            "_ihm_starting_model_details.entity_poly_segment_id"
   _item.category_id     ihm_starting_model_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_starting_model_details.entity_poly_segment_id"
   _item_linked.parent_name  "_ihm_entity_poly_segment.id"
   #
save_
#
save__ihm_starting_model_details.starting_model_source
   _item_description.description  "     The source of the starting model."
   #
   _item.name            "_ihm_starting_model_details.starting_model_source"
   _item.category_id     ihm_starting_model_details
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     "comparative model"   .  
     "experimental model"  .  
     "integrative model"   .  
     "ab initio model"     .  
     other                 .  
   #
save_
#
save__ihm_starting_model_details.starting_model_auth_asym_id
   _item_description.description  
;     The author assigned chainId/auth_asym_id corresponding to this starting model. 
      This corresponds to the chainId/auth_asym_id of the experimental models in the
      PDB or comparative models in the Model Archive or the starting models referenced
      via a DOI. If starting models are included in IHM_STARTING_MODEL_COORD, then
      this will be the same as _ihm_starting_model_details.asym_id.
;

   #
   _item.name            "_ihm_starting_model_details.starting_model_auth_asym_id"
   _item.category_id     ihm_starting_model_details
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
save_
#
save__ihm_starting_model_details.starting_model_sequence_offset
   _item_description.description  
;     The offset in residue numbering between the starting model and the deposited I/H model, if applicable. 
      I/H model residue number = Starting model residue number + offset
;

   #
   _item.name            "_ihm_starting_model_details.starting_model_sequence_offset"
   _item.category_id     ihm_starting_model_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_starting_model_details.dataset_list_id
   _item_description.description  
;     Identifier to the starting model (comparative, experimental or integrative) 
      used as input in the integrative modeling.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_starting_model_details.dataset_list_id"
   _item.category_id     ihm_starting_model_details
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_starting_model_details.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_starting_model_details.description
   _item_description.description  "     Additional description regarding the starting model."
   #
   _item.name            "_ihm_starting_model_details.description"
   _item.category_id     ihm_starting_model_details
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_starting_comparative_models
   _category.description     
;              Data items in the IHM_STARTING_COMPARATIVE_MODELS category records
               additional details about comparative models used as starting inputs in 
               the integrative model building process.
;

   _category.id              ihm_starting_comparative_models
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_starting_comparative_models.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_starting_comparative_models.id
        _ihm_starting_comparative_models.starting_model_id
        _ihm_starting_comparative_models.starting_model_auth_asym_id
        _ihm_starting_comparative_models.starting_model_seq_id_begin
        _ihm_starting_comparative_models.starting_model_seq_id_end
        _ihm_starting_comparative_models.template_auth_asym_id
        _ihm_starting_comparative_models.template_seq_id_begin
        _ihm_starting_comparative_models.template_seq_id_end
        _ihm_starting_comparative_models.template_sequence_identity
        _ihm_starting_comparative_models.template_sequence_identity_denominator 
        _ihm_starting_comparative_models.template_dataset_list_id
        _ihm_starting_comparative_models.alignment_file_id
          3  Nup84-m1  A  429  488  G  482  551  10.0  1  3  7
          4  Nup84-m1  A  506  726  A  667  913  17.6  1  2  6
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_starting_comparative_models
   #
save_
#
save__ihm_starting_comparative_models.id
   _item_description.description  "     A unique identifier for the starting comparative model."
   #
   _item.name            "_ihm_starting_comparative_models.id"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_starting_comparative_models.starting_model_id
   _item_description.description  
;     The identifier for the starting structural model.
      This data item is a pointer to _ihm_starting_model_details.starting_model_id 
      in the IHM_STARTING_MODEL_DETAILS category.
;

   #
   _item.name            "_ihm_starting_comparative_models.starting_model_id"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_starting_comparative_models.starting_model_id"
   _item_linked.parent_name  "_ihm_starting_model_details.starting_model_id"
   #
save_
#
save__ihm_starting_comparative_models.starting_model_auth_asym_id
   _item_description.description  "     The chainId/auth_asym_id corresponding to the starting model."
   #
   _item.name            "_ihm_starting_comparative_models.starting_model_auth_asym_id"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
save_
#
save__ihm_starting_comparative_models.starting_model_seq_id_begin
   _item_description.description  "     The starting residue index of the starting model."
   #
   _item.name            "_ihm_starting_comparative_models.starting_model_seq_id_begin"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_starting_comparative_models.starting_model_seq_id_end
   _item_description.description  "     The ending residue index of the starting model."
   #
   _item.name            "_ihm_starting_comparative_models.starting_model_seq_id_end"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_starting_comparative_models.template_auth_asym_id
   _item_description.description  "     The chainId/auth_asym_id corresponding to the template."
   #
   _item.name            "_ihm_starting_comparative_models.template_auth_asym_id"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
save_
#
save__ihm_starting_comparative_models.template_seq_id_begin
   _item_description.description  "     The starting residue index of the template."
   #
   _item.name            "_ihm_starting_comparative_models.template_seq_id_begin"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_starting_comparative_models.template_seq_id_end
   _item_description.description  "     The ending residue index of the template."
   #
   _item.name            "_ihm_starting_comparative_models.template_seq_id_end"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_starting_comparative_models.template_sequence_identity
   _item_description.description  "     The percentage sequence identity between the template sequence and the comparative model sequence."
   #
   _item.name            "_ihm_starting_comparative_models.template_sequence_identity"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_starting_comparative_models.template_sequence_identity_denominator
   _item_description.description  
;     The denominator used while calculating the sequence identity provided in 
      _ihm_starting_comparative_models.template_sequence_identity.
;

   #
   _item.name            "_ihm_starting_comparative_models.template_sequence_identity_denominator"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_dependent.dependent_name  "_ihm_starting_comparative_models.template_sequence_identity"
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     1  "Length of the shorter sequence"  
     2  "Number of aligned positions (including gaps)"  
     3  "Number of aligned residue pairs (not including the gaps)"  
     4  "Arithmetic mean sequence length"  
     5  Other  
   #
save_
#
save__ihm_starting_comparative_models.template_dataset_list_id
   _item_description.description  
;
      The dataset list id corresponding to the template used to obtain the comparative model. 
      This data item is a pointer to _ihm_dataset_list.id in the IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_starting_comparative_models.template_dataset_list_id"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_starting_comparative_models.template_dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_starting_comparative_models.alignment_file_id
   _item_description.description  
;     The file id corresponding to the sequence alignment of the template sequence and the comparative model sequence. 
      This data item is a pointer to _ihm_external_files.id in the IHM_EXTERNAL_FILES category.
;

   #
   _item.name            "_ihm_starting_comparative_models.alignment_file_id"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_starting_comparative_models.alignment_file_id"
   _item_linked.parent_name  "_ihm_external_files.id"
   #
save_
#
save__ihm_starting_comparative_models.details
   _item_description.description  "     Additional details regarding the starting comparative models."
   #
   _item.name            "_ihm_starting_comparative_models.details"
   _item.category_id     ihm_starting_comparative_models
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_starting_computational_models
   _category.description     
;              Data items in the IHM_STARTING_COMPUTATIONAL_MODELS category records
               additional details about computational models used as starting inputs in 
               the integrative model building process.
;

   _category.id              ihm_starting_computational_models
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_starting_computational_models.starting_model_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_starting_computational_models.starting_model_id
        _ihm_starting_computational_models.script_file_id
        _ihm_starting_computational_models.software_id
          1  8  2
          2  9  2 
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_starting_computational_models
   #
save_
#
save__ihm_starting_computational_models.starting_model_id
   _item_description.description  
;     The identifier for the starting structural model.
      This data item is a pointer to _ihm_starting_model_details.starting_model_id 
      in the IHM_STARTING_MODEL_DETAILS category.
;

   #
   _item.name            "_ihm_starting_computational_models.starting_model_id"
   _item.category_id     ihm_starting_computational_models
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_starting_computational_models.starting_model_id"
   _item_linked.parent_name  "_ihm_starting_model_details.starting_model_id"
   #
save_
#
save__ihm_starting_computational_models.script_file_id
   _item_description.description  
;     The file id corresponding to the script used in the computational modeling. 
      This data item is a pointer to _ihm_external_files.id in the IHM_EXTERNAL_FILES category.
;

   #
   _item.name            "_ihm_starting_computational_models.script_file_id"
   _item.category_id     ihm_starting_computational_models
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_starting_computational_models.script_file_id"
   _item_linked.parent_name  "_ihm_external_files.id"
   #
save_
#
save__ihm_starting_computational_models.software_id
   _item_description.description  
;     An identifier to the software used in computational modeling. 
      This data item is a pointer to _software.pdbx_ordinal in the SOFTWARE category.
;

   #
   _item.name            "_ihm_starting_computational_models.software_id"
   _item.category_id     ihm_starting_computational_models
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_starting_computational_models.software_id"
   _item_linked.parent_name  "_software.pdbx_ordinal"
   #
save_
#
save_ihm_starting_model_seq_dif
   _category.description     
;              Data items in the IHM_STARTING_MODEL_SEQ_DIF category provide a
               mechanism for indicating and annotating point differences
               between the sequence of the entity or biological unit described
               in the data block and the sequence of the starting model used in
               the integrative modeling referenced from a database. The point
               differences may be due to point mutations introduced in the 
               starting model or the presence of modified amino acid residues.
;

   _category.id              ihm_starting_model_seq_dif
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_starting_model_seq_dif.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1
;

   _category_examples.case    
;
    loop_
    _ihm_starting_model_seq_dif.id 
    _ihm_starting_model_seq_dif.entity_id 
    _ihm_starting_model_seq_dif.asym_id 
    _ihm_starting_model_seq_dif.seq_id 
    _ihm_starting_model_seq_dif.comp_id 
    _ihm_starting_model_seq_dif.starting_model_id 
    _ihm_starting_model_seq_dif.db_entity_id 
    _ihm_starting_model_seq_dif.db_asym_id 
    _ihm_starting_model_seq_dif.db_seq_id  
    _ihm_starting_model_seq_dif.db_comp_id 
    _ihm_starting_model_seq_dif.details 
    1  1  A   1  MET  Nup84-m1  1  A   1  MSE  "Conversion of modified residue MSE to MET"
    2  2  C  62  GLU  Nup84-m1  1  A  61  PHE  "Point change of PHE to GLU"
    # ...abbreviated...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_starting_model_seq_dif
   #
save_
#
save__ihm_starting_model_seq_dif.id
   _item_description.description  "    A unique identifier for the entry."
   #
   _item.name            "_ihm_starting_model_seq_dif.id"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_starting_model_seq_dif.entity_id
   _item_description.description  
;     A unique identifier for the distinct molecular entities.
      This data item is a pointer to _entity_poly_seq.entity_id in the ENTITY_POLY category.
;

   #
   _item.name            "_ihm_starting_model_seq_dif.entity_id"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_starting_model_seq_dif.entity_id"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_starting_model_seq_dif.asym_id
   _item_description.description  
;   An asym/strand identifier for the entity molecule. 
    This data item is a pointer to _struct_asym.id in the
    STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_starting_model_seq_dif.asym_id"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_starting_model_seq_dif.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_starting_model_seq_dif.seq_id
   _item_description.description  
;     The residue index.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_starting_model_seq_dif.seq_id"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_starting_model_seq_dif.seq_id"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_starting_model_seq_dif.comp_id
   _item_description.description  
;     The component identifier for the residue. 
      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_starting_model_seq_dif.comp_id"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_starting_model_seq_dif.comp_id"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_starting_model_seq_dif.starting_model_id
   _item_description.description  
;     Unique identifier for the starting model record.
      This data item is a pointer to _ihm_starting_model_details.starting_model_id in the
      IHM_STARTING_MODEL_DETAILS category.
;

   #
   _item.name            "_ihm_starting_model_seq_dif.starting_model_id"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_starting_model_seq_dif.starting_model_id"
   _item_linked.parent_name  "_ihm_starting_model_details.starting_model_id"
   #
save_
#
save__ihm_starting_model_seq_dif.db_entity_id
   _item_description.description  "     The molecular entity of the database starting model."
   #
   _item.name            "_ihm_starting_model_seq_dif.db_entity_id"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
save_
#
save__ihm_starting_model_seq_dif.db_asym_id
   _item_description.description  "   The asym/strand identifier for the entity molecule of the database starting model."
   #
   _item.name            "_ihm_starting_model_seq_dif.db_asym_id"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
save_
#
save__ihm_starting_model_seq_dif.db_seq_id
   _item_description.description  "     The corresponding residue index of the database starting model."
   #
   _item.name            "_ihm_starting_model_seq_dif.db_seq_id"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_starting_model_seq_dif.db_comp_id
   _item_description.description  "     The correspinding component identifier for the residue in the database starting model."
   #
   _item.name            "_ihm_starting_model_seq_dif.db_comp_id"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
save_
#
save__ihm_starting_model_seq_dif.details
   _item_description.description  
;              A description of special aspects of the point differences
               between the sequence of the entity or biological unit described
               in the data block and that in the starting model referenced 
               from a database.
;

   #
   _item.name            "_ihm_starting_model_seq_dif.details"
   _item.category_id     ihm_starting_model_seq_dif
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
   loop_
   _item_examples.case
     "Conversion of modified residue MSE to MET"  
     "Point change of PHE to GLU"  
   #
save_
#
save_ihm_model_representation
   _category.description     
;              Data items in the IHM_MODEL_REPRESENTATION category lists the
               various mono or multi-scale model representations used in the
               integrative modeling study.
;

   _category.id              ihm_model_representation
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_model_representation.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_ 
        _ihm_model_representation.id 
        _ihm_model_representation.name
        _ihm_model_representation.details
         1  'multi-scale representation of the complete nuclear pore complex' .
         2  'atomic representation of selected subunits of the nuclear pore complex' .
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_model_representation
   #
save_
#
save__ihm_model_representation.id
   _item_description.description  "     A unique identifier for the model representation."
   #
   _item.name            "_ihm_model_representation.id"
   _item.category_id     ihm_model_representation
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_model_representation.name
   _item_description.description  "     Name/brief description for the model representation."
   #
   _item.name            "_ihm_model_representation.name"
   _item.category_id     ihm_model_representation
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_model_representation.details
   _item_description.description  "     Additional details about the model representation."
   #
   _item.name            "_ihm_model_representation.details"
   _item.category_id     ihm_model_representation
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_model_representation_details
   _category.description     
;              Data items in the IHM_MODEL_REPRESENTATION_DETAILS category records the
               details about the architecture and representation of structural 
               models involved in the integrative modeling study.
;

   _category.id              ihm_model_representation_details
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_model_representation_details.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_model_representation_details.id
        _ihm_model_representation_details.representation_id
        _ihm_model_representation_details.entity_poly_segment_id
        _ihm_model_representation_details.entity_id
        _ihm_model_representation_details.entity_description
        _ihm_model_representation_details.entity_asym_id
        _ihm_model_representation_details.model_object_primitive
        _ihm_model_representation_details.starting_model_id
        _ihm_model_representation_details.model_mode
        _ihm_model_representation_details.model_granularity
        _ihm_model_representation_details.model_object_count
         1  1  1  1  Nup84   A     sphere  Nup84-m1    flexible  by-feature  1  
         2  1  2  1  Nup84   A     sphere  Nup84-m1    rigid     by-residue  .  
         3  1  3  1  Nup84   A     sphere  Nup84-m1    flexible  by-feature  1  
         4  1  4  1  Nup84   A     sphere  Nup84-m1    rigid     by-residue  .  
         5  1  5  1  Nup84   A     sphere  Nup84-m1    flexible  by-feature  1  
         6  1  6  1  Nup84   A     sphere  Nup84-m1    rigid     by-residue  .
         7  1  6  1  Nup84   A     sphere  Nup84-m1    flexible  by-feature  3  
         8  1  7  1  Nup84   A     sphere  Nup84-m1    flexible  by-feature  1 
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_model_representation_details
   #
save_
#
save__ihm_model_representation_details.id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_model_representation_details.id"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_model_representation_details.representation_id
   _item_description.description  
;     An identifier that collects or groups together a set of representations.
      This data item is a pointer to _ihm_model_representation.id in the
      IHM_MODEL_REPRESENTATION category.
;

   #
   _item.name            "_ihm_model_representation_details.representation_id"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_model_representation_details.representation_id"
   _item_linked.parent_name  "_ihm_model_representation.id"
   #
save_
#
save__ihm_model_representation_details.entity_poly_segment_id
   _item_description.description  
;     The identifier for the polymeric segment in the representation.
      This data item is a pointer to _ihm_entity_poly_segment.id in the
      IHM_ENTITY_POLY_SEGMENT category.
;

   #
   _item.name            "_ihm_model_representation_details.entity_poly_segment_id"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_model_representation_details.entity_poly_segment_id"
   _item_linked.parent_name  "_ihm_entity_poly_segment.id"
   #
save_
#
save__ihm_model_representation_details.entity_id
   _item_description.description  
;     A unique identifier distinct molecular entities.
      This data item is a pointer to _entity.id in the
      ENTITY category.
;

   #
   _item.name            "_ihm_model_representation_details.entity_id"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_model_representation_details.entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_model_representation_details.entity_description
   _item_description.description  "     A text description of the molecular entity"
   #
   _item.name            "_ihm_model_representation_details.entity_description"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_model_representation_details.entity_asym_id
   _item_description.description  
;   An asym/strand identifier for the entity molecule.
    This data item is a pointer to _struct_asym.id in the
    STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_model_representation_details.entity_asym_id"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_model_representation_details.entity_asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_model_representation_details.model_object_primitive
   _item_description.description  "     The primitive object used to model this segment."
   #
   _item.name            "_ihm_model_representation_details.model_object_primitive"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     atomistic  .  
     sphere     .  
     gaussian   .  
     other      .  
   #
save_
#
save__ihm_model_representation_details.starting_model_id
   _item_description.description  
;     The identifier for the starting structural model. 
      This data item is a pointer to _ihm_starting_model_details.starting_model_id
      in the IHM_STARTING_MODEL_DETAILS category.
;

   #
   _item.name            "_ihm_model_representation_details.starting_model_id"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_model_representation_details.starting_model_id"
   _item_linked.parent_name  "_ihm_starting_model_details.starting_model_id"
   #
save_
#
save__ihm_model_representation_details.model_mode
   _item_description.description  "     The manner in which the segment is modeled."
   #
   _item.name            "_ihm_model_representation_details.model_mode"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     rigid     .  
     flexible  .  
   #
save_
#
save__ihm_model_representation_details.model_granularity
   _item_description.description  "     The level of detail at which model primitive objects are applied to the structure."
   #
   _item.name            "_ihm_model_representation_details.model_granularity"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     by-atom        "atomistic coordinate representation"  
     by-residue     "coordinates represent the alpha carbon position of a residue"  
     multi-residue  "coordinates represent the center of mass of a set of residues"  
     by-feature     "coordinates represent center or trace along the feature"  
   #
save_
#
save__ihm_model_representation_details.model_object_count
   _item_description.description  "     The number of primitive objects used to model a feature in the case of 'by-feature' granularity."
   #
   _item.name            "_ihm_model_representation_details.model_object_count"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_model_representation_details.description
   _item_description.description  "     Additional description regarding the model representation."
   #
   _item.name            "_ihm_model_representation_details.description"
   _item.category_id     ihm_model_representation_details
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_struct_assembly_details
   _category.description     
;              Data items in the IHM_STRUCT_ASSEMBLY_DETAILS category records
               the details of the structural assemblies and used in the 
               integrative modeling.
;

   _category.id              ihm_struct_assembly_details
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_struct_assembly_details.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 - Non-hierarchical assemblies with self-parent
;
  
;
    loop_
    _ihm_struct_assembly_details.id
    _ihm_struct_assembly_details.assembly_id
    _ihm_struct_assembly_details.parent_assembly_id
    _ihm_struct_assembly_details.entity_description
    _ihm_struct_assembly_details.entity_id
    _ihm_struct_assembly_details.asym_id
    _ihm_struct_assembly_details.entity_poly_segment_id

         1   1   1   Nup84   1  A  1 
         2   1   1   Nup85   2  B  2 
         3   1   1  Nup120   3  C  3 
         4   2   2  Nup133   4  D  4 
         5   2   2  Nup145   5  E  5 
         6   3   3    Seh1   6  F  6 
         7   3   3   Sec13   7  G  7 
         #...abbreviated...
;
  
     
;
    Example 2 - Hierarchical assembly
;
  
;
    loop_
    _ihm_struct_assembly_details.id
    _ihm_struct_assembly_details.assembly_id
    _ihm_struct_assembly_details.parent_assembly_id
    _ihm_struct_assembly_details.entity_description
    _ihm_struct_assembly_details.entity_id
    _ihm_struct_assembly_details.asym_id
    _ihm_struct_assembly_details.entity_poly_segment_id

         1   0   0   Nup84   1  A  1 
         2   0   0   Nup85   2  B  2 
         3   0   0  Nup120   3  C  3 
         4   0   0  Nup133   4  D  4 
         5   0   0  Nup145   5  E  5 
         6   0   0    Seh1   6  F  6 
         7   0   0   Sec13   7  G  7 
         8   1   0   Nup84   1  A  1 
         9   1   0   Nup85   2  B  2 
        10   1   0  Nup145   5  E  5 
        11   1   0    Seh1   6  F  6 
        12   1   0   Sec13   7  G  7 
        13   2   1   Nup84   1  A  1 
        14   2   1   Nup85   2  B  2 
        #...abbreviated...
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_struct_assembly_details
   #
save_
#
save__ihm_struct_assembly_details.id
   _item_description.description  "     A unique identifier for the structural assembly description."
   #
   _item.name            "_ihm_struct_assembly_details.id"
   _item.category_id     ihm_struct_assembly_details
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_struct_assembly_details.assembly_id
   _item_description.description  
;     An identifier for the structural assembly. 
      This data item will remain the same for all components 
      of an assembly. 
      This data item is a pointer to _ihm_struct_assembly.id
      in the IHM_STRUCT_ASSEMBLY category.
;

   #
   _item.name            "_ihm_struct_assembly_details.assembly_id"
   _item.category_id     ihm_struct_assembly_details
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_struct_assembly_details.assembly_id"
   _item_linked.parent_name  "_ihm_struct_assembly.id"
   #
save_
#
save__ihm_struct_assembly_details.parent_assembly_id
   _item_description.description  
;     The parent of this assembly in a hierarchy. 
      This data item is a pointer to _ihm_struct_assembly.id in the  
      IHM_STRUCT_ASSEMBLY category. 
      This data item should point to the assembly id of the immediate
      parent in a hierarchy. 
      By convention, the full assembly (top of hierarchy) is assigned parent id 0 (zero).
      In case of assemblies that do not conform to a hierarchy, 
      _ihm_struct_assembly_details.parent_assembly_id is the same as 
      _ihm_struct_assembly_details.assembly_id indicating a self-parent. 
;

   #
   _item.name            "_ihm_struct_assembly_details.parent_assembly_id"
   _item.category_id     ihm_struct_assembly_details
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_struct_assembly_details.parent_assembly_id"
   _item_linked.parent_name  "_ihm_struct_assembly.id"
   #
save_
#
save__ihm_struct_assembly_details.entity_description
   _item_description.description  "     A text description of the molecular entity"
   #
   _item.name            "_ihm_struct_assembly_details.entity_description"
   _item.category_id     ihm_struct_assembly_details
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_struct_assembly_details.entity_id
   _item_description.description  
;     A unique identifier for distinct molecular entities.
      This data item is a pointer to _entity.id in the 
      ENTITY category.
;

   #
   _item.name            "_ihm_struct_assembly_details.entity_id"
   _item.category_id     ihm_struct_assembly_details
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_struct_assembly_details.entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_struct_assembly_details.asym_id
   _item_description.description  
;     An asym/strand identifier for the component in the assembly.
      This data item is a pointer to _struct_asym.id in the
      STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_struct_assembly_details.asym_id"
   _item.category_id     ihm_struct_assembly_details
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_struct_assembly_details.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_struct_assembly_details.entity_poly_segment_id
   _item_description.description  
;     The identifier for the polymeric segment in the assembly. 
      This data item is a pointer to _ihm_entity_poly_segment.id in the
      IHM_ENTITY_POLY_SEGMENT category.
;

   #
   _item.name            "_ihm_struct_assembly_details.entity_poly_segment_id"
   _item.category_id     ihm_struct_assembly_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_struct_assembly_details.entity_poly_segment_id"
   _item_linked.parent_name  "_ihm_entity_poly_segment.id"
   #
save_
#
save_ihm_struct_assembly
   _category.description     
;              Data items in the IHM_STRUCT_ASSEMBLY category lists
               all the structural assemblies used in the integrative
               modeling study.
;

   _category.id              ihm_struct_assembly
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_struct_assembly.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    loop_
    _ihm_struct_assembly.id
    _ihm_struct_assembly.name
    _ihm_struct_assembly.description
         1     "Nup84 sub-complex"  "Subunits in the Nup84 sub-complex"
         2     "Nup82 sub-complex"  "Subunits in the Nup82 sub-complex"
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_struct_assembly
   #
save_
#
save__ihm_struct_assembly.id
   _item_description.description  "     A unique identifier for the structural assembly."
   #
   _item.name            "_ihm_struct_assembly.id"
   _item.category_id     ihm_struct_assembly
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_struct_assembly.name
   _item_description.description  "     A name for the structural assembly."
   #
   _item.name            "_ihm_struct_assembly.name"
   _item.category_id     ihm_struct_assembly
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_struct_assembly.description
   _item_description.description  "     Description of the structural assembly."
   #
   _item.name            "_ihm_struct_assembly.description"
   _item.category_id     ihm_struct_assembly
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_struct_assembly_class
   _category.description     
;              Data items in the IHM_STRUCT_ASSEMBLY_CLASS category lists
               all the structural assembly classes relevant to the entry. This
               category provides a mechanism to define classes of the 
               structural assemblies.
;

   _category.id              ihm_struct_assembly_class
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_struct_assembly_class.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    loop_
    _ihm_struct_assembly_class.id
    _ihm_struct_assembly_class.name
    _ihm_struct_assembly_class.type
    _ihm_struct_assembly_class.description
         1     "TAD"        "Structural Hierarchy"  .
         2     "CHROMATIN"  "Structural Hierarchy"  .
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_struct_assembly_class
   #
save_
#
save__ihm_struct_assembly_class.id
   _item_description.description  "     A unique identifier for the structural assembly class."
   #
   _item.name            "_ihm_struct_assembly_class.id"
   _item.category_id     ihm_struct_assembly_class
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_struct_assembly_class.name
   _item_description.description  "     A user provided name for the class."
   #
   _item.name            "_ihm_struct_assembly_class.name"
   _item.category_id     ihm_struct_assembly_class
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     TAD        
     Chromatin  
   #
save_
#
save__ihm_struct_assembly_class.type
   _item_description.description  "     The type of classifier."
   #
   _item.name            "_ihm_struct_assembly_class.type"
   _item.category_id     ihm_struct_assembly_class
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     "Structural Hierarchy"  
     Functional  
     Other  
   #
save_
#
save__ihm_struct_assembly_class.description
   _item_description.description  "     Additional description regarding the class."
   #
   _item.name            "_ihm_struct_assembly_class.description"
   _item.category_id     ihm_struct_assembly_class
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_struct_assembly_class_link
   _category.description     
;              Data items in the IHM_STRUCT_ASSEMBLY_CLASS_LINK category provides
               details regarding the structural assembly classes. This
               category provides a mechanism to identify the classes to which
               structural assemblies belong.
;

   _category.id              ihm_struct_assembly_class_link
   _category.mandatory_code  no
   #
   loop_
   _category_key.name
     "_ihm_struct_assembly_class_link.class_id"  
     "_ihm_struct_assembly_class_link.assembly_id"  
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    loop_
    _ihm_struct_assembly_class_link.class_id
    _ihm_struct_assembly_class_link.assembly_id
         1 1 
         1 2
         1 3
         2 4
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_struct_assembly_class_link
   #
save_
#
save__ihm_struct_assembly_class_link.class_id
   _item_description.description  
;     An identifier for the structural assembly class.
      This data item is a pointer to _ihm_struct_assembly_class.id
      in the IHM_STRUCT_ASSEMBLY_CLASS category.
;

   #
   _item.name            "_ihm_struct_assembly_class_link.class_id"
   _item.category_id     ihm_struct_assembly_class_link
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_struct_assembly_class_link.class_id"
   _item_linked.parent_name  "_ihm_struct_assembly_class.id"
   #
save_
#
save__ihm_struct_assembly_class_link.assembly_id
   _item_description.description  
;     An identifier for the structural assembly.
      This data item is a pointer to _ihm_struct_assembly.id
      in the IHM_STRUCT_ASSEMBLY category.
;

   #
   _item.name            "_ihm_struct_assembly_class_link.assembly_id"
   _item.category_id     ihm_struct_assembly_class_link
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_struct_assembly_class_link.assembly_id"
   _item_linked.parent_name  "_ihm_struct_assembly.id"
   #
save_
#
save_ihm_modeling_protocol
   _category.description     
;              Data items in the IHM_MODELING_PROTOCOL category lists all
               modeling protocols used in the integrative modeling study.
;

   _category.id              ihm_modeling_protocol
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_modeling_protocol.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    _ihm_modeling_protocol.id
    _ihm_modeling_protocol.num_steps
    _ihm_modeling_protocol.protocol_name
    _ihm_modeling_protocol.details

    1 2 'Multi-scale modeling of the Nup84 sub-complex' ?
    2 3 'Multi-scale modeling of the Nuclear pore complex' ?
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_modeling_protocol
   #
save_
#
save__ihm_modeling_protocol.id
   _item_description.description  "     A unique identifier for the modeling protocol."
   #
   _item.name            "_ihm_modeling_protocol.id"
   _item.category_id     ihm_modeling_protocol
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_protocol.num_steps
   _item_description.description  "     Number of independent steps in the modeling protocol."
   #
   _item.name            "_ihm_modeling_protocol.num_steps"
   _item.category_id     ihm_modeling_protocol
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_protocol.protocol_name
   _item_description.description  "    The name for the modeling protocol."
   #
   _item.name            "_ihm_modeling_protocol.protocol_name"
   _item.category_id     ihm_modeling_protocol
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     "Multi-scale modeling of the Nuclear Pore Complex"  
     "Multi-state modeling of the RNA 4-Way Junction"  
   #
save_
#
save__ihm_modeling_protocol.details
   _item_description.description  "    Additional details about the modeling protocol."
   #
   _item.name            "_ihm_modeling_protocol.details"
   _item.category_id     ihm_modeling_protocol
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_modeling_protocol_details
   _category.description     
;              Data items in the IHM_MODELING_PROTOCOL_DETAILS category records the
               step-wise details of the integrative modeling workflow.
;

   _category.id              ihm_modeling_protocol_details
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_modeling_protocol_details.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 -
;
  
;
    _ihm_modeling_protocol_details.id
    _ihm_modeling_protocol_details.protocol_id
    _ihm_modeling_protocol_details.step_id
    _ihm_modeling_protocol_details.struct_assembly_id
    _ihm_modeling_protocol_details.dataset_group_id
    _ihm_modeling_protocol_details.struct_assembly_description
    _ihm_modeling_protocol_details.step_name
    _ihm_modeling_protocol_details.step_method
    _ihm_modeling_protocol_details.num_models_begin
    _ihm_modeling_protocol_details.num_models_end
    _ihm_modeling_protocol_details.multi_scale_flag
    _ihm_modeling_protocol_details.multi_state_flag
    _ihm_modeling_protocol_details.ordered_flag
    _ihm_modeling_protocol_details.ensemble_flag

    1 1 1 1 1 'Nup84 sub-complex' 'Sampling' 'Replica exchange monte carlo' 0 7500 YES NO NO YES
    2 1 2 1 2 'Nup84 sub-complex' 'Sampling' 'Replica exchange monte carlo' 7500 15000 YES NO NO YES
;
  
     
;
    Example 2 -
;
  
;
    _ihm_modeling_protocol_details.id
    _ihm_modeling_protocol_details.protocol_id
    _ihm_modeling_protocol_details.step_id
    _ihm_modeling_protocol_details.struct_assembly_id
    _ihm_modeling_protocol_details.dataset_group_id
    _ihm_modeling_protocol_details.struct_assembly_description
    _ihm_modeling_protocol_details.step_name
    _ihm_modeling_protocol_details.step_method
    _ihm_modeling_protocol_details.num_models_begin
    _ihm_modeling_protocol_details.num_models_end
    _ihm_modeling_protocol_details.multi_scale_flag
    _ihm_modeling_protocol_details.multi_state_flag
    _ihm_modeling_protocol_details.ordered_flag
    _ihm_modeling_protocol_details.ensemble_flag

    1   1   1   1   1   'PhoQ' 'Sampling'  'Monte carlo'   0    5000  YES YES NO YES
    2   1   1   2   1   'PhoQ' 'Sampling'  'Monte carlo'   0    5000  YES YES NO YES
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_modeling_protocol_details
   #
save_
#
save__ihm_modeling_protocol_details.id
   _item_description.description  "     A unique identifier for the modeling protocol/step combination."
   #
   _item.name            "_ihm_modeling_protocol_details.id"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_protocol_details.protocol_id
   _item_description.description  
;     An index for the modeling protocol carried out.
      This data item is a pointer to _ihm_modeling_protocol.id in the 
      IHM_MODELING_PROTOCOL category.
;

   #
   _item.name            "_ihm_modeling_protocol_details.protocol_id"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_modeling_protocol_details.protocol_id"
   _item_linked.parent_name  "_ihm_modeling_protocol.id"
   #
save_
#
save__ihm_modeling_protocol_details.step_id
   _item_description.description  "     An index for a particular step within the modeling protocol."
   #
   _item.name            "_ihm_modeling_protocol_details.step_id"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_protocol_details.struct_assembly_id
   _item_description.description  
;    An index for the structural assembly being modeled. 
     This is an indicator to whether the whole assembly is modeled
     or if only a subset of the structural assembly is modeled.
     This data item is a pointer to _ihm_struct_assembly.id in the
     IHM_STRUCT_ASSEMBLY category. The IHM_STRUCT_ASSEMBLY category provides the
     details regarding the different structural assemblies used in the modeling.
     The default value for this data item is "1", indicating that the entire
     assembly is being modeled.
;

   #
   _item.name            "_ihm_modeling_protocol_details.struct_assembly_id"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_modeling_protocol_details.struct_assembly_id"
   _item_linked.parent_name  "_ihm_struct_assembly.id"
   #
   _item_default.value  1
   #
save_
#
save__ihm_modeling_protocol_details.dataset_group_id
   _item_description.description  
;    An index for the dataset group being used in the modeling protocol.
     This data item is a pointer to the _ihm_dataset_group.id in the
     IHM_DATASET_GROUP category.
;

   #
   _item.name            "_ihm_modeling_protocol_details.dataset_group_id"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_modeling_protocol_details.dataset_group_id"
   _item_linked.parent_name  "_ihm_dataset_group.id"
   #
save_
#
save__ihm_modeling_protocol_details.struct_assembly_description
   _item_description.description  "    A textual description of the structural assembly being modeled."
   #
   _item.name            "_ihm_modeling_protocol_details.struct_assembly_description"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     "Nup84 sub-complex"  
     PhoQ  
   #
save_
#
save__ihm_modeling_protocol_details.step_name
   _item_description.description  "    The name or type of the modeling step."
   #
   _item.name            "_ihm_modeling_protocol_details.step_name"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     Sampling/Scoring  
     Refinement        
   #
save_
#
save__ihm_modeling_protocol_details.step_method
   _item_description.description  "    Description of the method involved in the modeling step."
   #
   _item.name            "_ihm_modeling_protocol_details.step_method"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     "Replica exchange monte carlo"  
     "Simulated annealing monte carlo"  
     "Monte carlo sampling"  
   #
save_
#
save__ihm_modeling_protocol_details.num_models_begin
   _item_description.description  "    The number of models in the beginning of the step."
   #
   _item.name            "_ihm_modeling_protocol_details.num_models_begin"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_protocol_details.num_models_end
   _item_description.description  "    The number of models at the end of the step."
   #
   _item.name            "_ihm_modeling_protocol_details.num_models_end"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_protocol_details.multi_scale_flag
   _item_description.description  "    A flag to indicate if the modeling is multi scale."
   #
   _item.name            "_ihm_modeling_protocol_details.multi_scale_flag"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     YES  .  
     NO   .  
   #
save_
#
save__ihm_modeling_protocol_details.multi_state_flag
   _item_description.description  "    A flag to indicate if the modeling is multi state."
   #
   _item.name            "_ihm_modeling_protocol_details.multi_state_flag"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     YES  .  
     NO   .  
   #
save_
#
save__ihm_modeling_protocol_details.ordered_flag
   _item_description.description  "    A flag to indicate if the modeling involves an ensemble ordered by time or other order."
   #
   _item.name            "_ihm_modeling_protocol_details.ordered_flag"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     YES  .  
     NO   .  
   #
save_
#
save__ihm_modeling_protocol_details.ensemble_flag
   _item_description.description  "    A flag to indicate if the modeling involves an ensemble."
   #
   _item.name            "_ihm_modeling_protocol_details.ensemble_flag"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     YES  .  
     NO   .  
   #
save_
#
save__ihm_modeling_protocol_details.script_file_id
   _item_description.description  
;     The file id corresponding to the script used in the modeling protocol step.
      This data item is a pointer to _ihm_external_files.id in the IHM_EXTERNAL_FILES category.
;

   #
   _item.name            "_ihm_modeling_protocol_details.script_file_id"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_modeling_protocol_details.script_file_id"
   _item_linked.parent_name  "_ihm_external_files.id"
   #
save_
#
save__ihm_modeling_protocol_details.software_id
   _item_description.description  
;     Identifier to the software used in the modeling protocol step. 
      This data item is a pointer to the _software.pdbx_ordinal in the
      SOFTWARE category.
;

   #
   _item.name            "_ihm_modeling_protocol_details.software_id"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_modeling_protocol_details.software_id"
   _item_linked.parent_name  "_software.pdbx_ordinal"
   #
save_
#
save__ihm_modeling_protocol_details.description
   _item_description.description  "     Textual description of the protocol step."
   #
   _item.name            "_ihm_modeling_protocol_details.description"
   _item.category_id     ihm_modeling_protocol_details
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_multi_state_modeling
   _category.description     
;              Data items in the IHM_MULTI_STATE_MODELING category records the
               details of the multi-state modeling protocol, if applicable.
;

   _category.id              ihm_multi_state_modeling
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_multi_state_modeling.state_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 - conformational change
;
  
;
    loop_
    _ihm_multi_state_modeling.state_id 
    _ihm_multi_state_modeling.state_group_id 
    _ihm_multi_state_modeling.population_fraction  
    _ihm_multi_state_modeling.state_type
    _ihm_multi_state_modeling.state_name 
    _ihm_multi_state_modeling.experiment_type
    _ihm_multi_state_modeling.details

         1   1   0.5  'conformational change'  'open'         'Fraction of bulk' 'open state ensemble 1'
         2   1   0.5  'conformational change'  'closed'       'Fraction of bulk' 'closed state ensemble 2'
;
  
     
;
    Example 2 - ligand binding
;
  
;
    loop_
    _ihm_multi_state_modeling.state_id
    _ihm_multi_state_modeling.state_group_id 
    _ihm_multi_state_modeling.population_fraction
    _ihm_multi_state_modeling.state_type 
    _ihm_multi_state_modeling.state_name
    _ihm_multi_state_modeling.experiment_type
    _ihm_multi_state_modeling.details

         1   1   0.25  'ligand binding'    'unbound'    'Fraction of bulk' 'unbound'
         2   1   0.75  'ligand binding'    'bound'      'Fraction of bulk' 'bound to heme'
;
  
     
;
    Example 3 - complex formation
;
  
;
    loop_
    _ihm_multi_state_modeling.state_id  
    _ihm_multi_state_modeling.state_group_id
    _ihm_multi_state_modeling.population_fraction
    _ihm_multi_state_modeling.state_type
    _ihm_multi_state_modeling.state_name
    _ihm_multi_state_modeling.experiment_type
    _ihm_multi_state_modeling.details

         1   1   .  'complex formation'    'unbound'      'Fraction of bulk'    'unbound molecule 1'
         2   1   .  'complex formation'    'unbound'      'Fraction of bulk'    'unbound molecule 2'
         3   1   .  'complex formation'    'bound'        'Fraction of bulk'    'bound molecules 1 and 2'
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_multi_state_modeling
   #
save_
#
save__ihm_multi_state_modeling.state_id
   _item_description.description  "    A unique identifier for a particular state in the multi-state modeling."
   #
   _item.name            "_ihm_multi_state_modeling.state_id"
   _item.category_id     ihm_multi_state_modeling
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_multi_state_modeling.state_group_id
   _item_description.description  
;    An identifier for a collections of states in the multi-state modeling.
     This data item can be used when structural models belong to diffent
     multi-state modeling types.
;

   #
   _item.name            "_ihm_multi_state_modeling.state_group_id"
   _item.category_id     ihm_multi_state_modeling
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_multi_state_modeling.population_fraction
   _item_description.description  "    A fraction representing the population of the particular state."
   #
   _item.name            "_ihm_multi_state_modeling.population_fraction"
   _item.category_id     ihm_multi_state_modeling
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_multi_state_modeling.population_fraction_sd
   _item_description.description  "    The standard deviation of the population fraction."
   #
   _item.name            "_ihm_multi_state_modeling.population_fraction_sd"
   _item.category_id     ihm_multi_state_modeling
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_multi_state_modeling.state_type
   _item_description.description  "    The type that the multiple states being modeled belong to."
   #
   _item.name            "_ihm_multi_state_modeling.state_type"
   _item.category_id     ihm_multi_state_modeling
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     "conformational change"  
     "ligand binding"  
     "complex formation"  
     "complex dissociation"  
   #
save_
#
save__ihm_multi_state_modeling.state_name
   _item_description.description  "   A descriptive name for the state."
   #
   _item.name            "_ihm_multi_state_modeling.state_name"
   _item.category_id     ihm_multi_state_modeling
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     open      
     closed    
     bound     
     unbound   
     active    
     inactive  
     relaxed   
     tensed    
   #
save_
#
save__ihm_multi_state_modeling.experiment_type
   _item_description.description  "   The type of multi-state modeling experiment carried out."
   #
   _item.name            "_ihm_multi_state_modeling.experiment_type"
   _item.category_id     ihm_multi_state_modeling
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     "Fraction of bulk"  "Multiple states from a bulk sample, where a fraction of molecules are in one state and another fraction are in a different state"  
     "Single molecule"   "A single molecule experiment, where the different states are adopted by the same molecule at different points in time and the experiment provides a convolution of these states"  
   #
save_
#
save__ihm_multi_state_modeling.details
   _item_description.description  "   Additional textual details of the multi-state modeling, if required."
   #
   _item.name            "_ihm_multi_state_modeling.details"
   _item.category_id     ihm_multi_state_modeling
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
   loop_
   _item_examples.case
     "open state ensemble 1"  
     "closed state ensemble 2"  
     "bound to heme"  
   #
save_
#
save_ihm_multi_state_model_group_link
   _category.description     
;              IHM_MULTI_STATE_MODEL_GROUP_LINK category provides the list of models groups
               corresponding to a particular state.
;

   _category.id              ihm_multi_state_model_group_link
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_multi_state_model_group_link.model_group_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    loop_
    _ihm_multi_state_model_group_link.state_id
    _ihm_multi_state_model_group_link.model_group_id

    1  1
    1  2
    1  3
    1  4
    1  5
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_multi_state_model_group_link
   #
save_
#
save__ihm_multi_state_model_group_link.state_id
   _item_description.description  
;     An identifier for the state.
      This data item is a pointer to _ihm_multi_state_modeling.state_id in the
      IHM_MULTI_STATE_MODELING category.
;

   #
   _item.name            "_ihm_multi_state_model_group_link.state_id"
   _item.category_id     ihm_multi_state_model_group_link
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_multi_state_model_group_link.state_id"
   _item_linked.parent_name  "_ihm_multi_state_modeling.state_id"
   #
save_
#
save__ihm_multi_state_model_group_link.model_group_id
   _item_description.description  
;     An identifier for the structural model group.
      This data item is a pointer to _ihm_model_group.id in the
      IHM_MODEL_GROUP category.
;

   #
   _item.name            "_ihm_multi_state_model_group_link.model_group_id"
   _item.category_id     ihm_multi_state_model_group_link
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_multi_state_model_group_link.model_group_id"
   _item_linked.parent_name  "_ihm_model_group.id"
   #
save_
#
save_ihm_ordered_model
   _category.description     
;   Data items in the IHM_ORDERED_MODEL category records the
    details of the models ordered by time or other order. 
    Ordered models are described as directed graphs with
    edges between nodes representing model groups.
;

   _category.id              ihm_ordered_model
   _category.mandatory_code  no
   #
   loop_
   _category_key.name
     "_ihm_ordered_model.edge_id"  
     "_ihm_ordered_model.process_id"  
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 - Linear process
;
  
;
    loop_
    _ihm_ordered_model.process_id
    _ihm_ordered_model.process_description
    _ihm_ordered_model.edge_id
    _ihm_ordered_model.edge_description
    _ihm_ordered_model.step_id
    _ihm_ordered_model.step_description
    _ihm_ordered_model.ordered_by
    _ihm_ordered_model.model_group_id_begin
    _ihm_ordered_model.model_group_id_end

    1  .  1   .   1   .  'time steps'  1   2
    1  .  2   .   2   .  'time steps'  2   3
    1  .  3   .   3   .  'time steps'  3   4
    1  .  4   .   4   .  'time steps'  4   5
    # ... abbreviated ...
;
  
     
;
    Example 2 - Cyclic process
;
  
;
    loop_
    _ihm_ordered_model.process_id
    _ihm_ordered_model.edge_id
    _ihm_ordered_model.step_id
    _ihm_ordered_model.ordered_by
    _ihm_ordered_model.model_group_id_begin
    _ihm_ordered_model.model_group_id_end

    1  1  1   'time steps'  1   2 
    1  2  2   'time steps'  2   3 
    1  3  3   'time steps'  3   4 
    1  4  4   'time steps'  4   1 
    # ... abbreviated ...
;
  
     
;
    Example 3 - Branched process
;
  
;  
    loop_
    _ihm_ordered_model.process_id
    _ihm_ordered_model.edge_id
    _ihm_ordered_model.step_id
    _ihm_ordered_model.ordered_by
    _ihm_ordered_model.model_group_id_begin
    _ihm_ordered_model.model_group_id_end

    1  1  1   'time steps'  1   2 
    1  2  2   'time steps'  2   3 
    1  3  2   'time steps'  2   4 
    1  4  3   'time steps'  3   5 
    1  5  3   'time steps'  4   6 
    # ... abbreviated ...
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_ordered_model
   #
save_
#
save__ihm_ordered_model.process_id
   _item_description.description  
;    An identifier for the ordered process. 
     Forms the category key together with _ihm_ordered_model.edge_id.
;

   #
   _item.name            "_ihm_ordered_model.process_id"
   _item.category_id     ihm_ordered_model
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_ordered_model.process_description
   _item_description.description  "    Description of the ordered process."
   #
   _item.name            "_ihm_ordered_model.process_description"
   _item.category_id     ihm_ordered_model
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_ordered_model.edge_id
   _item_description.description  
;    An identifier that describes an edge in a directed graph, which
     represents the ordered model. 
     Forms the category key together with _ihm_ordered_model.process_id.
;

   #
   _item.name            "_ihm_ordered_model.edge_id"
   _item.category_id     ihm_ordered_model
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_ordered_model.edge_description
   _item_description.description  "    Description of the edge."
   #
   _item.name            "_ihm_ordered_model.edge_description"
   _item.category_id     ihm_ordered_model
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_ordered_model.step_id
   _item_description.description  "    Identifier for a particular step in the ordered process."
   #
   _item.name            "_ihm_ordered_model.step_id"
   _item.category_id     ihm_ordered_model
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_ordered_model.step_description
   _item_description.description  "    Description of the step."
   #
   _item.name            "_ihm_ordered_model.step_description"
   _item.category_id     ihm_ordered_model
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_ordered_model.ordered_by
   _item_description.description  "    The parameter based on which the ordering is carried out."
   #
   _item.name            "_ihm_ordered_model.ordered_by"
   _item.category_id     ihm_ordered_model
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     "time steps"  
     "steps in an assembly process"  
     "steps in a metabolic pathway"  
     "steps in an interaction pathway"  
   #
save_
#
save__ihm_ordered_model.model_group_id_begin
   _item_description.description  
;    The model group id corresponding to the node at the origin of directed edge. 
     This data item is a pointer to _ihm_model_group.id in the
     IHM_MODEL_GROUP category.
;

   #
   _item.name            "_ihm_ordered_model.model_group_id_begin"
   _item.category_id     ihm_ordered_model
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ordered_model.model_group_id_begin"
   _item_linked.parent_name  "_ihm_model_group.id"
   #
save_
#
save__ihm_ordered_model.model_group_id_end
   _item_description.description  
;    The model group id corresponding to the node at the end of the directed edge.
     This data item is a pointer to _ihm_model_group.id in the
     IHM_MODEL_GROUP category.
;

   #
   _item.name            "_ihm_ordered_model.model_group_id_end"
   _item.category_id     ihm_ordered_model
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ordered_model.model_group_id_end"
   _item_linked.parent_name  "_ihm_model_group.id"
   #
save_
#
save_ihm_ordered_ensemble
   _category.description     
;   Data items in the IHM_ORDERED_ENSEMBLE category records the
    details of the ensembles ordered by time or other order. 
    Ordered ensembles are described as directed graphs with
    edges between nodes representing models or model groups. 
    This category will be deprecated and superseded by ihm_ordered_model.
;

   _category.id              ihm_ordered_ensemble
   _category.mandatory_code  no
   #
   loop_
   _category_key.name
     "_ihm_ordered_ensemble.edge_id"  
     "_ihm_ordered_ensemble.process_id"  
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 - Linear process
;
  
;
    loop_
    _ihm_ordered_ensemble.process_id
    _ihm_ordered_ensemble.process_description
    _ihm_ordered_ensemble.edge_id
    _ihm_ordered_ensemble.edge_description
    _ihm_ordered_ensemble.step_id
    _ihm_ordered_ensemble.step_description
    _ihm_ordered_ensemble.ordered_by
    _ihm_ordered_ensemble.model_group_id_begin
    _ihm_ordered_ensemble.model_group_id_end

    1  .  1   .   1   .  'time steps'  1   2
    1  .  2   .   2   .  'time steps'  2   3
    1  .  3   .   3   .  'time steps'  3   4
    1  .  4   .   4   .  'time steps'  4   5
    # ... abbreviated ...
;
  
     
;
    Example 2 - Cyclic process
;
  
;
    loop_
    _ihm_ordered_ensemble.process_id
    _ihm_ordered_ensemble.edge_id
    _ihm_ordered_ensemble.step_id
    _ihm_ordered_ensemble.ordered_by
    _ihm_ordered_ensemble.model_group_id_begin
    _ihm_ordered_ensemble.model_group_id_end

    1  1  1   'time steps'  1   2 
    1  2  2   'time steps'  2   3 
    1  3  3   'time steps'  3   4 
    1  4  4   'time steps'  4   1 
    # ... abbreviated ...
;
  
     
;
    Example 3 - Branched process
;
  
;  
    loop_
    _ihm_ordered_ensemble.process_id
    _ihm_ordered_ensemble.edge_id
    _ihm_ordered_ensemble.step_id
    _ihm_ordered_ensemble.ordered_by
    _ihm_ordered_ensemble.model_group_id_begin
    _ihm_ordered_ensemble.model_group_id_end

    1  1  1   'time steps'  1   2 
    1  2  2   'time steps'  2   3 
    1  3  2   'time steps'  2   4 
    1  4  3   'time steps'  3   5 
    1  5  3   'time steps'  4   6 
    # ... abbreviated ...
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_ordered_ensemble
   #
save_
#
save__ihm_ordered_ensemble.process_id
   _item_description.description  
;    An identifier for the ordered process. 
     Forms the category key together with _ihm_ordered_ensemble.edge_id.
;

   #
   _item.name            "_ihm_ordered_ensemble.process_id"
   _item.category_id     ihm_ordered_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_ordered_ensemble.process_description
   _item_description.description  "    Description of the ordered process."
   #
   _item.name            "_ihm_ordered_ensemble.process_description"
   _item.category_id     ihm_ordered_ensemble
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_ordered_ensemble.edge_id
   _item_description.description  
;    An identifier that describes an edge in a directed graph, which
     represents an ordered ensemble. 
     Forms the category key together with _ihm_ordered_ensemble.process_id.
;

   #
   _item.name            "_ihm_ordered_ensemble.edge_id"
   _item.category_id     ihm_ordered_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_ordered_ensemble.edge_description
   _item_description.description  "    Description of the edge."
   #
   _item.name            "_ihm_ordered_ensemble.edge_description"
   _item.category_id     ihm_ordered_ensemble
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_ordered_ensemble.step_id
   _item_description.description  "    Identifier for a particular step in the ordered process."
   #
   _item.name            "_ihm_ordered_ensemble.step_id"
   _item.category_id     ihm_ordered_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_ordered_ensemble.step_description
   _item_description.description  "    Description of the step."
   #
   _item.name            "_ihm_ordered_ensemble.step_description"
   _item.category_id     ihm_ordered_ensemble
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_ordered_ensemble.ordered_by
   _item_description.description  "    The parameter based on which the ordering is carried out."
   #
   _item.name            "_ihm_ordered_ensemble.ordered_by"
   _item.category_id     ihm_ordered_ensemble
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     "time steps"  
     "steps in an assembly process"  
     "steps in a metabolic pathway"  
     "steps in an interaction pathway"  
   #
save_
#
save__ihm_ordered_ensemble.model_group_id_begin
   _item_description.description  
;    The model group id corresponding to the node at the origin of directed edge. 
     This data item is a pointer to _ihm_model_group.id in the
     IHM_MODEL_GROUP category.
;

   #
   _item.name            "_ihm_ordered_ensemble.model_group_id_begin"
   _item.category_id     ihm_ordered_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ordered_ensemble.model_group_id_begin"
   _item_linked.parent_name  "_ihm_model_group.id"
   #
save_
#
save__ihm_ordered_ensemble.model_group_id_end
   _item_description.description  
;    The model group id corresponding to the node at the end of the directed edge.
     This data item is a pointer to _ihm_model_group.id in the
     IHM_MODEL_GROUP category.
;

   #
   _item.name            "_ihm_ordered_ensemble.model_group_id_end"
   _item.category_id     ihm_ordered_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ordered_ensemble.model_group_id_end"
   _item_linked.parent_name  "_ihm_model_group.id"
   #
save_
#
save_ihm_modeling_post_process
   _category.description     
;              Data items in the IHM_MODELING_POST_PROCESS category records
               the details of the post processing of the models/results of
               the modeling protocol.
;

   _category.id              ihm_modeling_post_process
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_modeling_post_process.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    loop_
    _ihm_modeling_post_process.id
    _ihm_modeling_post_process.protocol_id
    _ihm_modeling_post_process.analysis_id
    _ihm_modeling_post_process.step_id
    _ihm_modeling_post_process.type
    _ihm_modeling_post_process.feature
    _ihm_modeling_post_process.num_models_begin
    _ihm_modeling_post_process.num_models_end 

    1  1   1   1   'filter'  'energy/score'  15000   6520 
    2  1   1   2   'cluster' 'dRMSD'         6520    6520
    3  1   2   1   'filter'  'energy/score'  15000   6520
    4  1   2   2   'filter'  'composition'   6520    6520
    5  1   2   3   'cluster' 'dRMSD'         6520    6520
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_modeling_post_process
   #
save_
#
save__ihm_modeling_post_process.id
   _item_description.description  "    A unique identifier for the post modeling analysis/step combination."
   #
   _item.name            "_ihm_modeling_post_process.id"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_post_process.protocol_id
   _item_description.description  
;    An identifier for the modeling protocol, whose post modeling analysis
     is being carried out. 
     This data item is a pointer to the _ihm_modeling_protocol.id
     in the IHM_MODELING_PROTOCOL category.
;

   #
   _item.name            "_ihm_modeling_post_process.protocol_id"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_modeling_post_process.protocol_id"
   _item_linked.parent_name  "_ihm_modeling_protocol.id"
   #
save_
#
save__ihm_modeling_post_process.analysis_id
   _item_description.description  
;    An identifier for the post modeling analysis. This data item accounts for
     multiple post-modeling analyses that can be carried out.
;

   #
   _item.name            "_ihm_modeling_post_process.analysis_id"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_post_process.step_id
   _item_description.description  
;    In a multi-step process, this identifier denotes the particular
     step in the post modeling analysis.
;

   #
   _item.name            "_ihm_modeling_post_process.step_id"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_post_process.struct_assembly_id
   _item_description.description  
;    An index for the structural assembly being processed.
     This is an indicator to whether the whole assembly is processed
     or if only a subset of the structural assembly is processed.
     This data item is a pointer to _ihm_struct_assembly.id in the
     IHM_STRUCT_ASSEMBLY category.
;

   #
   _item.name            "_ihm_modeling_post_process.struct_assembly_id"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_modeling_post_process.struct_assembly_id"
   _item_linked.parent_name  "_ihm_struct_assembly.id"
   #
save_
#
save__ihm_modeling_post_process.dataset_group_id
   _item_description.description  
;    An index for the dataset group being used in the post modeling process.
     This data item is a pointer to the _ihm_dataset_group.id in the
     IHM_DATASET_GROUP category.
;

   #
   _item.name            "_ihm_modeling_post_process.dataset_group_id"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_modeling_post_process.dataset_group_id"
   _item_linked.parent_name  "_ihm_dataset_group.id"
   #
save_
#
save__ihm_modeling_post_process.type
   _item_description.description  "    The type of post modeling analysis being carried out."
   #
   _item.name            "_ihm_modeling_post_process.type"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     filter      "post processing step involves filtering of models"  
     cluster     "post processing step involves clustering of models"  
     rescore     "post processing step involves rescoring of the models"  
     validation  "post processing step involves validation of the models"  
     other       "post processing step involves a different kind of analysis"  
     none        "no post processing is carried out"  
   #
save_
#
save__ihm_modeling_post_process.feature
   _item_description.description  "    The parameter/feature used in the post modeling analysis."
   #
   _item.name            "_ihm_modeling_post_process.feature"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     energy/score  .  
     RMSD          .  
     dRMSD         .  
     other         .  
     none          .  
   #
save_
#
save__ihm_modeling_post_process.feature_name
   _item_description.description  "    The name of the parameter/feature used in the post modeling analysis."
   #
   _item.name            "_ihm_modeling_post_process.feature_name"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     "Rosetta energy"  
     "GOAP (orientation-dependent all-atom statistical potential)"  
   #
save_
#
save__ihm_modeling_post_process.num_models_begin
   _item_description.description  "    The number of models at the beginning of the post processing step."
   #
   _item.name            "_ihm_modeling_post_process.num_models_begin"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_post_process.num_models_end
   _item_description.description  "    The number of models the the end of the post processing step."
   #
   _item.name            "_ihm_modeling_post_process.num_models_end"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_modeling_post_process.script_file_id
   _item_description.description  
;     The file id corresponding to the script used in the post processing step.
      This data item is a pointer to _ihm_external_files.id in the IHM_EXTERNAL_FILES category.
;

   #
   _item.name            "_ihm_modeling_post_process.script_file_id"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_modeling_post_process.script_file_id"
   _item_linked.parent_name  "_ihm_external_files.id"
   #
save_
#
save__ihm_modeling_post_process.software_id
   _item_description.description  
;     Identifier to the software used in the post processing step. 
      This data item is a pointer to the _software.pdbx_ordinal in the
      SOFTWARE category.
;

   #
   _item.name            "_ihm_modeling_post_process.software_id"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_modeling_post_process.software_id"
   _item_linked.parent_name  "_software.pdbx_ordinal"
   #
save_
#
save__ihm_modeling_post_process.details
   _item_description.description  "     Additional details regarding post processing."
   #
   _item.name            "_ihm_modeling_post_process.details"
   _item.category_id     ihm_modeling_post_process
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_ensemble_info
   _category.description     
;              Data items in the IHM_ENSEMBLE_INFO category records the
               details of the model clusters or ensembles obtained after 
               sampling.
;

   _category.id              ihm_ensemble_info
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_ensemble_info.ensemble_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 -
;
  
;
    loop_
    _ihm_ensemble_info.ensemble_id
    _ihm_ensemble_info.ensemble_name
    _ihm_ensemble_info.post_process_id
    _ihm_ensemble_info.model_group_id
    _ihm_ensemble_info.ensemble_clustering_method
    _ihm_ensemble_info.ensemble_clustering_feature
    _ihm_ensemble_info.num_ensemble_models
    _ihm_ensemble_info.num_ensemble_models_deposited
    _ihm_ensemble_info.ensemble_precision_value
    _ihm_ensemble_info.ensemble_file_id
    
     1  'ensemble1'   2  1  Hierarchical  dRMSD  2885   5  17.3  20
     2  'ensemble2'   2  2  Hierarchical  dRMSD  1401   5  19.2  21
     3  'ensemble3'   5  .  Hierarchical  dRMSD   577   0  14.8  22
     4  'ensemble4'   5  .  Hierarchical  dRMSD   404   0  10.8  23
;
  
     
;
    Example 2 -
;
  
;
    loop_
    _ihm_ensemble_info.ensemble_id
    _ihm_ensemble_info.ensemble_name
    _ihm_ensemble_info.post_process_id
    _ihm_ensemble_info.model_group_id
    _ihm_ensemble_info.ensemble_clustering_method
    _ihm_ensemble_info.ensemble_clustering_feature
    _ihm_ensemble_info.num_ensemble_models
    _ihm_ensemble_info.num_ensemble_models_deposited
    _ihm_ensemble_info.ensemble_precision_value
    _ihm_ensemble_info.ensemble_file_id

     1  'open state'     .  1  Hierarchical  RMSD   2885  5  12.3  20
     2  'closed state'   .  2  Hierarchical  RMSD    577  5  11.8  21
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_ensemble_info
   #
save_
#
save__ihm_ensemble_info.ensemble_id
   _item_description.description  "     A unique id for the ensemble."
   #
   _item.name            "_ihm_ensemble_info.ensemble_id"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_ensemble_info.ensemble_name
   _item_description.description  "     An optional name for the cluster or ensemble for better description."
   #
   _item.name            "_ihm_ensemble_info.ensemble_name"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     ensemble1  
     ensemble2  
     cluster1  
     cluster2  
     "open state"  
     "closed state"  
   #
save_
#
save__ihm_ensemble_info.post_process_id
   _item_description.description  
;     An identifier for the post modeling analyses carried out. 
      This data item is a pointer to _ihm_modeling_post_process.id in
      the IHM_MODELING_POST_PROCESS category.
;

   #
   _item.name            "_ihm_ensemble_info.post_process_id"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ensemble_info.post_process_id"
   _item_linked.parent_name  "_ihm_modeling_post_process.id"
   #
save_
#
save__ihm_ensemble_info.model_group_id
   _item_description.description  
;     An identifier for the cluster or group of models being deposited.
      This data item is a pointer to the _ihm_model_group.id
      in the IHM_MODEL_GROUP category.
;

   #
   _item.name            "_ihm_ensemble_info.model_group_id"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ensemble_info.model_group_id"
   _item_linked.parent_name  "_ihm_model_group.id"
   #
save_
#
save__ihm_ensemble_info.model_group_superimposed_flag
   _item_description.description  "     Flag to identify if the models in a group or cluster are structurally aligned."
   #
   _item.name            "_ihm_ensemble_info.model_group_superimposed_flag"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
     YES  
     NO   
   #
save_
#
save__ihm_ensemble_info.ensemble_clustering_method
   _item_description.description  "     The clustering method used to obtain the ensemble, if applicable."
   #
   _item.name            "_ihm_ensemble_info.ensemble_clustering_method"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     Hierarchical  
     "Partitioning (k-means)"  
     "Density based threshold-clustering"  
     Other  
   #
save_
#
save__ihm_ensemble_info.ensemble_clustering_feature
   _item_description.description  "    The parameter/feature used for clustering the models, if applicable."
   #
   _item.name            "_ihm_ensemble_info.ensemble_clustering_feature"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     RMSD   "clustered by RMSD"  
     dRMSD  "clustered by dRMSD"  
     other  "clustered by other feature"  
   #
save_
#
save__ihm_ensemble_info.num_ensemble_models
   _item_description.description  "   The number of models in the current ensemble being described."
   #
   _item.name            "_ihm_ensemble_info.num_ensemble_models"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_ensemble_info.num_ensemble_models_deposited
   _item_description.description  "   The number of models from the current ensemble that is deposited."
   #
   _item.name            "_ihm_ensemble_info.num_ensemble_models_deposited"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_ensemble_info.ensemble_precision_value
   _item_description.description  
;   The precision of each cluster or ensemble is calculated as dRMSD, which
    is the average C-alpha distance root mean square deviation (dRMSD) 
    between the individual models in the cluster and the cluster centroid.
    The cluster centroid is defined as the model with the minimal sum of
    dRMSDs to the other models in the cluster or ensemble.
;

   #
   _item.name            "_ihm_ensemble_info.ensemble_precision_value"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_ensemble_info.ensemble_file_id
   _item_description.description  
;     A reference to the external file containing the structural models 
      in the ensemble. The number of models in the external file should
      correspond to the number of models in the ensemble. This data item 
      is a pointer to _ihm_external_files.id in the IHM_EXTERNAL_FILES 
      category.
      It is recommended that the large ensemble files be stored as separate 
      zip files within the same DOI. It is also recommended that large sphere 
      model ensembles be in binary format, which facilitates faster access. 
      Currently, a binary dump of co-ordinates in dcd format is suggested. 
      The topology can be inferred from the IHM_SPHERE_OBJ_SITE and the
      ATOM_SITE categories in the corresponding mmCIF file.
;

   #
   _item.name            "_ihm_ensemble_info.ensemble_file_id"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ensemble_info.ensemble_file_id"
   _item_linked.parent_name  "_ihm_external_files.id"
   #
save_
#
save__ihm_ensemble_info.details
   _item_description.description  "     Additional details regarding the ensemble."
   #
   _item.name            "_ihm_ensemble_info.details"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_ensemble_info.sub_sample_flag
   _item_description.description  "     Indicate if the ensemble consists of sub samples."
   #
   _item.name            "_ihm_ensemble_info.sub_sample_flag"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
     YES  
     NO   
   #
save_
#
save__ihm_ensemble_info.sub_sampling_type
   _item_description.description  "     Indicate the sub sampling type, if applicable."
   #
   _item.name            "_ihm_ensemble_info.sub_sampling_type"
   _item.category_id     ihm_ensemble_info
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     random       "sub samples generated by randomly partitioning all structures in the group"  
     independent  "each sub sample generated in the same fashion but in independent simulations"  
     other        "other type of sub sampling"  
   #
save_
#
save_ihm_ensemble_sub_sample
   _category.description     
;              Data items in the IHM_ENSEMBLE_SUB_SAMPLE category records the
               details of the sub samples within the ensembles.
;

   _category.id              ihm_ensemble_sub_sample
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_ensemble_sub_sample.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    loop_
    _ihm_ensemble_sub_sample.id
    _ihm_ensemble_sub_sample.name
    _ihm_ensemble_sub_sample.ensemble_id
    _ihm_ensemble_sub_sample.num_models
    _ihm_ensemble_sub_sample.num_models_deposited
    _ihm_ensemble_sub_sample.model_group_id
    _ihm_ensemble_sub_sample.file_id
     1  'sub sample 1'   1  500 2  1  24
     2  'sub sample 2'   1  500 2  2  25
     3  'sub sample 3'   2  500 2  3  26
     4  'sub sample 4'   2  500 2  4  27
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_ensemble_sub_sample
   #
save_
#
save__ihm_ensemble_sub_sample.id
   _item_description.description  "     A unique id for the ensemble sub sample."
   #
   _item.name            "_ihm_ensemble_sub_sample.id"
   _item.category_id     ihm_ensemble_sub_sample
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_ensemble_sub_sample.name
   _item_description.description  "     A name for the ensemble sub sample."
   #
   _item.name            "_ihm_ensemble_sub_sample.name"
   _item.category_id     ihm_ensemble_sub_sample
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_ensemble_sub_sample.ensemble_id
   _item_description.description  
;    The ensemble identifier corresponding to the sub sample. 
     This data item is a pointer to _ihm_ensemble_info.ensemble_id in the IHM_ENSEMBLE_INFO category.
;

   #
   _item.name            "_ihm_ensemble_sub_sample.ensemble_id"
   _item.category_id     ihm_ensemble_sub_sample
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ensemble_sub_sample.ensemble_id"
   _item_linked.parent_name  "_ihm_ensemble_info.ensemble_id"
   #
save_
#
save__ihm_ensemble_sub_sample.num_models
   _item_description.description  "   The number of models in the ensemble sub sample."
   #
   _item.name            "_ihm_ensemble_sub_sample.num_models"
   _item.category_id     ihm_ensemble_sub_sample
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_ensemble_sub_sample.num_models_deposited
   _item_description.description  "   The number of models in the sub sample that are deposited."
   #
   _item.name            "_ihm_ensemble_sub_sample.num_models_deposited"
   _item.category_id     ihm_ensemble_sub_sample
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_ensemble_sub_sample.model_group_id
   _item_description.description  
;     The model group identifier corresponding to the sub sample, if applicable.
      This data item is a pointer to _ihm_model_group.id in the
      IHM_MODEL_GROUP category.
;

   #
   _item.name            "_ihm_ensemble_sub_sample.model_group_id"
   _item.category_id     ihm_ensemble_sub_sample
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ensemble_sub_sample.model_group_id"
   _item_linked.parent_name  "_ihm_model_group.id"
   #
save_
#
save__ihm_ensemble_sub_sample.file_id
   _item_description.description  
;     A reference to the external file containing the structural models
      in the sub sample. The number of models in the external file should
      correspond to the number of models in the sub sample. This data item
      is a pointer to _ihm_external_files.id in the IHM_EXTERNAL_FILES
      category.
;

   #
   _item.name            "_ihm_ensemble_sub_sample.file_id"
   _item.category_id     ihm_ensemble_sub_sample
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ensemble_sub_sample.file_id"
   _item_linked.parent_name  "_ihm_external_files.id"
   #
save_
#
save_ihm_model_list
   _category.description     
;              Data items in the IHM_MODEL_LIST category record the
               details of the structure models being deposited.
;

   _category.id              ihm_model_list
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_model_list.model_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 -
;
  
;
    loop_
    _ihm_model_list.model_id
    _ihm_model_list.model_name
    _ihm_model_list.assembly_id
    _ihm_model_list.protocol_id
    _ihm_model_list.representation_id

        1          'Best scoring model'          1  1  1 
        2          '2nd Best scoring model'      1  1  1 
        3          '3rd Best scoring model'      1  1  1 
        4          '4th Best scoring model'      1  1  1 
        5          '5th Best scoring model'      1  1  1 
   # ...  abbreviated ...
;
  
     
;
    Example 2 -
;
  
;
    loop_
    _ihm_model_list.model_id
    _ihm_model_list.model_name
    _ihm_model_list.assembly_id
    _ihm_model_list.protocol_id
    _ihm_model_list.representation_id

         1        'Best scoring model, open state'          1  1  1
         2        '2nd best scoring model, open state'      1  1  1
         3        '3rd best scoring model, open state'      1  1  1
         4        '4th best scoring model, open state'      1  1  1
         5        '5th best scoring model, open state'      1  1  1
         6        'Best scoring model, closed state'        1  1  1
         7        '2nd best scoring model, closed state'    1  1  1
         8        '3rd best scoring model, closed state'    1  1  1
         9        '4th best scoring model, closed state'    1  1  1
        10        '5th best scoring model, closed state'    1  1  1
    # ...  abbreviated ...
;
  
     
;
    Example 3 -
;
  
;
    loop_
    _ihm_model_list.model_id
    _ihm_model_list.model_name
    _ihm_model_list.assembly_id 
    _ihm_model_list.protocol_id
    _ihm_model_list.representation_id

         1          'Best scoring model, Bound state ensemble 1'             1    1   1
         2          '2nd best scoring model, Bound state ensemble 1'         1    1   1
         3          '3rd best scoring model, Bound state ensemble 1'         1    1   1
         4          '4th best scoring model, Bound state ensemble 1'         1    1   1
         5          '5th best scoring model, Bound state ensemble 1'         1    1   1
         6          'Best scoring model, Unbound state ensemble 2'           2    1   2
         7          '2nd best scoring model, Unbound state ensemble 2'       2    1   2
         8          '3rd best scoring model, Unbound state ensemble 2'       2    1   2
         9          '4th best scoring model, Unbound state ensemble 2'       2    1   2
        10          '5th best scoring model, Unbound state ensemble 2'       2    1   2
    # ...  abbreviated ...
;
  
     
;
    Example 4 - Multi-scale, multi-state and time-ordered ensemble
;
  
;
    loop_
    _ihm_model_list.model_id
    _ihm_model_list.model_name
    _ihm_model_list.assembly_id
    _ihm_model_list.protocol_id
    _ihm_model_list.representation_id

       1        'Best scoring model, open state, time step 1'         1  1  1
       2        '2nd Best scoring model, open state, time step 1'     1  1  1
       3        'Best scoring model, closed state, time step 1'       1  1  1
       4        '2nd Best scoring model, closed state, time step 1'   1  1  1
       5        'Best scoring model, open state, time step 2'         1  1  1
       6        '2nd Best scoring model, open state, time step 2'     1  1  1
       7        'Best scoring model, closed state, time step 2'       1  1  1
       8        '2nd Best scoring model, closed state, time step 2'   1  1  1
   # ...  abbreviated ...
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_model_list
   #
save_
#
save__ihm_model_list.model_id
   _item_description.description  "     A unique identifier for the structural model being deposited."
   #
   _item.name            "_ihm_model_list.model_id"
   _item.category_id     ihm_model_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.parent_name  "_ihm_model_list.model_id"
   _item_linked.child_name   "_atom_site.pdbx_PDB_model_num"
   #
save_
#
save__ihm_model_list.model_name
   _item_description.description  "     A decsriptive name for the model."
   #
   _item.name            "_ihm_model_list.model_name"
   _item.category_id     ihm_model_list
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     "Best scoring model"  
     "2nd best scoring model"  
     "Cluster center"  
   #
save_
#
save__ihm_model_list.assembly_id
   _item_description.description  
;     An identifier to the structure assembly corresponding to the model.
      This data item is a pointer to the _ihm_struct_assembly.id
      in the IHM_STRUCT_ASSEMBLY category.
;

   #
   _item.name            "_ihm_model_list.assembly_id"
   _item.category_id     ihm_model_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_model_list.assembly_id"
   _item_linked.parent_name  "_ihm_struct_assembly.id"
   #
save_
#
save__ihm_model_list.protocol_id
   _item_description.description  
;     An identifier to the modeling protocol that produced the model.
      This data item is a pointer to the _ihm_modeling_protocol.id
      in the IHM_MODELING_PROTOCOL category.
;

   #
   _item.name            "_ihm_model_list.protocol_id"
   _item.category_id     ihm_model_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_model_list.protocol_id"
   _item_linked.parent_name  "_ihm_modeling_protocol.id"
   #
save_
#
save__ihm_model_list.representation_id
   _item_description.description  
;     An identifier to the multi-scale model representation id of the model.
      This data item is a pointer to the _ihm_model_representation.id
      in the IHM_MODEL_REPRESENTATION category.
;

   #
   _item.name            "_ihm_model_list.representation_id"
   _item.category_id     ihm_model_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_model_list.representation_id"
   _item_linked.parent_name  "_ihm_model_representation.id"
   #
save_
#
save_ihm_model_group
   _category.description     
;              IHM_MODEL_GROUP category defines collections or groups of integrative
               structure models.
;

   _category.id              ihm_model_group
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_model_group.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 -
;
  
;
    loop_
    _ihm_model_group.id
    _ihm_model_group.name
    _ihm_model_group.details

    1 'Open state'  'Ensemble of open state models'
    2 'Closed state' 'Ensemble of closed state models'
;
  
     
;
    Example 2 -
;
  
;
    loop_
    _ihm_model_group.id
    _ihm_model_group.name
    _ihm_model_group.details
    
    1 'Open State in time step 1' 'Ensemble of open state models in time step 1'
    2 'Open State in time step 2' 'Ensemble of open state models in time step 2'
    3 'Closed State in time step 1' 'Ensemble of closed state models in time step 1'
    4 'Closed State in time step 2' 'Ensemble of closed state models in time step 2'
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_model_group
   #
save_
#
save__ihm_model_group.id
   _item_description.description  
;     A unique identifier for a collection or group of structural models. 
      This data item can be used to group models into structural clusters
      or using other criteria based on experimental data or other
      relationships such as those belonging to the same state or time stamp.
      An ensemble of models and its representative can either be grouped together
      or can be separate groups in the ihm_model_group table. The choice between
      the two options should be decided based on how the modeling was carried out
      and how the representative was chosen. If the representative is a member of
      the ensemble (i.e., best scoring model), then it is recommended that the
      representative and the ensemble belong to the same model group. If the
      representative is calculated from the ensemble (i.e., centroid), then it is
      recommended that the representative be separated into a different group.
;

   #
   _item.name            "_ihm_model_group.id"
   _item.category_id     ihm_model_group
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_model_group.name
   _item_description.description  "     A name for the collection of models."
   #
   _item.name            "_ihm_model_group.name"
   _item.category_id     ihm_model_group
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     cluster1  
     cluster2  
     ensemble1  
     ensemble2  
     "open state"  
     "closed state"  
     "bound state"  
     "unbound state"  
     "bound state ensemble 1"  
     "unbound state ensemble 2"  
   #
save_
#
save__ihm_model_group.details
   _item_description.description  "     Additional details about the collection of models."
   #
   _item.name            "_ihm_model_group.details"
   _item.category_id     ihm_model_group
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_model_group_link
   _category.description     
;              IHM_MODEL_GROUP_LINK category provides the list of structure models present in 
               a particular structure model group.
;

   _category.id              ihm_model_group_link
   _category.mandatory_code  no
   #
   loop_
   _category_key.name
     "_ihm_model_group_link.model_id"  
     "_ihm_model_group_link.group_id"  
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 - Same model in multiple groups
;
  
;
    loop_
    _ihm_model_group_link.model_id
    _ihm_model_group_link.group_id

    1  1
    2  1
    3  1
    4  1
    5  1
    1  2
    2  2
    3  2
    4  3
    5  3
;
  
     
;
    Example 2 - Each model in an independent group
;
  
;
    loop_
    _ihm_model_group_link.model_id
    _ihm_model_group_link.group_id

    1  1
    2  2
    3  3
    4  4
    5  5
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_model_group_link
   #
save_
#
save__ihm_model_group_link.model_id
   _item_description.description  
;     An identifier for the structural model.
      This data item is a pointer to _ihm_model_list.model_id in the
      IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_model_group_link.model_id"
   _item.category_id     ihm_model_group_link
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_model_group_link.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save__ihm_model_group_link.group_id
   _item_description.description  
;     An identifier for the structural model group.
      This data item is a pointer to _ihm_model_group.id in the
      IHM_MODEL_GROUP category.
;

   #
   _item.name            "_ihm_model_group_link.group_id"
   _item.category_id     ihm_model_group_link
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_model_group_link.group_id"
   _item_linked.parent_name  "_ihm_model_group.id"
   #
save_
#
save_ihm_model_representative
   _category.description     
;              Data items in the IHM_MODEL_REPRESENTATIVE category record the
               details of the representative structure model in an ensemble or cluster.
;

   _category.id              ihm_model_representative
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_model_representative.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    loop_
    _ihm_model_representative.id
    _ihm_model_representative.model_group_id
    _ihm_model_representative.model_id
    _ihm_model_representative.selection_criteria
     1  1  1  'best scoring model'
     2  1  2  'medioid'
     3  2  6  'best scoring model'
     4  2  7  'medioid'
     #...abbreviated...#
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_model_representative
   #
save_
#
save__ihm_model_representative.id
   _item_description.description  "     A unique identifier for the representative of the model group."
   #
   _item.name            "_ihm_model_representative.id"
   _item.category_id     ihm_model_representative
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_model_representative.model_group_id
   _item_description.description  
;     The model group identifier corresponding to the representative model. 
      This data item is a pointer to _ihm_model_group.id in the
      IHM_MODEL_GROUP category.
;

   #
   _item.name            "_ihm_model_representative.model_group_id"
   _item.category_id     ihm_model_representative
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_model_representative.model_group_id"
   _item_linked.parent_name  "_ihm_model_group.id"
   #
save_
#
save__ihm_model_representative.model_id
   _item_description.description  
;     The model identifier corresponding to the representative model. 
      This data item is a pointer to _ihm_model_list.model_id in the
      IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_model_representative.model_id"
   _item.category_id     ihm_model_representative
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_model_representative.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save__ihm_model_representative.selection_criteria
   _item_description.description  "     The selection criteria based on which the representative is chosen."
   #
   _item.name            "_ihm_model_representative.selection_criteria"
   _item.category_id     ihm_model_representative
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     medoid                         "most similar to other models"  
     "closest to the average"       .  
     "lowest energy"                .  
     "target function"              .  
     "fewest violations"            .  
     "minimized average structure"  .  
     "best scoring model"           .  
     centroid                       "centroid of a cluster"  
     "other selction criteria"      .  
   #
save_
#
save__atom_site.ihm_model_id
   _item_description.description  
;     The model id corresponding to the atom site.
      This data item is a pointer to _ihm_model_list.model_id
      in the IHM_MODEL_LIST category.
;

   #
   _item.name            "_atom_site.ihm_model_id"
   _item.category_id     atom_site
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_atom_site.ihm_model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save_ihm_dataset_list
   _category.description     
;  Category holds the list of all datasets used in the IHM modeling. 
   These can be datasets archived in other related databases such as
   BMRB, EMDB, EMPIAR, SASBDB, PRIDE etc., or can be hosted in other
   places such as the authors website, github etc. These datasets are
   elaborated in detail in the IHM_DATASET_RELATED_DB_REFERENCE and/or 
   the IHM_DATASET_EXTERNAL_REFERENCE categories. This category 
   holds the list of all datasets used.
;

   _category.id              ihm_dataset_list
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_dataset_list.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;   
    Example 1
;

   _category_examples.case    
;
    loop_
    _ihm_dataset_list.id
    _ihm_dataset_list.data_type
    _ihm_dataset_list.database_hosted

    1  'CX-MS data'   'NO'
    2  'CX-MS data'   'NO' 
    3  '3DEM volume'  'YES' 
    4  '2DEM class average'  'NO' 
    5  'Comparative model'   'NO'
    6  'EM raw micrographs'  'NO'
    # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_dataset_list
   #
save_
#
save__ihm_dataset_list.id
   _item_description.description  "    A unique identifier for the dataset."
   #
   _item.name            "_ihm_dataset_list.id"
   _item.category_id     ihm_dataset_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_dataset_list.data_type
   _item_description.description  "    The type of data held in the dataset."
   #
   _item.name            "_ihm_dataset_list.data_type"
   _item.category_id     ihm_dataset_list
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     "NMR data"  
     "3DEM volume"  
     "2DEM class average"  
     "EM raw micrographs"  
     "X-ray diffraction data"  
     "SAS data"  
     "CX-MS data"  
     "Crosslinking-MS data"  
     "Mass Spectrometry data"  
     "EPR data"  
     "H/D exchange data"  
     "Single molecule FRET data"  
     "Ensemble FRET data"  
     "Experimental model"  
     "Comparative model"  
     "Integrative model"  
     "De Novo model"  
     "Predicted contacts"  
     "Mutagenesis data"  
     "DNA footprinting data"  
     "Hydroxyl radical footprinting data"  
     "Yeast two-hybrid screening data"  
     "Quantitative measurements of genetic interactions"  
     Other  
   #
save_
#
save__ihm_dataset_list.details
   _item_description.description  
;    Details regarding the dataset, especially those types not listed in
     _ihm_dataset_list.data_type.
;

   #
   _item.name            "_ihm_dataset_list.details"
   _item.category_id     ihm_dataset_list
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_dataset_list.database_hosted
   _item_description.description  
;    A flag that indicates whether the dataset is archived in 
     an IHM related database or elsewhere.
;

   #
   _item.name            "_ihm_dataset_list.database_hosted"
   _item.category_id     ihm_dataset_list
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
     YES  
     NO   
   #
save_
#
save_ihm_dataset_group
   _category.description     "  Category to define groups or collections of input datasets."
   _category.id              ihm_dataset_group
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_dataset_group.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1
;

   _category_examples.case    
;
    loop_
    _ihm_dataset_group.id
    _ihm_dataset_group.name
    _ihm_dataset_group.application
    _ihm_dataset_group.details
     1  'Experimental data'  'validation' . 
     2  'Starting structural models' 'restraint' .
     3  'Comparative model templates' 'representation' .
     4  'Input data for docking' 'restraint' .
     5  'Input data for integrative modeling' 'restraint' .
    # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_dataset_group
   #
save_
#
save__ihm_dataset_group.id
   _item_description.description  "    A unique identifier for the dataset group."
   #
   _item.name            "_ihm_dataset_group.id"
   _item.category_id     ihm_dataset_group
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_dataset_group.name
   _item_description.description  "    A name for the dataset group."
   #
   _item.name            "_ihm_dataset_group.name"
   _item.category_id     ihm_dataset_group
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_dataset_group.application
   _item_description.description  "    The application / utilization of the dataset group in modeling."
   #
   _item.name            "_ihm_dataset_group.application"
   _item.category_id     ihm_dataset_group
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     restraint       "dataset used as input spatial restraints in modeling"  
     validation      "dataset used for validation"  
     filter          "dataset used for filtering sampled models"  
     representation  "dataset used in model representation"  
     sampling        "dataset used to bias sampling"  
     modeling        "dataset used in modeling"  
     other           "dataset used in other ways"  
   #
save_
#
save__ihm_dataset_group.details
   _item_description.description  "    Additional details regarding the dataset group."
   #
   _item.name            "_ihm_dataset_group.details"
   _item.category_id     ihm_dataset_group
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_dataset_group_link
   _category.description     
;              IHM_DATASET_GROUP_LINK category provides the list of datasets present in 
               a particular group.
;

   _category.id              ihm_dataset_group_link
   _category.mandatory_code  no
   #
   loop_
   _category_key.name
     "_ihm_dataset_group_link.dataset_list_id"  
     "_ihm_dataset_group_link.group_id"  
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 - Same dataset in multiple groups
;
  
;
    loop_
    _ihm_dataset_group_link.dataset_list_id
    _ihm_dataset_group_link.group_id

    1  1
    2  1
    3  1
    4  1
    5  1
    1  2
    2  2
    3  2
;
  
     
;
    Example 2 - Each dataset in an independent group
;
  
;
    loop_
    _ihm_dataset_group_link.dataset_list_id
    _ihm_dataset_group_link.group_id

    1  1
    2  2
    3  3
    4  4
    5  5
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_dataset_group_link
   #
save_
#
save__ihm_dataset_group_link.dataset_list_id
   _item_description.description  
;     An identifier for the dataset.
      This data item is a pointer to _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_dataset_group_link.dataset_list_id"
   _item.category_id     ihm_dataset_group_link
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_dataset_group_link.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_dataset_group_link.group_id
   _item_description.description  
;     An identifier for the dataset group.
      This data item is a pointer to _ihm_dataset_group.id in the
      IHM_DATASET_GROUP category.
;

   #
   _item.name            "_ihm_dataset_group_link.group_id"
   _item.category_id     ihm_dataset_group_link
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_dataset_group_link.group_id"
   _item_linked.parent_name  "_ihm_dataset_group.id"
   #
save_
#
save_ihm_related_datasets
   _category.description     "  Category holds information about related datasets, where one is derived from the other."
   _category.id              ihm_related_datasets
   _category.mandatory_code  no
   #
   loop_
   _category_key.name
     "_ihm_related_datasets.dataset_list_id_primary"  
     "_ihm_related_datasets.dataset_list_id_derived"  
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1
;

   _category_examples.case    
;
    loop_
    _ihm_related_datasets.dataset_list_id_primary
    _ihm_related_datasets.dataset_list_id_derived
    1   5 
    2   6 
    3   7 
    4   8 
    # ... abbreviated ... #
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_related_datasets
   #
save_
#
save__ihm_related_datasets.dataset_list_id_derived
   _item_description.description  
;    The dataset list id corresponding to the derived dataset.
     This data item is a pointer to _ihm_dataset_list.id in the
     IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_related_datasets.dataset_list_id_derived"
   _item.category_id     ihm_related_datasets
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_related_datasets.dataset_list_id_derived"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_related_datasets.dataset_list_id_primary
   _item_description.description  
;    The primary dataset list id from which the corresponding derived dataset is obtained.
     This data item is a pointer to _ihm_dataset_list.id in the
     IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_related_datasets.dataset_list_id_primary"
   _item.category_id     ihm_related_datasets
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_related_datasets.dataset_list_id_primary"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_related_datasets.transformation_id
   _item_description.description  
;    A pointer to the transformation matrix, if applicable. 
     The transformation matrix is to be applied to the derived dataset
     in order to transform it to the primary dataset from which it is
     derived. Examples include segmented 3DEM maps, Gaussian Mixture Models
     derived from 3DEM maps, starting comparative models. 
     This data item is a pointer to _ihm_data_transformation.id 
     in the IHM_DATA_TRANSFORMATION category.
;

   #
   _item.name            "_ihm_related_datasets.transformation_id"
   _item.category_id     ihm_related_datasets
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_related_datasets.transformation_id"
   _item_linked.parent_name  "_ihm_data_transformation.id"
   #
save_
#
save_ihm_data_transformation
   _category.description     
;              Data items in the IHM_DATA_TRANSFORMATION category records the
               details of the rotation matrix and translation vector that can be 
               applied to transform the data.
;

   _category.id              ihm_data_transformation
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_data_transformation.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    _ihm_data_transformation.id                              1
    _ihm_data_transformation.rot_matrix[1][1]                1.0
    _ihm_data_transformation.rot_matrix[2][1]                0.0
    _ihm_data_transformation.rot_matrix[3][1]                0.0
    _ihm_data_transformation.rot_matrix[1][2]                0.0
    _ihm_data_transformation.rot_matrix[2][2]                1.0
    _ihm_data_transformation.rot_matrix[3][2]                0.0
    _ihm_data_transformation.rot_matrix[1][3]                0.0
    _ihm_data_transformation.rot_matrix[2][3]                0.0
    _ihm_data_transformation.rot_matrix[3][3]                1.0
    _ihm_data_transformation.tr_vector[1]                    0.0
    _ihm_data_transformation.tr_vector[2]                    0.0
    _ihm_data_transformation.tr_vector[3]                    0.0
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_data_transformation
   #
save_
#
save__ihm_data_transformation.id
   _item_description.description  "     A unique identifier for the transformation."
   #
   _item.name            "_ihm_data_transformation.id"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_data_transformation.rot_matrix[1][1]
   _item_description.description  "     Data item [1][1] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_data_transformation.rot_matrix[1][1]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.rot_matrix[2][1]
   _item_description.description  "     Data item [2][1] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_data_transformation.rot_matrix[2][1]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.rot_matrix[3][1]
   _item_description.description  "     Data item [3][1] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_data_transformation.rot_matrix[3][1]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.rot_matrix[1][2]
   _item_description.description  "     Data item [1][2] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_data_transformation.rot_matrix[1][2]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.rot_matrix[2][2]
   _item_description.description  "     Data item [2][2] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_data_transformation.rot_matrix[2][2]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.rot_matrix[3][2]
   _item_description.description  "     Data item [3][2] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_data_transformation.rot_matrix[3][2]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.rot_matrix[1][3]
   _item_description.description  "     Data item [1][3] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_data_transformation.rot_matrix[1][3]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.rot_matrix[2][3]
   _item_description.description  "     Data item [2][3] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_data_transformation.rot_matrix[2][3]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.rot_matrix[3][3]
   _item_description.description  "     Data item [3][3] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_data_transformation.rot_matrix[3][3]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.tr_vector[1]
   _item_description.description  "     Data item [1] of the translation vector used in the transformation."
   #
   _item.name            "_ihm_data_transformation.tr_vector[1]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  vector
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.tr_vector[2]
   _item_description.description  "     Data item [2] of the translation vector used in the transformation."
   #
   _item.name            "_ihm_data_transformation.tr_vector[2]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  vector
   #
   _item_type.code  float
   #
save_
#
save__ihm_data_transformation.tr_vector[3]
   _item_description.description  "     Data item [3] of the translation vector used in the transformation."
   #
   _item.name            "_ihm_data_transformation.tr_vector[3]"
   _item.category_id     ihm_data_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  vector
   #
   _item_type.code  float
   #
save_
#
save_ihm_dataset_related_db_reference
   _category.description     
;  Category holds information related to data sources for the entry.
   These can be datasets archived in other related databases such as 
   BMRB, EMDB, EMPIAR, SASBDB, PRIDE etc.
;

   _category.id              ihm_dataset_related_db_reference
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_dataset_related_db_reference.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;   
    Example 1
;

   _category_examples.case    
;
 loop_
 _ihm_dataset_related_db_reference.id
 _ihm_dataset_related_db_reference.dataset_list_id
 _ihm_dataset_related_db_reference.db_name
 _ihm_dataset_related_db_reference.accession_code
 _ihm_dataset_related_db_reference.version
 _ihm_dataset_related_db_reference.details
 1  6  'PRIDE'  'PXD00381' . 'Structural Analysis of a Prokaryotic Ribosome Using a Novel Amidinating Cross-Linker and Mass Spectrometry'
 2  3  'EMDB'  'EMD-2799'  .  .
 3  5  'PDB'   '5FM1'      .  'STRUCTURE OF GAMMA-TUBULIN SMALL COMPLEX BASED ON A CRYO-EM MAP, CHEMICAL CROSS-LINKS, AND A REMOTELY RELATED STRUCTURE'
 4  7  'BMRB'  '25766'     .  .
 5  8  'MODEL ARCHIVE'  'MA-CO2KC'  .  'PREDICTED STRUCTURE OF AN ALPHA NEUROTOXIN FROM TAIWAN COBRA BY HOMOLOGY MODELING'
 # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_dataset_related_db_reference
   #
save_
#
save__ihm_dataset_related_db_reference.id
   _item_description.description  "    A unique identifier for the related database entry."
   #
   _item.name            "_ihm_dataset_related_db_reference.id"
   _item.category_id     ihm_dataset_related_db_reference
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_dataset_related_db_reference.dataset_list_id
   _item_description.description  
;   Identifier to the dataset list used in the IHM modeling.
    This data item is a pointer to the _ihm_dataset_list.id in the
    IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_dataset_related_db_reference.dataset_list_id"
   _item.category_id     ihm_dataset_related_db_reference
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_dataset_related_db_reference.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_dataset_related_db_reference.db_name
   _item_description.description  "    The name of the database containing the dataset entry."
   #
   _item.name            "_ihm_dataset_related_db_reference.db_name"
   _item.category_id     ihm_dataset_related_db_reference
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     PDB  
     PDB-Dev  
     BMRB  
     EMDB  
     EMPIAR  
     SASBDB  
     PRIDE  
     "MODEL ARCHIVE"  
     MASSIVE  
     BioGRID  
     ProXL  
     jPOSTrepo  
     iProX  
     AlphaFoldDB  
     ProteomeXchange  
     BMRbig  
     Other  
   #
save_
#
save__ihm_dataset_related_db_reference.accession_code
   _item_description.description  "   The accession code for the database entry."
   #
   _item.name            "_ihm_dataset_related_db_reference.accession_code"
   _item.category_id     ihm_dataset_related_db_reference
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_examples.case
     5FM1       
     25766      
     EMD-2799   
     10049      
     SASDA82    
     PXD003381  
     MA-CO2KC   
   #
save_
#
save__ihm_dataset_related_db_reference.version
   _item_description.description  "    Version of the database entry, if the database allows versioning."
   #
   _item.name            "_ihm_dataset_related_db_reference.version"
   _item.category_id     ihm_dataset_related_db_reference
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
save_
#
save__ihm_dataset_related_db_reference.details
   _item_description.description  "    Details regarding the dataset entry."
   #
   _item.name            "_ihm_dataset_related_db_reference.details"
   _item.category_id     ihm_dataset_related_db_reference
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
   _item_examples.case  "Structural Analysis of a Prokaryotic Ribosome Using a Novel Amidinating Cross-Linker and Mass Spectrometry"
   #
save_
#
save_ihm_external_reference_info
   _category.description     
;  Category holds links to other external data sources for the I/H model entry.
   Input datasets held in other databases such as EMDB, BMRB, SASBDB etc. 
   are referenced in the IHM_DATASET_RELATED_DB_REFERENCE category. 
   This data category, along with IHM_EXTERNAL_FILES category, holds information
   regarding other non-database external data sources, such as  DOIs (digital 
   object identifiers) or supplementary files stored locally. The DOIs can either 
   lead to the external data file(s) directly (as in case of DOIs provided by the PDB) 
   or might lead to an HTML landing page (as provided by Zenodo). In the latter case, 
   additional URL (Uniform Resource Locator) information is required to retrieve 
   the external data file(s).
;

   _category.id              ihm_external_reference_info
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_external_reference_info.reference_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 - DOI reference leading to an archive
;
  
;
 loop_
    _ihm_external_reference_info.reference_id
    _ihm_external_reference_info.reference_provider
    _ihm_external_reference_info.reference_type
    _ihm_external_reference_info.reference
    _ihm_external_reference_info.refers_to
    _ihm_external_reference_info.associated_url

    1  'Zenodo' 'DOI' '10.5281/zenodo.46266'  'Archive'  'https://zenodo.org/record/46266/files/nup84-v1.0.zip'
    # ...  abbreviated ...
;
  
     
;
    Example 2 - Supplementary files stored locally
;
  
;
    _ihm_external_reference_info.reference_id       2
    _ihm_external_reference_info.reference_type     'Supplementary Files'
    _ihm_external_reference_info.reference          .
    _ihm_external_reference_info.refers_to          'Other'
;
  
     
;
    Example 3 - DOI reference leading to a single file
;
  
;
 loop_
    _ihm_external_reference_info.reference_id
    _ihm_external_reference_info.reference_provider
    _ihm_external_reference_info.reference_type
    _ihm_external_reference_info.reference
    _ihm_external_reference_info.refers_to
    _ihm_external_reference_info.associated_url

    3 'Zenodo' 'DOI' '10.5281/zenodo.58025' 'File' 'https://zenodo.org/record/58025/files/Nup84complex_particles.spd'
    # ...  abbreviated ...
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_external_reference_info
   #
save_
#
save__ihm_external_reference_info.reference_id
   _item_description.description  "     A unique identifier for the external reference."
   #
   _item.name            "_ihm_external_reference_info.reference_id"
   _item.category_id     ihm_external_reference_info
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_external_reference_info.reference_provider
   _item_description.description  "     The name of the reference provider."
   #
   _item.name            "_ihm_external_reference_info.reference_provider"
   _item.category_id     ihm_external_reference_info
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     Zenodo    
     Figshare  
     Crossref  
   #
save_
#
save__ihm_external_reference_info.reference_type
   _item_description.description  
;     The type of external reference. 
      Currently, only Digital Object Identifiers (DOIs) and supplementary files 
      stored locally are supported.
;

   #
   _item.name            "_ihm_external_reference_info.reference_type"
   _item.category_id     ihm_external_reference_info
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     DOI                    "External reference is a Digital Object Identifier"  
     "Supplementary Files"  "External reference includes supplementary files stored locally"  
   #
save_
#
save__ihm_external_reference_info.reference
   _item_description.description  
;     The external reference or the Digital Object Identifier (DOI).
      This field is not relevant for local files.
;

   #
   _item.name            "_ihm_external_reference_info.reference"
   _item.category_id     ihm_external_reference_info
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_examples.case  10.5281/zenodo.46266
   #
save_
#
save__ihm_external_reference_info.refers_to
   _item_description.description  
;     The type of object that the external reference points to, usually
      a single file or an archive.
;

   #
   _item.name            "_ihm_external_reference_info.refers_to"
   _item.category_id     ihm_external_reference_info
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     File         "Refers to a single file"  
     Archive      "Refers to a tar and/or a compressed file"  
     Publication  "Refers to data from previously published work"  
     Other        "Other kind of object"  
   #
save_
#
save__ihm_external_reference_info.associated_url
   _item_description.description  
;     The Uniform Resource Locator (URL) corresponding to the external reference (DOI). 
      This URL should link to the corresponding downloadable file or archive and is provided 
      to enable automated software to download the referenced file or archive.
;

   #
   _item.name            "_ihm_external_reference_info.associated_url"
   _item.category_id     ihm_external_reference_info
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
save_
#
save__ihm_external_reference_info.details
   _item_description.description  "     Additional details regarding the external reference."
   #
   _item.name            "_ihm_external_reference_info.details"
   _item.category_id     ihm_external_reference_info
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_external_files
   _category.description     
;  Category provides details regarding external files. The IHM_EXTERNAL_REFERENCE_INFO
   category captures the top-level details regarding external data sources. 
   This category captures the specific details regarding externally stored files 
   related to the particular I/H model entry.
;

   _category.id              ihm_external_files
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_external_files.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   loop_
   _category_examples.detail
   _category_examples.case
     
;
    Example 1 - DOI Archive Files
;
  
;
 loop_
    _ihm_external_files.id
    _ihm_external_files.reference_id
    _ihm_external_files.file_path
    _ihm_external_files.file_format
    _ihm_external_files.content_type
    _ihm_external_files.file_size_bytes
    _ihm_external_files.details

    1   1   'integrativemodeling-nup84-a69f895/data/EDC_XL_122013.new.dat'  'TXT'    'Input data or restraints' .   'EDC crosslinks file'
    2   1   'integrativemodeling-nup84-a69f895/data/yeast_Nup84_DSS.new.dat'    'TXT'    'Input data or restraints' .   'DSS crosslinks file'
    3   1   'integrativemodeling-nup84-a69f895/data/nup84_kinked_from_class2.pgm'   'PGM'   'Input data or restraints'  .    'Nup84 2DEM class average'
    4   1   'integrativemodeling-nup84-a69f895/data/nup84_kinked_from_class2.mrc'   'MRC'   'Input data or restraints'  .       'Nup84 2DEM class average'
    5   1   'integrativemodeling-nup84-a69f895/data/ScSec13_2-296_new2.pdb' 'PDB'   'Input data or restraints'  . 'Sec13 starting comparative model'
    6   1   'integrativemodeling-nup84-a69f895/scripts/MODELLER_scripts/Nup84/all_align_final2.ali' 'PIR/NBRF'  'Input data or restraints'  . 'Nup84 multiple sequence alignment file'
    7   1   'integrativemodeling-nup84-a69f895/scripts/MODELLER_scripts/Nup84/all_align_final1.ali' 'PIR/NBRF'  'Input data or restraints'  . 'Nup84 multiple sequence alignment file'
    8   1   'integrativemodeling-nup84-a69f895/scripts/nup84.isd.modeling.py'   'Other' 'Modeling workflow or script'  . 'Python integrative modeling main script'
    9   1   'integrativemodeling-nup84-a69f895/scripts/nup84.topology.py'   'Other' 'Modeling workflow or script'  . 'Python script for constructing subunits'
   10   1   'integrativemodeling-nup84-a69f895/scripts/nup84.merge.py'  'Other' 'Modeling workflow or script'  . 'Python script to merge output files'
   11   1   'integrativemodeling-nup84-a69f895/scripts/README'  'TXT'   'Modeling workflow or script'  . 'Readme file'
   12   1   'integrativemodeling-nup84-a69f895/outputs/localization/cluster1/nup84.mrc' 'MRC'   'Modeling or post-processing output'   .   'Nup84 localization density file'
   13   1   'integrativemodeling-nup84-a69f895/outputs/localization/cluster1/nup85.mrc' 'MRC'   'Modeling or post-processing output'   .   'Nup85 localization density file'
   14   1   'integrativemodeling-nup84-a69f895/outputs/localization/cluster1/nup120.mrc'    'MRC'   'Modeling or post-processing output'   .   'Nup120 localization density file'
 # ...  abbreviated ...
;
  
     
;
    Example 2 - Supplementary Local Files
;
  
;
 loop_
    _ihm_external_files.id
    _ihm_external_files.reference_id
    _ihm_external_files.file_path
    _ihm_external_files.file_format
    _ihm_external_files.content_type
    _ihm_external_files.file_size_bytes
    _ihm_external_files.details
    
     1   2   'data/EDC_XL_122013.dat' 'TXT'  'Input data or restraints'   .    'EDC crosslinks file'
     2   2   'data/yeast_Nup84_DSS.dat'   'TXT'   'Input data or restraints'   .   'DSS crosslinks file'
     3   2   'nup145.mrc'  'MRC'   'Modeling or post-processing output'    .    'Nup145 localization density file'
    # ...  abbreviated ...
;
  
     
;
    Example 3 - DOI reference leading to a single file or data from previously published work
;
  
;
 loop_
    _ihm_external_files.id
    _ihm_external_files.reference_id
    _ihm_external_files.file_path
    _ihm_external_files.content_type
    _ihm_external_files.details
     1  3  .  'Input data or restraints'  'Raw micrographs from which the class average was derived'
    # ...  abbreviated ...
;
  
   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_external_files
   #
save_
#
save__ihm_external_files.id
   _item_description.description  "   A unique identifier for each external file."
   #
   _item.name            "_ihm_external_files.id"
   _item.category_id     ihm_external_files
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_external_files.reference_id
   _item_description.description  
;   A pointer to the source of the external file - either DOI or locally stored. 
    This data item is a pointer to _ihm_external_reference_info.reference_id in the
    IHM_EXTERNAL_REFERENCE_INFO category.
;

   #
   _item.name            "_ihm_external_files.reference_id"
   _item.category_id     ihm_external_files
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_external_files.reference_id"
   _item_linked.parent_name  "_ihm_external_reference_info.reference_id"
   #
save_
#
save__ihm_external_files.file_path
   _item_description.description  
;   The relative path (including filename) for each external file. 
    Absolute paths (starting with "/") are not permitted. 
    This is required for identifying individual files from within
    a tar-zipped archive file or for identifying supplementary local
    files organized within a directory structure.
    This data item assumes a POSIX-like directory structure or file path.
;

   #
   _item.name            "_ihm_external_files.file_path"
   _item.category_id     ihm_external_files
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     integrativemodeling-nup84-a69f895/outputs/localization/cluster1/nup84.mrc              
     integrativemodeling-nup84-a69f895/scripts/MODELLER_scripts/Nup84/all_align_final2.ali  
     nup145.mrc                                                                             
     data/EDC_XL_122013.dat                                                                 
   #
save_
#
save__ihm_external_files.file_format
   _item_description.description  "   Format of the external file."
   #
   _item.name            "_ihm_external_files.file_format"
   _item.category_id     ihm_external_files
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
     TXT       
     PGM       
     JPG       
     GIF       
     TIF       
     PNG       
     MRC       
     CCP4      
     PDB       
     CIF       
     HDF5      
     DCD       
     FASTA     
     CLUSTALW  
     PIR/NBRF  
     A2M       
     A3M       
     PDF       
     Other     
   #
save_
#
save__ihm_external_files.content_type
   _item_description.description  "   The type of content in the file."
   #
   _item.name            "_ihm_external_files.content_type"
   _item.category_id     ihm_external_files
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     "Input data or restraints"  
     "Modeling or post-processing output"  
     "Modeling workflow or script"  
     "Visualization script"  
     Other  
   #
save_
#
save__ihm_external_files.file_size_bytes
   _item_description.description  "   Storage size of the external file in bytes."
   #
   _item.name            "_ihm_external_files.file_size_bytes"
   _item.category_id     ihm_external_files
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_external_files.details
   _item_description.description  "   Additional textual details regarding the external file."
   #
   _item.name            "_ihm_external_files.details"
   _item.category_id     ihm_external_files
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
   loop_
   _item_examples.case
     "Readme file"  
     "Nup84 multiple sequence alignment file"  
     "Nup84 starting comparative model file"  
   #
save_
#
save_ihm_dataset_external_reference
   _category.description     
;  Category provides additional details regarding input data hosted externally 
   at other resources.
;

   _category.id              ihm_dataset_external_reference
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_dataset_external_reference.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
 loop_
    _ihm_dataset_external_reference.id
    _ihm_dataset_external_reference.dataset_list_id
    _ihm_dataset_external_reference.file_id
    1  1  1  
    2  2  2  
    3  4  3
    4  4  4  
    5  5  5 
 # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_dataset_external_reference
   #
save_
#
save__ihm_dataset_external_reference.id
   _item_description.description  "   A unique identifier for the external data."
   #
   _item.name            "_ihm_dataset_external_reference.id"
   _item.category_id     ihm_dataset_external_reference
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_dataset_external_reference.dataset_list_id
   _item_description.description  
;   Identifier to the dataset list used in the I/H modeling.
    This data item is a pointer to the _ihm_dataset_list.id in the
    IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_dataset_external_reference.dataset_list_id"
   _item.category_id     ihm_dataset_external_reference
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_dataset_external_reference.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_dataset_external_reference.file_id
   _item_description.description  
;   The file id corresponding to this external data file.
    This data item is a pointer to _ihm_external_files.id
    in the IHM_EXTERNAL_FILES category.
;

   #
   _item.name            "_ihm_dataset_external_reference.file_id"
   _item.category_id     ihm_dataset_external_reference
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_dataset_external_reference.file_id"
   _item_linked.parent_name  "_ihm_external_files.id"
   #
save_
#
save_ihm_localization_density_files
   _category.description     
;              Data items in the IHM_LOCALIZATION_DENSITY_FILES category records the
               details of files that provide information regarding localization densities
               of ensembles. These may be stored externally as local files or linked via 
               DOI and can be in any accepted format that provides volume information 
               (CCP4, MRC, etc.).
;

   _category.id              ihm_localization_density_files
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_localization_density_files.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    loop_
    _ihm_localization_density_files.id
    _ihm_localization_density_files.file_id
    _ihm_localization_density_files.ensemble_id
    _ihm_localization_density_files.entity_id
    _ihm_localization_density_files.asym_id
    _ihm_localization_density_files.entity_poly_segment_id
    1 12 1 1 A 1 
    2 13 1 2 B 2 
    3 14 1 3 C 3 
    # ...abbreviated...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_localization_density_files
   #
save_
#
save__ihm_localization_density_files.id
   _item_description.description  "     A unique identifier."
   #
   _item.name            "_ihm_localization_density_files.id"
   _item.category_id     ihm_localization_density_files
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_localization_density_files.file_id
   _item_description.description  
;    The file id for the externally stored localization density file.
     This data item is a pointer to _ihm_external_files.id
     in the IHM_EXTERNAL_FILES category.
;

   #
   _item.name            "_ihm_localization_density_files.file_id"
   _item.category_id     ihm_localization_density_files
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_localization_density_files.file_id"
   _item_linked.parent_name  "_ihm_external_files.id"
   #
save_
#
save__ihm_localization_density_files.ensemble_id
   _item_description.description  
;    The ensemble identifier for the ensemble, for which the localization density is provided. 
     This data item is a pointer to _ihm_ensemble_info.ensemble_id in the IHM_ENSEMBLE_INFO category.
;

   #
   _item.name            "_ihm_localization_density_files.ensemble_id"
   _item.category_id     ihm_localization_density_files
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_localization_density_files.ensemble_id"
   _item_linked.parent_name  "_ihm_ensemble_info.ensemble_id"
   #
save_
#
save__ihm_localization_density_files.entity_id
   _item_description.description  
;     The entity identifier corresponding to this localization density.
      This data item is a pointer to _entity.id in the ENTITY category.
;

   #
   _item.name            "_ihm_localization_density_files.entity_id"
   _item.category_id     ihm_localization_density_files
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_localization_density_files.entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_localization_density_files.entity_poly_segment_id
   _item_description.description  
;     The identifier for the polymeric segment corresponding to this
      localization density.
      This data item is a pointer to _ihm_entity_poly_segment.id in the
      IHM_ENTITY_POLY_SEGMENT category.
;

   #
   _item.name            "_ihm_localization_density_files.entity_poly_segment_id"
   _item.category_id     ihm_localization_density_files
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_localization_density_files.entity_poly_segment_id"
   _item_linked.parent_name  "_ihm_entity_poly_segment.id"
   #
save_
#
save__ihm_localization_density_files.asym_id
   _item_description.description  
;     An asym/strand identifier corresponding to this localization density.
      This data item is a pointer to _struct_asym.id in the STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_localization_density_files.asym_id"
   _item.category_id     ihm_localization_density_files
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_localization_density_files.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save_ihm_predicted_contact_restraint
   _category.description     
;              Data items in the IHM_PREDICTED_CONTACT_RESTRAINT category records the
               list of predicted contacts used in the integrative modeling experiment. 
               This has been adapted from the widely used CASP RR format 
               (http://www.predictioncenter.org/casp8/index.cgi?page=format#RR). 
               These contacts may be derived from various computational tools. 
               The software information can be provided in the SOFTWARE category.
;

   _category.id              ihm_predicted_contact_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_predicted_contact_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_predicted_contact_restraint.id
        _ihm_predicted_contact_restraint.entity_id_1
        _ihm_predicted_contact_restraint.asym_id_1
        _ihm_predicted_contact_restraint.seq_id_1
        _ihm_predicted_contact_restraint.comp_id_1
        _ihm_predicted_contact_restraint.rep_atom_1
        _ihm_predicted_contact_restraint.entity_id_2
        _ihm_predicted_contact_restraint.asym_id_2
        _ihm_predicted_contact_restraint.seq_id_2
        _ihm_predicted_contact_restraint.comp_id_2
        _ihm_predicted_contact_restraint.rep_atom_2
        _ihm_predicted_contact_restraint.restraint_type
        _ihm_predicted_contact_restraint.distance_upper_limit
        _ihm_predicted_contact_restraint.probability
        _ihm_predicted_contact_restraint.model_granularity
        _ihm_predicted_contact_restraint.dataset_list_id
        _ihm_predicted_contact_restraint.software_id
          1  3  C   17  LYS  CB  3  C  421  GLU  CB  'upper bound'  8.0  0.8  'by-atom'  1  1
          2  3  C  206  LYS  CB  3  C  219  ASP  CB  'upper bound'  8.0  0.5  'by-atom'  1  1
          3  3  C   38  LYS  CB  3  C  429  GLU  CB  'upper bound'  8.0  0.8  'by-atom'  1  1
          4  3  C  400  LYS  CB  3  C  440  GLU  CB  'upper bound'  8.0  0.6  'by-atom'  1  1
          5  3  C  400  LYS  CB  3  C  441  GLU  CB  'upper bound'  8.0  0.7  'by-atom'  1  1
          6  3  C  400  LYS  CB  3  C  523  ASP  CB  'upper bound'  8.0  0.7  'by-atom'  1  1
          7  3  C  735  LYS  CB  3  C  403  ASP  CB  'upper bound'  8.0  0.5  'by-atom'  1  1
          8  3  C  735  LYS  CB  3  C  405  GLU  CB  'upper bound'  8.0  0.5  'by-atom'  1  1
          9  3  C  865  LYS  CB  3  C  894  GLU  CB  'upper bound'  8.0  0.9  'by-atom'  1  1
         10  3  C  865  LYS  CB  3  C  898  ASP  CB  'upper bound'  8.0  0.5  'by-atom'  1  1
         11  4  D  103  LYS  CB  4  D  130  ASP  CB  'upper bound'  8.0  0.7  'by-atom'  1  1
         12  4  D  103  LYS  CB  4  D  131  GLU  CB  'upper bound'  8.0  0.3  'by-atom'  1  1
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_predicted_contact_restraint
   #
save_
#
save__ihm_predicted_contact_restraint.id
   _item_description.description  "     A unique identifier for the predicted contact restraint."
   #
   _item.name            "_ihm_predicted_contact_restraint.id"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_predicted_contact_restraint.group_id
   _item_description.description  "     An identifier to group the predicted contacts."
   #
   _item.name            "_ihm_predicted_contact_restraint.group_id"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_predicted_contact_restraint.entity_description_1
   _item_description.description  
;     A text description of molecular entity 1. 
;

   #
   _item.name            "_ihm_predicted_contact_restraint.entity_description_1"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_predicted_contact_restraint.entity_description_2
   _item_description.description  
;     A text description of molecular entity 2. 
;

   #
   _item.name            "_ihm_predicted_contact_restraint.entity_description_2"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_predicted_contact_restraint.entity_id_1
   _item_description.description  
;     The entity identifier for the first monomer partner in the predicted contact. 
      This data item is a pointer to _entity_poly_seq.entity_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.entity_id_1"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_1
   #
   _item_linked.child_name   "_ihm_predicted_contact_restraint.entity_id_1"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_predicted_contact_restraint.entity_id_2
   _item_description.description  
;     The entity identifier for the second monomer partner in the predicted contact. 
      This data item is a pointer to _entity_poly_seq.entity_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.entity_id_2"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_2
   #
   _item_linked.child_name   "_ihm_predicted_contact_restraint.entity_id_2"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_predicted_contact_restraint.asym_id_1
   _item_description.description  
;              An asym/strand identifier for the first monomer partner in the predicted contact.
               This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.asym_id_1"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_predicted_contact_restraint.asym_id_1"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_predicted_contact_restraint.asym_id_2
   _item_description.description  
;          An asym/strand identifier for the second monomer partner in the predicted contact.
           This data item is a pointer to _struct_asym.id in the
           STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.asym_id_2"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_predicted_contact_restraint.asym_id_2"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_predicted_contact_restraint.comp_id_1
   _item_description.description  
;     The component identifier for the first monomer partner in the predicted contact.
      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.comp_id_1"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_1
   #
   _item_linked.child_name   "_ihm_predicted_contact_restraint.comp_id_1"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_predicted_contact_restraint.comp_id_2
   _item_description.description  
;     The component identifier for the second monomer partner in the predicted contact. 
      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.comp_id_2"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_2
   #
   _item_linked.child_name   "_ihm_predicted_contact_restraint.comp_id_2"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_predicted_contact_restraint.seq_id_1
   _item_description.description  
;     The sequence index for the first monomer partner in the predicted contact.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.seq_id_1"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_1
   #
   _item_linked.child_name   "_ihm_predicted_contact_restraint.seq_id_1"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_predicted_contact_restraint.seq_id_2
   _item_description.description  
;     The sequence index for the second monomer partner in the predicted contact.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.seq_id_2"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_2
   #
   _item_linked.child_name   "_ihm_predicted_contact_restraint.seq_id_2"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_predicted_contact_restraint.rep_atom_1
   _item_description.description  
;     If _ihm_predicted_contact_restraint.model_granularity is by-residue, then indicate the atom 
      used to represent the first monomer partner in three-dimension. Default is the C-alpha atom.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.rep_atom_1"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_default.value  CA
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     CA  "C-alpha for all residues"  
     CB  "C-beta for all residues except Glycine; Default value of C-alpha for Glycine"  
   #
save_
#
save__ihm_predicted_contact_restraint.rep_atom_2
   _item_description.description  
;     If _ihm_predicted_contact_restraint.model_granularity is by-residue, then indicate the atom 
      used to represent the second monomer partner in three-dimension. Default is the C-alpha atom.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.rep_atom_2"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_default.value  CA
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     CA  "C-alpha for all residues"  
     CB  "C-beta for all residues except Glycine; Default value of C-alpha for Glycine"  
   #
save_
#
save__ihm_predicted_contact_restraint.distance_lower_limit
   _item_description.description  
;     The lower limit to the distance threshold applied to this predicted contact restraint
      in the integrative modeling task.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.distance_lower_limit"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_predicted_contact_restraint.distance_upper_limit
   _item_description.description  
;     The upper limit to the distance threshold applied to this predicted contact restraint
      in the integrative modeling task.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.distance_upper_limit"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_predicted_contact_restraint.probability
   _item_description.description  
;      The real number that indicates the probability that the predicted distance restraint 
       is correct. This number should fall between 0.0 and 1.0.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.probability"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   loop_
   _item_range.minimum
   _item_range.maximum
     0.0  0.0  
     0.0  1.0  
     1.0  1.0  
   #
save_
#
save__ihm_predicted_contact_restraint.restraint_type
   _item_description.description  "     The type of distance restraint applied."
   #
   _item.name            "_ihm_predicted_contact_restraint.restraint_type"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     "lower bound"  
     "upper bound"  
     "lower and upper bound"  
   #
save_
#
save__ihm_predicted_contact_restraint.model_granularity
   _item_description.description  "     The granularity of the predicted contact as applied to the multi-scale model."
   #
   _item.name            "_ihm_predicted_contact_restraint.model_granularity"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     by-residue  "Restraint applied to the specific residue represented by the alpha carbon atom"  
     by-feature  "Restraint applied to the closest primitive object with the highest resolution"  
   #
save_
#
save__ihm_predicted_contact_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the predicted contacts dataset.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.dataset_list_id"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_predicted_contact_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_predicted_contact_restraint.software_id
   _item_description.description  
;     Identifier to the software used to obtain the predicted contacts dataset.
      This data item is a pointer to the _software.pdbx_ordinal in the
      SOFTWARE category.
;

   #
   _item.name            "_ihm_predicted_contact_restraint.software_id"
   _item.category_id     ihm_predicted_contact_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_predicted_contact_restraint.software_id"
   _item_linked.parent_name  "_software.pdbx_ordinal"
   #
save_
#
save_ihm_hydroxyl_radical_fp_restraint
   _category.description     
;              Data items in the IHM_HYDROXYL_RADICAL_FP_RESTRAINT category records the
               restraints derived from hydroxyl radical footprinting experiment. 
               These restraints provide information regarding solvent accessible surface
               area of residues.
;

   _category.id              ihm_hydroxyl_radical_fp_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_hydroxyl_radical_fp_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_hydroxyl_radical_fp_restraint.id
        _ihm_hydroxyl_radical_fp_restraint.entity_id
        _ihm_hydroxyl_radical_fp_restraint.asym_id
        _ihm_hydroxyl_radical_fp_restraint.seq_id
        _ihm_hydroxyl_radical_fp_restraint.comp_id
        _ihm_hydroxyl_radical_fp_restraint.fp_rate
        _ihm_hydroxyl_radical_fp_restraint.log_pf
        _ihm_hydroxyl_radical_fp_restraint.predicted_sasa
        _ihm_hydroxyl_radical_fp_restraint.dataset_list_id
        _ihm_hydroxyl_radical_fp_restraint.software_id
          1  3  A  17  LYS  5.63 ? 120.2  1  1
          2  3  A  33  LYS  4.82 ? 118.1  1  1
          3  3  A  38  ILE  0.35 ?  45.6  1  1
          4  3  A  42  TYR  2.13 ?  81.4  1  1
          5  3  A  48  PHE  3.45 ?  95.3  1  1
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_hydroxyl_radical_fp_restraint
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.id
   _item_description.description  "     A unique identifier for the hydroxyl radical footprinting restraint."
   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.id"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.group_id
   _item_description.description  "     An identifier to group the hydroxyl radical footprinting restraints."
   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.group_id"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.entity_description
   _item_description.description  
;     A text description of the molecular entity. 
;

   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.entity_description"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.entity_id
   _item_description.description  
;     The entity identifier. 
      This data item is a pointer to _entity_poly_seq.entity_id in the 
      ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.entity_id"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_hydroxyl_radical_fp_restraint.entity_id"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.asym_id
   _item_description.description  
;              An asym/strand identifier. 
               This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.asym_id"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_hydroxyl_radical_fp_restraint.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.comp_id
   _item_description.description  
;     The component identifier for the residue.
      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.comp_id"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_hydroxyl_radical_fp_restraint.comp_id"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.seq_id
   _item_description.description  
;     The sequence index for the residue. 
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.seq_id"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_hydroxyl_radical_fp_restraint.seq_id"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.fp_rate
   _item_description.description  "     The footprinting rate."
   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.fp_rate"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  reciprocal_seconds
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.fp_rate_error
   _item_description.description  "     The footprinting rate error."
   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.fp_rate_error"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  reciprocal_seconds
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.log_pf
   _item_description.description  "      Log (base 10) protection factor."
   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.log_pf"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.log_pf_error
   _item_description.description  "      Error of Log (base 10) protection factor."
   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.log_pf_error"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.predicted_sasa
   _item_description.description  "     The predicted solvent accessible surface area."
   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.predicted_sasa"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms_squared
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the hydroxyl radical footprinting dataset. 
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.dataset_list_id"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_hydroxyl_radical_fp_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_hydroxyl_radical_fp_restraint.software_id
   _item_description.description  
;     Identifier to the software used to obtain the restraint.
      This data item is a pointer to the _software.pdbx_ordinal in the
      SOFTWARE category.
;

   #
   _item.name            "_ihm_hydroxyl_radical_fp_restraint.software_id"
   _item.category_id     ihm_hydroxyl_radical_fp_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_hydroxyl_radical_fp_restraint.software_id"
   _item_linked.parent_name  "_software.pdbx_ordinal"
   #
save_
#
save_ihm_chemical_component_descriptor
   _category.description     
;              Data items in the IHM_CHEMICAL_COMPONENT_DESCRIPTOR category records the
               details of the chemical descriptors of various non-polymeric
               chemical components (fluorescent probes, crosslinking agents etc.)
               used in the experiments.
;

   _category.id              ihm_chemical_component_descriptor
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_chemical_component_descriptor.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_chemical_component_descriptor.id
        _ihm_chemical_component_descriptor.chemical_name
        _ihm_chemical_component_descriptor.auth_name
        _ihm_chemical_component_descriptor.smiles
        _ihm_chemical_component_descriptor.inchi
        _ihm_chemical_component_descriptor.inchi_key
        1 "1-ethyl-3-(3-dimethylaminopropyl)carbodiimide hydrochloride" "EDC" "CCN=C=NCCCN(C)C"
          "1S/C8H17N3/c1-4-9-8-10-6-5-7-11(2)3/h4-7H2,1-3H3" "LMDZBCPBFSXMTL-UHFFFAOYSA-N"
        2 "disuccinimidyl suberate" "DSS" "C1CC(=O)N(C1=O)OC(=O)CCCCCCC(=O)ON2C(=O)CCC2=O"
          "1S/C16H20N2O8/c19-11-7-8-12(20)17(11)25-15(23)5-3-1-2-4-6-16(24)26-18-13(21)9-10-14(18)22/h1-10H2"
          "ZWIBGKZDAWNIFC-UHFFFAOYSA-N"
        # ... abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_chemical_component_descriptor
   #
save_
#
save__ihm_chemical_component_descriptor.id
   _item_description.description  "     An identifier for the chemical descriptor."
   #
   _item.name            "_ihm_chemical_component_descriptor.id"
   _item.category_id     ihm_chemical_component_descriptor
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_chemical_component_descriptor.chemical_name
   _item_description.description  "     The chemical name of the component."
   #
   _item.name            "_ihm_chemical_component_descriptor.chemical_name"
   _item.category_id     ihm_chemical_component_descriptor
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_chemical_component_descriptor.common_name
   _item_description.description  "     The common name of the component."
   #
   _item.name            "_ihm_chemical_component_descriptor.common_name"
   _item.category_id     ihm_chemical_component_descriptor
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_chemical_component_descriptor.auth_name
   _item_description.description  "     The author-provided name of the component."
   #
   _item.name            "_ihm_chemical_component_descriptor.auth_name"
   _item.category_id     ihm_chemical_component_descriptor
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
save_
#
save__ihm_chemical_component_descriptor.smiles
   _item_description.description  "     The smile string of the component."
   #
   _item.name            "_ihm_chemical_component_descriptor.smiles"
   _item.category_id     ihm_chemical_component_descriptor
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_chemical_component_descriptor.smiles_canonical
   _item_description.description  "     The canonical smile string of the component."
   #
   _item.name            "_ihm_chemical_component_descriptor.smiles_canonical"
   _item.category_id     ihm_chemical_component_descriptor
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_chemical_component_descriptor.inchi
   _item_description.description  "     The IUPAC INCHI descriptor of the component."
   #
   _item.name            "_ihm_chemical_component_descriptor.inchi"
   _item.category_id     ihm_chemical_component_descriptor
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_chemical_component_descriptor.inchi_key
   _item_description.description  "     The hashed INCHI key of the component."
   #
   _item.name            "_ihm_chemical_component_descriptor.inchi_key"
   _item.category_id     ihm_chemical_component_descriptor
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_chemical_component_descriptor.details
   _item_description.description  "     Additional details regarding the chemical component."
   #
   _item.name            "_ihm_chemical_component_descriptor.details"
   _item.category_id     ihm_chemical_component_descriptor
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_probe_list
   _category.description     
;              Data items in the IHM_PROBE_LIST category records the
               list of probes used in the experiment.
;

   _category.id              ihm_probe_list
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_probe_list.probe_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_probe_list.probe_id
        _ihm_probe_list.probe_name
        _ihm_probe_list.probe_origin
        _ihm_probe_list.probe_link_type
        _ihm_probe_list.probe_chem_comp_descriptor_id
        _ihm_probe_list.reactive_probe_flag
        _ihm_probe_list.reactive_probe_name
        _ihm_probe_list.reactive_probe_chem_comp_descriptor_id
        1 MTSL extrinsic covalent 1 ? ? ?
        
        # ... abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_probe_list
   #
save_
#
save__ihm_probe_list.probe_id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_probe_list.probe_id"
   _item.category_id     ihm_probe_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_probe_list.probe_name
   _item_description.description  "     Author provided name for the probe."
   #
   _item.name            "_ihm_probe_list.probe_name"
   _item.category_id     ihm_probe_list
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
save_
#
save__ihm_probe_list.reactive_probe_flag
   _item_description.description  "     Indicate whether the probe has a reactive form."
   #
   _item.name            "_ihm_probe_list.reactive_probe_flag"
   _item.category_id     ihm_probe_list
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
     yes  
     no   
   #
save_
#
save__ihm_probe_list.reactive_probe_name
   _item_description.description  "     Author provided name for the reactive_probe, if applicable."
   #
   _item.name            "_ihm_probe_list.reactive_probe_name"
   _item.category_id     ihm_probe_list
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_probe_list.probe_origin
   _item_description.description  "     The origin of the probe."
   #
   _item.name            "_ihm_probe_list.probe_origin"
   _item.category_id     ihm_probe_list
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     intrinsic  "a probe which is an instrinsic part of the biomolecule; eg: Tryptophan or Flavins or metals in EPR"  
     extrinsic  "a probe that has been synthetically introduced for carrying out the experiment; eg: organic probe Alexa 488 or MANT-ATP"  
   #
save_
#
save__ihm_probe_list.probe_link_type
   _item_description.description  "     The type of link between the probe and the biomolecule."
   #
   _item.name            "_ihm_probe_list.probe_link_type"
   _item.category_id     ihm_probe_list
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     covalent  "a probe which is covalently linked to a particular residue in the polymeric marcomolecule; eg: Tryptophan in proteins or Alexa 488"  
     ligand    "a ligand probe that is not covalently linked to the macromolecule; eg: Flavins, MANT-ATP"  
   #
save_
#
save__ihm_probe_list.probe_chem_comp_descriptor_id
   _item_description.description  
;     The identifier for the chemical descriptor of the probe.
      This data item is a pointer to _ihm_chemical_component_descriptor.id in the 
      IHM_CHEMICAL_COMPONENT_DESCRIPTOR category.
;

   #
   _item.name            "_ihm_probe_list.probe_chem_comp_descriptor_id"
   _item.category_id     ihm_probe_list
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_probe_list.probe_chem_comp_descriptor_id"
   _item_linked.parent_name  "_ihm_chemical_component_descriptor.id"
   #
save_
#
save__ihm_probe_list.reactive_probe_chem_comp_descriptor_id
   _item_description.description  
;     The identifier for the chemical descriptor of the reactive probe.
      This data item is a pointer to _ihm_chemical_component_descriptor.id in the 
      IHM_CHEMICAL_COMPONENT_DESCRIPTOR category.
;

   #
   _item.name            "_ihm_probe_list.reactive_probe_chem_comp_descriptor_id"
   _item.category_id     ihm_probe_list
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_probe_list.reactive_probe_chem_comp_descriptor_id"
   _item_linked.parent_name  "_ihm_chemical_component_descriptor.id"
   #
save_
#
save_ihm_poly_probe_position
   _category.description     
;              Data items in the IHM_POLY_PROBE_POSITION category identifies
               specific residue positions in the polymeric entity where probes
               are covalently attached.
;

   _category.id              ihm_poly_probe_position
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_poly_probe_position.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_poly_probe_position.id
        _ihm_poly_probe_position.entity_id
        _ihm_poly_probe_position.entity_description
        _ihm_poly_probe_position.comp_id
        _ihm_poly_probe_position.seq_id
        _ihm_poly_probe_position.mutation_flag
        _ihm_poly_probe_position.modification_flag
        _ihm_poly_probe_position.mut_res_chem_comp_id
        _ihm_poly_probe_position.mod_res_chem_comp_descriptor_id
        _ihm_poly_probe_position.description
        1 1 ? LYS 340 yes no CYS ? ? 
        2 1 ? VAL 354 yes no CYS ? ? 
        3 1 ? LEU 372 yes no CYS ? ?

        # ... abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_poly_probe_position
   #
save_
#
save__ihm_poly_probe_position.id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_poly_probe_position.id"
   _item.category_id     ihm_poly_probe_position
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_poly_probe_position.entity_id
   _item_description.description  
;     A unique identifier for the entity where the probe is attached.
      This data item is a pointer to _entity_poly_seq.entity_id
      in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_probe_position.entity_id"
   _item.category_id     ihm_poly_probe_position
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_poly_probe_position.entity_id"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_poly_probe_position.entity_description
   _item_description.description  "     Description of the entity."
   #
   _item.name            "_ihm_poly_probe_position.entity_description"
   _item.category_id     ihm_poly_probe_position
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_poly_probe_position.seq_id
   _item_description.description  
;     The sequence index of the residue in the entity where the probe is attached.
      This data item is a pointer to _entity_poly_seq.num
      in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_probe_position.seq_id"
   _item.category_id     ihm_poly_probe_position
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_poly_probe_position.seq_id"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_poly_probe_position.comp_id
   _item_description.description  
;     The component identifier of the residue in the entity where the probe is attached.
      This data item is a pointer to _entity_poly_seq.mon_id
      in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_probe_position.comp_id"
   _item.category_id     ihm_poly_probe_position
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_poly_probe_position.comp_id"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_poly_probe_position.mutation_flag
   _item_description.description  "    A flag to indicate whether the residue has an engineered mutation or not."
   #
   _item.name            "_ihm_poly_probe_position.mutation_flag"
   _item.category_id     ihm_poly_probe_position
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
     yes  
     no   
   #
save_
#
save__ihm_poly_probe_position.mut_res_chem_comp_id
   _item_description.description  
;     The chemical component identifier of the mutated residue, if applicable. 
      This data item is a pointer to _chem_comp.id in the CHEM_COMP category.
;

   #
   _item.name            "_ihm_poly_probe_position.mut_res_chem_comp_id"
   _item.category_id     ihm_poly_probe_position
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   _item_linked.child_name   "_ihm_poly_probe_position.mut_res_chem_comp_id"
   _item_linked.parent_name  "_chem_comp.id"
   #
   loop_
   _item_examples.case
     CYS  
     TRP  
   #
save_
#
save__ihm_poly_probe_position.modification_flag
   _item_description.description  "    A flag to indicate whether the residue is chemically modified or not."
   #
   _item.name            "_ihm_poly_probe_position.modification_flag"
   _item.category_id     ihm_poly_probe_position
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
     yes  
     no   
   #
save_
#
save__ihm_poly_probe_position.mod_res_chem_comp_descriptor_id
   _item_description.description  
;     An identifier to the chemical descriptor of the modified residue, if applicable.
      This data item is a pointer to _ihm_chemical_component_descriptor.id in the 
      IHM_CHEMICAL_COMPONENT_DESCRIPTOR category.
;

   #
   _item.name            "_ihm_poly_probe_position.mod_res_chem_comp_descriptor_id"
   _item.category_id     ihm_poly_probe_position
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_poly_probe_position.mod_res_chem_comp_descriptor_id"
   _item_linked.parent_name  "_ihm_chemical_component_descriptor.id"
   #
save_
#
save__ihm_poly_probe_position.description
   _item_description.description  "    An author provided description for the residue position in the polymer."
   #
   _item.name            "_ihm_poly_probe_position.description"
   _item.category_id     ihm_poly_probe_position
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save_ihm_poly_probe_conjugate
   _category.description     
;              Data items in the IHM_POLY_PROBE_CONJUGATE category records the
               details of the probes that are covalenty attached to residues in the 
               polymeric entities.
;

   _category.id              ihm_poly_probe_conjugate
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_poly_probe_conjugate.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_poly_probe_conjugate.id
        _ihm_poly_probe_conjugate.probe_id
        _ihm_poly_probe_conjugate.position_id
        _ihm_poly_probe_conjugate.chem_comp_descriptor_id
        _ihm_poly_probe_conjugate.ambiguous_stoichiometry_flag
        _ihm_poly_probe_conjugate.probe_stoichiometry
        _ihm_poly_probe_conjugate.details
        _ihm_poly_probe_conjugate.dataset_list_id
        1 1 1 ? ? ? ? 2
        2 1 2 ? ? ? ? 2
        3 1 3 ? ? ? ? 2
        # ... abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_poly_probe_conjugate
   #
save_
#
save__ihm_poly_probe_conjugate.id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_poly_probe_conjugate.id"
   _item.category_id     ihm_poly_probe_conjugate
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_poly_probe_conjugate.probe_id
   _item_description.description  
;     An identifier for the probe.
      This data item is a pointer to _ihm_probe_list.probe_id in the 
      IHM_PROBE_LIST category.
;

   #
   _item.name            "_ihm_poly_probe_conjugate.probe_id"
   _item.category_id     ihm_poly_probe_conjugate
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_poly_probe_conjugate.probe_id"
   _item_linked.parent_name  "_ihm_probe_list.probe_id"
   #
save_
#
save__ihm_poly_probe_conjugate.position_id
   _item_description.description  
;     An identifier for the position in the polymeric entity where the probe
      is attached.
      This data item is a pointer to _ihm_poly_probe_position.id in the 
      IHM_POLY_PROBE_POSITION category.
;

   #
   _item.name            "_ihm_poly_probe_conjugate.position_id"
   _item.category_id     ihm_poly_probe_conjugate
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_poly_probe_conjugate.position_id"
   _item_linked.parent_name  "_ihm_poly_probe_position.id"
   #
save_
#
save__ihm_poly_probe_conjugate.chem_comp_descriptor_id
   _item_description.description  
;     The chemical descriptor of the polymeric residue conjugate with the probe.
      This data item is a pointer to _ihm_chemical_component_descriptor.id in the
      IHM_CHEMICAL_COMPONENT_DESCRIPTOR category.
;

   #
   _item.name            "_ihm_poly_probe_conjugate.chem_comp_descriptor_id"
   _item.category_id     ihm_poly_probe_conjugate
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_poly_probe_conjugate.chem_comp_descriptor_id"
   _item_linked.parent_name  "_ihm_chemical_component_descriptor.id"
   #
save_
#
save__ihm_poly_probe_conjugate.ambiguous_stoichiometry_flag
   _item_description.description  "    Indicate whether there is ambiguity regarding the stoichiometry of the labeled site."
   #
   _item.name            "_ihm_poly_probe_conjugate.ambiguous_stoichiometry_flag"
   _item.category_id     ihm_poly_probe_conjugate
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
     yes  
     no   
   #
save_
#
save__ihm_poly_probe_conjugate.probe_stoichiometry
   _item_description.description  "    The stoichiometry of the probe labeling site, if known."
   #
   _item.name            "_ihm_poly_probe_conjugate.probe_stoichiometry"
   _item.category_id     ihm_poly_probe_conjugate
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_poly_probe_conjugate.details
   _item_description.description  "    Additional details regarding the conjugate."
   #
   _item.name            "_ihm_poly_probe_conjugate.details"
   _item.category_id     ihm_poly_probe_conjugate
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_poly_probe_conjugate.dataset_list_id
   _item_description.description  
;     An identifier for the experimental dataset corresponding to the 
      polymer-probe conjugate.
      This data item is a pointer to _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_poly_probe_conjugate.dataset_list_id"
   _item.category_id     ihm_poly_probe_conjugate
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_poly_probe_conjugate.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save_ihm_ligand_probe
   _category.description     
;              Data items in the IHM_LIGAND_PROBE category identifies
               non-polymeric entities (ligands) that are used as probes.
;

   _category.id              ihm_ligand_probe
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_ligand_probe.probe_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_ligand_probe.probe_id
        _ihm_ligand_probe.entity_id
        _ihm_ligand_probe.dataset_list_id
        _ihm_ligand_probe.details
        1 3 1 ?
        2 4 1 ?
        # ... abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_ligand_probe
   #
save_
#
save__ihm_ligand_probe.probe_id
   _item_description.description  
;     An identifier for the probe.
      This data item is a pointer to _ihm_probe_list.probe_id
      in the IHM_PROBE_LIST category.
;

   #
   _item.name            "_ihm_ligand_probe.probe_id"
   _item.category_id     ihm_ligand_probe
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ligand_probe.probe_id"
   _item_linked.parent_name  "_ihm_probe_list.probe_id"
   #
save_
#
save__ihm_ligand_probe.entity_id
   _item_description.description  
;     The entity id of the ligand.
      This data item is a pointer to _entity.id in the ENTITY category.
;

   #
   _item.name            "_ihm_ligand_probe.entity_id"
   _item.category_id     ihm_ligand_probe
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_ligand_probe.entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_ligand_probe.details
   _item_description.description  "     Additional details regarding the ligand probe."
   #
   _item.name            "_ihm_ligand_probe.details"
   _item.category_id     ihm_ligand_probe
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_ligand_probe.dataset_list_id
   _item_description.description  
;     An identifier for the experimental dataset corresponding 
      to the ligand probe.
      This data item is a pointer to _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_ligand_probe.dataset_list_id"
   _item.category_id     ihm_ligand_probe
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_ligand_probe.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save_ihm_epr_restraint
   _category.description     
;              Data items in the IHM_EPR_RESTRAINT category records the
               details of the EPR data used as restraints in the
               IHM modeling.
;

   _category.id              ihm_epr_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_epr_restraint.ordinal_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    _ihm_epr_restraint.ordinal_id                      1
    _ihm_epr_restraint.dataset_list_id                 8
    _ihm_epr_restraint.model_id                        1
    _ihm_epr_restraint.fitting_particle_type           'Unpaired electron of the label'
    _ihm_epr_restraint.fitting_method                  'Spin label rotamer refinement using DEER/PELDOR data'
    _ihm_epr_restraint.fitting_method_citation_id      3
    _ihm_epr_restraint.fitting_state                   'Single'
    _ihm_epr_restraint.fitting_software_id             1
    _ihm_epr_restraint.chi_value                       0.06
    _ihm_epr_restraint.details                         .
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_epr_restraint
   #
save_
#
save__ihm_epr_restraint.ordinal_id
   _item_description.description  "     A unique identifier for the EPR restraint description."
   #
   _item.name            "_ihm_epr_restraint.ordinal_id"
   _item.category_id     ihm_epr_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_epr_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the EPR data used.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_epr_restraint.dataset_list_id"
   _item.category_id     ihm_epr_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_epr_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_epr_restraint.model_id
   _item_description.description  
;     The model number corresponding to the EPR fitting result presented.
      This data item is a pointer to _ihm_model_list.model_id in the
      IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_epr_restraint.model_id"
   _item.category_id     ihm_epr_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_epr_restraint.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save__ihm_epr_restraint.fitting_particle_type
   _item_description.description  "    The type of particle fit to the EPR data."
   #
   _item.name            "_ihm_epr_restraint.fitting_particle_type"
   _item.category_id     ihm_epr_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   _item_examples.case  "Unpaired electrons of the probe"
   #
save_
#
save__ihm_epr_restraint.fitting_method
   _item_description.description  "    The method used for fitting the model to the EPR data."
   #
   _item.name            "_ihm_epr_restraint.fitting_method"
   _item.category_id     ihm_epr_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   _item_examples.case  "Spin label rotamer refinement using DEER/PELDOR data"
   #
save_
#
save__ihm_epr_restraint.fitting_method_citation_id
   _item_description.description  
;    Identifier pointing to the citation for the fitting method.
     This data item is a pointer to _citation.id in the
     CITATION category.
;

   #
   _item.name            "_ihm_epr_restraint.fitting_method_citation_id"
   _item.category_id     ihm_epr_restraint
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_epr_restraint.fitting_method_citation_id"
   _item_linked.parent_name  "_citation.id"
   #
save_
#
save__ihm_epr_restraint.fitting_state
   _item_description.description  "    An indicator to single or multiple state fitting."
   #
   _item.name            "_ihm_epr_restraint.fitting_state"
   _item.category_id     ihm_epr_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     Single    "Single-state fitting"  
     Multiple  "Multi-state fitting"  
   #
save_
#
save__ihm_epr_restraint.fitting_software_id
   _item_description.description  
;    Identifier pointing to the software used for fitting. 
     This data item is a pointer to _software.pdbx_ordinal in the
     SOFTWARE category.
;

   #
   _item.name            "_ihm_epr_restraint.fitting_software_id"
   _item.category_id     ihm_epr_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_epr_restraint.fitting_software_id"
   _item_linked.parent_name  "_software.pdbx_ordinal"
   #
save_
#
save__ihm_epr_restraint.chi_value
   _item_description.description  "    The chi value resulting from fitting the model to the EPR data."
   #
   _item.name            "_ihm_epr_restraint.chi_value"
   _item.category_id     ihm_epr_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_epr_restraint.details
   _item_description.description  "    Additional details regarding the EPR restraint used."
   #
   _item.name            "_ihm_epr_restraint.details"
   _item.category_id     ihm_epr_restraint
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_cross_link_list
   _category.description     
;              Data items in the IHM_CROSS_LINK_LIST category records the
               list of spatial restraints derived from chemical crosslinking 
               experiment.
;

   _category.id              ihm_cross_link_list
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_cross_link_list.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_cross_link_list.id
        _ihm_cross_link_list.group_id
        _ihm_cross_link_list.entity_description_1
        _ihm_cross_link_list.entity_id_1
        _ihm_cross_link_list.seq_id_1
        _ihm_cross_link_list.comp_id_1
        _ihm_cross_link_list.entity_description_2
        _ihm_cross_link_list.entity_id_2
        _ihm_cross_link_list.seq_id_2
        _ihm_cross_link_list.comp_id_2
        _ihm_cross_link_list.linker_type
        _ihm_cross_link_list.dataset_list_id
          1    1  Nup120  3    17  LYS  Nup120  3   421  GLU  EDC  1
          2    2  Nup120  3   206  LYS  Nup120  3   219  ASP  EDC  1
          3    3  Nup120  3    38  LYS  Nup120  3   429  GLU  EDC  1
          4    4  Nup120  3   400  LYS  Nup120  3   440  GLU  EDC  1
          5    4  Nup120  3   400  LYS  Nup120  3   441  GLU  EDC  1
          6    5  Nup120  3   400  LYS  Nup120  3   523  ASP  EDC  1
          7    6  Nup120  3   735  LYS  Nup120  3   403  ASP  EDC  1
          8    6  Nup120  3   735  LYS  Nup120  3   405  GLU  EDC  1
          9    7  Nup120  3   865  LYS  Nup120  3   894  GLU  EDC  1
         10    7  Nup120  3   865  LYS  Nup120  3   898  ASP  EDC  1
         11    8  Nup133  4   103  LYS  Nup133  4   130  ASP  EDC  1
         12    8  Nup133  4   103  LYS  Nup133  4   131  GLU  EDC  1
         13    9  Nup120  3    17  LYS  Nup120  3   412  LYS  DSS  2
         14   10  Nup120  3    17  LYS  Nup120  3   735  LYS  DSS  2
         15   11  Nup120  3   206  LYS  Nup120  3   217  LYS  DSS  2
         16   12  Nup120  3   384  LYS  Nup120  3   362  LYS  DSS  2
         17   13  Nup120  3   400  LYS  Nup120  3   530  LYS  DSS  2
         18   14  Nup120  3   400  LYS  Nup120  3   531  LYS  DSS  2
         19   15  Nup120  3   400  LYS  Nup120  3   735  LYS  DSS  2
         20   16  Nup120  3   735  LYS  Nup120  3   412  LYS  DSS  2
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_cross_link_list
   #
save_
#
save__ihm_cross_link_list.id
   _item_description.description  "     A unique identifier for the cross link restraint."
   #
   _item.name            "_ihm_cross_link_list.id"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_cross_link_list.group_id
   _item_description.description  
;     An identifier for a set of ambiguous crosslink restraints. 
      Handles experimental uncertainties in the identities of 
      crosslinked residues.
;

   #
   _item.name            "_ihm_cross_link_list.group_id"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_cross_link_list.entity_description_1
   _item_description.description  
;     A text description of molecular entity 1. 
;

   #
   _item.name            "_ihm_cross_link_list.entity_description_1"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_cross_link_list.entity_description_2
   _item_description.description  
;     A text description of molecular entity 2. 
;

   #
   _item.name            "_ihm_cross_link_list.entity_description_2"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_cross_link_list.entity_id_1
   _item_description.description  
;     The entity identifier for the first monomer partner in the cross link
      This data item is a pointer to _entity_poly_seq.entity_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_cross_link_list.entity_id_1"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_1
   #
   _item_linked.child_name   "_ihm_cross_link_list.entity_id_1"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_cross_link_list.entity_id_2
   _item_description.description  
;     The entity identifier for the second monomer partner in the cross link

      This data item is a pointer to _entity_poly_seq.entity_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_cross_link_list.entity_id_2"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_2
   #
   _item_linked.child_name   "_ihm_cross_link_list.entity_id_2"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_cross_link_list.comp_id_1
   _item_description.description  
;     The component identifier for the first monomer partner in the cross link.

      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_cross_link_list.comp_id_1"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_1
   #
   _item_linked.child_name   "_ihm_cross_link_list.comp_id_1"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_cross_link_list.comp_id_2
   _item_description.description  
;     The component identifier for the second monomer partner in the cross link.

      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_cross_link_list.comp_id_2"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_2
   #
   _item_linked.child_name   "_ihm_cross_link_list.comp_id_2"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_cross_link_list.seq_id_1
   _item_description.description  
;     The sequence index for the first monomer partner in the cross link.

      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_cross_link_list.seq_id_1"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_1
   #
   _item_linked.child_name   "_ihm_cross_link_list.seq_id_1"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_cross_link_list.seq_id_2
   _item_description.description  
;     The sequence index for the second monomer partner in the cross link.

      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_cross_link_list.seq_id_2"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_2
   #
   _item_linked.child_name   "_ihm_cross_link_list.seq_id_2"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_cross_link_list.linker_type
   _item_description.description  "     The type of crosslinker used."
   #
   _item.name            "_ihm_cross_link_list.linker_type"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     EDC              "1-ethyl-(dimethylaminopropyl) carbodiimide hydrochloride (EDC) crosslinker"  
     DSS              "disuccinimidyl suberate (DSS) crosslinker"  
     EGS              "ethylene glycol bis(succinimidyl succinate) crosslinker"  
     BS3              "bis(sulfosuccinimidyl) suberate crosslinker"  
     BS2G             "Bis-(sulfosuccinimidyl) glutarate crosslinker"  
     DST              "disuccinimidyl tartrate crosslinker"  
     sulfo-SDA        "sulfosuccinimidyl 4,4'-azipentanoate, heterobifunctional crosslinker"  
     sulfo-SMCC       "sulfosuccinimidyl 4-(N-maleimidomethyl)cyclohexane-1-carboxylate crosslinker"  
     DSSO             "disuccinimidyl sulfoxide (DSSO) crosslinker"  
     DSG              "disuccinimidyl glutarate crosslinker"  
     BSP              "Bis(succinimidyl) penta(ethylene glycol) crosslinker"  
     BMSO             "bismaleimide sulfoxide crosslinker"  
     DHSO             "dihydrazide sulfoxide crosslinker"  
     CYS              "Cysteine crosslinker"  
     SDA              "succinimidyl 4,4'-azipentanoate"  
     DSA              "DiSuccinimidyl Adipate"  
     BrdU             "5-bromo-2'-deoxyuridine"  
     LCSDA            "succinimidyl 6-(4,4'-azipentanamido)hexanoate"  
     CDI              "1,1'-carbonyldiimidazole"  
     ADH              "(1Z,6Z)-Hexanedihydrazonic acid"  
     L-Photo-Leucine  "L-Photo-Leucine crosslinker"  
     KArGO            "arginine-lysine hetero-bifunctional aromatic glyoxal crosslinker"  
     BrEtY            "O-(2-bromoethyl)-tyrosine (non-canonical amino acid)"  
     DSBU             "Disuccinimidyl dibutyric urea"  
     DSPP             "Disuccinimidyl phenyl phosphonic acid or PhoX"  
     TBDSPP           "tert-butyl disuccinimidyl phenyl phosphonate or tBu-PhoX"  
     DMTMM            "4-(4,6-Dimethoxy-1,3,5-triazin-2-yl)-4-methylmorpholinium chloride crosslinker"  
     PDH              "pimelic acid dihydrazide crosslinker"  
     Other            "Other type of crosslinker"  
   #
save_
#
save__ihm_cross_link_list.linker_chem_comp_descriptor_id
   _item_description.description  
;     Pointer to the chemical description of the linker.
      Data item points to _ihm_chemical_component_descriptor.id in the
      IHM_CHEMICAL_COMPONENT_DESCRIPTOR category.
;

   #
   _item.name            "_ihm_cross_link_list.linker_chem_comp_descriptor_id"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_list.linker_chem_comp_descriptor_id"
   _item_linked.parent_name  "_ihm_chemical_component_descriptor.id"
   #
save_
#
save__ihm_cross_link_list.dataset_list_id
   _item_description.description  
;     Identifier to the crosslinking dataset.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_cross_link_list.dataset_list_id"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_list.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_cross_link_list.details
   _item_description.description  "     Additional details regarding the cross link or the cross linking agent."
   #
   _item.name            "_ihm_cross_link_list.details"
   _item.category_id     ihm_cross_link_list
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_cross_link_restraint
   _category.description     
;              Data items in the IHM_CROSS_LINK_RESTRAINT category enumerates the
               implementation details of the chemical crosslinking restraints in 
               the integrative modeling. This category holds the details of how 
               the experimentally derived crosslinks are applied in the modeling.
;

   _category.id              ihm_cross_link_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_cross_link_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_cross_link_restraint.id
        _ihm_cross_link_restraint.group_id
        _ihm_cross_link_restraint.entity_id_1
        _ihm_cross_link_restraint.asym_id_1
        _ihm_cross_link_restraint.seq_id_1
        _ihm_cross_link_restraint.comp_id_1
        _ihm_cross_link_restraint.entity_id_2
        _ihm_cross_link_restraint.asym_id_2
        _ihm_cross_link_restraint.seq_id_2
        _ihm_cross_link_restraint.comp_id_2
        _ihm_cross_link_restraint.conditional_crosslink_flag
        _ihm_cross_link_restraint.model_granularity
        _ihm_cross_link_restraint.distance_threshold
        _ihm_cross_link_restraint.restraint_type
        _ihm_cross_link_restraint.psi
        _ihm_cross_link_restraint.sigma_1
        _ihm_cross_link_restraint.sigma_2
          1    1  3  C    17  LYS  3  C   421  GLU  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
          2    2  3  C   206  LYS  3  C   219  ASP  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
          3    3  3  C    38  LYS  3  C   429  GLU  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
          4    4  3  C   400  LYS  3  C   440  GLU  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
          5    5  3  C   400  LYS  3  C   441  GLU  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
          6    6  3  C   400  LYS  3  C   523  ASP  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
          7    7  3  C   735  LYS  3  C   403  ASP  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
          8    8  3  C   735  LYS  3  C   405  GLU  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
          9    9  3  C   865  LYS  3  C   894  GLU  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
         10   10  3  C   865  LYS  3  C   898  ASP  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
         11   11  4  D   103  LYS  4  D   130  ASP  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
         12   12  4  D   103  LYS  4  D   131  GLU  ALL  by-residue  25.0  'upper bound'  0.05  0.01  0.01
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_cross_link_restraint
   #
save_
#
save__ihm_cross_link_restraint.id
   _item_description.description  "     A unique identifier for the cross link record."
   #
   _item.name            "_ihm_cross_link_restraint.id"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_cross_link_restraint.group_id
   _item_description.description  
;     An identifier for a set of ambiguous cross-links.
      Handles implementation uncertainties related to multiple copies of subunit.
      This data item is a pointer to _ihm_cross_link_list.id in the 
      IHM_CROSS_LINK_LIST category.
;

   #
   _item.name            "_ihm_cross_link_restraint.group_id"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.group_id"
   _item_linked.parent_name  "_ihm_cross_link_list.id"
   #
save_
#
save__ihm_cross_link_restraint.entity_id_1
   _item_description.description  
;     The entity identifier for the first monomer partner in the cross link

      This data item is a pointer to _entity_poly_seq.entity_id in the ENTITY_POLY_SEQ category 
      and the _ihm_cross_link_restraint.entity_id_1 in the IHM_CROSS_LINK_RESTRAINT category.
;

   #
   _item.name            "_ihm_cross_link_restraint.entity_id_1"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_1
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.entity_id_1"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_cross_link_restraint.entity_id_2
   _item_description.description  
;     The entity identifier for the second monomer partner in the cross link

      This data item is a pointer to _entity_poly_seq.entity_id in the ENTITY_POLY_SEQ category
      and the _ihm_cross_link_restraint.entity_id_2 in the IHM_CROSS_LINK_RESTRAINT category.
;

   #
   _item.name            "_ihm_cross_link_restraint.entity_id_2"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_2
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.entity_id_2"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_cross_link_restraint.asym_id_1
   _item_description.description  
;              An asym/strand identifier for the first monomer partner in the cross-link.

               This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_cross_link_restraint.asym_id_1"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.asym_id_1"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_cross_link_restraint.asym_id_2
   _item_description.description  
;              An asym/strand identifier for the second monomer partner in the cross-link.

           This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_cross_link_restraint.asym_id_2"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.asym_id_2"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_cross_link_restraint.comp_id_1
   _item_description.description  
;     The component identifier for the first monomer partner in the cross link.

      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category
      and the _ihm_cross_link_restraint.comp_id_1 in the IHM_CROSS_LINK_RESTRAINT category.
;

   #
   _item.name            "_ihm_cross_link_restraint.comp_id_1"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_1
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.comp_id_1"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_cross_link_restraint.comp_id_2
   _item_description.description  
;     The component identifier for the second monomer partner in the cross link.

      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category
      and the _ihm_cross_link_restraint.comp_id_2 in the IHM_CROSS_LINK_RESTRAINT category.
;

   #
   _item.name            "_ihm_cross_link_restraint.comp_id_2"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_2
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.comp_id_2"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_cross_link_restraint.seq_id_1
   _item_description.description  
;     The sequence index for the first monomer partner in the cross link.

      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category
      and the _ihm_cross_link_restraint.seq_id_1 in the IHM_CROSS_LINK_RESTRAINT category.
;

   #
   _item.name            "_ihm_cross_link_restraint.seq_id_1"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_1
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.seq_id_1"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_cross_link_restraint.seq_id_2
   _item_description.description  
;     The sequence index for the second monomer partner in the cross link.

      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category
      and the _ihm_cross_link_restraint.seq_id_2 in the IHM_CROSS_LINK_RESTRAINT category.
;

   #
   _item.name            "_ihm_cross_link_restraint.seq_id_2"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_2
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.seq_id_2"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_cross_link_restraint.atom_id_1
   _item_description.description  
;     The atom identifier for the first monomer partner in the cross link.
      This data item is a pointer to _chem_comp_atom.atom_id in the 
      CHEM_COMP_ATOM category.
;

   #
   _item.name            "_ihm_cross_link_restraint.atom_id_1"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  no
   #
   _item_type.code  atcode
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.atom_id_1"
   _item_linked.parent_name  "_chem_comp_atom.atom_id"
   #
save_
#
save__ihm_cross_link_restraint.atom_id_2
   _item_description.description  
;     The atom identifier for the second monomer partner in the cross link.
      This data item is a pointer to _chem_comp_atom.atom_id in the 
      CHEM_COMP_ATOM category.
;

   #
   _item.name            "_ihm_cross_link_restraint.atom_id_2"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  no
   #
   _item_type.code  atcode
   #
   _item_linked.child_name   "_ihm_cross_link_restraint.atom_id_2"
   _item_linked.parent_name  "_chem_comp_atom.atom_id"
   #
save_
#
save__ihm_cross_link_restraint.restraint_type
   _item_description.description  "     The type of the cross link restraint applied."
   #
   _item.name            "_ihm_cross_link_restraint.restraint_type"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     harmonic       "The restraint is satisfied if the distance between the particles is equal to the equilibrium distance"  
     "upper bound"  "The restraint is satisfied if the distance between the particles is below the distance threshold"  
     "lower bound"  "The restraint is satisfied if the distance between the particles is above the distance threshold"  
   #
save_
#
save__ihm_cross_link_restraint.conditional_crosslink_flag
   _item_description.description  "     The cross link conditionality."
   #
   _item.name            "_ihm_cross_link_restraint.conditional_crosslink_flag"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     ALL  "All crosslinks in the group are restrained"  
     ANY  "Any one of the crosslinks among the multiple instances in the group could be satisfied"  
   #
save_
#
save__ihm_cross_link_restraint.model_granularity
   _item_description.description  "     The coarse-graining information for the crosslink implementation."
   #
   _item.name            "_ihm_cross_link_restraint.model_granularity"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     by-residue  "Crosslink applied to the specific residue represented by the alpha carbon atom"  
     by-feature  "Crosslink applied to the closest primitive object with the highest resolution"  
     by-atom     "Crosslink applied to the specified atoms"  
   #
save_
#
save__ihm_cross_link_restraint.distance_threshold
   _item_description.description  "     The distance threshold applied to this crosslink in the integrative modeling task."
   #
   _item.name            "_ihm_cross_link_restraint.distance_threshold"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_cross_link_restraint.psi
   _item_description.description  
;     The uncertainty in the crosslinking experimental data;
      may be approximated to the false positive rate.
;

   #
   _item.name            "_ihm_cross_link_restraint.psi"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   loop_
   _item_range.minimum
   _item_range.maximum
     0.0  0.0  
     0.0  1.0  
     1.0  1.0  
   #
save_
#
save__ihm_cross_link_restraint.sigma_1
   _item_description.description  
;     The uncertainty in the position of residue 1 in the crosslink
      arising due to the multi-scale nature of the model represention.
;

   #
   _item.name            "_ihm_cross_link_restraint.sigma_1"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_cross_link_restraint.sigma_2
   _item_description.description  
;     The uncertainty in the position of residue 2 in the crosslink
      arising due to the multi-scale nature of the model represention.
;

   #
   _item.name            "_ihm_cross_link_restraint.sigma_2"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_cross_link_restraint.pseudo_site_flag
   _item_description.description  
;     A flag indicating if the cross link involves a pseudo site that is
      not part of the model representation and hence will not be part
      of the model. However, it can be part of the input restraints.
;

   #
   _item.name            "_ihm_cross_link_restraint.pseudo_site_flag"
   _item.category_id     ihm_cross_link_restraint
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     YES  "Cross link involves a pseudo site"  
     NO   "Cross link does not involve a pseudo site"  
   #
save_
#
save_ihm_cross_link_pseudo_site
   _category.description     
;              Data items in the IHM_CROSS_LINK_PSEUDO_SITE category records the
               details of the pseudo sites involved in the cross links.
;

   _category.id              ihm_cross_link_pseudo_site
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_cross_link_pseudo_site.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
	    _ihm_cross_link_pseudo_site.id
        _ihm_cross_link_pseudo_site.restraint_id
	    _ihm_cross_link_pseudo_site.cross_link_partner
        _ihm_cross_link_pseudo_site.pseudo_site_id
        1  1   1  1 
        2  2   1  2  
        3  2   2  3 
        4  3   2  4 
        5  4   1  5 
        6  4   2  6 

    # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_cross_link_pseudo_site
   #
save_
#
save__ihm_cross_link_pseudo_site.id
   _item_description.description  "     A unique identifier for this category."
   #
   _item.name            "_ihm_cross_link_pseudo_site.id"
   _item.category_id     ihm_cross_link_pseudo_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_cross_link_pseudo_site.restraint_id
   _item_description.description  
;     An identifier for the crosslink restraint between a pair of residues.
      This data item is a pointer to _ihm_cross_link_restraint.id in the
      IHM_CROSS_LINK_RESTRAINT category.
;

   #
   _item.name            "_ihm_cross_link_pseudo_site.restraint_id"
   _item.category_id     ihm_cross_link_pseudo_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_pseudo_site.restraint_id"
   _item_linked.parent_name  "_ihm_cross_link_restraint.id"
   #
save_
#
save__ihm_cross_link_pseudo_site.cross_link_partner
   _item_description.description  "     The identity of the cross link partner corresponding to the pseudo site."
   #
   _item.name            "_ihm_cross_link_pseudo_site.cross_link_partner"
   _item.category_id     ihm_cross_link_pseudo_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     1  "The first partner in the cross link as identified in the ihm_cross_link_restraint table"  
     2  "The second partner in the cross link as identified in the ihm_cross_link_restraint table"  
   #
save_
#
save__ihm_cross_link_pseudo_site.pseudo_site_id
   _item_description.description  
;     The pseudo site identifier corresponding to the cross link partner.
      This data item is a pointer to _ihm_pseudo_site.id
      in the IHM_PSEUDO_SITE category.
;

   #
   _item.name            "_ihm_cross_link_pseudo_site.pseudo_site_id"
   _item.category_id     ihm_cross_link_pseudo_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_pseudo_site.pseudo_site_id"
   _item_linked.parent_name  "_ihm_pseudo_site.id"
   #
save_
#
save__ihm_cross_link_pseudo_site.model_id
   _item_description.description  
;     The identifier to the model that the pseudo site corresponds to. 
      This data item is a pointer to _ihm_model_list.model_id
      in the IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_cross_link_pseudo_site.model_id"
   _item.category_id     ihm_cross_link_pseudo_site
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_pseudo_site.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save_ihm_cross_link_result
   _category.description     
;              Data items in the IHM_CROSS_LINK_RESULT category records the
               results of the crosslinking restraints in the IHM modeling.
;

   _category.id              ihm_cross_link_result
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_cross_link_result.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
	    _ihm_cross_link_result.id
        _ihm_cross_link_result.restraint_id
	    _ihm_cross_link_result.ensemble_id
        _ihm_cross_link_result.num_models
        _ihm_cross_link_result.distance_threshold
        _ihm_cross_link_result.median_distance
        _ihm_cross_link_result.details
        
        1  1   1  2885  25.0   9.6   .
        2  2   1  2885  25.0  14.7   .
        3  3   1  2885  25.0  16.4   .
        4  4   1  2885  25.0  15.8   .
        5  5   1  2885  25.0  18.9   .
        6  6   1  2885  25.0  11.6   .

    # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_cross_link_result
   #
save_
#
save__ihm_cross_link_result.id
   _item_description.description  "     A unique identifier for the restraint/ensemble combination."
   #
   _item.name            "_ihm_cross_link_result.id"
   _item.category_id     ihm_cross_link_result
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_cross_link_result.restraint_id
   _item_description.description  
;     An identifier for the crosslink restraint between a pair of residues.
      This data item is a pointer to _ihm_cross_link_restraint.id in the
      IHM_CROSS_LINK_RESTRAINT category.
;

   #
   _item.name            "_ihm_cross_link_result.restraint_id"
   _item.category_id     ihm_cross_link_result
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_result.restraint_id"
   _item_linked.parent_name  "_ihm_cross_link_restraint.id"
   #
save_
#
save__ihm_cross_link_result.ensemble_id
   _item_description.description  
;     An identifier for the ensemble whose results are described.
      This data item is a pointer to _ihm_ensemble_info.ensemble_id in the
      IHM_ENSEMBLE_INFO category.
;

   #
   _item.name            "_ihm_cross_link_result.ensemble_id"
   _item.category_id     ihm_cross_link_result
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_result.ensemble_id"
   _item_linked.parent_name  "_ihm_ensemble_info.ensemble_id"
   #
save_
#
save__ihm_cross_link_result.num_models
   _item_description.description  
;     Number of models sampled in the integrative modeling task, for which
      the crosslinking distance is provided.
;

   #
   _item.name            "_ihm_cross_link_result.num_models"
   _item.category_id     ihm_cross_link_result
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_cross_link_result.model_group_id
   _item_description.description  
;     An identifier for the group of structure models whose results are described.
      This data item is a pointer to _ihm_model_group.id in the
      IHM_MODEL_GROUP category.
;

   #
   _item.name            "_ihm_cross_link_result.model_group_id"
   _item.category_id     ihm_cross_link_result
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_result.model_group_id"
   _item_linked.parent_name  "_ihm_model_group.id"
   #
save_
#
save__ihm_cross_link_result.distance_threshold
   _item_description.description  "     The distance threshold applied to this crosslink in the integrative modeling task."
   #
   _item.name            "_ihm_cross_link_result.distance_threshold"
   _item.category_id     ihm_cross_link_result
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_cross_link_result.median_distance
   _item_description.description  "     The median distance between the crosslinked residues in the sampled models."
   #
   _item.name            "_ihm_cross_link_result.median_distance"
   _item.category_id     ihm_cross_link_result
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_cross_link_result.details
   _item_description.description  
;     This records holds any associated details of the results of the particular 
      crosslink restraint in the integrative modeling task.
;

   #
   _item.name            "_ihm_cross_link_result.details"
   _item.category_id     ihm_cross_link_result
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_cross_link_result_parameters
   _category.description     
;              Data items in the IHM_CROSS_LINK_RESULT_PARAMETERS category records the
               results of the crosslinking restraint parameters in the IHM modeling.
;

   _category.id              ihm_cross_link_result_parameters
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_cross_link_result_parameters.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_cross_link_result_parameters.id
        _ihm_cross_link_result_parameters.restraint_id
        _ihm_cross_link_result_parameters.model_id
        _ihm_cross_link_result_parameters.psi
        _ihm_cross_link_result_parameters.sigma_1
        _ihm_cross_link_result_parameters.sigma_2

        1  1   1  0.05  0.01  0.01 
        2  2   1  0.05  0.01  0.01
        3  3   1  0.05  0.01  0.01
        4  4   2  0.05  0.01  0.01
        5  5   3  0.05  0.01  0.01
        6  6   4  0.05  0.01  0.01
        # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_cross_link_result_parameters
   #
save_
#
save__ihm_cross_link_result_parameters.id
   _item_description.description  "     A unique identifier for the restraint/model combination."
   #
   _item.name            "_ihm_cross_link_result_parameters.id"
   _item.category_id     ihm_cross_link_result_parameters
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_cross_link_result_parameters.restraint_id
   _item_description.description  
;     An identifier for the crosslink restraint between a pair of residues.
      This data item is a pointer to _ihm_cross_link_restraint.id in the
      IHM_CROSS_LINK_RESTRAINT category.
;

   #
   _item.name            "_ihm_cross_link_result_parameters.restraint_id"
   _item.category_id     ihm_cross_link_result_parameters
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_result_parameters.restraint_id"
   _item_linked.parent_name  "_ihm_cross_link_restraint.id"
   #
save_
#
save__ihm_cross_link_result_parameters.model_id
   _item_description.description  
;     The model number corresponding to the cross link result presented.
      This data item is a pointer to _ihm_model_list.model_id in the
      IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_cross_link_result_parameters.model_id"
   _item.category_id     ihm_cross_link_result_parameters
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_cross_link_result_parameters.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save__ihm_cross_link_result_parameters.psi
   _item_description.description  
;     The uncertainty in the crosslinking experimental data;
      May be approximated to the false positive rate.
;

   #
   _item.name            "_ihm_cross_link_result_parameters.psi"
   _item.category_id     ihm_cross_link_result_parameters
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   loop_
   _item_range.minimum
   _item_range.maximum
     0.0  0.0  
     0.0  1.0  
     1.0  1.0  
   #
save_
#
save__ihm_cross_link_result_parameters.sigma_1
   _item_description.description  
;     The uncertainty in the position of residue 1 in the crosslink
      arising due to the multi-scale nature of the model represention.
;

   #
   _item.name            "_ihm_cross_link_result_parameters.sigma_1"
   _item.category_id     ihm_cross_link_result_parameters
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_cross_link_result_parameters.sigma_2
   _item_description.description  
;     The uncertainty in the position of residue 2 in the crosslink
      arising due to the multi-scale nature of the model represention.
;

   #
   _item.name            "_ihm_cross_link_result_parameters.sigma_2"
   _item.category_id     ihm_cross_link_result_parameters
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save_ihm_2dem_class_average_restraint
   _category.description     
;              Data items in the IHM_2DEM_CLASS_AVERAGE_RESTRAINT category records the
               details of the 2DEM class averages used in the IHM modeling.
;

   _category.id              ihm_2dem_class_average_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_2dem_class_average_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    _ihm_2dem_class_average_restraint.id                                1
    _ihm_2dem_class_average_restraint.dataset_list_id                   4
    _ihm_2dem_class_average_restraint.number_raw_micrographs            200
    _ihm_2dem_class_average_restraint.pixel_size_width                  5.91
    _ihm_2dem_class_average_restraint.pixel_size_height                 5.91
    _ihm_2dem_class_average_restraint.image_resolution                  30.0
    _ihm_2dem_class_average_restraint.image_segment_flag                No
    _ihm_2dem_class_average_restraint.number_of_projections             400
    _ihm_2dem_class_average_restraint.struct_assembly_id                1
    _ihm_2dem_class_average_restraint.details                           .
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_2dem_class_average_restraint
   #
save_
#
save__ihm_2dem_class_average_restraint.id
   _item_description.description  "     A unique identifier for the 2dem class average."
   #
   _item.name            "_ihm_2dem_class_average_restraint.id"
   _item.category_id     ihm_2dem_class_average_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_2dem_class_average_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the 2dem class average dataset.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_2dem_class_average_restraint.dataset_list_id"
   _item.category_id     ihm_2dem_class_average_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_2dem_class_average_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_2dem_class_average_restraint.number_raw_micrographs
   _item_description.description  "     The number of raw micrographs used to obtain the class average."
   #
   _item.name            "_ihm_2dem_class_average_restraint.number_raw_micrographs"
   _item.category_id     ihm_2dem_class_average_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_2dem_class_average_restraint.pixel_size_width
   _item_description.description  
;     Pixel size width of the 2dem class average image.
      While fitting the model to the image, _ihm_2dem_class_average_restraint.pixel_size_width
      is used along with _ihm_2dem_class_average_restraint.pixel_size_height to scale the image.
;

   #
   _item.name            "_ihm_2dem_class_average_restraint.pixel_size_width"
   _item.category_id     ihm_2dem_class_average_restraint
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_2dem_class_average_restraint.pixel_size_height
   _item_description.description  
;     Pixel size height of the 2dem class average image.
      While fitting the model to the image, _ihm_2dem_class_average_restraint.pixel_size_height
      is used along with _ihm_2dem_class_average_restraint.pixel_size_width to scale the image.
;

   #
   _item.name            "_ihm_2dem_class_average_restraint.pixel_size_height"
   _item.category_id     ihm_2dem_class_average_restraint
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_2dem_class_average_restraint.image_resolution
   _item_description.description  "     Resolution of the 2dem class average."
   #
   _item.name            "_ihm_2dem_class_average_restraint.image_resolution"
   _item.category_id     ihm_2dem_class_average_restraint
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_2dem_class_average_restraint.image_segment_flag
   _item_description.description  
;     A flag that indicates whether or not the 2DEM class average image is segmented i.e.,
      whether the whole image is used or only a portion of it is used (by masking 
      or by other means) as restraint in the modeling.
;

   #
   _item.name            "_ihm_2dem_class_average_restraint.image_segment_flag"
   _item.category_id     ihm_2dem_class_average_restraint
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     YES  "Image is masked; only a portion of the image is used"  
     NO   "Image is not masked; the entire image is used"  
   #
save_
#
save__ihm_2dem_class_average_restraint.number_of_projections
   _item_description.description  "    Number of 2D projections of the model used in the fitting."
   #
   _item.name            "_ihm_2dem_class_average_restraint.number_of_projections"
   _item.category_id     ihm_2dem_class_average_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_2dem_class_average_restraint.struct_assembly_id
   _item_description.description  
;    An indicator to whether the whole assembly that is modeled is fit into the image 
     or if only a subset of the structural assembly is fit into the image. 
     This data item is a pointer to _ihm_struct_assembly.id in the
     IHM_STRUCT_ASSEMBLY category. The IHM_STRUCT_ASSEMBLY category provides the 
     details regarding the different structural assemblies used in the modeling. 
     The default value for this data item is "1" indicating that the entire assembly 
     being modeled is fit into the EM data.
;

   #
   _item.name            "_ihm_2dem_class_average_restraint.struct_assembly_id"
   _item.category_id     ihm_2dem_class_average_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_2dem_class_average_restraint.struct_assembly_id"
   _item_linked.parent_name  "_ihm_struct_assembly.id"
   #
   _item_default.value  1
   #
save_
#
save__ihm_2dem_class_average_restraint.details
   _item_description.description  "     Details of how the 2DEM restraint is applied in the modeling algorithm."
   #
   _item.name            "_ihm_2dem_class_average_restraint.details"
   _item.category_id     ihm_2dem_class_average_restraint
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
   _item_examples.case  
;   The 2DEM restraint fits a given model to an 2DEM class average and
        computes a score that quantifies the match. The computation proceeds
        in three stages: generation of 3D model projections on a 2D grid, 
        alignment of the model projections and the 2DEM class average image, 
        and calculation of the best fitting score.
;

   #
save_
#
save_ihm_2dem_class_average_fitting
   _category.description     
;              Data items in the IHM_2DEM_CLASS_AVERAGE_FITTING category records the
               details of the fitting of the model to the 2DEM class averages 
               used in the IHM modeling. The following conventions are recommended 
               while generating the rotation matrix and translation vector for
               transformation. 
              
               - The model is rotated and translated to fit to the 2DEM image. 
               - The 2DEM image should be in the XY plane.  
               - The lower left image corner (image pixel index 0,0) should be at x,y,z = (0,0,0).
               - The 2D image is scaled by the _ihm_2dem_class_average_restraint.pixel_size_width 
                 and _ihm_2dem_class_average_restraint.pixel_size_height from the 
                 IHM_2DEM_CLASS_AVERAGE_RESTRAINT table.
               - The transformation is applied after the scaling and hence the translation vector 
                 should account for the scaling.
               - There are no specifications for Z translations i.e., how far the image should be 
                 from the model while projecting. It may be set to zero.
;

   _category.id              ihm_2dem_class_average_fitting
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_2dem_class_average_fitting.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    _ihm_2dem_class_average_fitting.id                              1
    _ihm_2dem_class_average_fitting.restraint_id                    1
    _ihm_2dem_class_average_fitting.model_id                        1
    _ihm_2dem_class_average_fitting.cross_correlation_coefficient   0.9
    _ihm_2dem_class_average_fitting.rot_matrix[1][1]                1.0
    _ihm_2dem_class_average_fitting.rot_matrix[2][1]                0.0
    _ihm_2dem_class_average_fitting.rot_matrix[3][1]                0.0
    _ihm_2dem_class_average_fitting.rot_matrix[1][2]                0.0
    _ihm_2dem_class_average_fitting.rot_matrix[2][2]                1.0
    _ihm_2dem_class_average_fitting.rot_matrix[3][2]                0.0
    _ihm_2dem_class_average_fitting.rot_matrix[1][3]                0.0
    _ihm_2dem_class_average_fitting.rot_matrix[2][3]                0.0
    _ihm_2dem_class_average_fitting.rot_matrix[3][3]                1.0
    _ihm_2dem_class_average_fitting.tr_vector[1]                    0.0
    _ihm_2dem_class_average_fitting.tr_vector[2]                    0.0
    _ihm_2dem_class_average_fitting.tr_vector[3]                    0.0
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_2dem_class_average_fitting
   #
save_
#
save__ihm_2dem_class_average_fitting.id
   _item_description.description  "     A unique identifier for the 2dem class average fitting data."
   #
   _item.name            "_ihm_2dem_class_average_fitting.id"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_2dem_class_average_fitting.restraint_id
   _item_description.description  
;     Identifier to the 2dem class average restraint.
      This data item is a pointer to the _ihm_2dem_class_average_restraint.id in the
      IHM_2DEM_CLASS_AVERAGE_RESTRAINT category.
;

   #
   _item.name            "_ihm_2dem_class_average_fitting.restraint_id"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_2dem_class_average_fitting.restraint_id"
   _item_linked.parent_name  "_ihm_2dem_class_average_restraint.id"
   #
save_
#
save__ihm_2dem_class_average_fitting.model_id
   _item_description.description  
;     The model number corresponding to the 2DEM fitting result presented.
      This data item is a pointer to _ihm_model_list.model_id in the 
      IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_2dem_class_average_fitting.model_id"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_2dem_class_average_fitting.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save__ihm_2dem_class_average_fitting.cross_correlation_coefficient
   _item_description.description  "     The cross correlation coefficient corresponding to the model to image fitting."
   #
   _item.name            "_ihm_2dem_class_average_fitting.cross_correlation_coefficient"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.rot_matrix[1][1]
   _item_description.description  "     Data item [1][1] of the rotation matrix used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.rot_matrix[1][1]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.rot_matrix[2][1]
   _item_description.description  "     Data item [2][1] of the rotation matrix used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.rot_matrix[2][1]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.rot_matrix[3][1]
   _item_description.description  "     Data item [3][1] of the rotation matrix used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.rot_matrix[3][1]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.rot_matrix[1][2]
   _item_description.description  "     Data item [1][2] of the rotation matrix used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.rot_matrix[1][2]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.rot_matrix[2][2]
   _item_description.description  "     Data item [2][2] of the rotation matrix used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.rot_matrix[2][2]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.rot_matrix[3][2]
   _item_description.description  "     Data item [3][2] of the rotation matrix used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.rot_matrix[3][2]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.rot_matrix[1][3]
   _item_description.description  "     Data item [1][3] of the rotation matrix used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.rot_matrix[1][3]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.rot_matrix[2][3]
   _item_description.description  "     Data item [2][3] of the rotation matrix used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.rot_matrix[2][3]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.rot_matrix[3][3]
   _item_description.description  "     Data item [3][3] of the rotation matrix used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.rot_matrix[3][3]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.tr_vector[1]
   _item_description.description  "     Data item [1] of the tranlation vector used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.tr_vector[1]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  vector
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.tr_vector[2]
   _item_description.description  "     Data item [2] of the tranlation vector used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.tr_vector[2]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  vector
   #
   _item_type.code  float
   #
save_
#
save__ihm_2dem_class_average_fitting.tr_vector[3]
   _item_description.description  "     Data item [3] of the tranlation vector used in the fitting of the model to the image."
   #
   _item.name            "_ihm_2dem_class_average_fitting.tr_vector[3]"
   _item.category_id     ihm_2dem_class_average_fitting
   _item.mandatory_code  no
   #
   _item_sub_category.id  vector
   #
   _item_type.code  float
   #
save_
#
save_ihm_3dem_restraint
   _category.description     
;              Data items in the IHM_3DEM_RESTRAINT category records the
               details of the 3DEM maps used as restraints in the
               IHM modeling.
;

   _category.id              ihm_3dem_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_3dem_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    _ihm_3dem_restraint.id                              1
    _ihm_3dem_restraint.dataset_list_id                 3
    _ihm_3dem_restraint.model_id                        1
    _ihm_3dem_restraint.struct_assembly_id              1
    _ihm_3dem_restraint.fitting_method                  'Gaussian mixture models'
    _ihm_3dem_restraint.number_of_gaussians             10
    _ihm_3dem_restraint.map_segment_flag                No
    _ihm_3dem_restraint.cross_correlation_coefficient   0.8 
    _ihm_3dem_restraint.fitting_method_citation_id      5
    _ihm_3dem_restraint.details                         .
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_3dem_restraint
   #
save_
#
save__ihm_3dem_restraint.id
   _item_description.description  "     A unique identifier for the 3DEM restraint description."
   #
   _item.name            "_ihm_3dem_restraint.id"
   _item.category_id     ihm_3dem_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_3dem_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the 3DEM map used.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_3dem_restraint.dataset_list_id"
   _item.category_id     ihm_3dem_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_3dem_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_3dem_restraint.model_id
   _item_description.description  
;     The model number corresponding to the 3DEM fitting result presented.
      This data item is a pointer to _ihm_model_list.model_id in the
      IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_3dem_restraint.model_id"
   _item.category_id     ihm_3dem_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_3dem_restraint.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save__ihm_3dem_restraint.struct_assembly_id
   _item_description.description  
;    An indicator to whether the whole assembly that is modeled is fit into the 3DEM map
     or if only a subset of the structural assembly is fit into the map.
     This data item is a pointer to _ihm_struct_assembly.id in the
     IHM_STRUCT_ASSEMBLY category. The IHM_STRUCT_ASSEMBLY category provides the
     details regarding the different structural assemblies used in the modeling.
     The default value for this data item is "1" indicating that the entire assembly
     being modeled is fit into the EM map.
;

   #
   _item.name            "_ihm_3dem_restraint.struct_assembly_id"
   _item.category_id     ihm_3dem_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_3dem_restraint.struct_assembly_id"
   _item_linked.parent_name  "_ihm_struct_assembly.id"
   #
   _item_default.value  1
   #
save_
#
save__ihm_3dem_restraint.fitting_method
   _item_description.description  "     Method used to fit the model to the 3DEM map."
   #
   _item.name            "_ihm_3dem_restraint.fitting_method"
   _item.category_id     ihm_3dem_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     "Gaussian mixture model"  
     "Local refinement"  
     "Flexible fitting"  
     Other  
   #
save_
#
save__ihm_3dem_restraint.number_of_gaussians
   _item_description.description  
;     In case of Gaussian mixture models, the number of gaussians
      is a parameter used to covert the 3DEM maps and models into
      GMMs. This captures the level of granularity used in
      representing the maps and/or models as 3D Gaussians.
;

   #
   _item.name            "_ihm_3dem_restraint.number_of_gaussians"
   _item.category_id     ihm_3dem_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_3dem_restraint.map_segment_flag
   _item_description.description  
;     A flag that indicates whether or not the 3DEM map is segmented i.e.,
      whether the whole map is used or only a portion of it is used (by masking
      or by other means) as restraint in the modeling.
;

   #
   _item.name            "_ihm_3dem_restraint.map_segment_flag"
   _item.category_id     ihm_3dem_restraint
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     YES  "Map is masked; only a portion of the map is used"  
     NO   "Map is not masked; the entire map is used"  
   #
save_
#
save__ihm_3dem_restraint.cross_correlation_coefficient
   _item_description.description  "     The cross correlation coefficient corresponding to the model to map fitting."
   #
   _item.name            "_ihm_3dem_restraint.cross_correlation_coefficient"
   _item.category_id     ihm_3dem_restraint
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  float
   #
save_
#
save__ihm_3dem_restraint.fitting_method_citation_id
   _item_description.description  
;     The citation id of the citation for the fitting method used. 
      This data item is a pointer to _citation.id in the CITATION
      category.
;

   #
   _item.name            "_ihm_3dem_restraint.fitting_method_citation_id"
   _item.category_id     ihm_3dem_restraint
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_3dem_restraint.fitting_method_citation_id"
   _item_linked.parent_name  "_citation.id"
   #
save_
#
save__ihm_3dem_restraint.details
   _item_description.description  "     Additional details regarding the model to map fitting."
   #
   _item.name            "_ihm_3dem_restraint.details"
   _item.category_id     ihm_3dem_restraint
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
   _item_examples.case  
;       The Nup-84 models generated and the 3DEM maps are converted to 3D Gaussians
        using Gaussian mixture models (GMMs). The GMMs are then compared to obtain
        a 3D fit of the map and the model.
;

   #
save_
#
save_ihm_sas_restraint
   _category.description     
;              Data items in the IHM_SAS_RESTRAINT category records the
               details of the SAS data used as restraints in the
               IHM modeling.
;

   _category.id              ihm_sas_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_sas_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    _ihm_sas_restraint.id                              1
    _ihm_sas_restraint.dataset_list_id                 6
    _ihm_sas_restraint.model_id                        1
    _ihm_sas_restraint.struct_assembly_id              1
    _ihm_sas_restraint.profile_segment_flag            NO
    _ihm_sas_restraint.fitting_atom_type               'Heavy atoms'
    _ihm_sas_restraint.fitting_method                  'FoXS'
    _ihm_sas_restraint.fitting_state                   'Single'
    _ihm_sas_restraint.radius_of_gyration              21.07
    _ihm_sas_restraint.chi_value                       4.69
    _ihm_sas_restraint.details                         .
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_sas_restraint
   #
save_
#
save__ihm_sas_restraint.id
   _item_description.description  "     A unique identifier for the SAS restraint description."
   #
   _item.name            "_ihm_sas_restraint.id"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_sas_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the SAS data used.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_sas_restraint.dataset_list_id"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_sas_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_sas_restraint.model_id
   _item_description.description  
;     The model number corresponding to the SAS fitting result presented.
      This data item is a pointer to _ihm_model_list.model_id in the
      IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_sas_restraint.model_id"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_sas_restraint.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save__ihm_sas_restraint.struct_assembly_id
   _item_description.description  
;    An indicator to whether the whole assembly that is modeled is fit into the SAS data
     or if only a subset of the structural assembly is fit into the data.
     This data item is a pointer to _ihm_struct_assembly.id in the
     IHM_STRUCT_ASSEMBLY category. The IHM_STRUCT_ASSEMBLY category provides the
     details regarding the different structural assemblies used in the modeling.
     The default value for this data item is "1" indicating that the entire assembly
     being modeled is fit into the SAS data.
;

   #
   _item.name            "_ihm_sas_restraint.struct_assembly_id"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_sas_restraint.struct_assembly_id"
   _item_linked.parent_name  "_ihm_struct_assembly.id"
   #
   _item_default.value  1
   #
save_
#
save__ihm_sas_restraint.profile_segment_flag
   _item_description.description  
;     A flag that indicates whether or not the SAS profile is segmented i.e.,
      whether the whole SAS profile is used or only a portion of it is used 
      (by masking or by other means) as restraint in the modeling.
;

   #
   _item.name            "_ihm_sas_restraint.profile_segment_flag"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     YES  "SAS profile is masked; only a portion of the SAS data is used"  
     NO   "SAS profile is not masked; the entire SAS data is used"  
   #
save_
#
save__ihm_sas_restraint.fitting_atom_type
   _item_description.description  "    The type of atoms in the model fit to the SAS data."
   #
   _item.name            "_ihm_sas_restraint.fitting_atom_type"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     "C-alpha atoms"  
     "Heavy atoms"  
     "All atoms"  
   #
save_
#
save__ihm_sas_restraint.fitting_method
   _item_description.description  "    The method used for fitting the model to the SAS data."
   #
   _item.name            "_ihm_sas_restraint.fitting_method"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_examples.case
     DAMMIF  
     FoXS  
     MultiFoXS  
     "Minimal Ensemble Search"  
     Other  
   #
save_
#
save__ihm_sas_restraint.fitting_state
   _item_description.description  "    An indicator to single or multiple state fitting."
   #
   _item.name            "_ihm_sas_restraint.fitting_state"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     Single    "Single-state fitting"  
     Multiple  "Multi-state fitting"  
   #
save_
#
save__ihm_sas_restraint.radius_of_gyration
   _item_description.description  "    Radius of gyration obtained from the SAS profile, if used as input restraint."
   #
   _item.name            "_ihm_sas_restraint.radius_of_gyration"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_sas_restraint.chi_value
   _item_description.description  "    The chi value resulting from fitting the model to the SAS data."
   #
   _item.name            "_ihm_sas_restraint.chi_value"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_sas_restraint.details
   _item_description.description  "    Additional details regarding the SAS restraint used."
   #
   _item.name            "_ihm_sas_restraint.details"
   _item.category_id     ihm_sas_restraint
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_hdx_restraint
   _category.description     
;              Data items in the IHM_HDX_RESTRAINT category captures the
               details of restraints derived from Hydrogen-Deuterium
               Exchange experiments.
;

   _category.id              ihm_hdx_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_hdx_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_hdx_restraint.id
        _ihm_hdx_restraint.feature_id
        _ihm_hdx_restraint.protection_factor
        _ihm_hdx_restraint.dataset_list_id
        _ihm_hdx_restraint.details
          1   1    1.0  6   .
          2   2    1.0  6   .
          3   3    1.0  6   .
          4   4    1.0  6   . 
          5   5    1.0  6   .
          6   6    1.0  6   .
          7   7    1.0  6   .
          8   8    1.0  6   .
          9   9    1.0  6   .
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_hdx_restraint
   #
save_
#
save__ihm_hdx_restraint.id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_hdx_restraint.id"
   _item.category_id     ihm_hdx_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_hdx_restraint.feature_id
   _item_description.description  
;     Identifier for the peptide / residue feature.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_hdx_restraint.feature_id"
   _item.category_id     ihm_hdx_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_hdx_restraint.feature_id"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_hdx_restraint.protection_factor
   _item_description.description  
;     The value of the protection factor determined from HDX experiments. 
      These are reported as log(protection factor). Protection factors
      are scaling factors and are unitless.
;

   #
   _item.name            "_ihm_hdx_restraint.protection_factor"
   _item.category_id     ihm_hdx_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_hdx_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the HDX input data from which the restraints are derived.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_hdx_restraint.dataset_list_id"
   _item.category_id     ihm_hdx_restraint
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_hdx_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_hdx_restraint.details
   _item_description.description  "     Additional details regarding the HDX restraint."
   #
   _item.name            "_ihm_hdx_restraint.details"
   _item.category_id     ihm_hdx_restraint
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_starting_model_coord
   _category.description     
;              Data items in the IHM_STARTING_MODEL_COORD category records the coordinates
               for structural templates used as starting inputs in the integrative model 
               building tasks.
;

   _category.id              ihm_starting_model_coord
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_starting_model_coord.ordinal_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_starting_model_coord.starting_model_id
        _ihm_starting_model_coord.group_PDB
        _ihm_starting_model_coord.id
        _ihm_starting_model_coord.type_symbol
        _ihm_starting_model_coord.atom_id
        _ihm_starting_model_coord.comp_id
        _ihm_starting_model_coord.entity_id
        _ihm_starting_model_coord.asym_id
        _ihm_starting_model_coord.seq_id
        _ihm_starting_model_coord.Cartn_x
        _ihm_starting_model_coord.Cartn_y
        _ihm_starting_model_coord.Cartn_z
        _ihm_starting_model_coord.B_iso_or_equiv
        _ihm_starting_model_coord.formal_charge
        _ihm_starting_model_coord.ordinal_id
        Nup84-m1    ATOM      1  N   N    TYR  1  A  7    -9.852    10.605    -6.336   91.82  .      1  
        Nup84-m1    ATOM      2  C   CA   TYR  1  A  7    -8.986    11.688    -5.817   91.82  .      2  
        Nup84-m1    ATOM      3  C   CB   TYR  1  A  7    -7.787    11.073    -5.072   91.82  .      3  
        Nup84-m1    ATOM      4  C   CG   TYR  1  A  7    -6.741    12.117    -4.873   91.82  .      4  
        Nup84-m1    ATOM      5  C   CD1  TYR  1  A  7    -6.906    13.168    -3.998   91.82  .      5  
        Nup84-m1    ATOM      6  C   CD2  TYR  1  A  7    -5.561    12.013    -5.571   91.82  .      6  
        Nup84-m1    ATOM      7  C   CE1  TYR  1  A  7     -5.91    14.108    -3.843   91.82  .      7  
        Nup84-m1    ATOM      8  C   CE2  TYR  1  A  7    -4.566    12.945    -5.421   91.82  .      8  
        Nup84-m1    ATOM      9  C   CZ   TYR  1  A  7    -4.738    13.997    -4.558   91.82  .      9  
        Nup84-m1    ATOM     10  O   OH   TYR  1  A  7    -3.708    14.949    -4.411   91.82  .     10  
        Nup84-m1    ATOM     11  C   C    TYR  1  A  7    -8.513    12.596    -6.909   91.82  .     11  
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_starting_model_coord
   #
save_
#
save__ihm_starting_model_coord.ordinal_id
   _item_description.description  "     A unique identifier for this coordinate position."
   #
   _item.name            "_ihm_starting_model_coord.ordinal_id"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_starting_model_coord.starting_model_id
   _item_description.description  
;     The identifier for the starting structural model.
      This data item is a pointer to _ihm_starting_model_details.starting_model_id
      in the IHM_STARTING_MODEL_DETAILS category.
;

   #
   _item.name            "_ihm_starting_model_coord.starting_model_id"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_starting_model_coord.starting_model_id"
   _item_linked.parent_name  "_ihm_starting_model_details.starting_model_id"
   #
save_
#
save__ihm_starting_model_coord.group_PDB
   _item_description.description  
;    The group of atoms to which the atom site in the starting model belongs. This data
     item is provided for compatibility with the original Protein Data Bank format, 
     and only for that purpose.
;

   #
   _item.name            "_ihm_starting_model_coord.group_PDB"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
     ATOM    
     HETATM  
   #
save_
#
save__ihm_starting_model_coord.id
   _item_description.description  "     The serial number for this coordinate position."
   #
   _item.name            "_ihm_starting_model_coord.id"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_starting_model_coord.type_symbol
   _item_description.description  "     The atom type symbol(element symbol) corresponding to this coordinate position."
   #
   _item.name            "_ihm_starting_model_coord.type_symbol"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
save_
#
save__ihm_starting_model_coord.entity_id
   _item_description.description  
;     The entity identifier corresponding to this coordinate position.
      This data item is a pointer to _entity.id in the ENTITY category.
;

   #
   _item.name            "_ihm_starting_model_coord.entity_id"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_starting_model_coord.entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_starting_model_coord.atom_id
   _item_description.description  
;     The atom identifier/name corresponding to this coordinate position.
      This data item is a pointer to _chem_comp_atom.atom_id in the 
      CHEM_COMP_ATOM category.
;

   #
   _item.name            "_ihm_starting_model_coord.atom_id"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  atcode
   #
   _item_linked.child_name   "_ihm_starting_model_coord.atom_id"
   _item_linked.parent_name  "_chem_comp_atom.atom_id"
   #
save_
#
save__ihm_starting_model_coord.comp_id
   _item_description.description  
;     The component identifier corresponding to this coordinate position.
      This data item is a pointer to _chem_comp.id in the 
      CHEM_COMP category.
;

   #
   _item.name            "_ihm_starting_model_coord.comp_id"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_linked.child_name   "_ihm_starting_model_coord.comp_id"
   _item_linked.parent_name  "_chem_comp.id"
   #
save_
#
save__ihm_starting_model_coord.seq_id
   _item_description.description  
;     The sequence index corresponding this to coordinate position.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_starting_model_coord.seq_id"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_starting_model_coord.seq_id"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_starting_model_coord.asym_id
   _item_description.description  
;     The asym/strand id corresponding to this coordinate position. 

      This data item is a pointer to _struct_asym.id in the STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_starting_model_coord.asym_id"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_starting_model_coord.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_starting_model_coord.Cartn_x
   _item_description.description  "     The Cartesian X component corresponding to this coordinate position."
   #
   _item.name            "_ihm_starting_model_coord.Cartn_x"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_starting_model_coord.Cartn_y
   _item_description.description  "     The Cartesian Y component corresponding to this coordinate position."
   #
   _item.name            "_ihm_starting_model_coord.Cartn_y"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_starting_model_coord.Cartn_z
   _item_description.description  "     The Cartesian Z component corresponding to this coordinate position."
   #
   _item.name            "_ihm_starting_model_coord.Cartn_z"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_starting_model_coord.B_iso_or_equiv
   _item_description.description  "     The isotropic temperature factor corresponding to this coordinate position."
   #
   _item.name            "_ihm_starting_model_coord.B_iso_or_equiv"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  8pi2_angstroms_squared
   #
save_
#
save__ihm_starting_model_coord.formal_charge
   _item_description.description  "     The formal charge corresponding to this coordinate position."
   #
   _item.name            "_ihm_starting_model_coord.formal_charge"
   _item.category_id     ihm_starting_model_coord
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save_ihm_sphere_obj_site
   _category.description     
;              Data items in the IHM_SPHERE_OBJ_SITE category records the details
               of the spherical objects modeled in the integrative structural model.
;

   _category.id              ihm_sphere_obj_site
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_sphere_obj_site.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_sphere_obj_site.id
        _ihm_sphere_obj_site.entity_id
        _ihm_sphere_obj_site.seq_id_begin
        _ihm_sphere_obj_site.seq_id_end
        _ihm_sphere_obj_site.asym_id
        _ihm_sphere_obj_site.Cartn_x
        _ihm_sphere_obj_site.Cartn_y
        _ihm_sphere_obj_site.Cartn_z
        _ihm_sphere_obj_site.object_radius
        _ihm_sphere_obj_site.rmsf
        _ihm_sphere_obj_site.model_id
           1  1     1     6  A  1.0  1.0  1.0  1.0  .  1
           2  1     7     7  A  1.0  1.0  1.0  1.0  .  1
           3  1     8     8  A  1.0  1.0  1.0  1.0  .  1
           4  1     9     9  A  1.0  1.0  1.0  1.0  .  1
           5  1    10    10  A  1.0  1.0  1.0  1.0  .  1
           6  1    11    11  A  1.0  1.0  1.0  1.0  .  1
           7  1    12    12  A  1.0  1.0  1.0  1.0  .  1
           8  1    13    13  A  1.0  1.0  1.0  1.0  .  1
           9  1    14    14  A  1.0  1.0  1.0  1.0  .  1
          10  1    15    15  A  1.0  1.0  1.0  1.0  .  1
          # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_sphere_obj_site
   #
save_
#
save__ihm_sphere_obj_site.id
   _item_description.description  "     A unique identifier for this pseudo atom / sphere object."
   #
   _item.name            "_ihm_sphere_obj_site.id"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_sphere_obj_site.entity_id
   _item_description.description  
;     The entity identifier corresponding to this sphere object.
      This data item is a pointer to _entity.id in the ENTITY category.
;

   #
   _item.name            "_ihm_sphere_obj_site.entity_id"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_sphere_obj_site.entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_sphere_obj_site.seq_id_begin
   _item_description.description  
;     The leading sequence index corresponding to this sphere object.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_sphere_obj_site.seq_id_begin"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_begin
   #
   _item_linked.child_name   "_ihm_sphere_obj_site.seq_id_begin"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_sphere_obj_site.seq_id_end
   _item_description.description  
;     The trailing sequence index corresponding to this sphere object.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_sphere_obj_site.seq_id_end"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_end
   #
   _item_linked.child_name   "_ihm_sphere_obj_site.seq_id_end"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_sphere_obj_site.asym_id
   _item_description.description  
;     An asym/strand identifier corresponding to this sphere object. 
      This data item is a pointer to _struct_asym.id in the STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_sphere_obj_site.asym_id"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_sphere_obj_site.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_sphere_obj_site.Cartn_x
   _item_description.description  "     The Cartesian X component corresponding to this sphere object."
   #
   _item.name            "_ihm_sphere_obj_site.Cartn_x"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_sphere_obj_site.Cartn_y"  
     "_ihm_sphere_obj_site.Cartn_z"  
   #
save_
#
save__ihm_sphere_obj_site.Cartn_y
   _item_description.description  "     The Cartesian Y component corresponding to this sphere object."
   #
   _item.name            "_ihm_sphere_obj_site.Cartn_y"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_sphere_obj_site.Cartn_x"  
     "_ihm_sphere_obj_site.Cartn_z"  
   #
save_
#
save__ihm_sphere_obj_site.Cartn_z
   _item_description.description  "     The Cartesian Z component corresponding to this sphere object."
   #
   _item.name            "_ihm_sphere_obj_site.Cartn_z"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_sphere_obj_site.Cartn_x"  
     "_ihm_sphere_obj_site.Cartn_y"  
   #
save_
#
save__ihm_sphere_obj_site.object_radius
   _item_description.description  "     The radius associated with the primitive sphere object at this position."
   #
   _item.name            "_ihm_sphere_obj_site.object_radius"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_sphere_obj_site.rmsf
   _item_description.description  
;     The Root Mean Square Fluctuation (RMSF) observed in the primitive 
      sphere object at this position.
;

   #
   _item.name            "_ihm_sphere_obj_site.rmsf"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_sphere_obj_site.model_id
   _item_description.description  
;     The model id corresponding to the sphere object.
      This data item is a pointer to _ihm_model_list.model_id
      in the IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_sphere_obj_site.model_id"
   _item.category_id     ihm_sphere_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_sphere_obj_site.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save_ihm_gaussian_obj_site
   _category.description     
;              Data items in the IHM_GAUSSIAN_OBJ_SITE category records the details
               of the gaussian objects modeled in the integrative structural model.
;

   _category.id              ihm_gaussian_obj_site
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_gaussian_obj_site.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_gaussian_obj_site.id
        _ihm_gaussian_obj_site.entity_id
        _ihm_gaussian_obj_site.seq_id_begin
        _ihm_gaussian_obj_site.seq_id_end
        _ihm_gaussian_obj_site.asym_id
        _ihm_gaussian_obj_site.mean_Cartn_x
        _ihm_gaussian_obj_site.mean_Cartn_y
        _ihm_gaussian_obj_site.mean_Cartn_z
        _ihm_gaussian_obj_site.weight
        _ihm_gaussian_obj_site.covariance_matrix[1][1]
        _ihm_gaussian_obj_site.covariance_matrix[1][2]
        _ihm_gaussian_obj_site.covariance_matrix[1][3]
        _ihm_gaussian_obj_site.covariance_matrix[2][1]
        _ihm_gaussian_obj_site.covariance_matrix[2][2]
        _ihm_gaussian_obj_site.covariance_matrix[2][3]
        _ihm_gaussian_obj_site.covariance_matrix[3][1]
        _ihm_gaussian_obj_site.covariance_matrix[3][2]
        _ihm_gaussian_obj_site.covariance_matrix[3][3]
        _ihm_gaussian_obj_site.model_id
           1  1   1   6  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           2  1   7   7  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           3  1   8   8  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           4  1   9   9  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           5  1  10  10  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           6  1  11  11  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           7  1  12  12  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           8  1  13  13  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           9  1  14  14  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
          10  1  15  15  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
          # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_gaussian_obj_site
   #
save_
#
save__ihm_gaussian_obj_site.id
   _item_description.description  "     A unique identifier for this gaussian object in the model."
   #
   _item.name            "_ihm_gaussian_obj_site.id"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_gaussian_obj_site.entity_id
   _item_description.description  
;     The entity identifier corresponding to this gaussian object.
      This data item is a pointer to _entity.id in the ENTITY category.
;

   #
   _item.name            "_ihm_gaussian_obj_site.entity_id"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_gaussian_obj_site.entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_gaussian_obj_site.seq_id_begin
   _item_description.description  
;     The leading sequence index corresponding to this gaussian object.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_gaussian_obj_site.seq_id_begin"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_begin
   #
   _item_linked.child_name   "_ihm_gaussian_obj_site.seq_id_begin"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_gaussian_obj_site.seq_id_end
   _item_description.description  
;     The trailing sequence index corresponding to this gaussian object.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_gaussian_obj_site.seq_id_end"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_end
   #
   _item_linked.child_name   "_ihm_gaussian_obj_site.seq_id_end"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_gaussian_obj_site.asym_id
   _item_description.description  
;     An asym/strand identifier corresponding to this gaussian object.
      This data item is a pointer to _struct_asym.id in the STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_gaussian_obj_site.asym_id"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_gaussian_obj_site.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_gaussian_obj_site.mean_Cartn_x
   _item_description.description  "     The mean Cartesian X component corresponding to this gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.mean_Cartn_x"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_gaussian_obj_site.mean_Cartn_y"  
     "_ihm_gaussian_obj_site.mean_Cartn_z"  
   #
save_
#
save__ihm_gaussian_obj_site.mean_Cartn_y
   _item_description.description  "     The mean Cartesian Y component corresponding to this gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.mean_Cartn_y"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_gaussian_obj_site.mean_Cartn_x"  
     "_ihm_gaussian_obj_site.mean_Cartn_z"  
   #
save_
#
save__ihm_gaussian_obj_site.mean_Cartn_z
   _item_description.description  "     The mean Cartesian Z component corresponding to this gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.mean_Cartn_z"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_gaussian_obj_site.mean_Cartn_x"  
     "_ihm_gaussian_obj_site.mean_Cartn_y"  
   #
save_
#
save__ihm_gaussian_obj_site.weight
   _item_description.description  "     The weight of the gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.weight"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_site.covariance_matrix[1][1]
   _item_description.description  "     Data item [1][1] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.covariance_matrix[1][1]"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_site.covariance_matrix[1][2]
   _item_description.description  "     Data item [1][2] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.covariance_matrix[1][2]"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_site.covariance_matrix[1][3]
   _item_description.description  "     Data item [1][3] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.covariance_matrix[1][3]"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_site.covariance_matrix[2][1]
   _item_description.description  "     Data item [2][1] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.covariance_matrix[2][1]"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_site.covariance_matrix[2][2]
   _item_description.description  "     Data item [2][2] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.covariance_matrix[2][2]"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_site.covariance_matrix[2][3]
   _item_description.description  "     Data item [2][3] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.covariance_matrix[2][3]"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_site.covariance_matrix[3][1]
   _item_description.description  "     Data item [3][1] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.covariance_matrix[3][1]"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_site.covariance_matrix[3][2]
   _item_description.description  "     Data item [3][2] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.covariance_matrix[3][2]"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_site.covariance_matrix[3][3]
   _item_description.description  "     Data item [3][3] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_site.covariance_matrix[3][3]"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_site.model_id
   _item_description.description  
;     The model id corresponding to the gaussian object.
      This data item is a pointer to _ihm_model_list.model_id
      in the IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_gaussian_obj_site.model_id"
   _item.category_id     ihm_gaussian_obj_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_gaussian_obj_site.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save_ihm_gaussian_obj_ensemble
   _category.description     
;              Data items in the IHM_GAUSSIAN_OBJ_ENSEMBLE category records the details
               of the gaussian objects representing an ensemble or cluster of models.
;

   _category.id              ihm_gaussian_obj_ensemble
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_gaussian_obj_ensemble.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_gaussian_obj_ensemble.id
        _ihm_gaussian_obj_ensemble.entity_id
        _ihm_gaussian_obj_ensemble.seq_id_begin
        _ihm_gaussian_obj_ensemble.seq_id_end
        _ihm_gaussian_obj_ensemble.asym_id
        _ihm_gaussian_obj_ensemble.mean_Cartn_x
        _ihm_gaussian_obj_ensemble.mean_Cartn_y
        _ihm_gaussian_obj_ensemble.mean_Cartn_z
        _ihm_gaussian_obj_ensemble.weight
        _ihm_gaussian_obj_ensemble.covariance_matrix[1][1]
        _ihm_gaussian_obj_ensemble.covariance_matrix[1][2]
        _ihm_gaussian_obj_ensemble.covariance_matrix[1][3]
        _ihm_gaussian_obj_ensemble.covariance_matrix[2][1]
        _ihm_gaussian_obj_ensemble.covariance_matrix[2][2]
        _ihm_gaussian_obj_ensemble.covariance_matrix[2][3]
        _ihm_gaussian_obj_ensemble.covariance_matrix[3][1]
        _ihm_gaussian_obj_ensemble.covariance_matrix[3][2]
        _ihm_gaussian_obj_ensemble.covariance_matrix[3][3]
        _ihm_gaussian_obj_ensemble.ensemble_id
           1  1   1   6  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           2  1   7   7  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           3  1   8   8  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           4  1   9   9  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           5  1  10  10  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           6  1  11  11  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           7  1  12  12  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           8  1  13  13  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
           9  1  14  14  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
          10  1  15  15  A  1.0  1.0  1.0  1.0   96.25 0.92 -30.50 0.92 83.82 16.37 -30.50 16.37 95.80    1
          # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_gaussian_obj_ensemble
   #
save_
#
save__ihm_gaussian_obj_ensemble.id
   _item_description.description  "     A unique identifier for this gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.id"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_gaussian_obj_ensemble.entity_id
   _item_description.description  
;     The entity identifier corresponding to this gaussian object.
      This data item is a pointer to _entity.id in the ENTITY category.
;

   #
   _item.name            "_ihm_gaussian_obj_ensemble.entity_id"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_gaussian_obj_ensemble.entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_gaussian_obj_ensemble.seq_id_begin
   _item_description.description  
;     The leading sequence index corresponding to this gaussian object.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_gaussian_obj_ensemble.seq_id_begin"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_begin
   #
   _item_linked.child_name   "_ihm_gaussian_obj_ensemble.seq_id_begin"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_gaussian_obj_ensemble.seq_id_end
   _item_description.description  
;     The trailing sequence index corresponding to this gaussian object.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_gaussian_obj_ensemble.seq_id_end"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_end
   #
   _item_linked.child_name   "_ihm_gaussian_obj_ensemble.seq_id_end"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_gaussian_obj_ensemble.asym_id
   _item_description.description  
;     An asym/strand identifier corresponding to this gaussian object.
      This data item is a pointer to _struct_asym.id in the STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_gaussian_obj_ensemble.asym_id"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_gaussian_obj_ensemble.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_gaussian_obj_ensemble.mean_Cartn_x
   _item_description.description  "     The mean Cartesian X component corresponding to this gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.mean_Cartn_x"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_gaussian_obj_ensemble.mean_Cartn_y"  
     "_ihm_gaussian_obj_ensemble.mean_Cartn_z"  
   #
save_
#
save__ihm_gaussian_obj_ensemble.mean_Cartn_y
   _item_description.description  "     The mean Cartesian Y component corresponding to this gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.mean_Cartn_y"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_gaussian_obj_ensemble.mean_Cartn_x"  
     "_ihm_gaussian_obj_ensemble.mean_Cartn_z"  
   #
save_
#
save__ihm_gaussian_obj_ensemble.mean_Cartn_z
   _item_description.description  "     The mean Cartesian Z component corresponding to this gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.mean_Cartn_z"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_gaussian_obj_ensemble.mean_Cartn_x"  
     "_ihm_gaussian_obj_ensemble.mean_Cartn_y"  
   #
save_
#
save__ihm_gaussian_obj_ensemble.weight
   _item_description.description  "     The weight of the gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.weight"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_ensemble.covariance_matrix[1][1]
   _item_description.description  "     Data item [1][1] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.covariance_matrix[1][1]"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_ensemble.covariance_matrix[1][2]
   _item_description.description  "     Data item [1][2] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.covariance_matrix[1][2]"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_ensemble.covariance_matrix[1][3]
   _item_description.description  "     Data item [1][3] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.covariance_matrix[1][3]"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_ensemble.covariance_matrix[2][1]
   _item_description.description  "     Data item [2][1] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.covariance_matrix[2][1]"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_ensemble.covariance_matrix[2][2]
   _item_description.description  "     Data item [2][2] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.covariance_matrix[2][2]"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_ensemble.covariance_matrix[2][3]
   _item_description.description  "     Data item [2][3] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.covariance_matrix[2][3]"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_ensemble.covariance_matrix[3][1]
   _item_description.description  "     Data item [3][1] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.covariance_matrix[3][1]"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_ensemble.covariance_matrix[3][2]
   _item_description.description  "     Data item [3][2] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.covariance_matrix[3][2]"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_ensemble.covariance_matrix[3][3]
   _item_description.description  "     Data item [3][3] of the covariance matrix representing the Gaussian object."
   #
   _item.name            "_ihm_gaussian_obj_ensemble.covariance_matrix[3][3]"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_gaussian_obj_ensemble.ensemble_id
   _item_description.description  
;     The ensemble id corresponding to the gaussian object.
      This data item is a pointer to _ihm_ensemble_info.ensemble_id
      in the IHM_ENSEMBLE_INFO category.
;

   #
   _item.name            "_ihm_gaussian_obj_ensemble.ensemble_id"
   _item.category_id     ihm_gaussian_obj_ensemble
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_gaussian_obj_ensemble.ensemble_id"
   _item_linked.parent_name  "_ihm_ensemble_info.ensemble_id"
   #
save_
#
save_ihm_pseudo_site
   _category.description     
;              Data items in the IHM_PSEUDO_SITE_FEATURE category records the details
               of pseudo sites that may be used in the restraints or model representation.
;

   _category.id              ihm_pseudo_site
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_pseudo_site.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_pseudo_site.id
        _ihm_pseudo_site.Cartn_x
        _ihm_pseudo_site.Cartn_y
        _ihm_pseudo_site.Cartn_z
        _ihm_pseudo_site.radius
        _ihm_pseudo_site.description
           1  1.0  1.0  1.0  1.0 .
           2  1.0  1.0  1.0  1.0 .
           3  1.0  1.0  1.0  1.0 .
           4  1.0  1.0  1.0  1.0 .
           5  1.0  1.0  1.0  1.0 .
          # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_pseudo_site
   #
save_
#
save__ihm_pseudo_site.id
   _item_description.description  "     An identifier to the pseudo site."
   #
   _item.name            "_ihm_pseudo_site.id"
   _item.category_id     ihm_pseudo_site
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_pseudo_site.Cartn_x
   _item_description.description  "     The Cartesian X component corresponding to this pseudo site."
   #
   _item.name            "_ihm_pseudo_site.Cartn_x"
   _item.category_id     ihm_pseudo_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_pseudo_site.Cartn_y"  
     "_ihm_pseudo_site.Cartn_z"  
   #
save_
#
save__ihm_pseudo_site.Cartn_y
   _item_description.description  "     The Cartesian Y component corresponding to this pseudo site."
   #
   _item.name            "_ihm_pseudo_site.Cartn_y"
   _item.category_id     ihm_pseudo_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_pseudo_site.Cartn_x"  
     "_ihm_pseudo_site.Cartn_z"  
   #
save_
#
save__ihm_pseudo_site.Cartn_z
   _item_description.description  "     The Cartesian Z component corresponding to this pseudo site."
   #
   _item.name            "_ihm_pseudo_site.Cartn_z"
   _item.category_id     ihm_pseudo_site
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
   loop_
   _item_dependent.dependent_name
     "_ihm_pseudo_site.Cartn_x"  
     "_ihm_pseudo_site.Cartn_y"  
   #
save_
#
save__ihm_pseudo_site.radius
   _item_description.description  "     The radius associated with the pseudo site, if applicable."
   #
   _item.name            "_ihm_pseudo_site.radius"
   _item.category_id     ihm_pseudo_site
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_pseudo_site.description
   _item_description.description  "     Textual description of the pseudo site."
   #
   _item.name            "_ihm_pseudo_site.description"
   _item.category_id     ihm_pseudo_site
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
   _item_examples.case  "centroid of a feature"
   #
save_
#
save_ihm_residues_not_modeled
   _category.description     
;              Data items in the IHM_RESIDUES_NOT_MODELED category record the
               details of the residues that are defined in the 
               IHM_STRUCT_ASSEMBLY category but are missing in the 
               three-dimensional model (ATOM_SITE, IHM_SPHERE_OBJ_SITE, 
               IHM_GAUSSIAN_OBJ_SITE categories) i.e., residues in the
               assembly that are not modeled.
;

   _category.id              ihm_residues_not_modeled
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_residues_not_modeled.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1
;

   _category_examples.case    
;
    loop_
    _ihm_residues_not_modeled.id
    _ihm_residues_not_modeled.model_id
    _ihm_residues_not_modeled.entity_description
    _ihm_residues_not_modeled.entity_id
    _ihm_residues_not_modeled.asym_id
    _ihm_residues_not_modeled.seq_id_begin
    _ihm_residues_not_modeled.seq_id_end
    _ihm_residues_not_modeled.comp_id_begin
    _ihm_residues_not_modeled.comp_id_end
    _ihm_residues_not_modeled.reason
         1   1   Nup84   1  A     1    14   MET LYS 'Highly variable models with poor precision'
         2   1   Nup85   2  B   740   744   ALA MET 'Highly variable models with poor precision'
         3   1  Nup133   4  D     5    26   LYS LEU 'Highly variable models with poor precision'
         4   1  Nup145   5  E   707   712   LYS ILE 'Highly variable models with poor precision'
         #...abbreviated...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_residues_not_modeled
   #
save_
#
save__ihm_residues_not_modeled.id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_residues_not_modeled.id"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_residues_not_modeled.model_id
   _item_description.description  
;     An identifier for the structural model. 
      This data item is a pointer to _ihm_model_list.model_id
      in the IHM_MODEL_LIST category.
;

   #
   _item.name            "_ihm_residues_not_modeled.model_id"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_residues_not_modeled.model_id"
   _item_linked.parent_name  "_ihm_model_list.model_id"
   #
save_
#
save__ihm_residues_not_modeled.entity_description
   _item_description.description  
;     A text description of the molecular entity, whose residues are not modeled. 
      This data item is a pointer to _entity.pdbx_description in the ENTITY category.
;

   #
   _item.name            "_ihm_residues_not_modeled.entity_description"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_residues_not_modeled.entity_id
   _item_description.description  
;     A unique identifier to the molecular entity, whose residues are not modeled.
      This data item is a pointer to _entity_poly_seq.entity_id in the 
      ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_residues_not_modeled.entity_id"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_sub_category.id
   _item_sub_category.pdbx_label
     mm_poly_res_label  mm_poly_res_label_begin  
     mm_poly_res_label  mm_poly_res_label_end    
   #
   _item_linked.child_name   "_ihm_residues_not_modeled.entity_id"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_residues_not_modeled.asym_id
   _item_description.description  
;     An asym/strand identifier. 
      This data item is a pointer to _struct_asym.id in the
      STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_residues_not_modeled.asym_id"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_residues_not_modeled.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_residues_not_modeled.seq_id_begin
   _item_description.description  
;     The starting residue index for the sequence segment of missing residues. 
      This data item is a pointer to _entity_poly_seq.num in the
      ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_residues_not_modeled.seq_id_begin"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_begin
   #
   _item_linked.child_name   "_ihm_residues_not_modeled.seq_id_begin"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_residues_not_modeled.seq_id_end
   _item_description.description  
;     The ending residue index for the sequence segment of missing residues.  
      This data item is a pointer to _entity_poly_seq.num in the
      ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_residues_not_modeled.seq_id_end"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_end
   #
   _item_linked.child_name   "_ihm_residues_not_modeled.seq_id_end"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_residues_not_modeled.comp_id_begin
   _item_description.description  
;     The starting residue for the sequence segment of missing residues.
      This data item is a pointer to _entity_poly_seq.mon_id in the
      ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_residues_not_modeled.comp_id_begin"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_begin
   #
   _item_linked.child_name   "_ihm_residues_not_modeled.comp_id_begin"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_residues_not_modeled.comp_id_end
   _item_description.description  
;     The ending residue for the sequence segment of missing residues.
      This data item is a pointer to _entity_poly_seq.mon_id in the
      ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_residues_not_modeled.comp_id_end"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_end
   #
   _item_linked.child_name   "_ihm_residues_not_modeled.comp_id_end"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_residues_not_modeled.reason
   _item_description.description  "     The reason why the residues are missing in the structural model."
   #
   _item.name            "_ihm_residues_not_modeled.reason"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     "Highly variable models with poor precision"  
     "Models do not adequately satisfy input data"  
     Other  
   #
save_
#
save__ihm_residues_not_modeled.details
   _item_description.description  "     Additional details regarding the missing segments."
   #
   _item.name            "_ihm_residues_not_modeled.details"
   _item.category_id     ihm_residues_not_modeled
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_feature_list
   _category.description     
;              IHM_FEATURE_LIST is the high level category that provides defintions
               to select atoms/residues from polymeric and non-polymeric entities.
;

   _category.id              ihm_feature_list
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_feature_list.feature_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_feature_list.feature_id
        _ihm_feature_list.feature_type
        _ihm_feature_list.entity_type
          1  atom     polymer
          2  residue  polymer
          3  atom     non-polymer
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_feature_list
   #
save_
#
save__ihm_feature_list.feature_id
   _item_description.description  "     A unique identifier for the feature."
   #
   _item.name            "_ihm_feature_list.feature_id"
   _item.category_id     ihm_feature_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_feature_list.feature_type
   _item_description.description  "     The type of feature."
   #
   _item.name            "_ihm_feature_list.feature_type"
   _item.category_id     ihm_feature_list
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     atom             "feature is an atom or a set of atoms from a polymeric or non-polymeric entity"  
     residue          "feature is a residue or a set of residues from a polymeric entity, each represented by the alpha carbon atom"  
     "residue range"  "feature is a set of residues in a contiguous range from a polymeric entity, each represented by the alpha carbon atom"  
     ligand           "feature is an instance or a set of instances of non-polymeric entities"  
     "pseudo site"    "feature is a pseudo site"  
   #
save_
#
save__ihm_feature_list.entity_type
   _item_description.description  "     The type of entity."
   #
   _item.name            "_ihm_feature_list.entity_type"
   _item.category_id     ihm_feature_list
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     polymer      
     non-polymer  
     water        
     other        
   #
save_
#
save__ihm_feature_list.details
   _item_description.description  "     Additional details regarding the feature."
   #
   _item.name            "_ihm_feature_list.details"
   _item.category_id     ihm_feature_list
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_pseudo_site_feature
   _category.description     
;              Data items in the IHM_PSEUDO_SITE_FEATURE category records the details
               of pseudo site features listed in IHM_FEATURE_LIST.
;

   _category.id              ihm_pseudo_site_feature
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_pseudo_site_feature.feature_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_pseudo_site_feature.feature_id
        _ihm_pseudo_site_feature.pseudo_site_id
           1 1 
           2 2 
           3 3 
           4 4 
           5 5
          # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_pseudo_site_feature
   #
save_
#
save__ihm_pseudo_site_feature.feature_id
   _item_description.description  
;     The feature identifier corresponding to this pseudo site.
      This data item is a pointer to _ihm_feature_list.feature_id 
      in the IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_pseudo_site_feature.feature_id"
   _item.category_id     ihm_pseudo_site_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_pseudo_site_feature.feature_id"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_pseudo_site_feature.pseudo_site_id
   _item_description.description  
;     The pseudo site identifier corresponding to this feature.
      This data item is a pointer to _ihm_pseudo_site.id
      in the IHM_PSEUDO_SITE category.
;

   #
   _item.name            "_ihm_pseudo_site_feature.pseudo_site_id"
   _item.category_id     ihm_pseudo_site_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_pseudo_site_feature.pseudo_site_id"
   _item_linked.parent_name  "_ihm_pseudo_site.id"
   #
save_
#
save_ihm_poly_atom_feature
   _category.description     
;              Data items in the IHM_POLY_ATOM_FEATURE category provides the defintions
               required to select specific atoms.
;

   _category.id              ihm_poly_atom_feature
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_poly_atom_feature.ordinal_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_poly_atom_feature.ordinal_id
        _ihm_poly_atom_feature.feature_id
        _ihm_poly_atom_feature.entity_id
        _ihm_poly_atom_feature.asym_id
        _ihm_poly_atom_feature.seq_id
        _ihm_poly_atom_feature.comp_id
        _ihm_poly_atom_feature.atom_id
          1  1  3  C   17  LYS  CB  
          2  2  3  C  206  LYS  CB  
          3  3  3  C   38  LYS  CB  
          4  4  3  C  400  LYS  CB  
          5  5  3  C  400  LYS  CB  
          6  6  3  C  400  LYS  CB  
          7  7  3  C  735  LYS  CB  
          8  8  3  C  735  LYS  CB  
          9  9  3  C  865  LYS  CB  
         10 10  3  C  865  LYS  CB  
         11 11  4  D  103  LYS  CB  
         12 12  4  D  103  LYS  CB  
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_poly_atom_feature
   #
save_
#
save__ihm_poly_atom_feature.ordinal_id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_poly_atom_feature.ordinal_id"
   _item.category_id     ihm_poly_atom_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_poly_atom_feature.feature_id
   _item_description.description  
;     An identifier for the selected atom feature.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_poly_atom_feature.feature_id"
   _item.category_id     ihm_poly_atom_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_poly_atom_feature.feature_id"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_poly_atom_feature.entity_id
   _item_description.description  
;     The entity identifier of the atom. 
      This data item is a pointer to _entity_poly_seq.entity_id in the 
      ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_atom_feature.entity_id"
   _item.category_id     ihm_poly_atom_feature
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_poly_atom_feature.entity_id"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_poly_atom_feature.asym_id
   _item_description.description  
;              An asym/strand identifier of the atom, if applicable. 
               This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_poly_atom_feature.asym_id"
   _item.category_id     ihm_poly_atom_feature
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_poly_atom_feature.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_poly_atom_feature.comp_id
   _item_description.description  
;     The component identifier of the atom. 
      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_atom_feature.comp_id"
   _item.category_id     ihm_poly_atom_feature
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_poly_atom_feature.comp_id"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_poly_atom_feature.seq_id
   _item_description.description  
;     The sequence index of the residue to which the atom belongs. 
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_atom_feature.seq_id"
   _item.category_id     ihm_poly_atom_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id  mm_poly_res_label
   #
   _item_linked.child_name   "_ihm_poly_atom_feature.seq_id"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_poly_atom_feature.atom_id
   _item_description.description  
;     The identifier of the atom. 
      This data item is a pointer to _chem_comp_atom.atom_id in the CHEM_COMP_ATOM category.
;

   #
   _item.name            "_ihm_poly_atom_feature.atom_id"
   _item.category_id     ihm_poly_atom_feature
   _item.mandatory_code  no
   #
   _item_type.code  atcode
   #
   _item_linked.child_name   "_ihm_poly_atom_feature.atom_id"
   _item_linked.parent_name  "_chem_comp_atom.atom_id"
   #
save_
#
save_ihm_poly_residue_feature
   _category.description     
;              Data items in the IHM_POLY_RESIDUE_FEATURE category provides the defintions
               required to select a specific residue or a set of residues that may or may not be 
               in a contiguous range.
;

   _category.id              ihm_poly_residue_feature
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_poly_residue_feature.ordinal_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_poly_residue_feature.ordinal_id
        _ihm_poly_residue_feature.feature_id
        _ihm_poly_residue_feature.entity_id
        _ihm_poly_residue_feature.asym_id
        _ihm_poly_residue_feature.seq_id_begin
        _ihm_poly_residue_feature.comp_id_begin
        _ihm_poly_residue_feature.seq_id_end
        _ihm_poly_residue_feature.comp_id_end
        _ihm_poly_residue_feature.interface_residue_flag
          1  1  3  C   17  LYS   17  LYS   NO   # Single residue selection
          2  2  3  C  206  LYS  206  LYS   NO
          3  3  3  C   38  THR   54  ALA   NO   # Residue range selection
          4  4  3  C  400  LEU  428  PHE   NO
          5  5  3  C  429  GLN  429  GLN   NO
          6  6  3  C  461  LEU  478  ARG   NO
          7  7  3  C  735  ASP  735  ASP   NO
          8  8  3  C  865  SER  891  VAL   NO
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_poly_residue_feature
   #
save_
#
save__ihm_poly_residue_feature.ordinal_id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_poly_residue_feature.ordinal_id"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_poly_residue_feature.feature_id
   _item_description.description  
;     An identifier for the selected residue / residue range feature.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_poly_residue_feature.feature_id"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_poly_residue_feature.feature_id"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_poly_residue_feature.entity_id
   _item_description.description  
;     The entity identifier for residue / residue range.
      This data item is a pointer to _entity_poly_seq.entity_id in the 
      ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_residue_feature.entity_id"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_sub_category.id
   _item_sub_category.pdbx_label
     mm_poly_res_label  mm_poly_res_label_begin  
     mm_poly_res_label  mm_poly_res_label_end    
   #
   _item_linked.child_name   "_ihm_poly_residue_feature.entity_id"
   _item_linked.parent_name  "_entity_poly_seq.entity_id"
   #
save_
#
save__ihm_poly_residue_feature.asym_id
   _item_description.description  
;              An asym/strand identifier for the residue / residue range, if applicable.
               This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_poly_residue_feature.asym_id"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_poly_residue_feature.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_poly_residue_feature.comp_id_begin
   _item_description.description  
;     The component identifier of the beginning residue / residue range.
      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_residue_feature.comp_id_begin"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_begin
   #
   _item_linked.child_name   "_ihm_poly_residue_feature.comp_id_begin"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_poly_residue_feature.comp_id_end
   _item_description.description  
;     The component identifier of the ending residue / residue range.
      This data item is a pointer to _entity_poly_seq.mon_id in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_residue_feature.comp_id_end"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_end
   #
   _item_linked.child_name   "_ihm_poly_residue_feature.comp_id_end"
   _item_linked.parent_name  "_entity_poly_seq.mon_id"
   #
save_
#
save__ihm_poly_residue_feature.seq_id_begin
   _item_description.description  
;     The sequence index of the beginning residue / residue range.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_residue_feature.seq_id_begin"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_begin
   #
   _item_linked.child_name   "_ihm_poly_residue_feature.seq_id_begin"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_poly_residue_feature.seq_id_end
   _item_description.description  
;     The sequence index of the ending residue / residue range.
      This data item is a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
;

   #
   _item.name            "_ihm_poly_residue_feature.seq_id_end"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_sub_category.id          mm_poly_res_label
   _item_sub_category.pdbx_label  mm_poly_res_label_end
   #
   _item_linked.child_name   "_ihm_poly_residue_feature.seq_id_end"
   _item_linked.parent_name  "_entity_poly_seq.num"
   #
save_
#
save__ihm_poly_residue_feature.residue_range_granularity
   _item_description.description  "     The coarse-graining information, if the feature is a residue range."
   #
   _item.name            "_ihm_poly_residue_feature.residue_range_granularity"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     by-residue  "Residue range represented by individual residues in the residue range"  
     by-feature  "Residue range represented using the closest primitive object with the highest resolution"  
   #
save_
#
save__ihm_poly_residue_feature.rep_atom
   _item_description.description  
;     If _ihm_poly_residue_feature.granularity is by-residue, then indicate the atom used to represent 
      the residue in three-dimension. Default is the C-alpha atom.
;

   #
   _item.name            "_ihm_poly_residue_feature.rep_atom"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_default.value  CA
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     CA  "C-alpha for all residues"  
     CB  "C-beta for all residues except Glycine; Default value of C-alpha for Glycine"  
   #
save_
#
save__ihm_poly_residue_feature.interface_residue_flag
   _item_description.description  
;     A flag to indicate if the feature is an interface residue, identified by experiments and
      therefore, used to build spatial restraints during modeling.
;

   #
   _item.name            "_ihm_poly_residue_feature.interface_residue_flag"
   _item.category_id     ihm_poly_residue_feature
   _item.mandatory_code  no
   #
   _item_type.code  ucode
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     YES  .  
     NO   .  
   #
save_
#
save_ihm_non_poly_feature
   _category.description     
;              Data items in the IHM_NON_POLY_FEATURE category provides the defintions
               required to select a non-polymeric (ligand) feature.
;

   _category.id              ihm_non_poly_feature
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_non_poly_feature.ordinal_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_non_poly_feature.ordinal_id
        _ihm_non_poly_feature.feature_id
        _ihm_non_poly_feature.entity_id
        _ihm_non_poly_feature.asym_id
        _ihm_non_poly_feature.comp_id
        _ihm_non_poly_feature.atom_id
          1  1  6  F  FES  FE1
          2  2  6  F  FES  FE2
          3  3  6  F  FES  S1
          4  4  6  F  FES  S2
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_non_poly_feature
   #
save_
#
save__ihm_non_poly_feature.ordinal_id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_non_poly_feature.ordinal_id"
   _item.category_id     ihm_non_poly_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_non_poly_feature.feature_id
   _item_description.description  
;     An identifier for the selected non-polymer feature.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_non_poly_feature.feature_id"
   _item.category_id     ihm_non_poly_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_non_poly_feature.feature_id"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_non_poly_feature.entity_id
   _item_description.description  
;     The entity identifier of the non-polymer feature. 
      This data item is a pointer to _entity.id in the ENTITY category.
;

   #
   _item.name            "_ihm_non_poly_feature.entity_id"
   _item.category_id     ihm_non_poly_feature
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_non_poly_feature.entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_non_poly_feature.asym_id
   _item_description.description  
;              An asym/strand identifier of the non-polymer feature, if applicable. 
               This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_non_poly_feature.asym_id"
   _item.category_id     ihm_non_poly_feature
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_non_poly_feature.asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_non_poly_feature.comp_id
   _item_description.description  
;     The component identifier of the non-polymer feature. 
      This data item is a pointer to _chem_comp.id in the CHEM_COMP category.
;

   #
   _item.name            "_ihm_non_poly_feature.comp_id"
   _item.category_id     ihm_non_poly_feature
   _item.mandatory_code  yes
   #
   _item_type.code  ucode
   #
   _item_linked.child_name   "_ihm_non_poly_feature.comp_id"
   _item_linked.parent_name  "_chem_comp.id"
   #
save_
#
save__ihm_non_poly_feature.atom_id
   _item_description.description  
;     The identifier of the non-polymeric atom, if applicable. 
      This data item is a pointer to _chem_comp_atom.atom_id in the CHEM_COMP_ATOM category.
;

   #
   _item.name            "_ihm_non_poly_feature.atom_id"
   _item.category_id     ihm_non_poly_feature
   _item.mandatory_code  no
   #
   _item_type.code  atcode
   #
   _item_linked.child_name   "_ihm_non_poly_feature.atom_id"
   _item_linked.parent_name  "_chem_comp_atom.atom_id"
   #
save_
#
save_ihm_interface_residue_feature
   _category.description     
;              Data items in the IHM_INTERFACE_RESIDUE_FEATURE category captures the
               details of residues that are identified to be at the binding interface 
               from experiments. This information is used by modeling software such as
               HADDOCK to create a set of ambiguous distance restraints at the binding
               interface between the molecular entities involved.
;

   _category.id              ihm_interface_residue_feature
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_interface_residue_feature.ordinal_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_interface_residue_feature.ordinal_id
        _ihm_interface_residue_feature.feature_id
        _ihm_interface_residue_feature.binding_partner_entity_id
        _ihm_interface_residue_feature.binding_partner_asym_id
        _ihm_interface_residue_feature.dataset_list_id
        _ihm_interface_residue_feature.details
          1   1    2    B  5   .
          2   2    2    B  5   .
          3   3    2    B  5   .
          4   4    2    B  5   . 
          5   5    1    A  4   .
          6   6    1    A  4   .
          7   7    1    A  4   .
          8   8    1    A  4   .
          9   9    1    A  4   .
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_interface_residue_feature
   #
save_
#
save__ihm_interface_residue_feature.ordinal_id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_interface_residue_feature.ordinal_id"
   _item.category_id     ihm_interface_residue_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_interface_residue_feature.feature_id
   _item_description.description  
;     Identifier for the interface residue feature that defines the interface residue.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_interface_residue_feature.feature_id"
   _item.category_id     ihm_interface_residue_feature
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_interface_residue_feature.feature_id"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_interface_residue_feature.binding_partner_entity_id
   _item_description.description  
;     The entity identifier of the binding partner at the interface.
      This data item is a pointer to _entity.id in the ENTITY category.
;

   #
   _item.name            "_ihm_interface_residue_feature.binding_partner_entity_id"
   _item.category_id     ihm_interface_residue_feature
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_interface_residue_feature.binding_partner_entity_id"
   _item_linked.parent_name  "_entity.id"
   #
save_
#
save__ihm_interface_residue_feature.binding_partner_asym_id
   _item_description.description  
;              An asym/strand identifier for the binding partner at the interface, if applicable.
               This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;

   #
   _item.name            "_ihm_interface_residue_feature.binding_partner_asym_id"
   _item.category_id     ihm_interface_residue_feature
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_interface_residue_feature.binding_partner_asym_id"
   _item_linked.parent_name  "_struct_asym.id"
   #
save_
#
save__ihm_interface_residue_feature.dataset_list_id
   _item_description.description  
;     Identifier to the input data from which the interface residue is determined.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_interface_residue_feature.dataset_list_id"
   _item.category_id     ihm_interface_residue_feature
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_interface_residue_feature.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_interface_residue_feature.details
   _item_description.description  "     Additional details regarding the interface residue."
   #
   _item.name            "_ihm_interface_residue_feature.details"
   _item.category_id     ihm_interface_residue_feature
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_derived_distance_restraint
   _category.description     
;              Data items in the IHM_DERIVED_DISTANCE_RESTRAINT category records the
               list of distance restraints used in the integrative modeling experiment. 
               These distance redistance restraints may be derived from various kinds of experiments.
;

   _category.id              ihm_derived_distance_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_derived_distance_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_derived_distance_restraint.id
        _ihm_derived_distance_restraint.feature_id_1
        _ihm_derived_distance_restraint.feature_id_2
        _ihm_derived_distance_restraint.restraint_type
        _ihm_derived_distance_restraint.distance_upper_limit
        _ihm_derived_distance_restraint.probability
        _ihm_derived_distance_restraint.dataset_list_id
          1    7    21    'upper bound'  8.0  0.8  1  
          2   16    19    'upper bound'  8.0  0.5  1  
          3    8    40    'upper bound'  8.0  0.8  1  
          4   35    43    'upper bound'  8.0  0.6  1  
          5   23    45    'upper bound'  8.0  0.7  1  
          6   86    94    'upper bound'  8.0  0.7  1  
          7   63    80    'upper bound'  8.0  0.5  1  
          8   15    33    'upper bound'  8.0  0.5  1  
          9   41    52    'upper bound'  8.0  0.9  1  
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_derived_distance_restraint
   #
save_
#
save__ihm_derived_distance_restraint.id
   _item_description.description  "     A unique identifier for the derived distance restraint."
   #
   _item.name            "_ihm_derived_distance_restraint.id"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_derived_distance_restraint.group_id
   _item_description.description  
;     An identifier to group the distance restraints. 
      This can be the same as the _ihm_derived_distance_restraint.id in case
      the some of the restraints are not grouped.
;

   #
   _item.name            "_ihm_derived_distance_restraint.group_id"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_derived_distance_restraint.feature_id_1
   _item_description.description  
;     The feature identifier for the first partner in the distance restraint. 
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_derived_distance_restraint.feature_id_1"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_distance_restraint.feature_id_1"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_derived_distance_restraint.feature_id_2
   _item_description.description  
;     The feature identifier for the second partner in the distance restraint.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_derived_distance_restraint.feature_id_2"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_distance_restraint.feature_id_2"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_derived_distance_restraint.group_conditionality
   _item_description.description  
;     If a group of atoms or residues are restrained, this data item defines 
      the conditionality based on which the restraint is applied in the modeling.
;

   #
   _item.name            "_ihm_derived_distance_restraint.group_conditionality"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     ALL  "All distances among the group of atoms or residues are restrained"  
     ANY  "Any one of the distances among the group of atoms or residues could be satisfied"  
   #
save_
#
save__ihm_derived_distance_restraint.random_exclusion_fraction
   _item_description.description  
;    The fraction of randomly excluded distance restraints during modeling. 
     In HADDOCK, this is used along with ambiguous interface restraints (AIRs) 
     to account for uncertainties in AIRs.
;

   #
   _item.name            "_ihm_derived_distance_restraint.random_exclusion_fraction"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_derived_distance_restraint.distance_lower_limit
   _item_description.description  
;     The lower limit to the distance threshold applied to this distance restraint
      in the integrative modeling task.
;

   #
   _item.name            "_ihm_derived_distance_restraint.distance_lower_limit"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_derived_distance_restraint.distance_upper_limit
   _item_description.description  
;     The upper limit to the distance threshold applied to this distance restraint
      in the integrative modeling task.
;

   #
   _item.name            "_ihm_derived_distance_restraint.distance_upper_limit"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_derived_distance_restraint.distance_lower_limit_esd
   _item_description.description  
;     The estimated standard deviation of the lower limit distance threshold applied to this distance restraint
      in the integrative modeling task.
;

   #
   _item.name            "_ihm_derived_distance_restraint.distance_lower_limit_esd"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_derived_distance_restraint.distance_upper_limit_esd
   _item_description.description  
;     The estimated standard deviation of the upper limit distance threshold applied to this distance restraint
      in the integrative modeling task.
;

   #
   _item.name            "_ihm_derived_distance_restraint.distance_upper_limit_esd"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_derived_distance_restraint.probability
   _item_description.description  
;      The real number that indicates the probability that the distance restraint 
       is correct. This number should fall between 0.0 and 1.0.
;

   #
   _item.name            "_ihm_derived_distance_restraint.probability"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   loop_
   _item_range.minimum
   _item_range.maximum
     0.0  0.0  
     0.0  1.0  
     1.0  1.0  
   #
save_
#
save__ihm_derived_distance_restraint.restraint_type
   _item_description.description  "     The type of distance restraint applied."
   #
   _item.name            "_ihm_derived_distance_restraint.restraint_type"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     "lower bound"  
     "upper bound"  
     "lower and upper bound"  
     harmonic  
   #
save_
#
save__ihm_derived_distance_restraint.mic_value
   _item_description.description  
;     The value of the Maximal Information Co-efficient (MIC), if applicable. 
      MIC values are correlation measures derived from the genetic profiles
      and are used to derive restraint information  from quantitative measurements 
      of genetic interactions.
;

   #
   _item.name            "_ihm_derived_distance_restraint.mic_value"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_derived_distance_restraint.distance_threshold_mean
   _item_description.description  "     The distance threshold mean applied to the restraint."
   #
   _item.name            "_ihm_derived_distance_restraint.distance_threshold_mean"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_derived_distance_restraint.distance_threshold_esd
   _item_description.description  "     The estimated standard deviation of the distance threshold applied to the restraint."
   #
   _item.name            "_ihm_derived_distance_restraint.distance_threshold_esd"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_derived_distance_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the input data from which the distance restraint is derived.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category. 
      This data item may not be applicable for all cases. For example, in case of
      ambiguous interface restraints where the interface residues are identified
      from multiple experiments, the reference to the _ihm_dataset_list.id is 
      handled in the IHM_INTERFACE_RESIDUE_FEATURE category rather than here.
;

   #
   _item.name            "_ihm_derived_distance_restraint.dataset_list_id"
   _item.category_id     ihm_derived_distance_restraint
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_distance_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save_ihm_derived_angle_restraint
   _category.description     
;              Data items in the IHM_DERIVED_ANGLE_RESTRAINT category records the
               list of angle restraints used in the integrative modeling experiment. 
               These angle restraints may be derived from various kinds of experiments.
;

   _category.id              ihm_derived_angle_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_derived_angle_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_derived_angle_restraint.id
        _ihm_derived_angle_restraint.feature_id_1
        _ihm_derived_angle_restraint.feature_id_2
        _ihm_derived_angle_restraint.feature_id_3
        _ihm_derived_angle_restraint.restraint_type
        _ihm_derived_angle_restraint.harmonic_angle_threshold_mean
        _ihm_derived_angle_restraint.harmonic_angle_threshold_esd
        _ihm_derived_angle_restraint.dataset_list_id
         1  9 17  1 'harmonic' 114.6 1.0 5
         2 10 18  2 'harmonic' 116.9 1.0 5
         3 11 19  3 'harmonic' 112.9 1.0 5
         4 12 20  4 'harmonic' 108.9 1.0 5
         5 13 21  5 'harmonic' 114.6 1.0 5
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_derived_angle_restraint
   #
save_
#
save__ihm_derived_angle_restraint.id
   _item_description.description  "     A unique identifier for the derived angle restraint."
   #
   _item.name            "_ihm_derived_angle_restraint.id"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_derived_angle_restraint.group_id
   _item_description.description  
;     An identifier to group the angle restraints. 
      This can be the same as the _ihm_derived_angle_restraint.id in case
      the restraints are not grouped.
;

   #
   _item.name            "_ihm_derived_angle_restraint.group_id"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_derived_angle_restraint.feature_id_1
   _item_description.description  
;     The feature identifier for the first partner in the angle restraint. 
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_derived_angle_restraint.feature_id_1"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_angle_restraint.feature_id_1"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_derived_angle_restraint.feature_id_2
   _item_description.description  
;     The feature identifier for the second partner in the angle restraint.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_derived_angle_restraint.feature_id_2"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_angle_restraint.feature_id_2"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_derived_angle_restraint.feature_id_3
   _item_description.description  
;     The feature identifier for the third partner in the angle restraint.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_derived_angle_restraint.feature_id_3"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_angle_restraint.feature_id_3"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_derived_angle_restraint.group_conditionality
   _item_description.description  
;     If a group of angles are restrained together, this data item defines 
      the conditionality based on which the restraint is applied in the modeling.
;

   #
   _item.name            "_ihm_derived_angle_restraint.group_conditionality"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     ALL  "All angles in the group are required to be satisfied"  
     ANY  "Any one of the angles in the group could be satisfied"  
   #
save_
#
save__ihm_derived_angle_restraint.angle_lower_limit
   _item_description.description  
;     The lower limit to the threshold applied to this angle restraint
      in the integrative modeling task.
;

   #
   _item.name            "_ihm_derived_angle_restraint.angle_lower_limit"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_angle_restraint.angle_upper_limit
   _item_description.description  
;     The upper limit to the threshold applied to this angle restraint
      in the integrative modeling task.
;

   #
   _item.name            "_ihm_derived_angle_restraint.angle_upper_limit"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_angle_restraint.angle_lower_limit_esd
   _item_description.description  "     The estimated standard deviation of the lower limit angle threshold applied."
   #
   _item.name            "_ihm_derived_angle_restraint.angle_lower_limit_esd"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_angle_restraint.angle_upper_limit_esd
   _item_description.description  "     The estimated standard deviation of the upper limit angle threshold applied."
   #
   _item.name            "_ihm_derived_angle_restraint.angle_upper_limit_esd"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_angle_restraint.probability
   _item_description.description  
;      The real number that indicates the probability that the angle restraint 
       is correct. This number should fall between 0.0 and 1.0.
;

   #
   _item.name            "_ihm_derived_angle_restraint.probability"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   loop_
   _item_range.minimum
   _item_range.maximum
     0.0  0.0  
     0.0  1.0  
     1.0  1.0  
   #
save_
#
save__ihm_derived_angle_restraint.restraint_type
   _item_description.description  "     The type of angle restraint applied."
   #
   _item.name            "_ihm_derived_angle_restraint.restraint_type"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     "lower bound"  
     "upper bound"  
     "lower and upper bound"  
     harmonic  
   #
save_
#
save__ihm_derived_angle_restraint.angle_threshold_mean
   _item_description.description  "     The angle threshold mean applied to the restraint."
   #
   _item.name            "_ihm_derived_angle_restraint.angle_threshold_mean"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_angle_restraint.angle_threshold_esd
   _item_description.description  "     The estimated standard deviation of the angle threshold applied to the restraint."
   #
   _item.name            "_ihm_derived_angle_restraint.angle_threshold_esd"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_angle_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the input data from which the angle restraint is derived.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_derived_angle_restraint.dataset_list_id"
   _item.category_id     ihm_derived_angle_restraint
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_angle_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save_ihm_derived_dihedral_restraint
   _category.description     
;              Data items in the IHM_DERIVED_DIHEDRAL_RESTRAINT category records the
               list of dihedral restraints used in the integrative modeling experiment. 
               These dihedral restraints may be derived from various kinds of experiments.
;

   _category.id              ihm_derived_dihedral_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_derived_dihedral_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_derived_dihedral_restraint.id
        _ihm_derived_dihedral_restraint.feature_id_1
        _ihm_derived_dihedral_restraint.feature_id_2
        _ihm_derived_dihedral_restraint.feature_id_3
        _ihm_derived_dihedral_restraint.feature_id_4
        _ihm_derived_dihedral_restraint.restraint_type
        _ihm_derived_dihedral_restraint.harmonic_dihedral_threshold_mean
        _ihm_derived_dihedral_restraint.harmonic_dihedral_threshold_esd
        _ihm_derived_dihedral_restraint.dataset_list_id
         1 25  9 17  1 'harmonic'  56.1 2.3 6
         2 26 10 18  2 'harmonic' -52.7 2.3 6
         3 27 11 19  3 'harmonic' -71.6 2.3 6
         4 28 12 20  4 'harmonic'  58.4 2.3 6
         5 29 13 21  5 'harmonic'  56.1 2.3 6
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_derived_dihedral_restraint
   #
save_
#
save__ihm_derived_dihedral_restraint.id
   _item_description.description  "     A unique identifier for the derived dihedral restraint."
   #
   _item.name            "_ihm_derived_dihedral_restraint.id"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_derived_dihedral_restraint.group_id
   _item_description.description  
;     An identifier to group the dihedral restraints. 
      This can be the same as the _ihm_derived_dihedral_restraint.id in case
      the restraints are not grouped.
;

   #
   _item.name            "_ihm_derived_dihedral_restraint.group_id"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
save_
#
save__ihm_derived_dihedral_restraint.feature_id_1
   _item_description.description  
;     The feature identifier for the first partner in the dihedral restraint. 
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_derived_dihedral_restraint.feature_id_1"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_dihedral_restraint.feature_id_1"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_derived_dihedral_restraint.feature_id_2
   _item_description.description  
;     The feature identifier for the second partner in the dihedral restraint.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_derived_dihedral_restraint.feature_id_2"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_dihedral_restraint.feature_id_2"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_derived_dihedral_restraint.feature_id_3
   _item_description.description  
;     The feature identifier for the third partner in the dihedral restraint.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_derived_dihedral_restraint.feature_id_3"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_dihedral_restraint.feature_id_3"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_derived_dihedral_restraint.feature_id_4
   _item_description.description  
;     The feature identifier for the fourth partner in the dihedral restraint.
      This data item is a pointer to _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_derived_dihedral_restraint.feature_id_4"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_dihedral_restraint.feature_id_4"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_derived_dihedral_restraint.group_conditionality
   _item_description.description  
;     If a group of dihedrals are restrained together, this data item defines 
      the conditionality based on which the restraint is applied in the modeling.
;

   #
   _item.name            "_ihm_derived_dihedral_restraint.group_conditionality"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     ALL  "All dihedrals in the group are required to be satisfied"  
     ANY  "Any one of the dihedrals in the group could be satisfied"  
   #
save_
#
save__ihm_derived_dihedral_restraint.dihedral_lower_limit
   _item_description.description  
;     The lower limit to the threshold applied to this dihedral restraint
      in the integrative modeling task.
;

   #
   _item.name            "_ihm_derived_dihedral_restraint.dihedral_lower_limit"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_dihedral_restraint.dihedral_upper_limit
   _item_description.description  
;     The upper limit to the threshold applied to this dihedral restraint
      in the integrative modeling task.
;

   #
   _item.name            "_ihm_derived_dihedral_restraint.dihedral_upper_limit"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_dihedral_restraint.dihedral_lower_limit_esd
   _item_description.description  "     The estimated standard deviation of the lower limit dihedral threshold applied."
   #
   _item.name            "_ihm_derived_dihedral_restraint.dihedral_lower_limit_esd"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_dihedral_restraint.dihedral_upper_limit_esd
   _item_description.description  "     The estimated standard deviation of the upper limit dihedral threshold applied."
   #
   _item.name            "_ihm_derived_dihedral_restraint.dihedral_upper_limit_esd"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_dihedral_restraint.probability
   _item_description.description  
;      The real number that indicates the probability that the dihedral restraint 
       is correct. This number should fall between 0.0 and 1.0.
;

   #
   _item.name            "_ihm_derived_dihedral_restraint.probability"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   loop_
   _item_range.minimum
   _item_range.maximum
     0.0  0.0  
     0.0  1.0  
     1.0  1.0  
   #
save_
#
save__ihm_derived_dihedral_restraint.restraint_type
   _item_description.description  "     The type of dihedral restraint applied."
   #
   _item.name            "_ihm_derived_dihedral_restraint.restraint_type"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     "lower bound"  
     "upper bound"  
     "lower and upper bound"  
     harmonic  
   #
save_
#
save__ihm_derived_dihedral_restraint.dihedral_threshold_mean
   _item_description.description  "     The dihedral threshold mean applied to the restraint."
   #
   _item.name            "_ihm_derived_dihedral_restraint.dihedral_threshold_mean"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_dihedral_restraint.dihedral_threshold_esd
   _item_description.description  "     The estimated standard deviation of the dihedral threshold applied to the restraint."
   #
   _item.name            "_ihm_derived_dihedral_restraint.dihedral_threshold_esd"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  degrees
   #
save_
#
save__ihm_derived_dihedral_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the input data from which the dihedral restraint is derived.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_derived_dihedral_restraint.dataset_list_id"
   _item.category_id     ihm_derived_dihedral_restraint
   _item.mandatory_code  no
   #
   _pdbx_item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_derived_dihedral_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save_ihm_geometric_object_list
   _category.description     
;              Data items in the IHM_GEOMETRIC_OBJECT_LIST category records the list of
               geometric objects used as restraints in the integrative modeling study.
;

   _category.id              ihm_geometric_object_list
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_geometric_object_list.object_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_geometric_object_list.object_id
        _ihm_geometric_object_list.object_type
        _ihm_geometric_object_list.object_name
        _ihm_geometric_object_list.object_description
          1   sphere            .                   . 
          2   half-torus    'Nuclear membrane'   'Half-torus representing the nuclear membrane'
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_geometric_object_list
   #
save_
#
save__ihm_geometric_object_list.object_id
   _item_description.description  "     A unique identifier for the geometric object."
   #
   _item.name            "_ihm_geometric_object_list.object_id"
   _item.category_id     ihm_geometric_object_list
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_geometric_object_list.object_type
   _item_description.description  "     The type of geometric object."
   #
   _item.name            "_ihm_geometric_object_list.object_type"
   _item.category_id     ihm_geometric_object_list
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     sphere      
     axis        
     plane       
     torus       
     half-torus  
     other       
   #
save_
#
save__ihm_geometric_object_list.object_name
   _item_description.description  "     User-provided name for the object."
   #
   _item.name            "_ihm_geometric_object_list.object_name"
   _item.category_id     ihm_geometric_object_list
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   _item_examples.case  "Nuclear membrane"
   #
save_
#
save__ihm_geometric_object_list.object_description
   _item_description.description  "     Brief description of the geometric object."
   #
   _item.name            "_ihm_geometric_object_list.object_description"
   _item.category_id     ihm_geometric_object_list
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
   _item_examples.case  "Half-torus representing the nuclear membrane"
   #
save_
#
save_ihm_geometric_object_center
   _category.description     
;              Data items in the IHM_GEOMETRIC_OBJECT_CENTER category records the center of
               geometric objects used as restraints in the integrative modeling study.
;

   _category.id              ihm_geometric_object_center
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_geometric_object_center.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_geometric_object_center.id
        _ihm_geometric_object_center.xcoord
        _ihm_geometric_object_center.ycoord
        _ihm_geometric_object_center.zcoord
          1  0.0 0.0 0.0
          2  1.0 0.0 0.0
          3  0.0 1.0 0.0
          4  0.0 0.0 1.0
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_geometric_object_center
   #
save_
#
save__ihm_geometric_object_center.id
   _item_description.description  "     A unique identifier for the center."
   #
   _item.name            "_ihm_geometric_object_center.id"
   _item.category_id     ihm_geometric_object_center
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_geometric_object_center.xcoord
   _item_description.description  "     The x-coordinate of the center."
   #
   _item.name            "_ihm_geometric_object_center.xcoord"
   _item.category_id     ihm_geometric_object_center
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_center.ycoord
   _item_description.description  "     The y-coordinate of the center."
   #
   _item.name            "_ihm_geometric_object_center.ycoord"
   _item.category_id     ihm_geometric_object_center
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_center.zcoord
   _item_description.description  "     The z-coordinate of the center."
   #
   _item.name            "_ihm_geometric_object_center.zcoord"
   _item.category_id     ihm_geometric_object_center
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
save_
#
save_ihm_geometric_object_transformation
   _category.description     
;              Data items in the IHM_GEOMETRIC_OBJECT_TRANSFORMATION category records the
               details of the rotation matrix and translation vector applied for transforming
               the geometric object. 
               If no transformation is provide, identity transformation is assumed.
;

   _category.id              ihm_geometric_object_transformation
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_geometric_object_transformation.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
    _ihm_geometric_object_transformation.id                              1
    _ihm_geometric_object_transformation.rot_matrix[1][1]                1.0
    _ihm_geometric_object_transformation.rot_matrix[2][1]                0.0
    _ihm_geometric_object_transformation.rot_matrix[3][1]                0.0
    _ihm_geometric_object_transformation.rot_matrix[1][2]                0.0
    _ihm_geometric_object_transformation.rot_matrix[2][2]                1.0
    _ihm_geometric_object_transformation.rot_matrix[3][2]                0.0
    _ihm_geometric_object_transformation.rot_matrix[1][3]                0.0
    _ihm_geometric_object_transformation.rot_matrix[2][3]                0.0
    _ihm_geometric_object_transformation.rot_matrix[3][3]                1.0
    _ihm_geometric_object_transformation.tr_vector[1]                    0.0
    _ihm_geometric_object_transformation.tr_vector[2]                    0.0
    _ihm_geometric_object_transformation.tr_vector[3]                    0.0
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_geometric_object_transformation
   #
save_
#
save__ihm_geometric_object_transformation.id
   _item_description.description  "     A unique identifier for the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.id"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_geometric_object_transformation.rot_matrix[1][1]
   _item_description.description  "     Data item [1][1] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.rot_matrix[1][1]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.rot_matrix[2][1]
   _item_description.description  "     Data item [2][1] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.rot_matrix[2][1]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.rot_matrix[3][1]
   _item_description.description  "     Data item [3][1] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.rot_matrix[3][1]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.rot_matrix[1][2]
   _item_description.description  "     Data item [1][2] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.rot_matrix[1][2]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.rot_matrix[2][2]
   _item_description.description  "     Data item [2][2] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.rot_matrix[2][2]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.rot_matrix[3][2]
   _item_description.description  "     Data item [3][2] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.rot_matrix[3][2]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.rot_matrix[1][3]
   _item_description.description  "     Data item [1][3] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.rot_matrix[1][3]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.rot_matrix[2][3]
   _item_description.description  "     Data item [2][3] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.rot_matrix[2][3]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.rot_matrix[3][3]
   _item_description.description  "     Data item [3][3] of the rotation matrix used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.rot_matrix[3][3]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  matrix
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.tr_vector[1]
   _item_description.description  "     Data item [1] of the translation vector used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.tr_vector[1]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  vector
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.tr_vector[2]
   _item_description.description  "     Data item [2] of the translation vector used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.tr_vector[2]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  vector
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_transformation.tr_vector[3]
   _item_description.description  "     Data item [3] of the translation vector used in the transformation."
   #
   _item.name            "_ihm_geometric_object_transformation.tr_vector[3]"
   _item.category_id     ihm_geometric_object_transformation
   _item.mandatory_code  no
   #
   _item_sub_category.id  vector
   #
   _item_type.code  float
   #
save_
#
save_ihm_geometric_object_sphere
   _category.description     
;              Data items in the IHM_GEOMETRIC_OBJECT_SPHERE category records the parameters of
               a sphere.
;

   _category.id              ihm_geometric_object_sphere
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_geometric_object_sphere.object_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_geometric_object_sphere.object_id
        _ihm_geometric_object_sphere.center_id
        _ihm_geometric_object_sphere.transformation_id
        _ihm_geometric_object_sphere.radius_r
          1  1  1  1.0 
          2  2  2  2.0 
          3  3  3  3.0 
          4  4  4  4.0 
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_geometric_object_sphere
   #
save_
#
save__ihm_geometric_object_sphere.object_id
   _item_description.description  
;     Identifier to the geometric object.
      This data item is a pointer to the _ihm_geometric_object_list.object_id in the
      IHM_GEOMETRIC_OBJECT_LIST category.
;

   #
   _item.name            "_ihm_geometric_object_sphere.object_id"
   _item.category_id     ihm_geometric_object_sphere
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_sphere.object_id"
   _item_linked.parent_name  "_ihm_geometric_object_list.object_id"
   #
save_
#
save__ihm_geometric_object_sphere.center_id
   _item_description.description  
;     Identifier to the description of the center.
      This data item is a pointer to the _ihm_geometric_object_center.id in the
      IHM_GEOMETRIC_OBJECT_CENTER category.
;

   #
   _item.name            "_ihm_geometric_object_sphere.center_id"
   _item.category_id     ihm_geometric_object_sphere
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_sphere.center_id"
   _item_linked.parent_name  "_ihm_geometric_object_center.id"
   #
save_
#
save__ihm_geometric_object_sphere.transformation_id
   _item_description.description  
;     Identifier to the description of the transformation.
      This data item is a pointer to the _ihm_geometric_object_transformation.id in the
      IHM_GEOMETRIC_OBJECT_TRANSFORMATION category.
      If no transformation is provide, identity transformation is assumed.
;

   #
   _item.name            "_ihm_geometric_object_sphere.transformation_id"
   _item.category_id     ihm_geometric_object_sphere
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_sphere.transformation_id"
   _item_linked.parent_name  "_ihm_geometric_object_transformation.id"
   #
save_
#
save__ihm_geometric_object_sphere.radius_r
   _item_description.description  '     Radius "r" of the sphere.'
   #
   _item.name            "_ihm_geometric_object_sphere.radius_r"
   _item.category_id     ihm_geometric_object_sphere
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save_ihm_geometric_object_torus
   _category.description     
;              Data items in the IHM_GEOMETRIC_OBJECT_TORUS category records the parameters of
               a torus. By definition, the base plane of the torus is the XY plane. The
               `ihm_geometric_object_transformation` category can be used to generate
               transformations to any other plane.
;

   _category.id              ihm_geometric_object_torus
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_geometric_object_torus.object_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_geometric_object_torus.object_id
        _ihm_geometric_object_torus.center_id
        _ihm_geometric_object_torus.transformation_id
        _ihm_geometric_object_torus.major_radius_R
        _ihm_geometric_object_torus.minor_radius_r
          1  1  1  5.0  1.0  
          2  2  2  5.0  2.0  
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_geometric_object_torus
   #
save_
#
save__ihm_geometric_object_torus.object_id
   _item_description.description  
;     Identifier to the geometric object.
      This data item is a pointer to the _ihm_geometric_object_list.object_id in the
      IHM_GEOMETRIC_OBJECT_LIST category.
;

   #
   _item.name            "_ihm_geometric_object_torus.object_id"
   _item.category_id     ihm_geometric_object_torus
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_torus.object_id"
   _item_linked.parent_name  "_ihm_geometric_object_list.object_id"
   #
save_
#
save__ihm_geometric_object_torus.center_id
   _item_description.description  
;     Identifier to the description of the center.
      This data item is a pointer to the _ihm_geometric_object_center.id in the
      IHM_GEOMETRIC_OBJECT_CENTER category.
;

   #
   _item.name            "_ihm_geometric_object_torus.center_id"
   _item.category_id     ihm_geometric_object_torus
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_torus.center_id"
   _item_linked.parent_name  "_ihm_geometric_object_center.id"
   #
save_
#
save__ihm_geometric_object_torus.transformation_id
   _item_description.description  
;     Identifier to the description of the transformation.
      This data item is a pointer to the _ihm_geometric_object_transformation.id in the
      IHM_GEOMETRIC_OBJECT_TRANSFORMATION category.
      If no transformation is provide, identity transformation is assumed.
;

   #
   _item.name            "_ihm_geometric_object_torus.transformation_id"
   _item.category_id     ihm_geometric_object_torus
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_torus.transformation_id"
   _item_linked.parent_name  "_ihm_geometric_object_transformation.id"
   #
save_
#
save__ihm_geometric_object_torus.major_radius_R
   _item_description.description  '     Major radius "R" of the torus.'
   #
   _item.name            "_ihm_geometric_object_torus.major_radius_R"
   _item.category_id     ihm_geometric_object_torus
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_geometric_object_torus.minor_radius_r
   _item_description.description  '     Minor radius "r" of the torus.'
   #
   _item.name            "_ihm_geometric_object_torus.minor_radius_r"
   _item.category_id     ihm_geometric_object_torus
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save_ihm_geometric_object_half_torus
   _category.description     
;              Data items in the IHM_GEOMETRIC_OBJECT_HALF_TORUS category records the parameters of
               half-torus that represents a membrane.
;

   _category.id              ihm_geometric_object_half_torus
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_geometric_object_half_torus.object_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_geometric_object_half_torus.object_id
        _ihm_geometric_object_half_torus.thickness_th
        _ihm_geometric_object_half_torus.section
          1  1.0  inner
          2  2.0  inner
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_geometric_object_half_torus
   #
save_
#
save__ihm_geometric_object_half_torus.object_id
   _item_description.description  
;     Identifier to the geometric object.
      This data item is a pointer to the _ihm_geometric_object_torus.object_id in the
      IHM_GEOMETRIC_OBJECT_TORUS category.
;

   #
   _item.name            "_ihm_geometric_object_half_torus.object_id"
   _item.category_id     ihm_geometric_object_half_torus
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_half_torus.object_id"
   _item_linked.parent_name  "_ihm_geometric_object_torus.object_id"
   #
save_
#
save__ihm_geometric_object_half_torus.thickness_th
   _item_description.description  '     Thickness "th" of the half-torus.'
   #
   _item.name            "_ihm_geometric_object_half_torus.thickness_th"
   _item.category_id     ihm_geometric_object_half_torus
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_geometric_object_half_torus.section
   _item_description.description  "    The section of the torus representing the half-torus."
   #
   _item.name            "_ihm_geometric_object_half_torus.section"
   _item.category_id     ihm_geometric_object_half_torus
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     "inner half"  
     "outer half"  
     other  
   #
save_
#
save_ihm_geometric_object_axis
   _category.description     
;              Data items in the IHM_GEOMETRIC_OBJECT_AXIS category records the details of
               an axis used in a spatial restraint.
;

   _category.id              ihm_geometric_object_axis
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_geometric_object_axis.object_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_geometric_object_axis.object_id
        _ihm_geometric_object_axis.axis_type
          1  x-axis
          2  y-axis
          3  z-axis
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_geometric_object_axis
   #
save_
#
save__ihm_geometric_object_axis.object_id
   _item_description.description  
;     Identifier to the geometric object.
      This data item is a pointer to the _ihm_geometric_object_list.object_id in the
      IHM_GEOMETRIC_OBJECT_LIST category.
;

   #
   _item.name            "_ihm_geometric_object_axis.object_id"
   _item.category_id     ihm_geometric_object_axis
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_axis.object_id"
   _item_linked.parent_name  "_ihm_geometric_object_list.object_id"
   #
save_
#
save__ihm_geometric_object_axis.axis_type
   _item_description.description  "     The type of axis."
   #
   _item.name            "_ihm_geometric_object_axis.axis_type"
   _item.category_id     ihm_geometric_object_axis
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
     x-axis  
     y-axis  
     z-axis  
   #
save_
#
save__ihm_geometric_object_axis.transformation_id
   _item_description.description  
;     Identifier to the description of the transformation.
      This data item is a pointer to the _ihm_geometric_object_transformation.id in the
      IHM_GEOMETRIC_OBJECT_TRANSFORMATION category.
      If no transformation is provide, identity transformation is assumed.
;

   #
   _item.name            "_ihm_geometric_object_axis.transformation_id"
   _item.category_id     ihm_geometric_object_axis
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_axis.transformation_id"
   _item_linked.parent_name  "_ihm_geometric_object_transformation.id"
   #
save_
#
save_ihm_geometric_object_plane
   _category.description     
;              Data items in the IHM_GEOMETRIC_OBJECT_PLANE category records the details of
               a plane used in a spatial restraint.
;

   _category.id              ihm_geometric_object_plane
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_geometric_object_plane.object_id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_geometric_object_plane.object_id
        _ihm_geometric_object_plane.plane_type
          1  xy-plane
          2  yz-plane
          3  xz-plane
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_geometric_object_plane
   #
save_
#
save__ihm_geometric_object_plane.object_id
   _item_description.description  
;     Identifier to the geometric object.
      This data item is a pointer to the _ihm_geometric_object_list.object_id in the
      IHM_GEOMETRIC_OBJECT_LIST category.
;

   #
   _item.name            "_ihm_geometric_object_plane.object_id"
   _item.category_id     ihm_geometric_object_plane
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_plane.object_id"
   _item_linked.parent_name  "_ihm_geometric_object_list.object_id"
   #
save_
#
save__ihm_geometric_object_plane.plane_type
   _item_description.description  "     The type of plane."
   #
   _item.name            "_ihm_geometric_object_plane.plane_type"
   _item.category_id     ihm_geometric_object_plane
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
     xy-plane  
     yz-plane  
     xz-plane  
   #
save_
#
save__ihm_geometric_object_plane.transformation_id
   _item_description.description  
;     Identifier to the description of the transformation.
      This data item is a pointer to the _ihm_geometric_object_transformation.id in the
      IHM_GEOMETRIC_OBJECT_TRANSFORMATION category.
      If no transformation is provide, identity transformation is assumed.
;

   #
   _item.name            "_ihm_geometric_object_plane.transformation_id"
   _item.category_id     ihm_geometric_object_plane
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_plane.transformation_id"
   _item_linked.parent_name  "_ihm_geometric_object_transformation.id"
   #
save_
#
save_ihm_geometric_object_distance_restraint
   _category.description     
;              Data items in the IHM_GEOMETRIC_OBJECT_DISTANCE_RESTRAINT category records the
               details of distance restraints involving geometric objects.
        
               If the geometric object involved is a plane, then the distance 
               is along the normal following the right-hand rule. 
               So for the xy plane, distance is along the z axis in the positive
               direction, 'above' the plane such that negative distances
               corresponded to positions below the plane.
;

   _category.id              ihm_geometric_object_distance_restraint
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_geometric_object_distance_restraint.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_geometric_object_distance_restraint.id
        _ihm_geometric_object_distance_restraint.object_id
        _ihm_geometric_object_distance_restraint.feature_id
        _ihm_geometric_object_distance_restraint.object_characteristic
        _ihm_geometric_object_distance_restraint.restraint_type
        _ihm_geometric_object_distance_restraint.harmonic_force_constant
        _ihm_geometric_object_distance_restraint.dataset_list_id
          1   1    21    'inner surface'    'harmonic'  1.0  1
          2   1    22    'inner surface'    'harmonic'  1.0  1
          3   1    23    'inner surface'    'harmonic'  1.0  1
          4   1    24    'inner surface'    'harmonic'  1.0  1
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_geometric_object_distance_restraint
   #
save_
#
save__ihm_geometric_object_distance_restraint.id
   _item_description.description  "     A unique id for the geometric object distance restraint."
   #
   _item.name            "_ihm_geometric_object_distance_restraint.id"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_geometric_object_distance_restraint.object_id
   _item_description.description  
;     Identifier to the geometric object involved in the distance restraint.
      This data item is a pointer to the _ihm_geometric_object_list.object_id in the
      IHM_GEOMETRIC_OBJECT_LIST category.
;

   #
   _item.name            "_ihm_geometric_object_distance_restraint.object_id"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_distance_restraint.object_id"
   _item_linked.parent_name  "_ihm_geometric_object_list.object_id"
   #
save_
#
save__ihm_geometric_object_distance_restraint.feature_id
   _item_description.description  
;     Identifier to the molecular feature involved in the distance restraint.
      This data item is a pointer to the _ihm_feature_list.feature_id in the
      IHM_FEATURE_LIST category.
;

   #
   _item.name            "_ihm_geometric_object_distance_restraint.feature_id"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_distance_restraint.feature_id"
   _item_linked.parent_name  "_ihm_feature_list.feature_id"
   #
save_
#
save__ihm_geometric_object_distance_restraint.object_characteristic
   _item_description.description  "     The characteristic of the geometric object used in the restraint."
   #
   _item.name            "_ihm_geometric_object_distance_restraint.object_characteristic"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     center  
     "inner surface"  
     "outer surface"  
     axis  
     plane  
     other  
   #
save_
#
save__ihm_geometric_object_distance_restraint.restraint_type
   _item_description.description  "     The type of restraint applied."
   #
   _item.name            "_ihm_geometric_object_distance_restraint.restraint_type"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  yes
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
     "upper bound"  
     "lower bound"  
     "lower and upper bound"  
     harmonic  
     other  
   #
save_
#
save__ihm_geometric_object_distance_restraint.harmonic_force_constant
   _item_description.description  "    The harmonic force constant, if applicable."
   #
   _item.name            "_ihm_geometric_object_distance_restraint.harmonic_force_constant"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_geometric_object_distance_restraint.group_conditionality
   _item_description.description  
;     If a group of atoms or residues are restrained, this data item defines
      the conditionality based on which the restraint is applied in the modeling.
;

   #
   _item.name            "_ihm_geometric_object_distance_restraint.group_conditionality"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     ALL  "All distances among the group of atoms or residues are restrained"  
     ANY  "Any one of the distances among the group of atoms or residues could be satisfied"  
   #
save_
#
save__ihm_geometric_object_distance_restraint.distance_lower_limit
   _item_description.description  "     The lower limit to the distance threshold, if applicable."
   #
   _item.name            "_ihm_geometric_object_distance_restraint.distance_lower_limit"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_geometric_object_distance_restraint.distance_upper_limit
   _item_description.description  "     The upper limit to the distance threshold, if applicable."
   #
   _item.name            "_ihm_geometric_object_distance_restraint.distance_upper_limit"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_geometric_object_distance_restraint.distance_lower_limit_esd
   _item_description.description  "     The estimated standard deviation of the lower limit distance threshold, if applicable."
   #
   _item.name            "_ihm_geometric_object_distance_restraint.distance_lower_limit_esd"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_geometric_object_distance_restraint.distance_upper_limit_esd
   _item_description.description  "     The estimated standard deviation of the upper limit distance threshold, if applicable."
   #
   _item.name            "_ihm_geometric_object_distance_restraint.distance_upper_limit_esd"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  angstroms
   #
save_
#
save__ihm_geometric_object_distance_restraint.distance_probability
   _item_description.description  
;      The real number that indicates the probability that the distance restraint
       is correct. This number should fall between 0.0 and 1.0.
;

   #
   _item.name            "_ihm_geometric_object_distance_restraint.distance_probability"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   loop_
   _item_range.minimum
   _item_range.maximum
     0.0  0.0  
     0.0  1.0  
     1.0  1.0  
   #
save_
#
save__ihm_geometric_object_distance_restraint.dataset_list_id
   _item_description.description  
;     Identifier to the input data from which the restraint is derived.
      This data item is a pointer to the _ihm_dataset_list.id in the
      IHM_DATASET_LIST category.
;

   #
   _item.name            "_ihm_geometric_object_distance_restraint.dataset_list_id"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_geometric_object_distance_restraint.dataset_list_id"
   _item_linked.parent_name  "_ihm_dataset_list.id"
   #
save_
#
save__ihm_geometric_object_distance_restraint.details
   _item_description.description  
;     Additional details about the geometric object distance restraints, 
      especially if _ihm_geometric_object_distance_restraint.restraint_type or
      _ihm_geometric_object_distance_restraint.object_characteristic is "other".
;

   #
   _item.name            "_ihm_geometric_object_distance_restraint.details"
   _item.category_id     ihm_geometric_object_distance_restraint
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_entry_collection
   _category.description     
;       Data items in the IHM_ENTRY_COLLECTION category identify a
        collection of IHM entries belonging to a single deposition or group. 
;

   _category.id              ihm_entry_collection
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_entry_collection.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_entry_collection.id
        _ihm_entry_collection.name
        _ihm_entry_collection.details
         1  . .
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_entry_collection
   #
save_
#
save__ihm_entry_collection.id
   _item_description.description  "     A unique identifier for the entry collection assigned by the archive."
   #
   _item.name            "_ihm_entry_collection.id"
   _item.category_id     ihm_entry_collection
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
save_
#
save__ihm_entry_collection.name
   _item_description.description  "     Name for the entry collection."
   #
   _item.name            "_ihm_entry_collection.name"
   _item.category_id     ihm_entry_collection
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_entry_collection.details
   _item_description.description  "     Details about the entry collection."
   #
   _item.name            "_ihm_entry_collection.details"
   _item.category_id     ihm_entry_collection
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_entry_collection_mapping
   _category.description     
;       Data items in the IHM_ENTRY_COLLECTION_MAPPING category identify the
	    entries that belong to a collection. 
;

   _category.id              ihm_entry_collection_mapping
   _category.mandatory_code  no
   #
   loop_
   _category_key.name
     "_ihm_entry_collection_mapping.collection_id"  
     "_ihm_entry_collection_mapping.entry_id"  
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        loop_
        _ihm_entry_collection_mapping.collection_id
        _ihm_entry_collection_mapping.entry_id
         PDBDEV_G_1000001  PDBDEV_00000165
         PDBDEV_G_1000001  PDBDEV_00000198
         # ...  abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_entry_collection_mapping
   #
save_
#
save__ihm_entry_collection_mapping.collection_id
   _item_description.description  
;     Identifier for the entry collection. 
      This data item is a pointer to _ihm_entry_collection.id in the 
      IHM_ENTRY_COLLECTION category.
;

   #
   _item.name            "_ihm_entry_collection_mapping.collection_id"
   _item.category_id     ihm_entry_collection_mapping
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_entry_collection_mapping.collection_id"
   _item_linked.parent_name  "_ihm_entry_collection.id"
   #
save_
#
save__ihm_entry_collection_mapping.entry_id
   _item_description.description  
;     Identifier for the entry.
      This data item is a pointer to _entry.id in the 
      ENTRY category.
;

   #
   _item.name            "_ihm_entry_collection_mapping.entry_id"
   _item.category_id     ihm_entry_collection_mapping
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   _item_linked.child_name   "_ihm_entry_collection_mapping.entry_id"
   _item_linked.parent_name  "_entry.id"
   #
save_
#
save_ihm_multi_state_scheme
   _category.description     
;              Data items in the IHM_MULTI_STATE_SCHEME category provide details about
               collection of multiple states that can form a connected/ordered scheme.
;

   _category.id              ihm_multi_state_scheme
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_multi_state_scheme.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;

        # ... abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_multi_state_scheme
   #
save_
#
save__ihm_multi_state_scheme.id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_multi_state_scheme.id"
   _item.category_id     ihm_multi_state_scheme
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_multi_state_scheme.name
   _item_description.description  "     Name for the multi-state scheme."
   #
   _item.name            "_ihm_multi_state_scheme.name"
   _item.category_id     ihm_multi_state_scheme
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_multi_state_scheme.details
   _item_description.description  "     Details about the multi-state scheme."
   #
   _item.name            "_ihm_multi_state_scheme.details"
   _item.category_id     ihm_multi_state_scheme
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_multi_state_scheme_connectivity
   _category.description     
;              Data items in the IHM_MULTI_STATE_SCHEME_CONNECTIVITY category record the
               details of the ordered connectivities among states in a multi-state scheme.
;

   _category.id              ihm_multi_state_scheme_connectivity
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_multi_state_scheme_connectivity.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;

        # ... abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_multi_state_scheme_connectivity
   #
save_
#
save__ihm_multi_state_scheme_connectivity.id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_multi_state_scheme_connectivity.id"
   _item.category_id     ihm_multi_state_scheme_connectivity
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_multi_state_scheme_connectivity.scheme_id
   _item_description.description  
;     An identifier for the multi-state scheme.
      This data item is a pointer to _ihm_multi_state_scheme.id in the
      IHM_MULTI_STATE_SCHEME data category.
;

   #
   _item.name            "_ihm_multi_state_scheme_connectivity.scheme_id"
   _item.category_id     ihm_multi_state_scheme_connectivity
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_multi_state_scheme_connectivity.scheme_id"
   _item_linked.parent_name  "_ihm_multi_state_scheme.id"
   #
save_
#
save__ihm_multi_state_scheme_connectivity.begin_state_id
   _item_description.description  
;     An identifier for the starting state in the multi-state scheme.
      This data item is a pointer to _ihm_multi_state_modeling.state_id
      in the IHM_MULTI_STATE_MODELING data category.
;

   #
   _item.name            "_ihm_multi_state_scheme_connectivity.begin_state_id"
   _item.category_id     ihm_multi_state_scheme_connectivity
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_multi_state_scheme_connectivity.begin_state_id"
   _item_linked.parent_name  "_ihm_multi_state_modeling.state_id"
   #
save_
#
save__ihm_multi_state_scheme_connectivity.end_state_id
   _item_description.description  
;     An identifier for the ending state in the multi-state scheme.
      This data item is a pointer to _ihm_multi_state_modeling.state_id
      in the IHM_MULTI_STATE_MODELING data category.
;

   #
   _item.name            "_ihm_multi_state_scheme_connectivity.end_state_id"
   _item.category_id     ihm_multi_state_scheme_connectivity
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_multi_state_scheme_connectivity.end_state_id"
   _item_linked.parent_name  "_ihm_multi_state_modeling.state_id"
   #
save_
#
save__ihm_multi_state_scheme_connectivity.dataset_group_id
   _item_description.description  
;     Identifier for the dataset group from which the multi state scheme is obtained.
      This data item is a pointer to _ihm_dataset_group.id in the
      IHM_DATASET_GROUP data category.
;

   #
   _item.name            "_ihm_multi_state_scheme_connectivity.dataset_group_id"
   _item.category_id     ihm_multi_state_scheme_connectivity
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_multi_state_scheme_connectivity.dataset_group_id"
   _item_linked.parent_name  "_ihm_dataset_group.id"
   #
save_
#
save__ihm_multi_state_scheme_connectivity.details
   _item_description.description  "     Details about the multi-state scheme connectivity."
   #
   _item.name            "_ihm_multi_state_scheme_connectivity.details"
   _item.category_id     ihm_multi_state_scheme_connectivity
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_kinetic_rate
   _category.description     
;              Data items in the IHM_KINETIC_RATE category records the
               details of kinetic rates obtained from biophysical experiments.
;

   _category.id              ihm_kinetic_rate
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_kinetic_rate.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;

    #...abbreviated...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_kinetic_rate
   #
save_
#
save__ihm_kinetic_rate.id
   _item_description.description  "     An identifier for the kinetic rate."
   #
   _item.name            "_ihm_kinetic_rate.id"
   _item.category_id     ihm_kinetic_rate
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_kinetic_rate.transition_rate_constant
   _item_description.description  "     The transition rate constant per second."
   #
   _item.name            "_ihm_kinetic_rate.transition_rate_constant"
   _item.category_id     ihm_kinetic_rate
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
   _item_units.code  reciprocal_seconds
   #
save_
#
save__ihm_kinetic_rate.equilibrium_constant
   _item_description.description  "     The equilibrium constant."
   #
   _item.name            "_ihm_kinetic_rate.equilibrium_constant"
   _item.category_id     ihm_kinetic_rate
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_kinetic_rate.equilibrium_constant_determination_method
   _item_description.description  "     Method used to determine the equilibrium constant."
   #
   _item.name            "_ihm_kinetic_rate.equilibrium_constant_determination_method"
   _item.category_id     ihm_kinetic_rate
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
   loop_
   _item_enumeration.value
   _item_enumeration.detail
     "from population"     "equilibrium constant is determined from population"  
     "from kinetic rates"  "equilibrium constant is determined from kinetic rates, kAB/kBA"  
     other                 "equilibrium constant is determined from another method not listed"  
   #
save_
#
save__ihm_kinetic_rate.equilibrium_constant_unit
   _item_description.description  
;     Unit of the equilibrium constant, if applicable.
      If the kinetics describes a conformational change, then the equilibrium constant will not have a unit. 
      If however a complex is involved, then a unit may be necessary.
;

   #
   _item.name            "_ihm_kinetic_rate.equilibrium_constant_unit"
   _item.category_id     ihm_kinetic_rate
   _item.mandatory_code  no
   #
   _item_type.code  line
   #
save_
#
save__ihm_kinetic_rate.details
   _item_description.description  "     Additional details about the kinetic rate."
   #
   _item.name            "_ihm_kinetic_rate.details"
   _item.category_id     ihm_kinetic_rate
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save__ihm_kinetic_rate.scheme_connectivity_id
   _item_description.description  
;     Identifier for the multi-state scheme connectivity.
      This data item is a pointer to _ihm_multi_state_scheme_connectivity.id in the
      IHM_MULTI_STATE_SCHEME_CONNECTIVITY category.
;

   #
   _item.name            "_ihm_kinetic_rate.scheme_connectivity_id"
   _item.category_id     ihm_kinetic_rate
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_kinetic_rate.scheme_connectivity_id"
   _item_linked.parent_name  "_ihm_multi_state_scheme_connectivity.id"
   #
save_
#
save__ihm_kinetic_rate.dataset_group_id
   _item_description.description  
;     Identifier for the dataset group from which the kinetic rates are obtained.
      This data item is a pointer to _ihm_dataset_group.id in the
      IHM_DATASET_GROUP data category.
;

   #
   _item.name            "_ihm_kinetic_rate.dataset_group_id"
   _item.category_id     ihm_kinetic_rate
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_kinetic_rate.dataset_group_id"
   _item_linked.parent_name  "_ihm_dataset_group.id"
   #
save_
#
save__ihm_kinetic_rate.external_file_id
   _item_description.description  
;     Identifier for the external file corresponding to the kinetic rate measurement.
      This data item is a pointer to _ihm_external_files.id in the
      IHM_EXTERNAL_FILES data category.
;

   #
   _item.name            "_ihm_kinetic_rate.external_file_id"
   _item.category_id     ihm_kinetic_rate
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_kinetic_rate.external_file_id"
   _item_linked.parent_name  "_ihm_external_files.id"
   #
save_
#
save_ihm_relaxation_time
   _category.description     
;              Data items in the IHM_RELAXATION_TIME category records the details
               of the relaxation times obtained from biophysical experiments.
;

   _category.id              ihm_relaxation_time
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_relaxation_time.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        # ... abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_relaxation_time
   #
save_
#
save__ihm_relaxation_time.id
   _item_description.description  "     A unique identifier for the relaxation time."
   #
   _item.name            "_ihm_relaxation_time.id"
   _item.category_id     ihm_relaxation_time
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_relaxation_time.value
   _item_description.description  "     Relaxation time value."
   #
   _item.name            "_ihm_relaxation_time.value"
   _item.category_id     ihm_relaxation_time
   _item.mandatory_code  yes
   #
   _item_type.code  float
   #
save_
#
save__ihm_relaxation_time.unit
   _item_description.description  "     Relaxation time unit."
   #
   _item.name            "_ihm_relaxation_time.unit"
   _item.category_id     ihm_relaxation_time
   _item.mandatory_code  yes
   #
   _item_type.code  code
   #
   loop_
   _item_enumeration.value
     seconds       
     milliseconds  
     microseconds  
   #
save_
#
save__ihm_relaxation_time.amplitude
   _item_description.description  "     Relaxation time amplitude."
   #
   _item.name            "_ihm_relaxation_time.amplitude"
   _item.category_id     ihm_relaxation_time
   _item.mandatory_code  no
   #
   _item_type.code  float
   #
save_
#
save__ihm_relaxation_time.dataset_group_id
   _item_description.description  
;     Identifier for the dataset group from which the relaxation time is obtained.
      This data item is a pointer to _ihm_dataset_group.id in the
      IHM_DATASET_GROUP data category.
;

   #
   _item.name            "_ihm_relaxation_time.dataset_group_id"
   _item.category_id     ihm_relaxation_time
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_relaxation_time.dataset_group_id"
   _item_linked.parent_name  "_ihm_dataset_group.id"
   #
save_
#
save__ihm_relaxation_time.external_file_id
   _item_description.description  
;     Identifier for the external file corresponding to the relaxation time measurement.
      This data item is a pointer to _ihm_external_files.id in the
      IHM_EXTERNAL_FILES data category.
;

   #
   _item.name            "_ihm_relaxation_time.external_file_id"
   _item.category_id     ihm_relaxation_time
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_relaxation_time.external_file_id"
   _item_linked.parent_name  "_ihm_external_files.id"
   #
save_
#
save__ihm_relaxation_time.details
   _item_description.description  "     Additional details regarding the relaxation time."
   #
   _item.name            "_ihm_relaxation_time.details"
   _item.category_id     ihm_relaxation_time
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
save_ihm_relaxation_time_multi_state_scheme
   _category.description     
;              Data items in the IHM_RELAXATION_TIME_MULTI_STATE_SCHEME category map the experimentally
               measured relaxation times with the multi-state schemes.
;

   _category.id              ihm_relaxation_time_multi_state_scheme
   _category.mandatory_code  no
   #
   _category_key.name  "_ihm_relaxation_time_multi_state_scheme.id"
   #
   loop_
   _category_group.id
     inclusive_group  
     ihm_group        
   #
   _category_examples.detail  
;
    Example 1 -
;

   _category_examples.case    
;
        # ... abbreviated ...
;

   #
   _pdbx_category_context.type         CONTRIBUTED
   _pdbx_category_context.category_id  ihm_relaxation_time_multi_state_scheme
   #
save_
#
save__ihm_relaxation_time_multi_state_scheme.id
   _item_description.description  "     A unique identifier for the category."
   #
   _item.name            "_ihm_relaxation_time_multi_state_scheme.id"
   _item.category_id     ihm_relaxation_time_multi_state_scheme
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
save_
#
save__ihm_relaxation_time_multi_state_scheme.relaxation_time_id
   _item_description.description  
;     Identifier for the relaxation_time.
      This data item is a pointer to _ihm_relaxation_time.id in the
      IHM_RELAXATION_TIME data category.
;

   #
   _item.name            "_ihm_relaxation_time_multi_state_scheme.relaxation_time_id"
   _item.category_id     ihm_relaxation_time_multi_state_scheme
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_relaxation_time_multi_state_scheme.relaxation_time_id"
   _item_linked.parent_name  "_ihm_relaxation_time.id"
   #
save_
#
save__ihm_relaxation_time_multi_state_scheme.scheme_id
   _item_description.description  
;     Identifier for the multi-state scheme. 
      This data item is a pointer to _ihm_multi_state_scheme.id in the
      IHM_MULTI_STATE_SCHEME data category.
;

   #
   _item.name            "_ihm_relaxation_time_multi_state_scheme.scheme_id"
   _item.category_id     ihm_relaxation_time_multi_state_scheme
   _item.mandatory_code  yes
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_relaxation_time_multi_state_scheme.scheme_id"
   _item_linked.parent_name  "_ihm_multi_state_scheme.id"
   #
save_
#
save__ihm_relaxation_time_multi_state_scheme.scheme_connectivity_id
   _item_description.description  
;     Identifier for the multi-state scheme connectivity.
      This data item is a pointer to _ihm_multi_state_scheme_connectivity.id in the
      IHM_MULTI_STATE_SCHEME_CONNECTIVITY data category.
;

   #
   _item.name            "_ihm_relaxation_time_multi_state_scheme.scheme_connectivity_id"
   _item.category_id     ihm_relaxation_time_multi_state_scheme
   _item.mandatory_code  no
   #
   _item_type.code  int
   #
   _item_linked.child_name   "_ihm_relaxation_time_multi_state_scheme.scheme_connectivity_id"
   _item_linked.parent_name  "_ihm_multi_state_scheme_connectivity.id"
   #
save_
#
save__ihm_relaxation_time_multi_state_scheme.details
   _item_description.description  "     Additional details about the relaxation time measurement."
   #
   _item.name            "_ihm_relaxation_time_multi_state_scheme.details"
   _item.category_id     ihm_relaxation_time_multi_state_scheme
   _item.mandatory_code  no
   #
   _item_type.code  text
   #
save_
#
