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.pswp.cn/diannao/82274.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82274.shtml
英文地址,請注明出處:http://en.pswp.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…