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.bin,crispr_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 id | 0 |
--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 id | 0 |
--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
ID Sequence
示例:
sgRNA_1 AGCTGATCGTAGCTAGCTAG
sgRNA_2 TCGATCGATCGATCGATCGA
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
包含每个 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
本文阅读量 次本站总访问量 次