本实验方案的目的是利用开源软件高效地生成和整理小分子结构文库。
本实验方案的目的是利用开源软件高效地生成和整理小分子结构文库。
分子结构的穷举生成在化学和生物化学领域具有广泛的应用,例如药物设计、分子数据库构建、替代生物化学体系的探索等。从数学角度来看,这些工具属于带有化学约束条件的图生成器。目前该领域效率最高的生成器(MOLGEN)为商业产品,限制了其广泛应用。作为替代方案,另一种分子结构生成器MAYGEN是近年来出现的一个开源工具,其效率可与MOLGEN媲美,并且用户可通过添加新功能进一步提升其性能。这一发展可惠及多个研究领域,其中天体生物学便是其一;结构生成器使研究人员能够通过计算手段补充实验数据,探索可能存在的替代生物化学体系。本实验方案详细描述了结构生成在天体生物学中的一个应用实例,即α-氨基酸库的生成与整理。借助开源的结构生成器和化学信息学工具,文中所述方法不仅适用于天体生物学,还可推广至其他研究领域,以低成本实现各类化学结构库的构建与管理。
分子结构生成是穷举图生成这一普遍问题的实际应用;在给定若干节点(原子)及其连接性约束(例如化合价、键的多重性、期望或不期望的子结构)的情况下,可能形成多少种连通图(分子)?结构生成器在药物发现和制药研发中得到了广泛应用,可用于创建大量新颖结构,以进行计算机虚拟筛选1。
首个结构生成器 CONGEN 是为有机化学领域首个人工智能项目 DENDRAL2(DENDRitic ALgorithm 的缩写)而开发的。文献中曾报道过多个 DENDRAL 的后续软件;然而,并非所有这些软件都得到了持续维护或具备高效性。目前,MOLGEN3 是最先进的分子结构生成器。但遗憾的是,对于大多数潜在用户而言,该软件为闭源程序,且需要支付许可费用。因此,人们迫切需要一种高效的开源结构生成器,能够轻松适应特定应用需求。高效结构生成器面临的一个挑战是应对组合爆炸问题;随着分子式规模的增大,化学搜索空间的规模呈指数级增长。最近的一篇综述进一步探讨了分子结构生成的发展历史与面临的挑战4。
在2021年之前,并行分子生成器(Parallel Molecule Generator, PMG)5 是最快的开源结构生成器,但其速度仍比 MOLGEN 慢几个数量级。MAYGEN6 的速度比 PMG 快约47倍,仅比 MOLGEN 慢约3倍,因此 MAYGEN 是目前可用的最快且最高效的开源结构生成器。有关更详细的比较和基准测试,请参见介绍 MAYGEN 的论文6。该程序的一个关键特性是基于字典序排序的规范结构判定方法,这是一种基于 Schreier-Sims7 算法的有序图生成方法。该软件易于集成到其他项目中,并可根据用户需求进行扩展和增强。
与 MOLGEN 和 PMG 类似,MAYGEN 可接收用户定义的分子式,并生成该分子式对应的所有可能结构。例如,若用户使用分子式 C5H12 运行 MAYGEN,程序将生成所有包含五个碳原子和十二个氢原子的可能结构。与开源版本 PMG 不同,MAYGEN 还能够处理使用区间而非具体数值来表示各元素原子数量的"模糊"分子式。例如,若用户使用分子式 C5-7H12-15 运行 MAYGEN,程序将生成所有碳原子数在五至七个之间、氢原子数在十二至十五个之间的所有可能结构,从而实现对具有广泛原子组成范围的结构进行简便生成。
天体生物学是可从分子结构生成器中受益的领域之一。天体生物学中的一个热门话题是地球上现存所有生命所共用的氨基酸字母表的演化过程。最后共同祖先(Last Universal Common Ancestor, LUCA)的一个显著特征是其在蛋白质构建中使用了20种遗传编码的氨基酸8,9。基于对多个领域研究工作的荟萃分析10,11,12,其中约10种氨基酸(Gly、Ala、Val、Asp、Glu、Ser、Thr、Leu、Ile、Pro)可在非生物条件下容易地形成,很可能构成了LUCA之前生物体的氨基酸字母表。随着时间推移,这一"早期"字母表因不同的结构和功能需求而逐步扩展。例如,Moosmann最近的一篇综述13指出,较晚加入遗传编码氨基酸家族的成员(特别是Met、Tyr和Trp)有助于防止细胞内活性氧物质的增殖,从而使生命得以在富氧环境中生存。
日益增多的分析化学技术使人们得以深入了解在非生物条件下可能形成的氨基酸结构。近期的一篇综述14 由Simkus等人详细描述了用于检测陨石中多种有机化合物以及来自其他来源的有机化合物的方法 体外 早期地球环境模拟15,16,17系统性地生成化学结构可使研究人员探索仪器检测到的有机化合物之外的化学空间,填补结构周围的空白区域 "岛屿" 通过分析化学方法鉴定。对于 "早期" 氨基酸,这种系统性的结构生成方法揭示了早期生命可能利用的蛋白质化学空间,而不仅限于在非生物合成条件下通过实验检测到的结构。借助开源的化学信息学工具包以及MAYGEN等高效的结构生成器,创建和探索新颖的化学结构库如今比以往更加便捷,可为生命替代化学体系的深入研究提供指导。
注意:有关实验方案的概要,请参见图1;有关所用软件的详细信息,请参见材料表。

图 1:实验方案的流程图摘要。 请点击此处查看此图的放大版本。
1. 软件和文件下载
注意:所有程序均可免费供个人使用,并可在个人计算机上运行。
使用 MAYGEN 进行结构生成
3. 筛除具有不良亚结构的化合物
4. (可选)其他结构修饰
注意:本示例中执行了这些步骤,但在筛选其他文库时可能不需要。
5. 描述符生成
| 文库 | 分子式 | 附加约束条件 | “早期”编码氨基酸 | 生成时间(ms) | 结构数 | ||||
| 初始 | 最终 | ||||||||
| 1 | Gly | C2H5NO2 | 包含 Gly 亚结构 | Gly | 192 | 84 | 1 | ||
| 2 | VAIL | PC0-3H3-9 | Val, Ala, Ile, Leu | 172 | 70 | 22 | |||
| 3 | DEST | PC0-3O1-2H3-5 | Asp, Glu, Ser, Thr | 481 | 1928 | 254 | |||
| 4 | Pro | C2-5NO2H7-11 | 包含 N-meGly 或 N-meAla 亚结构 | Pro | 4035 | 79777 | 16 | ||
| 5 | VAIL_S | PSC0-2H3-7 | 122 | 65 | 31 | ||||
| 6 | DEST_S | PSC0-2O1-2H3 | 349 | 1075 | 79 | ||||
| 7 | Pro_S | C2-4SNO2H7-9 | 包含 N-meGly 或 N-meAla 亚结构 | 3999 | 75734 | 10 | |||
表1:本示例中使用的化合物库。 基于公式1-4(Gly、VAIL、DEST和Pro)构建的化合物库,源自先前发表的“早期”编码氨基酸的模糊分子式21;而基于公式5-7(VAIL_S、DEST_S和Pro_S)构建的库,则是假设以二价硫原子取代其中一个碳原子后,对公式2-4进行变体设计所得。结构数量反映了MAYGEN为每个公式生成的分子数(“初始”)以及在过滤掉含有不希望存在的子结构的分子后剩余的分子数(“最终”)。缩写:VAIL = 缬氨酸、丙氨酸、异亮氨酸、亮氨酸;DEST = 天冬氨酸、谷氨酸、丝氨酸、苏氨酸;X_S = 在X库中,二价硫原子取代其中一个碳原子;N-meX = N-甲基化X。
上述通用方法应用于基于“早期”编码氨基酸的分子式,遵循 Meringer 等人21 的操作流程。禁用结构(badlist structures)取自同一来源,并转换为 SMARTS 字符串,以便于表示亚结构模式。本示例中未使用两个禁用结构:结构 018(CH3-CH-N)匹配到接近异构体的脯氨酸衍生物,但这些化合物本身并不不稳定;结构 106(R-C-C-OH,其中 R 为连接在β-碳上的丙氨酸亚结构)匹配到谷氨酸,属于编码氨基酸。除这些化学分子式外,还构建了以二价硫原子取代一个碳原子和两个氢原子的变体形式。出于计算性能考虑,其中若干分子式采用三价磷原子(例如“伪原子”)替代丙氨酸亚结构中的β-碳原子。表1列出了本示例中生成的化合物库、用于生成这些库的分子式以及各库所含化合物的数量。库名称基于其衍生的编码氨基酸命名:使用三字母缩写(Gly = 甘氨酸,Pro = 脯氨酸)或单字母缩写(VAIL = 缬氨酸、丙氨酸、异亮氨酸、亮氨酸;DEST = 天冬氨酸、谷氨酸、丝氨酸、苏氨酸)。“_S”后缀表示在原始库的分子式中用硫原子取代了碳原子(例如,VAIL_S 使用与 VAIL 相同的模糊分子式构建,但其中一个碳原子被二价硫原子替代)。
使用MAYGEN生成结构后,对所得化合物库进行过滤,去除含有“黑名单”中至少一种子结构的化合物。过滤后,将所有结构中的磷原子替换为丙氨酸亚结构。接下来,为所有结构生成“封端”形式,在N-末端添加乙酰基,C-末端添加N-甲基酰胺基团。此步骤旨在消除α-氨基酸骨架中游离胺基和羧基对疏水性的影响。采用PaDEL-Descriptor计算所有封端结构的XLogP值,并计算所有未封端结构的范德华体积(VABC)。
图2展示了由VABC和XLogP描述符定义的筛选后文库的化学空间。在此图中,即使在缺乏明确亲水性侧链(例如VAIL、Pro)的文库中,可能的logP值范围也随着分子体积的增加而增大。具有烃链侧链的编码氨基酸相较于各自文库中其他体积相近的氨基酸表现出更强的疏水性。与VAIL_S文库中其他体积相似的成员相比,Met和Cys也呈现出类似趋势。具有羟基侧链的编码氨基酸(Ser和Thr)是DEST文库中体积最小的成员之一,Asp的体积仅略大于Thr。
图3 和 图4 展示了二价硫取代α-氨基酸侧链中的碳原子时对分子体积和logP的影响。在所有文库中,硫取代均导致分子体积略有增加(图3)。硫取代对logP的影响则不如对体积的影响一致(图4)。VAIL_S文库的平均logP略低于VAIL文库,但这一效应在其他两对文库(DEST与DEST_S、Pro与Pro_S)中均未观察到。
图5 定量分析了在结构生成过程中,使用伪原子替代常见子结构对生成结果的影响;此处是在结构生成期间,用一个三价磷原子替代丙氨酸基团。在结构生成中使用伪原子,使生成的结构数量减少了约三个数量级(图5A),同时使生成这些结构所需的总时间减少了1到2个数量级(图5B)。

图 2:所有筛选后氨基酸文库的化学空间。 黑色标记代表不含硫的文库中的氨基酸;黄色标记代表含硫富集文库中的氨基酸。圆形:VAIL 和 VAIL_S;方形:DEST 和 DEST_S;三角形:Pro 和 Pro_S;星形:编码氨基酸。需注意,两种含硫的编码氨基酸(Met 和 Cys)不被视为“早期”氨基酸,但存在于 VAIL_S 文库中。缩写:XLogP = 分配系数;VAIL = 缬氨酸、丙氨酸、异亮氨酸、亮氨酸;DEST = 天冬氨酸、谷氨酸、丝氨酸、苏氨酸;X_S = 二价硫原子取代文库 X 中的一个碳原子。请点击此处查看该图的放大版本。

图 3:含硫与不含硫文库的平均范德华体积(Å3)。 黑色柱代表不含硫的文库(VAIL、DEST、Pro)的平均体积,黄色柱代表这些文库的含硫取代版本(VAIL_S、DEST_S、Pro_S)的平均体积。误差线表示标准差。缩写:VAIL = 缬氨酸、丙氨酸、异亮氨酸、亮氨酸;DEST = 天冬氨酸、谷氨酸、丝氨酸、苏氨酸;X_S = 二价硫取代文库 X 中的一个碳原子。请点击此处查看此图的放大版本。

图4:含硫与不含硫文库的平均XLogP值。 黑色柱代表不含硫的文库(VAIL、DEST、Pro),黄色柱代表这些文库的含硫取代版本(VAIL_S、DEST_S、Pro_S)。误差棒表示标准差。缩写:XLogP = 分配系数;VAIL = 缬氨酸、丙氨酸、异亮氨酸、亮氨酸;DEST = 天冬氨酸、谷氨酸、丝氨酸、苏氨酸;X_S = 二价硫取代文库X中的一个碳原子。请点击此处查看该图的高清版本。

图 5:三价伪原子对 MAYGEN 结构生成的影响。 所有测试均在配备 Intel i7-7700HQ 处理器(2.8 GHz)、16 GB 内存的 PC 上进行,未将结构保存至文件,并启用 -m 选项以使用多线程。使用伪原子的测试采用 表 1 中描述的模糊分子式;未使用伪原子的测试所用模糊分子式与 表 1 中描述的相同,但作如下修改:P 被替换为 N;碳原子数增加 3;氢原子数增加 7;氧原子数增加 2。黑色柱表示使用伪原子生成的化合物库;灰色柱表示未使用伪原子生成的化合物库。(A)使用模糊分子式生成 VAIL 和 DEST 化合物库时的结构数量,分别包含或不包含以三价磷取代丙氨酸子结构的情况。(B)生成 VAIL 和 DEST 化合物库所需的时间(单位为 ms),分别包含或不包含以三价磷取代丙氨酸子结构的情况。缩写:VAIL = 缬氨酸、丙氨酸、异亮氨酸、亮氨酸;DEST = 天冬氨酸、谷氨酸、丝氨酸、苏氨酸。 请点击此处查看该图的放大版本。
补充文件1:子结构筛选笔记本。 请点击此处下载该文件。
补充文件2:示例坏列表。 请点击此处下载该文件。
补充文件 3:示例 goodlist。 请点击此处下载该文件。
补充文件 4:伪原子替换笔记本。 请点击此处下载该文件。
补充文件 5:氨基酸封端实验记录本。 请点击此处下载该文件。
一个特征是 "早期" 氨基酸的一个问题是缺乏硫元素。前文提到的荟萃分析通常认为,含硫的编码氨基酸(Cys 和 Met)是在遗传密码演化过程中相对较晚加入的,这一结论得到了陨石和火花管实验中缺乏含硫氨基酸的支持。然而,有机硫化合物在彗星和陨石中却很容易被检测到。22,以及使用H对火花管实验的重新分析2S型气体中发现含硫氨基酸及其他有机化合物16在考虑替代的氨基酸字母表时,富含硫的氨基酸组合值得探索。
在上述方案中,结构生成和子结构筛选被视为关键步骤;根据最终结构库的组成,研究人员可能仅需执行这两个步骤。为进行更相关的描述符计算(加帽可确保XLogP计算结果受侧链影响,而不受骨架氨基或羧基影响)以及通过使用伪原子实现更快的结构生成(伪原子的使用将在下文详细讨论),本文还提供了额外操作(伪原子替换以及子结构添加,本例中为氨基酸加帽)的说明和软件。此外,此处进行描述符计算,以直观展示所生成结构的多样性,并比较最终结构库中硫富集的影响。
尽管 PaDEL-Descriptor 能够计算数千种分子性质,但本文选用分子体积(按范德华体积计算)和分配系数(按 XLogP 计算)是出于两个明确的原因。首先,这两个描述符所衡量的分子性质(分别为分子大小和疏水性)是大多数化学家和生物学家所熟悉的。其次,对于氨基酸而言,这两个性质具有重要意义。数十年来,人们已知氨基酸的大小和疏水性会影响蛋白质折叠的热力学过程23。这两个性质有助于解释氨基酸替换频率,而这些频率对于理解蛋白质进化至关重要24。
上述示例表明,在所研究的两个描述符(分子体积和疏水性)中,用二价硫原子取代一个碳原子和两个氢原子并未引起显著变化。硫取代导致平均分子体积略有增加但无统计学意义(图3),这可能归因于硫的共价半径(约103 pm)大于sp3杂化碳(约75 pm)或sp2杂化碳(约73 pm)25。同样,硫取代对平均XLogP的影响也极小(图4)。影响最显著的是VAIL与VAIL_S文库之间,这可能是由于VAIL文库本身具有极强的疏水性(其侧链仅为碳氢化合物),同时巯基的酸性远强于其所取代的甲基。硫取代的微弱影响在图2中尤为明显,含硫取代的文库与不含硫取代的对应文库占据相同的化学空间。
使用伪原子时,所生成结构的数量(图5A)以及生成这些结构所需时间(图5B)均有所减少,这一结果并不令人意外。使用伪原子可减少需要纳入化学图的重原子数量,从而降低图节点数目,使生成时间和结构数量呈指数级下降。此处选择三价磷作为伪原子,其依据来自基础生物化学知识(除翻译后修饰添加的磷酸基团外,无任何遗传编码的氨基酸含有磷元素),同时也基于该原子所替代原子的化合价(三价磷可被一个四价碳原子轻易取代,该碳原子可与另一个原子或原子团形成单键)。尽管提供的伪原子替换代码专门用于将三价磷替换为丙氨酸子结构,但用户可根据需要自定义代码,以适配不同的伪原子或替换子结构,甚至可在初始结构生成过程中使用多个伪原子,随后再将每个伪原子替换为更大的分子子结构。
类似于 MAYGEN(以及其他方法,如神经网络)所采用的结构生成方法,目前已在药物发现中用于生成化合物库以进行in silico筛选;一篇近期综述4对此类方法进行了更详细的讨论。由于这些方法主要用于生成类药分子,因此在分子生成能力方面存在一些限制,例如利用生物或药物特性来限定所生成的结构(逆向 QSPR/QSAR),或通过预设数量的子结构构建单元来生成分子结构。而天体生物学更关注可非生物合成的大量有机化合物,而非特定终产物或其性质,因此 MAYGEN 的穷举式结构生成方法非常适合用于构建解决天体生物学问题的结构库。本文所述的子结构筛选方法(在结构生成后通过外部程序执行)与竞争程序 MOLGEN 不同,MOLGEN 的子结构筛选是在结构生成过程中进行的。由于 MAYGEN 是开源的,不仅因避免了 MOLGEN 的授权费用而更具可及性,而且用户还可自行实现新功能,例如在结构生成过程中引入子结构筛选。
本方案目前所述内容主要针对生成和整理相对较小的α-氨基酸文库。若要生成不同的文库,用户可向MAYGEN提供不同的分子式,通过调整允许的最大环大小和键价来更改子结构筛选条件,或编辑goodlist和badlist文件以添加或删除子结构模式。若对原子和子结构的添加或替换方式(伪原子取代和分子封端)进行修改,也是可行的,但需更加注意价态限制,以避免因结构修改后出现不正确的价态而导致RDKit报错。
上述方案专为小分子α-氨基酸设计。然而,该通用流程(使用伪原子进行完整的结构生成,随后进行子结构筛选和分子修饰)对于小分子氨基酸以外的化合物也具有高度灵活性。即使是在天体生物学领域,近期也有研究采用类似方法,利用MOLGEN探究核酸的构造异构体26。除了上述工具外,MAYGEN还可与其他开源化学信息学工具结合使用,从而使得新颖化学结构的构建与分析更加经济便捷,适用于广泛的科研领域。
作者声明无利益冲突。
MAY 感谢卡尔·蔡司基金会提供的资金支持。 所有图表均使用 Microsoft Excel 生成。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| conda 版本 4.10.3 | https://www.anaconda.com/products/individual | ||
| Java 17 | https://java.com/en/download/help/download_options.html | ||
| MAYGEN 版本 1.8 | https://github.com/MehmetAzizYirik/MAYGEN/releases | ||
| PaDEL-Descriptor 版本 2.21 | http://www.yapcwsoft.com/dd/padeldescriptor/ | ||
| python 版本 3.7.11 | 包含在 Anaconda 环境中 | ||
| RDKit 版本 2020.09.1.0 | https://www.rdkit.org/docs/Install.html,或通过 conda 安装:https://anaconda.org/rdkit/rdkit | ||
| *本文献使用了这些特定版本;用户可在有更新版本时获取并使用。 |