跳转至

crispr_cli

工具简介

CRISPR_CLI 是一个高效的命令行工具,用于 CRISPR-Cas9 系统的 sgRNA 设计和脱靶位点分析。crispr_cli 使用 C++编写,软件使用了多种优化策略以提高软件运行速度,适合在玉米、小麦等大基因组中使用,以及全基因组 sgRNA 批量设计。该工具支持两种主要功能:

  • ontarget:在特定基因组区域搜索自定义PAM序列的 sgRNA 靶点
  • offtarget:使用 sgRNA 列表扫描基因组中的脱靶位点,支持 错配搜索混合(mismatch+indel)搜索 两种模式,这两种搜索方式使用了不同的算法策略

主要特点

  • ontarget 子模块:

    • 搜索 gRNA 时,支持使用 gene id 和 区间坐标 (e.g., chr1:1000-2000);
    • 支持对多个 gene id 同时搜索 gRNA;
    • 支持用户自定义 PAM 序列和 PAM 方向 (5|3),如NGG、TTTV等;
    • 支持自定义 spacer 序列长度;
    • 支持对 PAM 序列为 NGG 的 gRNA进行效率打分(Doench2014);
  • offtarget 子模块:

    • 支持纯 mismatch 搜索 ,可指定 mismatch 数量,这种模式速度最快;
    • 支持 mismatch+indel 混合搜索 ,可指定 mismatch+indel 的数量,搜索速度相对较慢;
    • 支持指定 offtarget seed 区的长度和 seed 区 mismatch 数量;
    • 支持在指定范围内搜索 offtarget,全基因组、基因区和通过区间坐标自定义区域;
    • 对搜索到的每个offtarget进行位置注释(exon(gene id)、Intron(gene id)、Intergenic);
    • 对 PAM 序列为 NGG 的 offtarget 进行脱靶率打分(cfd);

系统要求及安装

硬件需求

由于软件使用了AVX512 进行加速,因此本软件只能在支持 AVX512 指令集的CPU上运行(intel 全系列、AMD 7XX4/7XX5 系列),不支持 ARM CPU,否则软件运行报错 Illegal instruction

软件安装

下载预编译静态版本,支持在各类 Linux 系统上运行(Centos7/Rocky8/Rocky9 等)

wget http://hpc.ncpgr.cn/data/crispr_cli_static
mv crispr_cli_static crispr_cli
chmod +x crispr_cli
./crispr_cli -h

命令详解

Note

软件在第一次运行时,会创建基因组和注释文件的缓存文件(crispr_genome_cache_xxx.fasta.bincrispr_gff_cache_xxx.gff3.bin),以提高基因组和注释文件的加载解析速度,因此第一次运行时基因组文件和注释文件加载相对较慢,后续运行时加载速度较快。

ontarget 命令

功能:在特定基因组区域设计潜在的 sgRNA 靶点。

基本用法

./crispr_cli ontarget -g genome.fa [location] [options]

位置参数(选择一个):

  • --region <chr:start-end>:特定区域(例如,chr1:1000-2000)
  • --gene <id> --gff <file>:从 GFF3 文件中查找基因 ID
  • --gene-list <file> --gff <file>:包含基因 ID 列表的文件(每行一个)

必需参数

  • -g, --genome <file>:基因组 FASTA 文件路径

可选参数

参数描述默认值
-o, --output <file>输出文件路径targets.txt
-p, --pam <string>PAM 序列NGG
-l, --length <int>Spacer 长度20
--gff <file>用于注释的 GFF3 文件
--intergenic-gene-window <bp>如果是基因间区,则显示窗口大小内的 gene id,如显示上下游 100bp 范围内的 gene id0
--pam-loc <5|3>PAM 位置(5' 或 3')3

offtarget 命令

功能:使用给定的 sgRNA 列表扫描基因组中的脱靶位点。

基本用法

./crispr_cli offtarget -g genome.fa -s sgrna.txt [options]

必需参数

  • -g, --genome <file>:基因组 FASTA 文件路径
  • -s, --sgrna <file>:sgRNA 列表文件路径(格式:ID Sequence)

可选参数

参数描述默认值
-o, --output <file>输出文件路径off_targets.tsv
--summary <file>摘要文件路径基于输出文件名自动生成
-m, --mismatches <int>错配扫描的最大错配数3
-k, --edit-distance <int>编辑扫描的最大距离(错配和插入/缺失)
-p, --pam <string>PAM 序列NGG
-t, --threads <int>线程数系统默认
--gff <file>用于注释的 GFF3 文件
--intergenic-gene-window <bp>如果是基因间区,则显示窗口大小内的 gene id,,如显示上下游 100bp 范围内的 gene id0
--pam-loc <5|3>PAM 位置(5' 或 3')3
--seed-len <int>种子区域长度0(禁用)
--seed-mismatches <int>种子区域允许的最大错配数1
--scan-scope <genome|gene|custom>扫描范围,全基因组、gene 区、自定义区间genome
--region-file <file>自定义扫描范围的 BED 文件
--output-cigar输出 CIGAR 字符串(= 匹配,X 错配,I/D 插入/缺失)禁用
--format-mismatch将错配格式化为小写字母(仅适用于 -m)禁用

注意

  • -k-m 不能同时使用
  • --seed-mismatches 不能与 -k(编辑扫描)一起使用
  • --format-mismatch 不能与 -k(编辑扫描)一起使用

offtarget 输入文件格式说明

sgRNA 列表文件

sgRNA 列表文件(sgrna.txt)中每行代表一条sgRNA序列,可以仅包含sgRNA序列。注意这里的sgRNA序列不含PAM序列,即 spacer 序列,PAM 由 --pam 选项指定。

ID

示例

AGCTGATCGTAGCTAGCTAG    
TCGATCGATCGATCGATCGA
或每行2列,即 id、spacer 序列
ID    Sequence

示例

sgRNA_1    AGCTGATCGTAGCTAGCTAG
sgRNA_2    TCGATCGATCGATCGATCGA
也可以直接直接使用 ontarget 模块的输出文件 targets.txt

BED 文件

用于自定义扫描范围的 BED 文件应包含以下列,以制表符分隔:

Chromosome    Start    End

示例

chr1    1000    2000
chr2    3000    4000

输出文件格式

ontarget 命令输出

输出文件(默认为 targets.txt):

包含以下列: - ID: ID - Sequence: Spacer 序列(不含 PAM 序列) - Chrom: 染色体 - Pos: 位置坐标 - Strand: 链方向 - Annotation: 注释信息(如果提供了 GFF 文件) - efficiency_score(Doench2014): 效率评分

示例:

#ID Sequence    Chrom   Pos Strand  Annotation  efficiency_score(Doench2014)
1A_40082_+  ATCCGACCCATCTTGAAACA    1A  40082   +   Intergenic  0.5054
1A_40109_-  CGCATGCATGTCAGACTCCT    1A  40109   -   Exon(gene:TraesCS1A02G000100)   0.0631
1A_40089_+  CCATCTTGAAACACGGACCA    1A  40089   +   Intergenic  0.1571
1A_40115_+  CTGACATGCATGCGAGTCGA    1A  40115   +   Exon(gene:TraesCS1A02G000100)   0.2350
1A_40116_+  TGACATGCATGCGAGTCGAC    1A  40116   +   Exon(gene:TraesCS1A02G000100)   0.2260
1A_40150_-  TCAGCTTCCTTGCGCATCCC    1A  40150   -   Exon(gene:TraesCS1A02G000100)   0.1065
1A_40129_+  AGTCGACGGGTTCTGAAACC    1A  40129   +   Exon(gene:TraesCS1A02G000100)   0.0215
1A_40130_+  GTCGACGGGTTCTGAAACCT    1A  40130   +   Exon(gene:TraesCS1A02G000100)   0.0570
1A_40140_+  TCTGAAACCTGGGATGCGCA    1A  40140   +   Exon(gene:TraesCS1A02G000100)   0.4116

Note

ontarget 模块的输出文件可直接作为 offtarget 模块的输入文件。

offtarget 命令输出

主要输出文件(默认为 off_targets.tsv):

包含以下列: - Chrom: 脱靶位点染色体 - Pos: 脱靶位点位置坐标 - Strand: 链方向 - sgRNA_ID: 输入 sgRNA ID - Distance: 脱靶序列的错配数或indel数量 - Seq: 脱靶位点序列 - Annotation: 注释信息(如果提供了 GFF 文件) - CFD_Score: 脱靶打分,该评分越高表示脱靶可能性越大

示例:

Chrom   Pos Strand  sgRNA_ID    Distance    Seq Annotation  CFD_Score
1A  185600418   +   1A_40184_-  5   GACACCGGCGAGGCCCGAGACGG Intergenic  0.2176
1A  185600418   +   1A_57926_-  5   GACACCGGCGAGGCCCGAGACGG Intergenic  0.2176
1A  185600735   +   1A_60890_-  5   GAGACGAGCTTCGTCCATGGTGG Intergenic  0.0000
1A  185600735   +   1A_61427_-  5   GAGACGAGCTTCGTCCATGGTGG Intergenic  0.0569
1A  185601036   +   1A_58840_+  5   TGAGACGGCGACAGGTGCGTCGG Intergenic  0.0000
1A  185601100   +   1A_47655_-  5   GGGAGGAGGAGAGGGGGACGTGG Intergenic  0.0617
1A  185601100   +   1A_56671_-  5   GGGAGGAGGAGAGGGGGACGTGG Intergenic  0.0617
1A  185601100   +   1A_67957_-  5   GGGAGGAGGAGAGGGGGACGTGG Intergenic  0.0617
1A  185601152   -   1A_41977_+  5   CCAGGCGTTGGCGGAAGCAGGAG Intergenic  0.0190
摘要文件(默认为 off_targets_Summary.tsv):

包含每个 sgRNA 的脱靶位点统计信息,包含以下列:

  • sgRNA_ID: sgRNA 的唯一标识符
  • Sequence: sgRNA 的具体序列
  • Chrom: sgRNA 所在的染色体
  • Pos: sgRNA 在染色体上的位置
  • Strand: sgRNA 所在的链方向(+ 或 -)
  • Annotation: sgRNA 的注释信息(如基因区域、外显子/内含子等)
  • efficiency_score(Doench2014): 使用 Doench 2014 算法计算的 sgRNA 效率评分
  • Total_Offtargets: 找到的脱靶位点总数
  • Max_Off_Target_Score: 所有脱靶位点中的最高 CFD 评分
  • Specificity_Score: 特异性评分,计算方式为 1/(1+sum_cfd_score),其中 sum_cfd_score 是所有脱靶位点的 CFD 评分总和。该值越高表示特异性越好,脱靶效应越小。

示例:

sgRNA_ID    Sequence    Chrom   Pos Strand  Annotation  efficiency_score(Doench2014)    Total_Offtargets    Max_Off_Target_Score    Specificity_Score
1A_40082_+  ATCCGACCCATCTTGAAACA    1A  40082   +   Intergenic  0.5054  2621    0.9375  0.00518
1A_40109_-  CGCATGCATGTCAGACTCCT    1A  40109   -   Exon(gene:TraesCS1A02G000100)   0.0631  6912    0.9167  0.00305
1A_40089_+  CCATCTTGAAACACGGACCA    1A  40089   +   Intergenic  0.1571  19403   0.8571  0.00309
1A_40115_+  CTGACATGCATGCGAGTCGA    1A  40115   +   Exon(gene:TraesCS1A02G000100)   0.2350  4312    0.7619  0.00296
1A_40116_+  TGACATGCATGCGAGTCGAC    1A  40116   +   Exon(gene:TraesCS1A02G000100)   0.2260  3074    0.5068  0.00534
1A_40150_-  TCAGCTTCCTTGCGCATCCC    1A  40150   -   Exon(gene:TraesCS1A02G000100)   0.1065  11968   1.0000  0.00086
1A_40129_+  AGTCGACGGGTTCTGAAACC    1A  40129   +   Exon(gene:TraesCS1A02G000100)   0.0215  3918    0.9375  0.00694
1A_40130_+  GTCGACGGGTTCTGAAACCT    1A  40130   +   Exon(gene:TraesCS1A02G000100)   0.0570  1671    0.9375  0.00777
1A_40140_+  TCTGAAACCTGGGATGCGCA    1A  40140   +   Exon(gene:TraesCS1A02G000100)   0.4116  11525   1.0000  0.00069

使用示例

示例 1:使用 ontarget 模块在特定区域设计 sgRNA

./crispr_cli ontarget -g ./Triticum_aestivum.IWGSC.dna.toplevel.fa --region 1A:1000000-1001000 -o targets.tsv -l 20

此命令将在 1A 的 1000000-1001000 区域设计 20bp 长的 sgRNA,并将结果输出到 targets.tsv。

示例 2:使用 ontarget 模块为特定基因设计 sgRNA

./crispr_cli -g ./Triticum_aestivum.IWGSC.dna.toplevel.fa --gene TraesCS1A02G000100 --gff ./Triticum_aestivum.IWGSC.62.gff3 --pam NGG --pam-loc 3 -o TraesCS1A02G000100_sgrna.tsv

此命令将为 TraesCS1A02G000100 基因设计 sgRNA,并使用 Triticum_aestivum.IWGSC.62.gff3 文件进行注释,结果输出到 TraesCS1A02G000100_sgrna.tsv 。

示例 3:使用 offtarget 模块扫描脱靶位点

./crispr_cli offtarget -g ./Triticum_aestivum.IWGSC.dna.toplevel.fa -s TraesCS1A02G000100_sgrna.tsv -m 3 -p NGG --pam-loc 3  --gff ./Triticum_aestivum.IWGSC.62.gff3 -o results.tsv -t 40

此命令将使用 40 个线程,以最大 3 个错配扫描 Triticum_aestivum.IWGSC.dna.toplevel.fa 基因组中的脱靶位点,并将结果输出到 results.tsv。

联系方式

欢迎反馈bug、提功能需求,联系邮箱 liuhao1122@mail.hzau.edu.cn

本文阅读量  次
本站总访问量  次