Discussion List Archives

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Please advise regarding a design of CIF dictionaries for materialproperties

  • To: "Discussion list of the IUCr Committee for the Maintenance of the CIFStandard (COMCIFS)" <comcifs@iucr.org>
  • Subject: Re: Please advise regarding a design of CIF dictionaries for materialproperties
  • From: Nick Spadaccini <nick@csse.uwa.edu.au>
  • Date: Mon, 03 Oct 2011 10:16:49 +0800
  • In-Reply-To: <4E88694E.8000500@ibt.lt>



On 2/10/11 9:38 PM, "Saulius Grazulis" <grazulis@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
>>> CIFs?
>> 
>> I believe your definition of your property is not what you would
>> call a category. You CANNOT split tags of the same category across
>> loops.
> 
> 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
values.

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
you like.

>> 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.

cheers

Nick

--------------------------------
Associate Professor N. Spadaccini, PhD.
Adjunct Research Fellow
The University of Western Australia
35 Stirling Highway
CRAWLEY, Perth,  WA  6009 AUSTRALIA
MBDP  M002

CRICOS Provider Code: 00126G

e: Nick.Spadaccini@uwa.edu.au






Reply to: [list | sender only]