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
|
Graph Attention Network - uses edge_dim=1 to incorporate edge weights. |
|
Graph Convolutional Network |
|
Graph Isomorphism Network - uses GINEConv for edge-weight awareness. |
|
GNNEmbedding Class for Generating Graph Neural Network (GNN) Based Embeddings. |
|
GraphSAGE - aligned layer_num convention. |
- class bioneuralnet.network_embedding.GAT(*args: Any, **kwargs: Any)[source]¶
Bases:
ModuleGraph 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.
- class bioneuralnet.network_embedding.GCN(*args: Any, **kwargs: Any)[source]¶
Bases:
ModuleGraph 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.
- class bioneuralnet.network_embedding.GIN(*args: Any, **kwargs: Any)[source]¶
Bases:
ModuleGraph 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:
- 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:
objectGNNEmbedding 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
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.
- class bioneuralnet.network_embedding.SAGE(*args: Any, **kwargs: Any)[source]¶
Bases:
ModuleGraphSAGE - aligned layer_num convention.
Note: SAGEConv does not natively support edge weights.
- Parameters:
Modules