diff --git a/data/rcsb-graphql/codegen.js b/data/rcsb-graphql/codegen.js index e818f2b193bb5a614c43e17fe356796d558b095f..65adefbd350baff8577435bde9bf24537073e805 100644 --- a/data/rcsb-graphql/codegen.js +++ b/data/rcsb-graphql/codegen.js @@ -8,7 +8,7 @@ generate({ path.join(basePath, 'symmetry.gql.ts') ], schema: 'http://rest-experimental.rcsb.org/graphql', - template: 'typescript', + template: 'graphql-codegen-typescript-template', out: path.join(basePath), skipSchema: true, overwrite: true, diff --git a/data/rcsb-graphql/codegen.json b/data/rcsb-graphql/codegen.json index a005e9369d5807dfdd581297c9556aa8a08ccbba..3046d2483f176f5b1b29d686dba6a22d7510d09b 100644 --- a/data/rcsb-graphql/codegen.json +++ b/data/rcsb-graphql/codegen.json @@ -1,5 +1,5 @@ { - "flattenTypes": false, + "flattenTypes": true, "generatorConfig": { "printTime": true, "immutableTypes": true, diff --git a/src/apps/canvas/assembly-symmetry.ts b/src/apps/canvas/assembly-symmetry.ts index 1cc665a5b96b6d4763341d13ab843f0bdaea2b40..0fe6a734730dd50f51c2a8af3ba15af36d5c0517 100644 --- a/src/apps/canvas/assembly-symmetry.ts +++ b/src/apps/canvas/assembly-symmetry.ts @@ -16,12 +16,12 @@ import { ColorTheme } from 'mol-theme/color'; import { Location } from 'mol-model/location'; import { StructureElement, Unit, StructureProperties } from 'mol-model/structure'; -export function getAxesShape(featureId: number, assemblySymmetry: AssemblySymmetry) { - const f = assemblySymmetry.db.rcsb_assembly_symmetry_feature - const feature = Table.pickRow(f, i => f.id.value(i) === featureId) - if (!feature) return +export function getAxesShape(symmetryId: number, assemblySymmetry: AssemblySymmetry) { + const s = assemblySymmetry.db.rcsb_assembly_symmetry + const symmetry = Table.pickRow(s, i => s.id.value(i) === symmetryId) + if (!symmetry) return - const axes = assemblySymmetry.getAxes(featureId) + const axes = assemblySymmetry.getAxes(symmetryId) if (!axes._rowCount) return const vectorSpace = AssemblySymmetry.Schema.rcsb_assembly_symmetry_axis.start.space; @@ -41,7 +41,7 @@ export function getAxesShape(featureId: number, assemblySymmetry: AssemblySymmet addSphere(meshBuilder, end, radius, 2) addCylinder(meshBuilder, start, end, 1, cylinderProps) colors.push(Color(0xCCEE11)) - labels.push(`Axis ${i + 1} for ${feature.symmetry_value} ${feature.type.toLowerCase()} symmetry`) + labels.push(`Axis ${i + 1} for ${symmetry.kind} ${symmetry.type.toLowerCase()} symmetry`) } const mesh = meshBuilder.getMesh() const shape = Shape.create('Axes', mesh, colors, labels) @@ -51,46 +51,45 @@ export function getAxesShape(featureId: number, assemblySymmetry: AssemblySymmet function getAsymId(unit: Unit): StructureElement.Property<string> { switch (unit.kind) { case Unit.Kind.Atomic: - return StructureProperties.chain.auth_asym_id // TODO + return StructureProperties.chain.label_asym_id case Unit.Kind.Spheres: case Unit.Kind.Gaussians: return StructureProperties.coarse.asym_id } } -function memberKey (asym_id: string, oper_list_id?: number) { - return `${asym_id}|${oper_list_id}` +function clusterMemberKey (asym_id: string, oper_list_ids: string[]) { + return `${asym_id}-${oper_list_ids.join('x')}` } -export function getClusterColorTheme(featureId: number, assemblySymmetry: AssemblySymmetry): ColorTheme { +export function getClusterColorTheme(symmetryId: number, assemblySymmetry: AssemblySymmetry): ColorTheme { const DefaultColor = Color(0xCCCCCC) - const f = assemblySymmetry.db.rcsb_assembly_symmetry_feature - const feature = Table.pickRow(f, i => f.id.value(i) === featureId) - if (!feature) return { granularity: 'uniform', color: () => DefaultColor } + const s = assemblySymmetry.db.rcsb_assembly_symmetry + const symmetry = Table.pickRow(s, i => s.id.value(i) === symmetryId) + if (!symmetry) return { granularity: 'uniform', color: () => DefaultColor } - const clusters = assemblySymmetry.getClusters(featureId) + const clusters = assemblySymmetry.getClusters(symmetryId) if (!clusters._rowCount) return { granularity: 'uniform', color: () => DefaultColor } const clusterByMember = new Map<string, number>() for (let i = 0, il = clusters._rowCount; i < il; ++i) { - clusters.members.value(i).forEach(m => { - const ms = m.split('_') - const asym_id = ms[0] - const oper_list_id = ms.length === 2 ? parseInt(ms[1]) : undefined - clusterByMember.set(memberKey(asym_id, oper_list_id), i) - }) + const clusterMembers = assemblySymmetry.getClusterMembers(clusters.id.value(i)) + for (let j = 0, jl = clusterMembers._rowCount; j < jl; ++j) { + const asym_id = clusterMembers.asym_id.value(j) + const oper_list_ids = clusterMembers.pdbx_struct_oper_list_ids.value(j) + clusterByMember.set(clusterMemberKey(asym_id, oper_list_ids), i) + } } - const scale = ColorScale.create({ domain: [ 0, clusters._rowCount - 1 ] }) return { granularity: 'instance', color: (location: Location): Color => { if (StructureElement.isLocation(location)) { - const ns = location.unit.conformation.operator.name.split('-') const asym_id = getAsymId(location.unit) - const oper_list_id = ns.length === 2 ? parseInt(ns[1]) : undefined - const cluster = clusterByMember.get(memberKey(asym_id(location), oper_list_id)) + const ns = location.unit.conformation.operator.name.split('-') + const oper_list_ids = ns.length === 2 ? ns[1].split('x') : [] + const cluster = clusterByMember.get(clusterMemberKey(asym_id(location), oper_list_ids)) return cluster !== undefined ? scale.color(cluster) : DefaultColor } return DefaultColor diff --git a/src/apps/canvas/structure-view.ts b/src/apps/canvas/structure-view.ts index bde3e67e940eed4b22fb034e1dbeee9626f2b9f2..8be00f5eda814f0e67bb04b4bffac7a38fe025c1 100644 --- a/src/apps/canvas/structure-view.ts +++ b/src/apps/canvas/structure-view.ts @@ -65,14 +65,14 @@ interface StructureViewProps { export async function StructureView(app: App, viewer: Canvas3D, models: ReadonlyArray<Model>, props: StructureViewProps = {}): Promise<StructureView> { const active: { [k: string]: boolean } = { - cartoon: false, + cartoon: true, point: false, - surface: true, + surface: false, ballAndStick: false, carbohydrate: false, spacefill: false, distanceRestraint: false, - symmetryAxes: false, + symmetryAxes: true, // polymerSphere: false, } @@ -142,7 +142,7 @@ export async function StructureView(app: App, viewer: Canvas3D, models: Readonly } else if (model && model.symmetry.assemblies.length) { assemblyId = model.symmetry.assemblies[0].id } else if (model) { - assemblyId = '0' + assemblyId = 'deposited' } else { assemblyId = '-1' } @@ -152,7 +152,7 @@ export async function StructureView(app: App, viewer: Canvas3D, models: Readonly function getAssemblyIds() { const assemblyIds: { id: string, label: string }[] = [ - { id: '0', label: '0: model' } + { id: 'deposited', label: 'deposited' } ] if (model) model.symmetry.assemblies.forEach(a => { assemblyIds.push({ id: a.id, label: `${a.id}: ${a.details}` }) @@ -165,9 +165,9 @@ export async function StructureView(app: App, viewer: Canvas3D, models: Readonly if (newSymmetryFeatureId !== undefined) { symmetryFeatureId = newSymmetryFeatureId } else if (assemblySymmetry) { - const f = assemblySymmetry.getFeatures(assemblyId) - if (f._rowCount) { - symmetryFeatureId = f.id.value(0) + const s = assemblySymmetry.getSymmetries(assemblyId) + if (s._rowCount) { + symmetryFeatureId = s.id.value(0) } else { symmetryFeatureId = -1 } @@ -180,13 +180,13 @@ export async function StructureView(app: App, viewer: Canvas3D, models: Readonly function getSymmetryFeatureIds() { const symmetryFeatureIds: { id: number, label: string }[] = [] if (assemblySymmetry) { - const symmetryFeatures = assemblySymmetry.getFeatures(assemblyId) - for (let i = 0, il = symmetryFeatures._rowCount; i < il; ++i) { - const id = symmetryFeatures.id.value(i) - const symmetry = symmetryFeatures.symmetry_value.value(i) - const type = symmetryFeatures.type.value(i) - const stoichiometry = symmetryFeatures.stoichiometry_value.value(i) - const label = `${id}: ${symmetry} ${type} ${stoichiometry}` + const symmetries = assemblySymmetry.getSymmetries(assemblyId) + for (let i = 0, il = symmetries._rowCount; i < il; ++i) { + const id = symmetries.id.value(i) + const kind = symmetries.kind.value(i) + const type = symmetries.type.value(i) + const stoichiometry = symmetries.stoichiometry.value(i) + const label = `${id}: ${kind} ${type} ${stoichiometry}` symmetryFeatureIds.push({ id, label }) } } @@ -255,20 +255,15 @@ export async function StructureView(app: App, viewer: Canvas3D, models: Readonly async function createSymmetryRepr() { if (assemblySymmetry) { - const features = assemblySymmetry.getFeatures(assemblyId) - if (features._rowCount) { + const symmetries = assemblySymmetry.getSymmetries(assemblyId) + if (symmetries._rowCount) { const axesShape = getAxesShape(symmetryFeatureId, assemblySymmetry) if (axesShape) { // const colorTheme = getClusterColorTheme(symmetryFeatureId, assemblySymmetry) - // await cartoon.createOrUpdate({ - // colorTheme: { name: 'custom', color: colorTheme.color, granularity: colorTheme.granularity }, - // sizeTheme: { name: 'uniform', value: 0.2 }, - // useFog: false // TODO fog not working properly - // }).run() - // await ballAndStick.createOrUpdate({ - // colorTheme: { name: 'custom', color: colorTheme.color, granularity: colorTheme.granularity }, - // sizeTheme: { name: 'uniform', value: 0.1 }, - // useFog: false // TODO fog not working properly + // await structureRepresentations['cartoon'].createOrUpdate({ + // colorTheme: 'custom', + // colorFunction: colorTheme.color, + // colorGranularity: colorTheme.granularity, // }).run() await symmetryAxes.createOrUpdate({}, axesShape).run() viewer.add(symmetryAxes) diff --git a/src/apps/canvas/util.ts b/src/apps/canvas/util.ts index 27581f68cbc2fdd956de7d61e04a65da7c21a92c..e9b7dfdf2b61830f00422f6ffd1ae9d3a3404d52 100644 --- a/src/apps/canvas/util.ts +++ b/src/apps/canvas/util.ts @@ -43,7 +43,7 @@ export async function getModelsFromMmcif(cif: CifBlock) { export async function getStructureFromModel(model: Model, assembly: string) { const assemblies = model.symmetry.assemblies - if (assembly === '0') { + if (assembly === 'deposited') { return Structure.ofModel(model) } else if (assemblies.find(a => a.id === assembly)) { return await StructureSymmetry.buildAssembly(Structure.ofModel(model), assembly).run() diff --git a/src/mol-geo/geometry/color-data.ts b/src/mol-geo/geometry/color-data.ts index 5b58eef7d09168f7feeaf0713a1eecc5688d737d..457c6a14db1e9fdcae82fa889966685f43852537 100644 --- a/src/mol-geo/geometry/color-data.ts +++ b/src/mol-geo/geometry/color-data.ts @@ -10,7 +10,7 @@ import { Color } from 'mol-util/color'; import { Vec2, Vec3 } from 'mol-math/linear-algebra'; import { LocationIterator } from '../util/location-iterator'; import { NullLocation } from 'mol-model/location'; -import { LocationColor, ColorThemeProps, ColorTheme, ColorThemeName } from 'mol-theme/color'; +import { LocationColor, ColorThemeProps, ColorTheme, ColorThemeName, ScaleLegend, TableLegend } from 'mol-theme/color'; import { RuntimeContext } from 'mol-task'; import { getGranularity } from './geometry'; import { Structure } from 'mol-model/structure'; @@ -27,20 +27,25 @@ export type ColorData = { export interface ColorProps { colorTheme: ColorThemeName + colorDomain?: [number, number] colorValue?: Color + colorFunction?: LocationColor, + colorGranularity?: ColorType, + colorDescription?: string, + colorLegend?: ScaleLegend | TableLegend structure?: Structure } export function getColorThemeProps(props: ColorProps): ColorThemeProps { return { name: props.colorTheme, - // domain: [number, number], + domain: props.colorDomain, value: props.colorValue, structure: props.structure, - // color?: LocationColor, - // granularity?: ColorType, - // description?: string, - // legend?: ScaleLegend | TableLegend + color: props.colorFunction, + granularity: props.colorGranularity, + description: props.colorDescription, + legend: props.colorLegend } } diff --git a/src/mol-math/geometry/symmetry-operator.ts b/src/mol-math/geometry/symmetry-operator.ts index 86884a935653dd7c49a68632d93e885a93cd3829..88d12323f27647b6921f9d827232f1746729c697 100644 --- a/src/mol-math/geometry/symmetry-operator.ts +++ b/src/mol-math/geometry/symmetry-operator.ts @@ -52,7 +52,7 @@ namespace SymmetryOperator { return create(name, t); } - // Apply the 1st and then 2nd operator. ( = second.matrix * first.matrix) + /** Apply the 1st and then 2nd operator. ( = second.matrix * first.matrix). */ export function compose(first: SymmetryOperator, second: SymmetryOperator) { const matrix = Mat4.mul(Mat4.zero(), second.matrix, first.matrix); return create(second.name, matrix, second.hkl); diff --git a/src/mol-model-props/rcsb/graphql/symmetry.gql.ts b/src/mol-model-props/rcsb/graphql/symmetry.gql.ts index 264166e3ac2ff8bd808f9b8c887b4114068abaf8..7c9fe867fba16519314ab819357d46675e29225a 100644 --- a/src/mol-model-props/rcsb/graphql/symmetry.gql.ts +++ b/src/mol-model-props/rcsb/graphql/symmetry.gql.ts @@ -4,29 +4,28 @@ function gql (strs: TemplateStringsArray) { return strs.raw.join('') } export default gql`query AssemblySymmetry($pdbId: String!) { assemblies(pdbId: $pdbId) { - assembly_id - rcsb_assembly_symmetry { - source - symmetry_features { - symmetry { - description - value - } - clusters { - members - avg_rmsd - } - stoichiometry { - description - value - } - symmetry_axes { - start - end - order + pdbx_struct_assembly { + id + } + rcsb_struct_symmetry { + clusters { + avg_rmsd + members { + asym_id + pdbx_struct_oper_list_ids } - type } + kind + oligomeric_state + rotation_axes { + start + end + order + } + stoichiometry + symbol + type } + rcsb_struct_symmetry_provenance } }` \ No newline at end of file diff --git a/src/mol-model-props/rcsb/graphql/types.ts b/src/mol-model-props/rcsb/graphql/types.ts index b97fd46b849b6f387f4ce5c3bb9c68f6d44a7e21..1c89e3aae72dd79fc4dcabb22fd7c9b23ca8a1f9 100644 --- a/src/mol-model-props/rcsb/graphql/types.ts +++ b/src/mol-model-props/rcsb/graphql/types.ts @@ -1,18 +1,190 @@ /* tslint:disable */ -/** Generated in 2018-08-22T17:02:01-07:00 */ +/** Generated in 2018-10-31T12:19:29-07:00 */ -export enum PdbxLeavingAtomFlag { +// ==================================================== +// START: Typescript template +// ==================================================== + +// ==================================================== +// Scalars +// ==================================================== + +/** Built-in scalar representing an instant in time */ +export type Date = any; + +// ==================================================== +// Enums +// ==================================================== + +export enum ChemCompPdbxIdealCoordinatesMissingFlag { N = "N", Y = "Y" } -export enum PdbxStereoConfig { +export enum ChemCompPdbxModelCoordinatesMissingFlag { + N = "N", + Y = "Y" +} + +export enum ChemCompPdbxProcessingSite { + EBI = "EBI", + PDBE = "PDBE", + PDBJ = "PDBJ", + RCSB = "RCSB" +} + +export enum ChemCompPdbxReleaseStatus { + DEL = "DEL", + HOLD = "HOLD", + HPUB = "HPUB", + OBS = "OBS", + REF_ONLY = "REF_ONLY", + REL = "REL" +} + +export enum ChemCompType { + DNA_LINKING = "DNA_LINKING", + DNA_OH_3_PRIME_TERMINUS = "DNA_OH_3_PRIME_TERMINUS", + DNA_OH_5_PRIME_TERMINUS = "DNA_OH_5_PRIME_TERMINUS", + D_BETA_PEPTIDE_C_GAMMA_LINKING = "D_BETA_PEPTIDE_C_GAMMA_LINKING", + D_GAMMA_PEPTIDE_C_DELTA_LINKING = "D_GAMMA_PEPTIDE_C_DELTA_LINKING", + D_PEPTIDE_COOH_CARBOXY_TERMINUS = "D_PEPTIDE_COOH_CARBOXY_TERMINUS", + D_PEPTIDE_LINKING = "D_PEPTIDE_LINKING", + D_PEPTIDE_NH_3_AMINO_TERMINUS = "D_PEPTIDE_NH_3_AMINO_TERMINUS", + D_SACCHARIDE = "D_SACCHARIDE", + D_SACCHARIDE_1_4_AND_1_4_LINKING = "D_SACCHARIDE_1_4_AND_1_4_LINKING", + D_SACCHARIDE_1_4_AND_1_6_LINKING = "D_SACCHARIDE_1_4_AND_1_6_LINKING", + L_BETA_PEPTIDE_C_GAMMA_LINKING = "L_BETA_PEPTIDE_C_GAMMA_LINKING", + L_DNA_LINKING = "L_DNA_LINKING", + L_GAMMA_PEPTIDE_C_DELTA_LINKING = "L_GAMMA_PEPTIDE_C_DELTA_LINKING", + L_PEPTIDE_COOH_CARBOXY_TERMINUS = "L_PEPTIDE_COOH_CARBOXY_TERMINUS", + L_PEPTIDE_LINKING = "L_PEPTIDE_LINKING", + L_PEPTIDE_NH_3_AMINO_TERMINUS = "L_PEPTIDE_NH_3_AMINO_TERMINUS", + L_RNA_LINKING = "L_RNA_LINKING", + L_SACCHARIDE = "L_SACCHARIDE", + L_SACCHARIDE_1_4_AND_1_4_LINKING = "L_SACCHARIDE_1_4_AND_1_4_LINKING", + L_SACCHARIDE_1_4_AND_1_6_LINKING = "L_SACCHARIDE_1_4_AND_1_6_LINKING", + NON_POLYMER = "NON_POLYMER", + OTHER = "OTHER", + PEPTIDE_LIKE = "PEPTIDE_LIKE", + PEPTIDE_LINKING = "PEPTIDE_LINKING", + RNA_LINKING = "RNA_LINKING", + RNA_OH_3_PRIME_TERMINUS = "RNA_OH_3_PRIME_TERMINUS", + RNA_OH_5_PRIME_TERMINUS = "RNA_OH_5_PRIME_TERMINUS", + SACCHARIDE = "SACCHARIDE" +} + +export enum ChemCompAtomPdbxAromaticFlag { + N = "N", + Y = "Y" +} + +export enum ChemCompAtomPdbxLeavingAtomFlag { + N = "N", + Y = "Y" +} + +export enum ChemCompAtomPdbxPolymerType { + NON_POLYMER = "NON_POLYMER", + POLYMER = "POLYMER" +} + +export enum ChemCompAtomPdbxStereoConfig { N = "N", R = "R", S = "S" } -export enum ExperimentalSupport { +export enum ChemCompBondPdbxAromaticFlag { + N = "N", + Y = "Y" +} + +export enum ChemCompBondPdbxStereoConfig { + E = "E", + N = "N", + Z = "Z" +} + +export enum ChemCompBondValueOrder { + AROM = "AROM", + DELO = "DELO", + DOUB = "DOUB", + PI = "PI", + POLY = "POLY", + QUAD = "QUAD", + SING = "SING", + TRIP = "TRIP" +} + +export enum PdbxChemCompAuditActionType { + CREATE_COMPONENT = "CREATE_COMPONENT", + INITIAL_RELEASE = "INITIAL_RELEASE", + MODIFY_AROMATIC_FLAG = "MODIFY_AROMATIC_FLAG", + MODIFY_ATOM_ID = "MODIFY_ATOM_ID", + MODIFY_CHARGE = "MODIFY_CHARGE", + MODIFY_COMPONENT_ATOM_ID = "MODIFY_COMPONENT_ATOM_ID", + MODIFY_COMPONENT_COMP_ID = "MODIFY_COMPONENT_COMP_ID", + MODIFY_COORDINATES = "MODIFY_COORDINATES", + MODIFY_DESCRIPTOR = "MODIFY_DESCRIPTOR", + MODIFY_FORMAL_CHARGE = "MODIFY_FORMAL_CHARGE", + MODIFY_FORMULA = "MODIFY_FORMULA", + MODIFY_IDENTIFIER = "MODIFY_IDENTIFIER", + MODIFY_INTERNAL_TYPE = "MODIFY_INTERNAL_TYPE", + MODIFY_LEAVING_ATOM_FLAG = "MODIFY_LEAVING_ATOM_FLAG", + MODIFY_LINKING_TYPE = "MODIFY_LINKING_TYPE", + MODIFY_MODEL_COORDINATES_CODE = "MODIFY_MODEL_COORDINATES_CODE", + MODIFY_NAME = "MODIFY_NAME", + MODIFY_ONE_LETTER_CODE = "MODIFY_ONE_LETTER_CODE", + MODIFY_PARENT_RESIDUE = "MODIFY_PARENT_RESIDUE", + MODIFY_PROCESSING_SITE = "MODIFY_PROCESSING_SITE", + MODIFY_SUBCOMPONENT_LIST = "MODIFY_SUBCOMPONENT_LIST", + MODIFY_SYNONYMS = "MODIFY_SYNONYMS", + MODIFY_VALUE_ORDER = "MODIFY_VALUE_ORDER", + OBSOLETE_COMPONENT = "OBSOLETE_COMPONENT", + OTHER_MODIFICATION = "OTHER_MODIFICATION" +} + +export enum PdbxChemCompDescriptorType { + IN_CH_I = "IN_CH_I", + IN_CH_I_CHARGE = "IN_CH_I_CHARGE", + IN_CH_I_FIXEDH = "IN_CH_I_FIXEDH", + IN_CH_I_ISOTOPE = "IN_CH_I_ISOTOPE", + IN_CH_I_KEY = "IN_CH_I_KEY", + IN_CH_I_MAIN = "IN_CH_I_MAIN", + IN_CH_I_MAIN_CONNECT = "IN_CH_I_MAIN_CONNECT", + IN_CH_I_MAIN_FORMULA = "IN_CH_I_MAIN_FORMULA", + IN_CH_I_MAIN_HATOM = "IN_CH_I_MAIN_HATOM", + IN_CH_I_RECONNECT = "IN_CH_I_RECONNECT", + IN_CH_I_STEREO = "IN_CH_I_STEREO", + SMILES = "SMILES", + SMILES_CANNONICAL = "SMILES_CANNONICAL", + SMILES_CANONICAL = "SMILES_CANONICAL" +} + +export enum PdbxChemCompIdentifierType { + CAS_REGISTRY_NUMBER = "CAS_REGISTRY_NUMBER", + COMMON_NAME = "COMMON_NAME", + CONDENSED_IUPAC_CARB_NAME = "CONDENSED_IUPAC_CARB_NAME", + IUPAC_CARB_NAME = "IUPAC_CARB_NAME", + MDL_IDENTIFIER = "MDL_IDENTIFIER", + PUBCHEM_IDENTIFIER = "PUBCHEM_IDENTIFIER", + SYNONYM = "SYNONYM", + SYSTEMATIC_NAME = "SYSTEMATIC_NAME" +} + +export enum PdbxStructAssemblyRcsbCandidateAssembly { + N = "N", + Y = "Y" +} + +export enum PdbxStructAssemblyRcsbDetails { + AUTHOR_AND_SOFTWARE_DEFINED_ASSEMBLY = "AUTHOR_AND_SOFTWARE_DEFINED_ASSEMBLY", + AUTHOR_DEFINED_ASSEMBLY = "AUTHOR_DEFINED_ASSEMBLY", + SOFTWARE_DEFINED_ASSEMBLY = "SOFTWARE_DEFINED_ASSEMBLY" +} + +export enum PdbxStructAssemblyAuthEvidenceExperimentalSupport { ASSAY_FOR_OLIGOMERIZATION = "ASSAY_FOR_OLIGOMERIZATION", CROSS_LINKING = "CROSS_LINKING", EQUILIBRIUM_CENTRIFUGATION = "EQUILIBRIUM_CENTRIFUGATION", @@ -31,41 +203,124 @@ export enum ExperimentalSupport { SURFACE_PLASMON_RESONANCE = "SURFACE_PLASMON_RESONANCE" } -export enum SymmetryFeatureType { +export enum PdbxStructAssemblyPropType { + ABSA_A_2 = "ABSA_A_2", + MORE = "MORE", + SSA_A_2 = "SSA_A_2" +} + +export enum PdbxStructOperListType { + BUILD_2_D_CRYSTAL_ASYMMETRIC_UNIT = "BUILD_2_D_CRYSTAL_ASYMMETRIC_UNIT", + BUILD_3_D_CRYSTAL_ASYMMETRIC_UNIT = "BUILD_3_D_CRYSTAL_ASYMMETRIC_UNIT", + BUILD_HELICAL_ASYMMETRIC_UNIT = "BUILD_HELICAL_ASYMMETRIC_UNIT", + BUILD_POINT_ASYMMETRIC_UNIT = "BUILD_POINT_ASYMMETRIC_UNIT", + CRYSTAL_SYMMETRY_OPERATION = "CRYSTAL_SYMMETRY_OPERATION", + HELICAL_SYMMETRY_OPERATION = "HELICAL_SYMMETRY_OPERATION", + IDENTITY_OPERATION = "IDENTITY_OPERATION", + POINT_SYMMETRY_OPERATION = "POINT_SYMMETRY_OPERATION", + TRANSFORM_TO_2_D_CRYSTAL_FRAME = "TRANSFORM_TO_2_D_CRYSTAL_FRAME", + TRANSFORM_TO_3_D_CRYSTAL_FRAME = "TRANSFORM_TO_3_D_CRYSTAL_FRAME", + TRANSFORM_TO_CRYSTAL_FRAME = "TRANSFORM_TO_CRYSTAL_FRAME", + TRANSFORM_TO_HELICAL_FRAME = "TRANSFORM_TO_HELICAL_FRAME", + TRANSFORM_TO_POINT_FRAME = "TRANSFORM_TO_POINT_FRAME", + _2_D_CRYSTAL_SYMMETRY_OPERATION = "_2_D_CRYSTAL_SYMMETRY_OPERATION", + _3_D_CRYSTAL_SYMMETRY_OPERATION = "_3_D_CRYSTAL_SYMMETRY_OPERATION" +} + +export enum RcsbStructSymmetryKind { GLOBAL = "GLOBAL", LOCAL = "LOCAL", PSEUDO = "PSEUDO" } -export enum UnpublishedFlag { +export enum RcsbStructSymmetryType { + ASYMMETRIC = "ASYMMETRIC", + CYCLIC = "CYCLIC", + DIHEDRAL = "DIHEDRAL", + HELICAL = "HELICAL", + ICOSAHEDRAL = "ICOSAHEDRAL", + OCTAHEDRAL = "OCTAHEDRAL", + TETRAHEDRAL = "TETRAHEDRAL" +} + +export enum CitationCoordinateLinkage { + N = "N", + NO = "NO", + Y = "Y", + YES = "YES" +} + +export enum CitationUnpublishedFlag { N = "N", Y = "Y" } -export enum PdbxMonochromaticOrLaueMl { +export enum DiffrnRadiationPdbxMonochromaticOrLaueMl { L = "L", M = "M" } -export enum PdbxScatteringType { +export enum DiffrnRadiationPdbxScatteringType { ELECTRON = "ELECTRON", NEUTRON = "NEUTRON", X_RAY = "X_RAY" } -export enum RefSpace { +export enum Em2dCrystalEntitySpaceGroupNameHm { + C_1_2 = "C_1_2", + C_2_2_2 = "C_2_2_2", + P_1 = "P_1", + P_1_2 = "P_1_2", + P_1_21 = "P_1_21", + P_2 = "P_2", + P_2_21_21 = "P_2_21_21", + P_2_2_2 = "P_2_2_2", + P_2_2_21 = "P_2_2_21", + P_3 = "P_3", + P_3_1_2 = "P_3_1_2", + P_3_2_1 = "P_3_2_1", + P_4 = "P_4", + P_4_21_2 = "P_4_21_2", + P_4_2_2 = "P_4_2_2", + P_6 = "P_6", + P_6_2_2 = "P_6_2_2" +} + +export enum Em3dFittingRefProtocol { + AB_INITIO_MODEL = "AB_INITIO_MODEL", + BACKBONE_TRACE = "BACKBONE_TRACE", + FLEXIBLE_FIT = "FLEXIBLE_FIT", + OTHER = "OTHER", + RIGID_BODY_FIT = "RIGID_BODY_FIT" +} + +export enum Em3dFittingRefSpace { REAL = "REAL", RECIPROCAL = "RECIPROCAL" } -export enum SymmetryType { +export enum Em3dReconstructionRefinementType { + HALF_MAPS_REFINED_AGAINST_SAME_DATA = "HALF_MAPS_REFINED_AGAINST_SAME_DATA", + HALF_MAPS_REFINED_INDEPENDENTLY = "HALF_MAPS_REFINED_INDEPENDENTLY", + HALF_MAPS_REFINED_INDEPENDENTLY_WITH_FREQUENCY_RANGE_OMITTED = "HALF_MAPS_REFINED_INDEPENDENTLY_WITH_FREQUENCY_RANGE_OMITTED", + HALF_MAPS_REFINED_WITH_FREQUENCY_RANGE_OMITTED = "HALF_MAPS_REFINED_WITH_FREQUENCY_RANGE_OMITTED", + OTHER = "OTHER" +} + +export enum Em3dReconstructionSymmetryType { HELICAL = "HELICAL", POINT = "POINT", _2_D_CRYSTAL = "_2_D_CRYSTAL", _3_D_CRYSTAL = "_3_D_CRYSTAL" } -export enum AggregationState { +export enum EmEntityAssemblySource { + MULTIPLE_SOURCES = "MULTIPLE_SOURCES", + NATURAL = "NATURAL", + RECOMBINANT = "RECOMBINANT" +} + +export enum EmExperimentAggregationState { CELL = "CELL", FILAMENT = "FILAMENT", HELICAL_ARRAY = "HELICAL_ARRAY", @@ -75,7 +330,7 @@ export enum AggregationState { _3_D_ARRAY = "_3_D_ARRAY" } -export enum ReconstructionMethod { +export enum EmExperimentReconstructionMethod { CRYSTALLOGRAPHY = "CRYSTALLOGRAPHY", HELICAL = "HELICAL", SINGLE_PARTICLE = "SINGLE_PARTICLE", @@ -83,40 +338,244 @@ export enum ReconstructionMethod { TOMOGRAPHY = "TOMOGRAPHY" } -export enum EmbeddingApplied { +export enum EmImageRecordingDetectorMode { + COUNTING = "COUNTING", + INTEGRATING = "INTEGRATING", + OTHER = "OTHER", + SUPER_RESOLUTION = "SUPER_RESOLUTION" +} + +export enum EmImagingAlignmentProcedure { + BASIC = "BASIC", + COMA_FREE = "COMA_FREE", + NONE = "NONE", + OTHER = "OTHER", + ZEMLIN_TABLEAU = "ZEMLIN_TABLEAU" +} + +export enum EmImagingCryogen { + HELIUM = "HELIUM", + NITROGEN = "NITROGEN" +} + +export enum EmImagingIlluminationMode { + FLOOD_BEAM = "FLOOD_BEAM", + OTHER = "OTHER", + SPOT_SCAN = "SPOT_SCAN" +} + +export enum EmImagingMicroscopeModel { + FEI_MORGAGNI = "FEI_MORGAGNI", + FEI_PHILIPS_CM_10 = "FEI_PHILIPS_CM_10", + FEI_PHILIPS_CM_12 = "FEI_PHILIPS_CM_12", + FEI_PHILIPS_CM_120_T = "FEI_PHILIPS_CM_120_T", + FEI_PHILIPS_CM_200_FEG = "FEI_PHILIPS_CM_200_FEG", + FEI_PHILIPS_CM_200_FEG_SOPHIE = "FEI_PHILIPS_CM_200_FEG_SOPHIE", + FEI_PHILIPS_CM_200_FEG_ST = "FEI_PHILIPS_CM_200_FEG_ST", + FEI_PHILIPS_CM_200_FEG_UT = "FEI_PHILIPS_CM_200_FEG_UT", + FEI_PHILIPS_CM_200_T = "FEI_PHILIPS_CM_200_T", + FEI_PHILIPS_CM_300_FEG_HE = "FEI_PHILIPS_CM_300_FEG_HE", + FEI_PHILIPS_CM_300_FEG_ST = "FEI_PHILIPS_CM_300_FEG_ST", + FEI_PHILIPS_CM_300_FEG_T = "FEI_PHILIPS_CM_300_FEG_T", + FEI_PHILIPS_EM_400 = "FEI_PHILIPS_EM_400", + FEI_PHILIPS_EM_420 = "FEI_PHILIPS_EM_420", + FEI_POLARA_300 = "FEI_POLARA_300", + FEI_TALOS_ARCTICA = "FEI_TALOS_ARCTICA", + FEI_TECNAI_10 = "FEI_TECNAI_10", + FEI_TECNAI_12 = "FEI_TECNAI_12", + FEI_TECNAI_20 = "FEI_TECNAI_20", + FEI_TECNAI_ARCTICA = "FEI_TECNAI_ARCTICA", + FEI_TECNAI_F_20 = "FEI_TECNAI_F_20", + FEI_TECNAI_F_30 = "FEI_TECNAI_F_30", + FEI_TECNAI_SPHERA = "FEI_TECNAI_SPHERA", + FEI_TECNAI_SPIRIT = "FEI_TECNAI_SPIRIT", + FEI_TITAN = "FEI_TITAN", + FEI_TITAN_KRIOS = "FEI_TITAN_KRIOS", + HITACHI_EF_2000 = "HITACHI_EF_2000", + HITACHI_EF_3000 = "HITACHI_EF_3000", + HITACHI_HF_2000 = "HITACHI_HF_2000", + HITACHI_HF_3000 = "HITACHI_HF_3000", + HITACHI_H_7600 = "HITACHI_H_7600", + HITACHI_H_9500_SD = "HITACHI_H_9500_SD", + JEOL_100_B = "JEOL_100_B", + JEOL_100_CX = "JEOL_100_CX", + JEOL_1010 = "JEOL_1010", + JEOL_1200 = "JEOL_1200", + JEOL_1200_EX = "JEOL_1200_EX", + JEOL_1200_EXII = "JEOL_1200_EXII", + JEOL_1230 = "JEOL_1230", + JEOL_1400 = "JEOL_1400", + JEOL_2000_EX = "JEOL_2000_EX", + JEOL_2000_EXII = "JEOL_2000_EXII", + JEOL_2010 = "JEOL_2010", + JEOL_2010_F = "JEOL_2010_F", + JEOL_2010_HC = "JEOL_2010_HC", + JEOL_2010_HT = "JEOL_2010_HT", + JEOL_2010_UHR = "JEOL_2010_UHR", + JEOL_2011 = "JEOL_2011", + JEOL_2100 = "JEOL_2100", + JEOL_2100_F = "JEOL_2100_F", + JEOL_2200_FS = "JEOL_2200_FS", + JEOL_2200_FSC = "JEOL_2200_FSC", + JEOL_3000_SFF = "JEOL_3000_SFF", + JEOL_3100_FEF = "JEOL_3100_FEF", + JEOL_3100_FFC = "JEOL_3100_FFC", + JEOL_3200_FS = "JEOL_3200_FS", + JEOL_3200_FSC = "JEOL_3200_FSC", + JEOL_4000 = "JEOL_4000", + JEOL_4000_EX = "JEOL_4000_EX", + JEOL_CRYO_ARM_200 = "JEOL_CRYO_ARM_200", + JEOL_CRYO_ARM_300 = "JEOL_CRYO_ARM_300", + JEOL_KYOTO_3000_SFF = "JEOL_KYOTO_3000_SFF", + SIEMENS_SULEIKA = "SIEMENS_SULEIKA", + ZEISS_LEO_912 = "ZEISS_LEO_912", + ZEISS_LIBRA_120_PLUS = "ZEISS_LIBRA_120_PLUS" +} + +export enum EmImagingMode { + BRIGHT_FIELD = "BRIGHT_FIELD", + DARK_FIELD = "DARK_FIELD", + DIFFRACTION = "DIFFRACTION", + OTHER = "OTHER" +} + +export enum EmImagingSpecimenHolderModel { + FEI_TITAN_KRIOS_AUTOGRID_HOLDER = "FEI_TITAN_KRIOS_AUTOGRID_HOLDER", + FISCHIONE_INSTRUMENTS_DUAL_AXIS_TOMOGRAPHY_HOLDER = "FISCHIONE_INSTRUMENTS_DUAL_AXIS_TOMOGRAPHY_HOLDER", + GATAN_626_SINGLE_TILT_LIQUID_NITROGEN_CRYO_TRANSFER_HOLDER = "GATAN_626_SINGLE_TILT_LIQUID_NITROGEN_CRYO_TRANSFER_HOLDER", + GATAN_910_MULTI_SPECIMEN_SINGLE_TILT_CRYO_TRANSFER_HOLDER = "GATAN_910_MULTI_SPECIMEN_SINGLE_TILT_CRYO_TRANSFER_HOLDER", + GATAN_914_HIGH_TILT_LIQUID_NITROGEN_CRYO_TRANSFER_TOMOGRAPHY_HOLDER = "GATAN_914_HIGH_TILT_LIQUID_NITROGEN_CRYO_TRANSFER_TOMOGRAPHY_HOLDER", + GATAN_915_DOUBLE_TILT_LIQUID_NITROGEN_CRYO_TRANSFER_HOLDER = "GATAN_915_DOUBLE_TILT_LIQUID_NITROGEN_CRYO_TRANSFER_HOLDER", + GATAN_CHDT_3504_DOUBLE_TILT_HIGH_RESOLUTION_NITROGEN_COOLING_HOLDER = "GATAN_CHDT_3504_DOUBLE_TILT_HIGH_RESOLUTION_NITROGEN_COOLING_HOLDER", + GATAN_CT_3500_SINGLE_TILT_LIQUID_NITROGEN_CRYO_TRANSFER_HOLDER = "GATAN_CT_3500_SINGLE_TILT_LIQUID_NITROGEN_CRYO_TRANSFER_HOLDER", + GATAN_CT_3500_TR_SINGLE_TILT_ROTATION_LIQUID_NITROGEN_CRYO_TRANSFER_HOLDER = "GATAN_CT_3500_TR_SINGLE_TILT_ROTATION_LIQUID_NITROGEN_CRYO_TRANSFER_HOLDER", + GATAN_HCHDT_3010_DOUBLE_TILT_HIGH_RESOLUTION_HELIUM_COOLING_HOLDER = "GATAN_HCHDT_3010_DOUBLE_TILT_HIGH_RESOLUTION_HELIUM_COOLING_HOLDER", + GATAN_HCHST_3008_SINGLE_TILT_HIGH_RESOLUTION_HELIUM_COOLING_HOLDER = "GATAN_HCHST_3008_SINGLE_TILT_HIGH_RESOLUTION_HELIUM_COOLING_HOLDER", + GATAN_HC_3500_SINGLE_TILT_HEATING_NITROGEN_COOLING_HOLDER = "GATAN_HC_3500_SINGLE_TILT_HEATING_NITROGEN_COOLING_HOLDER", + GATAN_HELIUM = "GATAN_HELIUM", + GATAN_LIQUID_NITROGEN = "GATAN_LIQUID_NITROGEN", + GATAN_UHRST_3500_SINGLE_TILT_ULTRA_HIGH_RESOLUTION_NITROGEN_COOLING_HOLDER = "GATAN_UHRST_3500_SINGLE_TILT_ULTRA_HIGH_RESOLUTION_NITROGEN_COOLING_HOLDER", + GATAN_ULTDT_ULTRA_LOW_TEMPERATURE_DOUBLE_TILT_HELIUM_COOLING_HOLDER = "GATAN_ULTDT_ULTRA_LOW_TEMPERATURE_DOUBLE_TILT_HELIUM_COOLING_HOLDER", + GATAN_ULTST_ULTRA_LOW_TEMPERATURE_SINGLE_TILT_HELIUM_COOLING_HOLDER = "GATAN_ULTST_ULTRA_LOW_TEMPERATURE_SINGLE_TILT_HELIUM_COOLING_HOLDER", + HOME_BUILD = "HOME_BUILD", + JEOL = "JEOL", + JEOL_3200_FSC_CRYOHOLDER = "JEOL_3200_FSC_CRYOHOLDER", + JEOL_CRYOSPECPORTER = "JEOL_CRYOSPECPORTER", + OTHER = "OTHER", + PHILIPS_ROTATION_HOLDER = "PHILIPS_ROTATION_HOLDER", + SIDE_ENTRY_EUCENTRIC = "SIDE_ENTRY_EUCENTRIC" +} + +export enum EmSoftwareCategory { + CLASSIFICATION = "CLASSIFICATION", + CRYSTALLOGRAPHY_MERGING = "CRYSTALLOGRAPHY_MERGING", + CTF_CORRECTION = "CTF_CORRECTION", + DIFFRACTION_INDEXING = "DIFFRACTION_INDEXING", + FINAL_EULER_ASSIGNMENT = "FINAL_EULER_ASSIGNMENT", + IMAGE_ACQUISITION = "IMAGE_ACQUISITION", + INITIAL_EULER_ASSIGNMENT = "INITIAL_EULER_ASSIGNMENT", + LATTICE_DISTORTION_CORRECTION = "LATTICE_DISTORTION_CORRECTION", + LAYERLINE_INDEXING = "LAYERLINE_INDEXING", + MASKING = "MASKING", + MODEL_FITTING = "MODEL_FITTING", + MODEL_REFINEMENT = "MODEL_REFINEMENT", + MOLECULAR_REPLACEMENT = "MOLECULAR_REPLACEMENT", + OTHER = "OTHER", + PARTICLE_SELECTION = "PARTICLE_SELECTION", + RECONSTRUCTION = "RECONSTRUCTION", + SERIES_ALIGNMENT = "SERIES_ALIGNMENT", + SYMMETRY_DETERMINATION = "SYMMETRY_DETERMINATION", + VOLUME_SELECTION = "VOLUME_SELECTION" +} + +export enum EmSpecimenEmbeddingApplied { + NO = "NO", + YES = "YES" +} + +export enum EmSpecimenShadowingApplied { NO = "NO", YES = "YES" } -export enum StainingApplied { +export enum EmSpecimenStainingApplied { NO = "NO", YES = "YES" } -export enum VitrificationApplied { +export enum EmSpecimenVitrificationApplied { NO = "NO", YES = "YES" } -export enum Type { +export enum EmStainingType { NEGATIVE = "NEGATIVE", NONE = "NONE", POSITIVE = "POSITIVE" } -export enum SrcMethod { +export enum EmVitrificationCryogenName { + ETHANE = "ETHANE", + ETHANE_PROPANE = "ETHANE_PROPANE", + FREON_12 = "FREON_12", + FREON_22 = "FREON_22", + HELIUM = "HELIUM", + METHANE = "METHANE", + NITROGEN = "NITROGEN", + OTHER = "OTHER", + PROPANE = "PROPANE" +} + +export enum EmVitrificationInstrument { + EMS_002_RAPID_IMMERSION_FREEZER = "EMS_002_RAPID_IMMERSION_FREEZER", + FEI_VITROBOT_MARK_I = "FEI_VITROBOT_MARK_I", + FEI_VITROBOT_MARK_II = "FEI_VITROBOT_MARK_II", + FEI_VITROBOT_MARK_III = "FEI_VITROBOT_MARK_III", + FEI_VITROBOT_MARK_IV = "FEI_VITROBOT_MARK_IV", + GATAN_CRYOPLUNGE_3 = "GATAN_CRYOPLUNGE_3", + HOMEMADE_PLUNGER = "HOMEMADE_PLUNGER", + LEICA_EM_CPC = "LEICA_EM_CPC", + LEICA_EM_GP = "LEICA_EM_GP", + LEICA_KF_80 = "LEICA_KF_80", + LEICA_PLUNGER = "LEICA_PLUNGER", + REICHERT_JUNG_PLUNGER = "REICHERT_JUNG_PLUNGER", + SPOTITON = "SPOTITON", + ZEISS_PLUNGE_FREEZER_CRYOBOX = "ZEISS_PLUNGE_FREEZER_CRYOBOX" +} + +export enum EntityRcsbMultipleSourceFlag { + N = "N", + Y = "Y" +} + +export enum EntitySrcMethod { MAN = "MAN", NAT = "NAT", SYN = "SYN" } export enum EntityType { + BRANCHED = "BRANCHED", MACROLIDE = "MACROLIDE", NON_POLYMER = "NON_POLYMER", POLYMER = "POLYMER", WATER = "WATER" } +export enum EntityPolyNstdLinkage { + N = "N", + NO = "NO", + Y = "Y", + YES = "YES" +} + +export enum EntityPolyNstdMonomer { + N = "N", + NO = "NO", + Y = "Y", + YES = "YES" +} + export enum EntityPolyType { CYCLIC_PSEUDO_PEPTIDE = "CYCLIC_PSEUDO_PEPTIDE", OTHER = "OTHER", @@ -130,40 +589,614 @@ export enum EntityPolyType { POLYSACCHARIDE_L = "POLYSACCHARIDE_L" } -export enum RcsbHostOrganismSource { - MMCIF = "MMCIF", - NCBI = "NCBI", - UNIPROT = "UNIPROT" +export enum EntitySrcGenPdbxAltSourceFlag { + MODEL = "MODEL", + SAMPLE = "SAMPLE" +} + +export enum EntitySrcGenPdbxSeqType { + BIOLOGICAL_SEQUENCE = "BIOLOGICAL_SEQUENCE", + C_TERMINAL_TAG = "C_TERMINAL_TAG", + LINKER = "LINKER", + N_TERMINAL_TAG = "N_TERMINAL_TAG" } -export enum RcsbMembraneSource { +export enum EntitySrcNatPdbxAltSourceFlag { + MODEL = "MODEL", + SAMPLE = "SAMPLE" +} + +export enum PdbxEntitySrcSynPdbxAltSourceFlag { + MODEL = "MODEL", + SAMPLE = "SAMPLE" +} + +export enum RcsbEntityHostOrganismProvenanceCode { + PDB_PRIMARY_DATA = "PDB_PRIMARY_DATA" +} + +export enum RcsbEntitySourceOrganismProvenanceCode { + PDB_PRIMARY_DATA = "PDB_PRIMARY_DATA" +} + +export enum RcsbEntitySourceOrganismSourceType { + GENETICALLY_ENGINEERED = "GENETICALLY_ENGINEERED", + NATURAL = "NATURAL", + SYNTHETIC = "SYNTHETIC" +} + +export enum RcsbMembraneProvenanceSource { HOMOLOGY = "HOMOLOGY", MPSTRUCT = "MPSTRUCT" } -export enum RcsbOrganismSource { - MMCIF = "MMCIF", - NCBI = "NCBI", - UNIPROT = "UNIPROT" +export enum StructAsymPdbxBlankPdbChainidFlag { + N = "N", + Y = "Y" +} + +export enum FeatureType { + ACTIVE_SITE = "ACTIVE_SITE", + BINDING_SITE = "BINDING_SITE", + CALCIUM_BINDING_REGION = "CALCIUM_BINDING_REGION", + CHAIN = "CHAIN", + COILED_COIL_REGION = "COILED_COIL_REGION", + COMPOSITIONALLY_BIASED_REGION = "COMPOSITIONALLY_BIASED_REGION", + CROSS_LINK = "CROSS_LINK", + DISULFIDE_BOND = "DISULFIDE_BOND", + DNA_BINDING_REGION = "DNA_BINDING_REGION", + DOMAIN = "DOMAIN", + GLYCOSYLATION_SITE = "GLYCOSYLATION_SITE", + HELIX = "HELIX", + INITIATOR_METHIONINE = "INITIATOR_METHIONINE", + INTRAMEMBRANE_REGION = "INTRAMEMBRANE_REGION", + LIPID_MOIETY_BINDING_REGION = "LIPID_MOIETY_BINDING_REGION", + METAL_ION_BINDING_SITE = "METAL_ION_BINDING_SITE", + MODIFIED_RESIDUE = "MODIFIED_RESIDUE", + MUTAGENESIS_SITE = "MUTAGENESIS_SITE", + NON_CONSECUTIVE_RESIDUES = "NON_CONSECUTIVE_RESIDUES", + NON_STANDARD_AMINO_ACID = "NON_STANDARD_AMINO_ACID", + NON_TERMINAL_RESIDUE = "NON_TERMINAL_RESIDUE", + NUCLEOTIDE_PHOSPHATE_BINDING_REGION = "NUCLEOTIDE_PHOSPHATE_BINDING_REGION", + PEPTIDE = "PEPTIDE", + PROPEPTIDE = "PROPEPTIDE", + REGION_OF_INTEREST = "REGION_OF_INTEREST", + REPEAT = "REPEAT", + SEQUENCE_CONFLICT = "SEQUENCE_CONFLICT", + SEQUENCE_VARIANT = "SEQUENCE_VARIANT", + SHORT_SEQUENCE_MOTIF = "SHORT_SEQUENCE_MOTIF", + SIGNAL_PEPTIDE = "SIGNAL_PEPTIDE", + SITE = "SITE", + SPLICE_VARIANT = "SPLICE_VARIANT", + STRAND = "STRAND", + TOPOLOGICAL_DOMAIN = "TOPOLOGICAL_DOMAIN", + TRANSIT_PEPTIDE = "TRANSIT_PEPTIDE", + TRANSMEMBRANE_REGION = "TRANSMEMBRANE_REGION", + TURN = "TURN", + UNSURE_RESIDUE = "UNSURE_RESIDUE", + ZINC_FINGER_REGION = "ZINC_FINGER_REGION" +} + +export enum GeneNameType { + ORDERED_LOCUS = "ORDERED_LOCUS", + ORF = "ORF", + PRIMARY = "PRIMARY", + SYNONYM = "SYNONYM" +} + +export enum OrganismNameType { + ABBREVIATION = "ABBREVIATION", + COMMON = "COMMON", + FULL = "FULL", + SCIENTIFIC = "SCIENTIFIC", + SYNONYM = "SYNONYM" +} + +export enum OrganismHostNameType { + ABBREVIATION = "ABBREVIATION", + COMMON = "COMMON", + FULL = "FULL", + SCIENTIFIC = "SCIENTIFIC", + SYNONYM = "SYNONYM" +} + +export enum ExptlMethod { + ELECTRON_CRYSTALLOGRAPHY = "ELECTRON_CRYSTALLOGRAPHY", + ELECTRON_MICROSCOPY = "ELECTRON_MICROSCOPY", + EPR = "EPR", + FIBER_DIFFRACTION = "FIBER_DIFFRACTION", + FLUORESCENCE_TRANSFER = "FLUORESCENCE_TRANSFER", + INFRARED_SPECTROSCOPY = "INFRARED_SPECTROSCOPY", + NEUTRON_DIFFRACTION = "NEUTRON_DIFFRACTION", + POWDER_DIFFRACTION = "POWDER_DIFFRACTION", + SOLID_STATE_NMR = "SOLID_STATE_NMR", + SOLUTION_NMR = "SOLUTION_NMR", + SOLUTION_SCATTERING = "SOLUTION_SCATTERING", + THEORETICAL_MODEL = "THEORETICAL_MODEL", + X_RAY_DIFFRACTION = "X_RAY_DIFFRACTION" +} + +export enum PdbxSgProjectFullNameOfCenter { + ACCELERATED_TECHNOLOGIES_CENTER_FOR_GENE_TO_3_D_STRUCTURE = "ACCELERATED_TECHNOLOGIES_CENTER_FOR_GENE_TO_3_D_STRUCTURE", + ASSEMBLY_DYNAMICS_AND_EVOLUTION_OF_CELL_CELL_AND_CELL_MATRIX_ADHESIONS = "ASSEMBLY_DYNAMICS_AND_EVOLUTION_OF_CELL_CELL_AND_CELL_MATRIX_ADHESIONS", + ATOMS_TO_ANIMALS_THE_IMMUNE_FUNCTION_NETWORK = "ATOMS_TO_ANIMALS_THE_IMMUNE_FUNCTION_NETWORK", + BACTERIAL_TARGETS_AT_IGS_CNRS_FRANCE = "BACTERIAL_TARGETS_AT_IGS_CNRS_FRANCE", + BERKELEY_STRUCTURAL_GENOMICS_CENTER = "BERKELEY_STRUCTURAL_GENOMICS_CENTER", + CENTER_FOR_EUKARYOTIC_STRUCTURAL_GENOMICS = "CENTER_FOR_EUKARYOTIC_STRUCTURAL_GENOMICS", + CENTER_FOR_HIGH_THROUGHPUT_STRUCTURAL_BIOLOGY = "CENTER_FOR_HIGH_THROUGHPUT_STRUCTURAL_BIOLOGY", + CENTER_FOR_MEMBRANE_PROTEINS_OF_INFECTIOUS_DISEASES = "CENTER_FOR_MEMBRANE_PROTEINS_OF_INFECTIOUS_DISEASES", + CENTER_FOR_STRUCTURAL_GENOMICS_OF_INFECTIOUS_DISEASES = "CENTER_FOR_STRUCTURAL_GENOMICS_OF_INFECTIOUS_DISEASES", + CENTER_FOR_STRUCTURES_OF_MEMBRANE_PROTEINS = "CENTER_FOR_STRUCTURES_OF_MEMBRANE_PROTEINS", + CENTER_FOR_THE_X_RAY_STRUCTURE_DETERMINATION_OF_HUMAN_TRANSPORTERS = "CENTER_FOR_THE_X_RAY_STRUCTURE_DETERMINATION_OF_HUMAN_TRANSPORTERS", + CHAPERONE_ENABLED_STUDIES_OF_EPIGENETIC_REGULATION_ENZYMES = "CHAPERONE_ENABLED_STUDIES_OF_EPIGENETIC_REGULATION_ENZYMES", + ENZYME_DISCOVERY_FOR_NATURAL_PRODUCT_BIOSYNTHESIS = "ENZYME_DISCOVERY_FOR_NATURAL_PRODUCT_BIOSYNTHESIS", + GPCR_NETWORK = "GPCR_NETWORK", + INTEGRATED_CENTER_FOR_STRUCTURE_AND_FUNCTION_INNOVATION = "INTEGRATED_CENTER_FOR_STRUCTURE_AND_FUNCTION_INNOVATION", + ISRAEL_STRUCTURAL_PROTEOMICS_CENTER = "ISRAEL_STRUCTURAL_PROTEOMICS_CENTER", + JOINT_CENTER_FOR_STRUCTURAL_GENOMICS = "JOINT_CENTER_FOR_STRUCTURAL_GENOMICS", + MARSEILLES_STRUCTURAL_GENOMICS_PROGRAM_AFMB = "MARSEILLES_STRUCTURAL_GENOMICS_PROGRAM_AFMB", + MEDICAL_STRUCTURAL_GENOMICS_OF_PATHOGENIC_PROTOZOA = "MEDICAL_STRUCTURAL_GENOMICS_OF_PATHOGENIC_PROTOZOA", + MEMBRANE_PROTEIN_STRUCTURAL_BIOLOGY_CONSORTIUM = "MEMBRANE_PROTEIN_STRUCTURAL_BIOLOGY_CONSORTIUM", + MEMBRANE_PROTEIN_STRUCTURES_BY_SOLUTION_NMR = "MEMBRANE_PROTEIN_STRUCTURES_BY_SOLUTION_NMR", + MIDWEST_CENTER_FOR_MACROMOLECULAR_RESEARCH = "MIDWEST_CENTER_FOR_MACROMOLECULAR_RESEARCH", + MIDWEST_CENTER_FOR_STRUCTURAL_GENOMICS = "MIDWEST_CENTER_FOR_STRUCTURAL_GENOMICS", + MITOCHONDRIAL_PROTEIN_PARTNERSHIP = "MITOCHONDRIAL_PROTEIN_PARTNERSHIP", + MONTREAL_KINGSTON_BACTERIAL_STRUCTURAL_GENOMICS_INITIATIVE = "MONTREAL_KINGSTON_BACTERIAL_STRUCTURAL_GENOMICS_INITIATIVE", + MYCOBACTERIUM_TUBERCULOSIS_STRUCTURAL_PROTEOMICS_PROJECT = "MYCOBACTERIUM_TUBERCULOSIS_STRUCTURAL_PROTEOMICS_PROJECT", + NEW_YORK_CONSORTIUM_ON_MEMBRANE_PROTEIN_STRUCTURE = "NEW_YORK_CONSORTIUM_ON_MEMBRANE_PROTEIN_STRUCTURE", + NEW_YORK_SGX_RESEARCH_CENTER_FOR_STRUCTURAL_GENOMICS = "NEW_YORK_SGX_RESEARCH_CENTER_FOR_STRUCTURAL_GENOMICS", + NEW_YORK_STRUCTURAL_GENOMICS_RESEARCH_CONSORTIUM = "NEW_YORK_STRUCTURAL_GENOMICS_RESEARCH_CONSORTIUM", + NEW_YORK_STRUCTURAL_GENOMI_X_RESEARCH_CONSORTIUM = "NEW_YORK_STRUCTURAL_GENOMI_X_RESEARCH_CONSORTIUM", + NORTHEAST_STRUCTURAL_GENOMICS_CONSORTIUM = "NORTHEAST_STRUCTURAL_GENOMICS_CONSORTIUM", + NUCLEOCYTOPLASMIC_TRANSPORT_A_TARGET_FOR_CELLULAR_CONTROL = "NUCLEOCYTOPLASMIC_TRANSPORT_A_TARGET_FOR_CELLULAR_CONTROL", + ONTARIO_CENTRE_FOR_STRUCTURAL_PROTEOMICS = "ONTARIO_CENTRE_FOR_STRUCTURAL_PROTEOMICS", + OXFORD_PROTEIN_PRODUCTION_FACILITY = "OXFORD_PROTEIN_PRODUCTION_FACILITY", + PARIS_SUD_YEAST_STRUCTURAL_GENOMICS = "PARIS_SUD_YEAST_STRUCTURAL_GENOMICS", + PARTNERSHIP_FOR_NUCLEAR_RECEPTOR_SIGNALING_CODE_BIOLOGY = "PARTNERSHIP_FOR_NUCLEAR_RECEPTOR_SIGNALING_CODE_BIOLOGY", + PARTNERSHIP_FOR_STEM_CELL_BIOLOGY = "PARTNERSHIP_FOR_STEM_CELL_BIOLOGY", + PARTNERSHIP_FOR_T_CELL_BIOLOGY = "PARTNERSHIP_FOR_T_CELL_BIOLOGY", + PROGRAM_FOR_THE_CHARACTERIZATION_OF_SECRETED_EFFECTOR_PROTEINS = "PROGRAM_FOR_THE_CHARACTERIZATION_OF_SECRETED_EFFECTOR_PROTEINS", + PROTEIN_STRUCTURE_FACTORY = "PROTEIN_STRUCTURE_FACTORY", + RIKEN_STRUCTURAL_GENOMICS_PROTEOMICS_INITIATIVE = "RIKEN_STRUCTURAL_GENOMICS_PROTEOMICS_INITIATIVE", + SCOTTISH_STRUCTURAL_PROTEOMICS_FACILITY = "SCOTTISH_STRUCTURAL_PROTEOMICS_FACILITY", + SEATTLE_STRUCTURAL_GENOMICS_CENTER_FOR_INFECTIOUS_DISEASE = "SEATTLE_STRUCTURAL_GENOMICS_CENTER_FOR_INFECTIOUS_DISEASE", + SOUTHEAST_COLLABORATORY_FOR_STRUCTURAL_GENOMICS = "SOUTHEAST_COLLABORATORY_FOR_STRUCTURAL_GENOMICS", + SOUTH_AFRICA_STRUCTURAL_TARGETS_ANNOTATION_DATABASE = "SOUTH_AFRICA_STRUCTURAL_TARGETS_ANNOTATION_DATABASE", + STRUCTURAL_GENOMICS_CONSORTIUM = "STRUCTURAL_GENOMICS_CONSORTIUM", + STRUCTURAL_GENOMICS_CONSORTIUM_FOR_RESEARCH_ON_GENE_EXPRESSION = "STRUCTURAL_GENOMICS_CONSORTIUM_FOR_RESEARCH_ON_GENE_EXPRESSION", + STRUCTURAL_GENOMICS_OF_PATHOGENIC_PROTOZOA_CONSORTIUM = "STRUCTURAL_GENOMICS_OF_PATHOGENIC_PROTOZOA_CONSORTIUM", + STRUCTURAL_PROTEOMICS_IN_EUROPE = "STRUCTURAL_PROTEOMICS_IN_EUROPE", + STRUCTURAL_PROTEOMICS_IN_EUROPE_2 = "STRUCTURAL_PROTEOMICS_IN_EUROPE_2", + STRUCTURES_OF_MTB_PROTEINS_CONFERRING_SUSCEPTIBILITY_TO_KNOWN_MTB_INHIBITORS = "STRUCTURES_OF_MTB_PROTEINS_CONFERRING_SUSCEPTIBILITY_TO_KNOWN_MTB_INHIBITORS", + STRUCTURE_2_FUNCTION_PROJECT = "STRUCTURE_2_FUNCTION_PROJECT", + STRUCTURE_DYNAMICS_AND_ACTIVATION_MECHANISMS_OF_CHEMOKINE_RECEPTORS = "STRUCTURE_DYNAMICS_AND_ACTIVATION_MECHANISMS_OF_CHEMOKINE_RECEPTORS", + STRUCTURE_FUNCTION_ANALYSIS_OF_POLYMORPHIC_CDI_TOXIN_IMMUNITY_PROTEIN_COMPLEXES = "STRUCTURE_FUNCTION_ANALYSIS_OF_POLYMORPHIC_CDI_TOXIN_IMMUNITY_PROTEIN_COMPLEXES", + STRUCTURE_FUNCTION_STUDIES_OF_TIGHT_JUNCTION_MEMBRANE_PROTEINS = "STRUCTURE_FUNCTION_STUDIES_OF_TIGHT_JUNCTION_MEMBRANE_PROTEINS", + TB_STRUCTURAL_GENOMICS_CONSORTIUM = "TB_STRUCTURAL_GENOMICS_CONSORTIUM", + TRANSCONTINENTAL_EM_INITIATIVE_FOR_MEMBRANE_PROTEIN_STRUCTURE = "TRANSCONTINENTAL_EM_INITIATIVE_FOR_MEMBRANE_PROTEIN_STRUCTURE", + TRANSMEMBRANE_PROTEIN_CENTER = "TRANSMEMBRANE_PROTEIN_CENTER" +} + +export enum PdbxSgProjectId { + _1 = "_1", + _10 = "_10", + _2 = "_2", + _3 = "_3", + _4 = "_4", + _5 = "_5", + _6 = "_6", + _7 = "_7", + _8 = "_8", + _9 = "_9" +} + +export enum PdbxSgProjectInitialOfCenter { + ATCG_3_D = "ATCG_3_D", + BIGS = "BIGS", + BSGC = "BSGC", + BSGI = "BSGI", + CEBS = "CEBS", + CELLMAT = "CELLMAT", + CESG = "CESG", + CHSAM = "CHSAM", + CHTSB = "CHTSB", + CSGID = "CSGID", + CSMP = "CSMP", + GPCR = "GPCR", + IFN = "IFN", + ISFI = "ISFI", + ISPC = "ISPC", + JCSG = "JCSG", + MCMR = "MCMR", + MCSG = "MCSG", + MPID = "MPID", + MPP = "MPP", + MPSBC = "MPSBC", + MP_SBY_NMR = "MP_SBY_NMR", + MSGP = "MSGP", + MSGPP = "MSGPP", + MTBI = "MTBI", + NAT_PRO = "NAT_PRO", + NESG = "NESG", + NH_RS = "NH_RS", + NPC_XSTALS = "NPC_XSTALS", + NYCOMPS = "NYCOMPS", + NYSGRC = "NYSGRC", + NYSGXRC = "NYSGXRC", + OCSP = "OCSP", + OPPF = "OPPF", + PCSEP = "PCSEP", + PSF = "PSF", + RSGI = "RSGI", + SASTAD = "SASTAD", + SECSG = "SECSG", + SGC = "SGC", + SGCGES = "SGCGES", + SGPP = "SGPP", + SPINE = "SPINE", + SPINE_2 = "SPINE_2", + SSGCID = "SSGCID", + SSPF = "SSPF", + STEMCELL = "STEMCELL", + S_2_F = "S_2_F", + TBSGC = "TBSGC", + TCELL = "TCELL", + TEMIMPS = "TEMIMPS", + TJMP = "TJMP", + TMPC = "TMPC", + TRANSPORT_PDB = "TRANSPORT_PDB", + UC_4_CDI = "UC_4_CDI", + XMTB = "XMTB", + YSG = "YSG" +} + +export enum PdbxSgProjectProjectName { + ENZYME_FUNCTION_INITIATIVE = "ENZYME_FUNCTION_INITIATIVE", + NIAID_NATIONAL_INSTITUTE_OF_ALLERGY_AND_INFECTIOUS_DISEASES = "NIAID_NATIONAL_INSTITUTE_OF_ALLERGY_AND_INFECTIOUS_DISEASES", + NPPSFA_NATIONAL_PROJECT_ON_PROTEIN_STRUCTURAL_AND_FUNCTIONAL_ANALYSES = "NPPSFA_NATIONAL_PROJECT_ON_PROTEIN_STRUCTURAL_AND_FUNCTIONAL_ANALYSES", + PSI_BIOLOGY = "PSI_BIOLOGY", + PSI_PROTEIN_STRUCTURE_INITIATIVE = "PSI_PROTEIN_STRUCTURE_INITIATIVE" +} + +export enum PdbxAuditRevisionDetailsDataContentType { + NMR_RESTRAINTS = "NMR_RESTRAINTS", + NMR_SHIFTS = "NMR_SHIFTS", + STRUCTURE_FACTORS = "STRUCTURE_FACTORS", + STRUCTURE_MODEL = "STRUCTURE_MODEL" +} + +export enum PdbxAuditRevisionDetailsProvider { + AUTHOR = "AUTHOR", + REPOSITORY = "REPOSITORY" +} + +export enum PdbxAuditRevisionDetailsType { + COORDINATE_REPLACEMENT = "COORDINATE_REPLACEMENT", + INITIAL_RELEASE = "INITIAL_RELEASE", + OBSOLETE = "OBSOLETE" } -export enum Level { - _100 = "_100", - _30 = "_30", - _40 = "_40", - _50 = "_50", - _60 = "_60", - _70 = "_70", - _80 = "_80", - _90 = "_90", - _95 = "_95" +export enum PdbxAuditRevisionHistoryDataContentType { + NMR_RESTRAINTS = "NMR_RESTRAINTS", + NMR_SHIFTS = "NMR_SHIFTS", + STRUCTURE_FACTORS = "STRUCTURE_FACTORS", + STRUCTURE_MODEL = "STRUCTURE_MODEL" } -export enum PdbFormatCompatible { +export enum PdbxDatabasePdbObsSprId { + OBSLTE = "OBSLTE", + SPRSDE = "SPRSDE" +} + +export enum PdbxDatabaseStatusSgEntry { N = "N", Y = "Y" } +export enum PdbxDatabaseStatusDepositSite { + BMRB = "BMRB", + BNL = "BNL", + NDB = "NDB", + PDBE = "PDBE", + PDBJ = "PDBJ", + RCSB = "RCSB" +} + +export enum PdbxDatabaseStatusMethodsDevelopmentCategory { + CAPRI = "CAPRI", + CASD_NMR = "CASD_NMR", + CASP = "CASP", + D_3_R = "D_3_R", + FOLD_IT = "FOLD_IT", + GPCR_DOCK = "GPCR_DOCK", + RNA_PUZZLES = "RNA_PUZZLES" +} + +export enum PdbxDatabaseStatusPdbFormatCompatible { + N = "N", + Y = "Y" +} + +export enum PdbxDatabaseStatusProcessSite { + BNL = "BNL", + NDB = "NDB", + PDBE = "PDBE", + PDBJ = "PDBJ", + RCSB = "RCSB" +} + +export enum PdbxDatabaseStatusStatusCode { + AUCO = "AUCO", + AUTH = "AUTH", + BIB = "BIB", + DEL = "DEL", + HOLD = "HOLD", + HPUB = "HPUB", + OBS = "OBS", + POLC = "POLC", + PROC = "PROC", + REFI = "REFI", + REL = "REL", + REPL = "REPL", + REV = "REV", + RMVD = "RMVD", + TRSF = "TRSF", + UPD = "UPD", + WAIT = "WAIT", + WDRN = "WDRN" +} + +export enum PdbxDatabaseStatusStatusCodeCs { + AUTH = "AUTH", + HOLD = "HOLD", + HPUB = "HPUB", + OBS = "OBS", + POLC = "POLC", + PROC = "PROC", + REL = "REL", + REPL = "REPL", + RMVD = "RMVD", + WAIT = "WAIT", + WDRN = "WDRN" +} + +export enum PdbxDatabaseStatusStatusCodeMr { + AUTH = "AUTH", + HOLD = "HOLD", + HPUB = "HPUB", + OBS = "OBS", + POLC = "POLC", + PROC = "PROC", + REL = "REL", + REPL = "REPL", + RMVD = "RMVD", + WAIT = "WAIT", + WDRN = "WDRN" +} + +export enum PdbxDatabaseStatusStatusCodeSf { + AUTH = "AUTH", + HOLD = "HOLD", + HPUB = "HPUB", + OBS = "OBS", + POLC = "POLC", + PROC = "PROC", + REL = "REL", + REPL = "REPL", + RMVD = "RMVD", + WAIT = "WAIT", + WDRN = "WDRN" +} + +export enum PdbxDepositGroupGroupType { + CHANGED_STATE = "CHANGED_STATE", + GROUND_STATE = "GROUND_STATE", + UNDEFINED = "UNDEFINED" +} + +export enum PdbxMoleculeFeaturesClass { + ANTAGONIST = "ANTAGONIST", + ANTHELMINTIC = "ANTHELMINTIC", + ANTIBIOTIC = "ANTIBIOTIC", + ANTIBIOTIC_ANTHELMINTIC = "ANTIBIOTIC_ANTHELMINTIC", + ANTIBIOTIC_ANTIMICROBIAL = "ANTIBIOTIC_ANTIMICROBIAL", + ANTIBIOTIC_ANTINEOPLASTIC = "ANTIBIOTIC_ANTINEOPLASTIC", + ANTICANCER = "ANTICANCER", + ANTICOAGULANT = "ANTICOAGULANT", + ANTICOAGULANT_ANTITHROMBOTIC = "ANTICOAGULANT_ANTITHROMBOTIC", + ANTIFUNGAL = "ANTIFUNGAL", + ANTIINFLAMMATORY = "ANTIINFLAMMATORY", + ANTIMICROBIAL = "ANTIMICROBIAL", + ANTIMICROBIAL_ANTIPARASITIC_ANTIBIOTIC = "ANTIMICROBIAL_ANTIPARASITIC_ANTIBIOTIC", + ANTIMICROBIAL_ANTIRETROVIRAL = "ANTIMICROBIAL_ANTIRETROVIRAL", + ANTIMICROBIAL_ANTITUMOR = "ANTIMICROBIAL_ANTITUMOR", + ANTINEOPLASTIC = "ANTINEOPLASTIC", + ANTIPARASITIC = "ANTIPARASITIC", + ANTIRETROVIRAL = "ANTIRETROVIRAL", + ANTITHROMBOTIC = "ANTITHROMBOTIC", + ANTITUMOR = "ANTITUMOR", + ANTIVIRAL = "ANTIVIRAL", + CASPASE_INHIBITOR = "CASPASE_INHIBITOR", + CHAPERONE_BINDING = "CHAPERONE_BINDING", + ENZYME_INHIBITOR = "ENZYME_INHIBITOR", + GROWTH_FACTOR = "GROWTH_FACTOR", + IMMUNOSUPPRESSANT = "IMMUNOSUPPRESSANT", + INHIBITOR = "INHIBITOR", + LANTIBIOTIC = "LANTIBIOTIC", + METABOLISM = "METABOLISM", + METAL_TRANSPORT = "METAL_TRANSPORT", + OXIDATION_REDUCTION = "OXIDATION_REDUCTION", + RECEPTOR = "RECEPTOR", + THROMBIN_INHIBITOR = "THROMBIN_INHIBITOR", + THROMBIN_INHIBITOR_TRYPSIN_INHIBITOR = "THROMBIN_INHIBITOR_TRYPSIN_INHIBITOR", + TOXIN = "TOXIN", + TRANSPORT_ACTIVATOR = "TRANSPORT_ACTIVATOR", + TRYPSIN_INHIBITOR = "TRYPSIN_INHIBITOR", + UNKNOWN = "UNKNOWN" +} + +export enum PdbxMoleculeFeaturesType { + AMINOGLYCOSIDE = "AMINOGLYCOSIDE", + AMINO_ACID = "AMINO_ACID", + ANSAMYCIN = "ANSAMYCIN", + ANTHRACYCLINE = "ANTHRACYCLINE", + ANTHRAQUINONE = "ANTHRAQUINONE", + CHALKOPHORE = "CHALKOPHORE", + CHALKOPHORE_POLYPEPTIDE = "CHALKOPHORE_POLYPEPTIDE", + CHROMOPHORE = "CHROMOPHORE", + CYCLIC_DEPSIPEPTIDE = "CYCLIC_DEPSIPEPTIDE", + CYCLIC_LIPOPEPTIDE = "CYCLIC_LIPOPEPTIDE", + CYCLIC_PEPTIDE = "CYCLIC_PEPTIDE", + GLYCOPEPTIDE = "GLYCOPEPTIDE", + HETEROCYCLIC = "HETEROCYCLIC", + IMINO_SUGAR = "IMINO_SUGAR", + KETO_ACID = "KETO_ACID", + LIPOGLYCOPEPTIDE = "LIPOGLYCOPEPTIDE", + LIPOPEPTIDE = "LIPOPEPTIDE", + MACROLIDE = "MACROLIDE", + NON_POLYMER = "NON_POLYMER", + NUCLEOSIDE = "NUCLEOSIDE", + OLIGOPEPTIDE = "OLIGOPEPTIDE", + OLIGOSACCHARIDE = "OLIGOSACCHARIDE", + PEPTAIBOL = "PEPTAIBOL", + PEPTIDE_LIKE = "PEPTIDE_LIKE", + POLYCYCLIC = "POLYCYCLIC", + POLYPEPTIDE = "POLYPEPTIDE", + POLYSACCHARIDE = "POLYSACCHARIDE", + QUINOLONE = "QUINOLONE", + SIDEROPHORE = "SIDEROPHORE", + THIOLACTONE = "THIOLACTONE", + THIOPEPTIDE = "THIOPEPTIDE", + UNKNOWN = "UNKNOWN" +} + +export enum PdbxNmrExptlSampleState { + ANISOTROPIC = "ANISOTROPIC", + ISOTROPIC = "ISOTROPIC" +} + +export enum PdbxNmrExptlSampleConditionsIonicStrengthUnits { + M = "M", + M_M = "M_M", + NOT_DEFINED = "NOT_DEFINED" +} + +export enum PdbxNmrExptlSampleConditionsPhUnits { + NOT_DEFINED = "NOT_DEFINED", + P_D = "P_D", + P_H = "P_H", + P_H_ = "P_H_" +} + +export enum PdbxNmrExptlSampleConditionsTemperatureUnits { + C = "C", + K = "K", + NOT_DEFINED = "NOT_DEFINED" +} + +export enum PdbxNmrSampleDetailsType { + BICELLE = "BICELLE", + EMULSION = "EMULSION", + FIBER = "FIBER", + FIBROUS_PROTEIN = "FIBROUS_PROTEIN", + FILAMENTOUS_VIRUS = "FILAMENTOUS_VIRUS", + GEL_SOLID = "GEL_SOLID", + GEL_SOLUTION = "GEL_SOLUTION", + LIPOSOME = "LIPOSOME", + LYOPHILIZED_POWDER = "LYOPHILIZED_POWDER", + MEMBRANE = "MEMBRANE", + MICELLE = "MICELLE", + ORIENTED_MEMBRANE_FILM = "ORIENTED_MEMBRANE_FILM", + POLYCRYSTALLINE_POWDER = "POLYCRYSTALLINE_POWDER", + REVERSE_MICELLE = "REVERSE_MICELLE", + SINGLE_CRYSTAL = "SINGLE_CRYSTAL", + SOLID = "SOLID", + SOLUTION = "SOLUTION" +} + +export enum PdbxSerialCrystallographySampleDeliveryMethod { + FIXED_TARGET = "FIXED_TARGET", + INJECTION = "INJECTION" +} + +export enum RcsbBindingSource { + BINDINGDB = "BINDINGDB", + BINDINGMOAD = "BINDINGMOAD", + PDBBIND = "PDBBIND" +} + +export enum RefineLsMatrixType { + ATOMBLOCK = "ATOMBLOCK", + DIAGONAL = "DIAGONAL", + FULL = "FULL", + FULLCYCLE = "FULLCYCLE", + SPARSE = "SPARSE", + USERBLOCK = "USERBLOCK" +} + +export enum RefinePdbxTlsResidualAdpFlag { + LIKELY_RESIDUAL = "LIKELY_RESIDUAL", + UNVERIFIED = "UNVERIFIED" +} + +export enum SoftwareLanguage { + ADA = "ADA", + ASSEMBLER = "ASSEMBLER", + AWK = "AWK", + BASIC = "BASIC", + C = "C", + CSH = "CSH", + C_ = "C_", + C_C = "C_C", + FORTRAN = "FORTRAN", + FORTRAN_77 = "FORTRAN_77", + FORTRAN_77_ = "FORTRAN_77_", + FORTRAN_90 = "FORTRAN_90", + JAVA = "JAVA", + JAVA_FORTRAN = "JAVA_FORTRAN", + KSH = "KSH", + OTHER = "OTHER", + PASCAL = "PASCAL", + PERL = "PERL", + PYTHON = "PYTHON", + PYTHON_C = "PYTHON_C", + SH = "SH", + TCL = "TCL" +} + +export enum SoftwareType { + FILTER = "FILTER", + JIFFY = "JIFFY", + LIBRARY = "LIBRARY", + OTHER = "OTHER", + PACKAGE = "PACKAGE", + PROGRAM = "PROGRAM" +} + +export enum StructPdbxCaspFlag { + N = "N", + Y = "Y" +} + +export enum SymmetryCellSetting { + CUBIC = "CUBIC", + HEXAGONAL = "HEXAGONAL", + MONOCLINIC = "MONOCLINIC", + ORTHORHOMBIC = "ORTHORHOMBIC", + RHOMBOHEDRAL = "RHOMBOHEDRAL", + TETRAGONAL = "TETRAGONAL", + TRICLINIC = "TRICLINIC", + TRIGONAL = "TRIGONAL" +} + +// ==================================================== +// END: Typescript template +// ==================================================== + +// ==================================================== +// Documents +// ==================================================== + export namespace AssemblySymmetry { export type Variables = { readonly pdbId: string; @@ -171,52 +1204,67 @@ export namespace AssemblySymmetry { export type Query = { readonly __typename?: "Query"; + readonly assemblies?: ReadonlyArray<Assemblies | null> | null; }; export type Assemblies = { readonly __typename?: "CoreAssembly"; - readonly assembly_id: number; - readonly rcsb_assembly_symmetry?: RcsbAssemblySymmetry | null; + + readonly pdbx_struct_assembly?: PdbxStructAssembly | null; + + readonly rcsb_struct_symmetry?: ReadonlyArray<RcsbStructSymmetry | null> | null; + + readonly rcsb_struct_symmetry_provenance?: string | null; }; - export type RcsbAssemblySymmetry = { - readonly __typename?: "RcsbAssemblySymmetry"; - readonly source: string; - readonly symmetry_features: ReadonlyArray<SymmetryFeatures | null>; + export type PdbxStructAssembly = { + readonly __typename?: "PdbxStructAssembly"; + + readonly id: string; }; - export type SymmetryFeatures = { - readonly __typename?: "SymmetryFeature"; - readonly symmetry: Symmetry; + export type RcsbStructSymmetry = { + readonly __typename?: "RcsbStructSymmetry"; + readonly clusters: ReadonlyArray<Clusters | null>; - readonly stoichiometry: Stoichiometry; - readonly symmetry_axes?: ReadonlyArray<SymmetryAxes | null> | null; - readonly type: SymmetryFeatureType; - }; - export type Symmetry = { - readonly __typename?: "QuaternarySymmetry"; - readonly description: string; - readonly value: string; + readonly kind: RcsbStructSymmetryKind; + + readonly oligomeric_state: string; + + readonly rotation_axes?: ReadonlyArray<RotationAxes | null> | null; + + readonly stoichiometry: ReadonlyArray<string | null>; + + readonly symbol: string; + + readonly type: RcsbStructSymmetryType; }; export type Clusters = { - readonly __typename?: "Cluster"; - readonly members: ReadonlyArray<string | null>; + readonly __typename?: "RcsbStructSymmetryClusters"; + readonly avg_rmsd?: number | null; + + readonly members: ReadonlyArray<Members | null>; }; - export type Stoichiometry = { - readonly __typename?: "Stoichiometry"; - readonly description: string; - readonly value: ReadonlyArray<string | null>; + export type Members = { + readonly __typename?: "ClustersMembers"; + + readonly asym_id: string; + + readonly pdbx_struct_oper_list_ids?: ReadonlyArray<string | null> | null; }; - export type SymmetryAxes = { - readonly __typename?: "SymmetryAxis"; + export type RotationAxes = { + readonly __typename?: "RcsbStructSymmetryRotationAxes"; + readonly start: ReadonlyArray<number | null>; + readonly end: ReadonlyArray<number | null>; + readonly order?: number | null; }; } diff --git a/src/mol-model-props/rcsb/symmetry.ts b/src/mol-model-props/rcsb/symmetry.ts index 379310bde9f7d2552af0a31168a83907b443e7d5..11795b06b3f6de0f4e5e3e6d48940fa855cc9179 100644 --- a/src/mol-model-props/rcsb/symmetry.ts +++ b/src/mol-model-props/rcsb/symmetry.ts @@ -17,6 +17,7 @@ import { Tensor } from 'mol-math/linear-algebra'; import { CifExportContext } from 'mol-model/structure/export/mmcif'; import { toTable } from 'mol-io/reader/cif/schema'; import { CifCategory } from 'mol-io/reader/cif'; +import { PropertyWrapper } from 'mol-model-props/common/wrapper'; const { str, int, float, Aliased, Vector, List } = Column.Schema; @@ -31,51 +32,58 @@ function getCategory(name: keyof AssemblySymmetry.Schema) { return { name, instance: getInstance(name) } } -function createDatabase(assemblies: ReadonlyArray<AssemblySymmetryGraphQL.Assemblies>): AssemblySymmetry.Database { +function createDatabaseFromJson(assemblies: ReadonlyArray<AssemblySymmetryGraphQL.Assemblies>): AssemblySymmetry.Database { const Schema = AssemblySymmetry.Schema - const featureRows: Table.Row<typeof Schema.rcsb_assembly_symmetry_feature>[] = [] + const featureRows: Table.Row<typeof Schema.rcsb_assembly_symmetry>[] = [] const clusterRows: Table.Row<typeof Schema.rcsb_assembly_symmetry_cluster>[] = [] + const clusterMemberRows: Table.Row<typeof Schema.rcsb_assembly_symmetry_cluster_member>[] = [] const axisRows: Table.Row<typeof Schema.rcsb_assembly_symmetry_axis>[] = [] let id = 1 // start feature ids at 1 for (let i = 0, il = assemblies.length; i < il; ++i) { - const { assembly_id: _assembly_id, rcsb_assembly_symmetry } = assemblies[i] - if (!rcsb_assembly_symmetry) continue - const assembly_id = _assembly_id.toString() // TODO type will be fixed to string upstream - const source = rcsb_assembly_symmetry.source - const symmetry_features = rcsb_assembly_symmetry.symmetry_features - for (let j = 0, jl = symmetry_features.length; j < jl; ++j) { - const f = symmetry_features[j]! // TODO upstream, array members should not be nullable + const { pdbx_struct_assembly, rcsb_struct_symmetry, rcsb_struct_symmetry_provenance } = assemblies[i] + if (!pdbx_struct_assembly || !rcsb_struct_symmetry ||!rcsb_struct_symmetry_provenance) continue + const assembly_id = pdbx_struct_assembly.id + for (let j = 0, jl = rcsb_struct_symmetry.length; j < jl; ++j) { + const rss = rcsb_struct_symmetry[j]! // TODO upstream, array members should not be nullable featureRows.push({ id, assembly_id, - source, - type: f.type, - stoichiometry_value: f.stoichiometry.value as string[], // TODO upstream, array members should not be nullable - stoichiometry_description: f.stoichiometry.description, - symmetry_value: f.symmetry.value, - symmetry_description: f.symmetry.description + provenance: rcsb_struct_symmetry_provenance, + type: rss.type, + stoichiometry: rss.stoichiometry as string[], // TODO upstream, array members should not be nullable + kind: rss.kind, + symbol: rss.symbol, + oligomeric_state: rss.oligomeric_state }) - const clusters = f.clusters + const clusters = rss.clusters if (clusters) { for (let k = 0, kl = clusters.length; k < kl; ++k) { const c = clusters[k]! // TODO upstream, array members should not be nullable clusterRows.push({ - feature_id: id, + id: k, + symmetry_id: id, avg_rmsd: c.avg_rmsd || 0, // TODO upstream, should not be nullable, or??? - members: c.members as string[] // TODO upstream, array members should not be nullable }) + for (let l = 0, ll = c.members.length; l < ll; ++l) { + const m = c.members[l]! // TODO upstream, array members should not be nullable + clusterMemberRows.push({ + cluster_id: k, + asym_id: m.asym_id, + pdbx_struct_oper_list_ids: (m.pdbx_struct_oper_list_ids || []) as string[] + }) + } } } - const axes = f.symmetry_axes + const axes = rss.rotation_axes if (axes) { for (let k = 0, kl = axes.length; k < kl; ++k) { const a = axes[k]! axisRows.push({ - feature_id: id, + symmetry_id: id, order: a.order!, // TODO upstream, should not be nullable, or??? start: a.start as Tensor.Data, // TODO upstream, array members should not be nullable end: a.end as Tensor.Data // TODO upstream, array members should not be nullable @@ -88,20 +96,57 @@ function createDatabase(assemblies: ReadonlyArray<AssemblySymmetryGraphQL.Assemb } return _Database.ofTables('assembly_symmetry', Schema, { - rcsb_assembly_symmetry_feature: Table.ofRows(Schema.rcsb_assembly_symmetry_feature, featureRows), + rcsb_assembly_symmetry: Table.ofRows(Schema.rcsb_assembly_symmetry, featureRows), rcsb_assembly_symmetry_cluster: Table.ofRows(Schema.rcsb_assembly_symmetry_cluster, clusterRows), + rcsb_assembly_symmetry_cluster_member: Table.ofRows(Schema.rcsb_assembly_symmetry_cluster_member, clusterMemberRows), rcsb_assembly_symmetry_axis: Table.ofRows(Schema.rcsb_assembly_symmetry_axis, axisRows) }) } +function createDatabaseFromCif(model: Model): AssemblySymmetry.Database { + const Schema = AssemblySymmetry.Schema + + const rcsb_assembly_symmetry = toTable(Schema.rcsb_assembly_symmetry, model.sourceData.frame.categories.rcsb_assembly_symmetry_feature) + + let rcsb_assembly_symmetry_cluster + if (model.sourceData.frame.categoryNames.includes('rcsb_assembly_symmetry_cluster')) { + rcsb_assembly_symmetry_cluster = toTable(Schema.rcsb_assembly_symmetry_cluster, model.sourceData.frame.categories.rcsb_assembly_symmetry_cluster) + } else { + rcsb_assembly_symmetry_cluster = CifCategory.empty + } + + let rcsb_assembly_symmetry_cluster_member + if (model.sourceData.frame.categoryNames.includes('rcsb_assembly_symmetry_cluster_member')) { + rcsb_assembly_symmetry_cluster_member = toTable(Schema.rcsb_assembly_symmetry_cluster_member, model.sourceData.frame.categories.rcsb_assembly_symmetry_cluster_member) + } else { + rcsb_assembly_symmetry_cluster_member = CifCategory.empty + } + + let rcsb_assembly_symmetry_axis + if (model.sourceData.frame.categoryNames.includes('rcsb_assembly_symmetry_axis')) { + rcsb_assembly_symmetry_axis = toTable(Schema.rcsb_assembly_symmetry_axis, model.sourceData.frame.categories.rcsb_assembly_symmetry_axis) + } else { + rcsb_assembly_symmetry_axis = CifCategory.empty + } + + return _Database.ofTables('rcsb_assembly_symmetry', Schema, { + rcsb_assembly_symmetry, + rcsb_assembly_symmetry_cluster, + rcsb_assembly_symmetry_cluster_member, + rcsb_assembly_symmetry_axis + }) +} + const _Descriptor: ModelPropertyDescriptor = { isStatic: true, - name: 'assembly_symmetry', + name: 'rcsb_assembly_symmetry', cifExport: { prefix: 'rcsb', categories: [ - getCategory('rcsb_assembly_symmetry_feature'), + PropertyWrapper.defaultInfoCategory<CifExportContext>('rcsb_assembly_symmetry_info', ctx => PropertyWrapper.createInfo()), + getCategory('rcsb_assembly_symmetry'), getCategory('rcsb_assembly_symmetry_cluster'), + getCategory('rcsb_assembly_symmetry_cluster_member'), getCategory('rcsb_assembly_symmetry_axis') ] } @@ -111,56 +156,85 @@ const client = new GraphQLClient('http://rest-experimental.rcsb.org/graphql') export interface AssemblySymmetry { db: AssemblySymmetry.Database - getFeatures(assemblyId: string): Table<AssemblySymmetry.Schema['rcsb_assembly_symmetry_feature']> - getClusters(featureId: number): Table<AssemblySymmetry.Schema['rcsb_assembly_symmetry_cluster']> - getAxes(featureId: number): Table<AssemblySymmetry.Schema['rcsb_assembly_symmetry_axis']> + getSymmetries(assemblyId: string): Table<AssemblySymmetry.Schema['rcsb_assembly_symmetry']> + getClusters(symmetryId: number): Table<AssemblySymmetry.Schema['rcsb_assembly_symmetry_cluster']> + getClusterMembers(clusterId: number): Table<AssemblySymmetry.Schema['rcsb_assembly_symmetry_cluster_member']> + getAxes(symmetryId: number): Table<AssemblySymmetry.Schema['rcsb_assembly_symmetry_axis']> } export function AssemblySymmetry(db: AssemblySymmetry.Database): AssemblySymmetry { - const f = db.rcsb_assembly_symmetry_feature + const f = db.rcsb_assembly_symmetry const c = db.rcsb_assembly_symmetry_cluster + const cm = db.rcsb_assembly_symmetry_cluster_member const a = db.rcsb_assembly_symmetry_axis return { db, - getFeatures: (assemblyId: string) => Table.pick(f, f._schema, i => f.assembly_id.value(i) === assemblyId), - getClusters: (featureId: number) => Table.pick(c, c._schema, i => c.feature_id.value(i) === featureId), - getAxes: (featureId: number) => Table.pick(a, a._schema, i => a.feature_id.value(i) === featureId) + getSymmetries: (assemblyId: string) => Table.pick(f, f._schema, i => f.assembly_id.value(i) === assemblyId), + getClusters: (symmetryId: number) => Table.pick(c, c._schema, i => c.symmetry_id.value(i) === symmetryId), + getClusterMembers: (clusterId: number) => Table.pick(cm, cm._schema, i => cm.cluster_id.value(i) === clusterId), + getAxes: (symmetryId: number) => Table.pick(a, a._schema, i => a.symmetry_id.value(i) === symmetryId) } } export namespace AssemblySymmetry { export const Schema = { - rcsb_assembly_symmetry_feature: { - /** Uniquely identifies a record in `rcsb_assembly_symmetry_feature` */ + rcsb_assembly_symmetry_info: { + updated_datetime_utc: Column.Schema.str + }, + rcsb_assembly_symmetry: { + /** Uniquely identifies a record in `rcsb_assembly_symmetry` */ id: int, - /** A pointer to `pdbx_struct_assembly.id` */ + /** + * A pointer to `pdbx_struct_assembly.id`. + * The value 'deposited' refers to the coordinates as given in the file. + * */ assembly_id: str, - /** Name and version of software used to calculate protein symmetry */ - source: str, + /** Name and version of software used to calculate assembly symmetry */ + provenance: str, /** Type of protein symmetry */ - type: Aliased<'GLOBAL' | 'LOCAL' | 'PSEUDO'>(str), + kind: Aliased<'GLOBAL' | 'LOCAL' | 'PSEUDO'>(str), /** Quantitative description of every individual subunit in a given protein */ - stoichiometry_value: List(',', x => x), - /** Oligomeric state for a given composition of subunits */ - stoichiometry_description: str, - /** Point group symmetry value */ - symmetry_value: str, - /** Point group symmetry description */ - symmetry_description: str + stoichiometry: List(',', x => x), + /** + * Symmetry symbol refers to point group or helical symmetry of identical subunits. + * Contains point group symbol (e.g., C2, C5, D2, T, O, I) or H for helical symmetry. + */ + symbol: str, + /** Point group or helical symmetry */ + type: Aliased<'ASYMMETRIC' | 'CYCLIC' | 'DIHEDRAL' | 'HELICAL' | 'ICOSAHEDRAL' | 'OCTAHEDRAL' | 'TETRAHEDRAL'>(str), + /** + * Oligomeric state refers to a composition of subunits in quaternary structure. + * Quaternary structure may be composed either exclusively of several copies of identical + * subunits, in which case they are termed homo-oligomers, or alternatively by at least + * one copy of different subunits (hetero-oligomers). Quaternary structure composed of + * a single subunit is demoted as 'Monomer'. + */ + oligomeric_state: str, }, rcsb_assembly_symmetry_cluster: { - /** A pointer to `rcsb_assembly_symmetry_feature.id` */ - feature_id: int, + /** Uniquely identifies a record in `rcsb_assembly_symmetry_cluster` */ + id: int, + /** A pointer to `rcsb_assembly_symmetry.id` */ + symmetry_id: int, /** Average RMSD between members of a given cluster */ - avg_rmsd: float, - /** List of `auth_label_id` values */ - members: List(',', x => x) + avg_rmsd: float + }, + rcsb_assembly_symmetry_cluster_member: { + /** A pointer to `rcsb_assembly_symmetry_cluster.id` */ + cluster_id: int, + /** The `label_asym_id` value of the member */ + asym_id: str, + /** List of `pdbx_struct_oper_list_id` values of the member */ + pdbx_struct_oper_list_ids: List(',', x => x) }, rcsb_assembly_symmetry_axis: { - /** A pointer to `rcsb_assembly_symmetry_feature.id` */ - feature_id: int, - /** The order of the symmetry axis */ + /** A pointer to `rcsb_assembly_symmetry.id` */ + symmetry_id: int, + /** + * The number of times (order of rotation) that a subunit can be repeated by a rotation + * operation, being transformed into a new state indistinguishable from its starting state. + */ order: int, /** The x,y,z coordinate of the start point of a symmetry axis */ start: Vector(3), @@ -177,32 +251,9 @@ export namespace AssemblySymmetry { if (model.customProperties.has(Descriptor)) return true; let db: Database - - // TODO: there should be a "meta field" that indicates the property was added (see for example PDBe structure report) - // the reason for this is that the feature might not be present and therefore the "default" categories would - // not be created. This would result in an unnecessarily failed web request. - if (model.sourceData.kind === 'mmCIF' && model.sourceData.frame.categoryNames.includes('rcsb_assembly_symmetry_feature')) { - const rcsb_assembly_symmetry_feature = toTable(Schema.rcsb_assembly_symmetry_feature, model.sourceData.frame.categories.rcsb_assembly_symmetry_feature) - - let rcsb_assembly_symmetry_cluster - if (model.sourceData.frame.categoryNames.includes('rcsb_assembly_symmetry_cluster')) { - rcsb_assembly_symmetry_cluster = toTable(Schema.rcsb_assembly_symmetry_cluster, model.sourceData.frame.categories.rcsb_assembly_symmetry_cluster) - } else { - rcsb_assembly_symmetry_cluster = CifCategory.empty - } - - let rcsb_assembly_symmetry_axis - if (model.sourceData.frame.categoryNames.includes('rcsb_assembly_symmetry_axis')) { - rcsb_assembly_symmetry_axis = toTable(Schema.rcsb_assembly_symmetry_axis, model.sourceData.frame.categories.rcsb_assembly_symmetry_axis) - } else { - rcsb_assembly_symmetry_axis = CifCategory.empty - } - - db = _Database.ofTables('assembly_symmetry', Schema, { - rcsb_assembly_symmetry_feature, - rcsb_assembly_symmetry_cluster, - rcsb_assembly_symmetry_axis - }) + let info = PropertyWrapper.tryGetInfoFromCif('rcsb_assembly_symmetry_info', model); + if (info) { + db = createDatabaseFromCif(model) } else { let result: AssemblySymmetryGraphQL.Query const variables: AssemblySymmetryGraphQL.Variables = { pdbId: model.label.toLowerCase() }; @@ -214,15 +265,15 @@ export namespace AssemblySymmetry { } if (!result || !result.assemblies) return false; - db = createDatabase(result.assemblies as ReadonlyArray<AssemblySymmetryGraphQL.Assemblies>) + db = createDatabaseFromJson(result.assemblies as ReadonlyArray<AssemblySymmetryGraphQL.Assemblies>) } model.customProperties.add(Descriptor); - model._staticPropertyData.__AssemblySymmetry__ = AssemblySymmetry(db); + model._staticPropertyData.__RCSBAssemblySymmetry__ = AssemblySymmetry(db); return true; } export function get(model: Model): AssemblySymmetry | undefined { - return model._staticPropertyData.__AssemblySymmetry__; + return model._staticPropertyData.__RCSBAssemblySymmetry__; } } \ No newline at end of file