From 52239f71cdcfe0d9d86786dabed142a083cf47f3 Mon Sep 17 00:00:00 2001 From: yakomaxa <47655565+yakomaxa@users.noreply.github.com> Date: Sat, 13 Aug 2022 11:20:41 +0900 Subject: [PATCH] refined rasmol keywords --- src/mol-script/transpilers/rasmol/keywords.ts | 17 ++++++++++------- src/mol-script/transpilers/rasmol/parser.ts | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/mol-script/transpilers/rasmol/keywords.ts b/src/mol-script/transpilers/rasmol/keywords.ts index 91c3906e6..f56341c44 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 58d0bf978..822fcec70 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]) -- GitLab