三代测序错误率比较高,一般组装后需要进行纠错来提高准确度。本次介绍使用racon来对三代基因组进行纠错优化。
https://github.com/isovic/racon
# conda安装racon
conda install -y racon
# 编译安装racon
git clone --recursive https://github.com/lbcb-sci/racon.git racon
cd racon
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Tips:如果无法下载建议用浏览器下载后自行传入服务器
# nanopore原始数据下载
wget \
-O nanopore.sra \
https://sra-pub-run-odp.s3.amazonaws.com/sra/SRR8494939/SRR8494939
Tips:racon的使用只需要输入需要纠错的基因组序列以及原始测序数据即可。本期需要纠错的基因组选择上期推文中Flye组装的nanopore数据进行演示,即下文assembly.fasta
# nanopore原始数据处理(sra转fastq)
fastq-dump --gzip --split-3 nanopore.sra
Tips:fastq-dump会将sra格式转化成fastq格式,同时--gzip参数会对fastq进行压缩,示例nanopore.sra最终会被转化为nanopore.fastq.gz
##minimap2基本用法(ref.fa为需纠错的文件,query.fq为原始数据)
#1、在基础用法中,minimap2 将ref和query作为输入并生成近似映射(mapping),没有基本级别的对齐(base-level alignment),即坐标只是近似的,且输出中没有 CIGAR
minimap2 ref.fa query.fq > approx-mapping.paf
#2、在PAF文件中制造CIGAR的cg标签
minimap2 -c ref.fa query.fq > alignment.paf
#3、以SAM格式输出对齐
minimap2 -a ref.fa query.fq > alignment.sam
#4、建立索引来进行比对
minimap2 -d ref.mmi ref.fa # indexing
minimap2 -a ref.mmi reads.fq > alignment.sam # alignment
##racon基本用法
racon [options ...] <sequences> <overlaps> <target sequences>
<sequences> : 原始测序数据,即示例中的nanopore.fastq.gz
<overlaps> :minimap2比对生成的文件,可以为MHAP/PAF/SAM格式
<target sequences> :需要纠错的基因组序列
Tips:minimap2详细用法参考简书:https://www.jianshu.com/p/d1868194b65e
Tips:一般需要多次纠错,建议使用脚本进行循环操作,这里介绍编写racon脚本的方法
# 通过vim创建一个名为racon的脚本文件
vim racon.sh
# 在脚本中输入以下信息,保存退出
# correct表示需要纠错的序列,original表示原始测序数据
correct=$1
original=$2
# minimap2比对
minimap2 -a -t 12 ${correct} ${original} > minimap_1.sam
# 第一轮纠错
racon -t 12 ${original} minimap_1.sam ${correct} > racon_minimap_1.fasta
# 第二轮纠错
minimap2 -a -t 12 racon_minimap_1.fasta ${original} > minimap_2.sam
racon -t 12 ${original} minimap_2.sam racon_minimap_1.fasta> racon_minimap_2.fasta
# 第三轮纠错
minimap2 -a -t 12 racon_minimap_2.fasta ${original} > minimap_3.sam
racon -t 12 ${original} minimap_3.sam racon_minimap_2.fasta> racon_minimap_3.fasta
# 运行脚本(assembly.fasta为需要纠错的基因组,nanopore.fastq.gz为测序原始序列)
sh racon.sh assembly.fasta nanopore.fastq.gz
racon_minimap_1.fasta # 第一次纠错后的文件
racon_minimap_2.fasta # 第二次纠错后的文件
racon_minimap_3.fasta # 最终(第三次)纠错后的文件