Molecule Similarity Calculation

SkillDev tools

Calculate both Tanimoto similarities and the count of shared structural fragments between a target molecule and a list of candidate molecules via Morgan fingerprints.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Molecule Similarity Calculation skill

What this skill tells your AI

The instructions your AI receives, as published by internscience/molclaw in skills/L1_tools/molclaw-mol-similarity/SKILL.md and read by ahel’s review.

Note:

  • Local files are not directly accessible by the server. Please upload them to the server using molclaw-file-transfer before execution.
  • For PDB file inputs, it is recommended to preprocess them using molclaw-pdbfixer before execution.
  • Please refer to skill molclaw-scp-server to complete tool invocation.

Scene 1: Compute the Tanimoto similarities between a target molecule and a list of candidate molecules using Morgan fingerprints. Need to use the tool calculate_morgan_fingerprint_similarity.

The description of tool calculate_morgan_fingerprint_similarity.

Compute the Tanimoto similarities between a target molecule and a list of candidate molecules using Morgan fingerprints.
Args:
    target_smiles (str): SMILES string of the target molecule
    candidate_smiles_list (List[str]): List of candidate molecule SMILES strings
    radius (int): Required Morgan fingerprint radius (commonly 2)
    nBits (int): Required Morgan fingerprint vector bit count (commonly 2048)
Return:
    status (str): success/error
    msg (str): message
    similarities (List[dict]): List of dict, each containing the keys 'smiles' and 'score'.
        --smiles (str): A SMILES string of candidate_smiles_list
        --score (float): Similarity value between the candidate SMILES and the target SMILES

How to use tool calculate_morgan_fingerprint_similarity :

response = await client.session.call_tool(
    "calculate_morgan_fingerprint_similarity",
    arguments={
        "target_smiles": target_smiles,
        "candidate_smiles_list": candidate_smiles_list,
        "radius": radius,
        "nBits": nBits
    }
)
result = client.parse_result(response)
similarities = result["similarities"]

Scene 2: Compute the count of shared structural fragments between a target molecule and a list of candidate molecules using Morgan fingerprints. Need to use the tool calculate_common_fragments.

The description of tool calculate_common_fragments.

Compute the count of shared structural fragments between a target molecule and a list of candidate molecules using Morgan fingerprints.
Args:
    target_smiles (str): SMILES string of the target molecule
    candidate_smiles_list (List[str]): List of candidate molecule SMILES strings
    radius (int): Required Morgan fingerprint radius (commonly 2)
Return:
    status (str): success/error
    msg (str): message
    fragments_info (List[dict]): List of dict, each containing the keys 'smiles' and 'common_fragment_count'.
        --smiles (str): A SMILES string of candidate_smiles_list
        --common_fragment_count (float): Number of structural fragments shared between the candidate SMILES and the target SMILES

How to use tool calculate_common_fragments :

response = await client.session.call_tool(
    "calculate_common_fragments",
    arguments={
        "target_smiles": target_smiles,
        "candidate_smiles_list": candidate_smiles_list,
        "radius": radius
    }
)
result = client.parse_result(response)
fragments_info = result["fragments_info"]

Signals

GitHub stars
33
Forks
3
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
molclaw-mol-similarity
Source
github.com/internscience/molclaw