Skip to content

DROMA01/DROMA_MCP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MseeP.ai Security Assessment Badge

DROMA MCP Server

A Model Context Protocol (MCP) server for DROMA (Drug Response Omics association MAp) - enabling natural language interactions with drug-omics association analysis.

Website Python 3.10+ FastMCP Version

πŸš€ Overview

DROMA MCP Server bridges the gap between AI assistants and cancer pharmacogenomics analysis by providing a natural language interface to the DROMA.R and DROMA.Set packages.

It is a part of DROMA project. Visit the official DROMA website for comprehensive documentation and interactive examples.

Key Features

  • πŸ”— Natural Language Interface: Ask questions about drug-omics associations in plain English
  • πŸ“Š Dataset Management: Load and manage DROMA datasets (CCLE, gCSI, etc.) in memory
  • πŸ“ˆ Data Loading & Normalization: Load molecular profiles and treatment response data with automatic z-score normalization
  • πŸ—‚οΈ Multi-Project Support: Seamlessly work with data across multiple research projects
  • πŸ’Ύ Smart Caching: Efficient data caching with metadata tracking for faster access
  • πŸ“€ Data Export: Export analysis results to various formats (CSV, Excel, JSON)
  • ⚑ Multi-Modal Support: Works with various transport protocols (STDIO, HTTP, SSE)
  • πŸ”„ R Integration: Seamless integration with existing DROMA R packages via rpy2

πŸ“¦ Installation

Prerequisites

  • Python 3.10+
  • R 4.0+ with DROMA.Set and DROMA.R packages
  • DROMA SQLite database
  • FastMCP 2.13+ (automatically installed)

Install via pip

pip install droma-mcp

Development Installation

git clone https://github.com/mugpeng/DROMA_MCP
cd DROMA_MCP
pip install -e .

R Dependencies

Ensure you have the DROMA R packages installed:

# Install DROMA.Set and DROMA.R packages
# devtools::install_github("mugpeng/DROMA_Set")
# devtools::install_github("mugpeng/DROMA_R")

πŸš€ Quick Start

1. Start the Server

# STDIO mode (for AI assistants) - default
droma-mcp run --db-path path/to/droma.sqlite

# HTTP mode (for web applications)
droma-mcp run --transport http --port 8000 --db-path path/to/droma.sqlite

2. MCP Client Configuration

Add to your MCP client configuration:

{
  "mcpServers": {
    "droma-mcp": {
      "command": "droma-mcp",
      "args": ["run", "--db-path", "path/to/droma.sqlite"]
    }
  }
}

πŸ–₯️ CLI Commands

Command Description
run Start the MCP server
test Test configuration and dependencies
validate Validate complete setup
export-config Export MCP client configuration

For detailed help: droma-mcp --help or droma-mcp run --help

πŸ› οΈ Available Tools

Dataset Management

  • load_dataset: Load DROMA datasets (CCLE, gCSI, etc.) into memory from database
  • list_loaded_datasets: Show which datasets are currently loaded in memory
  • set_active_dataset: Set the active dataset for subsequent operations
  • unload_dataset: Remove datasets from memory to free up resources

Data Loading & Analysis

  • load_molecular_profiles_normalized: Load molecular profiles (mRNA, CNV, methylation, etc.) with z-score normalization
  • load_treatment_response_normalized: Load drug response data with normalization
  • load_multi_project_molecular_profiles_normalized: Load data across multiple projects
  • load_multi_project_treatment_response_normalized: Load treatment response across projects
  • check_zscore_normalization: Verify normalization status of cached data
  • get_cached_data_info: Get information about cached datasets
  • export_cached_data: Export data to CSV/Excel/JSON formats

Database Query & Exploration

  • get_droma_annotation: Retrieve sample or drug annotation data from the database
  • list_droma_samples: List all available samples for a project with filtering options
  • list_droma_features: List all available features (genes, drugs) for a project and data type
  • list_droma_projects: List all projects available in the DROMA database

Visualization & Analysis

  • plot_drug_sensitivity_rank: Create drug sensitivity rank plots
  • analyze_drug_omic_pair: Analyze associations between drugs and omic features

πŸ’¬ Example Usage

Essential Workflow

⚠️ Important: Before using any data loading functions, you must first load the dataset into memory:

"Load the CCLE dataset from the database and set it as active"

"Load mRNA expression data for ABCB1 gene from the CCLE dataset with z-score normalization"

"List all projects available in the DROMA database"

"Show me all available samples for the gCSI project that have mRNA data"

πŸ”§ Configuration

Environment Variables

  • DROMA_DB_PATH: Default path to DROMA SQLite database
  • R_LIBS: Path to R libraries
  • DROMA_MCP_MODULE: Server module to load (all, data_loading, database_query, dataset_management, visualization, analysis)
  • DROMA_MCP_VERBOSE: Enable verbose logging

πŸ”§ Troubleshooting

Common Issues

Import Errors: Run droma-mcp validate to check dependencies

R Integration Issues: Ensure R and DROMA packages are installed correctly

Database Connection: Verify database path with droma-mcp test --db-path path/to/droma.db

For more help, see the official DROMA website or open an issue on GitHub.

🀝 Contributing

Contributions are welcome! Please see our Contributing Guidelines for details.

πŸ“„ License

This project is licensed under the MPL-2 License - see the LICENSE file for details.

πŸ”— Related Projects

πŸ“ž Support

Citation

If you use DROMA MCP in your research, please cite:

Li, S., Peng, Y., Chen, M. et al. Facilitating integrative and personalized oncology omics analysis with UCSCXenaShiny. Commun Biol 7, 1200 (2024). https://doi.org/10.1038/s42003-024-06891-2


DROMA MCP - Bridging AI and Cancer Pharmacogenomics πŸ§¬πŸ’ŠπŸ€–

About

A Model Context Protocol (MCP) server for DROMA (Drug Response Omics association MAp) - enabling natural language interactions with drug-omics association analysis.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages