skills/pharmolix/openbiomed/iupac-name-identification-biot5

iupac-name-identification-biot5

SKILL.md

IUPAC Name Identification (BioT5)

This skill identifies the IUPAC name of a molecule using the BioT5 question answering model.

When to Use

  • User asks for the IUPAC name of a molecule
  • User provides a SMILES string and wants systematic nomenclature
  • User asks "What is the IUPAC name?" or "What's the systematic name?"

Workflow

Step 1: Get the Molecule

If user provides a molecule name (e.g., "aspirin"):

from open_biomed.tools.tool_registry import TOOLS

tool = TOOLS["molecule_name_request"]
result, message = tool.run(accession="aspirin")
molecule = result[0]  # Returns a list of molecules

If user provides a SMILES string:

from open_biomed.data import Molecule

molecule = Molecule.from_smiles("CC(=O)OC1=CC=CC=C1C(=O)O")

Step 2: Ask for IUPAC Name

Use the molecule question answering tool:

from open_biomed.data import Text
from open_biomed.tools.tool_registry import TOOLS

qa_tool = TOOLS["molecule_question_answering"]
question = Text.from_str("What's the IUPAC name of this molecule?")
result, message = qa_tool.run(molecule=molecule, text=question)
print(result)  # IUPAC name

Expected Outputs

Input Output Description
SMILES or molecule name IUPAC name string Systematic chemical nomenclature

Example Usage

Input: "What is the IUPAC name of aspirin?"

Workflow:

  1. Retrieve aspirin molecule from PubChem
  2. Ask BioT5: "What's the IUPAC name of this molecule?"
  3. Return the IUPAC name

Expected output: "2-acetyloxybenzoic acid" or similar systematic name

Model Options

The molecule_question_answering tool supports multiple models:

Model Description
biot5 (default) BioT5 model for biomedical QA
molt5 MolT5 model specialized for molecules

Error Handling

Molecule Not Found

Symptom: PubChem request fails for molecule name.

Solution: Ask user for SMILES string directly.

QA Model Fails

Symptom: No IUPAC name returned.

Solution:

  • Try alternative question phrasing
  • Use RDKit's MolToIUPACName as fallback:
from rdkit.Chem import MolToIUPACName
iupac = MolToIUPACName(molecule.rdmol)

Notes

  • IUPAC names generated by the model may not be the most standard form
  • For complex molecules, the model may provide simplified names
  • Cross-reference with PubChem or ChemDraw for verification
Weekly Installs
2
GitHub Stars
1.0K
First Seen
9 days ago
Installed on
trae-cn2
iflow-cli2
deepagents2
antigravity2
claude-code2
github-copilot2