diff --git a/src/servers/model/server/api.ts b/src/servers/model/server/api.ts index ac0e7147cf6e0eb038e0d77aaf2a91b8baf61317..7744f348924647f67cbc6f84c062d4395de9f8cb 100644 --- a/src/servers/model/server/api.ts +++ b/src/servers/model/server/api.ts @@ -126,6 +126,16 @@ const QueryMap = { }, params: [ AtomSiteTestParams, RadiusParam ] }), + 'residueSurroundings': Q<{ atom_site: AtomSiteSchema, radius: number }>({ + niceName: 'Residue Surroundings', + description: 'Identifies all residues within the given radius from the source residue.', + query(p) { + const tests = getAtomsTests(p.atom_site); + const center = Queries.combinators.merge(tests.map(test => Queries.generators.atoms(test))); + return Queries.modifiers.includeSurroundings(center, { radius: p.radius, wholeResidues: true }); + }, + params: [ AtomSiteTestParams, RadiusParam ] + }) }; export type QueryName = keyof typeof QueryMap