COMCIFS / cif_core

The IUCr CIF core dictionary
15 stars 9 forks source link

cif_core.dic: potentially unjustified addition of enumeration ranges for some data items #66

Closed vaitkus closed 5 years ago

vaitkus commented 6 years ago

When compared to the DDL1 version of the dictionary the DDLm seems to contain multiple additional enumeration ranges. Some of the new ranges, i.e. the ones for data items describing temperature or angles, seem perfectly reasonable, but some would benefit from a bit of clarification:

1. Cartesian coordinates

ID Data name Range
1.1 _atom_site_Cartn_x -1000.:1000.
1.2 _atom_site_Cartn_y -1000.:1000.
1.3 _atom_site_Cartn_z -1000.:1000.

Is there any benefit of restricting the coordinates to arbitrary limits?

2. Fractional coordinates

ID Data name Range
2.1 _atom_site_fract_x -1.:1.
2.2 _atom_site_fract_y -1.:1.
2.3 _atom_site_fract_z -1.:1.

The same reasoning as for 1 holds true. These new ranges would clearly limit the usability of the cif_core.dict data names and incidentally the CIF format itself. Take for example, COD entry 2217757 which describes a non-polymeric molecule spanning 6 unit cells; a CIF file containing explicit coordinates of all the atoms of this molecule would be deemed invalid according to the new ranges. One could argue that symmetry equivalent atoms should not be recorder using the _atom_site_fract_* data items, however, there is already ample chemoinformatics software out there that relies on those data items being there.

3. Miller indexes

ID Data name Range
3.1 _cell_measurement_refln_index_h -1000:1000
3.2 _cell_measurement_refln_index_k -1000:1000
3.3 _cell_measurement_refln_index_l -1000:1000
3.4 _refln_index_h -1000:1000
3.5 _refln_index_k -1000:1000
3.6 _refln_index_l -1000:1000
3.7 _reflns_limit_h_max -1000:1000
3.8 _reflns_limit_h_min -1000:1000
3.9 _reflns_limit_k_max -1000:1000
3.10 _reflns_limit_k_min -1000:1000
3.11 _reflns_limit_l_max -1000:1000
3.12 _reflns_limit_l_min -1000:1000
3.13 _diffrn_orient_refln_index_h -1000:1000
3.14 _diffrn_orient_refln_index_k -1000:1000
3.15 _diffrn_orient_refln_index_l -1000:1000
3.16 _diffrn_refln_index_h -1000:1000
3.17 _diffrn_refln_index_k -1000:1000
3.18 _diffrn_refln_index_l -1000:1000
3.19 _diffrn_reflns_limit_h_max -1000:1000
3.20 _diffrn_reflns_limit_h_min -1000:1000
3.21 _diffrn_reflns_limit_k_max -1000:1000
3.22 _diffrn_reflns_limit_k_min -1000:1000
3.23 _diffrn_reflns_limit_l_max -1000:1000
3.24 _diffrn_reflns_limit_l_min -1000:1000
3.25 _diffrn_standard_refln_index_h -1000:1000
3.26 _diffrn_standard_refln_index_k -1000:1000
3.27 _diffrn_standard_refln_index_l -1000:1000
3.28 _exptl_crystal_face_index_h -1000:1000
3.29 _exptl_crystal_face_index_k -1000:1000
3.30 _exptl_crystal_face_index_l -1000:1000

Same question as for 1.

Could these new ranges be removed?

jamesrhester commented 6 years ago

I do not think that there is a problem removing these ranges. I believe they were added to aid in checking structures for potential errors.

jamesrhester commented 5 years ago

These will be removed in the latest commit

vaitkus commented 5 years ago

Great, thank You a lot.

I will close the issue since it has been resolved.