Graph Embeddings — BioNeuralNet 1.0.4 documentation

# Graph Embeddings

BioNeuralNet multiple graph embedding approaches:

GNNEmbedding:

GCN - Graph Convolutional Network GAT - Graph Attention Network GraphSAGE - Graph Sample and Aggregation GIN - Graph Isomorphism Network

GNN Embedding Example:

Generating GNN-based Embeddings with correlation-based node features (optional).

    import pandas as pd
    from bioneuralnet.datasets import DatasetLoader
    from bioneuralnet.network_embedding import GNNEmbedding
    from bioneuralnet.external_tools import SmCCNet
    from bioneuralnet.metrics import plot_embeddings

    # Load example synthetic dataset
    loader = DatasetLoader("example1")
    omics1, omics2, phenotype, clinical = loader.load_data()

    # Display dataset dimensions
    print("Dataset Shapes:")
    print(f"Omics1: {omics1.shape}")  # Expected: (358, 500)
    print(f"Omics2: {omics2.shape}")  # Expected: (358, 100)
    print(f"Phenotype: {phenotype.shape}")  # Expected: (358, 1)
    print(f"Clinical: {clinical.shape}")  # Expected: (358, 6)")

    # Merge omics data
    merged_omics = pd.concat([omics1, omics2], axis=1)

    # Generate global network using SmCCNet
    smccnet = SmCCNet(
        phenotype_df=phenotype,
        omics_dfs=[omics1, omics2],
        data_types=["genes", "proteins"],
        kfold=3,
        subSampNum=500,
    )
    global_network, smccnet_clusters = smccnet.run()

    # Initialize and run GNN Embedding
    embeddings = GNNEmbedding(
        adjacency_matrix=global_network,
        omics_data=merged_omics,
        phenotype_data=phenotype,
        clinical_data=clinical,
        tune=True,
    )

    embeddings.fit()
    embeddings_output = embeddings.embed(as_df=True)

    # Display output shape
    print(f"GNN Embeddings Shape: {embeddings_output.shape}")

    global_node_labels = embeddings._prepare_node_labels()
    embeddings_array = embeddings_output.values
    fig1 = plot_embeddings(embeddings_array, global_node_labels)

The resulting embeddings can be used for: - Clustering - Subject-level integration - Visualization - Disease prediction