Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Tox Antitargets Server

БесплатноНе проверен

An MCP server that reproduces the results of Nikitin et al., 'Towards Explainable Computational Toxicology: Linking Antitargets to Rodent Acute Toxicity' as cal

GitHubEmbed

Описание

An MCP server that reproduces the results of Nikitin et al., 'Towards Explainable Computational Toxicology: Linking Antitargets to Rodent Acute Toxicity' as callable tools, enabling users to compute toxicity predictions and mechanistic analyses deterministically from a bundled dataset.

README

An MCP server that reproduces the results of:

Nikitin, I.; Morgunov, I.; Safronov, V.; Kalyuzhnaya, A.; Fedorov, M. Towards Explainable Computational Toxicology: Linking Antitargets to Rodent Acute Toxicity. Pharmaceutics 2025, 17, 1573. https://doi.org/10.3390/pharmaceutics17121573

Every figure, statistic and conclusion of the paper is turned into a callable tool, computed deterministically from the public ld50-antitargets dataset (12 654 ligands × 44 antitarget docking scores + mouse-intravenous pLD50; 556 776 scores). The dataset is bundled, so the server runs offline on a CPU — no GPU and no docking step. The Vina-GPU docking in the paper was a one-time data-generation step; its output is this dataset.

Tools

Tool Reproduces What it returns
dataset_overview Fig. 1 / §3.1 counts, pLD50 range, KDE plot
physicochemical_properties Fig. 2 / §3.1.1 RDKit MW/logP/HBA/HBD/RB/TPSA stats + histograms
chemical_space_tsne Fig. 3 t-SNE of ECFP4 space coloured by pLD50
protein_affinity_profiles Fig. 4 / §3.2 per-protein docking medians, violin plot, CHRM2 anomaly
antitarget_ld50_association Fig. 5 / §3.3 antitargets ranked by binder-subset pLD50 (top-5)
apply_medchem_filters §3.4.2 NIH + Brenk filtering (12 654 → 5 392)
binders_vs_nonbinders Fig. 6 / §3.4 Mann–Whitney U test (raw or filtered subset)
butina_clustering §2.6 ECFP4 Butina cluster statistics
spearman_correlations Fig. 9 / §3.6.1 per-protein Spearman ρ + bar plot
cluster_correlation_heatmap Fig. 10 / §3.6.2 Spearman per cluster × protein heatmap
logp_confounder_analysis Fig. 11 logP-as-hidden-variable warning for the aliphatic-acid cluster
inverse_docking_profile Fig. 8 44-protein interaction profile of a molecule (target fishing)
reproduce_figure8_examples Fig. 7/8 profiles of anisodamine, butaperazine, soman, 3 cannabinoids
protein_panel Table S1 the 44 Bowes-panel targets + names + orthology note
reproduce_all recomputes all headline numbers, compared to the paper
reproduce_claims all the paper's 11 conclusions, each restated with reproduced numbers

Each tool returns {"answer": ..., "metadata": ...}. Figures are saved as PNG to a local artifacts dir (TOX_ARTIFACTS_DIR) or, if S3 is configured, uploaded and returned as presigned URLs (same pattern as chemical-mcp-server).

Reproduction fidelity

reproduce_all / reproduce_claims / pytest tests/ assert these against the paper:

Metric Paper This server
compounds / proteins / scores 12654 / 44 / 556776 identical
pLD50 range 0.77 – 7.89 0.77 – 7.89
Mann–Whitney median diff (raw) 0.38 (p<0.05) 0.382 (p≈5e-132)
Mann–Whitney median diff (filtered) 0.70 (p<0.05) 0.697 (p<0.05)
Top-5 antitargets KCNH2, AVPR1A, CACNA1C, KCNQ1, EDNRA exact order
CHRM2 anomalous median ≈ −4 −4.20 (highest)
Rotatable-bond mean 4.78 4.78
NIH+Brenk kept 5391 5392 (1 molecule; RDKit version)
Spearman ρ range +0.2 … −0.3 +0.22 … −0.30
Butina clusters 9665 / largest 34 / 8326 singletons see note

Version-related deviations (the method is faithful; values differ slightly): NIH+Brenk 5392 vs 5391 (one molecule, RDKit catalog version); Spearman median ≈ −0.24 vs the figure's −0.14 (the range matches exactly — the published CSV is post-denoising); Butina 9665 reproduces at Tanimoto distance ≈0.28 while the stated 0.65 yields ≈8260 (cluster counts are fingerprint/version-sensitive; the high-diversity conclusion is robust). Full discussion in docs/ARCHITECTURE.md.

Run locally

git clone https://github.com/chemagents/tox-antitargets-mcp-server
cd tox-antitargets-mcp-server
uv sync
uv run python -m server.tox_server       # serves http://0.0.0.0:7331/mcp
uv run pytest tests                       # 11/11 reproduction checks

No configuration is required; the server works out of the box.

Run with Docker (standalone)

docker compose up -d --build              # host port 7335 -> container 7331

This standalone mode needs no changes to CoScientist. To run it as a service inside the CoScientist docker stack instead, see "Attach to CoScientist" below.

Attach to CoScientist

Full turnkey guide + a verified end-to-end run log: COSCIENTIST_INTEGRATION.md. Tested inside CoScientist (OpenRouter LLM, FEDOT.MAS calling these tools to reproduce Fig. 5).

Does a colleague need to change anything in CoScientist? Only to run this server as part of the CoScientist docker stack. Two modes:

  • Just register a reachable server — the standalone container/process above is enough; no changes to CoScientist's files. Jump to the cli.py command below.
  • Run it inside CoScientist's docker stack — add a service to CoScientist's mcp-servers/docker-compose.yml that builds with Dockerfile.coscientist (the plain Dockerfile is only for the standalone context: .). That entry lives in the CoScientist repo and is done by whoever runs the stack — see COSCIENTIST_INTEGRATION.md step 2 for the exact YAML.

Either way, the agents only use the tools after you register the server in the RAG (Postgres + Qdrant). Register it once:

# from the CoScientist repo root, with the RAG stack running and .env configured
python scripts/rag_tools/cli.py load mcp-servers/tox-antitargets-mcp-server/rag_registration.json
# or directly:
python scripts/rag_tools/cli.py add \
  --url http://localhost:7335/mcp \
  --name tox-antitargets \
  --description "Antitarget-LD50 computational toxicology, inverse docking, hERG/safety panel (Nikitin et al. 2025)"

After registration the ToolRetrieverAgent surfaces these tools for toxicity / LD50 / mechanism-of-action queries, and ExperimentAgent (FEDOT.MAS) calls them by URL. If CoScientist runs in the same Docker network, register the in-network URL instead: http://tox-antitargets-mcp-server:7331/mcp.

See REPRODUCTION_QUESTIONS.md for the exact prompts to ask CoScientist (one per paper assertion, plus a single "reproduce everything" prompt).

LLM-formulated conclusions (OpenRouter, no CoScientist needed)

reproduce_paper.py runs the "numbers → LLM → conclusions" loop on its own, with only an OpenRouter key — useful to see a model state the paper's conclusions from the deterministic numbers:

export OPENROUTER_API_KEY=sk-or-...        # set in your shell, do not commit
uv run python reproduce_paper.py           # writes the 11 conclusions from the numbers
uv run python reproduce_paper.py --dry-run # just print the prompt (no key, no call)

Docs

Optional TOX_* env vars (port, thresholds, S3 figure storage) are listed in .env.example.

Cite

@article{Nikitin2025,
  author  = {Ilia Nikitin and Igor Morgunov and Victor Safronov and Anna Kalyuzhnaya and Maxim Fedorov},
  title   = {Towards Explainable Computational Toxicology: Linking Antitargets to Rodent Acute Toxicity},
  journal = {Pharmaceutics},
  year    = {2025},
  volume  = {17},
  pages   = {1573},
  doi     = {10.3390/pharmaceutics17121573}
}

License / data

MIT (code; see LICENSE). Data and methods belong to Nikitin et al. 2025; dataset from chemagents/ld50-antitargets.

from github.com/chemagents/tox-antitargets-mcp-server

Установка Tox Antitargets Server

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/chemagents/tox-antitargets-mcp-server

FAQ

Tox Antitargets Server MCP бесплатный?

Да, Tox Antitargets Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Tox Antitargets Server?

Нет, Tox Antitargets Server работает без API-ключей и переменных окружения.

Tox Antitargets Server — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить Tox Antitargets Server в Claude Desktop, Claude Code или Cursor?

Открой Tox Antitargets Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Tox Antitargets Server with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development