Skip to main content
Glama

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

view

Anzeigen und Konvertieren von Ausrichtungsdateien

- Formatkonvertierung (SAM/BAM/CRAM) - Regionsfilterung - Flag-basierte Filterung - Header-Manipulation

sort

Alignment-Dateien sortieren

- Koordinatenbasierte Sortierung - Namensbasierte Sortierung - Speicher pro Thread-Steuerung - Multithreading-Unterstützung

index

BAM/CRAM-Dateien indizieren

- BAI-Indexgenerierung - CSI-Indexunterstützung - CRAM-Indexerstellung

merge

Mehrere BAM/CRAM-Dateien zusammenführen

- Zusammenführen mehrerer Dateien - Thread-fähige Verarbeitung - Header-Abgleich

depth

Lesetiefe berechnen

- Tiefenberechnung pro Basis - Regionsspezifische Analyse - Unterstützung mehrerer Dateien

flagstat

Generieren von Ausrichtungsstatistiken

- Umfassende Flaggenstatistiken - Qualitätsprüfungen - Paired-End-Metriken

idxstats

BAM/CRAM-Indexstatistiken

- Referenzsequenzstatistiken - Zugeordnete/nicht zugeordnete Zählungen - Längeninformationen

faidx

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:latest

Lokale Installation

  1. Klonen Sie das Repository:

git clone https://github.com/your-username/samtools_mcp.git
cd samtools_mcp
  1. Installieren Sie Abhängigkeiten:

pip install uv
uv pip install -r requirements.txt

Konfiguration

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

  1. BAM-Datei anzeigen:

from samtools_mcp import SamtoolsMCP

mcp = SamtoolsMCP()
result = mcp.view(input_file="/data/example.bam")
  1. BAM-Datei sortieren:

result = mcp.sort(input_file="/data/example.bam", output_file="/data/sorted.bam")
  1. BAM-Datei indizieren:

result = mcp.index(input_file="/data/sorted.bam")

Erweiterte Nutzung

  1. Bestimmte Regionen mit Flaggen anzeigen:

result = mcp.view(
    input_file="/data/example.bam",
    region="chr1:1000-2000",
    flags_required="0x2",
    output_format="SAM"
)
  1. Nach gelesenem Namen sortieren:

result = mcp.sort(
    input_file="/data/example.bam",
    output_file="/data/namesorted.bam",
    sort_by_name=True
)
  1. 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.

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sirusb/samtools_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server