SAMtools MCP (Modellkontrollprotokoll)
Eine Model Control Protocol-Implementierung für SAMtools, die eine standardisierte Schnittstelle für die Arbeit mit SAM/BAM/CRAM-Dateien bietet.
Merkmale
Anzeigen und Konvertieren von SAM/BAM/CRAM-Dateien
Alignment-Dateien sortieren
BAM/CRAM-Dateien indizieren
Statistiken erstellen
Mehrere BAM-Dateien zusammenführen
Lesetiefe berechnen
Indexieren Sie FASTA-Dateien
Und mehr...
Kernkompetenzen
Dateiformatunterstützung : Verarbeitung von SAM- (Text), BAM- (Binär) und CRAM- (komprimierten) Ausrichtungsdateien
Formatkonvertierung : Nahtlose Konvertierung zwischen den Formaten SAM, BAM und CRAM
Regionsspezifische Analyse : Extrahieren und analysieren Sie bestimmte Genomregionen
Flag-basiertes Filtern : Filtern Sie Lesevorgänge basierend auf SAM-Flags
Leistungsoptimierung : Multithread-Operationen zum Sortieren und Zusammenführen
Statistische Analyse : Erstellen Sie umfassende Ausrichtungsstatistiken
Werkzeugübersicht
Werkzeug | Beschreibung | Hauptmerkmale |
| Anzeigen und Konvertieren von Ausrichtungsdateien | - Formatkonvertierung (SAM/BAM/CRAM) - Regionsfilterung - Flag-basierte Filterung - Header-Manipulation |
| Alignment-Dateien sortieren | - Koordinatenbasierte Sortierung - Namensbasierte Sortierung - Speicher pro Thread-Steuerung - Multithreading-Unterstützung |
| BAM/CRAM-Dateien indizieren | - BAI-Indexgenerierung - CSI-Indexunterstützung - CRAM-Indexerstellung |
| Mehrere BAM/CRAM-Dateien zusammenführen | - Zusammenführen mehrerer Dateien - Thread-fähige Verarbeitung - Header-Abgleich |
| Lesetiefe berechnen | - Tiefenberechnung pro Basis - Regionsspezifische Analyse - Unterstützung mehrerer Dateien |
| Generieren von Ausrichtungsstatistiken | - Umfassende Flaggenstatistiken - Qualitätsprüfungen - Paired-End-Metriken |
| BAM/CRAM-Indexstatistiken | - Referenzsequenzstatistiken - Zugeordnete/nicht zugeordnete Zählungen - Längeninformationen |
| Indexieren Sie FASTA-Dateien | - FASTA-Indizierung - Regionsextraktion - Sequenzabruf |
Related MCP server: Nmap MCP Server
Installation
Docker verwenden (empfohlen)
Der einfachste Weg, SAMtools MCP zu verwenden, ist über 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:latestLokale Installation
Klonen Sie das Repository:
git clone https://github.com/your-username/samtools_mcp.git
cd samtools_mcpInstallieren Sie Abhängigkeiten:
pip install uv
uv pip install -r requirements.txtKonfiguration
MCP-Serverkonfiguration
Um den MCP-Server für die Verwendung des Docker-Images zu konfigurieren, fügen Sie Ihrer MCP-Konfigurationsdatei Folgendes hinzu:
{
"servers": {
"samtools": {
"type": "docker",
"image": "nadhir/samtools-mcp:latest",
"volumes": [
{
"source": "/path/to/your/data",
"target": "/data"
}
]
}
}
}Lokale MCP-Konfiguration
Um MCP für die Ausführung mit uv zu konfigurieren, fügen Sie Folgendes zu Ihrer ~/.cursor/mcp.json hinzu:
{
"samtools_mcp": {
"command": "uv",
"args": ["run", "--with", "fastmcp", "fastmcp", "run", "/path/to/samtools_mcp.py"]
}
}Ersetzen Sie /path/to/samtools_mcp.py durch den tatsächlichen Pfad zu Ihrer Datei samtools_mcp.py .
Verwendung
Grundlegende Befehle
BAM-Datei anzeigen:
from samtools_mcp import SamtoolsMCP
mcp = SamtoolsMCP()
result = mcp.view(input_file="/data/example.bam")BAM-Datei sortieren:
result = mcp.sort(input_file="/data/example.bam", output_file="/data/sorted.bam")BAM-Datei indizieren:
result = mcp.index(input_file="/data/sorted.bam")Erweiterte Nutzung
Bestimmte Regionen mit Flaggen anzeigen:
result = mcp.view(
input_file="/data/example.bam",
region="chr1:1000-2000",
flags_required="0x2",
output_format="SAM"
)Nach gelesenem Namen sortieren:
result = mcp.sort(
input_file="/data/example.bam",
output_file="/data/namesorted.bam",
sort_by_name=True
)Berechnen Sie die Tiefe mit mehreren Eingabedateien:
result = mcp.depth(
input_files=["/data/sample1.bam", "/data/sample2.bam"],
region="chr1:1-1000000"
)Beitragen
Beiträge sind willkommen! Senden Sie gerne einen Pull Request.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE.