你就是自己的建模师

Snoopy是谁的模型?模型是对事物本质的逼近,有时我们宁愿选择不那么逼近真实,因为这样我们才能更不受世俗约束的表达自己的真实本质。 ​        在高楼大厦林立的繁华城市中,一只小狗躺在自己的屋顶上,仰望天空,陪伴它的是一只忘记了季节的小鸟“糊涂塔克”。它幻想开飞机,开火箭,当超人,它从不担心是否需要考飞机驾照,是否要学航天知识。。。。。。这就是Snoopy! ​        我不知道为什么会选择药学这个专业,也不知道为什么读了硕士、博士、博士后。生活所迫?也许吧。那时候读书是唯一能让我生活不太依赖家人的方法,不用交 学费,还有生活补助。但内心那种冲动这么多年来一直与现实抗争着:本科时,我着迷QBasic的图形编程,泡在东大的计算机中心,忘记了时间;硕士时,我 迷上了汇编语言,抱着看雪的加密与解密在不能站直身体的春运列车上看得忘记一切;博士时,我学习了matlab, C++, perl,并用perl开发了一个专业网站,稍有盈利;博后时,我迷上了建模,把WinNonLin用的纯熟(有点吹牛啊),但我很少用它解决药学内的问 题(不务正业),如果有人让我帮忙分析药动数据,我建议他们还是去用3P87或DAS之类的软件去算吧。但是如果你问的是WinNonLin从没有人用过 的应用,我会比较感兴趣, 比如有个博士生让我模拟几个中药成分的化学反应动力学,或者如何解决有损失采样造成的系统偏差,或者养殖鱼苗中给药后药物多长时间可以清除等等,我会比较感兴趣。这就是有点叛逆的我吧! ​        昨天我把放下好久的NONMEM,WFN,XPOSE又配置了起来,因为这就是我现在的工作!这是一个结束,也是一个新的开始。 ​        分享一下自己在08年研究NONMEN的时候写的笔记,正因为有了这个,我很快就恢复了建模环境: ================我是可耐的分割线================ 用G95编译NONMEM6 ​        NONMEM6的源码可以用Compaq Visual Fortran 6(CVF)直接编译,没有问题,若是用其他编译器,比如G95,就需要对源代码稍微改动一下,因为不同的编译器对一些命令的使用有区别。 ​        G95是免费的Fortran编译器,安装后只有十几兆,在网上很易找到并下载。而CVF的安装文件近600兆,很难在网上找到下载,并且安装后,占硬盘空间也很大,至少200多兆。因此使用精巧、免费的G95编译器进行编译具有很实际的意义。 ​        整个编译的过程可以参考NONMEM6的CDSETUP6.BAT文件,至少稍微修改就可以对NONMEM目录中的*.for进行编译,G95编译后的文件后缀为*.o,而CVF编译的后缀为*.obj。我修改后的setupG95.bat如下(注意,先删除所有目录中的*.obj,以及nonmem.lib,并删除run目录): 1. 运行setupG95.bat前,需要将根目录下MAKEG95BAT中的第45和48行中的“.obj”改为“.o”; 2. NM\FLU.for中的第9行“CALL COMMITQQ(I)”,改为“CALL    FLUSH(I)”,否则编译后运行会出现错误“c:\nmvi1\NM\nonmem.lib(FLU.o):FLU.for:(.text+0xa): undefined reference to `commitqq_'    ”; 3. NM\BLKDAT.for中的第28行中的'con'改为'CONOUT$ ';…

Phoenix实现“男生追女生的数学模型”

由于当前男女比例失调,男生能否追到女生具有重要现实意义。此模型有助于男生理性把握时机。 Phoenix是Pharsigh开发的药动建模平台,是制药界的“Gold Standard”。Phoenix不仅可以研究药动学问题,对于“男追女”的问题研究也是神器一枚。且看我们如何用它来实现获得了2013年菠萝科学奖的论文(“男生追女生的数学模型”)中的微分模型。 首先建立一个新Project “Boys after girls”,然后在Workflow中新建一个"WNL5 Classic Modeling-->WNL5 ASCII Format"。这是与旧版本兼容的建模语言,Phoenix还有自己更强大的PML建模语言,这个我们后面再讨论。此外,在Data项下,建立一个包含“Function, Time, Value”3列的表,function有2个,分别对应论文中的学业成绩函数y(t)和疏远度函数x(t),Time是1到500等间隔的数值,步长为1,步长越小,模拟的结果越精细,Value空着即可,是我们要通过微分方程模拟的值。 在窗口右侧的Setup中,写入下面的ASCII模型,其实绝大部分是套话,只有DZ(1)和DZ(2)两行代码最重要,对应论文中的方程组(5),我用Vw代替了“V1+lw”。 在Initial Estimate中设定f1,a1,k1,k2,m,n,Vw的初值(f1=0.03, a1=0.07, k1=0.954, k2=1, m=0.4, n=0.48, Vw=0.48, 在论文中有),最后勾选Engine Setting中的“Simulate”。 至此,男追女的数学模型建立完毕,运行后就可生成论文中图1-图4的数据。下面是图1的结果: 从图中可以看出,只要自己的能力和时间把握的比较好,就可以实现学习和爱情的双丰收(两个相互促进,共同提高)。祝看到此文的单身男士都找到自己心仪的女生! --EOF-- 文章来自,微信号:MS4Fun,不定期发布自己在质谱应用和建模&模拟方面遇到的一些有趣的事情,欢迎分享与推荐。