用于分层分子生成的图归一化流的制作方法

文档序号:32294078发布日期:2022-11-23 02:29阅读:215来源:国知局
用于分层分子生成的图归一化流的制作方法
用于分层分子生成的图归一化流
相关申请的交叉引用
1.本专利申请要求于2020年6月5日提交的美国临时申请63/035,546的优先权,该临时申请通过具体引用整体并入本文。


背景技术:
技术领域:
2.本公开涉及用于归一化图数据以用于分层分子生成的计算方法。相关技术的描述:
3.药物发现是一项具有挑战性的多学科任务,其结合了化学、生物学和计算科学领域的知识。最近的工作证明了机器学习在药物开发过程中的成功应用,包括合成计划[marwin hs segler et al.planning chemical syntheses with deep neural networks and symbolic ai.nature,555(7698):604

610,2018.],蛋白质折叠[andrew w senior et al.improved protein structure prediction using potentials from deep learning.nature,pages1

5,2020.]和命中发现[daniel merk et al..de novo design of bioactive small molecules by artificial intelligence.molecular informatics,37(1-2):1700153,2018;以及alex zhavoronkov et al.,deep learning enables rapid identification of potent ddr1 kinase inhibitors.nature biotechnology,pages 1

4,2019]。生成模型的进步使机器学习在药物发现中的应用成为可能,例如分布学习和分子属性优化。分布学习模型在大型数据集上训练以产生新型化合物[daniil polykovskiy et al.,molecular sets(moses);a benchmarking platform for molecular generation models.frontiers in pharmacology,11:1931,2020];属性优化模型在化学空间中搜索具有期望属性的分子[nathan brown et al.,guacamol:benchmarking models for de novo molecular design.journal of chemical information and modeling,59(3):1096

1108,2019]。研究人员通常将这些任务结合在一起:他们首先训练分布学习模型,然后使用其潜在代码来优化分子属性[rafael gomez-bombarelli,automatic chemical design using a data
‑′
driven continuous representation of molecules.acs central science,4(2):268

276,february 2018]。对于这些模型,适当的潜在代码对于分子空间导航至关重要。


技术实现要素:

[0004]
在一些实施例中,用于归一化分子图数据以用于分层分子生成的计算方法可以包括:提供至少一个具有节点的分子的分子图数据;递归地将节点分裂为两个节点;迭代地递归地将分子图数据中的其他节点分裂为两个节点;生成来自节点分裂的生成分子的生成分子图数据;并提供具有生成分子的生成分子图的报告。在一些方面,该方法可以包括将两个节点迭代地合并到单个节点中。在一些方面,该方法可以包括扰动第一层潜在代码以获得
生成分子图的至少一个所得分子的全局结构变化。在一些方面,该方法可以包括扰动一个或多个后续层以在对所述至少一个所得分子的支架或取代基的一次或多次改变中改变至少一个所得分子,以获得生成分子图。
[0005]
在一些实施例中,分子图数据包括单节点图数据,并且生成分子图包括多节点图数据。在一些方面,该方法使用节点合并和节点分裂来控制生成分子图的大小。
[0006]
在一些实施例中,该方法包括执行面向片段的原子排序,所述原子排序相对于广度优先搜索排序改进了模型的分层归一化流。
[0007]
在一些实施例中,该方法包括将分子图数据的分子结构映射到固定大小的分层流形上。
[0008]
在一些实施例中,该方法包括通过具有正向路径和反向路径的可逆函数将先验分布变换为目标分布。在一些方面,所述先验分布是分子图数据的标准多元正态分布;并且所述目标分布包括生成分子图数据。
[0009]
在一些实施例中,该方法可以包括通过多个操作层级处理分子图数据,以在正向路径和/或反向路径中的每个操作层级中生成潜在代码。在一些方面,每个操作层级在正向路径和反向路径中执行操作子层级序列,其中操作子层级至少包括:噪声注入操作;噪声分离操作;节点合并操作;节点分裂操作;多个块操作;actnorm变换(actnorm transformation);线性变换;和置换变换。在一些方面,每个操作子层级执行正向路径和反向路径的一系列操作,每个块操作至少包括:置换变换;线性变换;actnorm变换;第一实值非体积保持变换;第二实值非体积保持变换。
[0010]
在一些实施例中,线性变换包括可逆线性变换,以及具有正交矩阵的权重矩阵和主对角线为一的上三角矩阵的分解。在一些方面,actnorm变换包括具有对角权重矩阵的线性变换。在一些方面,第一和第二实值非体积保持变换被顺序地应用为非线性可逆变换。在一些方面,置换变换确定性地混洗输入维度,或随机分裂数据为两个独立的部分。
[0011]
在一些实施例中,每个正向路径层级提取潜在代码,并通过合并节点对将其图大小减半。在一些方面,每个反向路径层级将每个节点分裂为两个节点并添加额外的噪声。在一些方面,正向路径为每个层级提供作为单节点图以及潜在代码的输出。
[0012]
在一些实施例中,该方法包括利用均匀噪声执行去量化,其中每个训练批的数据被独立地去量化,并且在完整的图上训练模型。
[0013]
在一些实施例中,该方法包括通过以下方式产生每个层级的潜在向量:通过在节点合并之前分离一半的节点和边缘特征来推导潜在代码;在导出的潜在代码上施加高斯先验;从高斯先验中采样潜在代码,并将潜在代码与节点和边缘特征连接。
[0014]
在一些实施例中,在分布学习和属性优化任务中执行该方法。在一些方面,该方法包括提供包括分布学习度量或图生成模型的报告。
[0015]
在一些实施例中,该方法包括将分子图变换为节点和边缘;通过将节点和边缘特征投影到低维流形上来变换节点和边缘;将全连接神经网络独立地应用于每个节点和边缘;并进行注意力图卷积。
[0016]
在一些实施例中,该方法包括:将分子图数据分裂为片段;针对每个片段,在原始分子中选择具有最小广度优先搜索(bfs)索引的原子,并根据索引对片段进行排序;对所选择原子执行bfs,以在每个片段中对原子进行排序;获取每个片段的片段排序列表和原子排
序列表;将片段的排序列表连接起来以获得最终的排序。
[0017]
在一些实施例中,一种产生分子的方法可以包括:执行实施例之一的方法以识别所生成的分子的分子结构;以及合成具有分子结构的真实分子。
[0018]
在一些实施例中,用于归一化分子图数据以用于分层分子生成的计算方法可以包括:将分子图数据提供到多个具有正向路径和反向路径的层级的潜在代码生成器中;以及由
[0019]
通过多个操作层级处理所述分子图数据来生成潜在代码,其中每个操作层级在所述正向路径和反向路径中具有一系列操作子层级,其中所述操作子层级至少包括节点合并操作和节点分裂操作;从潜在代码生成至少一种分子结构;并且输出具有至少一种分子结构的生成分子图数据。在一些方面,该方法包括通过多个操作层级处理分子图数据,以在正向路径和/或反向路径中的每个操作层级中生成潜在代码。在一些方面,每个操作层级在正向路径和反向路径中执行操作子层级序列,其中操作子层级至少包括:噪声注入操作;噪声分离操作;节点合并操作;节点分裂操作;多个块操作;actnorm变换;线性变换;和置换变换。在一些方面,每个操作子层级执行正向路径和反向路径的一系列操作,每个块操作至少包括:置换变换;线性变换;actnorm变换;第一实值非体积保持变换;第二实值非体积保持变换。在一些方面,线性变换包括可逆线性变换,以及具有正交矩阵的权重矩阵和主对角线为一的上三角矩阵的分解。在一些方面,actnorm变换包括具有对角权重矩阵的线性变换。在一些方面,第一和第二实值非体积保持变换被顺序地应用为非线性可逆变换。在一些方面,置换变换确定性地混洗输入维度,或随机分裂数据为两个独立的部分。在一些方面:每个正向路径层级提取潜在代码,并通过合并节点对将其图大小减半;每个反向路径层级将每个节点分裂两个节点,并增加额外的噪声。
[0020]
在一些实施例中,提供了存储指令的一个或多个非暂时性计算机可读介质,所述指令响应于由一个或多个处理器执行,使计算机系统执行操作,所述操作包括实施例中的一个实施例的计算机方法。
[0021]
在一些实施例中,计算机系统可以包括:一个或多个处理器;以及存储指令的一个或多个非暂时性计算机可读介质,所述指令响应于由所述一个或多个处理器执行,使得所述计算机系统执行操作,所述操作包括所述实施例中的一个实施例的计算机方法。
[0022]
上述发明内容仅是说明性的,并不旨在以任何方式进行限制。除了上述说明性方面、实施例和特征之外,通过参考附图和下面的详细描述,其他方面、实施例和特征将变得显而易见。
附图说明
[0023]
根据结合附图的以下描述和所附权利要求,本公开的前述和以下信息以及其他特征将变得更加明显。应当理解,这些附图仅描绘了根据本公开的几个实施例,并且因此不被认为是对其范围的限制,将通过使用附图以额外的特征和细节来描述本公开。
[0024]
图1示出了具有被配置用于生成分子图的分层归一化流模块的系统的架构。
[0025]
图2示出了将先验分布变换为目标分布的归一化流系统。
[0026]
图3示出了具有三种类型的层的系统架构,用于获取目标分布。
[0027]
图4示出了用于molgrow的架构。
[0028]
图5a示出了4节点图的节点合并和分裂示例的示意图。
[0029]
图5b示出了用于在完全图边缘(cage)架构上应用注意力(attention)的算法。
[0030]
图6示出了可用于执行本文描述的方法的计算系统的实施例。
[0031]
图7a示出了本技术避免的bfs排序。
[0032]
图7b示出了与本技术一起使用的面向片段的排序。
[0033]
图8示出了一种应用平衡填充的算法。
[0034]
附图中的元件和部件可以根据本文描述的至少一个实施例来布置,并且该布置可以由本领域普通技术人员根据本文提供的公开内容来修改。
具体实施方式
[0035]
在以下详细描述中,参考了构成本文一部分的附图。在附图中,除非上下文另有指示,否则相似的符号通常标识相似的组件。在具体实施方式,附图和权利要求中描述的说明性实施例并不意味着是限制性的。在不脱离本文所呈现的主题的精神或范围的情况下,可以利用其他实施例,并且可以进行其他改变。容易理解的是,如本文一般描述的和在附图中示出的本公开的方面可以以各种不同的配置来布置、替换、组合、分离和设计,所有这些在本文中都被明确考虑。
[0036]
通常,本技术涉及用于生成分子图的分层归一化流模型。分层归一化流模型被配置为通过递归地将每个节点分裂为两个节点,从单节点图产生新的分子结构。分层归一化流模型中的所有操作都是可逆的,可以用作即插即用模块。潜在代码的分层性质允许对结果图进行精确改变。例如,顶层的扰动会导致全局结构变化,而后续层的扰动会略微改变所得分子。所提出的分层归一化流模型在分布学习任务上优于现有的生成图模型。使用模型的潜在代码,分层归一化流模型可用于化学属性的全局和约束优化。
[0037]
在一些实施例中,用于生成分子图的分层归一化流模型可以用作图生成模型,并且由此可以被称为“molgrow”。分层归一化流模型可以从单个节点开始,然后迭代地将该节点和分子图中的其他节点分裂为两个节点。用于生成分子图模型的分层归一化流模型是可逆的,可用于将分子结构映射到固定大小的分层流形上。流形的顶层被配置为定义全局结构,而底层则影响局部特征。
[0038]
在一些实施例中,分层归一化流模型可用于生成分子图。对模型进行配置,以使得其在采样期间从单个节点开始逐渐增加图大小。节点可以分裂为两个节点。然后,可以处理每个节点并将其分裂为两个节点。
[0039]
在一些实施例中,分层归一化流模型可以与面向片段的原子排序(例如,分层排序)一起使用,其相对于通常使用的广度优先搜索排序改进了分层归一化流模型。
[0040]
在一些实施例中,分层归一化流模型可以应用于分布学习和属性优化任务。分层归一化流模型除了提供标准唯一性和有效性度量之外,还可以提供包括图生成模型的分布学习度量(例如,frechet chemnet距离和片段分布)的报告。
[0041]
图1示出了具有被配置用于生成分子图104的分层归一化流模块102的系统100的架构。模块102可以包括图数据输入106和被配置为在采样协议期间逐渐增加图数据中的图的图大小的图数据扩展器模块108。图数据扩展器模块108可以从图的单个节点开始图的大小增加协议,该单个节点利用节点分裂器模块110被分裂成两个子节点。该过程可以由节点
分裂器模块110针对图的节点重复。模块102还可以包括面向片段的原子排序模块112,其被配置用于图数据中的原子排序(例如,节点排序),其相对于通常使用的广度优先搜索排序改进了模块102中的模型的操作。模块102可以省略广度优先搜索排序模块。
[0042]
模块102的分层归一化流模型116可以应用于分布学习模块118,该模块118可以采用模型116在图数据和生成图数据来执行分布学习任务。此外,模块102的分层归一化流模型116可以应用于执行属性优化任务的属性优化模块120。
[0043]
系统100可以包括度量模块122,其被配置为确定任何模块的度量,例如来自模块118的分布学习度量。度量模块122可以生成分布学习度量的报告,例如图生成模型的frechet chemnet距离度量和片段分布度量。系统100还可以包括标准唯一性模块124,其被配置用于分析从模块102输出(例如,来自输出分子图126的分子图输出126)的生成图数据。系统100可以包括有效性模块128,其被配置为验证任何生成分子图,并由此提供输出分子图的有效性度量。例如,有效性模块128可以被配置为提供关于分子图是否表示有效分子的报告。
[0044]
图2示出了将先验分布206转换为目标分布208的归一化流系统200。归一化流系统200可以包括归一化流模块202,该归一化流模块配置有生成模块204,该生成模块执行先验分布206到目标分布208的转换。可逆功能模块210被配置用于将正向路径212和反向路径214组成可逆功能。例如,先验分布p(z)通常是标准多元正态分布n(0,i)。利用模型训练模块216训练归一化流模型。模型训练模块216可以包括对数似然模块218,其被配置为使用变量公式的改变来最大化训练集对数似然。训练模块216还可以通过逆变换模块220和雅可比行列式模块222实现对模型的训练。这可以确保逆变换和雅可比行列式应易于处理且计算效率高。
[0045]
图3示出了具有用于获得目标分布的三种类型的层的系统架构300。这三种类型的层包括:可逆线性层302、actnorm层(actnorm layer)304和实值非体积保持变换(realnvp)层306(laurent dinh et al.,density estimation using realnvp.international conference on learning representations,2017.)。这些层可以包括任意尺寸的向量。另外,这些层可以针对图结构化数据(例如,图数据)进行扩展。
[0046]
可逆线性层302被配置用于执行使用权重矩阵的qr分解的参数化。householder反射计算用于参数化正交矩阵。可逆线性层302的雅可比行列式应为1。
[0047]
actnorm层304是具有对角权重矩阵的线性层。向量被初始化,使得来自actnorm层304的输出激活在训练开始时具有零均值和单位方差。第一个训练批可用于初始化。还可以计算actramn层304的雅可比行列式。
[0048]
realnvp层306是非线性可逆变换层。realnvp考虑长度一半的化合物(分子图)是a部分,一半的化合物是b部分的向量,其中。可以确定realnvp变换及其逆变换,并且通常采用神经网络的形式。实际上,应用两个realnvp层306来变换矢量的两个分量。可以包括置换(permutation)层以在realnvp之前确定性地混洗(shuffle)输入维度,这类似于将数据随机分裂为a部分和b部分。
[0049]
图4示出了molgrow 400的架构。molgrow 400包括具有潜在代码生成器402(例如,编码器)的完整架构。潜在代码生成器402包括如图所示的多个层级404。每个层级404可以被配置用于对数据执行变换,其包括通过各种块406进行处理。块406的每个包括三通道式
(channel-wise)变换,例如置换、线性(302)和actnorm(304)。块406各自还包括两个realnvp层(306)。
[0050]
完整的molgrow 400架构结合了多个层级404,以从图(v,e)生成潜在代码z
l
,...,z0,反之亦然。每个层级404在逆中分离噪声或应用噪声注入,在逆中合并节点对或应用节点分裂,应用多个块406和线性变换(例如,actnorm和逆线性)。每个块406应用三通道式变换和两个realnvp层。通道式变换包括:置换;线性和actnorm。
[0051]
molgrow 400是分层归一化流模型(生成模型),其被配置为通过将每个节点递归地划分为两个节点,从单节点图产生新的分子图。最终的图具有n=2l个节点,其中l是模型中节点分裂层数。为了生成节点较少的图,模块可以在分子图中添加特殊的填充原子。运算符可以选择n,使其足够大,以适合训练数据集中的任何图。
[0052]
我们用节点属性矩阵v和边缘属性张量e表示一个图。v∈rn×
dv
e∈rn×n×
de
[0053]
这里,dv和de是特征维度。对于输入数据,vi定义原子类型和电荷,e
i,j
定义边缘类型。由于分子图是非定向的,因此在所有中间层上都保留了对称约束:e
i,j,k
=e
j,i,k

[0054]
molgrow 400包括l可逆层级494。每个层级404都具有其自己的具有高斯先验的潜在代码。在正向路径上,每个层级404提取潜在代码,并通过合并节点对将图大小减半。在反向路径上,每个层级404做相反的事情:它将每个节点分裂成两个并添加额外的噪声。正向路径上的最终输出是来自每个层级的单节点图和潜在代码:z
l
,...,z1。z0是最高层级潜在代码。单节点图:z0=(vk,ek)。
[0055]
在一些实施例中,执行去量化协议。为了避免将离散图拟合到连续密度模型中,使用均匀噪声对数据进行去量化[durk p kingma et al.,glow:generative flow with invertible 1x1 convolutions.in advances in neural information processing systems,pages10215

10224,2018.]。去量化是可逆的,可以通过四舍五入某些元素来重建原始数据。可以对每个训练批独立地对数据进行去量化,并对模型进行训练。去量化图是一个完全图。
[0056]
在一些实施例中,执行节点合并和分裂。该模型可以使用节点合并和分裂操作来控制图的大小。这些操作彼此相反,并且都通过重新排列节点和边缘特征来操作。考虑具有多个节点的图。节点合并操作通过连接节点2i和2i+1的特征和它们之间的边缘特征将他们连接成一个节点,例如连接合并节点的边缘特征。节点分裂是节点合并层的逆:它将特征分切为原始分量。请参见图5中的示例。图5示出了4节点图的节点合并和分裂示例的示意图。该模型将节点v1和v2和边缘e
1,2
的特征连接起来,得到新的节点特征。该模型还连接了边缘特征e
1,3
,e
1,4
,e
2,3
和e
2,4
。分裂操作将分切合并图的节点和边缘特征。
[0057]
在一些实施例中,执行噪声分离和注入。molgrow为每个层级产生一个潜在向量。该模型通过在节点合并之前分离一半的节点和边缘特征来导出潜在代码并在这些潜在代码上施加高斯先验。在生成过程中,模型从先验对潜在代码进行采样,并将其与节点和边缘特征连接。如实验中所示,不同层级上的潜在代码对生成的结构(例如,生成图)的影响不同。来自较小中间图(顶层)的潜在代码会影响全局结构,而底层具有特征定义局部结构。
[0058]
在一些实施例中,molgrow中的基本构建块架构(在图1中表示为“块”)由五个层级组成。前三层(例如置换层、线性层和actnorm层)用作1
×
1卷积。每层包含两个转换:一个转换每个节点,另一个转换每个边缘。矩阵q中线性层的housholder反射的数量小于q的维数。因此,线性层和置换层的组合并不等同于单个线性层。例如,请参见图5,其中示出了算法1-完全图边缘(cage)上的注意力。
[0059]
每个块的最后两层是realnvp层。realnvp层沿特征维度将其带有节点的输入图分为a集合和b集合。b集合可以通过将节点和边缘特征投影到低维流形上并在完全图边缘(cage)架构上应用注意力(图5的算法1)来变换。realnvp层的最终输出是通过将全连接神经网络独立地应用于每个节点和边缘来计算的。
[0060]
类似于其他注意力图卷积[petar velickovic et al.,graph attention networks.international conference on learning representations,2017.,zhijiang guo et al.,.attention guided graph convolutional networks for relation extraction.in proceedings of the 57th annual meeting of the association for computational linguistics,pages 241

251,florence,italy,july 2019.association for computational linguistics,cage architecture uses a multi-head attention[ashish vaswani et al.,attention is all you need.in advances in neural information processing systems,pages 5998

6008,2017]。它还使用门控递归单元更新功能来稳定训练[emilio parisotto et al.,stabilizing transformers for reinforcement learning.international conference on machine learning,2020]。cage中的位置编码由两部分组成。第一个维度是标准的正弦位置编码。标准正弦位置编码的后一个分量包含二进制代码。在完整架构中的第一个层级之前和最后一个层级之后添加多个块。
[0061]
在一些实施例中,可以分析图的布局并执行平衡填充。在学习固定原子排序时,该模型已用于获得更好的结果,而不是学习分布,相对于所有置换。先前工作使用广度优先搜索(bfs)原子排序,因为它避免了长距离依赖关系。但是,bfs不包含常见片段的先验,并且可以混合它们的原子(见图7a)。图7a示出了本技术避免的bfs排序。本文描述的所提出的模型省略了bfs。相反,所提出的模型使用所提出的新原子排序来合并有关频繁片段的先验知识。所提出的模型排序更好地组织潜在空间并简化生成,例如在图7b中使用面向片段的排序。
[0062]
在图7a-7b中,使用了不同的原子顺序。数字是原子按特定顺序排列的索引。请注意,bfs排序(图7a)并行生成两个片段(请参见节点15-18),而本方法在转换到下一个片段之前完成一个片段。对于图7b中的面向片段的排序,提取的片段被圈出。
[0063]
该方法可以通过去除brics键[j degen et al.,on the art of compiling and using’drug-like’chemical fragment spaces.chemmedchem,3(10):1503

1507,2008.]以及bemis-murcko支架中的连接环、连接物和装饰物的键[g w bemis et al.,the properties of known drugs.1.molecular frameworks.j.med.chem.,39(15):2887

2893,july 1996.]将分子分解成片段。然后,该方法使用面向片段的排序(foo)来枚举每个片段中的片段和原子(图7b)。然后,该方法递归地选择填充位置,最小化节点合并层后的边缘数(如图8所示的算法2)。
[0064]
在一些实施例中,生成模型可用于分子生成任务。通过将分子表示为字符串,可以应用任何序列生成模型:语言模型[marwin h s segler et al.,generating focused molecule libraries for drug discovery with recurrent neural networks.acs cent sci,4(1):120

131,january 2018.],变分自动编码器[rafael gomez-bombarelli,et al.,automatic chemical design using a data-driven continuous representation of molecules.acs central science,4(2):268

276,february 2018.]和生成对抗网络[benjamin sanchez-lengeling et al.,optimizing distributions over molecular space.an objective-reinforced generative adversarial network for inverse-design chemistry(organic).chemrxiv,8 2017.doi:10.26434/chemrxiv.5309668.v3.]。分子图满足一组正式的规则:所有原子都必须具有适当的价态,而图必须只有一个分量。这些约束可以从数据中隐式学习,也可以通过指定语法规则来显式学习[matt j kusner et al.,.grammar variational autoencoder.in proceedings of the 34th international conference on machine learning-volume 70,pages 1945

1954.jmlr.org,2017;noel o’boyle et al.,deepsmiles:an adaptation of smiles for use in machine-learning of chemical structures.chemrxiv,2018;mario krenn et al.,selfies:a robust representation of semantically constrained graphs with an example application in chemistry.arxiv preprint arxiv:1905.13741,2019.]。
[0065]
图递归神经网络(graphrnn)和分子递归神经网络(molecularrnn)使用节点和边缘生成器:节点生成器顺序地产生节点;边缘生成器从节点生成器的隐藏状态顺序地预测所有先前节点的边缘类型。分子生成对抗网络(molgan)对生成图的批判者(critic)进行训练,并使用深度确定性策略梯度将梯度传递给生成器。图变分自编码器(graphvae)使用边缘条件的图卷积对分子进行编码和解码。图自回归流(graphaf)迭代地产生节点和边缘;离散的单热(one-hot)向量被去量化,并使用argmax解码词符(token)。
[0066]
也可以使用图非体积保持变换(graphnvp)模型。graphnvp生成不是自回归的:该模型使用归一化流生成去量化的邻接矩阵,通过计算argmax将其转换为离散的边缘集,并使用归一化流获得原子类型。moflow利用了类似于graphnvp的两阶段图生成过程:首先,它生成具有glow架构的邻接矩阵,然后使用其他耦合层恢复节点属性。与graphnvp和moflow不同,本文所述的molgrow分层地生成图并在多个层级上注入噪声。molgrow也同时产生节点和边缘。
[0067]
上面提到的图生成模型不是置换不变的,并且这些模型中的大多数都采用固定的原子排序。graphvae使用hungarian算法对生成图和目标图进行对齐,但具有很高的计算复杂度。集合中的顺序很重要,以设置具有特定顺序的转换问题,从而提供更好的结果。大多数模型都学习广度优先搜索(bfs)原子排序。在bfs中,新节点仅连接到当前或先前bfs层上产生的节点,从而避免了长距离依赖关系。或者,图生成模型可以使用规范的深度优先搜索(dfs)排序。
[0068]
在一些实施例中,本文描述的分层分子图生成模型在分布学习和分子属性优化任务上优于现有节点级模型。在分布学习上,基于字符串和片段的生成器仍然比节点级模型表现更好,因为它们明确地处理了价态和连接性约束。与先前的模型类似,分层分子图生成模型在学习固定原子排序时获得了更好的性能。当前的分层分子图生成模型使用面向片段
的排序,该排序比bfs方法进一步改善了结果。在这项工作中,使用标准分布学习度量对生成集和测试集进行了比较,发现先前的节点级图生成器产生的分布在测试集上有显著差异,尽管这些模型是为分布学习而训练的。
[0069]
在一些实施例中,可以使用计算方法来归一化分子图数据以用于分层分子生成。所述方法可以包括:提供单节点分子图;递归地将每个节点分裂为两个节点;扰动第一层潜在代码以获得至少一个分子的全局结构变化;扰动一个或多个后续层对至少一个分子的支架或取代基的一次或多次改变中改变至少一个所得分子;生成分子的生成分子图;以及提供具有生成分子图的报告。
[0070]
在一些实施例中,可以执行用于归一化分子图数据以用于分层分子生成的计算方法。所述方法可以包括:提供分子图;以及从所述分子图生成多层级潜在代码。每个层级分离噪声,合并节点对,并应用多个块和线性变换,其中每个块应用多个通道式变换和多个非线性可逆变换。该方法可以包括对每一层级执行正向路径以提取潜在代码,通过合并节点对来减小图的大小;对每一层级执行反向路径,将每个节点分裂为两个节点并增加额外的噪声;并输出图结构。
[0071]
在一些实施例中,所述方法可以包括执行去量化,所述去量化包括通过将均匀噪声添加到节点和边缘特征来将数据分布变换到连续域。
[0072]
在一些实施例中,所述方法可以包括使用节点合并和节点分裂来控制分子图的大小。
[0073]
在一些实施例中,利用块架构执行所述方法,所述块架构包括五层的构建块,所述五层包括置换层、线性层、激活归一化(actnorm)层和两个实值非体积保持变换(realnvp)层。
[0074]
在一些实施例中,所述方法被执行以包括:将所述分子图变换为节点和边缘;通过将节点和边缘特征投影到低维流形上来变换所述节点和边缘;将全连接神经网络独立地应用到每个节点和边缘;以及执行注意力图卷积。
[0075]
在一些实施例中,所述方法可以包括对分子图的固定原子排序执行学习协议。
[0076]
在一些实施例中,所述方法可以包括:将分子图分裂为片段;对于每个片段,在原始分子中选择具有最小广度优先搜索(bfs)索引或面向片段排序(foo)索引的原子,并根据索引对片段进行排序;对选定的原子执行bfs或foo以对每个片段中的原子进行排序;获得每个片段的片段排序列表和原子排序列表;并将片段排序列表连接以获得最终排序。
[0077]
在一些实施例中,当生成图的分子具有少于n个原子时,所述方法可以包括在节点合并之后的位置中插入填充(padding)原子。在一些方面,每个片段由单个中间节点覆盖。
[0078]
在一些实施例中,提供了一种产生分子的方法。该方法可以包括:执行生成方法以识别分子结构(例如,生成图);以及合成真实分子以具有生成图的分子结构。所述方法可以包括对分子结构进行分析以确认分子结构,例如nmr、hpls等。在一些方面,所述方法可以包括进行生物学分析以识别分子结构的生物活性。
[0079]
在一些实施例中,用于归一化分子图数据以用于分层分子生成的计算方法可以包括:提供单节点分子图;递归地将每个节点分裂为两个节点;扰动第一层潜在代码以获得至少一个分子的全局结构变化;扰动一个或多个后续层以改变至少一个分子的支架或取代基的一次或一次以上变化中产生的分子;生成分子的生成分子图;以及提供具有生成分子图
molecular generation models.frontiers in pharmacology,11:1931,2020.]。molgrow的性能大大超过了先前的节点级图生成器。请注意,基于smiles的生成器(charrnn和vae)和片段级生成器(jtn-vae)的性能优于所有节点级图模型。人们认为,这种表示对生成的结构施加了强烈的先验。该方法提供了基于图的模型的样本,如molgrow中所示:用于分层分子生成图归一化流,maksim kuznetsov,daniil polykovskiy,insilico medicine,association for the advancement of artificial intelligence,通过具体引用并入本文,其中图生成模型是在moses上训练的。请注意,基线模型倾向于产生训练集中不存在的大环;用graphnvp产生的分子包含的环太少。消融研究表明,与标准图注意力网络gat相比,面向片段的排序和cage的优势。表1表1
[0092]
全局优化任务的目标是产生最大化给定化学属性的新分子。该方法选择了两个常用的属性:惩罚的辛醇-水分配系数(惩罚logp)和药物相似性的定量估计(qed)。该方法考虑了遗传和预测因子指导的优化策略。
[0093]
对于遗传优化,该方法从zinc250k数据集中采样256个随机分子并计算其潜在代码开始。然后,该方法进行3000次迭代分层地优化潜在代码。在每次迭代中,该方法使用交叉和突变生成新的群体,并保持具有最高奖励的256个分子。在交叉中,该方法随机地置换群体中的所有分子以形成256对。对于每对,模型从球形线性插值(slerp)轨迹均匀采样潜在代码,并重建所得分子。该方法在每次迭代时都会突变一个层级的潜在代码。从顶层开始,该方法从高斯分布重新采样10%分量。对于遗传优化,该方法比较了不同的突变和交叉策略,包括具有固定底层的顶层优化,反之亦然。
[0094]
在预测器指导的优化中,该方法可以遵循jin等人提出的方法[wengong jin et al.,.junction tree variational autoencoder for molecular graph generation.in jennifer dy and andreas krause,editors,proceedings of the 35th international conference on machine learning,volume 80of proceedings of machine learning research,pages 2323

2332,stockholmsmassan,stockholm sweden,2018.pmlr.]。该方法与来自高层级潜在代码的惩罚logp预测器联合微调预训练模型,用于一个时期(对于惩罚logp,mae=0.41,对于qed,mae=0.07)。该方法从先验分布中随机采样2560个分子,并沿着预测器的梯度采取200受约束的梯度上升步骤来修改高层级潜在代码。该方法从先验中重新采样低层级潜在代码。该方法降低每次迭代后的学习率,并保留落入约束区域的最佳重建分子。直观地,高层级潜在代码上的梯度上升引导搜索更好的全局结构,而低层级潜在代码产生具有相同全局结构和相似预测值的各种分子集。然后,该方法报告优化过程中发现的最佳分子的得分,如表2所示。表2示出了分子属性优化:惩罚辛醇-水分配系数(惩罚logp)和药物相似性的定量估计(qed)。表2
[0095]
在一些示例中,执行约束优化。因此,该方法可以将molgrow应用于约束分子优化。在此任务中,该方法优化了初始分子附近的化学属性。该方法选择具有最低惩罚的辛醇-水分配系数(logp)的800个分子,并约束初始分子和最终分子的morgan指纹之间的最小tanimoto相似性δ。对于约束优化,该方法遵循上述预测器引导的方法,并用200个步骤优化800起始分子中的每一个。在表3和4中,报告了平均惩罚的logp改进和与初始分子的相似性。据报告,一小部分分子成功地发现了一种具有更高惩罚logp的新分子。请注意,与gcpn和graphaf基线不同,该方法不会对每个起始分子的模型进行微调,从而减少了优化的时间和存储成本。表3和表4示出了惩罚辛醇-水分配系数(logp)的约束优化。表3表4表4
[0096]
计算
[0097]
归一化流模块
[0098]
归一化流是通过组合可逆函数fk将先验分布p(z)转换为目标分布p(x)的生成模型:
[0099]
公式1是正向路径,公式2是反向路径。先验分布p(z)通常是标准的多元正态分布n(0,i)。通过使用变量公式的改变最大化训练集对数似然来训练此类模型:
[0100]
在公式3中:hi=fi(h
i-1
),h0=x.
[0101]
为了有效地训练模型并从中采样,逆变换和雅可比行列式应易于处理且计算有效。在这项工作中,我们考虑三种类型的层:可逆线性层、actnorm和实值非体积保持变换(realnvp)[laurent dinh,jascha sohl-dickstein,and samy bengio.density estimation using real nvp.international conference on learning representations,2017]。我们在下面为任意d维向量定义这些层,并在下一节中扩展这些层的图结构化数据。
[0102]
我们考虑hoogeboom等人[emiel hoogeboom et al.,emerging convolutions for generative normalizing flows.proceedings of the 36th international conference on machine learning,volume 97of proceedings of machine learning research,pages 2771

2780,long beach,california,usa,09

15jun 2019.pmlr.]的可逆线性层参数,其使用权重矩阵的qr分解:h=qr
·
z,其中q为正交矩阵(q
t
=q-1
),r为主对角线为一的上三角矩阵。我们使用householder反射来参数化q:
[0103]
在公式4中,其中vi是可学习的列向量。线性层的雅可比行列式为1。qr分解显示出比现有方法更稳定的结果。
[0104]
actnorm层[durk p kingma et al.,glow:generative flow with invertible 1x1convolutions.in advances in neural information processing systems,pages 10215

10224,2018.]是一个线性层,具有对角权重矩阵:h=s

z+m,其中

是元素式乘法。向量s和m被初始化,以使来自该层的输出激活在训练开始时具有零均值和单位方差。我们使用第一个训练批进行初始化。该层的雅可比行列式为
[0105]
realnvp层[laurent dinh et al.,density estimation using real nvp.international conference on learning representations,2017.]是一种非线性可逆变换。考虑长度为d=2t的向量z,其前半部分表示为za,后半部分表示为zb。那么,realnvp及其逆变换为:
[0106]
函数s
θ
和t
θ
不必是可逆的,通常采用神经网络的形式。realnvp层的雅可比行列式为
[0107]
我们顺序地应用两个realnvp层来转换z的两个分量。我们还使用了在realnvp之前确定性地混洗输入维度的置换层-这相当于将数据随机拆分为a和b部分。
[0108]
去量化
[0109]
为了避免将离散图拟合到连续密度模型中,使用均匀噪声对数据进行去量化[durk p kingma et al.,glow:generative flow with invertible 1x1 convolutions.in advances in neural information processing systems,pages 10215

10224,2018.]。24,2018.]。
[0110]
uv和ue的元素是来自均匀分布的独立样本。这种去量化对于c∈[0,1)是可逆的——原始数据可以通过四舍五入和的元素来重建。我们独立地对每个训练批的数据进行去量化,并在(v0,e0)上训练模型。去量化图(v0,e0)是一个完全图。
[0111]
节点合并和分裂
[0112]
我们使用节点合并和分裂操作来控制图的大小。这些操作彼此相反,并且都通过重新排列节点和边缘特征来操作。考虑具有nk个节点的图(vk,ek)。节点合并操作通过连接节点2i和2i+1的特征和它们之间的边缘特征将他们连接成一个节点。我们连接边缘特征,边缘特征连接合并节点:边缘特征连接合并节点:
[0113]
节点分裂是节点合并层的逆:它将特征分切成原始分量。请参见图5中的示例。
[0114]
块架构
[0115]
molgrow中的基本构建块(在图4中表示为块(block))由五层组成。前三层(置换、线性和actnorm)用作1
×
1卷积。每层包含两个转换:一个转换每个节点,另一个转换每个边缘。矩阵q中线性层的housholder反射的数量小于q的维数。因此,线性层和置换层的组合并不等同于单个线性层。
[0116]
块的最后两层是realnvp层。realnvp层沿特征维度将具有nk节点的的输入图(vk,ek)分裂为(v
k,a
,e
k,a
)和(v
k,b
,e
k,b
)。我们通过将节点和边缘特征投影到低维流形上并在完
全图边缘(cage)架构上应用注意力来转换(算法1-图5)。我们通过独立地到应用全连接神经网络和到每个节点和边缘计算realnvp层的最终输出。到每个节点和边缘计算realnvp层的最终输出。到每个节点和边缘计算realnvp层的最终输出。到每个节点和边缘计算realnvp层的最终输出。到每个节点和边缘计算realnvp层的最终输出。
[0117]
cage架构使用多头注意[ashish vaswani et al.,attention is all you need.in advances in neural information processing systems,pages 5998

6008,2017.]。它还使用门控递归单元更新功能来稳定训练[emilio parisotto et al.stabilizing transformers for reinforcement learning.international conference on machine learning,2020.]。cage中的位置编码由两部分组成。第一个维度是标准正弦位置编码的:维度是标准正弦位置编码的:
[0118]
posi的后一个分量包含i的二进制代码。我们在完整架构中的第一个层级之前和最后一个层级之后添加多个块。
[0119]
超参数
[0120]
molgrow模型对于zinc250k数据集具有6个步骤,对于moses数据集具有5步骤,以及对于qm9数据集具有4个步骤。如果每个步骤的输入图包含最多16个节点,则它包含2个块,否则包含4个块。我们将额外的4个块应用于初始的单节点潜在代码。
[0121]
cage将节点和边缘特征向量投影到64维流形上;注意头的数量等于16。神经网络svθ、tvθ、seθ和teθ是具有relu激活的2层全连接神经网络。这些网络的隐藏大小是输出大小的4倍。seθ和svθ的最后一层是sigmoid函数。
[0122]
在线性层的qr分解中,我们使用128个householder反射来参数化矩阵q分解。我们从n(0,i)中采样vi并对其进行归一化。在每个模型优化步骤之后,我们对vi进行重新归一化。我们用对角线上方的n(0,0.05*i)中的元素初始化矩阵r;对角线下方为零,对角线上为一。
[0123]
我们用学习率为0.001的adam优化器训练模型,对于moses的每个训练时期之后以0.8的因子下降,并且对于qm9和zinc250k数据集的每个训练时期后以0.92的因子下降。对moses和qm9数据集批处理大小为256,对zinc250k数据集为80。我们在moses上训练10个时期的模型,在zinc250k和qm9上训练30个时期的模型。
[0124]
在我们的实验中,我们使用了qm9、zinc250k和moses数据集。对于qm9,我们使用n
=16个节点,其中dv=6个原子类型,包括填充原子类型。对于moses,我们使用n=32个节点,其中dv=9个原子类型,以及对于zinc250k,n=64个节点,其中dv=14(原子类型为11,电荷类型为3)。键类型个数为de=4(无、单、双、三)。
[0125]
我们从多元正态分布n(0,i)中采样潜在代码,并将其乘以温度参数0.7.
[0126]
我们对每个层级的多个块(考虑2、4、8、16个块)和cage的内部形状(考虑隐藏层中的8、16、32、64个元素)进行了超参数搜索。上面描述了最佳超参数。为了在一个数据集上训练molgrow,我们使用了tesla k80 gpu。每个数据集的训练过程大约需要2天。
[0127]
分布学习
[0128]
对于分布学习,我们提供了有关qm9和zinc250k数据集的其他实验(表5和表6)。为了计算molgrow的有效性,我们删除了超过最大原子价态的边缘。如果最终图包含多个片段,我们只保留最大的片段。当没有对生成图执行额外操作时,没有清除的有效性对应于有效分子的一部分。我们使用rdkit检查有效性,并另外地考虑具有多个成分的分子无效。我们可以为在moses上训练的模型提供带有属性分布图的报告。表5表5表6
[0129]
本领域技术人员将理解,对于本文所公开的这个和其他过程和方法,在过程和方法中执行的功能可以以不同的顺序实现。此外,所概述的步骤和操作仅作为示例提供,并且这些步骤和操作中的一些可以是可选的,组合成更少的步骤和操作,或者扩展成额外的步骤和操作,而不会减损所公开的实施例的本质。
[0130]
本公开不限于在本技术中描述的特定实施例,这些实施例旨在作为各个方面的说明。可以在不脱离其精神和范围的情况下进行许多修改和变化,这对于本领域技术人员来说是显而易见的。在本公开的范围内的功能上等同的方法和装置,除了本文列举的那些之外,对于本领域技术人员从前述描述中显而易见。这样的修改和变化旨在落入所附权利要求的范围内。本公开将仅由所附权利要求的条款以及这些权利要求所享有的等同物的全部范围来限制。应当理解,本公开内容不限于特定的方法、试剂、化合物组合物或生物系统,其
当然可以变化。还应理解的是,本文使用的术语仅用于描述特定实施例的目的,而并非旨在限制。
[0131]
在一个实施例中,本方法可以包括在计算系统上执行的方面。这样,所述计算系统可以包括存储器设备,所述存储器设备具有用于执行所述方法的计算机可执行指令。所述计算机可执行指令可以是计算机程序产品的一部分,所述计算机程序产品包括用于执行权利要求中的任一项所述的方法中的一个或多个算法。
[0132]
在一个实施例中,本文描述的任何操作、过程、方法或步骤可以被实现为存储在计算机可读介质上的计算机可读指令。计算机可读指令可以由来自桌面计算系统、便携式计算系统、平板计算系统、手持式计算系统以及网络元件、基站、毫微蜂窝基站和/或任何其他计算设备的各种计算系统的处理器执行。
[0133]
在系统的各个方面的硬件和软件实现之间几乎没有区别;硬件或软件的使用通常是(但不总是,因为在某些情况下,硬件和软件之间的选择可能变得重要)代表成本与效率权衡的设计选择。可以通过各种载体实现本文所述的过程和/或系统和/或其他技术(例如,硬件、软件和/或固件),并且优选的载体将随着部署过程和/或系统和/或其他技术的环境而变化。例如,如果实现者确定速度和准确性是最重要的,则实现者可以选择主要的硬件和/或固件载体;如果灵活性是最重要的,则实现者可以选择主要的软件实现;或者,又可选地,实现者可以选择硬件、软件和/或固件的某种组合。
[0134]
前面的详细描述已经通过使用框图、流程图和/或示例阐述了过程的各种实施例。就这样的框图、流程图和/或示例包含一个或多个功能和/或操作而言,本领域技术人员将理解,这样的框图、流程图或示例中的每个功能和/或操作可以单独地和/或共同地通过各种各样的硬件、软件、固件或实际上它们的任何组合实现。在一个实施例中,本文描述的主题的若干部分可以通过专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)或其他集成格式来实现。然而,本领域技术人员将认识到,本文所公开的实施例的全部或部分的一些方面可以等同地在集成电路中实现,作为在一个或多个计算机上运行的一个或多个计算机程序(例如,作为运行在一个或多个计算机系统上的一个或多个程序),作为运行在一个或多个处理器上的一个或多个程序(例如,作为运行在一个或多个微处理器上的一个或多个程序),作为固件,或作为其实际上的任何组合,根据本公开内容,设计电路和/或编写用于软件和/或固件的代码将完全在本领域技术人员的技术范围内。此外,本领域技术人员将理解,本文描述的主题的机制能够以各种形式作为程序产品分配,并且本文描述的主题的说明性实施例适用于与用于实际执行分配的信号承载介质的特定类型无关的情况。信号承载介质的示例包括但不限于以下:可记录型介质,例如软盘、硬盘驱动器、cd、dvd、数字磁带、计算机存储器等;以及传输类型介质,例如数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。
[0135]
本领域技术人员将认识到,在本领域中常见的是以本文所述的方式描述设备和/或过程,并且其后使用工程实践将这样描述的设备和/或过程集成到数据处理系统中。也就是说,本文所述的设备和/或过程的至少一部分可以通过合理数量的实验被集成到数据处理系统中。本领域技术人员将认识到,典型的数据处理系统通常包括以下中的一个或多个:系统单元外壳、视频显示设备、例如易失性和非易失性存储器的存储器、例如微处理器和数字信号处理器的处理器、例如操作系统的计算实体、驱动器、图形用户界面和应用程序、一
个或多个交互设备(例如触摸板或屏幕)和/或包括反馈回路和控制电机的控制系统(例如,用于感测位置和/或速度的反馈;用于移动和/或调节组件和/或数量的控制电机)。典型的数据处理系统可以利用任何合适的市售组件来实现,例如通常在数据计算/通信和/或网络计算/通信系统中找到的组件。
[0136]
本文描述的主题有时示出包含在不同其他组件内或与不同其他组件连接的不同组件。应当理解的是,这种所描绘的架构仅仅是示例性的,并且实际上实现相同功能的许多其他架构可以实现。在概念意义上,实现相同功能的组件的任何布置被有效地“关联”,从而实现期望功能。因此,本文中组合以实现特定功能的任何两个组件可以被视为彼此“相关联”,从而实现所需的功能,而与架构或中间组件无关。同样,如此关联的任何两个组件也可以被视为彼此“可操作地连接”或“可操作地耦合”以实现期望功能,并且能够如此关联的任何两个组件也可以被视为“可操作地耦合”,以实现期望功能。可操作地可耦合的具体示例包括但不限于物理上可配合和/或物理上相互作用的组件和/或无线可交互和/或无线地相互作用的组件和/或逻辑上相互作用和/或逻辑上可交互的组件。
[0137]
图6示出了被布置成执行本文描述的任何计算方法的示例计算设备600。在非常基本的配置602中,计算设备600通常包括一个或多个处理器604和系统存储器606。存储器总线608可用于在处理器604和系统存储器606之间通信。
[0138]
根据期望配置,处理器604可以是任何类型,包括但不限于微处理器(μp)、微控制器(μc)、数字信号处理器(dsp)或其任何组合。处理器604可以包括多级高速缓存,例如一级高速缓存610和二级高速缓存612、处理器核614和寄存器616。示例处理器核614可以包括算术逻辑单元(alu)、浮点单元(fpu)、数字信号处理核(dsp核)或其任何组合。示例存储器控制器618还可以与处理器604一起使用,或者在一些实现中,存储器控制器618可以是处理器604的内部部分。
[0139]
根据期望配置,系统存储器606可以是任何类型,包括但不限于易失性存储器(例如ram)、非易失性存储器(例如rom、闪存等)或其任何组合。系统存储器606可以包括操作系统620、一个或多个应用程序622和程序数据624。应用622可以包括确定应用626,其被布置成执行如本文所述的功能,包括关于本文所述的方法所描述的那些功能。程序数据624可包括可用于分析由传感器单元240提供的污染特性的确定信息628。在一些实施例中,应用程序622可以被布置为在操作系统620上与程序数据一起624来操作,使得由不可信计算节点执行的工作可以被验证,在图6中通过内虚线内的那些组件示出了该描述的基本配置602。
[0140]
计算设备600可以具有额外的特征或功能,以及额外的接口,以方便基本配置602与任何所需设备和接口之间的通信。例如,总线/接口控制器630可用于方便基本配置602与一个或多个数据存储设备632之间经由存储接口总线634的通信。数据存储设备632可以是可移动存储设备636、不可移动存储设备638或其组合。可移动存储和不可移动存储设备的示例包括例如柔性磁盘驱动器和硬盘驱动器(hdd)的磁盘设备、例如光盘(cd)驱动器或数字通用磁盘(dvd)驱动器的光盘驱动器、固态驱动器(ssd)和磁带机等。示例计算机存储介质可以包括在用于存储信息(例如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实现的易失性和非易失性、可移动和不可移动介质。
[0141]
系统存储器606、可移动存储设备636和不可移动存储设备638是计算机存储介质的示例。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、
数字通用磁盘(dvd)或其他光学存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备,或可用于存储期望信息并且可由计算设备600访问的任何其他介质。任何这样的计算机存储介质可以是计算设备600的一部分。
[0142]
计算设备600还可以包括接口总线640,用于方便通过总线/接口控制器630从各种接口设备(例如,输出设备642、外围接口644和通信设备646)到基本配置602的通信。示例输出设备642包括图形处理单元648和音频处理单元650,其可以被配置为经由一个或多个a/v端口652与例如显示器或扬声器的各种外部设备通信。示例外围接口644包括串行接口控制器654或并行接口控制器656,其可以被配置为经由一个或多个eo端口658与例如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)的外部设备或其他外围设备(例如,打印机、扫描仪等)通信。示例通信设备646包括网络控制器660,其可以被布置为方便经由一个或多个通信端口664通过网络通信链路与一个或多个其他计算设备662通信。
[0143]
网络通信链路可以是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据(例如载波或其他传输机制)来体现,并且可以包括任何信息传递介质。“调制数据信号”可以是以在信号中编码信息的方式设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质可以包括例如有线网络或直接有线连接的有线介质,以及例如声学、射频(rf)、微波、红外(ir)和其他无线介质的无线介质。本文使用的术语计算机可读介质可以包括存储介质和通信介质两者。
[0144]
计算设备600可以被实现为小型便携式(或移动)电子设备的一部分,例如蜂窝电话、个人数据助理(pda)、个人媒体播放器设备、无线网络手表设备、个人耳机设备、应用专用设备或包括上述功能中的任一个的混合设备。计算设备600还可以被实现为包括笔记本电脑和非笔记本电脑配置两者的个人计算机。计算设备600还可以是任何类型的网络计算设备。计算设备600还可以是如本文所述的自动化系统。
[0145]
本文描述的实施例可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机。
[0146]
在本发明范围内的实施例还包括用于承载或具有存储在其上的计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这种计算机可读介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储器、磁盘存储器或其他磁存储设备,或可用于承载或存储以计算机可执行指令或数据结构的形式表示的期望程序代码并且可由通用或专用计算机访问的任何其他介质。当通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)向计算机传输或提供信息时,计算机将该连接正确地视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。上述各项的组合也应包括在计算机可读介质的范围内。
[0147]
计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行特定功能或一组功能的指令和数据。尽管已经以特定于结构特征和/或方法行为的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于上述特定特征或行为。相反,上述特定特征和行为被公开为实施权利要求的示例形式。
[0148]
如本文所用,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。本文描述的不同组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或过程(例如,作为单独的线程)。虽然本文所述的系统和方法优选地以软件实现,但是硬件或软件和
硬件的组合中的实现也是可能的和预期的。在本说明书中,“计算实体”可以是如本文先前定义的任何计算系统,或者在计算系统上运行的任何模块或调制器的组合。
[0149]
关于本文中的基本上任何复数和/或单数术语的使用,本领域技术人员可以根据上下文和/或应用的情况从复数转换为单数和/或从单数转换为复数。为了清楚起见,本文可以明确地阐述各种单数/复数排列。
[0150]
本领域技术人员将理解的是,一般而言,本文中使用的术语,尤其是所附权利要求(例如,所附权利要求的主体)通常旨在作为“开放”术语(例如,术语“包括”应被解释为“包括但不限于”,术语“具有”应被解释为“至少具有”,术语“包含”应被解释为“包含但不限于”等)。本领域技术人员将进一步理解的是,如果引入的权利要求叙述的意图是特定数量,则在权利要求中将明确地叙述这样的意图,并且在没有这样的叙述的情况下不存在这样的意图。例如,作为对理解的帮助,所附权利要求可以包含使用介绍性短语“至少一个”和“一个或多个”来介绍权利要求的叙述。然而,此类短语的使用不应被解释为暗示由不定冠词“一”或“一个”引入权利要求叙述将包含此类引入的权利要求叙述的任何特定权利要求限制为仅包含一个此类叙述的实施例,即使当同一权利要求包括介绍性短语“一个或多个”或“至少一个”和不定冠词,例如“一”或“一个”(例如,“一”和/或“一个”应解释为“至少一个”或“一个或多个”);用于引入权利要求叙述的定冠词的使用也是如此。此外,即使明确列举了特定数量的引入的权利要求叙述,本领域技术人员也将认识到,这种叙述应被解释为至少表示所列举的数量(例如,“两个叙述”的裸列举,而没有其他修饰词,表示至少两个叙述,或两个或更多个叙述)。此外,在使用类似于“a、b和c等中的至少一个”的约定的那些情况下,一般而言,这种构造是在本领域技术人员将理解该约定的意义上的(例如,“具有a、b和c中的至少一个的系统”将包括但不限于单独具有a、单独具有b、单独具有c、同时具有a和b、同时具有a和c、同时具有b和c、和/或同时具有a、b和c的系统等)。在使用类似于“a、b或c等中的至少一个”的约定的那些情况下,一般而言,这种构造是在本领域技术人员将理解该约定的意义上的(例如,“具有a、b或c中的至少一个的系统”将包括但不限于单独具有a、单独具有b、单独具有c、同时具有a和b、同时具有a和c、同时具有b和c、和/或同时具有a、b和c的系统等)。本领域技术人员将进一步理解的是,无论是在说明书、权利要求或附图中,实际上任何表示两个或更多个替代术语的析取词和/或短语都应被理解为考虑包括术语中的一个、术语中的任一个或两个术语的可能性。例如,短语“a或b”将被理解为包括“a或“b”或“a和b”的可能性。
[0151]
此外,在根据markush组描述本公开的特征或方面的情况下,本领域技术人员将认识到,本公开也因此根据markush组的任何单独成员或成员的子组来描述。
[0152]
如本领域技术人员将理解的,出于任何和所有目的,例如就提供书面描述而言,本文公开的所有范围还包括任何和所有可能的子范围及其子范围的组合。任何列出的范围都可以很容易地识别为充分描述和允许将相同的范围分解为至少相等的一半、三分之一、四分之一、五分之一、十分之一等。作为非限制性示例,本文所讨论的每个范围可以容易地分解为下三分之一、中三分之一和上三分之一等。如本领域技术人员还将理解的,例如“直到”、“至少”等的所有语言都包括所列举的数字,并且指代随后可以分解为如上所述的子范围的范围。最后,如本领域技术人员将理解的,范围包括每个单独的成员。因此,例如,具有1-3个细胞的组是指具有1、2或3个细胞的组。类似地,具有1-5个细胞的组是指具有1、2、3、4
或5个细胞的组,等等。
[0153]
根据前述内容,应当理解,为了说明的目的,本文已经描述了本公开的各种实施例,并且在不脱离本公开的范围和精神的情况下可以进行各种修改。因此,本文公开的各种实施例不旨在是限制性的,真实的范围和精神由所附权利要求书指示。
[0154]
本文叙述的所有参考文献通过具体引用全部并入本文。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1