Website Design Copyright 2026 © 耀登科技股份有限公司
All Rights Reserved. 網頁設計 by 覺醒設計
對於需要進行核磁共振(MRI)進階研究與模擬的開發者來說,脈衝序列(Pulse Sequence)的設計是至關重要的一環。本篇文章將帶您深入了解 Sim4Life 中的 MRI 系統模擬器(SYSSIM),並手把手教學如何透過 Python API 自定義您的 MR 序列脈衝。
一、SYSSIM 模組簡介
MRI 系統模擬器(SYSSIM)的核心功能是透過求解布洛赫方程式(Bloch equations),根據使用者提供的模型幾何形狀、材料屬性、射頻(RF)與梯度磁場以及脈衝序列,來預測 MRI 的 k-space 訊號。
這套模擬器具備高度的真實性與靈活性:
二、脈衝序列功能說明
在 SYSSIM 中,脈衝序列是用來控制 MRI 訊號擷取過程的核心腳本。SYSSIM 能夠處理由射頻場調變、頻率偏移、三個梯度線圈以及採集視窗(acquisition windows)等瞬態模式(transient patterns)所組成的任意脈衝序列。
透過定義這些時間樣本與數值陣列,使用者可以精確地控制每個時間點上的序列行為。
三、支援的模式與預設脈衝範例
目前 SYSSIM 在脈衝序列的應用上主要限制於平面序列(planar sequences)。針對笛卡爾序列(Cartesian sequences),使用者還可以指定結果的矩陣大小(Matrix Size)以及相位編碼方向(Phase Encoding Direction) [數值 U 代表在「視野設定(FOV Settings)」中選定的切片方向的第一個分量,而數值 V 則代表第二個分量]。
系統圖形使用者介面(GUI)中預設提供了兩種參數化的經典序列範例:
針對這兩種範例,使用者可以在介面上直接調整多項參數,包含: 重複時間(TR)、回波時間(TE)、射頻脈衝形狀及其持續時間與時間解析度、翻轉角(Flip Angle)、接收器頻寬(receiver bandwidth)以及去相位(dephasing)類型。
![]()
![]()
![]()
四、客製化脈衝序列設定步驟
除了使用預設序列外,SYSSIM 最強大的地方在於允許使用者透過 Python 介面實作任何客製化的 MRI 脈衝序列,並透過選單列中的 File | Open Sequence Plugins 來存取脈衝序列外掛程式的儲存位置。
![]()
以下是建立自定義序列的標準步驟:
步驟一: 尋找預設序列腳本並複製
在 Sim4Life v9.6 的版本中,預設的序列腳本儲存於以下路徑: C:\Program Files\Sim4Life_9.6\Python\Lib\site-packages\syssim\PulseSequences
使用者可以複製其中一個檔案(例如: GRE.py),將其重新命名,並為其分配一個全新的 UUID,這樣修改後的序列就會作為一個獨立的選項出現在 GUI 中。
![]()
步驟二: 修改 Python 腳本實作客製化邏輯
以實作一個帶有 Sinc 形狀或方形 RF 脈衝選項並模擬自由感應衰減(FID)的自定義序列為例:
1. 新增射頻形狀: 在程式碼中加入可選擇的 RF 形狀(如: Sinc 或 Square),並相應地修改 RF 生成邏輯
![]()
2. 設定虛擬梯度與 ADC 觸發: 為滿足系統的內部要求,可以加入一個虛擬梯度(dummy gradient),並設定類比數位轉換器(ADC)在 RF 脈衝結束後立即觸發,以成功模擬 FID 訊號。
[補充說明] 虛擬梯度(dummy gradient)設定
(1) 軟體層面: 滿足系統資料結構要求
SYSSIM 的底層 Bloch 方程式求解器在運算時,會預期接收到所有硬體通道的暫態模式(transient patterns)陣列資料,這包含了 RF 射頻、頻率偏移、X/Y/Z 三軸梯度線圈,以及資料擷取視窗(ADC)。 雖然在 FID (Free Induction Decay) 實驗中不需要任何梯度磁場,如果在 Python 腳本(GreSequencesGenerator)中完全忽略或不回傳梯度的時間與數值陣列,系統的內部驗證器(internal validator)會判斷序列結構不完整而報錯。因此,開發者必須在程式碼中「宣告」梯度序列的時間節點來滿足系統要求,這就是所謂的虛擬梯度(dummy gradient)。
(2) 物理層面: FID 的物理本質
在物理意義上,模擬自由感應衰減(FID)訊號時,ADC 必須在 RF 脈衝結束後立即觸發。FID 量測的是質子在主磁場 B0下自然去相位的純粹衰減訊號。如果在訊號擷取期間施加了真實的梯度磁場(非零振幅),會人為地導致質子快速去相位(dephasing),這就變成了梯度回波(Gradient Echo),從而破壞了我們想要觀察的純粹 FID 訊號。
客製化的 FID 序列基礎架構程式碼
可以透過繼承 sseq.PulseSequenceParameters 與 sseq.PulseSequenceGenerator 來定義新的序列參數與生成器
![]()
步驟三: 驗證與執行
Sim4Life 具有內部驗證器(internal validator),會自動檢查序列的完整性與語法。因此,在開發與測試自定義序列時,強烈建議保持 Console 視窗開啟,以便即時監控任何潛在的錯誤或驗證訊息。一旦腳本載入無誤,使用者即可在 SYSSIM 的 Setup 流程中選用自定義的序列進行進階模擬。
![]()
五、總結
透過 Python API 的擴充能力,Sim4Life 的 SYSSIM 模組不僅僅是一個標準的 MRI 模擬器,更是一個強大的脈衝序列開發平台。從基礎的梯度回波(GRE)到高度客製化的自由感應衰減(FID)實驗,使用者都能自由定義射頻脈衝、梯度變化與數據擷取時機。掌握了自定義序列的建立步驟與內部驗證機制後,研究人員便能在不佔用實體 MRI 儀器資源的情況下,於虛擬環境中迅速驗證序列設計、優化對比機制,大幅提升研發與實驗的效率。
依據歐盟施行的個人資料保護法,我們致力於保護您的個人資料並提供您對個人資料的掌握。
按一下「全部接受」,代表您允許我們置放 Cookie 來提升您在本網站上的使用體驗、協助我們分析網站效能和使用狀況,以及讓我們投放相關聯的行銷內容。您可以在下方管理 Cookie 設定。 按一下「同意」即代表您同意採用目前的設定,更多資訊請瀏覽 隱私權聲明。