Agent skill

bio-substructure-search

Searches molecular libraries for substructure matches using SMARTS patterns with explicit handling of recursive SMARTS, ring membership, aromaticity dialect, vector binding, atom map indices, and reactive/PAINS/REOS/Brenk/Aldridge filter catalogs. Use when filtering compounds by pharmacophore features, functional groups, scaffold matches, or screening for assay-interference / structural alerts.

BioTender-maxgithub.com/BioTender-maxGitHub ↗
claude-codeships scriptsNOASSERTION
Install
npx skills add BioTender-max/awesome-bio-agent-skills --skill substructure-search --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 3
SKILL.md size: 15 KB
Bundled scripts: yes
Path: skills/bioskills/substructure-search/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 135
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

## Version Compatibility Reference examples tested with: RDKit 2024.09+. SMARTS dialect follows Daylight specification with RDKit extensions. Before using code patterns, verify installed versions match. If versions differ: - Python: `pip show rdkit` then `help(rdkit.Chem.MolFromSmarts)` to check signatures If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying. # Substructure Search Search molecular collections for structural patterns using SMARTS. The choice of SMARTS dialect, atom/bond matching mode, and structural-alert catalog determines whether the search is correctly capturing the intended chemistry. PAINS (Baell & Holloway 2010) is the most-cited but most-misunderstood filter -- it identifies patterns of assay interference, not "bad molecules". Knowing when to apply each catalog and how to interpret hits is essential. For SMARTS-based reactions (transforming matched substructures), see `chemoinformatics/reaction-enumeration`. For 3D pharmacophore matching, see `chemoinformatics/pharmacophore-modeling`. ## SMARTS Grammar Essentials | Token | Meaning | Example | |-------|----

What's inside
Steps it walks through
  1. Version Compatibility
  2. SMARTS Grammar Essentials
  3. Common SMARTS Patterns
  4. Basic Substructure Match
  5. Recursive SMARTS (key for postdoc-grade patterns)
  6. Structural-Alert Filter Catalogs
  7. When to Apply Each Filter
  8. PAINS Filter
  9. Reaction-Reactive Group Filter (custom)
  10. Library Filtering with Multiple Patterns
  11. Atom Map Indices in SMARTS
  12. Per-Tool Failure Modes
  13. PAINS -- false positive on natural product
  14. Aromaticity dialect mismatch
Ships with 2 files
  • examples/substructure_search.py
  • usage-guide.md
More from awesome-bio-agent-skills
All skills →
About this skill
What does the bio-substructure-search skill do?

Searches molecular libraries for substructure matches using SMARTS patterns with explicit handling of recursive SMARTS, ring membership, aromaticity dialect, vector binding, atom map indices, and reactive/PAINS/REOS/Brenk/Aldridge filter catalogs. Use when filtering compounds by pharmacophore features, functional groups, scaffold matches, or screening for assay-interference / structural alerts.

How do I install it?

Run `npx skills add BioTender-max/awesome-bio-agent-skills --skill substructure-search --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From BioTender-max/awesome-bio-agent-skills, a repository with 135 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going