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ística | Modo de herramientas | Modo de código |
|---|---|---|
| Método de ejecución | Funciones predefinidas | Generación de código personalizado |
| Estabilidad | Alta (consistente) | Baja (variable) |
| Flexibilidad | Limitada a las herramientas disponibles | Altamente flexible |
| Seguridad | Entorno controlado | Ejecución completa de Python |
| Caso de uso | Flujos de trabajo estándar | Análisis personalizado |
| Curva de aprendizaje | Fácil de usar | Requiere 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