nextpolish安装_nanopore 分析流程
本文转载自知乎 nanopor技术专栏,修改了其中部分代码。
单分子纳米孔测序
使用的软件
使用HDFView 查看Fast5文件格式。
https://www.hdfgroup.org/downloads/hdfview/
使用ont_fast5_api软件对fast5文件进行拆分与合并
ont_fast5_api 网址
安装
直接使用pip安装
pip install ont-fast5-api
自行编译安装
git clone https://github.com/nanoporetech/ont_fast5_api
cd ont_fast5_api
python3 setup.py install
使用案例
多条合并为一个文件
single_to_multi_fast5 -i fast5_files/ -s multi -n 4000 --recursive
一个文件拆分为多条
multi_to_single_fast5 -i multi/ -s single --recursive -t 6
1.碱基识别工具
DeepNano
poretools 官网
poretools安装
2.序列比对工具
GraphMap
MarginAlign
3.从头组装工具
nanocorrect,首先利用graph- based,greedy partial order aligner方法进行纠错,然后利用Celera Assembler将纠错后的reads进行组装,最后利用nanopolish对组装结果进行进一步提升
4、单核苷酸变异检测工具
PoreSeq 低通量下,仍然有高准确率
Nanopolish
MarginAlign中的marginCaller模块
5、共有序列的测序(consensus sequencing)方法
实战
1.软件安装
基因组可视化 win+unix tablet
软件给出官方地址,简单的自行安装。比较复杂的会写出详细安装过程
2. 质控
mkdir nanoQC
#检测测序质量
nanoQC ../2.rawdata/minion/all..fastq.gz -o nanoQC
#统计质量信息
NanoStat --fastq ../2.rawdata/minion/all.sra.fastq.gz --outdir statreports
2.1 质控
NanoPlot --fastq ../2.rawdata/minion/all..fastq.gz -t 16 --maxlength 40000 --plots hex dot pauvre kde -o nanoplot
Nanoplot --summary sequencing_summary.txt --loglength -o summary
选项参数:
-t:线程数目
-o, --outdir:输出结果目录
-p, --prefix:输出结果前缀
--color:点的颜色
--N50 表示在序列读长的直方图中显示N50的标识
--title:标题
--downsample :在输入文件中随机抽取n条序列进行处理
--minlength:忽略nbp以下的reads
-- fastq:输入fastq格式文件
-f:图片类型
--plots:绘图类型,kde,hex,dot,pauvre
2.2 过滤(nanofilt和filtlong二选一即可)
使用nanofilt过滤,nanofilt无法识别压缩文件,需要先解压。
gunzip -c ../2.rawdata/minion/all.fastq.gz | NanoFilt -q 7 -l 1000 --headcrop 50 --tailcrop 50| gzip > clean.NanoFilt.fastq.gz
选项参数:
-l ,--length :过滤掉小于此长度的序列
--maxlength :过滤掉超过此长度的序列
-q , --quality :过滤掉低质量序列
--minGC:过滤掉GC含量小于此百分比的序列
--maxGC:过滤掉GC含量大于此百分比的序列
--headcrop:从头部切掉n bp
--tailcrop:尾部切掉n bp
结果解读
输入一个压缩格式的fastq文件,结果软件处理,已经将长度小于1000,同时整条序列平均质量值小于Q7的过滤掉,同时将每条序列首位各剪掉50bp。这些剩余的序列则为“clean data”。可以使用NanoPlot重新进行一下质控。
使用filtlong过滤
filtlong --min_length 1000 --min_mean_q 7 ../2.rawdata/minion/all.fastq.gz | gzip >clean.filtlong.fq.gz
filtlong还可以以二代的数据为参考进行过滤。
选项参数:
--min_length :最短长度
--min_mean_q:平均Q值
--keep_percent:保留最好数据的百分比,80%,直接写80,不能写0.8
--target_bases:保留多少数据,单位为bp
2.3 比对
2.3.1 使用minimap2进行比对
构建基因组的索引文件
minimap2 -d ref.mmi ref.fa #索引
比对
minimap2 -a ref.mmi reads.fq > alignment.sam #对齐
#等价于
minimap2 -ax map-ont ref.mmi reads.fq >alignment.sam
常用选项参数
主要分成五大类,索引(Indexing),回帖(Mapping),比对(Alignment),输入/输出(Input/Output),预设值(Preset)。
-x :非常中要的一个选项,软件预测的一些值,针对不同的数据选择不同的值
map-pb/map-ont: pb或者ont数据与参考序列比对;
ava-pb/ava-ont: 寻找pd数据或者ont数据之间的overlap关系;
asm5/asm10/asm20: 拼接结果与参考序列进行比对,适合~0.1/1/5% 序列分歧度;
splice: 长reads的切割比对
sr: 短reads比对
-d :创建索引文件名
-a :指定输出格式为sa格式,默认为PAF
-Q :sam文件中不输出碱基质量
-R :reads Group信息,与bwa比对中的-R一致
-t:线程数,默认为3
2.3.2
2.4 sam转bam,排序
#samtools处理
samtools sort -@ 8 -o bam -o s0137.sorted.bam s1037.sam
samtools index s0137.sorted.bam
samtools faidx ref.fq
2.5tablet可视化基因组
tablet支持Windows,linux.
下面是Windows上的操作
2.5.1 将准备好的文件,至少四个,参考序列fasta格式及索引fai文件,比对并排序后的bam文件及索引bai文件;
ref.fq
ref.fai
ref.gff
s1037.sorted.bam
s1037.sorted.bam.bai
2.5.2、打开tablet,首先导入bam文件,然后导入fasta文件,索引文件无需导入,但必须与对应文件在同一目录下,(tablet对中文支持不好,路径不要有中文);
2.5.3 、可以通过鼠标调整显示模式;
2.5.4、tablet还支持导入gff格式结果,方便查看固定区域
2.6 重新拼接基因组(多个软件分别拼接后,再从中选择最优的)
2.6.1 canu
软件安装一定要安装github的版本。
canu -d canu -p canu genomeSize=3g maxThreads=96 -nanopore-raw ../4.filter/clean.filtlong.fq.gz >canu.log
选项参数:
-p:输出前缀
-d:输出结果目录
-nanopore-raw:输入的为没有纠错过得nanopore数据
-num_threads:CPU线程数
genomeSize:设置预估的基因组大小,这用于让Canu估计测序深度;
maxThreads:设置运行的最大线程数;
rawErrorRate:用来设置两个未纠错read之间最大期望差异碱基数;
correctedErrorRate:则是设置纠错后read之间最大期望差异碱基数,这个参数需要在 组装 时多次调整;
minReadLength:表示只使用大于阈值的序列
minOverlapLength:表示Overlap的最小长度。提高minReadLength可以提高运行速度,增加minOverlapLength可以降低假阳性的overlap。
总结
1、有纠错步骤;
2、部分基因组拼接效果比较好;
3、默认会占用所有CPU,非常耗时,慎重使用;
4、有些数据无法拼接出结果。
2.6.2 miniasm拼接,gfatools转换格式
使用miniasm拼接首先需要使用minim2将测序数据进行自身比对,查找共有区域,生成paf格式文件。注意使用minimap2比对的时候一定要正确设置好-x选项,nanopore拼接需要使用ava-ont选项。然后使用miniasm进行拼接,miniasm拼接不会直接生成fasta序列,而是会生成gfa格式文件。最后使用gfatools提出拼接好的序列。
minimap2 -x ava-ont -t 12 ../4.filter/clean.filtlong.fq.gz ../4.filter/clean.filtlong.fq.gz | gzip -1 > reads.paf.gz
miniasm -f ../4.filter/clean.filtlong.fq.gz reads.paf.gz >reads.gfa
gfatools gfa2fa reads.gfa >miniasm.fa
注意:第一步,是用minimap2对测序的文件自身进行比对。和前面的比对到基因组上不一样。
总结
1、首先利用minimap2比对,运行速度非常快;
2、软件不能直接生成fasta格式,需要使用gfatools生成;
3、没有纠错过程,碱基错误率较高,需要后续进行纠错;
4、拼出来的基因组可能比真实基因组要小,有时候小很多,需要注意。
2.6.3 Smartdenovo拼接(阮珏 出品)
# 生成脚本
smartdenovo.pl -c 1 -t 8 -J 500 -k 16 -p smartdenovo ../4.filter/clean.filtlong.fq.gz >smartdenovo.mak
#运行脚本
make -f smartdenovo.mak
选项参数:
-p STR 输出结果前缀,默认wtasm
-e STR overlap方法,zmo或者dmo
-t INT 线程数,默认为8
-k INT overlap连接kmer大小
-J INT 最小read长度
-c INT 是否生成一致性序列
2.6.4 wtdbg2拼接 (阮珏 出品)
快速运行模式,直接使用wtdbg2.pl脚本
wtdbg2.pl -t 96 -x ont -g 3g -o wtdbg2 reads.fa.gz
选项参数:
-t 线程数量
-x 数据模式(nanopore的数据选择ont)
-g 基因组大小(根据实际物种决定)
-o 输出目录
总结:
1、对于nanopore数据,wtdbg2可能会产生比真实基因组小的集合。
2、当输入fasta和fastq格式的多个文件时,请先输入fastq,然后再输入fasta。否则,程序将无法在fastq中找到'>',并在一次读取后附加所有fastq。
2.6.5 NextDenovo拼接基因组
支持py2和py3
先用pip安装依赖包Psutil和Drmaa (Only required by running under non-local system)
#生成一个配置文件,可以直接从软件安装目录下拷贝
cp /ifs1/Software/biosoft/NextDenovo/doc/run.cfg ./
#生成一个reads列表,名为input.fofn
ls ../../filter/clean.filtlong.fq.gz > input.fofn
#将input.fofn添加到配置文件run.cfg的input_fofn关键字后面,默认不用修改
input_fofn = ./input.fofn
#运行软件
nohup time nextDenovo run.cfg &
拼接结束之后,最终结果隐藏的比较深,在以下目录中,可以配合nextpolish进行纠错,得到更优的结果。
01_rundir/03.ctg_graph/01.ctg_graph.sh.work/ctg_graph00/nextgraph.assembly.contig.fasta
2.6.6 flye拼接基因组
flye --nano-raw ../4.filter/clean.filtlong.fq.gz -g 3g -o output -t 48 -i 3
常用选项参数:(不习惯长选项的可以直接使用短选项)
--pacbio-raw :输入原始pacbio数据
--pacbio-corr :输入纠错后的pacbio数据
--nano-raw:输入原始nanopore数据
--nano-corr :输入纠错后的nanopore数据
--genome-size:预估基因组大小,用于评估覆盖深度
--out-dir:输出结果文件路径
--threads:cpu线程数据
--iterations:纠错迭代次数
--min-overlap:最小overlap连接大小
--meta: 拼接宏基因组数据
--plasmids: 拼接质粒数据
输出结果
最后结果目录中有三个文件比较重要。
1、assembly.fasta :最终拼接得到的基因组序列,fasta格式。
2、assembly_graph.{gfa|gv} :拼接过程中用到的repeat graph。
3、assembly_info.txt:拼接结果统计信息,也可以自己单独使用seqkit工具统计。
2.7用quast评估多个拼接结果
quast评估案例
软件适合以下应用场景:
1、得到不同软件拼接的基因组序列,想比较一下哪个软件拼接效果更好;
2、同一软件,比较不同选项参数拼接的结果,哪个更好;
3、比较拼接得到的基因组,与参考序列的相似性。
quast.py -r ref.fa canu.fa miniasm.fa wtdbg2.cns.fa smartdenovo.fa -o quast
-o --output-dir 输出结果目录
-r 参考序列文件
-g --genes 参考序列基因坐标,一般BED或者GFF格式文件
-m --min-contig 最小contig长度,也就是小于这个阈值的不参与计算
-t --threads 使用线程数目,默认使用四分之一的cpu
--help 列出全部选项参数,大部分情况下,默认这些选项即可
2.8 组装结果优化(polish)
2.8.0 组装优化前后对比
使用Mummer软件包中dnadiff工具将纠错前后的序列进行基因组的比对。dnadiff会直接给出一个统计报告,里面会列出两条序列之间差异的部分,然后我们可以使用mummerplot工具对统计进行进行粗略的可视化。
#拼接结果优化前后比较
dnadiff ../before.fasta after.fasta
mummerplot --filter --png -p all out.delta
gnuplot all.gp
-i 输入测序reads
-d 需要纠错的拼接结果
-o 输出结果文件
-m 芯片类型
-t 并行计算
2.8.1 利用medaka组装结果纠错
安装方式 pip install medaka
medaka_consensus -i ../4.filter/clean.filtlong.fq.gz -d ../6.quast/miniasm.fa -o medaka_output -m r941_min_high -t 4 >medaka.log
-i 输入测序reads
-d 需要纠错的拼接结果
-o 输出结果文件
-m 芯片类型
-t 并行计算
最终生成的 consensus.fasta则为纠错后的结果。
calls_to_draft.bam
calls_to_draft.bam.bai
consensus.fasta
consensus.fasta.split/
consensus_probs.hdf
优化前后比较
dnadiff ../6.quast/miniasm.fa medaka/consensus.fasta
mummerplot --filter --png -p all out.delta
gnuplot all.gp
2.8.2 pilon纠错
下载wget https://github.com/broadinstitute/pilon/releases/download/v1.23/pilon-1.23.jar,直接是二进制文件。
#minimap2比对
minimap2 -d miniasm.fa.min miniasm.fa
minimap2 -ax map-ont miniasm.fa.min ../4.filter/clean.filtlong.fq.gz >miniasm.sam
#对bam进行处理
samtools sort -@ 4 -O bam -o miniasm.sorted.bam miniasm.sam
samtools index miniasm.sorted.bam
#利用pilon进行纠错
java -Xmx32G -jar /share/softwares/pilon/pilon-1.23.jar --genome miniasm.fa --fix all --changes --bam miniasm.sorted.bam --output all_pillon --outdir all_pillon --threads 6 --vcf 2> pilon.log
参数详情
常用选项参数:
--genome提供输入参考基因组
--frags 表示输入 < 1kb 的文库BAM --jumps 输入 > 1kb 的文库BAM
-unpaired 输入非配对的BAM。
--output表示输出的前缀
--outdir表示输出文件夹
--changes 列出发生变化的部分,以FASTA形式保存
--vcf 以VCF形式保存。
--fix 声明对参考基因组做哪方面的改进,包括“snps”,”indels”,”gaps”,”local”, 默认是”all”
利用二代数据进行纠错
#对拼接结果建立索引
bwa index draft.fasta
#illumina比对排序建索引
bwa mem -t 2 draft.fasta ../0.rawdata/SRX5341420_1.fastq.gz ../0.rawdata/SRX5341420_2.fastq.gz | samtools view - -Sb | samtools sort - -@ 14 -o illumina.sorted.bam
samtools index illumina.sorted.bam
#利用pilon进行纠错
java -Xmx32G -jar /share/softwares/pilon/pilon-1.23.jar --genome draft.fasta --fix all --changes --frag --genome draft.fasta --fix all --changes --frags illumina.sorted.bam --output assembly_pillon --outdir assembly_pillon --threads 6 --vcf 2> pillon.log
结果解析
可能是因为java写的程序的缘故(不太确定),pilon的运行速度比较慢。最终会生成*
*_pillon.changes:展示哪些位点经过了纠错;
*_pillon.fasta :最终纠错得到的结果;
*_pillon.vcf :vcf格式展示纠错的位点。
2.8.3 利用racon纠错
nextpolish安装_nanopore 分析流程相关推荐
- 转录组软件安装及分析流程(Hisat2-Stringtie-Ballgown)
替换镜像源,提高下载速度 为了提高下载速度,我们需要替换/etc/apt/source.list中默认镜像源.方法参考自中国科学技术大学开源镜像站 备份 cd /etc/apt/ sudo cp so ...
- 扩增子分析流程1. QIIME虚拟机安装配置及挂载外部目录
QIIME http://qiime.org/ QIIME 就定量微生物生态(Quantitative Insights Into Microbial Ecology)的缩写,读音同chime [tʃ ...
- PackageManagerService启动详解(七)之扫描系统应用安装目录阶段流程分析
PKMS启动详解(七)之BOOT_PROGRESS_PMS_SYSTEM_SCAN_START阶段流程分析 Android PackageManagerService系列博客目录: PKMS启动详解系 ...
- 生信分析流程构建的几大流派
导言 构建生信分析流程是生物信息学从业人员必备的技能之一,对该项能力的评估常常是各大公司招录人员的参考项目之一. 在进行 ngsjs 项目时,我做了一张示意图来表示一些高通量测序数据分析项目重现性的要 ...
- Nature子刊:宏基因组中挖掘原核基因组的分析流程
宏基因组中挖掘原核基因组的分析流程 从宿主相关的短读长鸟枪宏基因组测序数据中恢复原核基因组 Recovering prokaryotic genomes from host-associated, s ...
- MPB:亚热带生态所谭支良组-基于微生物成分数据的差异zOTU分析流程
为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...
- USEARCH — 最简单易学的扩增子分析流程(中国总代理)
USEARCH -- 最简单易学的扩增子分析流程 USEARCH官方英文主页:http://www.drive5.com/usearch/ 本站经USEARCH作者Robert Edgar授权,由&l ...
- USEARCH —— 最简单易学的扩增子分析流程(中国总代理)
USEARCH -- 最简单易学的扩增子分析流程 USEARCH中文帮助文档(USEARCH Chinese manual) USEARCH官方英文主页:http://www.drive5.com/u ...
- USEARCH —— 最简单易学的扩增子分析流程
USEARCH -- 最简单易学的扩增子分析流程 USEARCH中文帮助文档(USEARCH Chinese manual) USEARCH官方英文主页:http://www.drive5.com/u ...
- 扩增子三部曲:2分析流程(共7节万字)
点击上方蓝色「宏基因组」关注我们!专业干货每日推送! 写在前面 之前发布的<扩增子图表解读>系列,相信关注过我的朋友大部分都看过了.这些内容的最初是写本实验室的学生们学习的材料,加速大家 ...
最新文章
- atitit.jndi的架构与原理以及资源配置and单元測试实践
- LeetCode Rotate Array(数组的旋转)
- 【Ansible】的python api
- js大屏导出图片_整理了30个实用可视化大屏模板,附源文件+工具
- 关于Android studio 3.0 Failure [INSTALL_FAILED_TEST_ONLY]安装失败的问题
- Ubuntu18.04换源更新国内源
- CF886E Maximum Element(dp、组合数学)
- 德勤发布《 2020 亚太四大半导体市场的崛起》报告,美国收入占比达到47%,中国大陆仅占 5%
- 1.2 Coin 项目
- 欧式墙纸素材高清纹样图案,美观又大气
- 5G 来袭,数据暴增,新一代云存储平台如何承载?
- 蜂窝多边形密度图(GIS可视化)
- 2021韩顺平图解linux_狗剩学习笔记
- redis系列,redis的异步删除我该怎么用?
- 怎么在拦截器里接收json对象_九型人格分析:怎么挑选适合的爱人和结婚对象,藏在他的性格里...
- 百度网盘电脑端看视频声音巨小的解决办法(windows10)
- 近20万奖金+ 学术会议论文:2021PAKDD异常检测大赛来了!
- elasticsearch的基础使用(二)
- 寻址方法有哪些-七种数据寻址-三种内存寻址
- PDF文件制作方法与指南