免费可以看黄片的软件_加山なつこ爆乳美熟女中字_国产精品伦子一区二区三区_一级录像免费录像在线观看_清纯女被强行开了处视频_内射少妇亚洲色图_张倩白洁被弄高潮了视频_精品国产第一页中文字幕

中文
關于我們
主營業務
技術平臺
學術交流
新聞中心
加入我們
主營業務
表單填寫
*姓名
*電話
*郵箱
*公司
*留言信息
熙寧小課-第177期 | PK統計分析—R在藥代動力學(PK)分析中的應用
發布作者:熙寧生物發布時間:2025-06-13

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

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

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



?  

非房室模型(NCA):用于計算關鍵PK參數(如Cmax、AUC),無需假設房室結構,適用于早期藥物研發階段。

?  

Power Model分析:探索劑量與暴露量的線性關系,支持劑量優化決策。

?  

可視化分析:通過專業圖表(如線性和半對數藥時曲線圖)直觀呈現藥物動力學特征。

?  

自動化報告生成:利用r2rtf包實現從數據到Word報告的一鍵輸出,減少人工操作誤差。



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











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





PART 01

數據模擬



原始數據模擬







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








PART 02

非房室分析(NCA)



關鍵PK參數計算


























# 設置PK參數計算的單位轉換表ppunits <- pknca_units_table(concu="ug/mL", doseu="mg/kg", amountu="mg", timeu="hr")
conc_raw <-  arrange(pc, SUBJID,ATPTN)# 設置濃度數據conc_obj_multi <- PKNCAconc(data=conc_raw,formula=AVAL~ATPTN|SUBJID)# 設置劑量數據dose_raw <- select(conc_raw,ATPTN,DOSE,SUBJID) %>%   distinct()dose_obj_multi <- PKNCAdose(dose_raw,DOSE~ATPTN|SUBJID,route="intravascular",duration=1.5)
# 設置參數計算時間區間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)# 計算PK參數o_results <- pk.nca(o_data)
# 結果呈現ncasingle <- o_results[["result"]] %>%  select(SUBJID,start,end,PPTESTCD,PPORRES,PPORRESU) %>%   filter(PPTESTCD %in% c("cmax","auclast","aucinf.obs"))# 輸出PK參數kable(pivot_wider(ncasingle,id_cols=1,names_from = "PPTESTCD", values_from = "PPORRES"))





WinNonlin計算結果




PART 03

Power Model分析



劑量-暴露量關系建模


Power Model (原始形式):


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


·  

數據轉換:對劑量和PK參數取自然對數,轉化為線性模型。

·  

擬合與檢驗:使用lm函數進行回歸分析,計算斜率置信區間和R2,評估模型擬合優度。

·            可視化:展示不同參數的劑量效應趨勢,圖中標注斜率、R2及90%置信區間,直觀支持統計結論。














































# 劑量與參數的自然對數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() %>%   # 設置繪圖呈現格式  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)
# 劑量線性繪圖呈現(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 結果


通過SAS代碼復現分析,結果一致性驗證了R流程的可靠性。




PART 04

可視化分析



平均血藥濃度曲線

·  

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

·            對數尺度:通過scale_y_log10轉換,突出低濃度階段的細節,適用于寬動態范圍的數據。



























pcsas %  mutate(    aval=as.numeric(AVAL),    DOSE=str_c(DOSE,DOSEU)  ) # 分組時點血藥濃度定量統計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()  )









圖片

圖 藥時曲線








# 半對數血藥濃度-時間曲線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文檔自動導出


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

關鍵步驟:


·  

數據匯總:按劑量組和時間點計算均值、標準差、幾何均值等統計量。

·  

表格格式化:通過pivot_wider和arsenal包生成結構化表格。

·  

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



















































































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")) ,  ) # 定量統計,并調整樣式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,"}")  )# 合并原始數據與統計結果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)) 
# 設置輸出樣式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"))




表 模擬數據結果




PART 06

總結


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



PART 07

熙寧生物臨床藥理服務平臺


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



?  

PK NCA分析:采用WinNonlin軟件非房室模型(NCA)計算PK參數,結合SAS和R等專業軟件進行數據編程,確保分析結果精準可靠。

?  

實時分析支持劑量爬坡:通過實時數據分析,為SMC會議提供科學依據,優化臨床試驗設計。

?  

臨床藥理學研究設計與方案撰寫:基于客戶需求,定制化設計研究方案,確??茖W性和合規性。

?  

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



平臺配備資深的臨床藥理專家、專業統計師及統計編程團隊,能夠對統計分析報告中的數據進行深度解讀,提供專業的洞見和建議。我們嚴格按照CDISC標準進行統計編程,確保交付成果符合NMPA、FDA等國際監管機構的要求,助力藥物快速通過審批。



PART 08

我們的優勢







豐富的項目經驗




 在生物大分子領域,我們擁有豐富的PK統計分析經驗,涵蓋 CAR-T細胞療法、單抗、雙抗、ADC(抗體藥物偶聯物)等藥物類型,能夠精準分析其非線性動力學特征、靶點介導的藥物處置(TMDD)等特殊機制。

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




編程技術優勢




熟練使用 SAS 和 R 進行數據編程,生成高度定制化的高質量圖表,相比 WinNonlin 的基礎功能,R 和 SAS 在靈活性和可視化效果上更具優勢,確保數據呈現清晰直觀。




快速交付




憑借高效的團隊協作和先進的技術工具,我們能夠快速響應客戶需求,提供高效、精準的交付成果,助力藥物研發加速推進。



參考文獻:

[1] The PKNCA R Package

[2] Introduction to r2rtf

[3] Phoenix WinNonlin User’s Guide



專屬客服
免費通話
表單填寫
回到頂部