Quellcode durchsuchen

fix Props.residue.label_comp_id for micro het

Alexander Rose vor 5 Jahren
Ursprung
Commit
244a678ab7
1 geänderte Dateien mit 7 neuen und 1 gelöschten Zeilen
  1. 7 1
      src/mol-model/structure/structure/properties.ts

+ 7 - 1
src/mol-model/structure/structure/properties.ts

@@ -53,10 +53,16 @@ const atom = {
     vdw_radius: p(l => !Unit.isAtomic(l.unit) ? notAtomic() : VdwRadius(l.unit.model.atomicHierarchy.atoms.type_symbol.value(l.element))),
 }
 
-function compId(l: StructureElement.Location) {
+function _compId(l: StructureElement.Location) {
     return !Unit.isAtomic(l.unit) ? notAtomic() : l.unit.model.atomicHierarchy.residues.label_comp_id.value(l.unit.residueIndex[l.element])
 }
 
+function compId(l: StructureElement.Location) {
+    if (!Unit.isAtomic(l.unit)) notAtomic()
+    if (!hasMicroheterogeneity(l)) return _compId(l)
+    return l.unit.model.sourceData.data.atom_site.label_comp_id.value(l.element)
+}
+
 function seqId(l: StructureElement.Location) {
     return !Unit.isAtomic(l.unit) ? notAtomic() : l.unit.model.atomicHierarchy.residues.label_seq_id.value(l.unit.residueIndex[l.element])
 }