Skip to content

Latest commit

 

History

History
970 lines (708 loc) · 34.4 KB

PARAMETERS.md

File metadata and controls

970 lines (708 loc) · 34.4 KB

PCO FLIM 相機參數設定手冊

該調的參數都在這裡,含設定方式和選擇建議。 適用 pco.flim 及相容機型。


目錄

  1. 參數分類概覽
  2. 曝光與時序
  3. 感測器與讀取
  4. 資料格式與元資料
  5. FLIM 調變參數
  6. FLIM 相位序列
  7. FLIM 影像處理
  8. 螢光壽命 (Lifetime) 計算原理
  9. 硬體 IO 與環境
  10. 參數選擇流程
  11. 快速設定範例

1. 參數分類概覽

PCO FLIM 相機的參數分為兩紮:

第 1 紮:cam.configuration 字典(高階 API)
  用法:cam.configuration = {"exposure time": 0.01, "roi": (1,1,1024,1024)}
  特點:常用參數、一行設定、即時生效
  適用:曝光、ROI、Binning、觸發模式、像素格式等

第 2 紮:cam.sdk.* 底層函式(低階 API)
  用法:cam.sdk.set_flim_modulation_parameter(0, 1, 0, 0)
  特點:FLIM 專屬、硬體控制、部分需 ArmCamera
  適用:調變參數、相位序列、冷卻溫度、IO 設定
from pco_flim import FLIMCamera

with FLIMCamera() as cam:
    # 第 1 紮:configuration 字典
    cam.configuration = {
        "exposure time": 0.01,
        "roi": (1, 1, 512, 512),
        "trigger": "auto sequence",
    }

    # 第 2 紮:SDK 底層函式(透過 FLIMCamera 封裝)
    cam.set_flim_modulation(source=0, waveform=1, frequency=20e6)
    cam.set_flim_phase_sequence(phase_number=2, symmetry=0, tap_select=0)
    cam.arm()

2. 曝光與時序

這些參數跟「什麼時候開始曝光、曝多久」有關。

2.1 曝光時間 (Exposure Time)

項目 內容
Python 設定 cam.exposure_time = 0.01 或 cam.set_exposure(0.01)
SDK 函式 PCO_SetDelayExposureTime
單位 秒 (float)
典型範圍 0.001 (1 ms) ~ 10.0 (10 s)

曝光時間是感測器收集光子的時長。曝光越長,影像越亮,動態範圍越高,但幀率越低。

選擇建議:

場景 曝光起點 原因
標準 FLIM 4-phase 10 ms 夠亮又不至於太慢
即時預覽 (Live View) 5 ms 追求幀率流暢
弱訊號樣本(低螢光) 50-500 ms 需要更多光子
強訊號樣本(飽和) 1-5 ms 避免飽和
FRET / 短壽命 5-10 ms 需高速擷取

目標是讓影像平均強度落在滿幅的 68-72%。 16-bit 相機滿幅 = 65535,目標 = 44600 ~ 47200。

2.2 延遲時間 (Delay Time)

項目 內容
Python 設定 cam.configuration = {"delay time": 0.0}
SDK 函式 PCO_SetDelayExposureTime
單位 秒 (float)

延遲時間是收到觸發訊號後,等多久才開始曝光。

選擇建議: 一般 FLIM 設 0.0。只在需要精確同步外部裝置(如雷射脈衝、stage 移動)時才會改。

2.3 觸發模式 (Trigger Mode)

項目 內容
Python 設定 cam.configuration = {"trigger": "auto sequence"}
SDK 函式 PCO_SetTriggerMode
可選值 見下方表格

可選模式:

模式 說明 FLIM 適用?
auto sequence 軟體自動連續觸發,相機自己決定何時拍下一張 這個最常用
software trigger 每次呼叫 cam.sdk.force_trigger() 才拍一張 手動控制
external 外部硬體訊號觸發每一張 需搭配 HWIO
external exposure control 外部訊號的脈衝寬度決定曝光時間 進階

選擇建議: 大多數 FLIM 實驗用 auto sequence。只有需要與外部裝置(雷射、掃描器)同步時才用 external。

2.4 擷取模式 (Acquire Mode)

項目 內容
Python 設定 cam.configuration = {"acquire": "auto"}
SDK 函式 PCO_SetAcquireMode
模式 說明
auto 忽略外部 Enable 訊號,自由拍攝
external 需要外部 Enable High 才能拍攝

選擇建議: 一般設 auto。


3. 感測器與讀取

這些參數影響感測器怎麼讀出像素資料。

3.1 ROI (Region of Interest)

項目 內容
Python 設定 cam.set_roi(1, 1, 512, 512)
SDK 函式 PCO_SetROI
格式 (x0, y0, x1, y1),1-indexed
pco.flim 全解析度 1008 × 1008

只讀取感測器上的一個矩形區域,捨棄區域外的像素。

選擇建議:

ROI 用途
(1, 1, 1008, 1008) 全解析度,最大視野
(1, 1, 512, 512) 平衡解析度與幀率(常用)
(1, 1, 256, 256) 高速預覽、對焦

⚠️ pco.flim 的 FLIM 相位序列長度不受 ROI 影響(Dual Tap 感測器特性)。

3.2 Binning

項目 內容
Python 設定 cam.set_binning(2, 2, "sum")
SDK 函式 PCO_SetBinning
格式 (水平, 垂直, 模式)

將相鄰像素合併為一個超級像素。犧牲解析度換取感度與幀率。

模式選項:

模式 行為
"sum" 合併像素的數值相加(訊號 + 雜訊都加)
"average" 合併像素取平均(訊號不變、雜訊降低)

選擇建議:

Binning 解析度 感度 適用場景
(1, 1) 100% 原始 標準 FLIM,需要最高解析度
(2, 2) 50% 4x 弱訊號樣本
(4, 4) 25% 16x 極弱訊號,犧牲解析度

3.3 像素率 (Pixel Rate)

項目 內容
Python 設定 cam.set_pixel_rate(100_000_000)
SDK 函式 PCO_SetPixelRate
單位 Hz (int)
pco.flim 典型值 100 MHz 或 286 MHz

感測器讀出像素的時脈速度。越高越快,雜訊略高。

選擇建議:

值 適用
100 MHz 低雜訊優先(標準 FLIM)
286 MHz 高速優先(即時預覽)

3.4 雜訊濾波 (Noise Filter)

項目 內容
Python 設定 cam.configuration = {"noise filter": "on"}
SDK 函式 PCO_SetNoiseFilterMode

相機內建的硬體雜訊消除濾波。

選擇建議: FLIM 測量時建議開 on。若追求原始數據可關閉。

3.5 像素格式 (Pixel Format)

項目 內容
Python 設定 cam.set_pixel_format("16")
SDK 函式 PCO_SetTransferParameter
選項 位元深度 動態範圍
"16" 16-bit 0-65535(FLIM 推薦)
"12" 12-bit 0-4095
"8" 8-bit 0-255

選擇建議: FLIM 分析需要最大動態範圍來解析相位間的微小差異,強烈建議用 "16"。

3.6 感測器格式 (Sensor Format)

項目 內容
Python 設定 cam.sdk.set_sensor_format("standard")
SDK 函式 PCO_SetSensorFormat
選項 說明
standard 僅有效像素區域(推薦)
extended 包含暗像素與參考像素周邊

選擇建議: 保持 standard 即可。

3.7 轉換因子 (Conversion Factor)

項目 內容
Python 設定 cam.sdk.set_conversion_factor(...)
SDK 函式 PCO_SetConversionFactor

設定 pixels 的增益(electrons/count),影響感度與動態範圍的取捨。

選擇建議: 一般不調整,使用相機預設值。


4. 資料格式與元資料

4.1 Metadata 模式

項目 內容
Python 設定 cam.configuration = {"metadata": "on"}
SDK 函式 PCO_SetMetaDataMode

在影像的前幾行像素嵌入額外資訊(真實時間戳記、幀號、曝光時間等)。

選擇建議: FLIM 實驗建議開啟 "on",方便後續追蹤每張影像的拍攝參數。

4.2 時間戳記模式 (Timestamp)

項目 內容
Python 設定 cam.configuration = {"timestamp": "binary"}
SDK 函式 PCO_SetTimestampMode
選項 說明
"off" 不顯示時間戳
"binary" 二進位編碼(不影響影像視覺)
"ascii" 文字覆疊在影像左上角
"both" 同時輸出 binary + ascii

選擇建議: FLIM 建議用 "binary"(不影響影像分析)或 "off"。


5. FLIM 調變參數

這些是 FLIM 專屬參數,控制「怎麼調變光源」。

5.1 調變來源 (Modulation Source)

項目 內容
Python 設定 cam.set_flim_modulation(source=0, ...)
SDK 函式 PCO_SetFlimModulationParameter
SDK 常數 MOD_SOURCE_INTERNAL (0), MOD_SOURCE_EXTERNAL (1)
來源 說明 何時用
內部 (internal) 相機內建頻率合成器產生調變訊號 標準 FLIM,絕大多數情況
外部 (external) 從 modulation input 輸入外部時脈 需要與外部裝置同步時

選擇建議: 99% 的情況用 internal。外部訊號需在 5 kHz ~ 40 MHz 範圍內且穩定。

5.2 輸出波形 (Output Waveform)

項目 內容
Python 設定 cam.set_flim_modulation(waveform=1, ...)
SDK 函式 PCO_SetFlimModulationParameter
SDK 常數 WAVEFORM_NONE (0), WAVEFORM_SINUSOIDAL (1), WAVEFORM_RECTANGULAR (2)
波形 說明 何時用
正弦波 (sinusoidal) 平滑的正弦曲線調變 標準 FLIM 首選,頻域分析理論基礎
方波 (rectangular) 銳利的開關切換 需要更高調變深度的場景
無 (none) 關閉調變輸出 一般成像(非 FLIM)

選擇建議: 標準 FLIM 用正弦波。方波提供更銳利的時間閘控但頻譜較寬。

5.3 調變頻率 (Modulation Frequency)

項目 內容
Python 設定 cam.set_flim_modulation(frequency=20e6)
SDK 函式 PCO_SetFlimMasterModulationFrequency
單位 Hz
pco.flim 範圍 5 kHz ~ 40 MHz

調變訊號的頻率,直接影響可測量的螢光壽命範圍。

選擇建議:

f_opt = 1 / (2πτ)

τ = 螢光壽命 [秒]
f_opt = 最佳調變頻率 [Hz]
螢光壽命 τ 最佳頻率 f_opt 應用場景
100 ps ~1.6 GHz(超出範圍) 以 40 MHz 為上限
1 ns ~159 MHz(超出範圍) 以 40 MHz 為上限
4 ns ~40 MHz FRET、通用 FLIM
10 ns ~16 MHz 一般螢光蛋白
100 ns ~1.6 MHz 磷光
1 μs ~160 kHz 氧氣感測

不知道選什麼?從 20 MHz 開始。

from pco_flim.phasor import calculate_optimal_frequency

# 已知壽命 4 ns
f = calculate_optimal_frequency(4.0)
print(f"{f/1e6:.1f} MHz")  # 39.8 MHz → 約 40 MHz

# 壽命範圍 1~10 ns
from pco_flim.phasor import calculate_optimal_frequency_range
f = calculate_optimal_frequency_range(1.0, 10.0)
print(f"{f/1e6:.1f} MHz")

6. FLIM 相位序列

這些參數控制「怎麼在不同相位取樣」。

6.1 相位數 (Phase Number / Number of Phase Samples)

項目 內容
Python 設定 cam.set_flim_phase_sequence(phase_number=2, ...)
SDK 函式 PCO_SetFlimPhaseSequenceParameter
SDK 常數 PHASE_2 (1), PHASE_4 (2), PHASE_8 (3), PHASE_16 (4)

⚠️ SDK 常數與實際相位數不同:PHASE_2 = 1(2 相位實際值), PHASE_4 = 2(4 相位),PHASE_8 = 3,PHASE_16 = 4。

將 360° 調變週期等分為多少個盳位點取樣。

相位數 盳位角度間隔 影像張數* 適用場景
2 0°, 180° 2 快速掃描、動態觀測
4 0°, 90°, 180°, 270° 4 標準 FLIM(推薦起點)
8 0°, 45°, 90°, ..., 315° 8 多成分分析
16 0°, 22.5°, 45°, ..., 337.5° 16 精細壽命分布

*singular + both 模式下

選擇建議:

不確定 → 選 4 相位
  需要更快 → 2 盳位
  需要更精細 → 8 或 16 盳位

6.2 盳位對稱性 (Phase Symmetry)

項目 內容
Python 設定 cam.set_flim_phase_sequence(symmetry=0, ...)
SDK 函式 PCO_SetFlimPhaseSequenceParameter
SDK 常數 SYMMETRY_SINGULAR (0), SYMMETRY_TWICE (1)
模式 行為 張數影響
Singular Tap A 涵蓋前半 (0°180°),Tap B 涵蓋後半 (180°360°) 基本張數
Twice Tap A 與 B 各自涵蓋完整 360°,影像數翻倍 2 倍張數

選擇建議: 標準 FLIM 用 singular。Twice 用於不對稱校正或需要更多資料量的場景。

6.3 盳位順序 (Phase Order)

項目 內容
Python 設定 cam.set_flim_phase_sequence(phase_order=0, ...)
SDK 常數 ORDER_ASCENDING (0), ORDER_OPPOSITE (1)
順序 說明
Ascending 遞增順序(標準)
Opposite 相反順序(用於 asymmetry correction)

選擇建議: 保持 ascending。只有在需要使用不對稱校正時才改為 opposite。

6.4 Tap 選擇 (Tap Selection)

項目 內容
Python 設定 cam.set_flim_phase_sequence(tap_select=0, ...)
SDK 常數 TAP_BOTH (0), TAP_A (1), TAP_B (2)
選擇 輸出 張數 說明
Both A + B 完整張數 標準 FLIM,所有盳位資訊
Tap A only 僅 A 一半 僅需 0° 盳位通道
Tap B only 僅 B 一半 僅需 180° 盳位通道

選擇建議: 沒特殊原因就選 Both。

6.5 影像總數計算

N = phase_count × (2 if symmetry=twice else 1)
      × (1 if tap=both else 0.5)
      × (1 if asymmetry=off else 0.5)
盳位 Symmetry Tap 張數
4 singular both 4
4 twice both 8
4 singular tap A 2
8 singular both 8
16 singular both 16

詳見 影像排列順序參考。


7. FLIM 影像處理

7.1 雙影像模式 (Double Image Mode)

項目 內容
Python 設定 cam.set_flim_image_processing_flow(double_image_mode=True)
SDK 函式 PCO_SetFlimImageProcessingFlow

將 Tap A 與 Tap B 合併為單一影像輸出。

選擇建議: 一般 FLIM 保持關閉。開啟後張數減半但失去 Tap 分離資訊。

7.2 不對稱校正 (Asymmetry Correction)

項目 內容
Python 設定 cam.set_flim_image_processing_flow(asymmetry_correction=1)
SDK 函式 PCO_SetFlimImageProcessingFlow

補償 Tap A 與 Tap B 之間的電荷收集效率差異。

值 行為
0 關閉(預設)
1 Averaging 方法校正(需搭配 twice + opposite)

選擇建議: 先關閉做標準測量。如果 Phasor 圖出現系統性偏移,再開啟校正。


8. 螢光壽命 (Lifetime) 計算原理

8.1 官方是否提供?

PCO SDK 不提供 lifetime 計算函式。 SDK 只負責硬體控制與原始影像取得,lifetime 計算需自行實作。

我們套件內建的 compute_phasor() 與 compute_lifetime_from_phasor() 是根據頻域 FLIM 領域的標準 Phasor 分析方法實作。

8.2 學術界如何使用這台相機計算 Lifetime?

根據文獻調查,使用 pco.flim 的研究者主要採用以下三種方法:

方法 A:Phasor 分析法(最常用,本套件實作)

相關論文:

  • Digman, Caiolfa, Zamai & Gratton, "The Phasor Approach to Fluorescence Lifetime Imaging Analysis", Biophysical Journal, 2008. DOI: 10.1529/biophysj.107.120154
  • Recoulat Angelini, Malacrida & González Flecha, "Fluorescence phasor analysis: basic principles and biophysical applications", Biophysical Reviews, 2025. DOI: 10.1016/j.bpj.2025.03.001
  • Sarfraz & Braselmann, "Practical guide to fluorescence lifetime imaging microscopy", Molecular Biology of the Cell, 2025. PMCID: PMC12206515

何時用: 標準頻域 FLIM,不需假設指數衰減模型,適合 FRET 分析

計算方式: 從 4 張盳位影像 (0°, 90°, 180°, 270°) 計算 Phasor 座標 (G, S):

a  = I0° - I180°
b  = I90° - I270°
DC = (I0° + I90° + I180° + I270°) / 4

G  = a / (2·DC)    = m · cos(φ)
S  = b / (2·DC)    = m · sin(φ)

τ_φ = tan(φ) / ω   (盳位法)
τ_m = √(1/m²-1) / ω  (demodulation 法)

詳見下方 §8.7~§8.8。

方法 B:指數擬合(Exponential Fitting)

相關論文:

  • Lakowicz, "Principles of Fluorescence Spectroscopy", Springer, 2006. DOI: 10.1007/978-0-387-46312-4
  • Clegg & Spring, "Frequency-Domain FLIM", in FLIM Microscopy in Biology and Medicine, 2009. DOI: 10.1201/9781420078916.ch5

何時用: 時間域 TCSPC 模式,需要取得完整衰減曲線

計算方式: 相機以 MCP 增強器作為快速閘極,在不同時間延遲下取樣,建構衰減曲線後以最小平方法或最大似然法擬合單指數或雙指數模型:

I(t) = A₁·exp(-t/τ₁) + A₂·exp(-t/τ₂) + DC

注意: 此模式需要搭配 Becker & Hickl SPC 模組,且需量測儀器響應函數(IRF)進行反捲積。

方法 C:多頻率擷取(Multiple-Frequency FLIM)

相關論文:

  • Clegg & Spring, "Frequency-Domain FLIM", in FLIM Microscopy in Biology and Medicine, 2009. DOI: 10.1201/9781420078916.ch5
  • Zinkernagel, "Fluorescence Lifetime Imaging Microscopy", in Methods in Microscopy, 2019. DOI: 10.1007/978-3-030-22878-1_4

何時用: 需要解析多成分壽命,或驗證系統校準

計算方式: 在同一樣本上以多個頻率(如 5, 10, 20, 30, 40 MHz)分別進行 4-phase 擷取,觀察 τ_φ 與 τ_m 隨頻率的變化:

若 τ 隨頻率變化 → 多成分樣本
若 τ 不隨頻率變化 → 單一成分

8.3 學術界常用的分析軟體

軟體 類型 用途 出處
LI-FLIM Lambert Instruments 商用 擷取 + 4-phase 計算 + Phasor 繪圖 + 指數擬合 Lambert Instruments 官方
MATLAB 自訂腳本 Phasor 分析、校準、擬合 Sarfraz & Braselmann 2025
Python (本專案) 開源 Phasor 計算、lifetime 分析、自動化批次、TIFF 輸出 本文件對應的專案
ImageJ / Fiji FLIMJ plugin 匯入 TIFF stack 後處理、Phasor 繪圖 FLIMJ 官網

8.4 校準標準品

學術界使用 pco.flim 進行校準的標準螢光物質:

標準品 壽命 τ 溶劑/條件 用途 文獻來源
Fluorescein (螢光素) 4.0 ns 0.1 M NaOH, pH 7.4 或水/乙醇 主要盳位校準標準,單一指數 Kristoffersen et al., 2018; Magde et al., 1999, 2002
Rhodamine 6G ~4.1 ns 水/乙醇 穩定、濃度不敏感 Boens et al., 2007
Erythrosin B 89 ps (≈0.1 ns) 水/甲醇 短壽命標準(調變縮放校準用) Boens et al., 2007
Coumarin 6 ~2.5 ns 乙醇 中壽命標準 Boens et al., 2007
Rose Bengal ~0.7-1.0 ns 水 短壽命標準 Boens et al., 2007

Fluorescein 壽命值說明: 根據 Kristoffersen et al. (2018) 對既有文獻的統整,fluorescein 二價陰離子(dianion)形式在水、乙醇、甲醇中的壽命約為 4.0 ns(Magde, Rojas & Seybold 1999; Magde, Wong & Seybold 2002)。在 triethanolamine-buffered saline (TBS) 中測得為 3.9 ns。

Erythrosin B 壽命值說明: 根據 Boens et al. (2007) 由九個實驗室獨立測量、經單光子計時與多頻盳位調變螢光儀驗證的結果,erythrosin B 在 20°C 液態溶液中的壽命為 89 ps,是該研究系列中最短的壽命標準。

8.5 兩步驟系統校準流程

頻域 FLIM 的系統校準得分為「盳位偏移校正」與「調變縮放校正」兩個獨立步驟,因為兩者對系統增益的敏感度截然不同。

關鍵差異:

  • τ_φ(盳位壽命):對系統增益不敏感(角度在計算中會約掉),但仍需「盳位偏移校正」以消除系統盳位延遲
  • τ_m(調變壽命):對系統增益極度敏感,必須進行「調變縮放校正」,否則 raw modulation depth 計算出的 τ_m 沒有物理意義

文獻依據:

  • Thompson & Gratton, "Phase fluorometric method for determination of standard lifetimes", Analytical Chemistry, 1988. DOI: 10.1021/ac00158a014
  • Boens et al., "Fluorescence Lifetime Standards for Time and Frequency Domain Fluorescence Spectroscopy", Analytical Chemistry, 2007. DOI: 10.1021/ac062160k

步驟一:盳位偏移校正(用 Fluorescein,τ ≈ 4.0 ns)

  1. 準備標準品:將 Fluorescein 溶於 0.1 M NaOH(pH 7.4)或水/乙醇,配製濃度 10⁻⁴ ~ 10⁻⁵ M
  2. 設定相機:
    • 調變頻率:建議 20 MHz(對 4 ns 壽命接近最佳靈敏度)
    • 盳位數:4-phase
    • 曝光時間:調整至平均強度為滿幅 68-72%
  3. 擷取影像:取得 4 張盳位影像 (0°, 90°, 180°, 270°)
  4. 計算實測盳位:
    φ_measured = arctan2(S, G)
    
  5. 計算理論盳位:
    φ_expected = arctan(2πfτ)
              = arctan(2π × 20×10⁶ × 4.0×10⁻⁹)
              = arctan(0.5027)
              ≈ 26.7°
    
  6. 計算盳位偏移:
    Δφ = φ_expected - φ_measured
    
    這個 Δφ 就是系統的盳位偏移,後續樣本測量都需在計算 τ_φ 前扣除。

步驟二:調變縮放校正(用 Erythrosin B,τ ≈ 89 ps)

  1. 準備標準品:將 Erythrosin B 溶於水或甲醇,配製稀釋溶液
  2. 設定相機:
    • 調變頻率:建議 40 MHz(對短壽命需要更高頻率)
    • 盳位數:4-phase
  3. 擷取影像並計算實測調變深度:
    m_measured = √(G² + S²)
    
  4. 計算理論調變深度:
    ω = 2πf = 2π × 40×10⁶ ≈ 2.513×10⁸ rad/s
    m_expected = 1 / √(1 + (ωτ)²)
               = 1 / √(1 + (2.513×10⁸ × 89×10⁻¹²)²)
               = 1 / √(1 + (0.0224)²)
               ≈ 0.9997
    
  5. 計算調變縮放因子:
    C_m = m_expected / m_measured
    
    這個 C_m 就是系統的調變縮放因子,後續樣本測量都需在計算 τ_m 前將 m_measured 乘以 C_m 修正。

校正後的 Lifetime 計算公式

# 盳位法(校正後)
φ_corrected = φ_measured + Δφ
τ_φ = tan(φ_corrected) / ω

# Demodulation 法(校正後)
m_corrected = m_measured × C_m
τ_m = √(1/m_corrected² - 1) / ω

提醒:

  • 若只需相對比較(如 FRET 效率變化),可「只看 Phasor 相對位置」,不計算絕對 τ 值
  • 若需絕對 τ 值(如與文獻比較),必須完成上述兩步驟校正
  • 建議每次實驗前或使用不同調變頻率時,重新執行校正

8.6 頻域 FLIM 基本原理

螢光(響應):       F(t) = A_em · sin(ωt + φ) + DC_em

其中:
  ω = 2πf    調變角頻率
  φ = 盳位延遲(螢光壽命造成的)
  m = (A_em/A_ex) / (DC_em/DC_ex) = 調變衰減

螢光壽命 τ 同時影響 φ 和 m:

tan(φ) = ωτ
m      = 1 / √(1 + (ωτ)²)

8.7 4 盳位取樣

從 4 張盳位影像計算 Phasor,需要影像為自然順序:

images[0] = i₁ = I(0°)    Tap A @ 0°
images[1] = i₂ = I(90°)   Tap A @ 90°
images[2] = i₃ = I(180°)  Tap B @ 180°
images[3] = i₄ = I(270°)  Tap B @ 270°

這個順序由 capture(reorder=True)(預設)自動處理。

8.8 Phasor 計算

DC  = (i₁ + i₂ + i₃ + i₄) / 4        直流分量(平均強度)
G   = (i₁ - i₃) / (2 × DC)           同相分量 (cos(φ))
S   = (i₂ - i₄) / (2 × DC)           正交分量 (sin(φ))

Phasor 座標 (G, S) 的幾何意義:

(G, S) 在單位圓內,距離原點的距離 = m(調變衰減)
(G, S) 與原點的連線和 G 軸的夾角 = φ(盳位延遲)

單一壽命成分 → (G, S) 落在半圓上
多成分或 FRET → (G, S) 落在半圓內

8.9 Lifetime 計算(兩種方法)

方法一:盳位法 (Phase Method) — τ_φ

只使用盳位延遲資訊:

φ    = arctan2(S, G)
τ_φ  = tan(φ) / ω = tan(φ) / (2πf)

優點: 對短壽命靈敏。缺點: 受散射光干擾。

方法二:Demodulation 法 — τ_mod

使用調變深度資訊:

m    = √(G² + S²)
τ_m  = √(1/m² - 1) / ω

優點: 不受散射光干擾。缺點: 對長壽命靈敏度較低。

8.10 結果解讀

τ_φ ≈ τ_m → 樣本為單一壽命成分
τ_φ ≠ τ_m → 樣本具有多成分壽命或 FRET

8.11 Python 實作

from pco_flim import FLIMCamera

with FLIMCamera() as cam:
    cam.set_flim_4phase(20e6)
    images = cam.capture(4)          # 自動 reorder

    # 方法一:Phasor → lifetime
    g, s = cam.compute_phasor(images)
    tau_phi, tau_mod = cam.compute_lifetime_from_phasor(g, s, 20e6)

    print(f"τ_φ (盳位法):  {np.nanmean(tau_phi):.2f} ns")
    print(f"τ_m (demod.):  {np.nanmean(tau_mod):.2f} ns")

    # 方法二:快速換算頻率
    # 若已知壽命 τ,可反推最佳頻率:
    from pco_flim.phasor import calculate_optimal_frequency
    f_opt = calculate_optimal_frequency(4.0)  # τ=4ns → ~40 MHz

8.12 重要事項

事項 說明
影像順序必頋正確 capture() 預設 reorder=True,若設 False 則 Phasor 完全錯誤
訊號強度要適中 理想平均強度為滿幅 68-72%(16-bit: 44600-47200)
需要標準品校準 首次使用請以 Fluorescein(τ≈4.0 ns)與 Erythrosin B(τ≈89 ps)進行兩步驟校正
τ_φ 與 τ_m 不一致 若兩者系統性偏差,可能是 phase 偏移或調變縮放未校正
多成分樣本 τ 隨頻率變化是正常的,不代表儀器有問題

8.13 不對稱校正 (Asymmetry Correction)

項目 內容
Python 設定 cam.set_flim_image_processing_flow(asymmetry_correction=1)
SDK 函式 PCO_SetFlimImageProcessingFlow

補償 Tap A 與 Tap B 之間的電荷收集效率差異。

值 行為
0 關閉(預設)
1 Averaging 方法校正(需搭配 twice + opposite)

選擇建議: 先關閉做標準測量。如果 Phasor 圖出現系統性偏移,再開啟校正。

8.14 參考文獻

本節涉及的學術文獻如下,所有引用均經過實際查驗:

  1. Boens, N., Qin, W., Basarić, N., Hofkens, J., Ameloot, M., et al. "Fluorescence Lifetime Standards for Time and Frequency Domain Fluorescence Spectroscopy", Analytical Chemistry, 79(5), 2137-2149, 2007. DOI: 10.1021/ac062160k

    • 九實驗室獨立驗證的壽命標準品數據,包含 erythrosin B(89 ps)與 rhodamine B 等。
  2. Digman, M.A., Caiolfa, V.R., Zamai, M. & Gratton, E. "The Phasor Approach to Fluorescence Lifetime Imaging Analysis", Biophysical Journal, 94(2), L14-L16, 2008. DOI: 10.1529/biophysj.107.120154

    • Phasor 分析法的經典論文,建立頻域 FLIM 的 Phasor 數學框架。
  3. Kristoffersen, A.S., Erga, S.R., Hamre, B. & Frette, Ø. "Testing Fluorescence Lifetime Standards using Two-Photon Excitation and Time-Domain Instrumentation: Fluorescein, Quinine Sulfate and Green Fluorescent Protein", Journal of Fluorescence, 28, 1065-1073, 2018. DOI: 10.1007/s10895-018-2270-z

    • 驗證 fluorescein 在不同溶劑中的壽命約為 4.0 ns,並確認其作為標準品的穩定性。
  4. Lakowicz, J.R. "Principles of Fluorescence Spectroscopy", Springer, 2006. DOI: 10.1007/978-0-387-46312-4

    • 螢光光譜學經典教科書,涵蓋頻域與時域壽命量測理論。
  5. Clegg, R.M. & Spring, B.Q. "Frequency-Domain FLIM", in FLIM Microscopy in Biology and Medicine (A. Periasamy & R.M. Clegg, Eds.), Chapter 5, 2009. DOI: 10.1201/9781420078916.ch5

    • 頻域 FLIM 的儀器與數據分析章節。
  6. Thompson, R.B. & Gratton, E. "Phase fluorometric method for determination of standard lifetimes", Analytical Chemistry, 60(7), 670-674, 1988. DOI: 10.1021/ac00158a014

    • 頻域盳位螢光法測定標準壽命的方法學論文,為系統校準提供理論基礎。
  7. Magde, D., Rojas, G.E. & Seybold, P.G. "Solvent Dependence of the Fluorescence Lifetimes of Xanthene Dyes", Photochemistry and Photobiology, 70(6), 737-744, 1999. DOI: 10.1111/j.1751-1097.1999.tb08277.x

    • 測量 xanthene 染料(含 fluorescein)在不同溶劑中的螢光壽命。
  8. Magde, D., Wong, R. & Seybold, P.G. "Fluorescence Quantum Yields and Their Relation to Lifetimes of Rhodamine 6G and Fluorescein in Nine Solvents: Improved Absolute Standards for Quantum Yields", Photochemistry and Photobiology, 75(4), 327-334, 2002. DOI: 10.1562/0031-8655(2002)075<0327:fqyatr>2.0.co;2

    • 測量 fluorescein 與 rhodamine 6G 在九種溶劑中的壽命與量子產率。
  9. Sarfraz, N. & Braselmann, E. "Practical guide to fluorescence lifetime imaging microscopy", Molecular Biology of the Cell, 36(6), 2025. PMCID: PMC12206515

    • FLIM 實用指南,涵蓋儀器設定、Phasor 分析與應用案例。
  10. Recoulat Angelini, A.A., Malacrida, L. & González Flecha, F.L. "Fluorescence phasor analysis: basic principles and biophysical applications", Biophysical Reviews, 2025. PMCID: PMC12075720

    • Phasor 分析的基本原理與生物物理應用綜述。
  11. Zinkernagel, M. "Fluorescence Lifetime Imaging Microscopy", in Methods in Microscopy (C. Eggeling & M. Sauer, Eds.), 2025. DOI: 10.1007/978-3-030-22878-1_4

    • FLIM 顯微鏡技術的章節,涵蓋多頻率擷取與數據分析。
  12. Margineanu, A. "Calibration approaches for fluorescence lifetime applications using time-domain measurements", Methods in Microscopy, 2025. PMCID: PMC11969142

    • 時域螢光壽命量測的儀器響應函數與標準品校準方法。

9. 硬體 IO 與環境

9.1 冷卻溫度 (Cooling Setpoint)

項目 內容
Python 設定 cam.sdk.set_cooling_setpoint_temperature(-10)
SDK 函式 PCO_SetCoolingSetpointTemperature
單位 °C

感測器的目標冷卻溫度。越低越少熱雜訊,SNR 越高。

選擇建議:

設定值 說明
5°C 一般 FLIM 夠用,冷卻速度快
0°C 較佳 SNR
-10°C 最佳 SNR,但需較長冷卻時間(可能需水冷)

9.2 風扇控制 (Fan Control)

項目 內容
Python 設定 cam.sdk.set_fan_control_parameters("High")
SDK 函式 PCO_SetFanControlParameters

選擇建議: 一般設 Auto。高轉速散熱佳但噪音大。

9.3 HWIO 訊號

項目 內容
Python 設定 cam.configure_hwio_exposure_trigger(enabled=True)
SDK 函式 PCO_SetHWIOSignalDescriptor

設定外部 15-pin HWIO connector 的行為。

選擇建議: 只有當你需要外部觸發或同步外部裝置時才需設定。


10. 參數選擇流程

你的實驗樣本是什麼?
    │
    ▼
┌─────────────────────────────────────┐
│ 第一步:決定調變頻率                      │
│ 查文獻或粗估螢光壽命 τ                     │
│ f_opt = 1 / (2πτ)                       │
│ 不確定?→ 20 MHz(通用起點)              │
└─────────────────┬──────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────┐
│ 第二步:決定盳位數                        │
│ 不確定?→ 4 盳位                         │
│ 需要快速?→ 2 盳位                       │
│ 需要精細?→ 8 或 16 盳位                 │
└─────────────────┬──────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────┐
│ 第三步:決定曝光時間                      │
│ 起點:10 ms                             │
│ 太暗(mean < 44600)→ 增加曝光            │
│ 飽和(mean > 47200)→ 減少曝光或降低光源   │
└─────────────────┬──────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────┐
│ 第四步:決定其他參數                      │
│ Tap → both(永遠選這個)                  │
│ Symmetry → singular(標準)              │
│ Waveform → sine(FLIM 標準)             │
│ Source → internal(標準)                 │
│ Binning → (1,1) 不解釋                   │
│ ROI → 全幅或 512×512                     │
│ Pixel format → 16-bit                    │
└─────────────────────────────────────┘
                   │
                   ▼
            開始實驗

11. 快速設定範例

標準 FLIM(通用起點)

with FLIMCamera() as cam:
    cam.set_exposure(0.01)           # 10 ms
    cam.set_roi(1, 1, 512, 512)      # 512×512 ROI
    cam.set_pixel_format("16")       # 16-bit
    cam.set_flim_modulation(         # 內部 20 MHz 正弦波
        source=0, waveform=1, frequency=20e6
    )
    cam.set_flim_phase_sequence(     # 4-phase + singular + both
        phase_number=2, symmetry=0, tap_select=0
    )
    cam.arm()                        # 寫入 FPGA
    images = cam.capture(4)          # 4 張盳位影像

FRET 測量(短壽命)

with FLIMCamera() as cam:
    cam.set_exposure(0.005)
    cam.set_flim_modulation(source=0, waveform=1, frequency=40e6)
    cam.set_flim_phase_sequence(
        phase_number=2, symmetry=1, tap_select=0  # twice = 8 張
    )
    cam.arm()
    images = cam.capture(8)

弱訊號樣本(長曝光 + binning)

with FLIMCamera() as cam:
    cam.set_exposure(0.1)
    cam.set_binning(2, 2, "average")
    cam.set_flim_modulation(source=0, waveform=1, frequency=10e6)
    cam.set_flim_phase_sequence(phase_number=2, symmetry=0, tap_select=0)
    cam.arm()
    images = cam.capture(4)