跳转至

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阵列结构

Leader -> [Repeat]-[Spacer1]-[Repeat]-[Spacer2]-[Repeat]-[Spacer3]-[Repeat]

二、CRISPR-Cas分类

效应复合物代表特点
Class 1I多蛋白复合物Cas3最常见
Class 1III多蛋白复合物Cas10切割RNA和DNA
Class 1IV多蛋白复合物-缺少适应模块
Class 2II单蛋白Cas9基因编辑明星
Class 2V单蛋白Cas12检测应用
Class 2VI单蛋白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的多样性。