FastEI论文阅读

前言

研究FastEI有很长时间了,现在来总结一下,梳理一下认知。论文地址:https://www.nature.com/articles/s41467-023-39279-7,Github项目地址:https://github.com/Qiong-Yang/FastEI

概要

这篇文章做的工作是小分子质谱匹配,就是说给定一个小分子的质谱,然后根据这个质谱到数据库中检索与它相近的质谱,并返回相应的分子信息。FastEI取得的成绩就是在较大的数据集上(in-silico library,数据量是百万级别)取得了较好的效果:Top10的召回率是80.4%,Top1的召回率是36.7%。此外作者还做了个检索程序,可以在电脑上运行。

架构

模型需要分为两条线来说,一条线是查询:给定查询的实验谱(Query spectrum),将实验谱经Word2vec模型转化为嵌入向量(Spectral embeddings),用嵌入向量进行匹配,返回近似结果;另一条线是建库:给定分子信息, 经NEIMS模型转化为预测谱(分子信息和预测谱存入数据库中),再转化为嵌入向量,用嵌入向量构造检索架构(HNSW)。

模型

下面来分别介绍一下用来生成预测谱的NEIMS、将质谱转化为嵌入向量的Spec2vec、加速检索速度的HNSW。

NEIMS

NEIMS的全称是Neural Electron-Ionization Mass Spectrometry,论文地址:https://pubs.acs.org/doi/full/10.1021/acscentsci.9b00085。这个模型的原理就是先调用rdkit生成ECFPS分子指纹(关于ECFPS,可以去看这个博客:https://www.jianshu.com/p/8167a050debc),然后使用全连接神经网络去预测它的质谱。这个项目的Github地址:https://github.com/brain-research/deep-molecular-massspec。顺便吐槽一下:这是个19年的陈年老项目,用的是tensorflow1.13.2,然后Contributors也不解答issue了。

Spec2vec

Spec2vec这个方法脑洞确实比较大,其作者是收到自然语言处理Word2vec的启发,将质谱的每一个峰表示为"Peak@m/z"这一word,然后再将这个word转化为vector。我觉得这样做的信息损耗也太大了,直接将质谱信息转化为vector不好吗?论文地址:https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1008724,Github项目地址:https://github.com/iomega/spec2vec

HNSW

HNSW的全称是Hierarchical Navigable Small-World graph,意为分层可导航小世界图,是用来快速检索的。要快速检索的原因是数据量比较大,你不可能去一一比对。它是一个贪心算法:从顶层到底层,向量逐层增加;从顶层进入,找到最近邻,向下深入,再找最近邻......一直找到底层的最近邻,将底层的Topk最近邻返回。论文地址:https://ieeexplore.ieee.org/abstract/document/8594636,Github项目地址:https://github.com/nmslib/hnswlib

数据

这个项目用到了三大数据集,分别是NIST2017、HMDB和ChEMBL 28。其中NIST是付费的,需要用到它的验证集和测试集,其余用NEIMS生成预测谱就可以。除了这三大数据集,还有10种 作者提出了四大过滤原则,分别是分子质量≤1000道尔顿、只含11种元素(H, C, O, N, P, S, Cl, F, Br, I, Si)、非离子化合物、LogP∈[-12,24]。

在经过四大条件过滤之后, 三大数据集之间进行去重,确保没有重复元素。过滤和去重之后的数据集称为f-NIST、f-ChEMBL和f-HMDB。

实验结果

这里主要展示一下召回率,in-silico library的召回率要比expanded library高一些,因为数据多了肯定。

结语

这篇文章中作者的贡献主要在于完成了这么一个pipeline(虽然她写了UI,但UI不能算是什么贡献),至于里面用到的方法都是很老的方法(她进行这项工作是在2022年,但用到的东西都是2019年之前的东西,并且2019之后2022之前有新东西),希望可以超越她。

有问题欢迎在评论区讨论。

相关推荐
冷雨夜中漫步6 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴6 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再6 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
Forrit7 小时前
ptyorch安装
pytorch
yLDeveloper8 小时前
从模型评估、梯度难题到科学初始化:一步步解析深度学习的训练问题
深度学习
喵手8 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
Coder_Boy_8 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2501_944934738 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy8 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
2401_836235868 小时前
中安未来SDK15:以AI之眼,解锁企业档案的数字化基因
人工智能·科技·深度学习·ocr·生活