671 CRISPR-Cas系统分析¶
一句话概述:CRISPR-Cas是细菌的"免疫记忆系统"——CRISPRCasFinder检测CRISPR阵列和Cas蛋白,CCTyper进行精确亚型分类。
核心知识点速查表¶
| 知识点 | 关键内容 |
|---|---|
| CRISPR阵列 | 重复序列(repeat)和间隔序列(spacer)交替排列 |
| Cas蛋白 | CRISPR关联蛋白,执行免疫功能 |
| 分类系统 | 2类6型,44个亚型/变体 |
| CRISPRCasFinder | 标准工具,检测阵列+Cas蛋白 |
| CCTyper | 更高精度的亚型分类(准确率98.6%) |
| Spacer分析 | 间隔序列揭示历史噬菌体感染记录 |
一、CRISPR-Cas是什么?(白话解释)¶
打个比方:CRISPR-Cas就像细菌的"通缉犯照片墙"。每当一个噬菌体(病毒)入侵细菌,细菌就从病毒DNA上"剪"一小段下来(spacer),贴到自己的"照片墙"(CRISPR阵列)上。下次同样的病毒再来,细菌就能识别并消灭它——这就是细菌的适应性免疫。
CRISPR阵列结构:
二、CRISPR-Cas分类¶
| 类 | 型 | 效应复合物 | 代表 | 特点 |
|---|---|---|---|---|
| Class 1 | I | 多蛋白复合物 | Cas3 | 最常见 |
| Class 1 | III | 多蛋白复合物 | Cas10 | 切割RNA和DNA |
| Class 1 | IV | 多蛋白复合物 | - | 缺少适应模块 |
| Class 2 | II | 单蛋白 | Cas9 | 基因编辑明星 |
| Class 2 | V | 单蛋白 | Cas12 | 检测应用 |
| Class 2 | VI | 单蛋白 | Cas13 | 切割RNA |
三、CRISPRCasFinder使用¶
# CRISPRCasFinder安装
# 方法1: Docker(推荐)
docker pull crisprlab/crisprcasfinder # 拉取镜像
# 方法2: 本地安装(需要Perl和依赖)
# 在线版: https://crisprcas.i2bc.paris-saclay.fr/CrisprCasFinder/Index
# 运行CRISPRCasFinder
perl CRISPRCasFinder.pl \
-in genome.fasta \ # 输入基因组
-out crispr_results/ \ # 输出目录
-cas \ # 同时检测Cas蛋白
-keep \ # 保留中间文件
-so /path/to/sel392v2.so \ # vmatch库文件
-cf /path/to/CasFinder-2.0.3 # CasFinder路径
# Docker运行
docker run --rm \
-v $(pwd):/data \
crisprlab/crisprcasfinder \
-in /data/genome.fasta \
-out /data/crispr_results/ \
-cas -keep
# 输出结构:
# crispr_results/
# ├── TSV/ # 表格结果
# │ ├── Crisprs_REPORT.tsv # CRISPR阵列汇总
# │ └── Cas_REPORT.tsv # Cas蛋白汇总
# ├── GFF/ # GFF注释文件
# └── result.json # JSON完整结果
四、CCTyper(CRISPRCasTyper)使用¶
# CCTyper安装
conda install -c conda-forge -c bioconda cctyper # conda安装
# 或
pip install cctyper # pip安装
# 运行CCTyper
cctyper \
genome.fasta \ # 输入基因组
cctyper_output/ \ # 输出目录
--prodigal meta \ # 基因预测模式(meta适用于MAG)
--threads 8 # 线程数
# 输出文件:
# cctyper_output/
# ├── cas_operons.tab # Cas操纵子信息
# ├── crisprs_all.tab # 所有CRISPR阵列
# ├── crisprs_near_cas.tab # 靠近Cas的CRISPR阵列
# ├── spacers/ # Spacer序列
# ├── CRISPR_maps.pdf # 基因图谱可视化
# └── plot.svg # 系统可视化
# CCTyper亚型分类(基于repeat序列的机器学习模型)
# 支持44个亚型/变体
# 准确率中位数: 98.6%
五、Spacer分析(噬菌体历史记录)¶
# 分析CRISPR spacer序列,追踪历史噬菌体感染
import pandas as pd # 数据处理
from Bio import SeqIO # 序列处理
import subprocess # 命令行调用
# 1. 提取spacer序列
spacers = []
for record in SeqIO.parse("cctyper_output/spacers/all_spacers.fa", "fasta"):
spacers.append({
"id": record.id,
"sequence": str(record.seq),
"length": len(record.seq)
})
spacer_df = pd.DataFrame(spacers)
print(f"共提取 {len(spacer_df)} 个spacer序列")
# 2. 将spacer比对到噬菌体数据库
# 使用BLASTn搜索匹配的噬菌体
def blast_spacers(spacer_fasta, phage_db, output):
"""将spacer比对到噬菌体数据库"""
cmd = [
"blastn",
"-query", spacer_fasta, # Spacer序列
"-db", phage_db, # 噬菌体基因组数据库
"-out", output, # 输出文件
"-outfmt", "6 qseqid sseqid pident length mismatch qlen slen",
"-evalue", "1e-5", # E值阈值
"-word_size", "7", # 小word_size适合短序列
"-max_target_seqs", "5" # 每个spacer最多5个hit
]
subprocess.run(cmd)
blast_spacers("all_spacers.fa", "phage_genomes_db", "spacer_blast.txt")
# 3. 解析比对结果
blast_results = pd.read_csv("spacer_blast.txt", sep='\t',
names=["spacer_id", "phage_id", "identity", "length",
"mismatch", "spacer_len", "phage_len"])
# 过滤高质量匹配(>90%一致性,覆盖>80% spacer长度)
good_hits = blast_results[
(blast_results["identity"] > 90) &
(blast_results["length"] / blast_results["spacer_len"] > 0.8)
]
print(f"\n高置信度spacer-噬菌体匹配: {len(good_hits)}")
print("\n匹配的噬菌体:")
print(good_hits["phage_id"].value_counts().head(10))
# 4. 构建CRISPR时间线
# Spacer插入方向:最新的spacer在leader端
# 可以重建噬菌体感染的时间顺序
print("\n噬菌体感染时间线(新→旧):")
for _, row in good_hits.iterrows():
spacer_num = int(row["spacer_id"].split("_")[-1]) # spacer编号
print(f" Spacer {spacer_num}: 匹配 {row['phage_id']} "
f"(一致性: {row['identity']:.1f}%)")
六、CRISPR-Cas在基因组挖掘中的应用¶
# 挖掘新型CRISPR-Cas系统(Type III为例)
# 使用Snakemake流程
# 1. 用Cas10 HMM profiles搜索
hmmsearch \
--tblout cas10_hits.tbl \ # 表格输出
-E 1e-10 \ # E值阈值
--cpu 8 \ # CPU数
Cas10_profiles.hmm \ # Cas10 HMM模型
all_proteins.faa # 所有蛋白质序列
# 2. 提取Cas10邻近区域
# 上下游各取20kb的基因组区域
# 3. 用CCTyper对提取区域详细注释
cctyper extracted_loci.fasta cctyper_loci/ --prodigal meta
常见报错与解决¶
| 报错 | 原因 | 解决方案 |
|---|---|---|
| CRISPRCasFinder安装困难 | Perl依赖复杂 | 用Docker版本 |
| CCTyper报"no CRISPR found" | 该菌确实没有CRISPR或基因组不完整 | 检查基因组完整度(CheckM) |
| Spacer比对率很低 | 噬菌体数据库不全 | 使用更大的病毒数据库(如IMG/VR) |
| Cas蛋白亚型不确定 | 新型或退化的Cas蛋白 | 结合进化分析确认 |
| 假阳性CRISPR(串联重复被误判) | 非CRISPR的重复序列 | 看CRISPRCasFinder的Evidence Level(≥3级才可信) |
速查表¶
# CRISPR-Cas分析流程
基因组 → CRISPRCasFinder/CCTyper
→ CRISPR阵列检测(repeat+spacer)
→ Cas蛋白鉴定和分型
→ Spacer序列提取
→ Spacer vs 噬菌体数据库比对
→ 噬菌体感染历史重建
# 工具选择
标准分析: CRISPRCasFinder (最广泛引用)
精确分型: CCTyper (准确率更高, 98.6% vs 93.9%)
→ 推荐两者配合使用
# CRISPRCasFinder Evidence Level
Level 1: 低置信度(可能是假阳性)
Level 2: 中置信度
Level 3: 高置信度
Level 4: 最高置信度(靠近Cas蛋白的完整阵列)
# CCTyper亚型分类
I-A, I-B, I-C, I-D, I-E, I-F, I-F(Transposon), I-G
II-A, II-B, II-C
III-A, III-B, III-C, III-D, III-E, III-F
IV-A, IV-B, IV-C, IV-D, IV-E
V-A, V-B, V-C, V-D, V-E, V-F, V-G, V-H, V-I, V-J, V-K
VI-A, VI-B, VI-C, VI-D
面试高频问题¶
Q1:CRISPR-Cas的分类系统是怎样的? A:分为2个类、6个型。Class 1(I、III、IV型)使用多蛋白效应复合物,Class 2(II、V、VI型)使用单蛋白效应子。II型的Cas9最著名(基因编辑),但I型在自然界最常见。目前共有44个亚型/变体。
Q2:CRISPRCasFinder和CCTyper有什么区别? A:CRISPRCasFinder是标准工具,能检测CRISPR阵列和Cas蛋白。CCTyper在亚型分类上更精确——用机器学习对repeat序列分类,覆盖更多亚型(44个vs CRISPRCasFinder的19个),中位准确率98.6% vs 93.9%。实际研究中两者经常配合使用。
Q3:CRISPR spacer分析有什么应用? A:(1) 追踪噬菌体感染历史(spacer=噬菌体"犯罪记录");(2) 菌株分型(不同菌株有不同spacer组合);(3) 预测噬菌体-宿主关系(spacer匹配=免疫记忆);(4) 工业菌株保护(评估噬菌体抗性)。
Q4:如何判断一个CRISPR阵列的可靠性? A:看CRISPRCasFinder的Evidence Level:Level 4(最可信)——阵列完整且靠近Cas基因;Level 1(最不可信)——可能是普通串联重复。一般只分析Level≥3的阵列。还要检查repeat序列的保守性和spacer的多样性。