🍠C++和R穿刺针吸活检肿瘤算法模型模拟和进化动力学量化差异模型
🎯要点
🎯模拟肿瘤细胞增生进化轨迹 | 🎯肿瘤生长的随机空间细胞自动机模型 | 🎯模拟穿刺活检的收集空间局部的肿瘤块,模拟针吸活检采集长而薄的组织样本 | 🎯构建不同参数模拟合成肿瘤测试集 | 🎯算法模型计算先验分布、计算概率分布的瓦瑟斯坦距离和欧氏距离 | 🎯细胞进化系统动力学量化分裂差异模型。
📜病理学用例
🍪语言内容分比
🍇R瓦瑟斯坦距离
两个概率测度 和之间的 瓦瑟斯坦距离,在有限 矩下,可以定义为
其中 是一个度量, 表示随机变量 Z 的期望值,下确界取随机变量 X 和 Y 的所有联合分布,边际为分别为 和 。对于 ,表明, 上的两个累积分布函数 和 之间的一维(一维)瓦瑟斯坦-1 度量可以写为 L_1距离:
因此,对于具有数值可处理的累积分布函数的分布,瓦瑟斯坦-1 度量可以用数值积分来近似。值得注意的是,该距离在单调变换(例如,在尺度变换下)下不是不变的。
接下来,我们展示分布 F() 和嵌套兴趣分布 之间瓦瑟斯坦-1 度量的数值计算示例,对于 的某个固定值。我们省略了位置和比例参数,但可以轻松调整 R 代码以包含这些参数。我们还展示了该函数的图:
可以解释为测量参数效果的函数。
偏斜正态概率密度函数为:
其中 和 分别是标准正态概率密度函数和累积分布函数,。在这里,我们计算 f() 和 之间的瓦瑟斯坦-1 度量。
 library(sn)
 library(knitr)
 MW1 <- Vectorize(function(par){
   tempf <- Vectorize(function(x)  abs(psn(x, alpha=par)  - pnorm(x)) )
   val <- integrate(tempf,-Inf,Inf)$value
   return(val)
 })
 
 lambda <- -5:5
 W1 <- MW1(lambda)
 print(kable(cbind(lambda,W1),digits=4)) ## 
 ## 
 ##  lambda       W1
 ## -------  -------
 ##      -5   0.7824
 ##      -4   0.7741
 ##      -3   0.7569
 ##      -2   0.7136
 ##      -1   0.5642
 ##       0   0.0000
 ##       1   0.5642
 ##       2   0.7136
 ##       3   0.7569
 ##       4   0.7741
 ##       5   0.7824结果绘图
 curve(MW1,-10,10, xlab = ~lambda, ylab="M", cex.axis=1.5, cex.lab=1.5, lwd=2, n = 250)两部分正态概率密度函数定义为:
其中 是标准正态概率密度函数,。在这里,我们计算 f() 和之间的瓦瑟斯坦-1度量。
 library(twopiece)
 library(knitr)
 
 MW1 <- Vectorize(function(par){
   tempf <- Vectorize(function(x)  abs(ptp3(x, 0, 1, par, FUN = pnorm, param = "eps")  - pnorm(x)) )
   val <- integrate(tempf,-Inf,Inf)$value
   return(val)
 })
 
 gamma <- seq(-0.9,0.9,by=0.1)
 W1 <- MW1(gamma)
 print(kable(cbind(gamma,W1),digits=4)) ## 
 ## 
 ##  gamma       W1
 ## ------  -------
 ##   -0.9   1.4362
 ##   -0.8   1.2766
 ##   -0.7   1.1170
 ##   -0.6   0.9575
 ##   -0.5   0.7979
 ##   -0.4   0.6383
 ##   -0.3   0.4787
 ##   -0.2   0.3192
 ##   -0.1   0.1596
 ##    0.0   0.0000
 ##    0.1   0.1596
 ##    0.2   0.3192
 ##    0.3   0.4787
 ##    0.4   0.6383
 ##    0.5   0.7979
 ##    0.6   0.9575
 ##    0.7   1.1170
 ##    0.8   1.2766
 ##    0.9   1.4362结果绘图
 curve(MW1,-0.99,0.99, xlab = ~gamma, ylab="M", cex.axis=1.5, cex.lab=1.5, lwd=2, n = 250)指数威布尔分布是一种三参数分布。它包含一个尺度参数、一个形状参数和一个幂(形状)参数。 指数威布尔分布包含作为特殊情况 () 的威布尔分布。 指数威布尔分布已用于对生存时间进行建模,因为它的风险函数可以捕获基本形状:常数、递增、递减、浴盆和单峰。
如果我们有兴趣比较两条生存曲线 和 ,一种可能的方法是计算生存曲线之间的面积,即它们之间的 距离。此外,由于 ,因此
在这里,我们将测量在尺度和形状参数为 1 的情况下功率参数 的影响,与具有单位尺度和形状参数的威布尔分布相比。
 library(knitr)
 
 pexpweibull<- function(t,lambda,kappa,alpha,log.p=FALSE){
   log.cdf <- alpha*pweibull(t,scale=lambda,shape=kappa,log.p=TRUE)
   ifelse(log.p, return(log.cdf), return(exp(log.cdf)))
 } 
 
 MW1 <- Vectorize(function(par){
   tempf <- Vectorize(function(x)  abs(pexpweibull(x, 1, 1, par)  - pweibull(x,1,1)) )
   val <- integrate(tempf,0,Inf)$value
   return(val)
 })
 
 alpha <- seq( 0.1,5,by=0.1)
 W1 <- MW1(alpha)
 print(kable(cbind(alpha,W1),digits=4)) ## 
 ## 
 ##  alpha       W1
 ## ------  -------
 ##    0.1   0.8465
 ##    0.2   0.7118
 ##    0.3   0.5920
 ##    0.4   0.4842
 ##    0.5   0.3863
 ##    0.6   0.2967
 ##    0.7   0.2142
 ##    0.8   0.1378
 ##    0.9   0.0666
 ##    1.0   0.0000
 ##    1.1   0.0626
 ##    1.2   0.1215
 ##    1.3   0.1773
 ##    1.4   0.2301
 ##    1.5   0.2804
 ##    1.6   0.3283
 ##    1.7   0.3740
 ##    1.8   0.4178
 ##    1.9   0.4597
 ##    2.0   0.5000
 ##    2.1   0.5387
 ##    2.2   0.5761
 ##    2.3   0.6120
 ##    2.4   0.6468
 ##    2.5   0.6804
 ##    2.6   0.7129
 ##    2.7   0.7444
 ##    2.8   0.7749
 ##    2.9   0.8045
 ##    3.0   0.8333
 ##    3.1   0.8613
 ##    3.2   0.8886
 ##    3.3   0.9151
 ##    3.4   0.9409
 ##    3.5   0.9661
 ##    3.6   0.9907
 ##    3.7   1.0146
 ##    3.8   1.0381
 ##    3.9   1.0610
 ##    4.0   1.0833
 ##    4.1   1.1052
 ##    4.2   1.1266
 ##    4.3   1.1476
 ##    4.4   1.1682
 ##    4.5   1.1883
 ##    4.6   1.2080
 ##    4.7   1.2274
 ##    4.8   1.2464
 ##    4.9   1.2650
 ##    5.0   1.2833结果绘图
 curve(MW1,0.001,5, xlab = ~alpha, ylab="M", cex.axis=1.5, cex.lab=1.5, lwd=2, n = 1000)Last updated
Was this helpful?
