介绍
gencore
能够对双端测序的 NGS
数据进行 read
去重,消除文库制备和测序过程中引入的测序错误。
gencore
是用 C++
写的,相比于 Picard
等其他工具,具有更快的速度、更少的内存消耗.
同时,能够处理包含 唯一标识符 unique molecular identifiers(UMI)
的测序数据。
原理
gencore
的原理简单来说就是:
- 首先根据每条
read
的染色体id
,起始位置,以及模板长度末端位置进行分组- 然后,在每个分组内,根据
umi
是否相同进行聚类- 在每个类中,双端测序的
read1
和read2
分开分别进行去重矫正- 去重矫正: 根据碱基出现的频率进行位点矫正,在频率过低时加入了参考基因组对应位置的碱基进行矫正
安装
安装使用该软件,需要保证环境中有 htslib
及 zlib
两个库
1. 通过 conda 安装
conda install -c bioconda gencore
2. 下载二进制文件
二进制文件下载地址:http://opengene.org/gencore/gencore
wget http://opengene.org/gencore/gencore
chmod a+x ./gencore
注:只适用于 Linux
系统,CentOS/Ubuntu
3. 源码编译
# step 1: 从 GitHub上下载源码,也可手动下载解压
git clone https://github.com/OpenGene/gencore.git
# step 2: 编译
cd gencore
make
# 安装
make install
使用
1. 参数解析
options:
-i, --in 输入的 sorted bam/sam 文件.
-o, --out 输出的 bam/sam 文件.
-r, --ref 参考基因组 fasta 文件 (.fa/.fasta file)
-b, --bed bed 捕获区域文件,默认为空
-u, --umi_prefix UMI 序列的前缀
-s, --supporting_reads read 支持数,大于该值的 read 才会输出 推荐 1~10, 默认为 1.
-a, --ratio_threshold 碱基频率阈值,小于该阈值,将通过参考碱基进行矫正,推荐0.5~1.0, 默认为 0.8
-c, --score_threshold 碱基分数,低于该阈值,将通过参考碱基进行矫正,推荐 1~20, 默认为 6
-d, --umi_diff_threshold umi差异阈值,小于阈值内的 umi 认为是相同的, 默认为 2
--high_qual 高质量分数,默认 30 代表 Q30
--moderate_qual 中等质量分数,默认 20 代表 Q20
--low_qual 低质量分数,默认 15 代表 Q15
--coverage_sampling 采样率,用于覆盖率统计. 默认t 10000 代表 1/10000
-j, --json json 输出报告格式文件名
-h, --html html 输出报告格式文件名
--debug 输出一些 debug 信息
--quit_after_contig 设置最大的处理的染色体 id,用于 debug,默认为 0,不做限制
-?, --help 打印帮助信息
2. 简单使用
gencore -i in.sort.bam -o out.bam -r hg19.fa
3. 输出文件
json
html
UMI 格式
- 如果
read
的query name
是:
NB551106:8:H5Y57BGX2:1:13304:3538:1404:GAGCATAC
则 umi
前缀为空
- 如果是:
NB551106:8:H5Y57BGX2:1:13304:3538:1404:UMI_GAGCATAC
则 umi
前缀为 UMI
注意:gencore
对有些 read
去除不干净,需要在 gencore.cpp
中修改第三个循环。