Пример #1
0
import importlib.util
import logging
import os
import time
from typing import List, NamedTuple, Optional, Tuple

from graphein.protein.config import ProteinMeshConfig
from graphein.utils.pymol import MolViewer
from graphein.utils.utils import import_message

try:
    from pytorch3d.structures import Meshes
except ImportError:
    import_message(
        submodule="graphein.protein.meshes",
        package="pytorch3d",
        conda_channel="pytorch3d",
        pip_install=True,
    )


log = logging.getLogger(__name__)


def check_for_pymol_installation():
    """Checks for presence of a pymol installation"""
    spec = importlib.util.find_spec("pymol")
    if spec is None:
        log.error(
            "Please install pymol: conda install -c schrodinger pymol or conda install -c tpeulen pymol-open-source"
        )
Пример #2
0
from pathlib import Path

import networkx as nx

from graphein.protein.features.sequence.utils import (
    compute_feature_over_chains,
    subset_by_node_feature_value,
)
from graphein.utils.utils import import_message

try:
    import torch
except ImportError:
    import_message(
        submodule="graphein.protein.features.sequence.embeddings",
        package="torch",
        pip_install=True,
        conda_channel="pytorch",
    )

try:
    import biovec
except ImportError:
    import_message(
        submodule="graphein.protein.features.sequence.embeddings",
        package="biovec",
        pip_install=True,
    )


@lru_cache()
def _load_esm_model(model_name: str = "esm1b_t33_650M_UR50S"):
Пример #3
0
from typing import Dict, Tuple

import networkx as nx

from graphein.utils.utils import import_message, protein_letters_3to1_all_caps

try:
    from pyaaisc import Aaindex
except ImportError:
    import_message(
        submodule="graphein.protein.features.nodes.aaindex",
        package="pyaaisc",
        pip_install=True,
    )


def fetch_AAIndex(accession: str) -> Tuple[str, Dict[str, float]]:
    """
    Fetches AAindex1 dictionary from an accession code. The dictionary maps one-letter AA codes to float values

    :param accession: Aaindex1 accession code
    :type accession: str
    :return: tuple of record titel(str) and dictionary of AA:value mappings
    :rtype: Tuple[str, Dict[str, float]]
    """
    # Initialise AAindex object and get data
    aaindex = Aaindex()
    record = aaindex.get(accession)

    return record.title, record.index_data
Пример #4
0
from __future__ import annotations

from typing import List, Optional

import networkx as nx
import numpy as np
import torch

from graphein.utils.utils import import_message

try:
    from torch_geometric.data import Data
except ImportError:
    import_message(
        submodule="graphein.ml.conversion",
        package="torch_geometric",
        pip_install=True,
        conda_channel="rusty1s",
    )

try:
    import dgl
except ImportError:
    import_message(
        submodule="graphein.ml.conversion",
        package="dgl",
        pip_install=True,
        conda_channel="dglteam",
    )

SUPPORTED_FORMATS = ["nx", "pyg", "dgl"]
"""Supported conversion formats.
Пример #5
0
# Author: Ramon Vinas, Arian Jamasb <*****@*****.**>
# License: MIT
# Project Website: https://github.com/a-r-j/graphein
# Code Repository: https://github.com/a-r-j/graphein
from typing import Any, Dict

import networkx as nx

from graphein.utils.utils import import_message

try:
    from bioservices import HGNC, UniProt
except ImportError:
    import_message(
        submodule="graphein.ppi.features.nodes_features",
        package="bioservices",
        conda_channel="bioconda",
        pip_install=True,
    )


def add_sequence_to_nodes(n: str, d: Dict[str, Any]):
    """
    Maps UniProt ACC to UniProt ID. Retrieves sequence from UniProt and adds it to the node as a feature

    :param n: Graph node.
    :type n: str
    :param d: Graph attribute dictionary.
    :type d: Dict[str, Any]
    """
    h = HGNC(verbose=False)
    u = UniProt(verbose=False)
Пример #6
0
import networkx as nx
import numpy as np
import plotly.express as px
import plotly.graph_objects as go
import seaborn as sns
from mpl_toolkits.mplot3d import Axes3D

from graphein.protein.subgraphs import extract_k_hop_subgraph
from graphein.utils.utils import import_message

try:
    from pytorch3d.ops import sample_points_from_meshes
except ImportError:
    import_message(
        submodule="graphein.protein.visualisation",
        package="pytorch3d",
        conda_channel="pytorch3d",
    )

log = logging.getLogger()


def plot_pointcloud(mesh: Meshes, title: str = "") -> Axes3D:
    """
    Plots pytorch3d Meshes object as pointcloud.

    :param mesh: Meshes object to plot.
    :type mesh: pytorch3d.structures.meshes.Meshes
    :param title: Title of plot.
    :type title: str
    :return: returns Axes3D containing plot