SCMCP

Una interfaz de lenguaje natural para el análisis de secuenciación de ARN de células individuales (scRNA-Seq), que admite varios módulos desde IO hasta enriquecimiento.

Documentación

SCMCP

Un servidor MCP para análisis de scRNA-Seq con lenguaje natural.

🪩 ¿Qué puede hacer?

  • Módulo IO: Leer y escribir datos de scRNA-Seq con lenguaje natural
  • Módulo de preprocesamiento: Filtrado, control de calidad, normalización, escalado, genes altamente variables, PCA, Vecinos,...
  • Módulo de herramientas: Agrupamiento, expresión diferencial, etc.
  • Módulo de trazado: Diagramas de violín, mapas de calor, diagramas de puntos
  • Análisis de comunicación célula-célula
  • Análisis de pseudotiempo
  • Análisis de enriquecimiento

❓ ¿Para quién es esto?

  • Cualquier persona que quiera hacer análisis de scRNA-Seq usando lenguaje natural.
  • Desarrolladores de agentes que quieran llamar a las funciones de scanpy para sus aplicaciones.

🌐 ¿Dónde usarlo?

Puedes usar scmcp en la mayoría de clientes de IA, plugins o marcos de agentes que soporten MCP:

  • Clientes de IA, como Cherry Studio
  • Plugins, como Cline
  • Marcos de agentes, como Agno

📚 Documentación

La documentación completa de scmcphub está disponible en https://docs.scmcphub.org

🎬 Demo

Una demo que muestra el análisis de agrupamiento celular de scRNA-Seq en un cliente de IA Cherry Studio usando lenguaje natural basado en scmcp:

https://github.com/user-attachments/assets/93a8fcd8-aa38-4875-a147-a5eeff22a559

🏎️ Inicio rápido

Instalación

Instalar desde PyPI:

pip install scmcp

Puedes probarlo ejecutando:

scmcp run

🚀 Modos de ejecución

SCMCP proporciona dos modos de ejecución distintos para adaptarse a las diferentes necesidades y preferencias de los usuarios:

1. Modo de herramientas

En el modo de herramientas, SCMCP proporciona un conjunto seleccionado de funciones predefinidas que el LLM puede seleccionar y ejecutar.

Ventajas:

  • Estable: Las funciones predefinidas aseguran una ejecución consistente y fiable.
  • Predecible: Comportamiento conocido y salidas esperadas.
  • Seguro: Entorno controlado con operaciones validadas.

Desventajas:

  • Flexibilidad limitada: Restringido a las funciones predefinidas disponibles; necesitas definir nuevas herramientas cuando necesitas funciones personalizadas.

Uso

Ejecutar en terminal:

scmcp run --run-mode tool

Configurar el cliente MCP:

{
  "mcpServers": {
    "scmcp": {
      "command": "/home/test/bin/scmcp",
      "args": ["run", "--run-mode", "tool"]
    }
  }
}

Ejemplos:

2. Modo de código

En el modo de código, SCMCP proporciona un backend de Jupyter que permite al LLM generar y ejecutar código personalizado. Además, puede generar cuadernos de Jupyter completos que contienen código ejecutable, resultados de análisis y visualizaciones.

Este modo se basa en el proyecto: https://github.com/huang-sh/abcoder

Ventajas:

  • Altamente flexible: Puede crear flujos de trabajo personalizados y combinar operaciones libremente.
  • Extensible: Soporta cualquier código de Python y bibliotecas externas.
  • Interactivo: Ejecución de código en tiempo real y capacidades de depuración.

Desventajas:

  • Menos estable: La generación de código puede variar cada vez.

Uso

Ejecutar en terminal:

scmcp run --run-mode code

Configurar el cliente MCP:

{
  "mcpServers": {
    "scmcp": {
      "command": "/home/test/bin/scmcp",
      "args": ["run", "--run-mode", "code"]
    }
  }
}

Ejemplo: https://youtu.be/3jtXIeapslI

📝 Comparación de modos

CaracterísticaModo de herramientasModo de código
Método de ejecuciónFunciones predefinidasGeneración de código personalizado
EstabilidadAlta (consistente)Baja (variable)
FlexibilidadLimitada a las herramientas disponiblesAltamente flexible
SeguridadEntorno controladoEjecución completa de Python
Caso de usoFlujos de trabajo estándarAnálisis personalizado
Curva de aprendizajeFácil de usarRequiere conocimiento de Python

🌐 Despliegue remoto

Para ambos modos, también puedes ejecutar SCMCP de forma remota:

Configuración remota

Iniciar el servidor:

# Tool mode
scmcp run --transport shttp --port 8000 --run-mode tool

# Code mode
scmcp run --transport shttp --port 8000 --run-mode code

Configura tu cliente MCP:

{
  "mcpServers": {
    "scmcp": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

🤝 Contribuciones

Si tienes alguna pregunta, eres bienvenido a enviar un issue, o contactarme (hsh-me@outlook.com). ¡Las contribuciones al código también son bienvenidas!

Cómo citar

Si usas scmcp en tu investigación, por favor considera citar los siguientes trabajos:

Wolf, F., Angerer, P. & Theis, F. SCANPY: large-scale single-cell gene expression data analysis. Genome Biol 19, 15 (2018). https://doi.org/10.1186/s13059-017-1382-0

Dimitrov D., Schäfer P.S.L, Farr E., Rodriguez Mier P., Lobentanzer S., Badia-i-Mompel P., Dugourd A., Tanevski J., Ramirez Flores R.O. and Saez-Rodriguez J. LIANA+ provides an all-in-one framework for cell–cell communication inference. Nat Cell Biol (2024). https://doi.org/10.1038/s41556-024-01469-w

Badia-i-Mompel P., Vélez Santiago J., Braunger J., Geiss C., Dimitrov D., Müller-Dott S., Taus P., Dugourd A., Holland C.H., Ramirez Flores R.O. and Saez-Rodriguez J. 2022. decoupleR: ensemble of computational methods to infer biological activities from omics data. Bioinformatics Advances. https://doi.org/10.1093/bioadv/vbac016

Weiler, P., Lange, M., Klein, M. et al. CellRank 2: unified fate mapping in multiview single-cell data. Nat Methods 21, 1196–1205 (2024). https://doi.org/10.1038/s41592-024-02303-9