From 41e1ac76c026ce460f67aa7187f7ba3f5ed2640c Mon Sep 17 00:00:00 2001
From: Alexander Rose <alexander.rose@weirdbyte.de>
Date: Sat, 9 Jan 2021 12:51:34 -0800
Subject: [PATCH] improve peptide entity-subtype derivation
---
src/mol-model-formats/structure/basic/schema.ts | 6 +++---
src/mol-model/structure/model/properties/common.ts | 5 +++--
src/mol-model/structure/model/types.ts | 6 ++++--
src/mol-plugin-state/helpers/structure-selection-query.ts | 4 ++--
4 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/src/mol-model-formats/structure/basic/schema.ts b/src/mol-model-formats/structure/basic/schema.ts
index 167c24790..7146943ee 100644
--- a/src/mol-model-formats/structure/basic/schema.ts
+++ b/src/mol-model-formats/structure/basic/schema.ts
@@ -24,9 +24,9 @@ export type ChemComp = Table<mmCIF_chemComp_schema>
export type ChemCompIdentifier = Table<mmCIF_Schema['pdbx_chem_comp_identifier']>
export type AtomSite = Table<mmCIF_Schema['atom_site']>
export type IhmSphereObjSite = Table<mmCIF_Schema['ihm_sphere_obj_site']>
-export type IhmGaussianObjSite =Table<mmCIF_Schema['ihm_gaussian_obj_site']>
-export type UnobsOrZeroOccResidues =Table<mmCIF_Schema['pdbx_unobs_or_zero_occ_residues']>
-export type Molecule =Table<mmCIF_Schema['pdbx_molecule']>
+export type IhmGaussianObjSite = Table<mmCIF_Schema['ihm_gaussian_obj_site']>
+export type UnobsOrZeroOccResidues = Table<mmCIF_Schema['pdbx_unobs_or_zero_occ_residues']>
+export type Molecule = Table<mmCIF_Schema['pdbx_molecule']>
export const BasicSchema = {
entry: mmCIF_Schema.entry,
diff --git a/src/mol-model/structure/model/properties/common.ts b/src/mol-model/structure/model/properties/common.ts
index baa817931..a721b8dbe 100644
--- a/src/mol-model/structure/model/properties/common.ts
+++ b/src/mol-model/structure/model/properties/common.ts
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2018-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
+ * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
* @author David Sehnal <david.sehnal@gmail.com>
@@ -14,7 +14,8 @@ export type EntitySubtype = (
mmCIF_Schema['entity_poly']['type']['T'] |
mmCIF_Schema['pdbx_entity_branch']['type']['T'] |
'ion' |
- 'lipid'
+ 'lipid' |
+ 'peptide-like'
)
export const EntitySubtype = Column.Schema.Aliased<EntitySubtype>(Column.Schema.Str(''));
diff --git a/src/mol-model/structure/model/types.ts b/src/mol-model/structure/model/types.ts
index e31d05bfb..44a209770 100644
--- a/src/mol-model/structure/model/types.ts
+++ b/src/mol-model/structure/model/types.ts
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2017-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
+ * Copyright (c) 2017-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
* @author David Sehnal <david.sehnal@gmail.com>
@@ -192,7 +192,7 @@ export const ProteinTerminusComponentTypeNames = new Set([
'L-PEPTIDE NH3 AMINO TERMINUS', 'L-PEPTIDE COOH CARBOXY TERMINUS'
]);
-/** Chemical component type names for pepdite-like protein */
+/** Chemical component type names for peptide-like protein */
export const OtherProteinComponentTypeNames = new Set([
'PEPTIDE LINKING', 'PEPTIDE-LIKE',
]);
@@ -416,6 +416,8 @@ export function getEntitySubtype(compId: string, compType: string): EntitySubtyp
return 'ion';
} else if (LipidComponentTypeNames.has(compType) || LipidNames.has(compId)) {
return 'lipid';
+ } else if (OtherProteinComponentTypeNames.has(compType)) {
+ return 'peptide-like';
} else {
return 'other';
}
diff --git a/src/mol-plugin-state/helpers/structure-selection-query.ts b/src/mol-plugin-state/helpers/structure-selection-query.ts
index 1a63347f7..a12ba0162 100644
--- a/src/mol-plugin-state/helpers/structure-selection-query.ts
+++ b/src/mol-plugin-state/helpers/structure-selection-query.ts
@@ -92,7 +92,7 @@ const polymer = StructureSelectionQuery('Polymer', MS.struct.modifier.union([
'entity-test': MS.core.logic.and([
MS.core.rel.eq([MS.ammp('entityType'), 'polymer']),
MS.core.str.match([
- MS.re('(polypeptide|cyclic-pseudo-peptide|nucleotide|peptide nucleic acid)', 'i'),
+ MS.re('(polypeptide|cyclic-pseudo-peptide|peptide-like|nucleotide|peptide nucleic acid)', 'i'),
MS.ammp('entitySubtype')
])
])
@@ -122,7 +122,7 @@ const trace = StructureSelectionQuery('Trace', MS.struct.modifier.union([
const _proteinEntityTest = MS.core.logic.and([
MS.core.rel.eq([MS.ammp('entityType'), 'polymer']),
MS.core.str.match([
- MS.re('(polypeptide|cyclic-pseudo-peptide)', 'i'),
+ MS.re('(polypeptide|cyclic-pseudo-peptide|peptide-like)', 'i'),
MS.ammp('entitySubtype')
])
]);
--
GitLab