SCMCP
Uma interface de linguagem natural para análise de sequenciamento de RNA de célula única (scRNA-Seq), com suporte a diversos módulos, desde IO até enriquecimento.
Documentação
SCMCP
Um servidor MCP para análise de scRNA-Seq com linguagem natural!
🪩 O que ele pode fazer?
- Módulo de IO: Ler e escrever dados de scRNA-Seq com linguagem natural
- Módulo de pré-processamento: Filtragem, controle de qualidade, normalização, escalonamento, genes altamente variáveis, PCA, vizinhos,...
- Módulo de ferramentas: Agrupamento, expressão diferencial, etc.
- Módulo de plotagem: Gráficos de violino, mapas de calor, dotplots
- Análise de comunicação célula-célula
- Análise de pseudotempo
- Análise de enriquecimento
❓ Para quem é isso?
- Qualquer pessoa que queira fazer análise de scRNA-Seq usando linguagem natural!
- Desenvolvedores de agentes que queiram chamar as funções do scanpy para suas aplicações
🌐 Onde usar?
Você pode usar o scmcp na maioria dos clientes de IA, plugins ou frameworks de agentes que suportam o MCP:
- Clientes de IA, como o Cherry Studio
- Plugins, como o Cline
- Frameworks de agentes, como o Agno
📚 Documentação
A documentação completa do scmcphub está disponível em https://docs.scmcphub.org
🎬 Demonstração
Uma demonstração mostrando análise de agrupamento de células scRNA-Seq em um cliente de IA Cherry Studio usando linguagem natural baseada no scmcp:
https://github.com/user-attachments/assets/93a8fcd8-aa38-4875-a147-a5eeff22a559
🏎️ Início rápido
Instalação
Instale a partir do PyPI:
pip install scmcp
Você pode testá-lo executando:
scmcp run
🚀 Modos de execução
O SCMCP fornece dois modos de execução distintos para atender a diferentes necessidades e preferências dos usuários:
1. Modo de ferramentas
No modo de ferramentas, o SCMCP fornece um conjunto selecionado de funções predefinidas que o LLM pode selecionar e executar.
Vantagens:
- Estável: Funções predefinidas garantem execução consistente e confiável
- Previsível: Comportamento conhecido e saídas esperadas
- Seguro: Ambiente controlado com operações validadas
Desvantagens:
- Flexibilidade limitada: Restrito às funções predefinidas disponíveis; você precisa definir novas ferramentas quando precisar de funções de personalização
Uso
Executando no terminal:
scmcp run --run-mode tool
Configure o cliente MCP:
{
"mcpServers": {
"scmcp": {
"command": "/home/test/bin/scmcp",
"args": ["run", "--run-mode", "tool"]
}
}
}
Exemplos:
2. Modo de código
No modo de código, o SCMCP fornece um backend Jupyter que permite ao LLM gerar e executar código personalizado. Além disso, ele pode gerar notebooks Jupyter completos contendo código executável, resultados de análise e visualizações.
Este modo é baseado no projeto: https://github.com/huang-sh/abcoder
Vantagens:
- Altamente flexível: Pode criar fluxos de trabalho personalizados e combinar operações livremente
- Extensível: Suporta qualquer código Python e bibliotecas externas
- Interativo: Execução de código em tempo real e capacidades de depuração
Desvantagens:
- Menos estável: A geração de código pode variar a cada vez
Uso
Executando no terminal:
scmcp run --run-mode code
Configure o cliente MCP:
{
"mcpServers": {
"scmcp": {
"command": "/home/test/bin/scmcp",
"args": ["run", "--run-mode", "code"]
}
}
}
Exemplo: https://youtu.be/3jtXIeapslI
📝 Comparação de modos
| Recurso | Modo de ferramentas | Modo de código |
|---|---|---|
| Método de execução | Funções predefinidas | Geração de código personalizado |
| Estabilidade | Alta (consistente) | Menor (variável) |
| Flexibilidade | Limitada às ferramentas disponíveis | Altamente flexível |
| Segurança | Ambiente controlado | Execução completa de Python |
| Caso de uso | Fluxos de trabalho padrão | Análise personalizada |
| Curva de aprendizado | Fácil de usar | Requer conhecimento de Python |
🌐 Implantação remota
Para ambos os modos, você também pode executar o SCMCP remotamente:
Configuração remota
Inicie o servidor:
# Tool mode
scmcp run --transport shttp --port 8000 --run-mode tool
# Code mode
scmcp run --transport shttp --port 8000 --run-mode code
Configure seu cliente MCP:
{
"mcpServers": {
"scmcp": {
"url": "http://localhost:8000/mcp"
}
}
}
🤝 Contribuindo
Se você tiver alguma dúvida, sinta-se à vontade para abrir uma issue ou entrar em contato comigo (hsh-me@outlook.com). Contribuições ao código também são bem-vindas!
Citação
Se você usar o scmcp em sua pesquisa, considere citar os seguintes trabalhos:
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