GuPPy:Python中用于光纖光度數據分析的免費開源工具
?01 背景
Basecalling 是將原始測序信號轉換為堿基序列的過程,通俗地說,就是“把堿基識別出來”。這一過程在不同代測序技術中各不相同:
-
一代測序是通過解析峰圖實現;
-
二代測序則是對熒光圖像進行處理;
-
而三代測序中的 Nanopore 技術 則是通過電信號,即電流強度的變化,來推斷通過納米孔的堿基。
由于每次測量的是多個堿基的疊加信號,識別過程更為復雜。因此,堿基識別算法仍在不斷發展和優化中。
目前,Oxford Nanopore Technologies (ONT) 官方推薦的 basecalling 工具是 Guppy。在此之前曾使用過 Albacore,后續還有可能被更新的工具(如 Flappie)所替代。這也從側面反映出該領域仍有廣闊的優化空間,是當前測序研究的重要方向之一。
盡管存在如 poretools、nanopolish 等多種第三方工具,但在 basecalling 任務中,仍建議首選官方工具。畢竟,硬件由 ONT 提供,他們對信號特征的理解更加深入。此外,Nanopore 的 basecalling 與所用芯片類型密切相關,例如:
-
DNA 分子在納米孔中以約 450 bp/s 的速度通過;
-
RNA 分子則較慢,約為 70 bp/s。
這一差異也決定了其識別算法存在本質上的不同。
Guppy 簡介
Guppy 是 Oxford Nanopore 官方提供的堿基識別軟件,是一個基于命令行的工具。
Guppy 主要包含以下幾項核心功能:
-
堿基識別
Guppy 的核心功能是將電流信號轉換為 DNA 或 RNA 堿基序列。其底層算法基于循環神經網絡(RNN),可以準確識別五種標準堿基:腺嘌呤(A)、鳥嘌呤(G)、胞嘧啶(C)、胸腺嘧啶(T)以及尿嘧啶(U)。 -
條形碼拆分(Demultiplexing)
如果文庫構建中添加了條形碼(barcode),Guppy 可自動識別兩端的條碼序列,并將樣本數據進行拆分。這一過程類似于 Illumina 測序中基于 index 的樣本區分。 -
參考序列比對
Guppy 支持將識別后的堿基序列與參考基因組進行比對,底層實際上調用的是 minimap2 工具。由于該功能中 minimap2 的參數設置是內嵌的,不可調整,建議用戶在比對任務中使用獨立的 minimap2 工具,以確保更高的靈活性與精度。 -
甲基化修飾檢測
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
:輸出文件夾(保存fastq
或bam
文件) -
--config
:指定 basecall 配置文件 -
-r
/--recursive
:遞歸處理子目錄 -
--flowcell
:芯片類型(如FLO-MIN106
、FLO-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:0
、cuda:1,2
或auto
) -
--bed_file
:指定包含感興趣區域的.bed
文件 -
--align_type
:設置比對模式(auto
、full
或coarse
) -
--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_cell
和 kit
參數自動選擇合適配置。
查看支持的芯片和試劑盒:
?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 訓練的模型):
-
導出模型為 JSON 格式:
dump_json.py training/model_final.checkpoint > model.json
-
使用該模型進行 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