RNAelem MCP
用于RNAelem-RNA基序发现、分析和机器学习工具包的模型完成协议(MCP)服务器
目录
概述
RNAelem MCP提供命令行脚本和MCP服务器集成,用于RNA基序发现和分析。基于强大的RNAelem C++工具包,它提供了从基本基序发现到RNA序列高级机器学习分析的完整工作流程。
特性
- 模体识别:用于发现RNA结构基序的完整RNAelem管道
- 图案扫描:应用训练好的模型扫描新序列以寻找已知的基序
- 机器学习:使用集成方法(随机森林、梯度增强)增强主题分析
- 批处理:高效处理多个文件和大型数据集
- 异步操作:长时间运行的任务在后台运行,并具有进度跟踪功能
- 灵活的API:同步(快速)和异步(提交)操作模式
目录结构
./
├── README.md # This file
├── env/ # Conda environment
├── src/
│ └── server.py # MCP server
│ └── jobs/ # Job management system
├── scripts/
│ ├── simple_pipeline.py # RNAelem motif discovery pipeline
│ ├── motif_scanning.py # Motif scanning with trained models
│ ├── ml_analysis.py # Machine learning analysis
│ └── lib/ # Shared utilities
├── examples/
│ └── data/ # Demo data (tRNA sequences, patterns)
├── configs/ # Configuration files
├── repo/ # Original RNAelem repository
└── reports/ # Setup and analysis reports______________________________________________________________________
安装
先决条件
- Conda或Mamba(建议使用曼巴以加快安装速度)
- Python 3.10+
- 支持C++14的C++编译器
- 系统软件包:pkg-config,freetype2-dev
创建环境
# Navigate to the MCP directory
cd /home/xux/Desktop/NucleicMCP/NucleicMCP/tool-mcps/rnaelem_mcp
# Create conda environment (use mamba if available)
mamba create -p ./env python=3.10 -y
# or: conda create -p ./env python=3.10 -y
# Activate environment
mamba activate ./env
# or: conda activate ./env
# Install Python dependencies
pip install numpy scipy pandas scikit-learn loguru click tqdm
# Install MCP dependencies
pip install fastmcp loguru --ignore-installed
# Build RNAelem C++ binaries (already done during setup)
# cd repo/RNAelem && ./waf configure --prefix=$HOME/local && ./waf build验证安装
# Activate environment
mamba activate ./env
# Test Python imports
python -c "import numpy; import scipy; import pandas; import sklearn; import fastmcp; print('✅ All imports successful')"
# Test RNAelem binaries
elem --help
RNAelem --help______________________________________________________________________
本地使用(脚本)
您可以在没有MCP的情况下直接使用脚本进行本地处理。
可用脚本
| 脚本 | 描述 | 示例 |
|---|---|---|
scripts/simple_pipeline.py | 完整的RNAelem基序发现流程 | 见下文 |
scripts/motif_scanning.py | 使用训练好的模型扫描序列 | 见下文 |
scripts/ml_analysis.py | 机器学习增强分析 | 见下文 |
脚本示例
简单管道(主题发现)
# Activate environment
mamba activate ./env
# Run complete RNAelem pipeline
python scripts/simple_pipeline.py \
--input examples/data/positive.fa \
--pattern examples/data/simple_pattern.txt \
--output results/pipeline_demo \
--verbose参数:
--input, -i:带有阳性RNA序列的FASTA文件(必填)--pattern, -p:用点括号表示的图案文件(必填)--output, -o:模型和结果的输出目录(默认:自动生成)--force:覆盖现有输出目录--verbose:启用详细的进度输出
图案扫描
# Scan sequences with a trained model
python scripts/motif_scanning.py \
--input examples/data/positive.fa \
--model results/pipeline_demo/model-1/train.model \
--threshold 0.7 \
--format json \
--output results/scanning_demo.json参数:
--input, -i:包含要扫描的RNA序列的FASTA文件(必填)--model, -m:经过培训的RNAelem模型文件(.model)(必填)--threshold, -t:主题存在概率阈值(默认值:0.5)--format, -f:输出格式-“json”或“csv”(默认:json)--output, -o:输出文件路径(默认:自动生成)
机器学习分析
# ML analysis with automatic negative sequence generation
python scripts/ml_analysis.py \
--positive examples/data/positive.fa \
--model-type gradient_boost \
--n-estimators 200 \
--output results/ml_demo参数:
--positive:带有阳性RNA序列的FASTA文件(必填)--negative:带负序列的FASTA文件(可选,如果未提供则生成)--model-type:ML算法-“random_forest”或“gradient_boost”(默认值:random_freest)--test-size:列车/试验分流比(默认值:0.3)--n-estimators:集合中的树数(默认值:100)--output:模型和结果的输出目录
______________________________________________________________________
MCP服务器安装
选项1:使用fastmcp(推荐)
# Install MCP server for Claude Code
fastmcp install src/server.py --name RNAelem选项2:Claude代码的手动安装
# Add MCP server to Claude Code
claude mcp add RNAelem -- $(pwd)/env/bin/python $(pwd)/src/server.py
# Verify installation
claude mcp list选项3:在settings.json中配置
增添 ~/.claude/settings.json:
{
"mcpServers": {
"RNAelem": {
"command": "/home/xux/Desktop/NucleicMCP/NucleicMCP/tool-mcps/rnaelem_mcp/env/bin/python",
"args": ["/home/xux/Desktop/NucleicMCP/NucleicMCP/tool-mcps/rnaelem_mcp/src/server.py"]
}
}
}______________________________________________________________________
使用Claude代码
安装MCP服务器后,您可以直接在Claude Code中使用它。
快速开始
# Start Claude Code
claude示例提示
工具发现
What tools are available from RNAelem?基本主题发现
Use submit_motif_discovery with input file @examples/data/positive.fa and pattern file @examples/data/simple_pattern.txt快速图案扫描(需要经过训练的模型)
Use scan_motifs to scan @examples/data/positive.fa with a trained model, threshold 0.8机器学习分析
Run analyze_sequences_ml on @examples/data/positive.fa using gradient_boost with 200 estimators长期运行任务(提交API)
Submit motif discovery for @examples/data/positive.fa with pattern @examples/data/simple_pattern.txt
Then check the job status批处理
Process these files in batch using submit_batch_motif_scanning:
- @examples/data/positive.fa
- @results/new_sequences.fa使用@引用
在克劳德代码中,使用 @ 引用文件和目录:
| 参考 | 说明 |
|---|---|
@examples/data/positive.fa | 参考演示RNA序列 |
@examples/data/simple_pattern.txt | 参考简单的发夹图案 |
@configs/ml_analysis_config.json | 参考ML配置 |
@results/ | 参考输出目录 |
______________________________________________________________________
与Gemini CLI一起使用
配置
增添 ~/.gemini/settings.json:
{
"mcpServers": {
"RNAelem": {
"command": "/home/xux/Desktop/NucleicMCP/NucleicMCP/tool-mcps/rnaelem_mcp/env/bin/python",
"args": ["/home/xux/Desktop/NucleicMCP/NucleicMCP/tool-mcps/rnaelem_mcp/src/server.py"]
}
}
}示例提示
# Start Gemini CLI
gemini
# Example prompts (same as Claude Code)
> What tools are available?
> Use scan_motifs with file examples/data/positive.fa and threshold 0.7______________________________________________________________________
可用工具
快速操作(同步API)
这些工具会立即返回结果(\10分钟):
| 工具 | 说明 | 参数 |
|---|---|---|
submit_motif_discovery | 完整的RNAelem基序发现流程 | input_file, pattern_file, output_dir, force_overwrite, job_name |
submit_motif_scanning | 大规模图案扫描 | input_file, model_file, threshold, output_format, output_dir, job_name |
submit_ml_analysis | 大规模机器学习培训 | positive_file, negative_file, model_type, test_size, n_estimators, output_dir, job_name |
批处理工具
| 工具 | 说明 | 参数 |
|---|---|---|
submit_batch_motif_scanning | 使用同一模型处理多个文件 | input_files, model_file, threshold, output_format, output_dir, job_name |
submit_batch_ml_analysis | 为多个数据集训练模型 | positive_files, negative_files, model_type, output_dir, job_name |
作业管理工具
| 工具 | 说明 |
|---|---|
get_job_status | 检查作业进度 |
get_job_result | 完成后获取结果 |
get_job_log | 查看执行日志 |
cancel_job | 取消正在运行的作业 |
list_jobs | 列出所有作业 |
______________________________________________________________________
例子
示例1:基本主题发现
目标: 使用简单的发夹模式从tRNA序列中发现RNA基序
使用脚本:
python scripts/simple_pipeline.py \
--input examples/data/positive.fa \
--pattern examples/data/simple_pattern.txt \
--output results/basic_discovery/使用MCP(克劳德代码):
Use submit_motif_discovery to process @examples/data/positive.fa with pattern @examples/data/simple_pattern.txt and save results to results/basic_discovery/预期产量:
- 训练有素的模特
results/basic_discovery/model-*/ - 交叉验证结果
- 模型选择统计
示例2:图案扫描
目标: 使用训练好的模型扫描已知图案的序列
使用脚本:
python scripts/motif_scanning.py \
--input examples/data/positive.fa \
--model results/basic_discovery/model-1/train.model \
--threshold 0.8 \
--format csv \
--output results/scanning.csv使用MCP(克劳德代码):
Run scan_motifs on @examples/data/positive.fa using model @results/basic_discovery/model-1/train.model with threshold 0.8 and csv format预期产量:
- 每个序列的主题存在概率
- 主题对齐和位置
- 统计摘要
示例3:机器学习分析
目标: 使用集成机器学习增强基序分析
使用脚本:
python scripts/ml_analysis.py \
--positive examples/data/positive.fa \
--model-type gradient_boost \
--n-estimators 500 \
--output results/ml_enhanced/使用MCP(克劳德代码):
Submit analyze_sequences_ml for @examples/data/positive.fa using gradient_boost with 500 estimators, save to results/ml_enhanced/预期产量:
- 经过训练的具有特征重要性的机器学习模型
- 绩效指标(准确性、精确度、召回率)
- 交叉验证结果
示例4:批处理
目标: 使用相同的训练模型处理多个序列文件
使用MCP(克劳德代码):
Submit batch motif scanning for multiple files:
- @examples/data/positive.fa
- @results/new_sequences_1.fa
- @results/new_sequences_2.fa
Use model @results/basic_discovery/model-1/train.model with threshold 0.7预期产量:
- 扫描每个输入文件的结果
- 所有文件的综合统计数据
- 批处理作业的进度跟踪
______________________________________________________________________
演示数据
这 examples/data/ 目录包含用于测试的示例数据:
| 文件 | 描述 | 与一起使用 |
|---|---|---|
positive.fa | 来自Rfam RF00005的76个带有CAU反密码子的tRNA序列 | 所有工具 |
simple_pattern.txt | 简单发夹图案 (.....) | submit_motif_discovery |
pattern_list | 用点括号表示的完整搜索模式 | 高级主题发现 |
______________________________________________________________________
配置文件
这 configs/ 目录包含配置模板:
| 配置 | 描述 | 参数 |
|---|---|---|
simple_pipeline_config.json | 管道配置 | force_overwrite, verbose, cross_validation |
motif_scanning_config.json | 扫描参数 | threshold, output_format, include_alignments |
ml_analysis_config.json | ML模型设置 | model_type, test_size, n_estimators, cross_validation |
配置示例
{
"model_type": "gradient_boost",
"n_estimators": 200,
"test_size": 0.3,
"cross_validation": 5
}______________________________________________________________________
故障排除
环境问题
问题: 未找到环境
# Recreate environment
mamba create -p ./env python=3.10 -y
mamba activate ./env
pip install numpy scipy pandas scikit-learn loguru click tqdm fastmcp问题: 导入错误
# Verify installation
python -c "from src.server import mcp; print('✅ Server imports work')"问题: 未找到RNAelem二进制文件
# Check binaries are available
elem --help
RNAelem --help
# If missing, rebuild
cd repo/RNAelem
./waf configure --prefix=$HOME/local
./waf build
./waf installMCP问题
问题: 在Claude代码中找不到服务器
# Check MCP registration
claude mcp list
# Re-add if needed
claude mcp remove RNAelem
claude mcp add RNAelem -- $(pwd)/env/bin/python $(pwd)/src/server.py问题: 工具不工作
# Test server directly
python -c "
from src.server import mcp
print(list(mcp.list_tools().keys()))
"工作问题
问题: 作业挂起
# Check job directory
ls -la jobs/
# View job log
cat jobs//job.log问题: 作业失败
Use get_job_log with job_id "" and tail 100 to see error details文件格式问题
问题: FASTA格式错误
# Validate file format
python -c "
from Bio import SeqIO
try:
records = list(SeqIO.parse('examples/data/positive.fa', 'fasta'))
print(f'✅ Found {len(records)} sequences')
except Exception as e:
print(f'❌ FASTA error: {e}')
"问题: 图案文件格式错误
# Check pattern file
cat examples/data/simple_pattern.txt
# Should show: (.....______________________________________________________________________
发展
运行测试
# Activate environment
mamba activate ./env
# Run basic validation
python -c "
from src.server import mcp
from src.jobs.manager import job_manager
print('✅ All components imported successfully')
"正在启动开发服务器
# Run MCP server in dev mode
fastmcp dev src/server.py______________________________________________________________________
业绩说明
- 同步工具:最适合小文件(\10分钟)需要
- 批处理工具:最适合具有相同参数的多个文件
- 内存使用:完整环境约500MB,因数据集大小而异
______________________________________________________________________
许可证
此MCP服务器实现是在与原始RNAelem软件相同的许可条款下提供的。
学分
基于 RNAelem 福永实验室。 为NucleicMCP工具包开发的MCP集成。
