Skip to content
Snippets Groups Projects
Commit 3400c8e9 authored by Alexander Rose's avatar Alexander Rose
Browse files

update coreCif dictionary

parent 61c47c51
Branches
No related tags found
No related merge requests found
...@@ -2,11 +2,11 @@ audit.block_doi ...@@ -2,11 +2,11 @@ audit.block_doi
database_code.depnum_ccdc_archive database_code.depnum_ccdc_archive
database_code.depnum_ccdc_fiz database_code.depnum_ccdc_fiz
database_code.ICSD database_code.icsd
database_code.MDF database_code.mdf
database_code.NBS database_code.nbs
database_code.CSD database_code.csd
database_code.COD database_code.cod
chemical.name_systematic chemical.name_systematic
chemical.name_common chemical.name_common
...@@ -24,8 +24,8 @@ atom_type_scat.dispersion_imag ...@@ -24,8 +24,8 @@ atom_type_scat.dispersion_imag
atom_type_scat.source atom_type_scat.source
space_group.crystal_system space_group.crystal_system
space_group.name_H-M_full space_group.name_h-m_full
space_group.IT_number space_group.it_number
space_group_symop.operation_xyz space_group_symop.operation_xyz
cell.length_a cell.length_a
...@@ -35,14 +35,14 @@ cell.angle_alpha ...@@ -35,14 +35,14 @@ cell.angle_alpha
cell.angle_beta cell.angle_beta
cell.angle_gamma cell.angle_gamma
cell.volume cell.volume
cell.formula_units_Z cell.formula_units_z
atom_site.label atom_site.label
atom_site.type_symbol atom_site.type_symbol
atom_site.fract_x atom_site.fract_x
atom_site.fract_y atom_site.fract_y
atom_site.fract_z atom_site.fract_z
atom_site.U_iso_or_equiv atom_site.u_iso_or_equiv
atom_site.adp_type atom_site.adp_type
atom_site.occupancy atom_site.occupancy
atom_site.calc_flag atom_site.calc_flag
...@@ -52,20 +52,13 @@ atom_site.disorder_group ...@@ -52,20 +52,13 @@ atom_site.disorder_group
atom_site.site_symmetry_multiplicity atom_site.site_symmetry_multiplicity
atom_site_aniso.label atom_site_aniso.label
atom_site_aniso.U atom_site_aniso.u
atom_site_aniso.U_11 atom_site_aniso.u_11
atom_site_aniso.U_22 atom_site_aniso.u_22
atom_site_aniso.U_33 atom_site_aniso.u_33
atom_site_aniso.U_23 atom_site_aniso.u_23
atom_site_aniso.U_13 atom_site_aniso.u_13
atom_site_aniso.U_12 atom_site_aniso.u_12
atom_site_aniso.U_su
atom_site_aniso.U_11_su
atom_site_aniso.U_22_su
atom_site_aniso.U_33_su
atom_site_aniso.U_23_su
atom_site_aniso.U_13_su
atom_site_aniso.U_12_su
geom_bond.atom_site_label_1 geom_bond.atom_site_label_1
geom_bond.atom_site_label_2 geom_bond.atom_site_label_2
......
...@@ -81,7 +81,7 @@ export function getFieldType(type: string, description: string, values?: string[ ...@@ -81,7 +81,7 @@ export function getFieldType(type: string, description: string, values?: string[
case 'List(Real,Real)': case 'List(Real,Real)':
case 'List(Real,Real,Real,Real)': case 'List(Real,Real,Real,Real)':
case 'Date': case 'Date':
case 'Datetime': case 'DateTime':
case 'Tag': case 'Tag':
case 'Implied': case 'Implied':
return wrapContainer('str', ',', description, container); return wrapContainer('str', ',', description, container);
...@@ -234,29 +234,26 @@ const FORCE_INT_FIELDS = [ ...@@ -234,29 +234,26 @@ const FORCE_INT_FIELDS = [
'_struct_sheet_range.end_auth_seq_id', '_struct_sheet_range.end_auth_seq_id',
]; ];
/**
* Note that name and mapped name must share a prefix. This is not always the case in
* the cifCore dictionary, but for downstream code to work a container field with the
* same prefix as the member fields must be given here and in the field names filter
* list.
*/
const FORCE_MATRIX_FIELDS_MAP: { [k: string]: string } = { const FORCE_MATRIX_FIELDS_MAP: { [k: string]: string } = {
'atom_site_aniso.U_11': 'U', 'atom_site_aniso.u_11': 'u', // is matrix_u in the the dic
'atom_site_aniso.U_22': 'U', 'atom_site_aniso.u_22': 'u',
'atom_site_aniso.U_33': 'U', 'atom_site_aniso.u_33': 'u',
'atom_site_aniso.U_23': 'U', 'atom_site_aniso.u_23': 'u',
'atom_site_aniso.U_13': 'U', 'atom_site_aniso.u_13': 'u',
'atom_site_aniso.U_12': 'U', 'atom_site_aniso.u_12': 'u',
'atom_site_aniso.U_11_su': 'U_su',
'atom_site_aniso.U_22_su': 'U_su',
'atom_site_aniso.U_33_su': 'U_su',
'atom_site_aniso.U_23_su': 'U_su',
'atom_site_aniso.U_13_su': 'U_su',
'atom_site_aniso.U_12_su': 'U_su',
}; };
const FORCE_MATRIX_FIELDS = Object.keys(FORCE_MATRIX_FIELDS_MAP); const FORCE_MATRIX_FIELDS = Object.keys(FORCE_MATRIX_FIELDS_MAP);
const EXTRA_ALIASES: Database['aliases'] = { const EXTRA_ALIASES: Database['aliases'] = {
'atom_site_aniso.U': [ 'atom_site_aniso.matrix_u': [
'atom_site_anisotrop_U' 'atom_site_anisotrop_U',
], 'atom_site_aniso.U'
'atom_site_aniso.U_su': [
'atom_site_aniso_U_esd',
'atom_site_anisotrop_U_esd',
], ],
}; };
......
...@@ -10,8 +10,8 @@ export function parseImportGet(s: string): Import[] { ...@@ -10,8 +10,8 @@ export function parseImportGet(s: string): Import[] {
// [{'save':hi_ang_Fox_coeffs 'file':templ_attr.cif} {'save':hi_ang_Fox_c0 'file':templ_enum.cif}] // [{'save':hi_ang_Fox_coeffs 'file':templ_attr.cif} {'save':hi_ang_Fox_c0 'file':templ_enum.cif}]
// [{"file":'templ_enum.cif' "save":'H_M_ref'}] // [{"file":'templ_enum.cif' "save":'H_M_ref'}]
return s.trim().substring(2, s.length - 2).split(/}[ \n\t]*{/g).map(s => { return s.trim().substring(2, s.length - 2).split(/}[ \n\t]*{/g).map(s => {
const save = s.match(/('save'|"save"):([^ \t\n]+)/); const save = s.match(/('save'|"save"):([^ \t\n{}]+)/);
const file = s.match(/('file'|"file"):([^ \t\n]+)/); const file = s.match(/('file'|"file"):([^ \t\n{}]+)/);
return { return {
save: save ? save[0].substr(7).replace(/['"]/g, '') : undefined, save: save ? save[0].substr(7).replace(/['"]/g, '') : undefined,
file: file ? file[0].substr(7).replace(/['"]/g, '') : undefined file: file ? file[0].substr(7).replace(/['"]/g, '') : undefined
......
/** /**
* Copyright (c) 2017-2020 mol* contributors, licensed under MIT, See LICENSE file for more info. * Copyright (c) 2017-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
* *
* Code-generated 'CifCore' schema file. Dictionary versions: CifCore 3.0.14. * Code-generated 'CifCore' schema file. Dictionary versions: CifCore 3.1.0.
* *
* @author molstar/ciftools package * @author molstar/ciftools package
*/ */
...@@ -10,8 +10,8 @@ import { Database, Column } from '../../../../mol-data/db'; ...@@ -10,8 +10,8 @@ import { Database, Column } from '../../../../mol-data/db';
import Schema = Column.Schema; import Schema = Column.Schema;
const int = Schema.int;
const float = Schema.float; const float = Schema.float;
const int = Schema.int;
const str = Schema.str; const str = Schema.str;
const Matrix = Schema.Matrix; const Matrix = Schema.Matrix;
...@@ -21,16 +21,6 @@ export const CifCore_Schema = { ...@@ -21,16 +21,6 @@ export const CifCore_Schema = {
* the crystal unit cell and their measurement. * the crystal unit cell and their measurement.
*/ */
cell: { cell: {
/**
* The number of the formula units in the unit cell as specified
* by _chemical_formula.structural, _chemical_formula.moiety or
* _chemical_formula.sum.
*/
formula_units_Z: int,
/**
* Volume of the crystal unit cell.
*/
volume: float,
/** /**
* The angle between the bounding cell axes. * The angle between the bounding cell axes.
*/ */
...@@ -43,6 +33,12 @@ export const CifCore_Schema = { ...@@ -43,6 +33,12 @@ export const CifCore_Schema = {
* The angle between the bounding cell axes. * The angle between the bounding cell axes.
*/ */
angle_gamma: float, angle_gamma: float,
/**
* The number of the formula units in the unit cell as specified
* by _chemical_formula.structural, _chemical_formula.moiety or
* _chemical_formula.sum.
*/
formula_units_z: int,
/** /**
* The length of each cell axis. * The length of each cell axis.
*/ */
...@@ -55,6 +51,10 @@ export const CifCore_Schema = { ...@@ -55,6 +51,10 @@ export const CifCore_Schema = {
* The length of each cell axis. * The length of each cell axis.
*/ */
length_c: float, length_c: float,
/**
* Volume of the crystal unit cell.
*/
volume: float,
}, },
/** /**
* The CATEGORY of data items which describe the composition and * The CATEGORY of data items which describe the composition and
...@@ -184,12 +184,12 @@ export const CifCore_Schema = { ...@@ -184,12 +184,12 @@ export const CifCore_Schema = {
crystal_system: str, crystal_system: str,
/** /**
* The number as assigned in International Tables for Crystallography * The number as assigned in International Tables for Crystallography
* Vol A, specifying the proper affine class (i.e. the orientation * Vol. A, specifying the proper affine class (i.e. the orientation
* preserving affine class) of space groups (crystallographic space * preserving affine class) of space groups (crystallographic space
* group type) to which the space group belongs. This number defines * group type) to which the space group belongs. This number defines
* the space group type but not the coordinate system expressed. * the space group type but not the coordinate system expressed.
*/ */
IT_number: int, it_number: int,
/** /**
* The full international Hermann-Mauguin space-group symbol as * The full international Hermann-Mauguin space-group symbol as
* defined in Section 2.2.3 and given as the second item of the * defined in Section 2.2.3 and given as the second item of the
...@@ -220,7 +220,7 @@ export const CifCore_Schema = { ...@@ -220,7 +220,7 @@ export const CifCore_Schema = {
* Space-group symmetry, edited by Th. Hahn, 5th ed. * Space-group symmetry, edited by Th. Hahn, 5th ed.
* Dordrecht: Kluwer Academic Publishers. * Dordrecht: Kluwer Academic Publishers.
*/ */
'name_H-M_full': str, 'name_h-m_full': str,
}, },
/** /**
* The CATEGORY of data items used to describe symmetry equivalent sites * The CATEGORY of data items used to describe symmetry equivalent sites
...@@ -354,8 +354,8 @@ export const CifCore_Schema = { ...@@ -354,8 +354,8 @@ export const CifCore_Schema = {
* structured extensible way. A DOI is an implementation * structured extensible way. A DOI is an implementation
* of the Internet concepts of Uniform Resource Name and * of the Internet concepts of Uniform Resource Name and
* Universal Resource Locator managed according to the * Universal Resource Locator managed according to the
* specifications of the International DOI Foundation (see * specifications of the International DOI Foundation
* http://www.doi.org). * (see http://www.doi.org).
*/ */
block_doi: str, block_doi: str,
}, },
...@@ -366,13 +366,13 @@ export const CifCore_Schema = { ...@@ -366,13 +366,13 @@ export const CifCore_Schema = {
*/ */
database_code: { database_code: {
/** /**
* Code assigned by Crystallography Open Database (COD). * Code assigned by the Crystallography Open Database (COD).
*/ */
COD: str, cod: str,
/** /**
* Code assigned by the Cambridge Structural Database. * Code assigned by the Cambridge Structural Database.
*/ */
CSD: str, csd: str,
/** /**
* Deposition numbers assigned by the Cambridge Crystallographic * Deposition numbers assigned by the Cambridge Crystallographic
* Data Centre (CCDC) to files containing structural information * Data Centre (CCDC) to files containing structural information
...@@ -388,15 +388,15 @@ export const CifCore_Schema = { ...@@ -388,15 +388,15 @@ export const CifCore_Schema = {
/** /**
* Code assigned by the Inorganic Crystal Structure Database. * Code assigned by the Inorganic Crystal Structure Database.
*/ */
ICSD: str, icsd: str,
/** /**
* Code assigned in the Metals Data File. * Code assigned in the Metals Data File.
*/ */
MDF: str, mdf: str,
/** /**
* Code assigned by the NBS (NIST) Crystal Data Database. * Code assigned by the NBS (NIST) Crystal Data Database.
*/ */
NBS: str, nbs: str,
}, },
/** /**
* The CATEGORY of data items used to describe atom site information * The CATEGORY of data items used to describe atom site information
...@@ -511,7 +511,7 @@ export const CifCore_Schema = { ...@@ -511,7 +511,7 @@ export const CifCore_Schema = {
* a* = the reciprocal-space cell lengths * a* = the reciprocal-space cell lengths
* Ref: Fischer, R. X. & Tillmanns, E. (1988). Acta Cryst. C44, 775-776. * Ref: Fischer, R. X. & Tillmanns, E. (1988). Acta Cryst. C44, 775-776.
*/ */
U_iso_or_equiv: float, u_iso_or_equiv: float,
}, },
/** /**
* The CATEGORY of data items used to describe the anisotropic * The CATEGORY of data items used to describe the anisotropic
...@@ -537,7 +537,7 @@ export const CifCore_Schema = { ...@@ -537,7 +537,7 @@ export const CifCore_Schema = {
* *
* The unique elements of the real symmetric matrix are entered by row. * The unique elements of the real symmetric matrix are entered by row.
*/ */
U_11: float, u_11: float,
/** /**
* These are the standard anisotropic atomic displacement * These are the standard anisotropic atomic displacement
* components in angstroms squared which appear in the * components in angstroms squared which appear in the
...@@ -550,21 +550,7 @@ export const CifCore_Schema = { ...@@ -550,21 +550,7 @@ export const CifCore_Schema = {
* *
* The unique elements of the real symmetric matrix are entered by row. * The unique elements of the real symmetric matrix are entered by row.
*/ */
U: Matrix(3, 3), u: Matrix(3, 3),
/**
* These are the standard uncertainty values (SU) for the standard
* form of the Uij anisotropic atomic displacement components (see
* _aniso_UIJ. Because these values are TYPE measurand, the su values
* may in practice be auto generated as part of the Uij calculation.
*/
U_11_su: float,
/**
* These are the standard uncertainty values (SU) for the standard
* form of the Uij anisotropic atomic displacement components (see
* _aniso_UIJ. Because these values are TYPE measurand, the su values
* may in practice be auto generated as part of the Uij calculation.
*/
U_su: Matrix(3, 3),
/** /**
* These are the standard anisotropic atomic displacement * These are the standard anisotropic atomic displacement
* components in angstroms squared which appear in the * components in angstroms squared which appear in the
...@@ -577,14 +563,7 @@ export const CifCore_Schema = { ...@@ -577,14 +563,7 @@ export const CifCore_Schema = {
* *
* The unique elements of the real symmetric matrix are entered by row. * The unique elements of the real symmetric matrix are entered by row.
*/ */
U_12: float, u_12: float,
/**
* These are the standard uncertainty values (SU) for the standard
* form of the Uij anisotropic atomic displacement components (see
* _aniso_UIJ. Because these values are TYPE measurand, the su values
* may in practice be auto generated as part of the Uij calculation.
*/
U_12_su: float,
/** /**
* These are the standard anisotropic atomic displacement * These are the standard anisotropic atomic displacement
* components in angstroms squared which appear in the * components in angstroms squared which appear in the
...@@ -597,14 +576,7 @@ export const CifCore_Schema = { ...@@ -597,14 +576,7 @@ export const CifCore_Schema = {
* *
* The unique elements of the real symmetric matrix are entered by row. * The unique elements of the real symmetric matrix are entered by row.
*/ */
U_13: float, u_13: float,
/**
* These are the standard uncertainty values (SU) for the standard
* form of the Uij anisotropic atomic displacement components (see
* _aniso_UIJ. Because these values are TYPE measurand, the su values
* may in practice be auto generated as part of the Uij calculation.
*/
U_13_su: float,
/** /**
* These are the standard anisotropic atomic displacement * These are the standard anisotropic atomic displacement
* components in angstroms squared which appear in the * components in angstroms squared which appear in the
...@@ -617,14 +589,7 @@ export const CifCore_Schema = { ...@@ -617,14 +589,7 @@ export const CifCore_Schema = {
* *
* The unique elements of the real symmetric matrix are entered by row. * The unique elements of the real symmetric matrix are entered by row.
*/ */
U_22: float, u_22: float,
/**
* These are the standard uncertainty values (SU) for the standard
* form of the Uij anisotropic atomic displacement components (see
* _aniso_UIJ. Because these values are TYPE measurand, the su values
* may in practice be auto generated as part of the Uij calculation.
*/
U_22_su: float,
/** /**
* These are the standard anisotropic atomic displacement * These are the standard anisotropic atomic displacement
* components in angstroms squared which appear in the * components in angstroms squared which appear in the
...@@ -637,14 +602,7 @@ export const CifCore_Schema = { ...@@ -637,14 +602,7 @@ export const CifCore_Schema = {
* *
* The unique elements of the real symmetric matrix are entered by row. * The unique elements of the real symmetric matrix are entered by row.
*/ */
U_23: float, u_23: float,
/**
* These are the standard uncertainty values (SU) for the standard
* form of the Uij anisotropic atomic displacement components (see
* _aniso_UIJ. Because these values are TYPE measurand, the su values
* may in practice be auto generated as part of the Uij calculation.
*/
U_23_su: float,
/** /**
* These are the standard anisotropic atomic displacement * These are the standard anisotropic atomic displacement
* components in angstroms squared which appear in the * components in angstroms squared which appear in the
...@@ -657,14 +615,7 @@ export const CifCore_Schema = { ...@@ -657,14 +615,7 @@ export const CifCore_Schema = {
* *
* The unique elements of the real symmetric matrix are entered by row. * The unique elements of the real symmetric matrix are entered by row.
*/ */
U_33: float, u_33: float,
/**
* These are the standard uncertainty values (SU) for the standard
* form of the Uij anisotropic atomic displacement components (see
* _aniso_UIJ. Because these values are TYPE measurand, the su values
* may in practice be auto generated as part of the Uij calculation.
*/
U_33_su: float,
}, },
/** /**
* The CATEGORY of data items used to describe atomic type information * The CATEGORY of data items used to describe atomic type information
...@@ -710,17 +661,14 @@ export const CifCore_Schema = { ...@@ -710,17 +661,14 @@ export const CifCore_Schema = {
}; };
export const CifCore_Aliases = { export const CifCore_Aliases = {
'atom_site_aniso.U': [ 'cell.formula_units_z': [
'atom_site_anisotrop_U', 'cell_formula_units_Z',
],
'atom_site_aniso.U_su': [
'atom_site_aniso_U_esd',
'atom_site_anisotrop_U_esd',
], ],
'space_group.IT_number': [ 'space_group.it_number': [
'space_group_IT_number',
'symmetry_Int_Tables_number', 'symmetry_Int_Tables_number',
], ],
'space_group.name_H-M_full': [ 'space_group.name_h-m_full': [
'symmetry_space_group_name_H-M', 'symmetry_space_group_name_H-M',
], ],
'space_group_symop.operation_xyz': [ 'space_group_symop.operation_xyz': [
...@@ -735,6 +683,21 @@ export const CifCore_Aliases = { ...@@ -735,6 +683,21 @@ export const CifCore_Aliases = {
'geom_bond.distance': [ 'geom_bond.distance': [
'geom_bond_dist', 'geom_bond_dist',
], ],
'database_code.cod': [
'database_code_COD',
],
'database_code.csd': [
'database_code_CSD',
],
'database_code.icsd': [
'database_code_ICSD',
],
'database_code.mdf': [
'database_code_MDF',
],
'database_code.nbs': [
'database_code_NBS',
],
'atom_site.adp_type': [ 'atom_site.adp_type': [
'atom_site_thermal_displace_type', 'atom_site_thermal_displace_type',
], ],
...@@ -744,51 +707,36 @@ export const CifCore_Aliases = { ...@@ -744,51 +707,36 @@ export const CifCore_Aliases = {
'atom_site.site_symmetry_multiplicity': [ 'atom_site.site_symmetry_multiplicity': [
'atom_site_symmetry_multiplicity', 'atom_site_symmetry_multiplicity',
], ],
'atom_site.u_iso_or_equiv': [
'atom_site_U_iso_or_equiv',
],
'atom_site_aniso.label': [ 'atom_site_aniso.label': [
'atom_site_anisotrop_id', 'atom_site_anisotrop_id',
], ],
'atom_site_aniso.U_11': [ 'atom_site_aniso.u_11': [
'atom_site_aniso_U_11',
'atom_site_anisotrop_U_11', 'atom_site_anisotrop_U_11',
], ],
'atom_site_aniso.U_11_su': [ 'atom_site_aniso.u_12': [
'atom_site_aniso_U_11_esd', 'atom_site_aniso_U_12',
'atom_site_anisotrop_U_11_esd',
],
'atom_site_aniso.U_12': [
'atom_site_anisotrop_U_12', 'atom_site_anisotrop_U_12',
], ],
'atom_site_aniso.U_12_su': [ 'atom_site_aniso.u_13': [
'atom_site_aniso_U_12_esd', 'atom_site_aniso_U_13',
'atom_site_anisotrop_U_12_esd',
],
'atom_site_aniso.U_13': [
'atom_site_anisotrop_U_13', 'atom_site_anisotrop_U_13',
], ],
'atom_site_aniso.U_13_su': [ 'atom_site_aniso.u_22': [
'atom_site_aniso_U_13_esd', 'atom_site_aniso_U_22',
'atom_site_anisotrop_U_13_esd',
],
'atom_site_aniso.U_22': [
'atom_site_anisotrop_U_22', 'atom_site_anisotrop_U_22',
], ],
'atom_site_aniso.U_22_su': [ 'atom_site_aniso.u_23': [
'atom_site_aniso_U_22_esd', 'atom_site_aniso_U_23',
'atom_site_anisotrop_U_22_esd',
],
'atom_site_aniso.U_23': [
'atom_site_anisotrop_U_23', 'atom_site_anisotrop_U_23',
], ],
'atom_site_aniso.U_23_su': [ 'atom_site_aniso.u_33': [
'atom_site_aniso_U_23_esd', 'atom_site_aniso_U_33',
'atom_site_anisotrop_U_23_esd',
],
'atom_site_aniso.U_33': [
'atom_site_anisotrop_U_33', 'atom_site_anisotrop_U_33',
], ],
'atom_site_aniso.U_33_su': [
'atom_site_aniso_U_33_esd',
'atom_site_anisotrop_U_33_esd',
],
}; };
export type CifCore_Schema = typeof CifCore_Schema; export type CifCore_Schema = typeof CifCore_Schema;
......
/** /**
* Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info. * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
* *
* @author Alexander Rose <alexander.rose@weirdbyte.de> * @author Alexander Rose <alexander.rose@weirdbyte.de>
*/ */
...@@ -32,6 +32,9 @@ N N 0.0311 0.0180 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' ...@@ -32,6 +32,9 @@ N N 0.0311 0.0180 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
O O 0.0492 0.0322 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' O O 0.0492 0.0322 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
F F 0.0727 0.0534 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' F F 0.0727 0.0534 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
_symmetry_cell_setting Triclinic
_symmetry_space_group_name_H-M P-1
_cell_length_a 11.0829(8) _cell_length_a 11.0829(8)
_cell_length_b 14.6829(10) _cell_length_b 14.6829(10)
_cell_length_c 16.8532(17) _cell_length_c 16.8532(17)
...@@ -82,7 +85,8 @@ describe('cif-core read', () => { ...@@ -82,7 +85,8 @@ describe('cif-core read', () => {
const block = cifFile.blocks[0]; const block = cifFile.blocks[0];
expect(block.getField('cell_length_a')!.float(0)).toBe(11.0829); expect(block.getField('cell_length_a')!.float(0)).toBe(11.0829);
expect.assertions(1); expect(block.getField('symmetry_space_group_name_H-M')!.str(0)).toBe('P-1');
expect.assertions(2);
}); });
it('schema', async () => { it('schema', async () => {
...@@ -93,7 +97,8 @@ describe('cif-core read', () => { ...@@ -93,7 +97,8 @@ describe('cif-core read', () => {
const cifCore = CIF.schema.cifCore(block); const cifCore = CIF.schema.cifCore(block);
expect(cifCore.cell.length_a.value(0)).toBe(11.0829); expect(cifCore.cell.length_a.value(0)).toBe(11.0829);
expect(cifCore.atom_site_aniso.U.value(0)).toEqual(new Float64Array([ 0.0425, 0, 0, 0.00089, 0.0423, 0, 0.01515, 0.00066, 0.0375 ])); expect(cifCore.space_group['name_h-m_full'].value(0)).toBe('P-1');
expect.assertions(2); expect(cifCore.atom_site_aniso.u.value(0)).toEqual(new Float64Array([ 0.0425, 0, 0, 0.00089, 0.0423, 0, 0.01515, 0.00066, 0.0375 ]));
expect.assertions(3);
}); });
}); });
\ No newline at end of file
...@@ -25,10 +25,10 @@ import { Trajectory } from '../../mol-model/structure'; ...@@ -25,10 +25,10 @@ import { Trajectory } from '../../mol-model/structure';
import { cantorPairing } from '../../mol-data/util'; import { cantorPairing } from '../../mol-data/util';
function getSpacegroupNameOrNumber(space_group: CifCore_Database['space_group']) { function getSpacegroupNameOrNumber(space_group: CifCore_Database['space_group']) {
const groupNumber = space_group.IT_number.value(0); const groupNumber = space_group.it_number.value(0);
const groupName = space_group['name_H-M_full'].value(0); const groupName = space_group['name_h-m_full'].value(0).replace('-', ' ');
if (!space_group.IT_number.isDefined) return groupName; if (!space_group.it_number.isDefined) return groupName;
if (!space_group['name_H-M_full'].isDefined) return groupNumber; if (!space_group['name_h-m_full'].isDefined) return groupNumber;
return groupNumber; return groupNumber;
} }
...@@ -129,7 +129,7 @@ async function getModels(db: CifCore_Database, format: CifCoreFormat, ctx: Runti ...@@ -129,7 +129,7 @@ async function getModels(db: CifCore_Database, format: CifCoreFormat, ctx: Runti
pdbx_formal_charge: formalCharge, pdbx_formal_charge: formalCharge,
pdbx_PDB_model_num: Column.ofConst(1, atomCount, Column.Schema.int), pdbx_PDB_model_num: Column.ofConst(1, atomCount, Column.Schema.int),
B_iso_or_equiv: db.atom_site.U_iso_or_equiv, B_iso_or_equiv: db.atom_site.u_iso_or_equiv,
}, atomCount); }, atomCount);
const name = ( const name = (
...@@ -231,15 +231,14 @@ function atomSiteAnisotropFromCifCore(model: Model) { ...@@ -231,15 +231,14 @@ function atomSiteAnisotropFromCifCore(model: Model) {
if (!CifCoreFormat.is(model.sourceData)) return; if (!CifCoreFormat.is(model.sourceData)) return;
const { atom_site, atom_site_aniso } = model.sourceData.data.db; const { atom_site, atom_site_aniso } = model.sourceData.data.db;
const data = Table.ofPartialColumns(AtomSiteAnisotrop.Schema, { const data = Table.ofPartialColumns(AtomSiteAnisotrop.Schema, {
U: atom_site_aniso.U, U: atom_site_aniso.u,
U_esd: atom_site_aniso.U_su
}, atom_site_aniso._rowCount); }, atom_site_aniso._rowCount);
const elementToAnsiotrop = AtomSiteAnisotrop.getElementToAnsiotropFromLabel(atom_site.label, atom_site_aniso.label); const elementToAnsiotrop = AtomSiteAnisotrop.getElementToAnsiotropFromLabel(atom_site.label, atom_site_aniso.label);
return { data, elementToAnsiotrop }; return { data, elementToAnsiotrop };
} }
function atomSiteAnisotropApplicableCifCore(model: Model) { function atomSiteAnisotropApplicableCifCore(model: Model) {
if (!CifCoreFormat.is(model.sourceData)) return false; if (!CifCoreFormat.is(model.sourceData)) return false;
return model.sourceData.data.db.atom_site_aniso.U.isDefined; return model.sourceData.data.db.atom_site_aniso.u.isDefined;
} }
AtomSiteAnisotrop.Provider.formatRegistry.add('cifCore', atomSiteAnisotropFromCifCore, atomSiteAnisotropApplicableCifCore); AtomSiteAnisotrop.Provider.formatRegistry.add('cifCore', atomSiteAnisotropFromCifCore, atomSiteAnisotropApplicableCifCore);
...@@ -261,11 +260,11 @@ namespace CifCoreFormat { ...@@ -261,11 +260,11 @@ namespace CifCoreFormat {
const name = ( const name = (
db.database_code.depnum_ccdc_archive.value(0) || db.database_code.depnum_ccdc_archive.value(0) ||
db.database_code.depnum_ccdc_fiz.value(0) || db.database_code.depnum_ccdc_fiz.value(0) ||
db.database_code.ICSD.value(0) || db.database_code.icsd.value(0) ||
db.database_code.MDF.value(0) || db.database_code.mdf.value(0) ||
db.database_code.NBS.value(0) || db.database_code.nbs.value(0) ||
db.database_code.CSD.value(0) || db.database_code.csd.value(0) ||
db.database_code.COD.value(0) || db.database_code.cod.value(0) ||
db._name db._name
); );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment