Skip to main content
Glama

SAMtools MCP (протокол управления моделью)

Реализация протокола управления моделью для SAMtools, предоставляющая стандартизированный интерфейс для работы с файлами SAM/BAM/CRAM.

Функции

  • Просмотр и конвертация файлов SAM/BAM/CRAM

  • Сортировать файлы выравнивания

  • Индекс файлов BAM/CRAM

  • Генерировать статистику

  • Объединить несколько файлов BAM

  • Рассчитать глубину чтения

  • Индекс файлов FASTA

  • И многое другое...

Основные возможности

  • Поддержка форматов файлов : обработка файлов выравнивания SAM (текстовых), BAM (двоичных) и CRAM (сжатых)

  • Преобразование форматов : легкое преобразование между форматами SAM, BAM и CRAM.

  • Анализ конкретных областей : извлечение и анализ определенных областей генома.

  • Фильтрация на основе флагов : фильтрация считываний на основе флагов SAM

  • Оптимизация производительности : многопоточные операции сортировки и слияния

  • Статистический анализ : создание комплексной статистики выравнивания

Обзор инструментов

Инструмент

Описание

Основные характеристики

view

Просмотр и конвертация файлов выравнивания

- Преобразование форматов (SAM/BAM/CRAM)- Фильтрация регионов- Фильтрация на основе флагов- Манипулирование заголовками

sort

Сортировать файлы выравнивания

- Сортировка на основе координат- Сортировка на основе имен- Управление памятью на поток- Поддержка многопоточности

index

Индекс файлов BAM/CRAM

- Генерация индекса BAI- Поддержка индекса CSI- Создание индекса CRAM

merge

Объединение нескольких файлов BAM/CRAM

- Объединение нескольких файлов. - Обработка с поддержкой потоков. - Согласование заголовков.

depth

Рассчитать глубину чтения

- Расчет глубины для каждой базы - Анализ, специфичный для региона - Поддержка нескольких файлов

flagstat

Генерация статистики выравнивания

- Комплексная статистика флагов - Проверки качества - Метрики парных концов

idxstats

Статистика индекса BAM/CRAM

- Статистика референтной последовательности - Количество сопоставленных/несопоставленных последовательностей - Информация о длине

faidx

Индекс файлов FASTA

- Индексация FASTA- Извлечение регионов- Извлечение последовательностей

Related MCP server: Nmap MCP Server

Установка

Использование Docker (рекомендуется)

Самый простой способ использовать SAMtools MCP — через 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

Локальная установка

  1. Клонируйте репозиторий:

git clone https://github.com/your-username/samtools_mcp.git
cd samtools_mcp
  1. Установить зависимости:

pip install uv
uv pip install -r requirements.txt

Конфигурация

Конфигурация сервера MCP

Чтобы настроить сервер MCP для использования образа Docker, добавьте в файл конфигурации MCP следующее:

{
  "servers": {
    "samtools": {
      "type": "docker",
      "image": "nadhir/samtools-mcp:latest",
      "volumes": [
        {
          "source": "/path/to/your/data",
          "target": "/data"
        }
      ]
    }
  }
}

Локальная конфигурация MCP

Чтобы настроить MCP для работы с использованием uv , добавьте следующее в ваш ~/.cursor/mcp.json :

{
  "samtools_mcp": {
    "command": "uv",
    "args": ["run", "--with", "fastmcp", "fastmcp", "run", "/path/to/samtools_mcp.py"]
  }
}

Замените /path/to/samtools_mcp.py на фактический путь к вашему файлу samtools_mcp.py .

Использование

Основные команды

  1. Просмотреть BAM-файл:

from samtools_mcp import SamtoolsMCP

mcp = SamtoolsMCP()
result = mcp.view(input_file="/data/example.bam")
  1. Сортировать BAM-файл:

result = mcp.sort(input_file="/data/example.bam", output_file="/data/sorted.bam")
  1. Индексный BAM-файл:

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

Расширенное использование

  1. Просмотр конкретного региона с флагами:

result = mcp.view(
    input_file="/data/example.bam",
    region="chr1:1000-2000",
    flags_required="0x2",
    output_format="SAM"
)
  1. Сортировать по названию прочитанного:

result = mcp.sort(
    input_file="/data/example.bam",
    output_file="/data/namesorted.bam",
    sort_by_name=True
)
  1. Рассчитать глубину с несколькими входными файлами:

result = mcp.depth(
    input_files=["/data/sample1.bam", "/data/sample2.bam"],
    region="chr1:1-1000000"
)

Внося вклад

Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на включение.

Лицензия

Данный проект лицензирован по лицензии MIT — подробности см. в файле 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