DGL官方教程--API--dgl.model_zoo

本文介绍DGL化学模型库,涵盖多种用于化学领域的深度学习模型,包括GCN、GAT、MPNN、SchNet、MGCN、AttentiveFP等,适用于分子图的性能预测与生成。同时,提供了DGMG和DGLJTNNVAE模型用于分子图的生成,以及ACNN模型用于预测蛋白配体结合亲和力。
部署运行你感兴趣的模型镜像

dgl.model_zoo 

Chemistry

实用工具

chem.load_pretrained(* args,** kwargs) 

性能预测

当前支持的模型架构:

  • GCN分类器
  • GAT分类器
  • 神经网络
  • 网络
  • MGCN
  • AttentiveFP
classdgl.model_zoo.chem.GCNClassifier(** kwargs)

基于GCN的分子图多任务预测的预测器,我们假设每个任务都需要执行二元分类。

参数:
  • in_featsint)–输入原子特征的数量
  • gcn_hidden_​​featslist of int)– gcn_hidden_​​feats [i]给出第i + 1个gcn层中输出原子特征的数量
  • n_tasksint)–预测任务数
  • classifier_hidden_​​featsint)– MLP分类器隐藏层中的分子图特征数量
  • dropoutfloat)–dropout率。默认值为0。即,不执行任何丢弃操作。

forward(gfeats)

一批分子的多任务预测

参数:
  • gDGLGraph)–能并行处理多个分子的DGLGraph,批处理大小为B
  • feats (FloatTensor of shape (NM0))–一批分子中所有原子的初始特征
返回值:对这批分子上所有任务的软预测
返回类型:FloatTensor of shape (B, n_tasks)
classdgl.model_zoo.chem.GATClassifier(** kwargs)

基于GAT的预测器,用于分子图上的多任务预测。我们假设每个任务都需要执行二元分类。

参数:in_featsint)–输入原子特征的数量

forward(gfeats)

一批分子的多任务预测

参数:
  • gDGLGraph)–批处理大小为B的DGLGraph,用于并行处理多个分子
  • feats (FloatTensor of shape (NM0)–一批分子中所有原子的初始特征
返回值:

软预测分子批次上的所有任务

返回类型:

形状的FloatTensor(B,n个任务)

clas sdgl.model_zoo.chem.MPNNModel(** kwargs)

来自神经信息传递的量子化学的 MPNN

参数:
  • node_input_dimint)–输入节点特征的尺寸,默认为15。
  • edge_input_dimint)–输入边缘特征的尺寸,默认为15。
  • output_dimint)–预测维度,默认为12。
  • node_hidden_​​dimint)–隐藏图层中节点要素的尺寸,默认为64。
  • edge_hidden_​​dimint)–隐藏图层中边缘要素的尺寸,默认为128。
  • num_step_message_passingint)–消息传递步骤的数量,默认为6。
  • num_step_set2setint)– set2set步骤数
  • num_layer_set2setint)– set2set层数
forward(g,n_feat,e_feat)

预测分子标签

参数:
  • gDGLGraph)–分子的输入DGLGraph
  • n_feat (tensor of dtype float32 and shape (B1D1))–节点特征。B1表示节点数,D1表示节点特征大小。
  • e_feat (tensor of dtype float32 and shape (B2D2))–边缘特征。B2表示边数,D2表示边要素尺寸。
返回值:res
返回类型:

预测标签

class dgl.model_zoo.chem.SchNet(** kwargs)

SchNet:用于建模量子相互作用的连续滤波器卷积神经网络。(NIPS'2017)

参数:
  • dimint)–原子嵌入的大小,默认为64。
  • cutofffloat)– RBF的半径截止,默认为5.0。
  • output_dimint)–要预测的目标属性的数量,默认为1。
  • widthint)– RBF的宽度,默认为1。
  • n_convint)–转换(交互)层数,默认为1。
  • normbool)–是否标准化输出原子表示,默认为False。
  • atom_refAtom embeddings None)–如果为None,将使用随机表示初始化。否则,它们将用于初始化原子表示。默认为无。
  • pre_trainAtom嵌入None)–如果为None,则将使用随机表示初始化。否则,它们将用于初始化原子表示。默认为无。
forward(g,atom_types,edge_distances)

预测分子标签

参数:
  • gDGLGraph)–分子的输入DGLGraph
  • atom_types (int64 tensor of shape (B1))–图形中原子的类型,B1为原子数。
  • edge_distances (float32 tensor of shape (B21)) -边缘的距离,B2为边缘的数量。
返回值:

预测 –批图的模型预测,图的数量为B,预测大小为output_dim。

返回类型:loat32 tensor of shape (B, output_dim)
class dgl.model_zoo.chem.MGCNModel(** kwargs)

分子特性预测:多级量子相互作用建模的观点

参数:
  • dimint)–嵌入的大小,默认为128。
  • widthint)– RBF层中的宽度,默认为1。
  • cutofffloat)–节点之间的最大距离,默认为5.0。
  • edge_dimint)–边缘嵌入的大小,默认为128。
  • out_put_dimint)–要预测的目标属性的数量,默认为1。
  • n_convint)–卷积层数,默认为3。
  • normbool)–是否执行标准化,默认为False。
  • atom_refAtom embeddings None)–如果为None,将使用随机表示初始化。否则,它们将用于初始化原子表示。默认为无。
  • pre_trainAtom嵌入None)–如果为None,则将使用随机表示初始化。否则,它们将用于初始化原子表示。默认为无。

forwardgatom_typesedge_distances [源代码]

预测分子标签

参数:
  • gDGLGraph)–分子的输入DGLGraph
  • atom_types形状为b1 )的int64张量)–图形中原子的类型,B1为原子数。
  • edge_distancesFLOAT32张量形状B2 ) -边缘的距离,B2为边缘的数量。
返回值:

预测 –批图的模型预测,图的数量为B,预测大小为output_dim。

返回类型:

形状为(B,output_dim)的float32张量

classdgl.model_zoo.chem.AttentiveFP** kwargs [源代码]

利用图注意力机制推动药物发现的分子表示边界

参数:
  • node_feat_sizeint)–输入节点(原子)特征的大小。
  • edge_feat_sizeint)–输入边缘(绑定)特征的大小。
  • num_layersint)– GNN层数。
  • num_timestepsint)–用GRU更新分子表示的时间步数。
  • graph_feat_sizeint)–学习的图形表示的大小(分子指纹)。
  • output_sizeint)–预测的大小(目标标签)。
  • dropoutfloat)–执行辍学的概率。

forwardgnode_featsedge_featsget_node_weight = False [源代码]

参数:
  • gDGLGraph)–构造的DGLGraphs。
  • node_feats形状为N1 )的float32张量)–输入节点特征。V为节点数,N1为要素大小。
  • edge_feats形状为N2 )的float32张量)–输入边缘特征。E为边数,N2为特征尺寸。
  • get_node_weightbool)–是否在读取期间获取原子的权重。
返回值:

 

  • 形状为(G,N3)的float32张量 –图形的预测。G代表图表数量,N3代表输出尺寸。
  • node_weights形状为(V,1)的float32张量的列表)–所有读取操作中节点的权重。

 

生成模型

当前支持的模型架构:

  • DGMG
  • 神经网络

classdgl.model_zoo.chem.DGMG** kwargs [源代码]

DGMG模型

学习图的深度生成模型

用户只需要初始化此类的实例。

参数:
  • atom_typeslist)–例如['C','N']
  • bond_types列表)–例如[Chem.rdchem.BondType.SINGLE,Chem.rdchem.BondType.DOUBLE,Chem.rdchem.BondType.TRIPLE,Chem.rdchem.BondType.AROMATIC]
  • node_hidden_​​sizeint)–原子表示的大小
  • num_prop_roundsint)–每次消息传递回合的次数
  • 辍学float)–辍学的可能性

forwardactions = Nonerdkit_mol = Falsecompute_log_prob = Falsemax_num_steps = 400 [源代码]

参数:
  • 动作2元组列表无。)–如果动作不是无,则根据动作生成分子。否则,将根据采样动作生成分子。
  • rdkit_molbool)–是否维护Chem.rdchem.Mol对象。这带来了额外的计算成本,但是如果我们对学习生成的分子感兴趣的话,这是必需的。
  • compute_log_probbool)–是否计算对数似然
  • max_num_stepsint)–允许的最大步数。这仅在推断期间生效,并防止模型停止。
返回值:

 

  • torch.tensor仅由浮点组成,可选 –所采取动作的对数似然
  • str,可选 –生成的分子形式为SMILES

 

classdgl.model_zoo.chem.DGLJTNNVAE** kwargs [源代码]

用于生成分子图的连接树变分自编码器

forwardmol_batchbeta = 0e1 = Nonee2 = None [源代码]

定义每次调用时执行的计算。

应该被所有子类覆盖。

注意

尽管需要在此函数中定义向前传递的方法,但应在Module之后调用该实例,而不是调用该实例,因为前者负责运行已注册的钩子,而后者则静默地忽略它们。

蛋白配体结合

当前支持的模型架构:

  • 神经网络

classdgl.model_zoo.chem.ACNN** kwargs [源代码]

原子卷积网络。

该模型是在原子卷积网络中提出的,用于预测蛋白质-配体的结合亲和力

参数:
  • hidden_​​sizesint列表)–在预测变量中为所有图层指定隐藏大小。
  • weight_init_stddevs浮点数列表)–在预测变量的初始化权重中指定用于截断正态分布的标准偏差。
  • dropouts浮点列表)–指定要用于预测器中所有图层的辍学。
  • features_to_use形状)的浮动张量)–在原始论文中,这些是要考虑的原子序号,代表原子的类型。T为原子序数的类型。默认为无。
  • 径向列表)–如果不是无,则该列表由3个浮点列表组成,分别用于交互截止的选项,rbf内核均值的选项和rbf内核缩放的选项。如果为None,将使用默认选项 。[[12.0], [0.0, 2.0, 4.0, 6.0, 8.0], [4.0]]
  • num_tasksint)–输出任务数。

forward[来源]

将模型应用于预测。

参数:DGLHeteroGraph)– DGLHeteroGraph由配体图,蛋白质图和复杂图以及预处理的特征组成。
返回值:预测的蛋白质-配体结合亲和力。B代表批次中蛋白质-配体对的数量,O代表任务的数量。
返回类型:形状为(B,O)的Float32张量

 

您可能感兴趣的与本文相关的镜像

Facefusion

Facefusion

AI应用

FaceFusion是全新一代AI换脸工具,无需安装,一键运行,可以完成去遮挡,高清化,卡通脸一键替换,并且Nvidia/AMD等显卡全平台支持

你提到的关键点是: > **目前的 WHERE 条件是两个字段都为空才执行更新,但实际上你希望的是只要其中任意一个为空就执行更新。** --- ## ✅ 你当前的 WHERE 条件: ```sql WHERE dgl.file_type = ctn.category_name AND (dgl.file_security_level IS NULL OR dgl.file_security_level = '') AND (dgl.review_role IS NULL OR dgl.review_role = ''); ``` > ✅ 当前是 **两个字段都为空** 才会更新。 --- ## ✅ 你希望的逻辑: 只要满足以下两个条件中的 **任意一个为空** 就执行更新: - `dgl.file_security_level` 是空; - `dgl.review_role` 是空; --- ## ✅ 正确的更新语句应修改为如下: ```sql UPDATE testdup.dynamic_general_ledger dgl SET review_role = ctn.team_group, file_security_level = ctn.document_security_level, integration_platform = CASE WHEN dgl.integration_platform = '无' THEN '' ELSE dgl.integration_platform END FROM testdup."Category_Tree_Node" ctn WHERE dgl.file_type = ctn.category_name AND ( (dgl.file_security_level IS NULL OR dgl.file_security_level = '') OR (dgl.review_role IS NULL OR dgl.review_role = '') ); ``` --- ## ✅ 解释 | 条件 | 说明 | |------|------| | `OR` | 表示只要 `file_security_level` 或 `review_role` 任意一个为空,就执行更新 | | `CASE WHEN ... THEN ... ELSE ... END` | 保留原逻辑,对 `integration_platform` 字段做处理 | --- ## ✅ 推荐先测试 SELECT 在正式执行 `UPDATE` 前,建议你先用 `SELECT` 查看将要更新的数据是否符合预期: ```sql SELECT dgl.*, ctn.team_group AS new_review_role, ctn.document_security_level AS new_file_security_level FROM testdup.dynamic_general_ledger dgl JOIN testdup."Category_Tree_Node" ctn ON dgl.file_type = ctn.category_name WHERE ( (dgl.file_security_level IS NULL OR dgl.file_security_level = '') OR (dgl.review_role IS NULL OR dgl.review_role = '') ); ``` 确认结果无误后,再执行 `UPDATE`。 --- ## ✅ 总结 | 问题 | 解决方案 | |------|----------| | 原来是两个字段都为空才更新 | 改为 `OR` 连接两个判断 | | 担心误更新 | 先用 SELECT 查看影响范围 | | `integration_platform = '无'` 处理 | 保留原 CASE 逻辑 | ---
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值