-
自去年转到临床试验统计编程团队,我一直在思考如何提高效率(如何偷懒😜)。其中一个工作就是解决如何撰写数据集的说明文件(SPEC)更快速更标准,为此我开发了SPEC制作工具。这个工具可以引用标准或者历史的信息库,同时也可以导入EDC说明书信息,通过预设的各种可选项和便捷输入方式,使得使用者能够快速输出一个能用Pinnacle21进行define.xml转换的excel版SPEC文件,软件所有预想设计功能已经在5月底完成。 到这儿就够了吗?SPEC的作用是指导数据集的代码如何编写,于是我想让这个工具打通到底,在现有软件架构和功能的基础上,再设计一套通过快速配置,来生成各数据集的SAS代码。实现这套工具能覆盖统计编程程序员的全流程工作。在 …
阅读更多 -
需求 最近开发Electron的软件,前端vue,后端使用Python。每次在启动开发环境时,或者需要将前后端分别打包时,感觉有些麻烦。比如启动python程序运行,需要先进去后端路径并激活虚拟环境,然后启动。然后在回到前端路径,启动前端。打包也是,先进入后端激活python虚拟环境,打包。然后再回到前端路径,打包。更省力气的做法是,在Windows环境下,我想双击脚本就完成开发环境的程序运行,或者完成前后端的分别打包,这样给开发工作增加一些小小的幸福感。 实现 经过研究bat脚本的语法,终于实现了以上需求,记录如下。整体思路是脚本一步一步模拟人工操作,并且要确保完成上一步再执行下一步。 一键启动前后端开发环境的批处理bat脚本如 …
阅读更多 -
摘要 为处理计算包含54万患者,共8个单个大小超过2G的CSV数据,应用了本地sqlite数据库来实现分批处理,减小内存压力。并应用了multiprocess模块来实现多进程处理,充分利用多核CPU来减少运算时间。 直接运算的问题 使用pandas读取大于2G的数据,需要占用远远超过2G的内存,就算主机有32G,在读取多个文件,在加上多个复杂计算的代码后,内存也很快被挤爆。而且运算需要的时间过长,不做多进程设计的情况下,16核的CPU只有可怜的一核在做运算,其他核处于围观状态。就算内存没被撑爆,运算时间也需要10个小时以上。直接不加处理运算在面对此情况下的需求时,变得一筹莫展。怎么破? 破解思路 首先要解决数据太大占用内存过高的问 …
阅读更多