NextPolish1.4.1 安装与使用-bioinformatics tools54

01 简介

NextPolish 是一个用于修正由低准确度长读段(如 ONT 或 CLR)组装出来的基因组序列中碱基错误(SNV/Indel)的工具。它支持:

  • 仅使用短读段

  • 仅使用长读段

  • 同时使用短读段与长读段

NextPolish 包含两个核心模块,采用逐步(stepwise)策略对参考基因组中的错误碱基进行修正。

如果你要对原始第三代测序(TGS)长读段(错误率约为 10–15%)进行纠错或组装,请使用 NextDenovo。

02 安装

1. 下载

使用以下命令:

wget https://github.com/Nextomics/NextPolish/releases/latest/download/NextPolish.tgz

 注意:如果你遇到诸如 GLIBC_2.14 not foundliblzma.so.0: cannot open shared object file 的错误,请尝试使用该页面提供的兼容版本。

2. 依赖项

  • Python 2 或 3

  • paralleltask

安装:

pip install paralleltask

3. 编译安装

tar -vxzf NextPolish.tgz cd NextPolish make 

4. 卸载

cd NextPolish make clean

5. 测试是否安装成功

nextPolish test_data/run.cfg

03 使用

1:准备短读段文件列表(SGS FOFN)

ls reads1_R1.fq reads1_R2.fq reads2_R1.fq reads2_R2.fq > sgs.fofn

2:创建配置文件 run.cfg

genome=input.genome.fa echo -e "task = best\ngenome = $genome\nsgs_fofn = sgs.fofn" > run.cfg

3:运行程序

nextPolish run.cfg

输出结果

  • 打磨后的序列:/path_to_work_directory/genome.nextpolish.fasta

  • 统计信息文件:/path_to_work_directory/genome.nextpolish.fasta.stat

提示

你也可以用自己的比对流程(如 BWA + samtools),仅调用 NextPolish 的打磨模块,这在本地系统上通常会更快,但打磨后的基因组质量一致。

重要说明

建议先使用长读段(如 HiFi 或 ONT)对原始基因组进行打磨,再用短读段进一步优化,避免短读段在高错误率区域中错配。尤其是基于无共识算法(如 miniasm)生成的初步组装,更容易出现错配。

04 案例
4.1 使用短读进行基因组精修

准备 sgs_fofn 文件

ls reads1_R1.fq reads1_R2.fq reads2_R1.fq reads2_R2.fq > sgs.fofn

创建 run.cfg 配置文件

[General] job_type = local job_prefix = nextPolish task = best rewrite = yes rerun = 3 parallel_jobs = 6 multithread_jobs = 5 genome = ./raw.genome.fasta # 基因组文件 genome_size = auto workdir = ./01_rundir polish_options = -p {multithread_jobs} [sgs_option] sgs_fofn = ./sgs.fofn sgs_options = -max_depth 100 -bwa

运行

nextPolish run.cfg

精修完成后输出

  • 序列:/path_to_work_directory/genome.nextpolish.fasta

  • 统计信息:/path_to_work_directory/genome.nextpolish.fasta.stat

提示

用户自定义的比对流程在本地运行时比默认流程更快,精修后基因组的准确性与默认流程一致。

自定义比对流程示例(短读)

round=2 threads=20 read1=reads_R1.fastq.gz read2=reads_R2.fastq.gz input=input.genome.fa for ((i=1; i<=${round};i++)); do bwa index ${input}; bwa mem -t ${threads} ${input} ${read1} ${read2} | \ samtools view --threads 3 -F 0x4 -b - | \ samtools fixmate -m --threads 3 - - | \ samtools sort -m 2g --threads 5 - | \ samtools markdup --threads 5 -r - sgs.sort.bam samtools index -@ ${threads} sgs.sort.bam samtools faidx ${input} python NextPolish/lib/nextpolish1.py -g ${input} -t $i -p ${threads} -s sgs.sort.bam > genome.polishtemp.fa input=genome.polishtemp.fa done # 最终精修后的基因组:genome.nextpolish.fa
4.2 使用长读进行基因组精修

准备 lgs_fofn 文件

ls reads1.fq reads2.fa.gz > lgs.fofn

创建 run.cfg 配置文件

[General] job_type = local job_prefix = nextPolish task = best rewrite = yes rerun = 3 parallel_jobs = 6 multithread_jobs = 5 genome = ./raw.genome.fasta genome_size = auto workdir = ./01_rundir polish_options = -p {multithread_jobs} [lgs_option] lgs_fofn = ./lgs.fofn lgs_options = -min_read_len 1k -max_depth 100 lgs_minimap2_options = -x map-ont

运行

nextPolish run.cfg

精修完成后输出

  • 序列:/path_to_work_directory/genome.nextpolish.fasta

  • 统计信息:/path_to_work_directory/genome.nextpolish.fasta.stat

自定义比对流程示例(长读)

round=2 threads=20 read=read.fasta.gz read_type=ont # 可为 clr(PacBio)、hifi(高准确性PacBio)、ont(纳米孔) declare -A mapping_option=(["clr"]="map-pb" ["hifi"]="asm20" ["ont"]="map-ont") input=input.genome.fa for ((i=1; i<=${round};i++)); do minimap2 -ax ${mapping_option[$read_type]} -t ${threads} ${input} ${read} | \ samtools sort - -m 2g --threads ${threads} -o lgs.sort.bam samtools index lgs.sort.bam ls `pwd`/lgs.sort.bam > lgs.sort.bam.fofn python NextPolish/lib/nextpolish2.py -g ${input} -l lgs.sort.bam.fofn -r ${read_type} -p ${threads} -sp -o genome.nextpolish.fa if ((i!=${round})); then mv genome.nextpolish.fa genome.nextpolishtmp.fa input=genome.nextpolishtmp.fa fi done # 最终精修后的基因组:genome.nextpolish.fa
4.3 使用短读和长读联合精修
  • 准备 sgs.fofnlgs.fofn

  • 创建 run.cfg 文件如下:

[General] job_type = local job_prefix = nextPolish task = best rewrite = yes rerun = 3 parallel_jobs = 6 multithread_jobs = 5 genome = ./raw.genome.fasta genome_size = auto workdir = ./01_rundir polish_options = -p {multithread_jobs} [sgs_option] sgs_fofn = ./sgs.fofn sgs_options = -max_depth 100 -bwa [lgs_option] lgs_fofn = ./lgs.fofn lgs_options = -min_read_len 1k -max_depth 100 lgs_minimap2_options = -x map-ont
4.4 使用短读和 hifi 长读联合精修
  • 准备 sgs.fofnhifi.fofn

  • 创建 run.cfg 文件如下:

[General] job_type = local job_prefix = nextPolish task = best rewrite = yes rerun = 3 parallel_jobs = 6 multithread_jobs = 5 genome = ./raw.genome.fasta genome_size = auto workdir = ./01_rundir polish_options = -p {multithread_jobs} [sgs_option] sgs_fofn = ./sgs.fofn sgs_options = -max_depth 100 -bwa [hifi_option] hifi_fofn = ./hifi.fofn hifi_options = -min_read_len 1k -max_depth 100 hifi_minimap2_options = -x map-pb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/79221.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 el-tree:全选时只返回父节点,半选只返回勾选中的节点(省-市区-县-镇-乡-村-街道)

需求原因&#xff1a;全选时&#xff0c;传给接口的code数据太多了&#xff1b; 如果加上 check-strictly 父节点与子节点无关联&#xff0c;可以初步满足需求 效果如下使用了check-strictly的话&#xff0c;tree就没有了半选效果 不好的地方&#xff1a;用户体验感不好&#x…

使用 docker 安装 nacos3.x

一、安装 nacos 1.拉取镜像 使用如下指令拉取镜像 docker pull nacos/nacos-server 拉取完成后&#xff0c;可以使用以下命令查看是否拉取到对应的镜像&#xff0c;默认拉取最新镜像 docker images 2.新建挂载文件目录 mkdir -p /home/ubuntu/nacos/conf/mkdir -p /home/…

高性能Python Web 框架--FastAPI 学习「基础 → 进阶 → 生产级」

以下是针对 FastAPI 的保姆级教程&#xff0c;包含核心概念、完整案例和关键注意事项&#xff0c;采用「基础 → 进阶 → 生产级」的三阶段教学法&#xff1a; 一、FastAPI介绍 FastAPI 是一个现代化的、高性能的 Python Web 框架&#xff0c;专门用于构建 APIs&#xff08;应…

H2 Database Select 语句执行流程

H2 Database Select 语句执行流程 使用 // CREATE TABLE IF NOT EXISTS test(id INT primary key, name VARCHAR(255)) // insert into test(id, name) values(1, name1), (2, name2), (3, name3), (4, name4); String sql "SELECT * FROM test where id > 1 and na…

理解 Envoy 的架构

理解 Envoy 的架构对于深入理解 Istio 至关重要&#xff0c;因为 Envoy 是 Istio 数据平面的核心。Envoy 是一个高性能的 C 分布式代理&#xff0c;设计为云原生应用和大规模微服务架构的网络基础。 以下是 Envoy 架构的关键组成部分和核心理念&#xff1a; 核心设计理念&…

Android开发-常用布局

在Android应用开发中&#xff0c;布局决定了用户界面的结构和元素之间的相对位置。选择合适的布局不仅能够提升用户体验&#xff0c;还能提高代码的可维护性和灵活性。本文将介绍几种最常用的Android布局方式&#xff0c;包括LinearLayout、RelativeLayout、ConstraintLayout以…

如何在MySQL中实现类似Redis的PING命令的功能来检测连接状态?

要在MySQL中实现类似Redis的PING命令的功能来检测连接状态&#xff0c;可以采用以下方法&#xff1a; 方法一&#xff1a;使用简单的SQL查询 最直接的方法是通过执行一个简单的查询来检测连接状态&#xff0c;例如&#xff1a; SELECT 1;如果查询成功并返回结果&#xff08;…

Vue 系列之:defineProps、defineEmits、...

defineProps 用于接收父组件传递的属性值。 父组件&#xff1a; <!-- 父组件 --> <template><Child1 str"字符串" :num"num" />-----------------<Child2 str"字符串" :num"num" /> </template><…

windows服务器部署Gitlab

代码托管,如果对工具功能要求不高,Gitea也可以满足需要,只是功能相对比较简单。 通常GltLab是部署在linux服务器上的,windows版本已经不维护了。不过现在windows10 11已经可以实现部署了,一个是windows本机部署linux虚拟机(windows商店直接安装或者其他虚拟机平台都可以)…

剖析 FFmpeg:从基本功能到过滤器,实现音视频处理的灵活性

目录 1.解复用2 解码2.1 音频解码2.2 视频解码 3 修饰3.1 avio3.2 重采样 4 过滤器4.1 过滤器基本知识4.2 简单过滤器4.3 复杂滤镜图 1.解复用 解复用就是把容器中的媒体流分离出来&#xff0c;方便我们对媒体流处理。 step1&#xff1a;对媒体文件上下文初始化 AVFormatCont…

kafka学习笔记(四、生产者、消费者(客户端)深入研究(三)——事务详解及代码实例)

1.事务简介 Kafka事务是Apache Kafka在流处理场景中实现Exactly-Once语义的核心机制。它允许生产者在跨多个分区和主题的操作中&#xff0c;以原子性&#xff08;Atomicity&#xff09;的方式提交或回滚消息&#xff0c;确保数据处理的最终一致性。例如&#xff0c;在流处理中…

Missashe计网复习笔记(随时更新)

Missashe计算机网络复习笔记 前言&#xff1a;这篇笔记用于博主对计网这门课所学进行记录和总结&#xff0c;也包括一些个人的理解。正在更新当中…… 第一章 计算机网络体系结构 考纲内容 (一) 计算机网络概述 计算机网络的概念、组成与功能;计算机网络的分类; 计算机网络…

PVP鼠标推荐(deepseek)

下面有不懂的自行百度查找&#x1f44d; ❤️ 以下是几款在 双击性能&#xff08;DBC&#xff09; 和 拖拽点击&#xff08;DC&#xff09; 方面表现优秀的游戏鼠标推荐&#xff0c;结合了硬件性能、微动寿命以及玩家口碑&#xff1a; 1. 罗技 G102/G203 Lightsync 特点&#…

ABP vNext + EF Core 实战性能调优指南

ABP vNext EF Core 实战性能调优指南 &#x1f680; 目标 本文面向中大型 ABP vNext 项目&#xff0c;围绕查询性能、事务隔离、批量操作、缓存与诊断&#xff0c;系统性地给出优化策略和最佳实践&#xff0c;帮助读者快速定位性能瓶颈并落地改进。 &#x1f4d1; 目录 ABP vN…

为啥大模型一般将kv进行缓存,而q不需要

1. 自回归生成的特点 大模型&#xff08;如 GPT 等&#xff09;在推理时通常采用自回归生成的方式&#xff1a; 模型逐个生成 token&#xff0c;每次生成一个新 token 时&#xff0c;需要重新计算注意力。在生成第 t 个 token 时&#xff0c;模型需要基于前 t-1 个已生成的 t…

3DGS-slam:splatam公式

配套讲解视频&#xff1a;https://www.bilibili.com/video/BV1ZgfBYdEpg/?spm_id_from333.1387.homepage.video_card.click&vd_sourced4c3e747c32049ddd90dcce17208f4e0 1、多维高斯分布公式: 对于多维&#xff08;多变量&#xff09;高斯分布&#xff0c;概率密度函数的…

从Dockerfile 构建docker镜像——保姆级教程

从Dockfile开始 dockerfile简介开始构建1、编辑dockerfile2、构建镜像3、拉取镜像4、推送到镜像仓库 镜像的优化1、优化的基本原则2、多阶段构建 dockerfile简介 开始构建 1、编辑dockerfile # 使用官方的 Python 3.8 镜像作为基础镜像 FROM python:3.8-slim# 设置工作目录 …

开元类双端互动组件部署实战全流程教程(第2部分:控制端协议拆解与机器人逻辑调试)

作者&#xff1a;那个写了个机器人结果自己被踢出房间的开发者 游戏逻辑房间结构参考界面 从这张图我们能看出&#xff0c;该组件按功能结构细分为多个房间&#xff0c;每个房间底注、准入标准不同&#xff0c;对应的控制模块也有层级区分。常规来说&#xff0c;一个“互动房间…

[特征工程]机器学习-part2

1 特征工程概念 特征工程:就是对特征进行相关的处理 一般使用pandas来进行数据清洗和数据处理、使用sklearn来进行特征工程 特征工程是将任意数据(如文本或图像)转换为可用于机器学习的数字特征,比如:字典特征提取(特征离散化)、文本特征提取、图像特征提取。 特征工程步骤…

[数据库之十一] 数据库索引之联合索引

执行数据库查询时&#xff0c;通常查询条件是多对个属性进行判断和约束&#xff0c;对于这种类型的查询&#xff0c;如果存在多个索引则使用多个索引&#xff0c;或者使用建立在多属性搜索码上的索引&#xff0c;这样能提高查询效率。 一、使用多个单码索引 假设数据表 instruc…