From 329e73c35ef61940035d4f2f6137095dd0020919 Mon Sep 17 00:00:00 2001 From: David Sehnal <david.sehnal@gmail.com> Date: Sat, 11 Aug 2018 18:15:12 +0200 Subject: [PATCH] CIF exporter valueKind for atom_site.label_seq_id --- .../structure/export/categories/atom_site.ts | 12 +++++++++--- .../structure/model/properties/atomic/hierarchy.ts | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mol-model/structure/export/categories/atom_site.ts b/src/mol-model/structure/export/categories/atom_site.ts index b7ac6bd28..661e00dbd 100644 --- a/src/mol-model/structure/export/categories/atom_site.ts +++ b/src/mol-model/structure/export/categories/atom_site.ts @@ -12,15 +12,21 @@ import CifField = CifWriter.Field import CifCategory = CifWriter.Category import E = CifWriter.Encodings -const atom_site_fields: CifField<StructureElement>[] = [ +const atom_site_fields: CifField<StructureElement, Structure>[] = [ CifField.str('group_PDB', P.residue.group_PDB), CifField.index('id'), CifField.str('type_symbol', P.atom.type_symbol as any), CifField.str('label_atom_id', P.atom.label_atom_id), - CifField.str('label_alt_id', P.atom.label_alt_id), CifField.str('label_comp_id', P.residue.label_comp_id), - CifField.int('label_seq_id', P.residue.label_seq_id, { encoder: E.deltaRLE }), + CifField.int('label_seq_id', P.residue.label_seq_id, { + encoder: E.deltaRLE, + valueKind: (k, d) => { + const m = k.unit.model; + return m.atomicHierarchy.residues.label_seq_id.valueKind(m.atomicHierarchy.residueAtomSegments.index[k.element]); + } + }), + CifField.str('label_alt_id', P.atom.label_alt_id), CifField.str('pdbx_PDB_ins_code', P.residue.pdbx_PDB_ins_code), CifField.str('label_asym_id', P.chain.label_asym_id), diff --git a/src/mol-model/structure/model/properties/atomic/hierarchy.ts b/src/mol-model/structure/model/properties/atomic/hierarchy.ts index d4db8be33..6cd0d6bf5 100644 --- a/src/mol-model/structure/model/properties/atomic/hierarchy.ts +++ b/src/mol-model/structure/model/properties/atomic/hierarchy.ts @@ -29,7 +29,7 @@ export const ResiduesSchema = { auth_comp_id: mmCIF.atom_site.auth_comp_id, label_seq_id: mmCIF.atom_site.label_seq_id, auth_seq_id: mmCIF.atom_site.auth_seq_id, - pdbx_PDB_ins_code: mmCIF.atom_site.pdbx_PDB_ins_code + pdbx_PDB_ins_code: mmCIF.atom_site.pdbx_PDB_ins_code, }; export type ResiduesSchema = typeof ResiduesSchema export interface Residues extends Table<ResiduesSchema> { } -- GitLab