670 质粒鉴定与分析¶
一句话概述:质粒是细菌水平基因转移的核心载体——PlasmidFinder鉴定复制子类型,MOB-suite重建和分型完整质粒序列。
核心知识点速查表¶
| 知识点 | 关键内容 |
|---|---|
| PlasmidFinder | 基于复制子序列的质粒鉴定(高特异度99%) |
| MOB-suite | 质粒重建+MOB分型+转移性预测(高灵敏度95%) |
| MOBFinder(2024) | 基于语言模型的宏基因组质粒MOB分型 |
| 质粒分型 | Inc型(复制子)、MOB型(松弛酶)、MPF型(配对形成) |
| pMLST | 质粒多位点序列分型 |
| 转移性预测 | 可接合/可动员/不可动员 |
一、为什么质粒分析重要?(白话解释)¶
打个比方:质粒就像细菌之间传递的"U盘"——它们携带耐药基因、毒力因子等重要信息,可以在不同细菌之间自由传递。了解质粒就像了解"U盘的品牌(类型)、容量(大小)和传输方式(可否接合转移)"。
二、PlasmidFinder¶
# PlasmidFinder安装
conda install -c bioconda plasmidfinder # conda安装
# 在线版:https://cge.food.dtu.dk/services/PlasmidFinder/
# 命令行运行
plasmidfinder.py \
-i genome.fasta \ # 输入基因组/contigs
-o pf_results/ \ # 输出目录
-p /path/to/plasmidfinder_db \ # 数据库路径
-t 0.90 \ # 序列一致性阈值(90%)
-l 0.60 \ # 最小覆盖度(60%)
-x # 扩展输出
# PlasmidFinder输出解读
# Plasmid: 检测到的质粒复制子类型(如IncF、IncI1、ColE1)
# Identity: 与参考序列的一致性
# Coverage: 查询序列对参考的覆盖度
# Contig: 检测到复制子的contig名
# pMLST(质粒MLST分型)
pmlst.py \
-i genome.fasta \ # 输入
-o pmlst_results/ \ # 输出
-p /path/to/pmlst_db \ # pMLST数据库
-s IncF # 指定质粒类型(IncF方案)
三、MOB-suite¶
# MOB-suite安装
pip install mob_suite # pip安装
# 或
conda install -c bioconda mob_suite # conda安装
# 1. MOB-recon:从草稿基因组重建质粒
mob_recon \
--infile assembly.fasta \ # 输入组装结果
--outdir mob_recon_out/ \ # 输出目录
--num_threads 8 # 线程数
# MOB-recon输出文件:
# chromosome.fasta: 染色体contigs
# plasmid_*.fasta: 各个质粒的contigs
# contig_report.txt: 每个contig的分类(染色体/质粒)
# mobtyper_results.txt: 质粒分型结果
# 2. MOB-typer:对已知质粒序列分型
mob_typer \
--infile plasmid.fasta \ # 输入质粒序列
--outfile mob_typer_out.txt # 输出分型结果
# MOB-typer输出包含:
# - 复制子类型(rep_type)
# - 松弛酶类型(mob_type):MOB分型
# - 配对形成类型(mpf_type)
# - 预测的转移性(predicted_mobility)
# - MOB cluster编号
# - 预测的宿主范围
MOB-suite结果解读¶
# 解析MOB-suite结果
import pandas as pd # 数据处理
# 读取MOB-typer结果
mob = pd.read_csv("mobtyper_results.txt", sep='\t')
print(mob.columns.tolist()) # 查看所有列
# 关键列解读
for _, row in mob.iterrows():
print(f"\n质粒: {row.get('sample_id', 'unknown')}")
print(f" 大小: {row.get('size', 'NA')} bp")
print(f" 复制子类型: {row.get('rep_type(s)', 'unknown')}")
print(f" MOB类型: {row.get('relaxase_type(s)', 'unknown')}")
print(f" MPF类型: {row.get('mpf_type', 'unknown')}")
print(f" 转移性: {row.get('predicted_mobility', 'unknown')}")
# 转移性分类:
# conjugative: 可自主接合转移(有MOB和MPF)
# mobilizable: 可被辅助动员(有MOB无MPF)
# non-mobilizable: 不可移动(无MOB)
print(f" MOB cluster: {row.get('mash_nearest_neighbor', 'unknown')}")
print(f" 宿主范围: {row.get('predicted_host_range_overall_rank', 'unknown')}")
四、宏基因组质粒分析¶
# 从宏基因组中鉴定质粒contigs
# 方法1: PlasFlow(基于神经网络)
PlasFlow.py \
--input contigs.fasta \ # 输入组装contigs
--output plasflow_results \ # 输出前缀
--threshold 0.7 # 概率阈值
# 方法2: MOBFinder (2024, 基于语言模型)
# 专门处理碎片化的宏基因组contigs
# 支持10种MOB类型 + non-mobilizable分类
mobfinder \
--input meta_contigs.fasta \ # 宏基因组contigs
--output mobfinder_results/ # 输出目录
# 质粒-耐药基因关联分析
import pandas as pd
# 读取MOB-recon分类结果
contig_report = pd.read_csv("contig_report.txt", sep='\t')
# 读取AMRFinderPlus耐药基因结果
amr = pd.read_csv("amrfinder_results.tsv", sep='\t')
# 关联:哪些耐药基因在质粒上?
plasmid_contigs = contig_report[
contig_report["molecule_type"] == "plasmid"]["contig_id"].tolist()
amr_on_plasmid = amr[amr["Contig id"].isin(plasmid_contigs)]
amr_on_chromosome = amr[~amr["Contig id"].isin(plasmid_contigs)]
print(f"质粒上的耐药基因: {len(amr_on_plasmid)}")
print(f"染色体上的耐药基因: {len(amr_on_chromosome)}")
print(f"\n质粒携带的耐药基因:")
for _, row in amr_on_plasmid.iterrows():
print(f" {row['Gene symbol']} ({row['Subclass']}) - {row['Contig id']}")
五、质粒可视化¶
# 使用Proksee/CGView可视化质粒
# Proksee在线:https://proksee.ca/
# 或使用Circos
# 配置质粒环状图显示:
# - 基因
# - 耐药基因(红色标注)
# - 复制子(蓝色标注)
# - GC含量/GC偏斜
常见报错与解决¶
| 报错 | 原因 | 解决方案 |
|---|---|---|
| PlasmidFinder未检测到复制子 | 新型复制子不在数据库中 | 降低阈值或用MOB-suite |
| MOB-recon将染色体contig误判为质粒 | 小contig不好区分 | 设置最小contig长度或结合其他证据 |
| 短读长组装不出完整质粒 | 重复序列导致断裂 | 使用长读长测序(Nanopore/PacBio) |
| MOB-suite安装依赖冲突 | Python版本或mash版本 | 用conda创建专用环境 |
| 多个质粒合并为一个 | 共享序列导致组装错误 | 用MOB-recon的聚类功能分离 |
速查表¶
# 质粒分析流程
基因组组装 → 质粒鉴定(PlasmidFinder/MOB-recon)
→ 质粒分型(MOB-typer: Rep/MOB/MPF)
→ 转移性预测(conjugative/mobilizable/non-mobilizable)
→ 耐药基因定位(染色体vs质粒)
→ 宿主范围评估
# 工具对比
PlasmidFinder: 高特异度(99%), 低灵敏度(50%)
MOB-suite: 高灵敏度(95%), 中特异度(88%)
→ 推荐组合使用: PlasmidFinder确认 + MOB-suite发现
# 质粒分型体系
Inc型(复制子): IncF, IncI1, IncN, IncX...
MOB型(松弛酶): MOBF, MOBP, MOBQ, MOBH...
MPF型(配对形成): MPFT, MPFF, MPFI...
# 转移性判定
有MOB + 有MPF → conjugative(可接合)
有MOB + 无MPF → mobilizable(可动员)
无MOB + 无MPF → non-mobilizable(不可移动)
面试高频问题¶
Q1:PlasmidFinder和MOB-suite有什么区别? A:PlasmidFinder基于复制子序列比对,特异度高(99%)但灵敏度低(50%)——只能找到有已知复制子的质粒。MOB-suite综合复制子、松弛酶、MPF等多种标记,灵敏度高(95%),还能从草稿基因组重建完整质粒序列。推荐组合使用。
Q2:什么是MOB分型? A:MOB分型基于质粒的松弛酶(relaxase)基因分类。松弛酶是质粒接合转移中切割oriT位点的关键酶。不同的MOB类型(如MOBF、MOBP、MOBQ)代表不同的接合转移系统,与质粒的宿主范围和传播能力密切相关。
Q3:为什么质粒上的耐药基因更危险? A:因为质粒可以在不同细菌之间水平转移(HGT),携带的耐药基因能快速传播。一个MCR-1(粘菌素耐药基因)在IncI2型质粒上,可以在几小时内从一个菌株转移到另一个菌株。染色体上的耐药基因则只能通过垂直遗传传给后代。
Q4:2024年有什么质粒分析的新工具? A:MOBFinder(2024年GigaScience)使用语言模型对碎片化的宏基因组质粒片段进行MOB分型,解决了传统方法对短contig分型困难的问题。它能将质粒片段分为10种MOB类型和一个非可移动类别。