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

added support for extra enum values to cif schema generator

parent b7f005f4
No related branches found
No related tags found
No related merge requests found
......@@ -189,6 +189,20 @@ const SEMICOLON_SEPARATED_LIST_FIELDS = [
'_chem_comp.pdbx_synonyms' // GLYCERIN; PROPANE-1,2,3-TRIOL
]
/**
* Useful when a dictionary extension will add enum values to an existing dictionary.
* By adding them here, the dictionary extension can be tested before the added enum
* values are available in the existing dictionary.
*/
const EXTRA_ENUM_VALUES: { [k: string]: string[] } = {
// TODO for carbohydrate extension draft, remove when added to chem_comp dic
'_pdbx_chem_comp_identifier.type': [
'CONDENSED IUPAC CARB SYMBOL',
'IUPAC CARB SYMBOL',
'SNFG CARB SYMBOL'
]
}
export function generateSchema (frames: CifFrame[]) {
const schema: Database = {}
......@@ -310,6 +324,13 @@ export function generateSchema (frames: CifFrame[]) {
console.log(`forcing space separated: ${d.header}`)
}
}
if (d.header in EXTRA_ENUM_VALUES) {
if (fieldType.type === 'enum') {
fieldType.values.push(...EXTRA_ENUM_VALUES[d.header])
} else {
console.warn(`expected enum: ${d.header}`)
}
}
fields[itemName] = fieldType
} else {
console.log(`could not determine code for '${d.header}'`)
......
......@@ -1536,7 +1536,7 @@ export const mmCIF_Schema = {
/**
* This data item contains the identifier type.
*/
type: Aliased<'COMMON NAME' | 'SYSTEMATIC NAME' | 'CAS REGISTRY NUMBER' | 'PUBCHEM Identifier' | 'MDL Identifier' | 'SYNONYM'>(str),
type: Aliased<'COMMON NAME' | 'SYSTEMATIC NAME' | 'CAS REGISTRY NUMBER' | 'PUBCHEM Identifier' | 'MDL Identifier' | 'SYNONYM' | 'CONDENSED IUPAC CARB SYMBOL' | 'IUPAC CARB SYMBOL' | 'SNFG CARB SYMBOL'>(str),
/**
* This data item contains the name of the program
* or library used to compute the identifier.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment