Molecular Fingerprints
Goal
To compute circular Morgan fingerprints (ECFP-style; default ECFP4 with radius=2) for a set of compounds, then calculate pairwise Tanimoto similarity for library comparison. Optionally perform Butina clustering for diversity analysis and generate a similarity heatmap for small sets.
This skill is commonly used for hit expansion, SAR triage, compound library diversity assessment, and applicability-domain style analysis.
Instructions
The drugdisc MCP server provides a compute_molecular_fingerprints tool that can be called directly:
Basic usage with SMILES file:
mcp_drugdisc_compute_molecular_fingerprints(
smiles_file="compounds.smi",
radius=2,
fp_size=2048,
compute_similarity=True,
output_file="similarity.json"
)
With Butina clustering:
mcp_drugdisc_compute_molecular_fingerprints(
smiles_file="library.smi",
cluster=True,
cluster_cutoff=0.7,
output_file="clustered.json"
)
With similarity heatmap (small molecule sets, ≤250 compounds):
mcp_drugdisc_compute_molecular_fingerprints(
smiles_file="hits.smi",
save_heatmap="heatmap.png",
output_file="similarity.json"
)
Feature Morgan (FCFP-like) fingerprints:
mcp_drugdisc_compute_molecular_fingerprints(
smiles_file="compounds.smi",
use_features=True,
output_file="fcfp_similarity.json"
)
Chirality-aware fingerprints:
mcp_drugdisc_compute_molecular_fingerprints(
smiles_file="enantiomers.smi",
use_chirality=True,
output_file="chiral_sim.json"
)
Examples
SMILES file format
CCO ethanol
CCCO propanol
c1ccccc1 benzene
c1ccc(cc1)O phenol
Basic similarity analysis
mcp_drugdisc_compute_molecular_fingerprints(
smiles_file=".agents/skills/drug-molecular-fingerprints/examples/compounds.smi",
output_file="similarity.json"
)
Diversity-based clustering for library selection
mcp_drugdisc_compute_molecular_fingerprints(
smiles_file="screening_library.smi",
cluster=True,
cluster_cutoff=0.5,
output_file="diverse_clusters.json"
)
Output Format
The tool returns a JSON with:
n_compounds: Total number of input compoundsn_valid: Number of successfully processed compoundscompounds: List of compound info (SMILES, name, validity, fingerprint bits)similarity_matrix: Pairwise Tanimoto similarity (ifcompute_similarity=True)clusters: Butina clustering results (ifcluster=True)
Constraints
- MCP Server: Requires
drugdiscMCP server - Dependencies: RDKit (Chem, rdFingerprintGenerator, DataStructs, ML.Cluster.Butina)
- SMILES file format: One molecule per line,
SMILES[whitespace]NAME(NAME optional),#for comments - Fingerprint defaults: Morgan radius=2 (ECFP4-like), 2048 bits
- Heatmap rendering: Limited to ≤250 compounds due to memory constraints
- Similarity metric: Tanimoto coefficient (Jaccard index for bit vectors)
- Clustering algorithm: Butina (leader-picker style); cutoff = similarity threshold (not distance)
Author: Matthew Cox Contact: GitHub @mcox3406
Scan to join WeChat group