MoreRSS

site iconMiao Yu | 于淼修改

美国杰克逊实验室科学家,《现代科研指北》作者。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Miao Yu | 于淼的 RSS 预览

百年社保

2025-08-17 08:00:00

最近收到个邮件,是美国社安局庆祝自己90周年的,然后我就想起了那个传说中美国社保崩盘年份——2033,这么一算,要是没有改革,看起来90周年很可能就是社安局最后一次庆祝自己的整数年了。这里我们复盘一下,毕竟中国养老金预期耗尽的年份大概在2035年,虽说四舍五入还差了10年但总归还是有借鉴意义的。

20世纪30年代,美国社会刚经历完大萧条,65岁以上老人有一半生活在贫困线下面,巧了,带英在1908年的社会调查也得到了同样的结论。其实说白了这口锅在工业革命脑袋上,农业社会最贪婪的地主也不过就是搞一下土地兼并,然后被皇权敲打下,普通人开个荒搞个自耕农不至于生活在贫困线下面。但工业革命后,劳动力进城了,物质上高度依赖分工后高效的产业提供商品,人们的情感束缚却逐渐脱离家族伦理变成家庭伦理,更独立的同时也更脆弱,需要社会层面提供制度保障了。

其实,工业国家在19世纪末20世纪初普遍经历了一次社会关系变革,国家认同。美国移民的黄金期就是这个时代结束的,之前你跳上船跑到美国在爱丽丝岛上搞个卫生筛查基本就算你美国人了,但经历几十年的移民,美国社会里自然就出现了对移民的反对。1924年,美国出台一个影响至今的移民法案,它根据1890年美国人口调查对移民来源国实行了配额制,每年每个国家移民配额为1890年在美国的该国出生人口的2%,这就基本排除掉了南欧跟东欧国家,这些国家在1890年移民不多。同时,该法案规定“没有资格获得公民身份的外国人不得移民美国”,这个规定指向了1790年归化法案,在规划法案里定义只有“自由的白人”才能成为美国公民。至于华人,1882年就有专门排华法案禁止华人移民了,但1924年法案将其永久化了。而护照也是一战后为了防间谍才成为一项国际制度,之前更多描述会类似:我去新大陆闯天地,而国家认同出现后就变成移民了。

更神奇的地方在于,这项法案是有“科学”依据的,也就是所谓的优生学,把社会问题归咎于不良遗传基因并对人种进行了划分:北欧人种是顶层,阿尔卑斯中欧人种是次等,南欧东欧是劣等,非白人则属于不可同化人种。要没有这个理论支持,他们也不会挑出1890年作为配额参考年。当然,这个理论启发了一个小胡子,他读了麦迪逊·格兰特的《伟大种族的消逝》后将其称为圣经,而1924移民法案也激发了他动用国家机器来建立种族国家的政策,更不用说当时美国遍地开花的为“基因不适者”搞得强制绝育法也给纳粹设立类似法案提供了数据,显得“科学”与“现代”。

时至今日欧美政坛,依然有大替换理论为反移民提供指导方针。现在他们不说基因不好这种很容易被技术证伪的话了,转而说白人要被灭绝了,核心论据是生育率数据,他们对比了下绿墨三的生育率,认为这些“文化不兼容”的群体生育率太高了,白人生育率又太低,开放移民前提下白人就会逐渐被取代。现象确实没错,但原因可以说胡说八道,因为东亚的超低生育率已经表明生育率跟人种没啥关系,单纯就是个经济发展后必然出现的现象,而且大概率不可逆,甚至印度现在生育率都低与世代更替水平了。不过这个高生育率现象确实值得多说两句,过去100年出现高生育率的国家与地区的人均GDP基本都在几百美元到一两千美元水平,一旦超过,生育率马上掉头就跌。如果硬要找个解释,倒不如用R/K选择理论:当收入特别低时,自己养不活自然生育率不高,但当收入达到可以养活自已后,最优的生存策略就是繁衍大量后代,用数量来提供概率保证,不过当收入再高到几千美元后,人们的策略会转到看重质量上。推动这一策略转变的原因还是在工业化与现代化上,过去一百年,全世界大部分人口都经历了农业社会到工业社会的转变,而工业社会不需要更多人数而是高水平技工,重视教育与现代生活的多样化分散了人们在生育这件事上的精力,除了宗教还在鼓励外,世俗社会里低生育率已经是不错的现状了,而且越发达生育意愿越低,要是机器人发展再快点,0生育率也不是不能期待。

当然,1924法案很多内容现在都被废止了,毕竟文明进步的方向不能是血缘论,但移民配额制依然存在,尤其是对非白人国家的移民限制依然很严格。美国人对移民的恐惧与排斥情绪在二战后有过短暂缓和,但冷战后又开始反弹,尤其是911事件后,反恐战争的名义下移民政策变得更为严格。移民在两端比较多,一端是低端劳动密集型产业,这可以降低本土美国人的生活成本,另一端在高技术移民,可以吸引创新性人才,但在保守主义者眼里只要是移民都是威胁,尤其是低端移民,他们认为这些人会抢走美国人的工作机会,甚至会带来犯罪率上升等社会问题,这究竟是事实还是带着偏见的逻辑推断,各位自己查吧。

扯远了,说回社保。1935年,美国人开始有了社保,一切都在好转。但时间来到1983年,经历70年代滞涨后的美国经济疲软,到82年年底,社保信托基金已经空了,此时美国人担心这个运行不到50年的社保可能要完蛋,这时候美国两党再次联合,把退休年龄从65推迟到了67,同时提高了工资税率。这个83年改革其实跟这两年国内社保改革的手段差不多,没钱就推迟退休年龄,但国内好像没提高税率。只能说也就是当时没有互联网来搞串联,美国这次危机就轻松度过了,但类比前两年法国马克龙,想推迟一年结果民众就上街了。然后,从1983年到2009年,美国社保出现了26年盈余,除了改革以外,婴儿潮没退休也是很重要的一点。

时至2010年,美国社保第一次出现现金流赤字,也就是当年收入小于支出,需要依靠利息来补窟窿。说起来美国也是吃了技术红利的大头,利息收入竟然续命了10年,一直到2021年,信托基金余额才开始减少,然后大家就都算出了2033年这个彻底耗尽的时间点。不过耗尽不代表崩溃,只是变成了当年收入补当年支出的模式,据估计大概能支付77%,剩下的就只能搞改革了。眼下也不是没有方案,自由派方案是说取消掉社保收入上限,也就是现在年收入超过17万多后社保封顶,这样对于高收入者社保有上限,但保守派则认为你搞开源没用,得节流,要求砍当前的社保福利,当然不出意外美国的退休年龄可能也会进一步被延长。不论怎么看,当前社保可能都算是出于巅峰期,后面不管怎么改对当前交社保的人而言都是不如当前领社保的人了。

其实社保出现本身就是国家概念的延伸,原来靠家族或子女,现在国家承担相当一部分的经济责任。不过也正是因为国家承担了老年人赡养责任,现代社会的家庭结构就进一步解体了,发达国家老年人独居比例普遍比较高,国内则会出现子女一线打拼,父母二三四五线城市居住的格局,养儿防老的传统观念事实上正在不断弱化。经济越发达,个体独立性越强,原来骂封建大家长,现在就可以骂原生家庭,压迫也确实一直都在,只是希望骂的时候想一下你自己能做好到什么程度。但社保这个体系还是要维持的,所以兜兜转转又要回到是否接纳移民的问题上来。你放开了移民限制,那么就可以从其他国家地区吸收到交社保的人,但同时也会面临文化冲击,不放开移民限制,那么最好祈祷技术进步后大公司会为机器人交社保,不然社保账户几乎一定是亏本的。最差的情况,社保崩盘,自主养老,那么社会大概率重现美国大萧条后老年人一半生活在贫困线下的场景,一个现实就是越穷的人越不会管理自己的财富,没有强制社保,各类骗子或黄赌毒也会从他们手里拿走那些声称可以自主养老的钱。就连宗教都有历史悠久的十一税,其实也起到了部分社会救济的功能。

低生育、少子化、老龄化、社保见底、移民政策、贫富分化……这些美国社会当前面对的问题其实是所有现代国家都会面对的问题,这是经济发展一定会出现的现象,这里面讨论意识形态毫无价值,技术上解决问题才是应对方法,我们的窗口期大概就是10年,不能因为过去三四十年的平稳就默认后面也是一样的。我现在能想到的方案有这些,之前都写过文章:

  • 有效期现金 : 通过有效期倒逼价值流动来提高资本效率,弱化贫富差距。

  • 投资式教育 : 所有教育免费,靠工作的人交1%收入来维持其从幼儿园到博士学校的运行。

  • 全民基本收入:机器人收税,全民发钱,共享技术进步福利。

没错,这些方案看起来都挺激进的,但对比社保崩盘又太温和了。

Single File Injections: A 'Fishing-Style' Paradigm Shift for High-Throughput LC-MS Analysis

2025-08-14 08:00:00

In non-targeted metabolomics or environmental non-targeted analysis, throughput is a key factor involving data quality. Typically, we use the same chromatography-mass spectrometry method to run a sample sequence. The sequence executes sample analysis tasks sequentially, meaning the next sample is injected only after the previous one has completely finished running, with each sample generating a single data file. In this process, even if we compress the chromatographic separation time to 15 minutes, we can run fewer than one hundred samples a day at maximum capacity. When considering the quality control (QC) samples included in the injection sequence, the actual number of samples that can be analyzed is even smaller. If thousands of samples need to be processed, the analysis can easily stretch over a month. An instrument running continuously for a year without maintenance can only handle less than ten thousand actual samples, not to mention that each sample might need to be run on different chromatography columns and in both positive and negative ion modes. Under this technical limitation, it is difficult for non-targeted metabolomics or environmental non-targeted analysis to match the throughput of other omics fields, which can handle thousands or tens of thousands of samples per day. Furthermore, as the number of samples increases, batch effects or instrument stability require additional correction, making data quality control exceedingly complex—a true bottleneck issue.

The biggest limitation here is actually sequential injection, where each additional sample adds a full chromatographic separation time. From a data perspective, each sample corresponds to an independent data file, which actually wastes data storage space. For example, when you look at the mass spectrum of sample A eluting at 10 minutes, this spectrum only contains substances from sample A, and most of the space in a full scan is just noise. We can then consider increasing the amount of information by adding more samples while keeping the data space for each sample constant. In simple terms, we don’t wait for one sample to completely finish before injecting the next. Instead, we continuously inject different samples at a fixed time interval, for example, every 1 minute. This way, the data collected at the 10-minute mark of the run will contain substances from sample A separated for 10 minutes, substances from sample B separated for 9 minutes, substances from sample C separated for 8 minutes, and so on. The figure below is an example. The first 10 minutes show the complete separation of 10 substances. What follows is the data that appears when 9 identical samples are injected at one-minute intervals. To the left of the red dashed line is conventional injection, where the mass-to-charge ratio vs. retention time data space is sparse and not utilized efficiently. However, with fixed-interval injections as shown on the right, we can see that the data storage space utilization is significantly improved.

If the chromatographic column’s separation performance is reliable, then theoretically, isomers eluting at different retention times will only interfere with other samples if their time interval is exactly one minute. In this scenario, the marginal time required for each additional sample is theoretically only one minute. This allows us to achieve the analysis of thousands of samples per day. At the same time, the interference from the background or matrix is naturally shortened, mobile phase consumption is greatly reduced, and under isocratic elution, complex peak alignment steps are largely unnecessary. It could be said that in the world of techniques, speed conquers all.

This idea did not come from nowhere. In fact, flow injection technology emerged in the 1970s to increase throughput. Later, with the development of chromatographic technology, methods involving fixed-time-interval injection with isocratic elution also appeared. However, these methods were not for analyzing unknown compounds but for known ones, such as in high-throughput drug screening. If you already know the retention time of a substance, you can find the peak position for the next sample by simply adding the retention time to the injection interval. But what if you don’t know what you are measuring? This brings us back to the previously mentioned scenario. I can inject samples this way, but how do I process the data? As shown in the figure below, the data we collect is like the superimposed image on the left, and we need to recover the individual images on the right.

I submitted an abstract on this topic to this year’s American Society for Mass Spectrometry (ASMS) conference, primarily to solve this problem, and recently submitted a preprint to make this technology public. The solution is quite simple. While we indeed don’t know what we are measuring, we don’t necessarily need to. The most crucial piece of information is that a specific mass-to-charge ratio will appear at a specific retention time. We can obtain this information by running a complete separation of a pooled sample before conducting the fixed-interval injections. Then, we just need to get all the combinations of retention times and mass-to-charge ratios that appear in the pooled sample. Subsequently, the information for a given substance in different samples can be obtained by looking for the response of that mass-to-charge ratio at the expected peak time, which is calculated as its original retention time plus the product of the fixed time interval and the sample injection number. This is like fishing: we don’t know where the fish will appear, but if we have baited a spot beforehand, we can find the corresponding fish by casting our line near that spot. Therefore, this strategy can be understood as “baiting the spot before fishing,” or “Fishing-style Injection.” Note that this method does not require finding a peak for the substance in every sample; it only provides a spatial range to look for the peak. If no peak is found, it means the corresponding sample does not contain that substance. The figure below is a demonstration of the algorithm: the retention time of peak A in the pooled sample, plus the fixed time interval multiplied by (injection number - 1), plus the full separation time of the QC sample, equals the retention time of peak A in the sample with that injection number.

An idea without action is cheap. I noted this idea in my notebook back in 2017, but at the time, I lacked the ability and resources to turn it into action. My current work allows for free exploration, so I revisited this idea and validated it through collaboration in the lab. The most critical part of the practical implementation is to decouple the communication between the chromatography injection and the mass spectrometry acquisition, allowing them to operate independently according to a pre-designed injection sequence without interrupting the MS data collection.

We tested the performance of Fishing-style Injection on two chromatography columns in both positive and negative ion modes. We injected 158 samples in each mode, including a pooled sample as a QC every ten samples, with the total injection time controlled to under six hours. A conventional injection approach would have required several days and a multi-batch design. Because the marginal time added for each additional sample in this method is equal to the fixed time interval (one minute), it is possible to analyze one thousand samples a day while ensuring each sample has 10 minutes of separation time. Repeated tests showed that the retention time shift was within 10 seconds; the reversed-phase column actually performed better, and the shift on the HILIC column was also within an acceptable range. In terms of quantitative performance, within the 10-minute isocratic elution window, although we found 1000-3000 peaks during the “baiting” process, after considering only the peaks with a response deviation of less than 30% in the intra-sequence pooled samples and removing peaks found in the blank, we could still obtain 450-738 stable peaks. Again, the reversed-phase column performed better than the HILIC column. This result is already in the same order of magnitude as the number of peaks obtained with gradient injection after applying similar quality control standards. Furthermore, the issue of isomeric interference mentioned earlier does exist, but for blood metabolomics specifically, fewer than 2% of the peaks were affected. If you are analyzing lipids, you should definitely evaluate this effect first and optimize for a fixed interval time that minimizes interference. If throughput is a priority and you have tested that the compounds you care about can be separated by the column, then Fishing-style Injection offers a natural advantage in speed and cost. The cost per sample can be controlled to under $10, which is at least an order of magnitude lower than current injection methods, making high-throughput mass spectrometry screening a reality. Moreover, I have already written an open-source software package for the most critical data processing part of this method. If you want to try this method, there is no need for physical modifications to your existing instrument; you just need to control the chromatography injection and data acquisition separately. In fact, the mobile phase can be switched to gradient elution, but the injection interval would no longer be fixed and would need to be optimized for the column. Alternatively, the interval could be kept fixed, but the algorithm would need to recognize the elution pattern. I will leave these parts for future improvements by others.

Feel free to try it out!

Preprint link: https://chemrxiv.org/engage/chemrxiv/article-details/6897568d728bf9025ec3ab62

渔式进样法

2025-08-12 08:00:00

在进行非目的代谢组学或环境非目的分析时,通量是一个涉及数据质量的关键因素。通常我们会用同样的色谱质谱方法来跑样品序列,而序列会顺序执行样品分析任务,也就是当一个样品完全跑完后再进下一个样品,每个样品会生成一个数据文件。在这个过程中,即使我们把色谱分离时间压缩到15分钟,一天撑死也就跑不到一百个样品,而考虑上进样过程中的质控样品,实际能分析的样品数还要少。而如果要处理上千个样品,分析时间拖上个把月没问题,一年一台连轴转不保养的仪器也就能处理不到一万个实际样品,更不用说每个样品可能要在不同色谱柱及正负离子下跑。在这个技术限制下,非目的代谢组学或环境非目的分析很难与其他组学的一天几千上万样品通量匹配,更不用说伴随样品数上升,批次效应或仪器稳定性需要额外进行矫正,数据质量控制会变得非常复杂,算得上卡脖子问题了。

这里面最大的限制其实就是序列进样,每增加一个样品就要增加一个完整的色谱分离时间。从数据角度看,就是每个样本会对应独立的数据,然而这样其实浪费了数据存储空间。打个比方,你去看A样品在10分钟流出的质谱图时,这个质谱图里只会包含A样品里物质,全扫描的大部分空间都是噪音。那我们就可以考虑保持样品数据空间不变通过增加样本来提高信息量,说人话就是我们不要等一个样品完全跑完才进下一个样品,而是按固定的时间间隔例如1分钟连续进不同的样品,这样在该数据10分钟收集到数据就会包含来自样品 A 10分钟分离的物质,样品 B 9分钟分离的物质,样品 C 8分钟分离的物质……以此类推。下图是一个示例,前10分钟是10个物质完全分离,后面是间隔一分钟进9个同样样品会出现的数据。红虚线左边就是常规进样,此时荷质比-保留时间的数据存储空间是稀疏的,利用率不高,但如果按右边固定间隔进样,我们会看到数据存储空间利用率就提高了。

如果色谱柱分离效果在线,那么理论上在不同保留时间流出的同分异构体的时间间隔只有正好精确到1分钟才会出现对其他样品的干扰,而此时我们每增加一个样品,理论上需要增加的边际时间也只有1分钟,这样我们就可以实现一天分析上千个样品了。同时,背景或基质的干扰时间也自然而然被缩短,流动相消耗会大幅降低,等度洗脱下基本也不需要进行复杂的峰对齐步骤,可以说天下武功,唯快不破。

这想法并不是无源之水。事实上,上世纪70年代就出现了流动注射技术来提高通量,后面伴随色谱技术发展,也出现了固定时间间隔进样等度洗脱的方法,只是这些方法并不是用来处理未知物的,而是处理已知物的,例如高通量药物检测之类。如果你已经知道某个物质的保留时间,只要按进样的时间间隔增加保留时间就可以找到下一个样品出峰位置。但如果你不知道要测什么呢?这就回到了前面所说的场景,我可以这样进样,但数据咋处理?如下图,我们收集到的数据就像是左边的叠加图像,需要恢复出右边图像。

我在今年的美国质谱年会提交了一个摘要,主要就是解决这个问题的,最近也提交了一份预印本论文来公开这项技术。解决的思路也很简单,我们确实不知道要测什么,但其实也没必要知道要测什么,这里面最关键的信息就是在特定保留时间会出现特定荷质比,而这个信息我们可以通过在进行固定间隔进样前跑一下混合样的完全分离来获得。然后,我们只需要把混合样里所有会出现的保留时间与荷质比的组合拿到,那么后面不同样品里该物质的信息就可以通过寻找保留时间加上固定时间间隔与样品进样序号的乘积这个出峰时间该荷质比的响应来获得。这就好比钓鱼,我们并不知道鱼会出现在哪里,但是如果我们事先打过窝,那么只要在打窝的位置附近下钩就能找到对应的鱼,所以这个策略可以理解为先打窝后钓鱼的渔式进样。注意,这个方法并不需要每个样品都能找到该物质的峰,只是提供了找峰的空间范围,找不到就代表对应样本不含有该物质。下图是算法的一个演示,混合样品A峰的保留时间加上固定时间间隔乘以进样序号减1再加上质控样品全分离时间就是进样序号样品里A峰的保留时间。

只有想法没有行动那想法就是廉价的,这个想法我2017年就记在笔记里了,但当时并不具备将其转化为行动的能力与资源。现在的工作可以自由探索,我就又重新把这个想法捡了起来,通过跟实验室合作实际验证了一下。实操过程中最关键的地方要切断色谱进样与质谱收集之间的通讯,让其单独按设计好的进样序列进样而不去中断掉质谱数据采集。这里面自然没少踩坑,这些坑有些我放到预印本里了,有些虽然浅浅写了一笔,但背后的工作量并不少。

第一个坑就是固定的时间间隔需要根据数据重新算,原因在于如果你单独进样,进样过程的时间是不进行数据采集的,但在渔式进样里,质谱是需要连续采集信号的。因此,即使你设定隔一分钟进一次样,考虑上洗针等过程,每一针是固定时间间隔会多出大概半分钟,这样我们就需要写一个启发式算法来找到这个操作者可能不知道的时间间隔。当然,我希望这个坑可以通过改进仪器控制软件来实现而不是后期用软件方法补充。

第二个坑就是混合样品需要重复进样,理论上混合样品进一针,空白样品进一针就可以得到全部样品里可能出现的峰,但现实中发现样品里出现了大量存在固定时间间隔,但单一混合样品里没出现的峰。这个现象在DDA里也很明显,我只是没想到全扫描也需要一些重复进样,当然文章里用的是最保守的方法,只考虑了出现在所有六个混合样里的峰,但实际样品可以考虑放宽限制,除非你对自己质谱灵敏度特别有信心。

第三个坑最耗费时间,那就是峰提取软件会漏峰,明明在EIC里特别明显的峰,xcms就只能找到其中的一部分,这导致我第一次跑样后拿到的结果非常差,本来以为是算法问题,后来才发现峰表本身就不全。同时,你可以想象到渔式进样只会产生一个数据文件,文件也非常大,信息密度很高,有些软件根本就处理不了直接无响应。因此我只好自己写了个非常简单的依赖信噪比局部最大值找峰的算法,用C++写运行速度并不慢,但起码不会出现特别明显的漏峰。之所以用了很简单的算法,主要是渔式进样也是等度洗脱,峰形稳定,另外就是柱子不需要再平衡,流动相全程不变,当然这会牺牲柱效,但我们也测试了用不同等度条件进行洗脱,确实可以一定程度提高峰覆盖率,但既然这个方法看重的是高通量,那完全可以抓大放小,先优化出最好的等度条件,然后就用这个条件跑就可以了。这个地方其实希望色谱柱厂商也能跟进研发专用的等度洗脱柱,现在的色谱柱为了适应梯度洗脱做了一些性能取舍,等度洗脱其实还有很大优化空间。

我们实际测试了渔式进样在两根色谱柱上正负离子的表现,每个模式进样158个,其中每十个样品会加入一个混合样进行序列中质控,进样时间控制在六小时以内,而换常规进样则需要几天多批次设计。因为这个方法每增加一个样品所增加的边际时间等同于固定时间间隔,也就是一分钟,因此可以实现一天测定一千个样品且保证每个样品都有10分钟的分离时间。反复测试下发现保留时间偏移在10s以内,反相柱表现其实更好些,HILIC柱的偏移也在可接受范围呢。定量表现上,考虑10分钟的等度洗脱窗口,虽然在打窝过程我们其实找到了1000-3000的峰,考虑上序列中混合样峰响应偏差小于30%并且扣除掉空白样品里的峰,大概依然可以得到450-738个稳定峰,同样是反相柱表现优于HILIC柱,这个结果其实已经跟梯度进样考虑同等级质量控制后的峰数在同一量级了。另外,前面提到了同分异构体干扰问题,确实存在,但单就血样代谢组学而言,被影响的峰低于2%,如果你做脂肪类物质,一定先去评估下这个影响,优化出一个影响最小的固定间隔时间。如果看重分析通量且测试过自己关心的化合物可以被色谱柱分离,那么渔式进样会有天然的速度与成本优势,单一样品进样成本可以控制在10美元以内,比当前进样方式成本低至少一个数量级,这可以让高通量质谱筛查成为现实。同时,这个方法最关键的数据处理我已经写好了开源软件包,如果想试用这个方法也不需要对现有仪器进行物理改造,只要分开控制色谱进样与数据采集即可。其实色谱流动相是可以换成梯度洗脱的,只是此时间隔进样时间就不固定了,需要按柱子优化,或者间隔时间固定,但算法上需要识别流出模式,这些部分就留给后人改进吧。我并不在乎这预印本最后在哪里发表,现在也过了需要发表来证明自己的阶段,这本就是个兴趣使然的项目,只是想看到更多地方能实际用上这个方法。

欢迎试用!

色谱质谱数据仿真

2025-08-05 08:00:00

做过小分子代谢组学或非目的分析的人大概都有一种体会,那就是数据处理软件不同,得到的结果往往也不同。究其原因,非目的分析这个名词就预设了分析方法是没有预设要检测到化合物的,因此基本是软件检测出什么就报什么。而不同的软件对于原始数据的处理方法并不一致,因此就会出现同一份数据但得到不同处理结果的情况。

如果倒退十年,市面上常见的一级质谱峰提取软件除了仪器厂商自己开发的,基本就是xcms跟MZmine两家,后来OpenMS填补了一部分python用户的需求。然后深度学习的风终究还是吹到了质谱数据分析这边,最近几年的峰提取软件很多都是直接套了一个CNN或transformer的内核来进行识别。这类文章很自然就是要验证自己的效果,然后又是因为非目的分析拧巴的本质,验证基本就是三条思路,要么就是用标准物质进行验证,要么就是定义一个独立的统计量来评价峰的质量,要不就是跟其他软件交叉验证。然而标准品可能覆盖不到未知物,定义的统计量会偏向于特定算法,交叉验证更是很难给出到底哪家最好。

那么,其他学科遇到类似问题会怎么办呢?很简单,就是数据仿真或数据合成。真实样品里的信息我们永远无法完全搞清楚,那就直接生成一个我们能搞清楚的。具体到小分子代谢组学或非目的分析,一般都要加上色谱柱进行分离,这样我们的任务就变成了仿真色谱质谱数据。那么这类数据如何生成的呢?只考虑一级质谱,数据其实就是由带时间戳的全扫描质谱组成,这样我们首先要找到一些小分子的质谱谱图,然后在时间维度上将其展开成一个高斯峰就可以了,将这些数据组合就成了一个内含物完全已知的人造样品,每个物质的出峰时间、峰宽、峰高、信噪比、响应因子全都可以人为控制。当然,背景噪声也是必不可少的,我们可以提供一组来自真实实验的背景离子去模拟其色谱,叠加上测量荷质比的不确定度(20ppm QTof 5ppm orbitrap),这样我们就可以生成一个最基本或者最理想的质谱数据,这样只要让不同软件来识别一下就知道哪个更好用了。

我最近的一项工作就是生成这种合成数据,刚刚发表在AC上,也有免费的预印本 (这个版本比发表版本少了一个基线分离测试章节,但多一个冗余离子章节),目的就是提供这样一个仿真小工具。因为仿真的峰几乎就是完美峰形,这样的峰如果还找不到,那么也就没必要说自己更好用了。当然,除了完美峰形,这个工具也可以用来仿真拖尾峰与前伸峰。这里被仿真的实验数据来自MoNA跟HMDB的一级质谱数据,因此你会看到真实物质的冗余峰。因为文章只是个字数受限的技术报告,我简单对比了下几个常见软件的表现,虽然他们大部分能找到该找到的峰,但也会找到很多本来不存在的峰,这个假阳性问题的简单解法就是多用不同软件来找,然后只去关心他们都能找到的那些峰。然后我也对比了这些软件在识别裂头峰或其他非基线分离上的表现,只能说不太理想,会丢掉一些峰或找错峰的范围。要知道这些数据已经是简化过的了,这个表现让我很难直视之前基于这些软件发表的结果,目前看每个软件都有一定改进空间。因为没钱,商用软件没测,估计也好不了哪去。

这个小工具存在的意义除了用来验证软件表现,另一个则是为深度学习提供饲料。AI4Science现在一个卡脖子的地方在于实验数据有限,很多实验也很贵,同时也会被实验室条件锁死,这使得A实验室里训练出的模型在B实验室几乎不能用,实验数据天然就会过拟合所在的实验室条件,甚至换个操作员都会有批次效应。如果我们的目标是一个通用质谱数据模型,那我们就需要合成出保留时间完全不固定且出峰质量千奇百怪的数据用来提高模型的稳健性。这点其实是借鉴了去年 deepseek 强化学习的思路,就是天然语料缺失或多样性不足,那我就仿真出来。当然这个工作还在进行,需要的合成数据量也非常大,真要是让实验室进样来生成,开支会失控。当然,这个小工具还有很多其他用法,有时我会用合成数据来快速验证一些有意思的想法。下面会展示非基线分离、扫描循环不足还有背景噪音高的仿真效果,这部分是给审稿人看的,不在正文里。

非基线分离

扫描循环不足

高噪音

我很讨厌喂饭式给结论,所以这篇文章里所有分析的代码与数据也是公开的,放在zenodo上自取,不放心我的结论就自己验证,因为有预印本的原因已经被下载九百多次了,看起来关心这问题的人不少。

Ps. 这项工作算是兴趣使然,虽然是我的研究领域,但目前给我发工资的项目都跟这个无关,你可能注意到这篇文章没有任何资助,一作跟通讯都是我,属于给自己挖的坑。这稿子经历过拒稿重投,被审稿人的合理或存疑的要求搞得面目全非,但总算发出来了。我做软件工具的理念很简单,首先我得用且对我长期有用,因此我后面肯定还会维护,毕竟现在在做的另外几个自带干粮的项目都需要这个工具提供验证,只是从此实验数据就可以自给自足了。

Ps2. 这个工具目前只能生成一级质谱数据,二级质谱数据的仿真会复杂很多,同时我也认为如果一级质谱数据挖掘得当,很多问题就已经可以回答了,二级的鉴定属于锦上添花,属于分析化学人的某种坚持。

未成年社会

2025-08-02 08:00:00

我曾经看过一个新英格兰地区猎巫的展览,里面印象深刻的反而是其关于儿童的描述,在17世纪美国,儿童也是劳动力的重要一环。然后我突然意识到儿童这个概念可能历史也并不长,甚至可以说将人群区分成成年人与未成年人这件事都是工业革命后才逐渐被人们接受为常识。

18世纪工业革命前夕,被称为儿童文学之父的John Newbery出版了最早的儿童读物。我们现在熟悉的所谓童话的原始版本其实也并不适合给儿童来进行阅读,更多是用奇幻魔法包装过的残酷生存故事。然而工业革命出现后,城市里的人最先开始进行了现代化改造,他们开始注意到童工问题并通过法律区分了成年人与未成年人,并展示出了保护未成年人的倾向性,这可以看作很明显的文明进步。当然,工业革命后,儿童群体也就逐渐成了消费的重要组成部分,玩具也逐渐流行成为社会规训的一部分,例如男孩子玩士兵小汽车模型,女孩子玩娃娃,这与当时人数占比最多的中低产阶层对未来的期望一致:男孩子进工厂,女孩子全职主妇。不过此时区分未成年人与成年人的社会共识已经形成,而这,只是后续全未成年社会的序幕。

换言之,儿童这个概念并不是生物学产物,而是社会经济条件允许后被文化“发现”出来的概念。在之前的社会发展水平下,儿童只能算家庭资产的一部分,多子多福的核心其实就是劳动力资源,此时儿童需要的教育水平很有限,走数量就可以。但工业革命后,儿童被视为人生需要被保护的阶段,需要接受教育与享受娱乐,这本质上属于文明的奢侈品。而这个奢侈品,在生产力水平进一步提高的二十世纪变成了生活必需品,到了这个世纪则很可能连阶段属性都要被去掉了。

当前东亚社会普遍存在啃老,这其实就是未成年阶段的自然延伸。当家庭财富可以保护下一代成为普遍现象后,肯定会出现年轻人直接放弃成长,在父母安排下渡过平稳的一生,而这种生活状态历史上只出现在富裕阶层。此处的成年意味着更多的责任义务与更少的选择自由,这种超龄儿童的心态可以被褒义为“少年感”或“少女感”而持续传播。除了逃避责任与自我中心,最简单的表现就是对外界评价的在意与依赖,这属于东亚文化里家长制的自然延续,家长对孩子承担了无限责任,然后反过来被扣个“原生家庭问题”的大帽子,虽然罪有应得但罪不至此。一方面青年自立会直接面对就业机会不足与各种门槛,另一方面家长们也并不愿意放权。这种文化属性甚至也会自然延伸到社会体制,抛开各种意识形态后整个东亚文化都对大家长体制积攒了各种各样的怨气,不是管得不好就是管得不够,家国一体了属于是。

那么西方呢?其实也是啃老,只是被国家福利体制接盘了。东亚父母要给孩子买房教育催婚催生,西方国家试图用租房补贴、教育贷款与失业保障来分担父母的无限责任,让父母可以在孩子18岁后把孩子踹出自己的账单去追求自己的自由,但此时追求自由拿着退休金的父母又何尝不是另一种责任逃避的“未成年化”。这种福利模式其实只适合部分西方国家,甚至都不适合美国,我了解到的美国父母也在给孩子攒大学学费,那个数跟国内的首付也差不了多少,而长期住在父母房子里的年轻人也越来越多。教育、医疗与房地产在全球尺度生产率都提不上去,而就业疲软与临时工派遣工变多,也从某种程度上加强了子女对父母的依赖,这一点上东西方没有差距。很多社会问题很容易被上纲上线归因到了国家或主义层面,这属于放弃思考的懒汉逻辑,现代国家内部从来都不是均质的,绝大多数社会问题都出现在被概念划分出不同群族的边缘上,可能是经济差异、民族差异、地域差异甚至是性别差异,很多问题本身就是毫无意义的概念辩论,但总有人乐于借此释放情绪。

人可以不再成为完整的成年人,而现代体制与文化其实也不再强制个体必须成为成年人。不结婚不要孩子不买房不就业不理财不参政不负责的人在变多还是变少大家自己都有自己的体会,而在分工协作的现代社会,这其实就是自然发展的结果:当你专注于成为某一部分的齿轮,自然就要让度在其他环节的选择权,至于这选择权是父母、政府、专家还是人工智能算法其实多数情况没得选,只要能寻优或利益最大化,总有一份攻略会出现。毕竟现代社会已经没有了成年礼,你没法通过捕猎一只猛兽来证明你成年,而且在现代社会保护下你一辈子大概也不会有机会跟猛兽面对面。你可能认为自己努力学习拿到学位找到工作就可以成年,但学位与工作更多只是标志你在成为某种规格螺丝钉上是个合格产品,距离成为独立自主负责任的个体还是有距离的。同时,现代社会对个体生存能力的要求其实是越来越低了,不会做饭不会交际完全不影响在陌生人主导的现代社会生存,甚至现在很多小夫妻也完全没有独立养育子女的信心,他们寄希望于专业人士或亲近的人来逃避失误带来的责任,就好像活给法庭看的似的。

不过,这最多算是个现象,甚至都没必要指摘,现代社会的发展条件本就是允许个体有选择不成年的自由。现代人只在部分领域成年或负责任,这甚至对经济发展有利,毕竟个体认知早就没法对社会整体进行控制了。但从个体角度,人确实在不断交出选择权未成年化娱乐化,这可能是当前保守主义者有市场的原因,他们本质还是想保留个体完全成年的权利,但进步派则认为需要让渡来达到新的平衡。只要交出一些专业问题的决策权给父母或专家,个体就不必承受选择的痛苦,甚至可以在选错时甩锅给家庭、体制与时代。个体更多照顾自己的情绪来实现舒服的生活,只要保证自己局部高效,整体空虚也无所谓。保守主义者很多时候只是想保住“完整成年人”的社会单位,只是进步派认为这不过是自我欺骗罢了,结婚生孩子买房子这种上一代的生活范式既不是金科玉律,在人类历史上也只能说昙花一现,很多人坚持的传统存在时间甚至还没有他们年龄长。

也许人类现代文明的边界就是成年人的彻底消失,而后现代文明则需要新的伦理指导。所谓伦理,就是要在思想上处理不可避免的冲突,现代社会划分了未成年人与成年人,而后面的发展则在不断延长未成年人的期限,最长不过一生,如果能一辈子躲过这些不可避免的冲突,那似乎也不需要成年。回顾人类这几千年文明史,每每出现危机与衰落,似乎都暗含着“成年人理性”的缺失,游牧入侵、文官乱权、沉迷长生不老与享乐……每当统治阶层拒绝与时代成长,其统治地位就会衰落,文明本身在繁荣与衰落之间慢慢成年,又在现代社会繁荣的顶点返老还童。这绝不意味着通过战争与苦难就可以让人们重新成长,娱乐与消费主导的现代社会已经基本消灭那些困扰千年的苦难了,只是是否自我成长将成为留给每一个现代人的问题。

这无关是非对错,没有标准答案,自己看着办。

南极谋杀案(十七)- 慈善绑架

2025-07-26 08:00:00

“这是第六起了吧?”

“不一定,只是这六起案件有共性且都报案了。”

“一般都会报案吧,这种交赎金的方式。”

“要求受害人做慈善确实比较特别,但我查了下,过去十年本市慈善捐款有一个明显且稳定的提升,如果我们拿掉这六起案件的赎金,这个提升会出现中断。”

“也就是说,有人长期在做这个?”

“被绑架的人都安全获释,甚至有两起根本就不算绑架,只是绑架者可能获知了这几个孩子要去探险的计划,炸了附近的信号塔制造的伪失踪,而且还事先散播了信号塔辐射的谣言,我们都不知道被炸是巧合还是策划的。”

“其他捐款也有可能是赎金?”

“绑架者要求加密货币匿名捐助,而且多是小额多笔防洗钱的模式,现在这些慈善组织都有这样的钱包,一进账公链上就能看到,这样的事很难查,我只是听说本市安保公司纳税额增长率比慈善捐款增长率还高了一倍。”

“那就不好查了,会不会是安保公司?”

“查过了,安保公司是全球连锁的跨国公司,根本查不动,就我们市这点业务不值当。”

“那其他新港市有没有类似事件?”

“不知道,但我查过过去二十年同体量新港市的慈善捐助,总体确实在提升,但很难归因于这类绑架事件,毕竟这些城市的贫富分化也比较高,提升的捐助很难查清原因。”

“还有什么线索可以用?”

“有一起的赎金要求是部分买入一支股票,而被买入的公司确实正在被恶意收购,收购成功很可能会导致上千人失业,这部分买入完全打乱了收购谈判,勉强也可算是慈善类型,但我们查了所有关键人物,大部分都没有绑架期间的不在场证明。”

“那不就是说他们可能就是绑架者?”

“恰恰相反,这一起被绑架的孩子说见过绑架者的脸,跟这些人对不上。”

“绑架者不怕露脸,怕是做过整形手术,整容医院记录查过没有?”

“查过了,只能说整容不发生在本市,我们也调了监控摄像头,绑架者在摄像头覆盖区域绑架全程戴口罩墨镜,但跟被绑架的孩子单独在一起倒不在乎露脸。”

“画像呢?”

“被绑架的除了探险那几个半大孩子,都是学龄前儿童或不超过10岁的小学生,绑架者露脸似乎更多是排除我们锁定的嫌疑人,体貌特征全都对不上,说不定也做了伪装,但小孩子的话也没多少能信的。”

“听说另一个特征是赎金金额?”

“嗯,这算某种共性吧,嫌犯是根据财富排行榜或过去三年公开报道的纳税总额的5%来要求,但并不总是最有钱的家族或个体,钱数绝对数量不小,但对受害家庭负担确实不大,这可能是很多案件根本就没报案的原因。另外似乎对所有被绑架的人都做了调查,被嫌犯联系的往往是年长的女性,会刻意绕开那个最可能报警的家庭成员。感觉对方是在用一种对被绑架者影响最小的方式在执行绑架,可能就是要维持慈善金额的增长率。”

“金额数能对上吗?”

“嗯,我们的慈善金额计算时需要算上二维码卡片撒钱的。”

“二维码卡片?”

“很多街区会一夜间突然出现这些卡片,扫描后直接就是稳定币,扫描者会得到一点钱,然后会用其名义进行分布式捐款,这种方式真的很让我们头疼。当然有几次卡片确实是诈骗,但大多数就是真金白银,而且这个码是一次性的,第二次扫就转到市政府主页了。”

“那我们不是可以通过金额来反推受害者吗?”

“大头应该还是匿名捐款,这几个报案的收到的信息都是混合型,比例也完全没规律,似乎就是为了防我们查。”

“有点意思,背后应该有一个组织,定性是恐怖主义?”

“嗯,目前是这么定性的。而且我们也捉到一个模仿犯,他跟受害者没有任何关联,但要求的赎金是去一个便利店买光所有产品,我们查到那个店主的孩子需要动手术,正好缺一笔钱,不过这个模仿犯漏洞太多,赎金完成后放松警惕,小孩自己跑出来还记下了地址,在其余案件里小孩都是戴上不透光墨镜到坐公交反复换乘,同时喝下低剂量安眠药果汁,孩子醒过来时找司机报案被解救的,显然这个模仿犯不知道这些细节。如果不定义为恐怖主义,只怕模仿犯会越来越多,另外也得跟那些媒体打招呼,他们给的线索太多了。”

“但实质上的社会危害性也有限吧。”

“这话只能是辩护律师跟法官说吧,针对少数有钱人的犯罪也是犯罪,我其实更在意那两起炸了信号塔的案件,这种事恐怕根本防不住,你总不能不让这些半大孩子出去玩吧。”

“还有什么要补充的吗?”

“没有了,市长。”

……

“怎么样?”

“定性为恐怖主义,暂时没有对策。”

“下一个目标是谁?”

“市长,毕竟我也在榜上。”