SAMtools MCP (Protocolo de control de modelos)
Una implementación del Protocolo de Control de Modelos para SAMtools, que proporciona una interfaz estandarizada para trabajar con archivos SAM/BAM/CRAM.
Características
Ver y convertir archivos SAM/BAM/CRAM
Ordenar archivos de alineación
Índice de archivos BAM/CRAM
Generar estadísticas
Fusionar varios archivos BAM
Calcular la profundidad de lectura
Índice de archivos FASTA
Y más...
Capacidades principales
Compatibilidad con formatos de archivo : maneja archivos de alineación SAM (texto), BAM (binario) y CRAM (comprimidos)
Conversión de formato : Convierte entre formatos SAM, BAM y CRAM sin problemas
Análisis específico de la región : extraiga y analice regiones genómicas específicas
Filtrado basado en indicadores : filtra las lecturas según los indicadores SAM
Optimización del rendimiento : operaciones multiproceso para ordenar y fusionar
Análisis estadístico : genere estadísticas de alineación completas
Descripción general de las herramientas
Herramienta | Descripción | Características principales |
| Ver y convertir archivos de alineación | - Conversión de formato (SAM/BAM/CRAM)- Filtrado de regiones- Filtrado basado en indicadores- Manipulación de encabezados |
| Ordenar archivos de alineación | - Ordenación basada en coordenadas- Ordenación basada en nombres- Control de memoria por subproceso- Compatibilidad con múltiples subprocesos |
| Índice de archivos BAM/CRAM | - Generación de índices BAI- Compatibilidad con índices CSI- Creación de índices CRAM |
| Fusionar varios archivos BAM/CRAM | - Fusión de múltiples archivos - Procesamiento habilitado para subprocesos - Conciliación de encabezados |
| Calcular la profundidad de lectura | - Cálculo de profundidad por base- Análisis específico de la región- Compatibilidad con múltiples archivos |
| Generar estadísticas de alineación | - Estadísticas completas de banderas- Controles de calidad- Métricas de pares |
| Estadísticas del índice BAM/CRAM | - Estadísticas de secuencia de referencia - Recuentos mapeados/no mapeados - Información de longitud |
| Índice de archivos FASTA | - Indexación FASTA - Extracción de regiones - Recuperación de secuencias |
Related MCP server: Nmap MCP Server
Instalación
Uso de Docker (recomendado)
La forma más sencilla de utilizar SAMtools MCP es a través de Docker:
# Pull the Docker image
docker pull nadhir/samtools-mcp:latest
# Run the container
docker run -it --rm nadhir/samtools-mcp:latest
# To process BAM files, mount a volume:
docker run -it --rm -v /path/to/your/bam/files:/data nadhir/samtools-mcp:latestInstalación local
Clonar el repositorio:
git clone https://github.com/your-username/samtools_mcp.git
cd samtools_mcpInstalar dependencias:
pip install uv
uv pip install -r requirements.txtConfiguración
Configuración del servidor MCP
Para configurar el servidor MCP para usar la imagen de Docker, agregue lo siguiente a su archivo de configuración de MCP:
{
"servers": {
"samtools": {
"type": "docker",
"image": "nadhir/samtools-mcp:latest",
"volumes": [
{
"source": "/path/to/your/data",
"target": "/data"
}
]
}
}
}Configuración de MCP local
Para configurar el MCP para que se ejecute usando uv , agregue lo siguiente a su ~/.cursor/mcp.json :
{
"samtools_mcp": {
"command": "uv",
"args": ["run", "--with", "fastmcp", "fastmcp", "run", "/path/to/samtools_mcp.py"]
}
}Reemplace /path/to/samtools_mcp.py con la ruta real a su archivo samtools_mcp.py .
Uso
Comandos básicos
Ver archivo BAM:
from samtools_mcp import SamtoolsMCP
mcp = SamtoolsMCP()
result = mcp.view(input_file="/data/example.bam")Ordenar archivo BAM:
result = mcp.sort(input_file="/data/example.bam", output_file="/data/sorted.bam")Índice del archivo BAM:
result = mcp.index(input_file="/data/sorted.bam")Uso avanzado
Ver región específica con banderas:
result = mcp.view(
input_file="/data/example.bam",
region="chr1:1000-2000",
flags_required="0x2",
output_format="SAM"
)Ordenar por nombre de lectura:
result = mcp.sort(
input_file="/data/example.bam",
output_file="/data/namesorted.bam",
sort_by_name=True
)Calcular profundidad con múltiples archivos de entrada:
result = mcp.depth(
input_files=["/data/sample1.bam", "/data/sample2.bam"],
region="chr1:1-1000000"
)Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.