Explorar el Código

refined rasmol keywords

yakomaxa hace 2 años
padre
commit
52239f71cd

+ 10 - 7
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({

+ 1 - 1
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])