diff --git a/src/mol-model/structure/structure/properties.ts b/src/mol-model/structure/structure/properties.ts
index 5cca0f63d1ac0c0b0bac11958b2bb3a343df7312..067a95704ef1d6a4f0cdde838a8522a348f59628 100644
--- a/src/mol-model/structure/structure/properties.ts
+++ b/src/mol-model/structure/structure/properties.ts
@@ -100,6 +100,7 @@ const residue = {
         const id = compId(l)
         return l.unit.model.properties.modifiedResidues.parentId.get(id) || id
     }),
+    isNonStandard: p(l => !Unit.isAtomic(l.unit) ? notAtomic() : l.unit.model.properties.chemicalComponentMap.get(compId(l))!.mon_nstd_flag[0] !== 'y'),
     hasMicroheterogeneity: p(hasMicroheterogeneity),
     microheterogeneityCompIds: p(microheterogeneityCompIds),
     secondary_structure_type: p(l => !Unit.isAtomic(l.unit) ? notAtomic() : l.unit.model.properties.secondaryStructure.type[l.unit.residueIndex[l.element]]),
diff --git a/src/mol-plugin/util/structure-representation-helper.ts b/src/mol-plugin/util/structure-representation-helper.ts
index c34f32dd9f5c81ee792911d5922e90e510f4f397..b84bce22b88180436c3113b8b3b8f9e8537cd058 100644
--- a/src/mol-plugin/util/structure-representation-helper.ts
+++ b/src/mol-plugin/util/structure-representation-helper.ts
@@ -205,6 +205,7 @@ async function polymerAndLigand(r: StructureRepresentationHelper) {
         MS.struct.combinator.merge([
             Q.ligandPlusConnected.expression,
             Q.branchedConnectedOnly.expression,
+            Q.nonStandardPolymer.expression,
             Q.water.expression
         ])
     ]))
diff --git a/src/mol-plugin/util/structure-selection-helper.ts b/src/mol-plugin/util/structure-selection-helper.ts
index 29ff946781cf9fd37641c585574e0c5000950457..59dab706f2098cd563e1a30bf905bdcc8629be06 100644
--- a/src/mol-plugin/util/structure-selection-helper.ts
+++ b/src/mol-plugin/util/structure-selection-helper.ts
@@ -188,6 +188,14 @@ const modified = StructureSelectionQuery('Modified Residues', MS.struct.modifier
     })
 ]))
 
+const nonStandardPolymer = StructureSelectionQuery('Non-standard Residues in Polymers', 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.ammp('isNonStandard')
+    })
+]))
+
 const coarse = StructureSelectionQuery('Coarse Elements', MS.struct.modifier.union([
     MS.struct.generator.atomGroups({
         'chain-test': MS.core.set.has([
@@ -230,6 +238,7 @@ export const StructureSelectionQueries = {
     ligandConnectedOnly,
     connectedOnly,
     modified,
+    nonStandardPolymer,
     coarse,
     surroundings,
     complement,
diff --git a/src/mol-script/language/symbol-table/structure-query.ts b/src/mol-script/language/symbol-table/structure-query.ts
index d9d079244051bc0169c84b93258f45b43aa21d97..fbe722d3b76245794b99bedb63d76c1d9cc1bdf4 100644
--- a/src/mol-script/language/symbol-table/structure-query.ts
+++ b/src/mol-script/language/symbol-table/structure-query.ts
@@ -303,8 +303,9 @@ const atomProperty = {
 
         secondaryStructureKey: atomProp(Type.AnyValue, 'Unique value for each secondary structure element.'),
         secondaryStructureFlags: atomProp(Types.SecondaryStructureFlags),
-        isModified: atomProp(Type.Bool, 'True if the atom bolongs to modification of a standard residue.'),
+        isModified: atomProp(Type.Bool, 'True if the atom belongs to modification of a standard residue.'),
         modifiedParentName: atomProp(Type.Str, `'3-letter' code of the modifed parent residue.`),
+        isNonStandard: atomProp(Type.Bool, 'True if this is a non-standard residue.'),
         chemCompType: atomProp(Type.Str, `Type of the chemical component as defined in mmCIF.`),
     }
 }
diff --git a/src/mol-script/runtime/query/table.ts b/src/mol-script/runtime/query/table.ts
index 3f59a9da7d68a2efd8ed873775063f7d7d5ad9ca..d16b114cbc9ae5b5644f6b6c39f986fa209b9f2c 100644
--- a/src/mol-script/runtime/query/table.ts
+++ b/src/mol-script/runtime/query/table.ts
@@ -314,6 +314,7 @@ const symbols = [
 
     D(MolScript.structureQuery.atomProperty.macromolecular.isModified, atomProp(StructureProperties.residue.isModified)),
     D(MolScript.structureQuery.atomProperty.macromolecular.modifiedParentName, atomProp(StructureProperties.residue.modifiedParentName)),
+    D(MolScript.structureQuery.atomProperty.macromolecular.isNonStandard, atomProp(StructureProperties.residue.isNonStandard)),
     D(MolScript.structureQuery.atomProperty.macromolecular.secondaryStructureKey, atomProp(StructureProperties.residue.secondary_structure_key)),
     D(MolScript.structureQuery.atomProperty.macromolecular.secondaryStructureFlags, atomProp(StructureProperties.residue.secondary_structure_type)),
     D(MolScript.structureQuery.atomProperty.macromolecular.chemCompType, atomProp(StructureProperties.residue.chem_comp_type)),