Skip to main content
Glama

reinvent_analyze_molecules

Evaluate SMILES for drug-likeness, diversity, and alerts. Generates analysis report, per-molecule metrics, and optional plots, including reference-based similarity and novelty.

Instructions

Evaluate a set of generated SMILES across multiple quality dimensions.

Designed for raw sampling output (CSV or .smi) from reinvent_sampling, but works with any SMILES file. Writes an analysis_report.json and per_molecule.csv to disk and returns a structured summary to the agent.

Evaluators available: Always: validity, physicochemical, druglikeness, scaffold, alerts, diversity With ref: similarity, novelty, coverage (auto-skipped if no ref_smiles_file)

physicochemical covers: MW, LogP, TPSA, HBD, HBA, rotatable bonds, num atoms (incl. H), num heavy atoms, num heteroatoms, fraction heteroatoms, num rings, num aromatic rings, num aliphatic rings. druglikeness covers: QED, Lipinski RO5, Veber rules, SA score (if available). scaffold: Bemis-Murcko scaffold count and diversity. alerts: PAINS and Brenk structural alert rates. diversity: internal diversity (1 − mean pairwise Tanimoto, ECFP4). similarity: nearest-neighbour Tanimoto to reference set. novelty: % generated SMILES not present in reference (exact canonical match). coverage: % reference molecules with ≥1 generated neighbour at Tanimoto ≥ 0.4.

When plots=True, generates PNGs: physicochemical_dist.png — MW/LogP/TPSA/HBD/HBA/QED(/SA) histograms atom_profile.png — num atoms/heavy/hetero/frac_het/rotbonds/rings atom_types.png — element frequency bar chart (C/N/O/S/halogens/…) ring_profile.png — total/aromatic/aliphatic ring histograms similarity_hist.png — NN Tanimoto to ref (if ref provided) umap_projection.png — ECFP4 UMAP; requires umap-learn

Args: smiles_file: Path to sampling CSV or .smi file (SMILES col auto-detected). ref_smiles_file: Optional reference / known-active SMILES file. evaluators: List of evaluator names, or "all" (default). plots: Generate PNG plots (default True). Set False to skip all visualisation. color_by: Property to colour generated UMAP points (viridis). Any column in per_molecule.csv: "qed", "mw", "sa_score", "logp", "tpsa", etc. Default None = generated blue / reference red. output_dir: Where to write outputs (default: _analysis/ next to input).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
plotsNo
color_byNo
evaluatorsNoall
output_dirNo
smiles_fileYes
ref_smiles_fileNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description clearly discloses side effects: writes analysis_report.json and per_molecule.csv to disk, and generates PNG plots when plots=True. It also mentions auto-skipping of evaluators without a reference file, which is a behavioral nuance. No annotations are provided, so the description carries the full burden, and it does so thoroughly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear opening, evaluator breakdown, physicochemical details, and an Args list. While it is lengthy, most details add value (e.g., listing exact metrics). Some evaluator metric lists could be condensed, but the overall structure is logical and front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 6 parameters and no output schema, the description covers nearly all relevant context: input formats, evaluators, metrics, plot outputs, defaults, and auto-skip behavior. It does not explicitly describe the structure of the returned summary, but this is a minor gap given the abundant detail elsewhere.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate entirely. It provides detailed meaning for every parameter in the Args section, including type, purpose, defaults, and examples (e.g., color_by lists 'qed', 'mw', etc.; output_dir default is shown). This fully bridges the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource combination: 'Evaluate a set of generated SMILES across multiple quality dimensions.' It clearly distinguishes this tool from siblings by noting it is designed for raw sampling output from reinvent_sampling, while other siblings handle sampling, RL, validation, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('Designed for raw sampling output from reinvent_sampling') and clarifies it works with any SMILES file. It also notes auto-skipping of reference-based evaluators if no reference file is provided, which guides usage. However, it does not explicitly state when not to use it or name alternative analysis tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pregHosh/Solitarius-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server