From 8f2676e91e60b7154d6355f8c4cd6a7b38c9440f Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Sat, 30 Apr 2022 16:05:30 -0700 Subject: [PATCH] schema updates --- src/cli/chem-comp-dict/create-ions.ts | 7 +- src/cli/cifschema/index.ts | 2 +- src/cli/cifschema/util/cif-dic.ts | 1 + src/extensions/rcsb/graphql/types.ts | 319 +++++++++++++++++- src/mol-io/reader/cif/schema/bird.ts | 2 +- src/mol-io/reader/cif/schema/ccd.ts | 2 +- src/mol-io/reader/cif/schema/cif-core.ts | 2 +- src/mol-io/reader/cif/schema/mmcif.ts | 7 +- src/mol-model/structure/model/types/ions.ts | 4 +- .../structure/model/types/saccharides.ts | 2 +- 10 files changed, 333 insertions(+), 15 deletions(-) diff --git a/src/cli/chem-comp-dict/create-ions.ts b/src/cli/chem-comp-dict/create-ions.ts index 840517f0a..dcb798d47 100644 --- a/src/cli/chem-comp-dict/create-ions.ts +++ b/src/cli/chem-comp-dict/create-ions.ts @@ -1,8 +1,9 @@ #!/usr/bin/env node /** - * Copyright (c) 2020 mol* contributors, licensed under MIT, See LICENSE file for more info. + * Copyright (c) 2020-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Josh McMenemy <josh.mcmenemy@gmail.com> + * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import * as argparse from 'argparse'; @@ -31,11 +32,11 @@ function extractIonNames(ccd: DatabaseCollection<CCD_Schema>) { function writeIonNamesFile(filePath: string, ionNames: string[]) { const output = `/** - * Copyright (c) 2020 mol* contributors, licensed under MIT, See LICENSE file for more info. + * Copyright (c) 2020-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * Code-generated ion names params file. Names extracted from CCD components. * - * @author molstar/chem-comp-dict/create-table cli + * @author molstar/chem-comp-dict/create-ions cli */ export const IonNames = new Set(${JSON.stringify(ionNames).replace(/"/g, "'").replace(/,/g, ', ')}); diff --git a/src/cli/cifschema/index.ts b/src/cli/cifschema/index.ts index b2704cc79..684117948 100644 --- a/src/cli/cifschema/index.ts +++ b/src/cli/cifschema/index.ts @@ -161,7 +161,7 @@ const MMCIF_DIC_URL = 'http://mmcif.wwpdb.org/dictionaries/ascii/mmcif_pdbx_v50. const IHM_DIC_PATH = `${DIC_DIR}/ihm-extension.dic`; const IHM_DIC_URL = 'https://raw.githubusercontent.com/ihmwg/IHM-dictionary/master/ihm-extension.dic'; const MA_DIC_PATH = `${DIC_DIR}/ma-extension.dic`; -const MA_DIC_URL = 'https://raw.githubusercontent.com/ihmwg/MA-dictionary/master/mmcif_ma.dic'; +const MA_DIC_URL = 'https://raw.githubusercontent.com/ihmwg/ModelCIF/master/dist/mmcif_ma.dic'; const CIF_CORE_DIC_PATH = `${DIC_DIR}/cif_core.dic`; const CIF_CORE_DIC_URL = 'https://raw.githubusercontent.com/COMCIFS/cif_core/master/cif_core.dic'; diff --git a/src/cli/cifschema/util/cif-dic.ts b/src/cli/cifschema/util/cif-dic.ts index 78be1ee79..6bf344e2f 100644 --- a/src/cli/cifschema/util/cif-dic.ts +++ b/src/cli/cifschema/util/cif-dic.ts @@ -51,6 +51,7 @@ export function getFieldType(type: string, description: string, values?: string[ case 'operation_expression': case 'point_symmetry': case '4x3_matrix': + case '3x4_matrix': case '3x4_matrices': case 'point_group': case 'point_group_helical': diff --git a/src/extensions/rcsb/graphql/types.ts b/src/extensions/rcsb/graphql/types.ts index 5454472c9..2b62e1077 100644 --- a/src/extensions/rcsb/graphql/types.ts +++ b/src/extensions/rcsb/graphql/types.ts @@ -4,7 +4,7 @@ export type InputMaybe<T> = Maybe<T>; export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] }; export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> }; export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> }; -// Generated on 2022-02-27T12:49:36-08:00 +// Generated on 2022-04-30T15:35:08-07:00 /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { @@ -659,6 +659,8 @@ export type CoreEntry = { readonly em_staining?: Maybe<ReadonlyArray<Maybe<EmStaining>>>; readonly em_vitrification?: Maybe<ReadonlyArray<Maybe<EmVitrification>>>; readonly entry?: Maybe<Entry>; + /** Get all groups for this PDB entry. */ + readonly entry_groups?: Maybe<ReadonlyArray<Maybe<GroupEntry>>>; readonly exptl?: Maybe<ReadonlyArray<Maybe<Exptl>>>; readonly exptl_crystal?: Maybe<ReadonlyArray<Maybe<ExptlCrystal>>>; readonly exptl_crystal_grow?: Maybe<ReadonlyArray<Maybe<ExptlCrystalGrow>>>; @@ -703,6 +705,7 @@ export type CoreEntry = { readonly rcsb_associated_holdings?: Maybe<CurrentEntry>; readonly rcsb_binding_affinity?: Maybe<ReadonlyArray<Maybe<RcsbBindingAffinity>>>; readonly rcsb_entry_container_identifiers: RcsbEntryContainerIdentifiers; + readonly rcsb_entry_group_membership?: Maybe<ReadonlyArray<Maybe<RcsbEntryGroupMembership>>>; readonly rcsb_entry_info: RcsbEntryInfo; readonly rcsb_external_references?: Maybe<ReadonlyArray<Maybe<RcsbExternalReferences>>>; /** @@ -851,6 +854,8 @@ export type CorePolymerEntity = { readonly pdbx_entity_src_syn?: Maybe<ReadonlyArray<Maybe<PdbxEntitySrcSyn>>>; /** Get all unique Pfam annotations associated with this molecular entity. */ readonly pfams?: Maybe<ReadonlyArray<Maybe<CorePfam>>>; + /** Get all groups for this PDB entity. */ + readonly polymer_entity_groups?: Maybe<ReadonlyArray<Maybe<GroupPolymerEntity>>>; /** Get all unique polymer instances (chains) for this molecular entity. */ readonly polymer_entity_instances?: Maybe<ReadonlyArray<Maybe<CorePolymerEntityInstance>>>; /** Get a BIRD chemical components described in this molecular entity. */ @@ -887,6 +892,7 @@ export type CorePolymerEntity = { readonly rcsb_polymer_entity_container_identifiers: RcsbPolymerEntityContainerIdentifiers; readonly rcsb_polymer_entity_feature?: Maybe<ReadonlyArray<Maybe<RcsbPolymerEntityFeature>>>; readonly rcsb_polymer_entity_feature_summary?: Maybe<ReadonlyArray<Maybe<RcsbPolymerEntityFeatureSummary>>>; + readonly rcsb_polymer_entity_group_membership?: Maybe<ReadonlyArray<Maybe<RcsbPolymerEntityGroupMembership>>>; readonly rcsb_polymer_entity_keywords?: Maybe<RcsbPolymerEntityKeywords>; readonly rcsb_polymer_entity_name_com?: Maybe<ReadonlyArray<Maybe<RcsbPolymerEntityNameCom>>>; readonly rcsb_polymer_entity_name_sys?: Maybe<ReadonlyArray<Maybe<RcsbPolymerEntityNameSys>>>; @@ -3198,6 +3204,55 @@ export type GeneName = { readonly value?: Maybe<Scalars['String']>; }; +export type GroupEntry = { + /** Get provenance associated with this group. */ + readonly group_provenance?: Maybe<GroupProvenance>; + readonly rcsb_group_accession_info?: Maybe<RcsbGroupAccessionInfo>; + readonly rcsb_group_container_identifiers: RcsbGroupContainerIdentifiers; + readonly rcsb_group_info: RcsbGroupInfo; + readonly rcsb_group_related?: Maybe<ReadonlyArray<Maybe<RcsbGroupRelated>>>; + readonly rcsb_group_statistics?: Maybe<RcsbGroupStatistics>; + /** A unique textual identifier for a group */ + readonly rcsb_id: Scalars['String']; +}; + +export type GroupMembersAlignmentAlignedRegions = { + /** Aligned region length */ + readonly length: Scalars['Int']; + /** Entity seqeunce start position */ + readonly query_begin: Scalars['Int']; + /** NCBI sequence start position */ + readonly target_begin: Scalars['Int']; +}; + +export type GroupMembersAlignmentScores = { + readonly query_coverage: Scalars['Int']; + readonly query_length: Scalars['Int']; + readonly target_coverage: Scalars['Int']; + readonly target_length: Scalars['Int']; +}; + +export type GroupPolymerEntity = { + /** Get provenance associated with this group. */ + readonly group_provenance?: Maybe<GroupProvenance>; + readonly rcsb_group_accession_info?: Maybe<RcsbGroupAccessionInfo>; + readonly rcsb_group_container_identifiers: RcsbGroupContainerIdentifiers; + readonly rcsb_group_info: RcsbGroupInfo; + readonly rcsb_group_related?: Maybe<ReadonlyArray<Maybe<RcsbGroupRelated>>>; + readonly rcsb_group_statistics?: Maybe<RcsbGroupStatistics>; + /** A unique textual identifier for a group */ + readonly rcsb_id: Scalars['String']; + readonly rcsb_polymer_entity_group_members_rankings?: Maybe<ReadonlyArray<Maybe<RcsbPolymerEntityGroupMembersRankings>>>; + readonly rcsb_polymer_entity_group_sequence_alignment?: Maybe<RcsbPolymerEntityGroupSequenceAlignment>; +}; + +export type GroupProvenance = { + readonly rcsb_group_aggregation_method?: Maybe<RcsbGroupAggregationMethod>; + readonly rcsb_group_provenance_container_identifiers?: Maybe<RcsbGroupProvenanceContainerIdentifiers>; + /** A unique textual identifier for a group provenance */ + readonly rcsb_id?: Maybe<Scalars['String']>; +}; + export type InterfacePartnerFeatureAdditionalProperties = { /** * The additional property name. @@ -3220,6 +3275,17 @@ export type InterfacePartnerFeatureFeaturePositions = { readonly values?: Maybe<ReadonlyArray<Maybe<Scalars['Float']>>>; }; +export type MethodDetails = { + /** A description of special aspects of the clustering process */ + readonly description?: Maybe<Scalars['String']>; + /** Defines the name of the description associated with the clustering process */ + readonly name?: Maybe<Scalars['String']>; + /** Defines the type of the description associated with the clustering process */ + readonly type?: Maybe<Scalars['String']>; + /** Defines the value associated with the clustering process */ + readonly value?: Maybe<Scalars['Float']>; +}; + export type PdbxAuditRevisionCategory = { /** * The category updated in the pdbx_audit_revision_category record. @@ -6779,6 +6845,12 @@ export type Query = { readonly entries?: Maybe<ReadonlyArray<Maybe<CoreEntry>>>; /** Get PDB entry given the PDB id. */ readonly entry?: Maybe<CoreEntry>; + /** Given a group ID get a group object formed by aggregating individual structures that share a degree of similarity */ + readonly entry_group?: Maybe<GroupEntry>; + /** Given a list of group IDs get a list of group objects formed by aggregating structures that share a degree of similarity */ + readonly entry_groups?: Maybe<ReadonlyArray<Maybe<GroupEntry>>>; + /** Given a group provenance ID get an object that describes aggregation method used to create groups */ + readonly group_provenance?: Maybe<GroupProvenance>; /** Get a pairwise polymeric interface given the PDB ID, ASSEMBLY ID and INTERFACE ID. */ readonly interface?: Maybe<CoreInterface>; /** Get a list of pairwise polymeric interfaces given a list of INTERFACE IDs. Here INTERFACE ID is a compound identifier that includes entry_id, assembly_id and interface_id e.g. 1XXX-1.1. */ @@ -6795,6 +6867,10 @@ export type Query = { readonly polymer_entities?: Maybe<ReadonlyArray<Maybe<CorePolymerEntity>>>; /** Get a PDB polymer entity, given the PDB ID and ENTITY ID. Here ENTITY ID is a '1', '2', '3', etc. */ readonly polymer_entity?: Maybe<CorePolymerEntity>; + /** Given a group ID get a group object formed by aggregating polymer entities that share a degree of similarity */ + readonly polymer_entity_group?: Maybe<GroupPolymerEntity>; + /** Given a list of group IDs get a list of group objects formed by aggregating polymer entities that share a degree of similarity */ + readonly polymer_entity_groups?: Maybe<ReadonlyArray<Maybe<GroupPolymerEntity>>>; /** Get a PDB polymer entity instance (chain), given the PDB ID and ENTITY INSTANCE ID. Here ENTITY INSTANCE ID identifies structural element in the asymmetric unit, e.g. 'A', 'B', etc. */ readonly polymer_entity_instance?: Maybe<CorePolymerEntityInstance>; /** Get a list of PDB polymer entity instances (chains), given the list of ENTITY INSTANCE IDs. Here ENTITY INSTANCE ID identifies structural element in the asymmetric unit, e.g. 'A', 'B', etc. */ @@ -6869,6 +6945,24 @@ export type QueryEntryArgs = { }; +/** Query root */ +export type QueryEntry_GroupArgs = { + group_id: Scalars['String']; +}; + + +/** Query root */ +export type QueryEntry_GroupsArgs = { + group_ids: ReadonlyArray<InputMaybe<Scalars['String']>>; +}; + + +/** Query root */ +export type QueryGroup_ProvenanceArgs = { + group_provenance_id: Scalars['String']; +}; + + /** Query root */ export type QueryInterfaceArgs = { assembly_id: Scalars['String']; @@ -6922,6 +7016,18 @@ export type QueryPolymer_EntityArgs = { }; +/** Query root */ +export type QueryPolymer_Entity_GroupArgs = { + group_id: Scalars['String']; +}; + + +/** Query root */ +export type QueryPolymer_Entity_GroupsArgs = { + group_ids: ReadonlyArray<InputMaybe<Scalars['String']>>; +}; + + /** Query root */ export type QueryPolymer_Entity_InstanceArgs = { asym_id: Scalars['String']; @@ -8666,6 +8772,25 @@ export type RcsbEntryContainerIdentifiers = { readonly water_entity_ids?: Maybe<ReadonlyArray<Maybe<Scalars['String']>>>; }; +export type RcsbEntryGroupMembership = { + /** + * Method used to establish group membership + * + * Allowable values: + * matching_deposit_group_id + * + */ + readonly aggregation_method: Scalars['String']; + /** + * A unique identifier for a group of entries + * + * Examples: + * G_1001001 + * + */ + readonly group_id: Scalars['String']; +}; + export type RcsbEntryInfo = { /** The number of assemblies defined for this entry including the deposited assembly. */ readonly assembly_count?: Maybe<Scalars['Int']>; @@ -8893,6 +9018,127 @@ export type RcsbGenomicLineage = { readonly name?: Maybe<Scalars['String']>; }; +export type RcsbGroupAccessionInfo = { + /** Identifies the version of the groups solution */ + readonly version: Scalars['Int']; +}; + +export type RcsbGroupAggregationMethod = { + /** The details on a method used to calculate cluster solutions */ + readonly method: RcsbGroupAggregationMethodMethod; + readonly similarity_criteria?: Maybe<RcsbGroupAggregationMethodSimilarityCriteria>; + /** + * Specifies the type of similarity criteria used to aggregate members into higher levels in the hierarchy + * + * Allowable values: + * sequence_identity, matching_uniprot_accession, matching_deposit_group_id + * + */ + readonly type: Scalars['String']; +}; + +export type RcsbGroupAggregationMethodMethod = { + /** Additional details describing the clustering process */ + readonly details?: Maybe<ReadonlyArray<Maybe<MethodDetails>>>; + /** + * The name of the software or the method used to calculate cluster solutions + * + * Allowable values: + * mmseqs2, matching_reference_identity + * + */ + readonly name: Scalars['String']; + /** + * The version of the software. + * + * Examples: + * v1.0, 3.1-2, unknown + * + */ + readonly version?: Maybe<Scalars['String']>; +}; + +export type RcsbGroupAggregationMethodSimilarityCriteria = { + /** + * A function or similarity measure that quantifies the similarity between two members + * + * Allowable values: + * rmsd, sequence_identity + * + */ + readonly similarity_function?: Maybe<Scalars['String']>; +}; + +export type RcsbGroupContainerIdentifiers = { + /** A unique textual identifier for a group */ + readonly group_id: Scalars['String']; + /** Member identifiers representing a group */ + readonly group_member_ids: ReadonlyArray<Maybe<Scalars['String']>>; + /** + * A unique group provenance identifier + * + * Allowable values: + * provenance_sequence_identity, provenance_matching_uniprot_accession, provenance_matching_deposit_group_id + * + */ + readonly group_provenance_id: Scalars['String']; + /** Member identifiers representing a higher level in the groping hierarchy that has parent-child relationship */ + readonly parent_member_ids?: Maybe<ReadonlyArray<Maybe<Scalars['String']>>>; +}; + +export type RcsbGroupInfo = { + readonly group_description?: Maybe<Scalars['String']>; + readonly group_members_count: Scalars['Int']; + /** + * Granularity of group members identifiers + * + * Allowable values: + * assembly, entry, polymer_entity, polymer_entity_instance + * + */ + readonly group_members_granularity: Scalars['String']; + readonly group_name?: Maybe<Scalars['String']>; +}; + +export type RcsbGroupProvenanceContainerIdentifiers = { + /** + * A unique group provenance identifier + * + * Allowable values: + * provenance_sequence_identity, provenance_matching_uniprot_accession, provenance_matching_deposit_group_id + * + */ + readonly group_provenance_id: Scalars['String']; +}; + +export type RcsbGroupRelated = { + /** + * A unique code assigned to a reference related the group + * + * Examples: + * P69905 + * + */ + readonly resource_accession_code?: Maybe<Scalars['String']>; + /** + * Defines the type of the resource describing related references + * + * Examples: + * UniProt + * + */ + readonly resource_name?: Maybe<Scalars['String']>; +}; + +export type RcsbGroupStatistics = { + /** The desired lower limit for the similarity between two members that belong to the same group */ + readonly similarity_cutoff?: Maybe<Scalars['Float']>; + /** Similarity score between two most similar group members */ + readonly similarity_score_max?: Maybe<Scalars['Float']>; + /** Similarity score between two least similar group members */ + readonly similarity_score_min?: Maybe<Scalars['Float']>; +}; + export type RcsbInterfaceContainerIdentifiers = { /** This item references an assembly in pdbx_struct_assembly */ readonly assembly_id: Scalars['String']; @@ -9902,6 +10148,7 @@ export type RcsbPolymerEntity = { * */ readonly rcsb_multiple_source_flag?: Maybe<Scalars['String']>; + readonly rcsb_polymer_name_combined?: Maybe<RcsbPolymerEntityRcsbPolymerNameCombined>; /** * The number of biological sources for the polymer entity. Multiple source contributions * may come from the same organism (taxonomy). @@ -10228,6 +10475,69 @@ export type RcsbPolymerEntityFeatureSummary = { readonly type?: Maybe<Scalars['String']>; }; +export type RcsbPolymerEntityGroupMembersRankings = { + readonly group_members: ReadonlyArray<Maybe<RcsbPolymerEntityGroupMembersRankingsGroupMembers>>; + /** + * Defines ranking option applicable to group members + * + * Allowable values: + * coverage + * + */ + readonly ranking_criteria_type: Scalars['String']; +}; + +export type RcsbPolymerEntityGroupMembersRankingsGroupMembers = { + readonly member_id: Scalars['String']; + /** Quantifies the criteria used for ranking */ + readonly original_score?: Maybe<Scalars['Float']>; + /** Reflects a relationship between group members such that, for any two members the first is ranked higher (smaller rank value) than the second */ + readonly rank: Scalars['Int']; +}; + +export type RcsbPolymerEntityGroupMembership = { + /** + * Method used to establish group membership + * + * Allowable values: + * sequence_identity, matching_uniprot_accession + * + */ + readonly aggregation_method: Scalars['String']; + /** + * A unique identifier for a group of entities + * + * Examples: + * 1_100, P00003 + * + */ + readonly group_id: Scalars['String']; + /** Degree of similarity expressed as a floating-point number */ + readonly similarity_cutoff?: Maybe<Scalars['Float']>; +}; + +export type RcsbPolymerEntityGroupSequenceAlignment = { + /** Abstract reference where group members can be aligned to generate a MSA */ + readonly abstract_reference: RcsbPolymerEntityGroupSequenceAlignmentAbstractReference; + /** List of alignments with core_entity canonical sequences */ + readonly group_members_alignment: ReadonlyArray<Maybe<RcsbPolymerEntityGroupSequenceAlignmentGroupMembersAlignment>>; +}; + +export type RcsbPolymerEntityGroupSequenceAlignmentAbstractReference = { + /** Abstract reference length */ + readonly length: Scalars['Int']; + /** Sequence that represents the abstract reference */ + readonly sequence?: Maybe<Scalars['String']>; +}; + +export type RcsbPolymerEntityGroupSequenceAlignmentGroupMembersAlignment = { + /** Aligned region */ + readonly aligned_regions: ReadonlyArray<Maybe<GroupMembersAlignmentAlignedRegions>>; + readonly member_id?: Maybe<Scalars['String']>; + /** Alignment scores */ + readonly scores: GroupMembersAlignmentScores; +}; + export type RcsbPolymerEntityInstanceContainerIdentifiers = { /** Instance identifier for this container. */ readonly asym_id: Scalars['String']; @@ -10346,6 +10656,13 @@ export type RcsbPolymerEntityRcsbMacromolecularNamesCombined = { readonly provenance_source?: Maybe<Scalars['String']>; }; +export type RcsbPolymerEntityRcsbPolymerNameCombined = { + /** Protein name annotated by the UniProtKB or macromolecular name assigned by the PDB */ + readonly names?: Maybe<ReadonlyArray<Maybe<Scalars['String']>>>; + /** Allowable values: PDB Preferred Name, PDB Description, UniProt Name. */ + readonly provenance_source?: Maybe<Scalars['String']>; +}; + export type RcsbPolymerInstanceAnnotation = { /** An identifier for the annotation. */ readonly annotation_id?: Maybe<Scalars['String']>; diff --git a/src/mol-io/reader/cif/schema/bird.ts b/src/mol-io/reader/cif/schema/bird.ts index b46f90a4c..911af7b53 100644 --- a/src/mol-io/reader/cif/schema/bird.ts +++ b/src/mol-io/reader/cif/schema/bird.ts @@ -1,7 +1,7 @@ /** * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * - * Code-generated 'BIRD' schema file. Dictionary versions: mmCIF 5.357, IHM 1.17, MA 1.3.6. + * Code-generated 'BIRD' schema file. Dictionary versions: mmCIF 5.358, IHM 1.17, MA 1.4.0. * * @author molstar/ciftools package */ diff --git a/src/mol-io/reader/cif/schema/ccd.ts b/src/mol-io/reader/cif/schema/ccd.ts index c874a43b2..94c5b3259 100644 --- a/src/mol-io/reader/cif/schema/ccd.ts +++ b/src/mol-io/reader/cif/schema/ccd.ts @@ -1,7 +1,7 @@ /** * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * - * Code-generated 'CCD' schema file. Dictionary versions: mmCIF 5.357, IHM 1.17, MA 1.3.6. + * Code-generated 'CCD' schema file. Dictionary versions: mmCIF 5.358, IHM 1.17, MA 1.4.0. * * @author molstar/ciftools package */ diff --git a/src/mol-io/reader/cif/schema/cif-core.ts b/src/mol-io/reader/cif/schema/cif-core.ts index 52a2ab5e3..5e8a49799 100644 --- a/src/mol-io/reader/cif/schema/cif-core.ts +++ b/src/mol-io/reader/cif/schema/cif-core.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2017-2020 mol* contributors, licensed under MIT, See LICENSE file for more info. + * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * Code-generated 'CifCore' schema file. Dictionary versions: CifCore 3.1.0. * diff --git a/src/mol-io/reader/cif/schema/mmcif.ts b/src/mol-io/reader/cif/schema/mmcif.ts index f69fc21a9..30dc5254d 100644 --- a/src/mol-io/reader/cif/schema/mmcif.ts +++ b/src/mol-io/reader/cif/schema/mmcif.ts @@ -1,7 +1,7 @@ /** * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * - * Code-generated 'mmCIF' schema file. Dictionary versions: mmCIF 5.357, IHM 1.17, MA 1.3.6. + * Code-generated 'mmCIF' schema file. Dictionary versions: mmCIF 5.358, IHM 1.17, MA 1.4.0. * * @author molstar/ciftools package */ @@ -916,8 +916,7 @@ export const mmCIF_Schema = { */ entity_poly_seq: { /** - * This data item is a pointer to _entity_poly.entity_id in the - * ENTITY_POLY category. + * This data item is a pointer to _entity.id in the ENTITY category. */ entity_id: str, /** @@ -4939,7 +4938,7 @@ export const mmCIF_Schema = { /** * The type of data held in the dataset. */ - content_type: Aliased<'target' | 'template structure' | 'polymeric template library' | 'spatial restraints' | 'target-template alignment' | 'coevolution MSA' | 'model coordinates' | 'other'>(str), + content_type: Aliased<'target' | 'template structure' | 'polymeric template library' | 'spatial restraints' | 'target-template alignment' | 'coevolution MSA' | 'model coordinates' | 'input structure' | 'reference database' | 'other'>(str), /** * Details for other content types. */ diff --git a/src/mol-model/structure/model/types/ions.ts b/src/mol-model/structure/model/types/ions.ts index 685c383f1..a5ade84f3 100644 --- a/src/mol-model/structure/model/types/ions.ts +++ b/src/mol-model/structure/model/types/ions.ts @@ -1,9 +1,9 @@ /** - * Copyright (c) 2020 mol* contributors, licensed under MIT, See LICENSE file for more info. + * Copyright (c) 2020-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * Code-generated ion names params file. Names extracted from CCD components. * - * @author molstar/chem-comp-dict/create-table cli + * @author molstar/chem-comp-dict/create-ions cli */ export const IonNames = new Set(['118', '119', '543', '1AL', '1CU', '2FK', '2HP', '2OF', '3CO', '3MT', '3NI', '3OF', '3P8', '4MO', '4PU', '4TI', '6MO', 'ACT', 'AG', 'AL', 'ALF', 'AM', 'ATH', 'AU', 'AU3', 'AUC', 'AZI', 'BA', 'BCT', 'BEF', 'BF4', 'BO4', 'BR', 'BS3', 'BSY', 'CA', 'CAC', 'CD', 'CD1', 'CD3', 'CD5', 'CE', 'CF', 'CHT', 'CL', 'CO', 'CO3', 'CO5', 'CON', 'CR', 'CS', 'CSB', 'CU', 'CU1', 'CU3', 'CUA', 'CUZ', 'CYN', 'DME', 'DMI', 'DSC', 'DTI', 'DY', 'E4N', 'EDR', 'EMC', 'ER3', 'EU', 'EU3', 'F', 'FE', 'FE2', 'FPO', 'GA', 'GD3', 'GEP', 'HAI', 'HG', 'HGC', 'IN', 'IOD', 'IR', 'IR3', 'IRI', 'IUM', 'K', 'KO4', 'LA', 'LCO', 'LCP', 'LI', 'LU', 'MAC', 'MG', 'MH2', 'MH3', 'MLI', 'MMC', 'MN', 'MN3', 'MN5', 'MN6', 'MO1', 'MO2', 'MO3', 'MO4', 'MO5', 'MO6', 'MOO', 'MOS', 'MOW', 'MW1', 'MW2', 'MW3', 'NA', 'NA2', 'NA5', 'NA6', 'NAO', 'NAW', 'ND', 'NET', 'NH4', 'NI', 'NI1', 'NI2', 'NI3', 'NO2', 'NO3', 'NRU', 'O4M', 'OAA', 'OC1', 'OC2', 'OC3', 'OC4', 'OC5', 'OC6', 'OC7', 'OC8', 'OCL', 'OCM', 'OCN', 'OCO', 'OF1', 'OF2', 'OF3', 'OH', 'OS', 'OS4', 'OXL', 'PB', 'PBM', 'PD', 'PDV', 'PER', 'PI', 'PO3', 'PO4', 'PR', 'PT', 'PT4', 'PTN', 'RB', 'RH3', 'RHD', 'RU', 'SB', 'SCN', 'SE4', 'SEK', 'SM', 'SMO', 'SO3', 'SO4', 'SR', 'T1A', 'TB', 'TBA', 'TCN', 'TEA', 'TH', 'THE', 'TL', 'TMA', 'TRA', 'UNX', 'V', 'VN3', 'VO4', 'W', 'WO5', 'Y1', 'YB', 'YB2', 'YH', 'YT3', 'ZCM', 'ZN', 'ZN2', 'ZN3', 'ZNO', 'ZO3', 'ZR', 'NCO', 'OHX']); diff --git a/src/mol-model/structure/model/types/saccharides.ts b/src/mol-model/structure/model/types/saccharides.ts index 02f4856fd..1aaa87e85 100644 --- a/src/mol-model/structure/model/types/saccharides.ts +++ b/src/mol-model/structure/model/types/saccharides.ts @@ -6,4 +6,4 @@ * @author molstar/cli/chem-comp-dict/create-saccharides */ -export const SaccharideNames = new Set(['145', '147', '149', '289', '291', '293', '445', '475', '491', '510', '604', '045', '05L', '07E', '07Y', '08U', '09X', '0AT', '0BD', '0H0', '0HX', '0LP', '0MK', '0NZ', '0TS', '0UB', '0V4', '0WK', '0XY', '0YT', '10M', '12E', '14T', '15L', '16F', '16G', '16O', '17T', '18D', '18O', '18T', '1AR', '1BW', '1CF', '1FT', '1GL', '1GN', '1JB', '1LL', '1NA', '1S3', '1S4', '1SD', '1X4', '20S', '20X', '22O', '22S', '23V', '24S', '25E', '26M', '26O', '26Q', '26R', '26V', '26W', '26Y', '27C', '2DG', '2DR', '2F8', '2FG', '2FL', '2FP', '2GL', '2GS', '2H5', '2HA', '2M4', '2M5', '2M8', '2OS', '2WP', '2WS', '32O', '34V', '38J', '3BU', '3CM', '3DO', '3DY', '3FM', '3GR', '3HD', '3J3', '3J4', '3LJ', '3LR', '3MF', '3MG', '3MK', '3R3', '3S6', '3SA', '3YW', '40J', '42D', '44S', '46D', '46M', '46Z', '48Z', '49A', '49S', '49T', '49V', '4AM', '4CQ', '4GC', '4GL', '4GP', '4JA', '4N2', '4NN', '4QY', '4R1', '4RS', '4SG', '4U0', '4U1', '4U2', '4UZ', '4V5', '50A', '51N', '56N', '57S', '5DI', '5GF', '5GO', '5II', '5KQ', '5KS', '5KT', '5KV', '5L2', '5L3', '5LS', '5LT', '5MM', '5N6', '5QP', '5RP', '5SA', '5SP', '5TH', '5TJ', '5TK', '5TM', '61J', '62I', '64K', '66O', '6BG', '6C2', '6DM', '6GB', '6GP', '6GR', '6K3', '6KH', '6KL', '6KS', '6KU', '6KW', '6LA', '6LS', '6LW', '6MJ', '6MN', '6PG', '6PY', '6PZ', '6S2', '6SA', '6UD', '6Y6', '6YR', '6ZC', '73E', '79J', '7CV', '7D1', '7GP', '7JZ', '7K2', '7K3', '7NU', '7SA', '83Y', '89Y', '8B7', '8B9', '8EX', '8GA', '8GG', '8GP', '8LM', '8LR', '8OQ', '8PK', '8S0', '8YV', '95Z', '96O', '9AM', '9C1', '9CD', '9GP', '9KJ', '9MR', '9OK', '9PG', '9QG', '9QZ', '9S7', '9SG', '9SJ', '9SM', '9SP', '9T1', '9T7', '9VP', '9WJ', '9WN', '9WZ', '9YW', 'A0K', 'A1Q', 'A2G', 'A5C', 'A6P', 'AAL', 'AAO', 'ABC', 'ABD', 'ABE', 'ABF', 'ABL', 'AC1', 'ACG', 'ACR', 'ACX', 'ADA', 'ADG', 'ADR', 'AF1', 'AFD', 'AFL', 'AFO', 'AFP', 'AFR', 'AGC', 'AGH', 'AGL', 'AGR', 'AH2', 'AH8', 'AHG', 'AHM', 'AHR', 'AIG', 'ALL', 'ALX', 'AMG', 'AMN', 'AMU', 'AMV', 'ANA', 'AOG', 'AOS', 'AQA', 'ARA', 'ARB', 'ARE', 'ARI', 'ARW', 'ASC', 'ASG', 'ASO', 'AXP', 'AXR', 'AY9', 'AZC', 'B0D', 'B16', 'B1H', 'B1N', 'B2G', 'B4G', 'B6D', 'B7G', 'B8D', 'B9D', 'BBK', 'BBV', 'BCD', 'BCW', 'BDF', 'BDG', 'BDP', 'BDR', 'BDZ', 'BEM', 'BFN', 'BFP', 'BG6', 'BG8', 'BGC', 'BGL', 'BGN', 'BGP', 'BGS', 'BHG', 'BM3', 'BM7', 'BMA', 'BMX', 'BND', 'BNG', 'BNX', 'BO1', 'BOG', 'BQY', 'BRI', 'BS7', 'BTG', 'BTU', 'BWG', 'BXF', 'BXP', 'BXX', 'BXY', 'BZD', 'C3B', 'C3G', 'C3X', 'C4B', 'C4W', 'C4X', 'C5X', 'CAP', 'CBF', 'CBI', 'CBK', 'CDR', 'CE5', 'CE6', 'CE8', 'CEG', 'CEX', 'CEY', 'CEZ', 'CGF', 'CJB', 'CKB', 'CKP', 'CNP', 'CR1', 'CR6', 'CRA', 'CT3', 'CTO', 'CTR', 'CTT', 'D0N', 'D1M', 'D5E', 'D6G', 'DAF', 'DAG', 'DAN', 'DDA', 'DDB', 'DDL', 'DEG', 'DEL', 'DFR', 'DFX', 'DG0', 'DGC', 'DGD', 'DGM', 'DGO', 'DGS', 'DGU', 'DIG', 'DJB', 'DJE', 'DK4', 'DKX', 'DKZ', 'DL6', 'DLD', 'DLF', 'DLG', 'DMU', 'DNO', 'DO8', 'DOM', 'DP5', 'DPC', 'DQQ', 'DQR', 'DR2', 'DR3', 'DR4', 'DR5', 'DRI', 'DSR', 'DT6', 'DVC', 'DYM', 'E3M', 'E4P', 'E5G', 'EAG', 'EBG', 'EBQ', 'EEN', 'EEQ', 'EGA', 'EJT', 'EMP', 'EMZ', 'EPG', 'EQP', 'EQV', 'ERE', 'ERI', 'ETT', 'EUS', 'F1P', 'F1X', 'F55', 'F58', 'F6P', 'F8X', 'FBP', 'FCA', 'FCB', 'FCT', 'FDP', 'FDQ', 'FFC', 'FFX', 'FIF', 'FIX', 'FK9', 'FKD', 'FMF', 'FMO', 'FNG', 'FNY', 'FRU', 'FSA', 'FSI', 'FSM', 'FSR', 'FSW', 'FU4', 'FUB', 'FUC', 'FUD', 'FUF', 'FUL', 'FUY', 'FVQ', 'FX1', 'FYJ', 'G0S', 'G16', 'G1P', 'G20', 'G28', 'G2F', 'G3F', 'G3I', 'G4D', 'G4S', 'G6D', 'G6P', 'G6S', 'G7P', 'G8Z', 'GAA', 'GAC', 'GAD', 'GAF', 'GAL', 'GAT', 'GBH', 'GC1', 'GC4', 'GC9', 'GCB', 'GCD', 'GCN', 'GCO', 'GCS', 'GCT', 'GCU', 'GCV', 'GCW', 'GDA', 'GDL', 'GE1', 'GE3', 'GFP', 'GIV', 'GL0', 'GL1', 'GL2', 'GL4', 'GL5', 'GL6', 'GL7', 'GL9', 'GLA', 'GLB', 'GLC', 'GLD', 'GLF', 'GLG', 'GLO', 'GLP', 'GLS', 'GLT', 'GLW', 'GM0', 'GMB', 'GMH', 'GMT', 'GMZ', 'GN1', 'GN4', 'GNS', 'GNX', 'GP0', 'GP1', 'GP4', 'GPH', 'GPK', 'GPM', 'GPO', 'GPQ', 'GPU', 'GPV', 'GPW', 'GQ1', 'GRF', 'GRX', 'GS1', 'GS4', 'GS9', 'GSA', 'GSD', 'GTE', 'GTH', 'GTK', 'GTM', 'GTR', 'GU0', 'GU1', 'GU2', 'GU3', 'GU4', 'GU5', 'GU6', 'GU8', 'GU9', 'GUF', 'GUL', 'GUP', 'GUZ', 'GXL', 'GXV', 'GYE', 'GYG', 'GYP', 'GYU', 'GYV', 'GZL', 'H1M', 'H1S', 'H2P', 'H3S', 'H53', 'H6Q', 'H6Z', 'HBZ', 'HD4', 'HDL', 'HMS', 'HNV', 'HNW', 'HSG', 'HSH', 'HSJ', 'HSQ', 'HSR', 'HSU', 'HSX', 'HSY', 'HSZ', 'HTG', 'HTM', 'I57', 'IAB', 'IDC', 'IDF', 'IDG', 'IDR', 'IDS', 'IDT', 'IDU', 'IDX', 'IDY', 'IEM', 'IN1', 'IPT', 'ISD', 'ISL', 'ISX', 'IXD', 'J5B', 'JFZ', 'JHM', 'JLT', 'JRV', 'JS2', 'JSV', 'JV4', 'JVA', 'JVS', 'JZR', 'K5B', 'K99', 'KBA', 'KBG', 'KD5', 'KDA', 'KDB', 'KDD', 'KDE', 'KDF', 'KDM', 'KDN', 'KDO', 'KDR', 'KFN', 'KG1', 'KGM', 'KHP', 'KME', 'KO1', 'KO2', 'KOT', 'KTU', 'L1L', 'L6S', 'L6T', 'LAG', 'LAH', 'LAI', 'LAK', 'LAO', 'LAT', 'LB2', 'LBS', 'LBT', 'LCN', 'LDY', 'LEC', 'LER', 'LFC', 'LFR', 'LGC', 'LGU', 'LKA', 'LKS', 'LM2', 'LMO', 'LMT', 'LMU', 'LNV', 'LOG', 'LOX', 'LPK', 'LRH', 'LSM', 'LTG', 'LTM', 'LVO', 'LVZ', 'LXB', 'LXC', 'LXZ', 'LZ0', 'M1F', 'M1P', 'M2F', 'M3M', 'M3N', 'M55', 'M6D', 'M6P', 'M7B', 'M7P', 'M8C', 'MA1', 'MA2', 'MA3', 'MA8', 'MAB', 'MAF', 'MAG', 'MAL', 'MAN', 'MAT', 'MAV', 'MAW', 'MBE', 'MBF', 'MBG', 'MCU', 'MDA', 'MDP', 'MFA', 'MFB', 'MFU', 'MG5', 'MGA', 'MGC', 'MGL', 'MGS', 'MJJ', 'MLB', 'MLR', 'MMA', 'MMN', 'MN0', 'MNA', 'MQG', 'MQT', 'MRH', 'MRP', 'MSX', 'MTT', 'MUB', 'MUG', 'MUR', 'MVP', 'MXY', 'MXZ', 'MYG', 'N1L', 'N9S', 'NA1', 'NAA', 'NAG', 'NBG', 'NBX', 'NBY', 'NDG', 'NED', 'NFG', 'NG1', 'NG6', 'NGA', 'NGB', 'NGC', 'NGE', 'NGF', 'NGK', 'NGL', 'NGR', 'NGS', 'NGY', 'NGZ', 'NHF', 'NLC', 'NM6', 'NM9', 'NNG', 'NPF', 'NSQ', 'NT1', 'NTF', 'NTO', 'NTP', 'NXD', 'NYT', 'O1G', 'OAK', 'OEL', 'OI7', 'OPM', 'ORP', 'OSU', 'OTG', 'OTN', 'OTU', 'OX2', 'P53', 'P6P', 'P8E', 'PA1', 'PA5', 'PAV', 'PDX', 'PH5', 'PKM', 'PNA', 'PNG', 'PNJ', 'PNW', 'PPC', 'PRP', 'PSG', 'PSJ', 'PSV', 'PTQ', 'PUF', 'PZU', 'QDK', 'QIF', 'QKH', 'QPS', 'QV4', 'R1P', 'R1X', 'R2B', 'R2G', 'R5P', 'RAA', 'RAE', 'RAF', 'RAM', 'RAO', 'RAT', 'RB5', 'RBL', 'RCD', 'RDP', 'REL', 'RER', 'RF5', 'RG1', 'RGG', 'RHA', 'RHC', 'RI2', 'RIB', 'RIP', 'RM4', 'RNS', 'RNT', 'ROB', 'ROR', 'RP3', 'RP5', 'RP6', 'RPA', 'RR7', 'RRJ', 'RRY', 'RST', 'RTG', 'RTV', 'RUB', 'RUG', 'RUU', 'RV7', 'RVG', 'RVM', 'RWI', 'RY7', 'RZM', 'S6P', 'S7P', 'S81', 'SA0', 'SCG', 'SCR', 'SDD', 'SDY', 'SEJ', 'SF6', 'SF9', 'SFJ', 'SFU', 'SG4', 'SG5', 'SG6', 'SG7', 'SGA', 'SGC', 'SGD', 'SGN', 'SGS', 'SHB', 'SHD', 'SHG', 'SI3', 'SIA', 'SID', 'SIO', 'SIZ', 'SLB', 'SLM', 'SLT', 'SMD', 'SN5', 'SNG', 'SOE', 'SOG', 'SOL', 'SOR', 'SR1', 'SSG', 'SSH', 'STW', 'STZ', 'SUC', 'SUP', 'SUS', 'SWE', 'SZZ', 'T68', 'T6D', 'T6P', 'T6T', 'TA6', 'TAG', 'TCB', 'TCG', 'TDG', 'TEU', 'TF0', 'TFU', 'TGA', 'TGK', 'TGR', 'TGY', 'TH1', 'TM5', 'TM6', 'TM9', 'TMR', 'TMX', 'TNX', 'TOA', 'TOC', 'TQY', 'TRE', 'TRV', 'TS8', 'TT7', 'TTV', 'TTZ', 'TU4', 'TUG', 'TUJ', 'TUP', 'TUR', 'TVD', 'TVG', 'TVM', 'TVS', 'TVV', 'TVY', 'TW7', 'TWA', 'TWD', 'TWG', 'TWJ', 'TWY', 'TXB', 'TYV', 'U1Y', 'U2A', 'U2D', 'U63', 'U8V', 'U97', 'U9A', 'U9D', 'U9G', 'U9J', 'U9M', 'UAP', 'UCD', 'UDC', 'UEA', 'V3M', 'V3P', 'V71', 'VG1', 'VJ1', 'VJ4', 'VKN', 'VTB', 'W9T', 'WIA', 'WOO', 'WUN', 'WZ1', 'WZ2', 'WZ4', 'X0X', 'X1P', 'X1X', 'X2F', 'X2Y', 'X34', 'X4S', 'X5S', 'X6X', 'X6Y', 'XBP', 'XDP', 'XDX', 'XGP', 'XIL', 'XKJ', 'XLF', 'XLS', 'XMM', 'XS2', 'XUL', 'XXM', 'XXR', 'XXX', 'XYB', 'XYF', 'XYL', 'XYP', 'XYS', 'XYT', 'XYZ', 'YDR', 'YIO', 'YJM', 'YKR', 'YO5', 'YX0', 'YX1', 'YYB', 'YYH', 'YYJ', 'YYK', 'YYM', 'YYQ', 'YYR', 'YZ0', 'Z0F', 'Z15', 'Z16', 'Z2D', 'Z2T', 'Z3K', 'Z3L', 'Z3Q', 'Z3U', 'Z4K', 'Z4R', 'Z4S', 'Z4U', 'Z4V', 'Z4W', 'Z4Y', 'Z57', 'Z5J', 'Z5L', 'Z61', 'Z6H', 'Z6J', 'Z6W', 'Z8H', 'Z8T', 'Z9D', 'Z9E', 'Z9H', 'Z9K', 'Z9L', 'Z9M', 'Z9N', 'Z9W', 'ZB0', 'ZB1', 'ZB2', 'ZB3', 'ZCD', 'ZCZ', 'ZD0', 'ZDC', 'ZDM', 'ZDO', 'ZEE', 'ZEL', 'ZGE', 'ZMR', 'UMQ', 'SQD']); +export const SaccharideNames = new Set(['145', '147', '149', '289', '291', '293', '445', '475', '491', '510', '604', '045', '05L', '07E', '07Y', '08U', '09X', '0AT', '0BD', '0H0', '0HX', '0LP', '0MK', '0NZ', '0TS', '0UB', '0V4', '0WK', '0XY', '0YT', '10M', '12E', '14T', '15L', '16F', '16G', '16O', '17T', '18D', '18O', '18T', '1AR', '1BW', '1CF', '1FT', '1GL', '1GN', '1JB', '1LL', '1NA', '1S3', '1S4', '1SD', '1X4', '20S', '20X', '22O', '22S', '23V', '24S', '25E', '26M', '26O', '26Q', '26R', '26V', '26W', '26Y', '27C', '2DG', '2DR', '2F8', '2FG', '2FL', '2FP', '2GL', '2GS', '2H5', '2HA', '2M4', '2M5', '2M8', '2OS', '2WP', '2WS', '32O', '34V', '38J', '3BU', '3CM', '3DO', '3DY', '3FM', '3GR', '3HD', '3J3', '3J4', '3LJ', '3LR', '3MF', '3MG', '3MK', '3R3', '3S6', '3SA', '3YW', '40J', '42D', '44S', '46D', '46M', '46Z', '48Z', '49A', '49S', '49T', '49V', '4AM', '4CQ', '4GC', '4GL', '4GP', '4JA', '4N2', '4NN', '4QY', '4R1', '4RS', '4SG', '4U0', '4U1', '4U2', '4UZ', '4V5', '50A', '51N', '56N', '57S', '5DI', '5GF', '5GO', '5II', '5KQ', '5KS', '5KT', '5KV', '5L2', '5L3', '5LS', '5LT', '5MM', '5N6', '5QP', '5RP', '5SA', '5SP', '5TH', '5TJ', '5TK', '5TM', '61J', '62I', '64K', '66O', '6BG', '6C2', '6DM', '6GB', '6GP', '6GR', '6K3', '6KH', '6KL', '6KS', '6KU', '6KW', '6LA', '6LS', '6LW', '6MJ', '6MN', '6PG', '6PY', '6PZ', '6S2', '6SA', '6UD', '6Y6', '6YR', '6ZC', '73E', '79J', '7CV', '7D1', '7GP', '7JZ', '7K2', '7K3', '7NU', '7SA', '83Y', '89Y', '8B7', '8B9', '8EX', '8GA', '8GG', '8GP', '8LM', '8LR', '8OQ', '8PK', '8S0', '8YV', '95Z', '96O', '9AM', '9C1', '9CD', '9GP', '9KJ', '9MR', '9OK', '9PG', '9QG', '9QZ', '9S7', '9SG', '9SJ', '9SM', '9SP', '9T1', '9T7', '9VP', '9WJ', '9WN', '9WZ', '9YW', 'A0K', 'A1Q', 'A2G', 'A5C', 'A6P', 'AAL', 'AAO', 'ABC', 'ABD', 'ABE', 'ABF', 'ABL', 'AC1', 'ACG', 'ACR', 'ACX', 'ADA', 'ADG', 'ADR', 'AF1', 'AFD', 'AFL', 'AFO', 'AFP', 'AFR', 'AGC', 'AGH', 'AGL', 'AGR', 'AH2', 'AH8', 'AHG', 'AHM', 'AHR', 'AIG', 'ALL', 'ALX', 'AMG', 'AMN', 'AMU', 'AMV', 'ANA', 'AOG', 'AOS', 'AQA', 'ARA', 'ARB', 'ARE', 'ARI', 'ARW', 'ASC', 'ASG', 'ASO', 'AXP', 'AXR', 'AY9', 'AZC', 'B0D', 'B16', 'B1H', 'B1N', 'B2G', 'B4G', 'B6D', 'B7G', 'B8D', 'B9D', 'BBK', 'BBV', 'BCD', 'BCW', 'BDF', 'BDG', 'BDP', 'BDR', 'BDZ', 'BEM', 'BFN', 'BFP', 'BG6', 'BG8', 'BGC', 'BGL', 'BGN', 'BGP', 'BGS', 'BHG', 'BM3', 'BM7', 'BMA', 'BMX', 'BND', 'BNG', 'BNX', 'BO1', 'BOG', 'BQY', 'BRI', 'BS7', 'BTG', 'BTU', 'BW3', 'BWG', 'BXF', 'BXP', 'BXX', 'BXY', 'BZD', 'C3B', 'C3G', 'C3X', 'C4B', 'C4W', 'C4X', 'C5X', 'CAP', 'CBF', 'CBI', 'CBK', 'CDR', 'CE5', 'CE6', 'CE8', 'CEG', 'CEX', 'CEY', 'CEZ', 'CGF', 'CJB', 'CKB', 'CKP', 'CNP', 'CR1', 'CR6', 'CRA', 'CT3', 'CTO', 'CTR', 'CTT', 'D0N', 'D1M', 'D5E', 'D6G', 'DAF', 'DAG', 'DAN', 'DDA', 'DDB', 'DDL', 'DEG', 'DEL', 'DFR', 'DFX', 'DG0', 'DGC', 'DGD', 'DGM', 'DGO', 'DGS', 'DGU', 'DIG', 'DJB', 'DJE', 'DK4', 'DKX', 'DKZ', 'DL6', 'DLD', 'DLF', 'DLG', 'DMU', 'DNO', 'DO8', 'DOM', 'DP5', 'DPC', 'DQQ', 'DQR', 'DR2', 'DR3', 'DR4', 'DR5', 'DRI', 'DSR', 'DT6', 'DVC', 'DYM', 'E3M', 'E4P', 'E5G', 'EAG', 'EBG', 'EBQ', 'EEN', 'EEQ', 'EGA', 'EJT', 'EMP', 'EMZ', 'EPG', 'EQP', 'EQV', 'ERE', 'ERI', 'ETT', 'EUS', 'F1P', 'F1X', 'F55', 'F58', 'F6P', 'F8X', 'FBP', 'FCA', 'FCB', 'FCT', 'FDP', 'FDQ', 'FFC', 'FFX', 'FIF', 'FIX', 'FK9', 'FKD', 'FMF', 'FMO', 'FNG', 'FNY', 'FRU', 'FSA', 'FSI', 'FSM', 'FSR', 'FSW', 'FU4', 'FUB', 'FUC', 'FUD', 'FUF', 'FUL', 'FUY', 'FVQ', 'FX1', 'FYJ', 'G0S', 'G16', 'G1P', 'G20', 'G28', 'G2F', 'G3F', 'G3I', 'G4D', 'G4S', 'G6D', 'G6P', 'G6S', 'G7P', 'G8Z', 'GAA', 'GAC', 'GAD', 'GAF', 'GAL', 'GAT', 'GBH', 'GC1', 'GC4', 'GC9', 'GCB', 'GCD', 'GCN', 'GCO', 'GCS', 'GCT', 'GCU', 'GCV', 'GCW', 'GDA', 'GDL', 'GE1', 'GE3', 'GFP', 'GIV', 'GL0', 'GL1', 'GL2', 'GL4', 'GL5', 'GL6', 'GL7', 'GL9', 'GLA', 'GLB', 'GLC', 'GLD', 'GLF', 'GLG', 'GLO', 'GLP', 'GLS', 'GLT', 'GLW', 'GM0', 'GMB', 'GMH', 'GMT', 'GMZ', 'GN1', 'GN4', 'GNS', 'GNX', 'GP0', 'GP1', 'GP4', 'GPH', 'GPK', 'GPM', 'GPO', 'GPQ', 'GPU', 'GPV', 'GPW', 'GQ1', 'GRF', 'GRX', 'GS1', 'GS4', 'GS9', 'GSA', 'GSD', 'GTE', 'GTH', 'GTK', 'GTM', 'GTR', 'GU0', 'GU1', 'GU2', 'GU3', 'GU4', 'GU5', 'GU6', 'GU8', 'GU9', 'GUF', 'GUL', 'GUP', 'GUZ', 'GXL', 'GXV', 'GYE', 'GYG', 'GYP', 'GYU', 'GYV', 'GZL', 'H1M', 'H1S', 'H2P', 'H3S', 'H53', 'H6Q', 'H6Z', 'HBZ', 'HD4', 'HDL', 'HMS', 'HNV', 'HNW', 'HSG', 'HSH', 'HSJ', 'HSQ', 'HSR', 'HSU', 'HSX', 'HSY', 'HSZ', 'HTG', 'HTM', 'I57', 'IAB', 'IDC', 'IDF', 'IDG', 'IDR', 'IDS', 'IDT', 'IDU', 'IDX', 'IDY', 'IEM', 'IN1', 'IPT', 'ISD', 'ISL', 'ISX', 'IXD', 'J5B', 'JFZ', 'JHM', 'JLT', 'JRV', 'JS2', 'JSV', 'JV4', 'JVA', 'JVS', 'JZR', 'K5B', 'K99', 'KBA', 'KBG', 'KD5', 'KDA', 'KDB', 'KDD', 'KDE', 'KDF', 'KDM', 'KDN', 'KDO', 'KDR', 'KFN', 'KG1', 'KGM', 'KHP', 'KME', 'KO1', 'KO2', 'KOT', 'KTU', 'L1L', 'L6S', 'L6T', 'LAG', 'LAH', 'LAI', 'LAK', 'LAO', 'LAT', 'LB2', 'LBS', 'LBT', 'LCN', 'LDY', 'LEC', 'LER', 'LFC', 'LFR', 'LGC', 'LGU', 'LKA', 'LKS', 'LM2', 'LMO', 'LMT', 'LMU', 'LNV', 'LOG', 'LOX', 'LPK', 'LRH', 'LSM', 'LTG', 'LTM', 'LVO', 'LVZ', 'LXB', 'LXC', 'LXZ', 'LZ0', 'M1F', 'M1P', 'M2F', 'M3M', 'M3N', 'M55', 'M6D', 'M6P', 'M7B', 'M7P', 'M8C', 'MA1', 'MA2', 'MA3', 'MA8', 'MAB', 'MAF', 'MAG', 'MAL', 'MAN', 'MAT', 'MAV', 'MAW', 'MBE', 'MBF', 'MBG', 'MCU', 'MDA', 'MDP', 'MFA', 'MFB', 'MFU', 'MG5', 'MGA', 'MGC', 'MGL', 'MGS', 'MJJ', 'MLB', 'MLR', 'MMA', 'MMN', 'MN0', 'MNA', 'MQG', 'MQT', 'MRH', 'MRP', 'MSX', 'MTT', 'MUB', 'MUG', 'MUR', 'MVP', 'MXY', 'MXZ', 'MYG', 'N1L', 'N9S', 'NA1', 'NAA', 'NAG', 'NBG', 'NBX', 'NBY', 'NDG', 'NED', 'NFG', 'NG1', 'NG6', 'NGA', 'NGB', 'NGC', 'NGE', 'NGF', 'NGK', 'NGL', 'NGR', 'NGS', 'NGY', 'NGZ', 'NHF', 'NLC', 'NM6', 'NM9', 'NNG', 'NPF', 'NSQ', 'NT1', 'NTF', 'NTO', 'NTP', 'NXD', 'NYT', 'O1G', 'OAK', 'OEL', 'OI7', 'OPM', 'ORP', 'OSU', 'OTG', 'OTN', 'OTU', 'OX2', 'P53', 'P6P', 'P8E', 'PA1', 'PA5', 'PAV', 'PDX', 'PH5', 'PKM', 'PNA', 'PNG', 'PNJ', 'PNW', 'PPC', 'PRP', 'PSG', 'PSJ', 'PSV', 'PTQ', 'PUF', 'PZU', 'QDK', 'QIF', 'QKH', 'QPS', 'QV4', 'R1P', 'R1X', 'R2B', 'R2G', 'R5P', 'RAA', 'RAE', 'RAF', 'RAM', 'RAO', 'RAT', 'RB5', 'RBL', 'RCD', 'RDP', 'REL', 'RER', 'RF5', 'RG1', 'RGG', 'RHA', 'RHC', 'RI2', 'RIB', 'RIP', 'RM4', 'RNS', 'RNT', 'ROB', 'ROR', 'RP3', 'RP5', 'RP6', 'RPA', 'RR7', 'RRJ', 'RRY', 'RST', 'RTG', 'RTV', 'RUB', 'RUG', 'RUU', 'RV7', 'RVG', 'RVM', 'RWI', 'RY7', 'RZM', 'S6P', 'S7P', 'S81', 'SA0', 'SCG', 'SCR', 'SDD', 'SDY', 'SEJ', 'SF6', 'SF9', 'SFJ', 'SFU', 'SG4', 'SG5', 'SG6', 'SG7', 'SGA', 'SGC', 'SGD', 'SGN', 'SGS', 'SHB', 'SHD', 'SHG', 'SI3', 'SIA', 'SID', 'SIO', 'SIZ', 'SLB', 'SLM', 'SLT', 'SMD', 'SN5', 'SNG', 'SOE', 'SOG', 'SOL', 'SOR', 'SR1', 'SSG', 'SSH', 'STW', 'STZ', 'SUC', 'SUP', 'SUS', 'SWE', 'SZZ', 'T68', 'T6D', 'T6P', 'T6T', 'TA6', 'TAG', 'TCB', 'TCG', 'TDG', 'TEU', 'TF0', 'TFU', 'TGA', 'TGK', 'TGR', 'TGY', 'TH1', 'TM5', 'TM6', 'TM9', 'TMR', 'TMX', 'TNX', 'TOA', 'TOC', 'TQY', 'TRE', 'TRV', 'TS8', 'TT7', 'TTV', 'TTZ', 'TU4', 'TUG', 'TUJ', 'TUP', 'TUR', 'TVD', 'TVG', 'TVM', 'TVS', 'TVV', 'TVY', 'TW7', 'TWA', 'TWD', 'TWG', 'TWJ', 'TWY', 'TXB', 'TYV', 'U1Y', 'U2A', 'U2D', 'U63', 'U8V', 'U97', 'U9A', 'U9D', 'U9G', 'U9J', 'U9M', 'UAP', 'UCD', 'UDC', 'UEA', 'V3M', 'V3P', 'V71', 'VG1', 'VJ1', 'VJ4', 'VKN', 'VTB', 'W9T', 'WIA', 'WOO', 'WUN', 'WZ1', 'WZ2', 'WZ4', 'X0X', 'X1P', 'X1X', 'X2F', 'X2Y', 'X34', 'X4S', 'X5S', 'X6X', 'X6Y', 'XBP', 'XDP', 'XDX', 'XGP', 'XIL', 'XKJ', 'XLF', 'XLS', 'XMM', 'XS2', 'XUL', 'XXM', 'XXR', 'XXX', 'XYB', 'XYF', 'XYL', 'XYP', 'XYS', 'XYT', 'XYZ', 'YDR', 'YIO', 'YJM', 'YKR', 'YO5', 'YX0', 'YX1', 'YYB', 'YYH', 'YYJ', 'YYK', 'YYM', 'YYQ', 'YYR', 'YZ0', 'YZT', 'Z0F', 'Z15', 'Z16', 'Z2D', 'Z2T', 'Z3K', 'Z3L', 'Z3Q', 'Z3U', 'Z4K', 'Z4R', 'Z4S', 'Z4U', 'Z4V', 'Z4W', 'Z4Y', 'Z57', 'Z5J', 'Z5L', 'Z61', 'Z6H', 'Z6J', 'Z6W', 'Z8H', 'Z8T', 'Z9D', 'Z9E', 'Z9H', 'Z9K', 'Z9L', 'Z9M', 'Z9N', 'Z9W', 'ZB0', 'ZB1', 'ZB2', 'ZB3', 'ZCD', 'ZCZ', 'ZD0', 'ZDC', 'ZDM', 'ZDO', 'ZEE', 'ZEL', 'ZGE', 'ZMR', 'UMQ', 'SQD']); -- GitLab