diff --git a/src/mol-script/transpilers/rasmol/keywords.ts b/src/mol-script/transpilers/rasmol/keywords.ts index 91c3906e62ea5badd4d7c3372bf2e37357b2ca69..f56341c448a396e8b38d8d62323e560c21c70835 100644 --- a/src/mol-script/transpilers/rasmol/keywords.ts +++ b/src/mol-script/transpilers/rasmol/keywords.ts @@ -20,18 +20,21 @@ function nucleicExpr() { return B.struct.combinator.merge([ B.struct.generator.atomGroups({ 'residue-test': B.core.set.has([ - B.set(...['G', 'C', 'A', 'T', 'U', 'I', 'DG', 'DC', 'DA', 'DT', 'DU', 'DI', '+G', '+C', '+A', '+T', '+U', '+I']), + B.core.type.set(['G', 'C', 'A', 'T', 'U', 'I', 'DG', 'DC', 'DA', 'DT', 'DU', 'DI', '+G', '+C', '+A', '+T', '+U', '+I']), B.ammp('label_comp_id') ]) }), B.struct.filter.pick({ - 0: B.struct.generator.atomGroups({ + 0: B.struct.generator.atomGroups({ 'group-by': B.ammp('residueKey') - }), - test: B.core.logic.and([ - B.core.rel.eq([B.struct.atomSet.atomCount(), 1]), - B.core.rel.eq([B.ammp('label_atom_id'), B.atomName('P')]), - ]) + }), + test: B.core.logic.and([ + B.core.set.isSubset([ + // B.core.type.set([ 'P', 'O1P', 'O2P' ]), + h.atomNameSet(['P']), + B.ammpSet('label_atom_id') + ]), + ]) }), B.struct.filter.pick({ 0: B.struct.generator.atomGroups({ diff --git a/src/mol-script/transpilers/rasmol/parser.ts b/src/mol-script/transpilers/rasmol/parser.ts index 58d0bf978f774a89722842e3d7693771e55c180f..822fcec70d1dc3a15999a9ee8166234708ed0849 100644 --- a/src/mol-script/transpilers/rasmol/parser.ts +++ b/src/mol-script/transpilers/rasmol/parser.ts @@ -125,7 +125,7 @@ const lang = P.MonadicParser.createLanguage({ Expression: function (r: any) { return P.MonadicParser.alt( - r.NamedAtomProperties, +// r.NamedAtomProperties, r.Keywords, r.Resno.lookahead(P.MonadicParser.regexp(/\s*(?!(LIKE|>=|<=|!=|[:^%/.=><]))/i)).map((x: any) => B.struct.generator.atomGroups({ 'residue-test': B.core.rel.eq([B.ammp('auth_seq_id'), x])