SAMtools MCP (протокол управления моделью)
Реализация протокола управления моделью для SAMtools, предоставляющая стандартизированный интерфейс для работы с файлами SAM/BAM/CRAM.
Функции
Просмотр и конвертация файлов SAM/BAM/CRAM
Сортировать файлы выравнивания
Индекс файлов BAM/CRAM
Генерировать статистику
Объединить несколько файлов BAM
Рассчитать глубину чтения
Индекс файлов FASTA
И многое другое...
Основные возможности
Поддержка форматов файлов : обработка файлов выравнивания SAM (текстовых), BAM (двоичных) и CRAM (сжатых)
Преобразование форматов : легкое преобразование между форматами SAM, BAM и CRAM.
Анализ конкретных областей : извлечение и анализ определенных областей генома.
Фильтрация на основе флагов : фильтрация считываний на основе флагов SAM
Оптимизация производительности : многопоточные операции сортировки и слияния
Статистический анализ : создание комплексной статистики выравнивания
Обзор инструментов
Инструмент | Описание | Основные характеристики |
| Просмотр и конвертация файлов выравнивания | - Преобразование форматов (SAM/BAM/CRAM)- Фильтрация регионов- Фильтрация на основе флагов- Манипулирование заголовками |
| Сортировать файлы выравнивания | - Сортировка на основе координат- Сортировка на основе имен- Управление памятью на поток- Поддержка многопоточности |
| Индекс файлов BAM/CRAM | - Генерация индекса BAI- Поддержка индекса CSI- Создание индекса CRAM |
| Объединение нескольких файлов BAM/CRAM | - Объединение нескольких файлов. - Обработка с поддержкой потоков. - Согласование заголовков. |
| Рассчитать глубину чтения | - Расчет глубины для каждой базы - Анализ, специфичный для региона - Поддержка нескольких файлов |
| Генерация статистики выравнивания | - Комплексная статистика флагов - Проверки качества - Метрики парных концов |
| Статистика индекса BAM/CRAM | - Статистика референтной последовательности - Количество сопоставленных/несопоставленных последовательностей - Информация о длине |
| Индекс файлов 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Локальная установка
Клонируйте репозиторий:
git clone https://github.com/your-username/samtools_mcp.git
cd samtools_mcpУстановить зависимости:
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 .
Использование
Основные команды
Просмотреть BAM-файл:
from samtools_mcp import SamtoolsMCP
mcp = SamtoolsMCP()
result = mcp.view(input_file="/data/example.bam")Сортировать BAM-файл:
result = mcp.sort(input_file="/data/example.bam", output_file="/data/sorted.bam")Индексный BAM-файл:
result = mcp.index(input_file="/data/sorted.bam")Расширенное использование
Просмотр конкретного региона с флагами:
result = mcp.view(
input_file="/data/example.bam",
region="chr1:1000-2000",
flags_required="0x2",
output_format="SAM"
)Сортировать по названию прочитанного:
result = mcp.sort(
input_file="/data/example.bam",
output_file="/data/namesorted.bam",
sort_by_name=True
)Рассчитать глубину с несколькими входными файлами:
result = mcp.depth(
input_files=["/data/sample1.bam", "/data/sample2.bam"],
region="chr1:1-1000000"
)Внося вклад
Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на включение.
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.