bioneuralnet.network_embedding

Network embedding modules for BioNeuralNet.

This module contains classes for generating embeddings using various GNN architectures including GCN, GAT, SAGE, and GIN.

Classes

GAT(*args, **kwargs)

Graph Attention Network - uses edge_dim=1 to incorporate edge weights.

GCN(*args, **kwargs)

Graph Convolutional Network

GIN(*args, **kwargs)

Graph Isomorphism Network - uses GINEConv for edge-weight awareness.

GNNEmbedding(adjacency_matrix, omics_data, ...)

GNNEmbedding Class for Generating Graph Neural Network (GNN) Based Embeddings.

SAGE(*args, **kwargs)

GraphSAGE - aligned layer_num convention.

class bioneuralnet.network_embedding.GAT(*args: Any, **kwargs: Any)[source]

Bases: Module

Graph Attention Network - uses edge_dim=1 to incorporate edge weights.

In DPMON edge_dim=1 in GATConv so the attention mechanism can leverage the network’s structural information.

Parameters:
  • input_dim (int) – Dimensionality of input features.

  • hidden_dim (int) – Dimensionality of hidden layers.

  • layer_num (int) – Total layer count.

  • heads (int) – Number of attention heads.

  • dropout (Union[bool, float]) – Dropout probability.

  • final_layer (str) – Head type.

  • activation (str) – Activation function name.

forward(data)[source]

Full forward pass.

get_embeddings(data)[source]

Extract latent node embeddings.

class bioneuralnet.network_embedding.GCN(*args: Any, **kwargs: Any)[source]

Bases: Module

Graph Convolutional Network

layer_num=2 -> 1 conv layer (first only, 0 hidden) layer_num=4 -> 3 conv layers (first + 2 hidden)

Parameters:
  • input_dim (int) – Dimensionality of input features.

  • hidden_dim (int) – Dimensionality of hidden layers.

  • layer_num (int) – Total layer count (including conv_first).

  • dropout (Union[bool, float]) – Dropout probability or toggle.

  • final_layer (str) – Head type (“regression” or “none”).

  • activation (str) – Activation function name.

  • seed (Optional[int]) – Random seed.

  • self_loop_and_norm (Optional[bool]) – Flags for manual GCNConv normalization.

forward(data)[source]

Full forward pass including the task-specific head.

get_embeddings(data)[source]

Extract latent node embeddings.

class bioneuralnet.network_embedding.GIN(*args: Any, **kwargs: Any)[source]

Bases: Module

Graph Isomorphism Network - uses GINEConv for edge-weight awareness.

DPMON utilizes GINEConv with edge_dim=1 to incorporate edge weights into the MLP-based message passing.

Parameters:
  • input_dim (int) – Dimensionality of input features.

  • hidden_dim (int) – Dimensionality of hidden layers.

  • layer_num (int) – Total layer count.

forward(data)[source]

Full forward pass.

get_embeddings(data)[source]

Extract latent node embeddings.

class bioneuralnet.network_embedding.GNNEmbedding(adjacency_matrix: DataFrame, omics_data: DataFrame, phenotype_data: Series | DataFrame, clinical_data: DataFrame | None = None, phenotype_col: str = 'phenotype', model_type: str = 'GAT', hidden_dim: int = 64, layer_num: int = 4, dropout: bool | float = True, num_epochs: int = 100, lr: float = 0.001, weight_decay: float = 0.0001, gpu: bool = False, activation: str = 'relu', seed: int | None = None, tune: bool | None = False, output_dir: str | Path | None = None)[source]

Bases: object

GNNEmbedding Class for Generating Graph Neural Network (GNN) Based Embeddings.

adjacency_matrix

pd.DataFrame

omics_data

pd.DataFrame

phenotype_data

pd.DataFrame

clinical_data

Optional[pd.DataFrame]

phenotype_col

str

model_type

str

hidden_dim

int

layer_num

int

dropout

Union[bool, float] (if bool, True maps to 0.5, False to 0.0)

num_epochs

int

lr

float

weight_decay

float

gpu

bool

seed

Optional[int]

tune

Optional[bool]

embed(as_df: bool = False) torch.Tensor | DataFrame[source]

Generates node embeddings. If tuning is enabled, runs hyperparameter tuning and uses the best configuration.

fit() None[source]

Trains the GNN model using the provided data.

run_gnn_embedding_tuning(num_samples=20)[source]

Run hyperparameter tuning with Ray Tune.

class bioneuralnet.network_embedding.SAGE(*args: Any, **kwargs: Any)[source]

Bases: Module

GraphSAGE - aligned layer_num convention.

Note: SAGEConv does not natively support edge weights.

Parameters:
  • input_dim (int) – Dimensionality of input features.

  • hidden_dim (int) – Dimensionality of hidden layers.

  • layer_num (int) – Total layer count.

forward(data)[source]

Full forward pass.

get_embeddings(data)[source]

Extract latent node embeddings.

Modules