message: show non-polymer residues of polymer entities as ball&stick
diff: @@ -112,6 +112,8 @@ const branchedConnectedOnly = MS.struct.modifier.union([
  ])
  const ligand = MS.struct.modifier.union([
  + MS.struct.combinator.merge([
  + MS.struct.modifier.union([
  MS.struct.generator.atomGroups({
  'entity-test': MS.core.logic.and([
  MS.core.rel.eq([MS.ammp('entityType'), 'non-polymer']),
  @@ -125,6 +127,18 @@ const ligand = MS.struct.modifier.union([
  MS.core.str.match([MS.re('saccharide', 'i'), MS.ammp('chemCompType')])
  ])
  })
  + ]),
  + // this is to get non-polymer components in polymer entities, e.g. PXZ in 4HIV
  + // one option to optimize this is to expose `_entity_poly.nstd_monomer` in molql
  + // and only check those entities residue by residue
  + MS.struct.modifier.union([
  + MS.struct.generator.atomGroups({
  + 'entity-test': MS.core.rel.eq([MS.ammp('entityType'), 'polymer']),
  + 'chain-test': MS.core.rel.eq([MS.ammp('objectPrimitive'), 'atomistic']),
  + 'residue-test': MS.core.str.match([MS.re('non-polymer', 'i'), MS.ammp('chemCompType')])
  + })
  + ])
  + ]),
  ])
  // don't innclude branched entities as they have their own link representation
  