日韩人妻无码精品久久a免费,国第一产在线精品亚洲区^&,久久狠狠亚洲综合色成人18免费网站,二区久久久国产AV色,天天躁日日躁狠狠躁欧美
中文
關(guān)于我們
主營業(yè)務(wù)
技術(shù)平臺
學(xué)術(shù)交流
新聞中心
加入我們
主營業(yè)務(wù)
表單填寫
*姓名
*電話
*郵箱
*公司
*留言信息
熙寧小課-第177期 | PK統(tǒng)計(jì)分析—R在藥代動力學(xué)(PK)分析中的應(yīng)用
發(fā)布作者:熙寧生物發(fā)布時間:2025-06-13

PK(藥代動力學(xué))分析主要研究藥物在體內(nèi)的吸收、分布、代謝和排泄過程,其涉及的相關(guān)圖表包括血藥濃度-時間曲線、PK參數(shù)計(jì)算、劑量線性分析等。

R 是一款開源免費(fèi)、擴(kuò)展性強(qiáng)、腳本化操作的統(tǒng)計(jì)編程語言和環(huán)境,專為數(shù)據(jù)分析和可視化設(shè)計(jì),適用于早期研究、探索性分析、內(nèi)部決策支持等非遞交階段。正式遞交仍需使用已驗(yàn)證的商業(yè)軟件(如Phoenix WinNonlin、SAS),以確保合規(guī)性。

本文演示使用R完成PK分析全流程,包含:



?  

非房室模型(NCA):用于計(jì)算關(guān)鍵PK參數(shù)(如Cmax、AUC),無需假設(shè)房室結(jié)構(gòu),適用于早期藥物研發(fā)階段。

?  

Power Model分析:探索劑量與暴露量的線性關(guān)系,支持劑量優(yōu)化決策。

?  

可視化分析:通過專業(yè)圖表(如線性和半對數(shù)藥時曲線圖)直觀呈現(xiàn)藥物動力學(xué)特征。

?  

自動化報告生成:利用r2rtf包實(shí)現(xiàn)從數(shù)據(jù)到Word報告的一鍵輸出,減少人工操作誤差。



流程結(jié)合了開源工具(如PKNCA、ggplot2)與傳統(tǒng)商業(yè)軟件(WinNonlin、SAS)的對比驗(yàn)證,確保分析結(jié)果的可靠性。











# 核心分析包library(tidyverse)library(readxl)library(PKNCA)    # 非房室分析library(r2rtf)    # RTF輸出
# 輔助工具library(knitr) # 交互式表格





PART 01

數(shù)據(jù)模擬



原始數(shù)據(jù)模擬







pc <- read_xlsx(path=str_c(getwd(),"/outputs/pc.xlsx"))# 查看模擬數(shù)據(jù)knitr::kable(pc[1:10, 1:6])








PART 02

非房室分析(NCA)



關(guān)鍵PK參數(shù)計(jì)算


























# 設(shè)置PK參數(shù)計(jì)算的單位轉(zhuǎn)換表ppunits <- pknca_units_table(concu="ug/mL", doseu="mg/kg", amountu="mg", timeu="hr")
conc_raw <-  arrange(pc, SUBJID,ATPTN)# 設(shè)置濃度數(shù)據(jù)conc_obj_multi <- PKNCAconc(data=conc_raw,formula=AVAL~ATPTN|SUBJID)# 設(shè)置劑量數(shù)據(jù)dose_raw <- select(conc_raw,ATPTN,DOSE,SUBJID) %>%   distinct()dose_obj_multi <- PKNCAdose(dose_raw,DOSE~ATPTN|SUBJID,route="intravascular",duration=1.5)
# 設(shè)置參數(shù)計(jì)算時間區(qū)間intervals_manual <- data.frame(start=0,end=504,cmax=TRUE,auclast=TRUE,aucinf.obs=TRUE)
o_data <- PKNCAdata(conc_obj_multi, dose_obj_multi,intervals=intervals_manual,units=ppunits)# 計(jì)算PK參數(shù)o_results <- pk.nca(o_data)
# 結(jié)果呈現(xiàn)ncasingle <- o_results[["result"]] %>%  select(SUBJID,start,end,PPTESTCD,PPORRES,PPORRESU) %>%   filter(PPTESTCD %in% c("cmax","auclast","aucinf.obs"))# 輸出PK參數(shù)kable(pivot_wider(ncasingle,id_cols=1,names_from = "PPTESTCD", values_from = "PPORRES"))





WinNonlin計(jì)算結(jié)果




PART 03

Power Model分析



劑量-暴露量關(guān)系建模


Power Model (原始形式):


線性化形式 (取自然對數(shù)后):


·  

數(shù)據(jù)轉(zhuǎn)換:對劑量和PK參數(shù)取自然對數(shù),轉(zhuǎn)化為線性模型。

·  

擬合與檢驗(yàn):使用lm函數(shù)進(jìn)行回歸分析,計(jì)算斜率置信區(qū)間和R2,評估模型擬合優(yōu)度。

·            可視化:展示不同參數(shù)的劑量效應(yīng)趨勢,圖中標(biāo)注斜率、R2及90%置信區(qū)間,直觀支持統(tǒng)計(jì)結(jié)論。














































# 劑量與參數(shù)的自然對數(shù)rst <- left_join(ncasingle,distinct(dose_raw,DOSE,SUBJID),by="SUBJID") %>%   mutate(    logx=log(DOSE),    logy=log(PPORRES),    PPTESTCD=factor(PPTESTCD,levels=c("cmax","auclast","aucinf.obs"))  )
# 模型擬合split <- split(rst,~PPTESTCD,drop=TRUE)
lmci <- map(split,             \(x) data.frame(PPTESTCD=unique(x$PPTESTCD),logx=lm(logy~logx,x)[["coefficients"]][["logx"]],                               Rsq=summary(lm(logy~logx,x))[["r.squared"]],                               confint(lm(logy~logx,x), "logx", level= 0.90 ))) %>%   bind_rows() %>%   # 設(shè)置繪圖呈現(xiàn)格式  mutate(    .logx=formatC(`logx`,digits=4,format = "f"),    lwci=formatC(`X5..`,digits=4,format = "f"),    upci=formatC(`X95..`,digits=4,format = "f"),    Rsq=formatC(`Rsq`,digits=4,format = "f"),    ci=str_c("Rsq:",Rsq,";Slope:",.logx,";\n90%CI (",lwci,", ",upci,")"),  ) %>%   select(PPTESTCD,ci)
# 劑量線性繪圖呈現(xiàn)(base <- ggplot(rst,aes(x=logx,y=logy)) +    geom_point(shape=24) +    geom_smooth(method = "lm", se = TRUE) +    geom_text(aes(x=1.5,y=-Inf,label=ci),data=lmci,size=3,vjust=-0.5) +    scale_x_continuous(breaks=c(0.69,1.38,2.08),labels=c("Ln(2)","Ln(4)","Ln(8)")) +    labs(title = "Power Model",x="ln(Dose)(mg/kg)",y="ln(param)") +    facet_wrap(vars(PPTESTCD),scales = "free", axes="all" ,               labeller = as_labeller(                 c("cmax"="C[max](ug/mL)",                   "auclast"="AUC[last](h%.%ug/mL)",                   "aucinf.obs"="AUC[0-inf](h%.%ug/mL)"),                 ,default = label_parsed)) +    theme_minimal())



SAS 結(jié)果


通過SAS代碼復(fù)現(xiàn)分析,結(jié)果一致性驗(yàn)證了R流程的可靠性。




PART 04

可視化分析



平均血藥濃度曲線

·  

線性尺度:展示各劑量組濃度隨時間的變化趨勢,誤差條表示標(biāo)準(zhǔn)差,反映個體間變異。

·            對數(shù)尺度:通過scale_y_log10轉(zhuǎn)換,突出低濃度階段的細(xì)節(jié),適用于寬動態(tài)范圍的數(shù)據(jù)。



























pcsas %  mutate(    aval=as.numeric(AVAL),    DOSE=str_c(DOSE,DOSEU)  ) # 分組時點(diǎn)血藥濃度定量統(tǒng)計(jì)stplot %   group_by(DOSE,ATPTN) %>%   summarise(    Mean=mean(aval,na.rm = TRUE),    SD=sd(aval,na.rm = TRUE),    lower=ifelse(is.na(SD) | Mean-SD %  ungroup()# 線性血藥濃度-時間曲線(normal %   ggplot(aes(x = ATPTN, y = Mean ,colour=DOSE)) +    geom_errorbar(mapping=aes(ymin=lower, ymax=upper),width = 0.5,alpha=0.5) +    geom_line(linewidth = 0.5,alpha=0.5) +    geom_point(alpha=0.5) +    scale_x_continuous(breaks=c(24,72,168,336,504)) +    labs(x="Time(h)",y="Concentration(mean)",colour="劑量組:",title = "藥時曲線") +    theme_classic()  )









圖片

圖 藥時曲線








# 半對數(shù)血藥濃度-時間曲線normal %+% subset(stplot, Mean>0) +   scale_y_log10(n.breaks=4,labels = scales::trans_format("log10", scales::math_format(10^.x))) +  annotation_logticks(sides = "l",outside = TRUE) +  expand_limits(y = c(1,10,100)) +  coord_cartesian(clip = "off")




圖 藥時曲線



PART 05

報告生成



Word文檔自動導(dǎo)出


工具鏈:r2rtf包支持從數(shù)據(jù)匯總到RTF格式報告的全流程自動化,功能類似SAS的Proc Report。

關(guān)鍵步驟:


·  

數(shù)據(jù)匯總:按劑量組和時間點(diǎn)計(jì)算均值、標(biāo)準(zhǔn)差、幾何均值等統(tǒng)計(jì)量。

·  

表格格式化:通過pivot_wider和arsenal包生成結(jié)構(gòu)化表格。

·  

RTF輸出:定制頁面方向(橫向)、邊距和分欄布局,生成格式精美、便于審閱的標(biāo)準(zhǔn)化報告。



















































































pcsas <- pc %>%  mutate(    aval=as.numeric(AVAL),    log=ifelse(aval>0,log(aval),NA),    order=1,    DOSE=str_c(DOSE,DOSEU),    PCSTRESC=str_trim(formatC(AVAL,digits = 3,format = "f")) ,  ) # 定量統(tǒng)計(jì),并調(diào)整樣式st <- filter(pcsas,!is.na(aval)) %>%   group_by(DOSE,ATPTN) %>%  summarise(    N=paste(sum(!is.na(aval))),    Mean=str_trim(formatC(mean(aval,na.rm = TRUE),digits = 3,format = "f")),    SD=str_trim(formatC(sd(aval,na.rm = TRUE),digits = 3,format = "f")) ,    Min=formatC(min(aval,na.rm = TRUE),digits = 2,format = "f"),    Median=str_trim(formatC(median(aval,na.rm = TRUE),digits = 2,format = "f")),    Max=formatC(max(aval,na.rm = TRUE),digits = 2,format = "f"),    `CV%`=case_when(      mean(aval,na.rm = TRUE> 0 ~ formatC(sd(aval,na.rm = TRUE)/mean(aval,na.rm = TRUE)*100,digits = 1,format = "f"),      .default =  NA),    Geomean=case_when(      mean(aval,na.rm = TRUE> 0 ~ str_trim(formatC(exp(mean(log,na.rm = TRUE)),digits = 3,format = "f")),      .default =  NA),  ) %>%   pivot_longer(cols = c("N","Mean","SD","Min","Median","Max","CV%","Geomean"),names_to = "SUBJID",values_to = "PCSTRESC") %>%   mutate(    order=case_when(      SUBJID=="N" ~ 2 ,      SUBJID=="Mean" ~ 3 ,      SUBJID=="SD" ~ 4 ,      SUBJID=="Min" ~ 5 ,      SUBJID=="Median" ~ 6 ,      SUBJID=="Max" ~ 7 ,      SUBJID=="CV%" ~ 8 ,      SUBJID=="Geomean" ~ 9    ),    SUBJID=str_c("\\b1{",SUBJID,"}"),    PCSTRESC=str_c("\\b{",PCSTRESC,"}")  )# 合并原始數(shù)據(jù)與統(tǒng)計(jì)結(jié)果rst <- bind_rows(pcsas,st) %>%   select(DOSE,order,SUBJID,ATPTN,PCSTRESC) %>%   arrange(DOSE,order,SUBJID,ATPTN) %>%   pivot_wider(id_cols = c(1:3),names_from = c("ATPTN"),values_from = "PCSTRESC") %>%  ungroup() %>%   select(-order%>%  group_by(DOSE) %>%   group_modify(~ add_row(.x)) 
# 設(shè)置輸出樣式rtf <-  rst %>%  rtf_page(    orientation = "landscape",    border_first = "single",    border_last = "single",    margin =  c(0.750.750.750.750.50.5),    nrow=100  ) %>%   rtf_colheader("||Time",                border_left=NULL,                border_right = NULL,                border_top = "single",                border_bottom = c("","","single"),                col_rel_width = c(8,8,96)  ) %>%   rtf_colheader(colheader = "劑量|受試者|Pre|EOI|0.5h|1h|2h|6h|D2|D3|D4|D8|D15|D22-Pre",                border_left=NULL,                border_right = NULL,                border_top = NULL,                border_bottom = "single",                ,col_rel_width = rep(9,14)) %>%   rtf_body(border_left = NULL,          border_right = NULL,          pageby_row = "column",          group_by="DOSE",          subline_by=NULL%>%   rtf_encode() %>%   str_replace('fcharset161','fcharset134'%>%   write_rtf(str_c("outputs/","table_pc_summary.rtf"))




表 模擬數(shù)據(jù)結(jié)果




PART 06

總結(jié)


本文通過R語言實(shí)現(xiàn)了藥代動力學(xué)的全流程分析,涵蓋數(shù)據(jù)預(yù)處理、參數(shù)計(jì)算、統(tǒng)計(jì)建模、可視化及報告生成,適用于非遞交的PK數(shù)據(jù)分析。熙寧生物憑借專業(yè)的PK編程團(tuán)隊(duì)和資深藥理專家,結(jié)合驗(yàn)證工具(如Winnonlin、SAS)與開源軟件(如R),能夠高效精準(zhǔn)地滿足客戶各類PK/PD統(tǒng)計(jì)分析需求,為藥物研發(fā)與臨床研究提供可靠支持。



PART 07

熙寧生物臨床藥理服務(wù)平臺


熙寧生物臨床藥理服務(wù)平臺,專注于創(chuàng)新藥(涵蓋生物大分子及小分子)的臨床藥理學(xué)研究,擁有豐富的項(xiàng)目經(jīng)驗(yàn)和專業(yè)的技術(shù)能力。我們提供全方位的臨床藥理學(xué)服務(wù),包括:



?  

PK NCA分析:采用WinNonlin軟件非房室模型(NCA)計(jì)算PK參數(shù),結(jié)合SAS和R等專業(yè)軟件進(jìn)行數(shù)據(jù)編程,確保分析結(jié)果精準(zhǔn)可靠。

?  

實(shí)時分析支持劑量爬坡:通過實(shí)時數(shù)據(jù)分析,為SMC會議提供科學(xué)依據(jù),優(yōu)化臨床試驗(yàn)設(shè)計(jì)。

?  

臨床藥理學(xué)研究設(shè)計(jì)與方案撰寫:基于客戶需求,定制化設(shè)計(jì)研究方案,確??茖W(xué)性和合規(guī)性。

?  

完整PK/PD統(tǒng)計(jì)分析及CSR撰寫:提供生物分析檢測到統(tǒng)計(jì)分析報告生成的一站式服務(wù),確保高效交付。



平臺配備資深的臨床藥理專家、專業(yè)統(tǒng)計(jì)師及統(tǒng)計(jì)編程團(tuán)隊(duì),能夠?qū)y(tǒng)計(jì)分析報告中的數(shù)據(jù)進(jìn)行深度解讀,提供專業(yè)的洞見和建議。我們嚴(yán)格按照CDISC標(biāo)準(zhǔn)進(jìn)行統(tǒng)計(jì)編程,確保交付成果符合NMPA、FDA等國際監(jiān)管機(jī)構(gòu)的要求,助力藥物快速通過審批。



PART 08

我們的優(yōu)勢







豐富的項(xiàng)目經(jīng)驗(yàn)




 在生物大分子領(lǐng)域,我們擁有豐富的PK統(tǒng)計(jì)分析經(jīng)驗(yàn),涵蓋 CAR-T細(xì)胞療法、單抗、雙抗、ADC(抗體藥物偶聯(lián)物)等藥物類型,能夠精準(zhǔn)分析其非線性動力學(xué)特征、靶點(diǎn)介導(dǎo)的藥物處置(TMDD)等特殊機(jī)制。

 對小分子藥物,我們深入分析其吸收、分布、代謝和排泄(ADME)特性,全面評估其藥代動力學(xué)行為。




編程技術(shù)優(yōu)勢




熟練使用 SAS 和 R 進(jìn)行數(shù)據(jù)編程,生成高度定制化的高質(zhì)量圖表,相比 WinNonlin 的基礎(chǔ)功能,R 和 SAS 在靈活性和可視化效果上更具優(yōu)勢,確保數(shù)據(jù)呈現(xiàn)清晰直觀。




快速交付




憑借高效的團(tuán)隊(duì)協(xié)作和先進(jìn)的技術(shù)工具,我們能夠快速響應(yīng)客戶需求,提供高效、精準(zhǔn)的交付成果,助力藥物研發(fā)加速推進(jìn)。



參考文獻(xiàn):

[1] The PKNCA R Package

[2] Introduction to r2rtf

[3] Phoenix WinNonlin User’s Guide



專屬客服
免費(fèi)通話
表單填寫
回到頂部
日韩人妻无码精品久久a免费,国第一产在线精品亚洲区^&amp;,久久狠狠亚洲综合色成人18免费网站,二区久久久国产AV色,天天躁日日躁狠狠躁欧美