2020-02-27 09:35:57 來源:源資信息科技(上海)有限公司
背景:
Phoenix?WinNonlin?/ Phoenix NLME / Phoenix IVIVC等Phoenix系列軟件是專為參與藥物研究與開發的科學家提供了強有力的分析工具,NONMEM是一個通過代碼行使用的計算引擎,沒有圖形界面,那有沒有什么辦法把二者結合起來,使得NONMEM可以通過Phoenix友好的圖形界面進行控制與操作呢?
?
當然是有的,Phoenix作為一個完整的解決方案平臺,擁有友好的兼容性,可以把R、SAS、NONMEM、SigmaPlot等第三方分析工具無縫的集成至Phoenix平臺,是我們可以像使用Phoenix本身的一些分析工具一樣使用它們。
?
使用的軟件:Phoenix8.2,NONMEM7.3
所需授權:Phoenix?WinNonlin?/ Phoenix NLME / Phoenix IVIVC等任意一種授權皆可。
?
操作流程說明:
1.首先建立Phoenix與NONMEM之間的鏈接,
2.案例演示,
2.1導入數據,
2.2發送至R并映射數據,
2.3執行,
2.4結果,
3.示例中R代碼的注釋,
4.小結
?
1.鏈接設置:
1.1.查找當前電腦中“NONMEM”安裝的位置,比如:“C:\nm73g\run\nmfe73.bat”
?
1.2.啟動Phoenix軟件
1.3.點擊“編輯(Edit)”菜單“首選項(Preferences…)”,打開首選項對話框
1.4.選擇菜單中的“NONMEM”節點,指定“NONMEM7批處理文件位置(NONMEM7 Batch?File Location)”。
例如“C:\nm73g\run\nmfe73.bat”
1.5.點擊“測試(Test)”按鈕,測試與NONMEM的鏈接,測試成功會出現如下圖所示提示。
2.案例演示:
2.1.新建Phoenix項目,命名為“NONMEM01”
2.2.鼠標右擊“數據(Data)”文件夾,選擇“導入(Import)”。
?
2.3.通過導航窗導航至Phoenix安裝目錄中的“示例(Examples)”文件夾,例如“C:\Program Files (x86)\Certara\Phoenix\application\Examples\NONMEM\LocalRun”,選中所有文件,點擊“打開”。
?
2.4.導入后可得到下圖所示的結果。
2.5.鼠標右擊“代碼(Code)”文件夾中的“CONTROL5”文件,選擇“發送至(Send To)”“NONMEM”“NONMEM Shell”。
?
2.6.為“NONMEM”操作對象中的“Dataset”報表選擇外部數據源,將原始數據中的“Residuals”表格作為他們的數據源,然后完成映射列表。
?
2.7.點擊執行按鈕,執行“NONMEM”操作對象,執行過程中可以看到一閃而過的調用“R語言”產生的日志窗口。
?
2.8.結果,在結果子標簽中,我們可以看到一列的結果:附加結果、數據結果、圖表結果、文本結果。
3.案例中“NONMEM”代碼的注釋
代碼及注釋(下圖中綠色的部分為注釋):
NONMEM代碼文本:
$PROB ?THEOPHYLLINE ??POPULATION DATA
$INPUT ?????ID DOSE=AMT TIME CP=DV WT
$DATA ??????THEOPP2
???
$SUBROUTINES ?ADVAN2
?
$PK
;THETA(1)=MEAN ABSORPTION RATE CONSTANT (1/HR)
;THETA(2)=MEAN ELIMINATION RATE CONSTANT (1/HR)
;THETA(3)=SLOPE OF CLEARANCE VS WEIGHT RELATIONSHIP (LITERS/HR/KG)
;SCALING PARAMETER=VOLUME/WT SINCE DOSE IS WEIGHT-ADJUSTED
???CALLFL=1
???KA=THETA(1)+ETA(1)
???K=THETA(2)+ETA(2)
???CL=THETA(3)*WT+ETA(3)
???SC=CL/K/WT
?
$THETA ?
(.1,3,5) ;KA
(.008,.08,.5) ;K
(.004,.04,.9) ;CL
$OMEGA BLOCK(3) ?6 .005 .0002 .3 .006 .4
?
$ERROR
???Y=F+EPS(1)
?
$SIGMA ?.4
?
$EST ????MAXEVAL=450 ?PRINT=5
$COV
$TABLE ?????????ID DOSE WT TIME PRED CP
$SCAT ??????????(RES WRES) VS TIME BY ID
$SCAT ??????????PRED VS CP
?
4.小結
4.1.在Phoenix中“NONMEM?Shell”通過讀取代碼中的“$DATA”語句指定Phoenix需要提供的數據的報表,通過“$INPUT”語句來讀取Phoenix中的表格中的列。
4.2.代碼執行完畢后,Phoenix會讀取工作空間中的文件(圖),把它們展示到結果列表中去,并額外的自動生成一些常用的常用的數據結果和圖表結果,極大的降低了NONMEM的使用難度,提高了代碼工具的易用性。
?
到此本案例就結束了,通過該案例我們可以發現,在Phoenix中調用NONMEM非常的方便,可以提高NONMEM代碼的可重用性,完善NONMEM的稽查軌跡,這是Phoenix強大的易用的一種體現。
?
相關鏈接:
Phoenix 友好的兼容性:Phoenix 與 R 語言的鏈接