Jinzhe Zeng's Blog

苟利国家生死以,岂因祸福避趋之

0%

准备开启一个《我的第X篇论文》系列,目的是自己写得开心,可能含有大量专业词汇。按照只看一作的评价标准,以及发文章的速度,不会频繁更新。


时至2018年3月,那时我刚刚结束了一个失败的课题,对molecular dynamics (MD)有了初步了解。大三下学期是一个“无课学期”,我的课表上只有4学分的课,有大量富余时间。开学后,导师告诉我暂缓force matching的project,先开始基于hidden Markov Model (HMM)分析MD轨迹的课题。这个project来自前一年申请的国自基金项目,然而当时我尚未入组,这个课题迟迟未能完成。

老师给了我Liping Wang的两篇文章用作参考,很快,我google到一个名叫hmmlearn的library。基于上一个课题的部分代码,很快,我便有了思路。解决了几个关键问题后,3月11日,第一版Python程序出炉,能够分析LAMMPS的bond文件,并生成每个原子的路径,计算出轨迹的所有反应,生成一个reaction matrix。

但是,由于这一版程序是串行的,分析10GB的MD轨迹文件有点力不从心。我尝试用multiprocessing实现并行,速度的确大大提升了,但是出现了超算上64GB内存全部用光,子进程全部挂掉的情况。无数次debug+Stackoverflow后,我终于确认原因:I/O比程序运行得慢,导致进程全堵塞在内存里。解决方法是用Semaphore。解决了这个问题后,我的程序终于可以正常分析轨迹了。测试了甲烷和RP-3的表现后,4月6日,我把程序传到了GitHub上。

程序仍有待进一步完善。一方面,reaction matrix仍然不够直观。关于这一点,我找到了networkx这个package,可以用力引导的方式生成reaction network的图像。另一方面,目前的程序不能识别同分异构体。我发现OpenBabel和RDKit可以生成SMILES,不过痛苦的是,他们的安装过程的极其繁琐。在尝试安装的过程中,我发现了Anaconda这个宝藏,可以跳过C++程序的编译过程。之后,我用RDKit实现了这一功能。到了4月底,这一课题算是基本成功了,我把主要精力转移到了深度学习的课题中。

剩下的精力用于画图,同时我对程序进行了各种优化。借助OpenBabel的力量,我实现了读取坐标,并转化为化学键的信息。此外,我也深入理解了HMM的原理。端午节回家的时候,我用这三天假期写出了文章,并把程序命名为ReacNetGenerator,同时创建了相应的setup.py。不过,因为种种原因,进一步修改文章的工作被搁置下来。

9月至11月的专业实习虽然极其可恶,但是我因此拥有了大量空闲时间,又对程序进行了完善:首先,实现了conda编译和安装,大大简化了安装步骤。其次,读取坐标时实现了周期性边界条件。虽然OpenBabel本身不支持周期性边界条件,但是可以用奇技淫巧实现。第三,实现了命令行和GUI运行程序。最后,利用我的一点前端的知识,以及OpenBabel生成的图像,将结果展示到了网页上。

12月,为了申请学校,初步修改后的论文被传到了preprint网站ChemRxiv上。这篇论文成为我申请时提供的论文之一。

到了2019年的寒假,除了修bug外,我又做了几个方面的优化。第一,大大增快了计算速度。我发现,计算时的主要瓶颈是中间缓存文件的I/O。于是,我先用lz4+base64压缩数据后,再存入临时文件。另一方面,我用Cython重写了部分函数。第二,了解了前端的最新动向后,我将前端用到的library全部调用nodejs和yarn安装,可以很方便地更新library。之后,我还用前端实现了绘制network的功能,以及筛选物种的功能。另外,我还做了一个可视化的进度条,并且完善了软件的官网。

7月底,那时已经毕业了,我借着这个软件获得了中国大学生计算机设计大赛一等奖。不过这篇文章因为种种原因仍然难产,直到9月中旬,来到Rutgers开始rotation后,这篇文章被投到PCCP。之后的事情平淡无奇:10月上旬审稿意见出来,大修,修回后,11月下旬被接受。

最后,我的第一篇文章终于在新年第二天见刊了。虽然档次不算高,花费的时间和精力也不是很多,但作为第一篇文章,具有很大的纪念意义,我也因此大大提升了技术,为之后的课题奠定了基础。


Zeng, J; Cao, L; Chin, CH*; Ren, H*; Zhang, J ZH; Zhu, T*, ReacNetGenerator: an automatic reaction network generator for reactive molecular dynamics simulations, Phys. Chem. Chem. Phys., 2020, 22 (2), 683–691, DOI: 10.1039/C9CP05091D

上个月学校CSSA发了1000包,然而睡了一觉就完美错过了问卷。这次又发了500包,终于抢到了。

所谓健康包,本来当然应该有个包的,但是由于包不够,就没领,于是就变成了散装。

健康包总览

包括2盒连花清瘟胶囊,5盒卫生湿巾,2袋KN95,两袋医用外科口罩,一本《预防新冠​肺炎防护知识问答》。本来应该还有慰问信,但是不知道为什么供应不足,发完了,看来只能把小册子作为纪念了。

连花清瘟1

连花清瘟2

两盒连花清瘟胶囊,都生产于2020年2月25日,批号2002016。一共48粒,按照说明书上的剂量,可以吃4天。

卫生湿巾1

卫生湿巾2

伽马卫生湿巾,每袋20片,一共100片。保质期两年,到2022年3月9日。包装袋上写了“英国品牌”四个字,背后标了公司地址在Watford,按照邮箱的域名看就是GAMA Healthcare。不过显然made in China。

KN95

两片美舒护KN95,执行的标准是GB2626-2006KN95,不过也标注了CE和FDA认证。网上没查到这个品牌的信息,标的地址在安庆,应该是国产品牌。于是,根据标注的“Anhui Meihu Medical Supplies Technology Co., Ltd.”,我用天眼查查了一下,全称应该是“安徽美护医疗用品科技有限公司”,是今年3月3日“紧急”成立的小微企业,注册资本500万。

口罩

20片3L医用外科口罩,生产日期2020年3月11日,产地南昌。这家公司全称叫“江西3L医用制品集团有限公司”,公开资料显示,似乎要上市了。

CDC1

CDC2

最后是CDC的小册子。

CDC3

今天是马克思诞辰纪念日,有感而发。

在本科毕业前的半年内,我见证了科研工作者的奋斗。尽管办公室的门上张贴的时间制度是996,但每晚23点离开时,办公室乃至整栋理科大楼仍是灯火通明,继续留守的老师和学生仍然不少。7×24小时工作(简称007)早已成为一种习惯。

但是当我来到Rutgers后,开学第一周,系主任却告诉我们,你必须在工作和生活之间取得平衡。随后我也见证了这样的平衡:每晚20点以后和周末,(除了我这个见证者外)办公室一定是空空荡荡。大部分老师周末一定不回邮件。965也成为了一种习惯。

今天看到中国科讯的一则推送《“僧多粥少”“前浪”难超,学术界的“后浪”们越来越难了!》,这应当就是当下学术界的真实写照。

5月5日,新泽西

Rutgers Today 4月3日报道[1],疾控中心现在推荐人们离家时佩戴口罩。罗格斯大学医学与微生物学教授、CABM(先进生物技术与医学中心)主任Martin Blaser表示,口罩可以阻止病毒传播的证据明确,人们都应当佩戴口罩。他指出,病毒主要通过呼吸道传播,既可以通过咳嗽传播,也可以由无症状患者传播,而戴口罩能有效防护病毒传染。因此,每个人在离家时或散步时,抑或在6英尺范围内与他人接触时,都应佩戴口罩。

Martin Blaser认为,卫生部门因为口罩不能提供最高水平的防护,就劝阻人们戴口罩,是一个错误。除了戴口罩外,他还建议人们勤洗手,并保持社交距离。

Martin Blaser的Google Scholar引用数达11.6万,h-index达169。


  1. 1.Should You Wear a Face Mask to Protect Against the Coronavirus?, Rutgers Today, April 3, 2020.

引用使馆及总领馆官网内容,均提供参考资料,按时间倒序排列,长期更新。

美国能否控制疫情

  • 4月29日,驻美使馆教育处

从公开的数据上可以了解到,美国感染新冠肺炎的确诊病例和死亡人数仍在上升,疫情总体形势还是严峻的。但近期纽约州等疫情严重地区的住院人数和死亡病例已开始呈下降趋势。如果美国继续采取有效措施进行防控,预计疫情整体形势趋缓应是未来发展的大趋势。较为明确的一点是,疫情对美国社会基本生活并没有造成大的影响,日常生活用品的供应还是有保障的,大家去超市购物都比较重视做好防护,另外网上购物也越来越方便,减少外出是完全可以做到的。[8]

Read more »

NJDOH于3月24日起公布了所有测试点的Negative数据总和,从图中可以看出,3月25日起,测试量稳定在了5k左右,应该就是目前的测试极限了。然而今明两天要将测试量限制在每日500,试剂盒的供应可能存在问题。

image alt text

我们可以看到,在测试数量不断扩大后(三天内翻了一倍),确诊率仍保持在40%上下,这说明数据增长的瓶颈仅仅在于测试量,那么,之后的确诊数据基本上是没有参考价值的——仅仅反应测试量的多寡。想要看到真实的数据,必须继续增加测试数量。武汉巅峰时期能测2万例,现在NJ 5k,NY 1万,还需要继续努力,继续被输血。

从图中还可以看出,3月22日国民自卫队搭建的临时检测点,于3月25日开放大规模检测后,确诊率上升了近10%——这毫无疑问说明人群中有大量患者之前没有得到测试。只要这种现象持续下去,就说明测试量还没有追上疫情的蔓延速度。现在这个只能说明——如果你出现了症状,那么就有2/5的可能性是患者。当然我相信,既然已经shutdown了,之后还是有希望追上的(数据有滞后性)。

image alt text

来源:一亩三分地

病逝人数一般认为是比较真实的。从图中可以看出,取了对数的病逝人数是条直线,即增长人数呈指数增长,鉴于潜伏、发病到病逝需要一定的时间,这说明大概半个月前,没有shutdown的那段时间,是按指数传染的,大致每周翻三番,这个数据和之前确诊量的数据差不多,因为之前的确诊量本来也就等于重症量。shutdown的效果还要过几天再看死亡人数。不过,应当庆幸的是,从目前的数据来看,医疗应当尚未被击穿。

现在的局势说不定比武汉还差了,唯一的好消息是这个病毒确实对年轻人更友好。只希望科研力量能拯救全世界了。

最近几个月,Google Colab上线了免费的P100。本文介绍如何用Google Colaboratory的免费P100训练deepmd-kit模型。

在Google Drive上传训练需要的文件。为了方便展示,这里以GitHub的库里的example为例,但是stop_batch被调为了20000。

打开Colab网站https://colab.research.google.com/ ,点击下方的“新建笔记本”:

进入Colab界面,点击代码执行程序>更改运行时类型,将硬件设置为GPU:

用!nvidia-smi看一下被分到的卡是什么型号,看看是不是较差的P4,毕竟能否抢到P100也个玄学的事情。如果不是,可以重复执行以上操作。

用!pip install deepmd-kit tensorflow==2.1 配置环境:

挂载Google Drive。点击左侧的“文件”图标,点击“挂载Google云端硬盘”,并且同意访问:

cd到刚才上传目录训练,然后坐等训练完成。

免费的还是挺香的。

保存模型:

测试模型。由于我只训练了20,000个batch,精度没有达到最高水平:

回到Google Drive,我们发现,所有训练文件都在里面了——也就是说如果中途断线也可以继续训练。

本文的colab文件

很久没有写技术贴了。最近,总有在Linux环境下连回ecnu服务器的需求,但是又不想丧失使用Google的权利,怎么办?openconnect是一个非常好的开源软件,可以实现这一需求。

openconnect支持AnyConnect、Pluse Connect等诸多高校常用的校外访问平台,可以用包:

1
sudo apt install openconnect

1
sudo dnf install openconnect

然后用pip安装vpn-slice:

1
pip install vpn-slice

确定which vpn-slice能够找到路径。

方便起见,我们先设置环境变量:

1
2
3
4
export SERVER=vpn-cn.ecnu.edu.cn
export USERNAME=20199966
export PASSWORD=<HIDDEN>
export IPRANGE="219.228.63.0/21 59.78.176.0/20 59.78.199.0/21 202.120.80.0/20 222.66.117.0/24"

SERVER是要连接的服务器地址,USERNAME是我的用户名,PASSWORD是密码,IPRANGE是需要用VPN访问的IP段,这里就是ecnu的IP段。然后我们使用openconnect连接:

1
2
3
4
5
6
7
8
echo "$PASSWORD" | \
sudo openconnect $SERVER \
-m 1290 \
-u $USERNAME \
--passwd-on-stdin \
-s "$(which vpn-slice) $IPRANGE" \
-b \
--syslog

即可连接成功。

ping ecnu的服务器,大致就是中美之间的正常延迟:

1
2
3
4
5
6
7
8
9
10
(base) [[email protected] bin]$ ping 219.228.63.136
PING 219.228.63.136 (219.228.63.136) 56(84) bytes of data.
64 bytes from 219.228.63.136: icmp_seq=1 ttl=62 time=246 ms
64 bytes from 219.228.63.136: icmp_seq=2 ttl=62 time=246 ms
64 bytes from 219.228.63.136: icmp_seq=3 ttl=62 time=246 ms
64 bytes from 219.228.63.136: icmp_seq=4 ttl=62 time=246 ms
64 bytes from 219.228.63.136: icmp_seq=5 ttl=62 time=246 ms
64 bytes from 219.228.63.136: icmp_seq=6 ttl=62 time=246 ms
64 bytes from 219.228.63.136: icmp_seq=7 ttl=62 time=246 ms
64 bytes from 219.228.63.136: icmp_seq=8 ttl=62 time=246 ms

ping google,延迟极小:

1
2
3
4
5
6
7
8
9
(base) [[email protected]muscato bin]$ ping www.google.com
PING www.google.com (172.217.12.164) 56(84) bytes of data.
64 bytes from lga25s62-in-f4.1e100.net (172.217.12.164): icmp_seq=1 ttl=53 time=2.10 ms
64 bytes from lga25s62-in-f4.1e100.net (172.217.12.164): icmp_seq=2 ttl=53 time=2.25 ms
64 bytes from lga25s62-in-f4.1e100.net (172.217.12.164): icmp_seq=3 ttl=53 time=2.30 ms
64 bytes from lga25s62-in-f4.1e100.net (172.217.12.164): icmp_seq=4 ttl=53 time=2.32 ms
64 bytes from lga25s62-in-f4.1e100.net (172.217.12.164): icmp_seq=5 ttl=53 time=2.31 ms
64 bytes from lga25s62-in-f4.1e100.net (172.217.12.164): icmp_seq=6 ttl=53 time=2.25 ms
64 bytes from lga25s62-in-f4.1e100.net (172.217.12.164): icmp_seq=7 ttl=53 time=2.20 ms

虽然只过了博士生涯的1/10,但是已经可以对比了。

0 待遇和工作时间

待遇方面,本科期间导师给的津贴是¥800-1000/月,因为导师的经费只支持这么多。博士期间的工资是$3000/月,全额学费减免,医保,享受1984年税收协定的零税率。
收到工资确实是一件很有仪式感的事情,感到自己的劳动受到了尊重。

工作时间方面,本科期间有张纸贴在办公室的门上,说是一周7天,每天9:30-21:30,不过我没理睬过这张纸。博士期间课题组对工作时间没有任何要求。实际来说,本科期间大概只要对得起良心就行,比如每天8小时,不过由于周末总能见到人,所以周末去办公室是件正常的事情。博士期间的状态也差不多,不过大家都会在20点前走光,导致我最晚也会在21点走人;周末去办公室总是见不到人,大概大家默认周末不上班,于是后来也不去了,最多在家工作。

1 办公环境

本科时,导师在办公室给了一个比较宽敞的座位;博士时,座位宽敞了3倍,人均面积提高了10倍。连卫生间都更加宽敞。本科时办公室的面积是要给学校交钱的;博士时尚不清楚。

2 仪器

办公电脑方面,本科时,导师给了一套含显示屏的dell电脑,型号记不清了,我毕业前又买了NAS给我存数据,感觉很大方。博士时,老板给我买了$2985的Dell alienware(京东卖三四万RMB)、$339的HP显示屏和2个$174.99的4TB硬盘,感觉老板就是土豪。

超算方面,本科时,学校有超算,现在已经有九期了,有CPU和GPU,觉得学校很有钱。美中不足的是超算是收费的,需要老师申请账号,CPU 0.1元/核/小时,GPU 1元/卡/小时。博士时,得知所有超算都是免费的,当时就大跌了眼睛。学校主要有两个超算,一个是学生也可以申请的Amarel,CPU和GPU型号和华师大的差不多,但是速度莫名其妙就是更快(当然不是心理作用,测试过的)。另一个是Caliburn,说是花了一千万刀美元建设的。华师大在超算上十年的投入应该都没这么多。

网络方面,本科时,有100Mbps有线网,感觉很快,当然只限于国内的网络。博士时,竟然有1000Mbps有线网,下个package唰的一下就下好了,当时感觉不敢相信自己的眼睛。GitHub也很快。

3 老板

经费方面,本科时,觉得经费很多。博士时,查到老板每年竟然能从NIH拿到120万刀经费,不知道是国内的多少倍了。

关于老板的h-index,Google Scholar的数据分别是13和47。

老板都不push。具体来说,博士期间的老板更不push一点。当然,可能是因为push程度是相对的,当自己比老板还push时老板就显得不push了。

4 课题组

博士期间,组里人才更多,猜测因为工资更高。

关于组内通讯方式,除了当面聊这一全世界通用的方式以外,本科期间,一般用微信,立马回;博士期间,只用email,一般不回,偶尔回。

关于组会,本科期间,组会按例一周一次。博士期间,迄今为止只开过两三次,感觉根本没有开组会的习惯。

5 课题

本科时,用deep learning potential炼丹;博士时,还在用deep learning potential炼丹。

6 课程与讲座

本科期间,上课对研究没有任何帮助;博士期间,虽然选的课都是(看起来)相关的,但是对研究仍然没有任何帮助。

讲座报告都是一般每周一次。

7 院系和同学

本科时,一个年级一个班。博士时,大致也是如此,不过没有听说过有“班级”的说法。(可能叫program?)

本科时,同班同学都是正儿八经的第一学历985的学生(废话)。博士期间,发现同年级第一学历在国内的那些同学的第一学历也都是985。

关于院系的文章要求,应该没有哪里会对本科生有文章要求;然而博士期间,对文章仍然没有任何要求。

本科期间学院内有丰富的活动,包括学院的班级的团支部的党支部的。博士期间未见有什么活动,清净的很。

本科时学院有学生会。博士期间并没有这种东西。

8 学校资源

关于电子资源,感觉没什么区别,该买的数据库学校都买了。

关于校外访问校园网的方式,都是思科的AnyConnect,没什么区别。

关于Email,本科期间学校提供的是无限量的腾讯企业邮箱,stu.ecnu.edu.cn域名;博士期间学校提供的是100GB的Outlook和无限量的Gmail,rutgers.edu域名和chem.rutgers.edu域名。

关于网盘,本科期间学校没有提供网盘;博士期间学校给了无限量的Google Drive、无限量的Box和5TB OneDrive。

关于软件,都提供了Windows、Office全套、MATLAB等软件,区别在于本科期间提供了全套Adobe和Visio,博士期间提供了ChemOffice。

9 生活

本科期间和博士期间都经常吃食堂和点外卖。外卖都主要点汉堡和中餐。

日前发布的《华东师范大学2019年毕业生就业质量报告》显示,华东师范大学化学与分子工程学院2019年共毕业245人,就业率达98.78%(242人),仅3人暂不就业。就业率超过孟宪承书院、计算机科学与软件工程学院等23个院系,也超过全校平均水平(96.91%)。

《就业质量报告》同时公布了院系本科毕业生留学、升学比例。化学与分子工程学院本科毕业生境内升学率达41.67%,境外留学率达9.72%。

就业质量报告院系留学、升学数据