From f6be30ba8a5a12a70a02523d2d568dbfc4f2c8d2 Mon Sep 17 00:00:00 2001 From: David Sehnal <david.sehnal@gmail.com> Date: Sat, 11 Aug 2018 22:20:40 +0200 Subject: [PATCH] ModelPropertyDescriptor.cifExport is now optional --- src/mol-model-props/pdbe/structure-quality-report.ts | 7 ++++--- src/mol-model/structure/export/mmcif.ts | 2 ++ .../structure/model/properties/custom/descriptor.ts | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/mol-model-props/pdbe/structure-quality-report.ts b/src/mol-model-props/pdbe/structure-quality-report.ts index 4d88557fd..4a02a66b2 100644 --- a/src/mol-model-props/pdbe/structure-quality-report.ts +++ b/src/mol-model-props/pdbe/structure-quality-report.ts @@ -20,7 +20,7 @@ import Type from 'mol-script/language/type'; type IssueMap = ResidueCustomProperty<string[]> -const _Descriptor: ModelPropertyDescriptor = { +const _Descriptor = ModelPropertyDescriptor({ isStatic: true, name: 'structure_quality_report', cifExport: { @@ -41,9 +41,10 @@ const _Descriptor: ModelPropertyDescriptor = { }, symbols: { issueCount: QuerySymbolRuntime.Dynamic(CustomPropSymbol('pdbe', 'structure-quality.issue-count', Type.Num), - ctx => StructureQualityReport.getIssues(ctx.element).length) + ctx => StructureQualityReport.getIssues(ctx.element).length), + // TODO: add (hasIssue :: IssueType(extends string) -> boolean) symbol } -} +}) type ExportCtx = ResidueCustomProperty.ExportCtx<string[]> const _structure_quality_report_issues_fields: CifField<number, ExportCtx>[] = [ diff --git a/src/mol-model/structure/export/mmcif.ts b/src/mol-model/structure/export/mmcif.ts index a527b835b..428bcbee3 100644 --- a/src/mol-model/structure/export/mmcif.ts +++ b/src/mol-model/structure/export/mmcif.ts @@ -98,6 +98,8 @@ export function encode_mmCIF_categories(encoder: CifWriter.Encoder, structure: S encoder.writeCategory(cat, ctx); } for (const customProp of model.customProperties.all) { + if (!customProp.cifExport || customProp.cifExport.categories.length === 0) continue; + const prefix = customProp.cifExport.prefix; const cats = customProp.cifExport.categories; for (const cat of cats) { diff --git a/src/mol-model/structure/model/properties/custom/descriptor.ts b/src/mol-model/structure/model/properties/custom/descriptor.ts index d83a32cca..061f376bc 100644 --- a/src/mol-model/structure/model/properties/custom/descriptor.ts +++ b/src/mol-model/structure/model/properties/custom/descriptor.ts @@ -12,7 +12,7 @@ interface ModelPropertyDescriptor<Symbols extends { [name: string]: QuerySymbolR readonly isStatic: boolean, readonly name: string, - cifExport: { + cifExport?: { // Prefix enforced during export. prefix: string, categories: CifWriter.Category<CifExportContext>[] -- GitLab