agentsclimarketplace

Mmpa

Skill Kdevos12/ALKYL/skills/mmpa

Claude Plugin for CompChem , Drug Discovery & Organic Chemistry reasoning

Install
npx -y skills add Kdevos12/ALKYL --skill mmpa

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when performing Matched Molecular Pair Analysis (MMPA) for SAR extraction, property cliff identification, bioisostere discovery, or analogue generation. Covers MMP theory and fragmentation schemes, mmpdb 4 CLI workflow (fragment/index/loadprops/transform), RDKit programmatic MMP generation, statistical SAR delta analysis, and applying transforms to generate focused libraries.

SKILL.md

5.6 KB, as published. Nobody here has run it

Matched Molecular Pair Analysis (MMPA)

MMPA identifies pairs of molecules (A, B) that differ by a single structural transformation (R₁ → R₂) at one site while sharing an identical molecular context. Aggregating ΔProperty across hundreds of such pairs extracts robust, context-free SAR rules.

When to Use This Skill

  • Extract SAR rules from a compound dataset (e.g., which H→F swap improves metabolic stability?)
  • Identify activity cliffs (large ΔActivity for small structural change)
  • Find bioisosteric replacements supported by experimental data
  • Predict property changes for a proposed structural modification
  • Generate analogue libraries from a lead compound using proven transforms
  • Prioritize which substituent to try next based on MMPA-derived rules

Core Concept

Molecule A:  [Context]-[R₁]   →   transform: R₁ → R₂
Molecule B:  [Context]-[R₂]

ΔProperty = P(B) - P(A)

SAR rule: "R₁ → R₂ causes ΔlogP = +0.45 ± 0.12 (N=18 pairs)"

Fragmentation (single-cut):

  • Variable part: the part that changes between A and B
  • Context: the shared skeleton (everything outside the cut bond)
  • Represented via SMIRKS: [R₁:1]>>[R₂:1] at attachment point

Double-cut: both variable parts and a central linker can vary — rarer, more specific.

Quick Start — mmpdb 4

pip install mmpdb
# or: conda install -c conda-forge mmpdb

# Full pipeline: SMILES file → SAR rules
mmpdb fragment compounds.smi -o fragments.h5
mmpdb index fragments.h5 -o mmpdb.db

# Load experimental properties (CSV with: smiles, id, prop1, prop2)
mmpdb loadprops mmpdb.db properties.csv

# Query: what transforms improve LogD?
mmpdb transform --smiles "c1ccc(cc1)C(=O)O" mmpdb.db \
    --property LogD \
    --min-pairs 3 \
    -o transform_results.csv

# Analyze SAR rules for a property
mmpdb analyze mmpdb.db --property pIC50 -o sar_rules.csv

Quick Start — Programmatic (RDKit + mmpdb Python API)

import mmpdblib
from mmpdblib import do_fragment, do_index

# Fragment a SMILES list programmatically
from mmpdblib.analysis_algorithms import find_mmps

smiles_dict = {
    "mol_A": "c1ccc(CC)cc1",   # ethylbenzene
    "mol_B": "c1ccc(CF)cc1",   # fluoromethylbenzene
    "mol_C": "c1ccc(CCl)cc1",  # chloromethylbenzene
}

# Find matched molecular pairs
pairs = find_mmps(list(smiles_dict.values()), list(smiles_dict.keys()))
# pairs: list of (id1, id2, transform_SMIRKS, context_SMILES)

Router — What to Read

TaskReference
MMP definition, fragmentation theory, SMIRKS transforms, property cliffs, statistical frameworkreferences/mmpa-theory.md
mmpdb 4 CLI: fragment → index → loadprops → transform → analyze, full SAR workflowreferences/mmpdb-workflow.md
RDKit programmatic MMP generation: bond cutting, attachment points, pair enumerationreferences/rdkit-fragmentation.md
SAR delta statistics, activity cliff detection, bioisostere tables, visualizationreferences/sar-analysis.md
Applying transforms to query molecule, analogue library generation, integration with design toolsreferences/transform-application.md

Software Stack

PackageInstallRole
mmpdbpip install mmpdbCore MMPA engine (AZ, Apache 2.0)
rdkitconda/pipFragmentation, SMILES parsing, visualization
pandaspip install pandasSAR table analysis
seaborn / matplotlibpipActivity cliff heatmaps, ΔP distributions
mols2gridpip install mols2gridInteractive molecule grid visualization

Key Concepts

TermDefinition
MMPTwo molecules differing by exactly one transformation at one site
TransformSMIRKS notation: [*:1]>>[*:1] where [*:1] = attachment point
Variable partThe fragment that differs between the two molecules
ContextShared molecular scaffold (everything outside the cut bond)
ΔPropertyP(B) − P(A) for any measured property
SAR ruleA transform + aggregated ΔP statistics across N≥3 pairs
Activity cliffLarge

Key Pitfalls

  • mmpdb 2 vs mmpdb 4: many tutorials use old API (mmpdb.make_index); v4 uses CLI subcommands (mmpdb fragment/index/loadprops)
  • Single-cut only: mmpdb default cuts one bond; avoid multi-cut for first pass (combinatorial explosion)
  • Variable part size limit: default max_heavies=10 for variable part; increase with --max-variable-heavies 13 for larger changes
  • N < 3 pairs → unreliable rule: always filter output to num_pairs >= 3
  • Chirality: mmpdb ignores chirality by default; use --stereo flag if needed
  • Property units: ΔlogP and ΔpIC50 are in log units; ΔCl (clearance) in mL/min/kg — always report units

Related Skills

  • rdkit — SMILES I/O, substructure matching, property calculation (QED, LogP)
  • generative-design — MMPA-guided focused library generation (apply transforms at scale)
  • pharmacophore — combine MMPA bioisostere rules with pharmacophore constraints
  • docking — score MMPA-generated analogues via Vina/Gnina
  • scientific-skills:chembl-database — ChEMBL as MMPA input dataset for literature SAR mining

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.