CRISPR编辑脱靶检测全基因组测序

来源:CRISPR编辑脱靶检测全基因组测序(DNA Lab Space 实验教程)| 编译:DNA Lab Space

📎 相关工具:论文撰写

你花了四天建库,两天测序,又熬了一天跑流程,最后拿到结果——gRNA的预测靶点一个没跑掉,但脱靶位点却少得可疑。或者反过来,脱靶列表长得像一份全基因组SNP报告,压根没法看。

这是CRISPR脱靶检测全基因组测序最让人崩溃的两种结局:漏检和误报。无论你是用GUIDE-seq、CIRCLE-seq还是直接用WGS数据扫,只要结果不对劲,问题通常不在测序仪,而在于你建库、比对或过滤的某个环节。

这篇文章按排查顺序展开,从最低级的错误到最隐蔽的坑,逐一拆解。每一条都给了判断方法、解决动作和验证路径,你直接对照自己的流程走就行。

---

第一步:快速排查低级错误

先别急着怀疑算法或测序深度。超过一半的"脱靶检测失败",根子都在最简单的步骤上。

1. 接头污染还在基因组上。 如果你比对后发现有大量reads比对到gDNA区域但soft-clip比例超过30%,大概率是接头没切干净。解决:重新跑一次trim_galore,加`--paired --clip_R1 5 --clip_R2 5`,再比对看mapping率是否降到95%以下。

2. 参考基因组版本选错了。 hg19和hg38的差异在脱靶区域比对时会被无限放大。你比对到hg19,但gRNA设计时用的是hg38坐标,那么真正的脱靶位点可能因为你给比对软件的bed区域不在染色体上而直接被静默丢弃。解决:统一用Ensembl最新版,别信UCSC的旧坐标。

3. 比对率低到离谱但没人看。 如果BAM文件里mapping率低于70%,别碰下游工具,先查是建库还是比对参数问题。解决:用`bwa mem -t 8 -Y`重跑,`-Y`参数保留soft-clip标记,这对识别插入/缺失附近的脱靶事件至关重要。

4. 把多个样品的reads合并了。 这是最隐蔽的低级错误。你为了"提高深度"把对照和处理的BAM合并成一个文件,然后跑脱靶检测。结果就是你的"脱靶位点"全是两个样品之间的多态性位点。解决:必须保持样品独立,用`bcftools isec`对比两个样品各自的VCF,只保留处理组特异的高频变异。

做完这四项,你至少排除了80%的"假失败"。

教程配图2:CRISPR编辑脱靶检测全基因组测序 排查流程示意
▲ 教程配图2:CRISPR编辑脱靶检测全基因组测序 排查流程示意

---

第二步:分维度系统排查

如果低级错误都排除了,结果还是不对,按以下五个模块逐一过。

模块1:建库步骤——你的gDNA到底碎没碎?

现象描述:比对率正常,但脱靶位点呈"团块状"分布——几百个候选位点挤在同一条染色体的一个区域里,其他染色体几乎空白。这不叫脱靶,这叫gDNA碎片化不均。

原理说明:CRISPR脱靶检测的底层逻辑是捕获"被Cas9切断的DNA断点"。如果你的gDNA在打断环节没有被均匀片段化,那么特定染色质开放区域的DNA碎片会被过度扩增,导致断点检测结果偏向这些区域。

解决步骤

1. 取1μg gDNA,用Agilent 2100或TapeStation跑一次电泳。看主峰大小——应该在250-350bp之间,且分布应该近似正态。

2. 如果你的打断设备是Covaris M220,参数直接用推荐值:peak power 50,duty factor 20%,cycles per burst 200,处理时间80秒。别自己改参数。

3. 打断后立即取200ng做1%琼脂糖凝胶电泳验证,看到清晰的主带且没有大片段残留才进行末端修复。

验证方法:重新建库后测序,如果脱靶位点分布均匀了,说明之前确实是打断不均。一般这一步修正后,候选脱靶位点数量会下降50%-70%。

模块2:Cas9切切活性验证——你确认真的切了?

现象描述:全基因组扫描后,连预测靶点都只检出了几个reads,脱靶位点一个没有。你开始怀疑测序深度不够——但计算一下,靶点区域深度其实覆盖到了500×以上。

原理说明:这个案例说明细胞层面的编辑效率太低,并不是检测流程有问题。很多新手拿到慢病毒转染的细胞系直接建库,却忽略了验证Cas9蛋白的可溶性、核定位信号是否完整、gRNA是否被有效转录。如果靶位点本身切割效率低于10%,脱靶信号就会被淹没在背景里。

解决步骤

1. 转染48小时后,取100μL细胞悬液抽gDNA,用T7E1核酸内切酶实验验证靶点切割效率。如果T7E1切割效率低于30%,别继续往下了,先优化转染条件。

2. 检查gRNA的GC含量。如果gRNA的GC含量低于40%或高于70%,转录效率会断崖式下跌。建议用在线工具重新设计,控制在40-70%区间,目标区域二级结构打开。

3. 如果是核糖核蛋白(RNP)电转方式,确认Cas9蛋白与gRNA的摩尔比在1:1到1:1.5之间,电转程序用Lonza的推荐方案,不要随意替换缓冲液。

验证方法:重新进行T7E1验证,确认切割效率高于30%后,再重复建库测序。这一步往往需要你多花2-3天,但比跑一轮无效的通量测序便宜得多。

模块3:比对策略——你输给比对软件的正确位点了吗?

现象描述:脱靶检测软件报错:0个位点,或者只报了靶点本身。你检查了命令行,用的是GATK的常规参数,但忘记告诉它这是一个脱靶检测项目。

原理说明:常规比对会把reads多重比对(multimapping)的丢弃或随机分配。但CRISPR脱靶检测的核心恰恰是"寻找序列非完美匹配的基因组位置"。Cas9切割产物在脱靶位点的序列与gRNA有1-5个碱基的错配。默认比对参数要求reads比对到唯一位置,这等于主动把真实的脱靶信号扔掉了。

解决步骤

1. 比对时用`bwa mem -a`参数,保留所有比对位置,不要用默认的`-M`标记。

2. 下游过滤时不要用MAPQ≥30的阈值,改为MAPQ≥1即可。对于PEM(paired-end mapping)方法,保留MAPQ≥5的位点足够。

3. 如果你用GATK的HaplotypeCaller,请加上`--min-base-quality-score 20`和`--min-mapping-quality 1`参数,否则碱基质量低或比对质量略低的reads会被直接滤掉。

4. 最关键一步:在脱靶检测软件的输入VCF里,必须包含所有SNP和indel,不要做硬过滤。常规WGS分析会滤掉与参考基因组不一致的位点,但脱靶检测恰恰需要这些不一致。

验证方法:用相同数据,分别用默认参数和上述参数跑一次。观察候选位点数量变化。如果从0变成了50+个候选位点,问题就定位在比对策略上。

教程配图3:CRISPR编辑脱靶检测全基因组测序 排查流程示意
▲ 教程配图3:CRISPR编辑脱靶检测全基因组测序 排查流程示意

模块4:背景噪音过滤——你的对照组真的合格吗?

现象描述:脱靶位点检出了2000多个,但用IGV肉眼一看,大部分位点的reads数在4-8个,且对照组里也有相近的reads检出。这显然是假阳性。

原理说明:你漏掉了对照组的基线信号。CRISPR编辑在细胞内会发生DNA损伤修复(NHEJ),但细胞自然状态下也会有零星的DNA断裂和修复事件。若不减去对照组的本底信号,你的脱靶列表会被假阳性淹没。

解决步骤

1. 控制组必须做两个:不转染的细胞(测本底)和转染了无靶向gRNA的细胞(测转染操作引入的DNA损伤)。理想情况下,两个都要做。

2. 设定严格的过滤阈值:处理组reads数≥10,对照组reads数/Snakemake流程中设定的均一化后reads数≤5*——具体数值取决于你的测序深度和背景,但处理组信号至少要是对照组的2倍以上才有意义。有文献报道建议用FDR<0.05结合MACS2的callpeak结果。

3. 用`bedtools intersect`把处理组候选位点与对照组位点作差集,只保留处理组特异的reads。

验证方法:对处理后保留的候选位点进行Sanger测序验证。如果20个随机挑选的候选位点中有18个以上验证出indel,说明你过滤得干净。如果验证率低于50%,进一步收紧阈值。

模块5:测序深度与可靠性——你确定深度够了吗?

现象描述:脱靶位点列表看起来合理,但每次重复实验的结果差异很大——这次的位点和上次相比,重叠率不到50%。

原理说明:这是典型的测序深度不足导致的低重现性。CRISPR脱靶检测对测序深度的要求远高于普通变异检测。因为你在寻找的是低频等位基因(5%-30%的频率)的断点事件,且这些事件在群体中并不均一。

解决步骤

1. 直接在命令行统计碱基覆盖深度:`samtools depth -r chr1:100-200 BAM.file | sort -k3 -n | tail -1`,检查关键位点深度。

2. 如果深度低于200×,对重点候选区域用`bcftools mpileup -d 1000 -q 30 -Q 20`重新调用变异,加大深度限制,并人工查看IGV截图验证。

3. 若一次测序成本有限,可采用两步策略:先全基因组浅扫描(20×-30×),锁定候选位点后用扩增子测序(>1000×深度)定量验证。这个方案比一次全基因组60×便宜60%。

验证方法:用同样条件再跑一次生物学重复,比较两个重复之间候选位点的重叠率。Overlap系数(Jaccard索引)大于0.7视为可靠,低于0.5说明深度不足。

---

第三步:进阶疑难问题

基础问题排查完,还有三个老大难案例,一并说清。

疑难1:Cas9蛋白浓度饱和但gRNA不稳

现象描述:靶点切割效率70%以上,但脱靶位点一旦涉及GC丰富区(>75% GC),就怎么都检测不到。

原因:gRNA与靶点DNA结合时,R环(R-loop)形成速率在GC丰富区显著降低。Cas9切不开高GC区域,脱靶信号自然为零。这不是检测问题,而是真实的编辑活性差异。

解决:改用高保真版本的Cas9(如HiFi Cas9,在N692A/M694A位点突变),它保持了高靶向性,但在高GC区域的切割效率略高。或者换成第二个gRNA,将靶点设计在高GC区域的外侧,扩大window搜索范围。

疑难2:比对结果中的嵌合reads——结构变异与脱靶混为一谈

现象描述:脱靶列表里混着一堆跨度在2kb以上的reads对,且这些reads对与gRNA序列的错配数目在5个以上。这些位点大概率是结构变异(SV)事件,不是Cas9切割位点。

原因:Cas9切割产生的断点通常集中在切割位点两侧各0-50bp的窗口内。如果你的脱靶检测算法没有限制两个配对reads的插入片段大小(insert size)分布,结构变异会溜进来。解决此问题,需要对reads对按`--min-template-length 80 --max-template-length 500`的阈值进行过滤。

解决与验证:对过滤后的候选位点做PCR验证,引物设计在断点上下游200-300bp处。如果条带大小与预期不符,说明是SV事件,直接丢。

疑难3:线粒体基因组与核基因组序列高度相似的区域

现象描述:你检测到的一个"脱靶位点"发生在细胞色素B基因(MT-CYB)区域,但这个位点同时与核基因组上的一个核粒体序列(NUMT)高度同源。

原因:线粒体基因组在进化中向核基因组转移产生了NUMT序列,这些序列在同一参考基因组中有多份拷贝。常规比对会把reads唯一地分配到MT染色体上,导致核基因组上的真实脱靶位点被忽略。

解决:比对时将MT染色体序列从参考基因组中剔除,用`bwa index`重建时直接把MT染色体的fasta文件移出——或者更简单,用`sed '/^>MT/d' genome.fa > genome.noMT.fa`然后重建索引。或者,用专属的脱靶检测工具,如CRISPRitz或Cas-OFFinder,它们对重复区域有内置过滤。

---

避坑总结+实操建议

三条核心结论:

1. 脱靶检测失败的第一排查顺序永远是:建库质量 → Cas9活性 → 比对策略 → 背景过滤 → 测序深度。别跳步。80%的故障在前两步就能找到根因。

2. 比对是所有环节里最便宜但最关键的。用默认参数跑全基因组比对来做脱靶检测,等于把好的数据扔进下水道。花5分钟改参数,比多花2万块补测更划算。

3. 没有对照组的结果,弃之如敝履。宁可少一次处理组测序,也绝对不能省对照组的预算——正确处理组与对照组的配对测序,可以过滤掉85%以上的假阳性位点。

两条日常好习惯:

  • 每次建库前写一份5行的checklist:gDNA完整(检查电泳主带)、片段化后大小(2100验证)、末端修复产物浓度(Qubit>5ng/μL)、接头连接效率(qPCR,拿≥10%回收率)、空白对照(NTC)的扩增曲线。
  • 操作步骤的电子版记录用电子实验记录本(ELN)全部留存,特别是每次的gRNA批号、Cas9蛋白采购日期和电转参数。三个月后你再回来看,这份记录能救你一次。

---

工具引导

如果你在gRNA设计阶段就希望降低脱靶风险,可以在设计端直接做过滤:我们平台的CRISPR gRNA设计工具内置了基于全基因组脱靶评分的gRNA排序功能,同时整合了Cas-OFFinder和MIT特异性评分。减少脱靶是上游预防的关键,这份教程可以帮你“发现”问题。但对于已经发生脱靶的位点,需要结合NCBI BLAST定位精确基因组坐标,或用Ensembl VEP对候选位点做功能注释——两者都能在你的浏览器端直接调用。

下次建库前,先花10分钟把gRNA的脱靶预测跑一遍,把评分最高的前3个gRNA留作备选。这份教程能帮你少踩90%的坑,而好的设计工具能让你大多数时候根本不用踩坑。

延伸阅读:更多代谢通路设计、多基因组装等合成生物学工具,可访问 DNA Lab Space

📎 相关文章

MALDI质谱峰抑制基质结晶优化 09-12 生物传感器响应漂移参比电极维护 09-12 蛋白冻干塌陷赋形剂配比优化 09-12 支原体检测假阴性样本富集改进 09-12