UMI 去重矫正 —— gencore

2020-12-04  本文已影响0人  名本无名

介绍

gencore 能够对双端测序的 NGS 数据进行 read 去重,消除文库制备和测序过程中引入的测序错误。

gencore 是用 C++ 写的,相比于 Picard 等其他工具,具有更快的速度、更少的内存消耗.

同时,能够处理包含 唯一标识符 unique molecular identifiers(UMI) 的测序数据。

原理

gencore 的原理简单来说就是:

  1. 首先根据每条 read 的染色体 id,起始位置,以及模板长度末端位置进行分组
  2. 然后,在每个分组内,根据 umi 是否相同进行聚类
  3. 在每个类中,双端测序的 read1read2 分开分别进行去重矫正
  4. 去重矫正: 根据碱基出现的频率进行位点矫正,在频率过低时加入了参考基因组对应位置的碱基进行矫正

安装

安装使用该软件,需要保证环境中有 htslibzlib 两个库

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

report.json

html


report.html

UMI 格式

NB551106:8:H5Y57BGX2:1:13304:3538:1404:GAGCATAC

umi 前缀为空

NB551106:8:H5Y57BGX2:1:13304:3538:1404:UMI_GAGCATAC

umi 前缀为 UMI

注意gencore 对有些 read 去除不干净,需要在 gencore.cpp 中修改第三个循环。

上一篇 下一篇

猜你喜欢

热点阅读