samtools_mcp

by sirusb
Verified

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生成比对统计数据- 综合标志统计 - 质量检查 - 双端指标
idxstatsBAM/CRAM 索引统计- 参考序列统计 - 映射/未映射计数 - 长度信息
faidx索引 FASTA 文件- FASTA 索引 - 区域提取 - 序列检索

安装

使用 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" )

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

-
security - not tested
-
license - not tested
-
quality - not tested

SAMtools 的模型控制协议实现,为处理 SAM/BAM/CRAM 文件提供了标准化接口。

  1. Features
    1. Core Capabilities
    2. Tools Overview
  2. Installation
    1. Using Docker (Recommended)
    2. Local Installation
  3. Configuration
    1. MCP Server Configuration
    2. Local MCP Configuration
  4. Usage
    1. Basic Commands
    2. Advanced Usage
  5. Contributing
    1. License
      ID: jttoifepxt