diff --git a/src/mol-model/structure/export/categories/atom_site.ts b/src/mol-model/structure/export/categories/atom_site.ts index b7ac6bd287866f5490afe25e91fd2fb9d537271a..661e00dbd300a3501f240061c6ebae620e6f6175 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 d4db8be333386f1306dbbc422011262412819842..6cd0d6bf59519f0996f397d821d1fb09575f922b 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> { }