Skip to main content
  1. ChemMCP Tools/

SideEffectPredictor (predict_side_effect)

Molecule Molecular Information Molecular Properties SMILES Neural Networks
Table of Contents
Version: 0.1.0 Last Update: 2025/06/05 MCP Support Python Calling Support
Predict whether a molecule can cause 20 different side effects, along with the probabilities of each side effect. The side effects are: (1) Blood and lymphatic system disorders; (2) Cardiac disorders; (3) Congenital, familial and genetic disorders; (4) Ear and labyrinth disorders; (5) Endocrine disorders; (6) Eye disorders; (7) Gastrointestinal disorders; (8) Hepatobiliary disorders; (9) Immune system disorders; (10) Metabolism and nutrition disorders; (11) Musculoskeletal and connective tissue disorders; (12) Neoplasms benign, malignant and unspecified (incl cysts and polyps); (13) Nervous system disorders; (14) Pregnancy, puerperium and perinatal conditions; (15) Psychiatric disorders; (16) Renal and urinary disorders; (17) Reproductive system and breast disorders; (18) Respiratory, thoracic and mediastinal disorders; (19) Skin and subcutaneous tissue disorders; (20) Vascular disorders.

Example

Input:

smiles: 'CC1=CC(C)=C(NC(=O)CN(CC(=O)O)CC(=O)O)C(C)=C1Br'

Text Input (used for the run_text function in the Python calling mode):

smiles: 'CC1=CC(C)=C(NC(=O)CN(CC(=O)O)CC(=O)O)C(C)=C1Br'

Output:

"""The probabilities of the compound to cause different side effects are as follows:Blood and lymphatic system disorders: 11.29%, which means it's unlikely to cause the side effect.
Cardiac disorders: 10.92%, which means it's unlikely to cause the side effect.
Congenital, familial and genetic disorders: 11.98%, which means it's unlikely to cause the side effect.
Ear and labyrinth disorders: 8.48%, which means it's unlikely to cause the side effect.
Endocrine disorders: 4.16%, which means it's unlikely to cause the side effect.
Eye disorders: 15.19%, which means it's unlikely to cause the side effect.
Gastrointestinal disorders: 57.00%, which means it's likely to cause the side effect.
Hepatobiliary disorders: 9.62%, which means it's unlikely to cause the side effect.
Immune system disorders: 10.14%, which means it's unlikely to cause the side effect.
Metabolism and nutrition disorders: 15.41%, which means it's unlikely to cause the side effect.
Musculoskeletal and connective tissue disorders: 10.77%, which means it's unlikely to cause the side effect.
Neoplasms benign, malignant and unspecified (incl cysts and polyps): 4.92%, which means it's unlikely to cause the side effect.
Nervous system disorders: 34.37%, which means it's unlikely to cause the side effect.
Pregnancy, puerperium and perinatal conditions: 3.32%, which means it's unlikely to cause the side effect.
Psychiatric disorders: 8.06%, which means it's unlikely to cause the side effect.
Renal and urinary disorders: 10.64%, which means it's unlikely to cause the side effect.
Reproductive system and breast disorders: 4.59%, which means it's unlikely to cause the side effect.
Respiratory, thoracic and mediastinal disorders: 16.48%, which means it's unlikely to cause the side effect.
Skin and subcutaneous tissue disorders: 53.97%, which means it's likely to cause the side effect.
Vascular disorders: 18.45%, which means it's unlikely to cause the side effect.
Note that the results are predicted by a neural network model and may not be accurate. You may use other tools or resources to obtain more reliable results if needed."""

Usage

The tool supports both MCP mode and Python calling mode.

MCP Mode

Configure your MCP client following its instructions with something like:

{
    "command": "/ABSTRACT/PATH/TO/uv",  // Use `which uv` to get its path
    "args": ["--directory", "/ABSTRACT/PATH/TO/ChemMCP", "run", "--tools", "SideEffectPredictor"],
    "toolCallTimeoutMillis": 300000,
    "env": {}
}

Python Calling Mode

import os
from chemmcp.tools import SideEffectPredictor

# Initialize the tool
tool = SideEffectPredictor()

# The tool has two alternative ways to run:
# 1. Run with separate input domains (recommended)
output = tool.run_code(
    smiles='CC1=CC(C)=C(NC(=O)CN(CC(=O)O)CC(=O)O)C(C)=C1Br'
)
# 2. Run with text-only input
output = tool.run_text(
    smiles='CC1=CC(C)=C(NC(=O)CN(CC(=O)O)CC(=O)O)C(C)=C1Br'
)

Each tool in ChemMCP has two ways to run:

  • run_code (recommended): The inputs contain one or more domains, each of which can be a str, an int, a float, etc.
  • run_text: The inputs are a single string in a specific format. The tool will parse the string to extract the input domains. This is useful in scenarios where an agent framework calls tools only with text input. The output is the same in both cases.

For the input and output domains, please refer to the tool’s signature.

Tool Signature

Input

Used in the MCP mode, as well as the run_code function in the Python calling mode.

NameTypeDefaultDescription
smilesstrN/ASMILES string of the molecule.

Text Input

Used in the run_text function in the Python calling mode.

NameTypeDefaultDescription
smilesstrN/ASMILES string of the molecule.

Output

The output is the same in both input cases.

NameTypeDescription
side_effectstrThe probabilities of the compound to cause different side effects.

Envs

No required environment variables for this tool.

Implementation Details

  • Implementation Description: Uses the Uni-Mol model fine-tuned on SmolInstruct PP-SIDER data to predict the probabilities of the compound to cause different side effects, and uses a text template to construct textual output.
  • Open-source dependencies (code source or required libraries):
  • Hosted services and software (required for running the tool): None