Browse Source

group by query

JonStargaryen 4 years ago
parent
commit
61390cb64f
1 changed files with 7 additions and 2 deletions
  1. 7 2
      src/servers/model/server/api.ts

+ 7 - 2
src/servers/model/server/api.ts

@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Queries, Structure, StructureQuery, StructureSymmetry } from '../../../mol-model/structure';
+import { Queries, Structure, StructureQuery, StructureSymmetry, StructureProperties } from '../../../mol-model/structure';
 import { getAtomsTests } from '../query/atoms';
 import { CifWriter } from '../../../mol-io/writer/cif';
 import { QuerySchemas } from '../query/schemas';
@@ -133,7 +133,12 @@ const QueryMap = {
         niceName: 'Ligand',
         description: 'Coordinates of the first group satisfying the given criteria.',
         query: p => {
-            return Queries.combinators.merge(getAtomsTests(p.atom_site).map(test => Queries.generators.atoms(test)));
+            const tests = getAtomsTests(p.atom_site);
+            const ligands = Queries.combinators.merge(tests.map(test => Queries.generators.atoms({
+                ...test,
+                groupBy: (ctx) => StructureProperties.residue.key(ctx.element)
+            })));
+            return Queries.filters.first(ligands);
         },
         jsonParams: [ AtomSiteTestJsonParam ],
         restParams: AtomSiteTestRestParams