Please advise regarding a design of CIF dictionaries for material properties
nick at csse.uwa.edu.au
Mon Oct 3 03:16:49 BST 2011
On 2/10/11 9:38 PM, "Saulius Grazulis" <grazulis at ibt.lt> wrote:
> Dear Nick,
> On 10/02/2011 01:18 PM, Nick Spadaccini wrote:
>>> x) tags of the same property are split into several loops in data
>> I believe your definition of your property is not what you would
>> call a category. You CANNOT split tags of the same category across
> I believe I have found a DDL1 counter-example to the last statement. In
> the cif_core.dic, both _atom_site_fract_... and _atom_site_aniso_U_...
> data items have category 'atom_site', but they are usually listed in
> separate loops, in nearly all CIFs I have seen so far.
Sorry when I wrote that I meant you can't choose to split a loop wherever
you like. In the case above the split is formally defined in the dictionary.
The DDL1 solution is actually a throw back to the recognition that the
atom_site information ALL being in one loop would not work in protein
crystallography where for 10s of 1000s of atoms the entries for the Bij's
would be "." (my quotes). DDL2 formalised this separation differently. In
DDLm they are two DIFFERENT categories, atom_site_aniso being a child of
atom_site. The semantics of DDLm are that child loop categories with a
parent loop category can be automatically joined by on their respective key
So the correct answer to your original question is that in DDL1 you can
split items in the same category across loops, but that has to be formally
defined in the dictionary. You can split a loop in a data file where ever
>> The reason is a loop has to have a key defined. In the REFLN
>> category the key is h k l (or [h, k, l] in STAR/DDLm. If you want to
>> split the REFLN category across 2 loops, you can have h k l in one,
>> then what do you have in the other loop as the key?
> The cif_core.dic solves this by declaring _atom_site_label and
> _atom_site_aniso_label, and by setting _list_link_parent of
> _atom_site_aniso_label (foreign key?) to '_atom_site_label' (primary
> key?). The same method could be used in your proposed 'h k l' example,
> by declaring _refln_index_xyz_h (foreign keys) as having link parent
> _refln_index_h an so forth.
That is correct. But in the dictionary you would have to define which items
where allowed to appear in each loop.
Associate Professor N. Spadaccini, PhD.
Adjunct Research Fellow
The University of Western Australia
35 Stirling Highway
CRAWLEY, Perth, WA 6009 AUSTRALIA
CRICOS Provider Code: 00126G
e: Nick.Spadaccini at uwa.edu.au
More information about the comcifs