GuPPy-v1.2.0安装与使用-生信工具52

GuPPy:Python中用于光纤光度数据分析的免费开源工具
 01 背景

Basecalling 是将原始测序信号转换为碱基序列的过程,通俗地说,就是“把碱基识别出来”。这一过程在不同代测序技术中各不相同:

  • 一代测序是通过解析峰图实现;

  • 二代测序则是对荧光图像进行处理;

  • 而三代测序中的 Nanopore 技术 则是通过电信号,即电流强度的变化,来推断通过纳米孔的碱基。

由于每次测量的是多个碱基的叠加信号,识别过程更为复杂。因此,碱基识别算法仍在不断发展和优化中。

目前,Oxford Nanopore Technologies (ONT) 官方推荐的 basecalling 工具是 Guppy。在此之前曾使用过 Albacore,后续还有可能被更新的工具(如 Flappie)所替代。这也从侧面反映出该领域仍有广阔的优化空间,是当前测序研究的重要方向之一。

尽管存在如 poretoolsnanopolish 等多种第三方工具,但在 basecalling 任务中,仍建议首选官方工具。毕竟,硬件由 ONT 提供,他们对信号特征的理解更加深入。此外,Nanopore 的 basecalling 与所用芯片类型密切相关,例如:

  • DNA 分子在纳米孔中以约 450 bp/s 的速度通过;

  • RNA 分子则较慢,约为 70 bp/s

这一差异也决定了其识别算法存在本质上的不同。

Guppy 简介

Guppy 是 Oxford Nanopore 官方提供的碱基识别软件,是一个基于命令行的工具。

Guppy 主要包含以下几项核心功能:

  1. 碱基识别
    Guppy 的核心功能是将电流信号转换为 DNA 或 RNA 碱基序列。其底层算法基于循环神经网络(RNN),可以准确识别五种标准碱基:腺嘌呤(A)、鸟嘌呤(G)、胞嘧啶(C)、胸腺嘧啶(T)以及尿嘧啶(U)。

  2. 条形码拆分(Demultiplexing)
    如果文库构建中添加了条形码(barcode),Guppy 可自动识别两端的条码序列,并将样本数据进行拆分。这一过程类似于 Illumina 测序中基于 index 的样本区分。

  3. 参考序列比对
    Guppy 支持将识别后的碱基序列与参考基因组进行比对,底层实际上调用的是 minimap2 工具。由于该功能中 minimap2 的参数设置是内嵌的,不可调整,建议用户在比对任务中使用独立的 minimap2 工具,以确保更高的灵活性与精度。

  4. 甲基化修饰检测
    Guppy 还具备一定的碱基修饰检测能力。当碱基发生如甲基化等修饰时,其通过纳米孔时的电信号会表现出异常。Guppy 可通过识别这些“离群”信号推测潜在修饰位点。
    目前该功能仍依赖于特定的训练数据集,支持的物种有限(如大肠杆菌人类等模式生物)。若对特定物种感兴趣,可尝试构建定制训练集进行检测。

https://github.com/LernerLab/GuPPy   #官网
wget -c https://github.com/LernerLab/GuPPy/archive/refs/tags/v1.2.0.zip    #new version
02下载

下载 GuPPy 代码

a. 点击页面右上角绿色的 “Code” 按钮,会弹出下拉菜单。
b. 点击 “Download ZIP” 下载压缩包(注意:请保存在本地硬盘中,不要保存在iCloud、OneDrive、Box等云端,建议保存至 C盘 用户文件夹)。
c. 解压下载的ZIP文件,得到文件夹 “GuPPy-main”,并将其放在一个方便的位置(避免使用云同步文件夹)。
d. 记下 “GuPPy” 子文件夹的路径,在后续操作中会用到。

  • Mac:右键文件夹 → 点击“显示简介” → 查看“位置”字段

  • Windows/Linux:右键文件夹 → 属性 → 查看“位置”字段
    示例:/Users/LernerLab/Desktop/GuPPy-main

03 安装

conda安装

cd 路径_to_GuPPy_folder
示例:cd /Users/LernerLab/Desktop/GuPPy-main创建并激活 GuPPy 环境
依次输入以下命令:注意:filename 替换为你的系统对应的配置文件:Windows: spec_file_windows10.txtMac: spec_file_mac.txtLinux: spec_file_linux.txtconda create --name guppy --file filename
conda activate guppy
04 使用
启动 GuPPy 用户界面
输入以下命令以启动GUI界面:panel serve --show GuPPy/savingInputParameters.ipynb
此时,GuPPy 已成功安装并可开始使用!卸载 GuPPy
若需卸载:conda remove --name guppy --all
05 官方教学视频
  • Installation steps
  • Explaining Input Parameters GUI
  • Individual Analysis steps
  • Artifacts Removal
  • Group Analysis steps
  • Use of csv file as an input
  • Use of Neurophotometrics data as an input
06 官方示例数据
  • Sample data for the user to go through the tool in the start. This folder of sample data has two types of sample data recorded with a TDT system : 1) Clean Data 2) Data with artifacts (to practice removing them) 3) Neurophotometrics data 4) Doric system data. Finally, it has a control channel, signal channel and event timestamps file in a 'csv' format to get an idea of how to structure other data in the 'csv' file format accepted by GuPPy.
 07 常用 Basecall
7.1 基本命令格式

通过 guppy_basecaller -h 可查看工具的基本使用方式:

guppy_basecaller -i <输入路径> -s <输出路径> -c <配置文件> [options]

常用参数说明:

  • -i:输入文件夹(包含 .fast5 文件)

  • -s:输出文件夹(保存 fastqbam 文件)

  • --config:指定 basecall 配置文件

  • -r / --recursive:递归处理子目录

  • --flowcell:芯片类型(如 FLO-MIN106FLO-MIN107

  • --num_callers:并行处理数(通常影响输出文件数量)

  • --cpu_threads_per_caller:每个 caller 使用的 CPU 线程数

  • --compress_fastq:输出压缩格式的 fastq 文件

  • -q:每个输出文件中包含的最大读段数(设为 0 表示每个读段单独输出)

  • --disable_qscore_filtering:禁用质量分数过滤,保留低质量读段

  • --align_ref:参考基因组 FASTA 或索引文件

  • --model_file:指定模型文件

  • --device / -x:设置使用的 GPU(如 cuda:0cuda:1,2auto

  • --bed_file:指定包含感兴趣区域的 .bed 文件

  • --align_type:设置比对模式(autofullcoarse

  • --minimap_opt_string:传递 minimap2 的自定义参数

  • --bam_out:输出 BAM 格式文件

  • --index:生成 BAM 索引

  • --moves_out:在 BAM 文件中输出碱基移动信息

7.2 使用配置文件 (-c) 进行 Basecall

最基础的 basecall 命令如下,可按需调整参数:

guppy_basecaller \-i fast5_files/ \-s output/ \--config dna_r9.4.1_450bps_sup.cfg \--model_file $HOME/bio/tools/ont-guppy-cpu/data/template_r9.4.1_450bps_hac.jsn \--disable_qscore_filtering \-r \--align_ref refs/dna.fa
7.3 通过 Flow Cell 和 Reagent Kit 指定模型

若未使用 --config 指定模型,可通过 flow_cellkit 参数自动选择合适配置。

查看支持的芯片和试剂盒:

​guppy_basecaller --print_workflows

过滤特定组合(例如:FLO-MIN106 与 SQK-LSK109):

​guppy_basecaller --print_workflows | grep FLO-MIN106 | grep SQK-LSK109

示例输出:

​FLO-MIN106  SQK-LSK109  dna_r9.4.1_450bps_hac  2021-05-17_dna_r9.4.1_minion_384_d37a2ab9

使用该组合进行 basecall:

guppy_basecaller \-i fast5_files/ \-s output/ \--flowcell FLO-MIN106 \--kit SQK-LSK109 \--model_file $HOME/tools/ont-guppy-cpu/models/template_r9.4.1_450bps_hac.jsn
7.4 使用自定义模型进行 Basecall

如使用自定义训练模型(如 Taiyaki 训练的模型):

  1. 导出模型为 JSON 格式:

dump_json.py training/model_final.checkpoint > model.json
  1. 使用该模型进行 basecall:

可结合 Guppy + Megalodon 等工具进行碱基修饰检测(如甲基化)等!

08 引用

Venus N. Sherathiya, Michael D. Schaid, Jillian L. Seiler, Gabriela C. Lopez, and Talia N. Lerner GuPPy, a Python toolbox for the analysis of fiber photometry data. Sci Rep 11, 24212 (2021). GuPPy, a Python toolbox for the analysis of fiber photometry data | Scientific Reports

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

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

相关文章

47. 全排列 II

题目 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2],[1,2,1],[2,1,1]] 示例 2&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3…

ERP系统操作流程,如何快速搭建流程体系

ERP流程图&#xff0c;如何搭建和建立&#xff0c;ERP系统操作流程&#xff0c;ERP系统操作流程图&#xff0c;采购流程&#xff0c;销售流程&#xff0c;仓库流程&#xff0c;MRP流程&#xff0c;PMC流程&#xff0c;财务流程&#xff0c;应收流程&#xff0c;应付流程&#x…

class path resource [] cannot be resolved to absolute file path

问题情景 java应用程序在IDE运行正常&#xff0c;打成jar包后执行却发生异常&#xff1a; java.io.FileNotFoundException: class path resource [cert/sync_signer_pri_test.key] cannot be resolved to absolute file path because it does not reside in the file system:…

19、HashTable(哈希)、位图的实现和布隆过滤器的介绍

一、了解哈希【散列表】 1、哈希的结构 在STL中&#xff0c;HashTable是一个重要的底层数据结构, 无序关联容器包括unordered_set, unordered_map内部都是基于哈希表实现 哈希表又称散列表&#xff0c;一种以「key-value」形式存储数据的数据结构。哈希函数&#xff1a;负责将…

基于 Flask的深度学习模型部署服务端详解

基于 Flask 的深度学习模型部署服务端详解 在深度学习领域&#xff0c;训练出一个高精度的模型只是第一步&#xff0c;将其部署到生产环境中&#xff0c;为实际业务提供服务才是最终目标。本文将详细解析一个基于 Flask 和 PyTorch 的深度学习模型部署服务端代码&#xff0c;帮…

Vue3 + Node.js 实现客服实时聊天系统(WebSocket + Socket.IO 详解)

Node.js 实现客服实时聊天系统&#xff08;WebSocket Socket.IO 详解&#xff09; 一、为什么选择 WebSocket&#xff1f; 想象一下淘宝客服的聊天窗口&#xff1a;你发消息&#xff0c;客服立刻就能看到并回复。这种即时通讯效果是如何实现的呢&#xff1f;我们使用 Vue3 作…

MySQL数据库与表结构操作指南

前言&#xff1a;本文系统梳理MySQL核心操作语句。内容覆盖建库建表、结构调整、数据迁移全流程&#xff08;包含创建/修改/删除/备份场景&#xff09;。希望它们能帮你快速解决问题。 库结构操作 一、库的创建 一个库的简单创建&#xff1a; create database 库名; 注意&am…

【WEB3】区块链、隐私计算、AI和Web3.0——数据民主化(1)

区块链、隐私计算、AI&#xff0c;是未来Web3.0至关重要的三项技术。 1.数据民主化问题 数据在整个生命周期&#xff08;生产、传输、处理、存储&#xff09;内的隐私安全&#xff0c;则是Web3.0在初始阶段首要解决的问题。 数据民主化旨在打破数据垄断&#xff0c;让个体能…

C语言—指针2

1. const 修饰变量 1.1 const修饰变量 变量被const修饰时&#xff0c;变量此时为常变量&#xff0c;本质为常量&#xff0c;语法上不可被修改&#xff0c;但是如果此时需要修改变量值&#xff0c;可以通过指针的方式修改。 虽然此时通过指针的方式确实修改了变量的值&#xff…

高级架构软考之网络OSI网络模型

高级架构软考之网络&#xff1a; 1.OSI网络模型&#xff1a; a.物理层&#xff1a; a.物理传输介质物理连接&#xff0c;负责数据传输&#xff0c;并监控数据 b.传输单位&#xff1a;bit c.协议&#xff1a; d:对应设备&#xff1a;中继器、集线器 b.数据链路层&#xff1a; a.…

el-table计算表头列宽,不换行显示

1、在utils.js中封装renderHeader方法 2、在el-table-column中引入&#xff1a; 3、页面展示&#xff1a;

MySQL OCP和Oracle OCP怎么选?

近期oracle 为庆祝 MySQL 数据库发布 30 周年&#xff0c;Oracle 官方推出限时福利&#xff1a;2025 年 4 月 20 日至 7 月 31 日期间&#xff0c;所有人均可免费报考 MySQL OCP&#xff08;Oracle Certified Professional&#xff09;认证考试&#xff08;具体可查看MySQL OCP…

2025最新免费视频号下载工具!支持Win/Mac,一键解析原画质+封面

软件介绍 适用于Windows 2025 最新5月蝴蝶视频号下载工具&#xff0c;免费使用&#xff0c;无广告且免费&#xff0c;支持对原视频和封面进行解析下载&#xff0c;亲测可用&#xff0c;现在很多工具都失效了&#xff0c;难得的几款下载视频号工具&#xff0c;大家且用且珍…

Python学习之路(八)-多线程和多进程浅析

在 Python 中,多线程(Multithreading) 和 多进程(Multiprocessing) 是实现并发编程的两种主要方式。它们各有优劣,适用于不同的场景。 一、基本概念 特性多线程(threading)多进程(multiprocessing)并发模型线程共享内存空间每个进程拥有独立内存空间GIL(全局解释器锁…

Spark缓存--persist方法

1. 功能本质 persist&#xff1a;这是一个通用的持久化方法&#xff0c;能够指定多种不同的存储级别。存储级别决定了数据的存储位置&#xff08;如内存、磁盘&#xff09;以及存储形式&#xff08;如是否序列化&#xff09;。 2. 存储级别指定 persist&#xff1a;可以通过传入…

裸辞8年前端的面试笔记——JavaScript篇(一)

裸辞后的第二个月开始准备找工作&#xff0c;今天是第三天目前还没有面试&#xff0c;现在的行情是一言难尽&#xff0c;都在疯狂的压价。 下边是今天复习的个人笔记 一、事件循环 JavaScript 的事件循环&#xff08;Event Loop&#xff09;是其实现异步编程的关键机制。 从…

什么是死信队列?死信队列是如何导致的?

死信交换机&#xff08;Dead Letter Exchange&#xff0c;DLX&#xff09; 定义&#xff1a;死信交换机是一种特殊的交换机&#xff0c;专门用于**接收从其他队列中因特定原因变成死信的消息**。它的本质还是交换机&#xff0c;遵循RabbitMQ中交换机的基本工作原理&#xff0c…

9. 从《蜀道难》学CSS基础:三种选择器的实战解析

引言&#xff1a;当古诗遇上现代网页设计 今天我们通过李白的经典诗作《蜀道难》来学习CSS的三种核心选择器。这种古今结合的学习方式&#xff0c;既能感受中华诗词的魅力&#xff0c;又能掌握实用的网页设计技能。让我们开始这场穿越时空的技术之旅吧&#xff01; 一、HTML骨架…

三角网格减面算法及其代表的算法库都有哪些?

以下是三角网格减面算法及其代表库/工具的详细分类&#xff0c;涵盖经典算法和现代实现&#xff1a; ​​1. 顶点聚类&#xff08;Vertex Clustering&#xff09;​​ ​​原理​​&#xff1a;将网格空间划分为体素栅格&#xff0c;合并每个栅格内的顶点。​​特点​​&#…

URP - 屏幕图像(_CameraOpaqueTexture)

首先需要在unity中开启屏幕图像开关才可以使用该纹理 同样只有不透明对象才能被渲染到屏幕图像中 若想要该对象不被渲染到屏幕图像中&#xff0c;可以将其Shader的渲染队列改为 "Queue" "Transparent" 如何在Shader中使用_CameraOpaqueTexture&#xf…