matcha.torch.models.classic.gatedcgn_model

Gated Graph Convolutional Network (GatedGCN) classic model.

Classes

GatedGCNModel

Gated Graph Convolutional Network (GatedGCN) for molecular property prediction.

Module Contents

class matcha.torch.models.classic.gatedcgn_model.GatedGCNModel(additional_mol_features_dim: int = 0, enc_num_layers: int = 3, enc_atom_input_dim: int = 44, enc_bond_input_dim: int = 14, enc_atom_hidden_dim: int = 300, enc_jk: str = 'last', enc_norm: str | None = 'batch', enc_readout: str = 'vpa', enc_activation: str = 'swish', enc_dropout: float = 0.2, enc_laplacian_k: int = 10, enc_rwse_k: int = 20, enc_elstatic_k: int = 0, enc_distmat_k: int = 0, enc_rrwp_k: int = 20, pred_hidden_dims: list[int] = [512, 256], pred_task_head_dims: list[int] | None = None, pred_activation: str = 'swish', pred_dropout: float = 0.2, num_endpoints: int = 1, loss_fn: str = 'mse', loss_args: dict = {}, optimizer: str = 'adam', optimizer_args: dict = {'lr': 0.001}, scheduler: str = 'cosine_annealing', scheduler_args: dict = {'min_lr': 1e-06, 'total_steps': 50})[source]

Bases: matcha.torch.models.classic.base_classic_model.BaseClassicModel, lightning.pytorch.core.mixins.HyperparametersMixin

Gated Graph Convolutional Network (GatedGCN) for molecular property prediction.

Uses gated edge features and residual connections for message passing. Inherits from BaseClassicModel for common training/prediction routines and from HyperparametersMixin for saving hyperparameters.

Reference: Dwivedi et al., Benchmarking Graph Neural Networks (https://arxiv.org/abs/2003.00982)

Example usage:

model = GatedGCNModel()
trainer = L.Trainer(max_epochs=50)
trainer.fit(model=model, train_dataloaders=train_dataloader)
Parameters:
  • additional_mol_features_dim (int) – dimensionality of extra molecular features concatenated to encoder output, defaults to 0

  • enc_num_layers (int) – number of GatedGCN message-passing layers, defaults to 3

  • enc_atom_input_dim (int) – input atom feature dimensionality, defaults to 44

  • enc_bond_input_dim (int) – input bond feature dimensionality, defaults to 14

  • enc_atom_hidden_dim (int) – hidden atom feature dimensionality, defaults to 300

  • enc_jk (str) – jumping knowledge strategy, defaults to ‘last’

  • enc_norm (str | None) – normalisation type, defaults to ‘batch’

  • enc_readout (str) – graph-level readout strategy, defaults to ‘vpa’

  • enc_activation (str) – activation function in the encoder, defaults to ‘swish’

  • enc_dropout (float) – dropout rate in the encoder, defaults to 0.2

  • enc_laplacian_k (int) – Laplacian positional encoding dimension, defaults to 10

  • enc_rwse_k (int) – random-walk structural encoding dimension, defaults to 20

  • enc_elstatic_k (int) – electrostatic encoding dimension, defaults to 0

  • enc_distmat_k (int) – distance matrix encoding dimension, defaults to 0

  • enc_rrwp_k (int) – relative random-walk probabilities dimension, defaults to 20

  • pred_hidden_dims (list[int]) – hidden layer sizes in the MLP predictor, defaults to [512, 256]

  • pred_task_head_dims (list[int] | None) – per-task head dimensions, defaults to None

  • pred_activation (str) – activation in the predictor, defaults to ‘swish’

  • pred_dropout (float) – dropout rate in the predictor, defaults to 0.2

  • num_endpoints (int) – number of prediction targets, defaults to 1

  • loss_fn (str) – loss function name, defaults to ‘mse’

  • loss_args (dict) – additional loss function arguments, defaults to {}

  • optimizer (str) – optimizer name, defaults to ‘adam’

  • optimizer_args (dict) – additional optimizer arguments, defaults to {‘lr’: 1e-3}

  • scheduler (str) – learning rate scheduler name, defaults to ‘cosine_annealing’

  • scheduler_args (dict) – additional scheduler arguments, defaults to {‘min_lr’: 1e-6, ‘total_steps’: 50}

params
encoder