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

RecursoModo de ferramentasModo de código
Método de execuçãoFunções predefinidasGeração de código personalizado
EstabilidadeAlta (consistente)Menor (variável)
FlexibilidadeLimitada às ferramentas disponíveisAltamente flexível
SegurançaAmbiente controladoExecução completa de Python
Caso de usoFluxos de trabalho padrãoAnálise personalizada
Curva de aprendizadoFácil de usarRequer 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