En utilisant l'inclusion Poincarē de Genism, j'ai essayé d'intégrer un réseau d'interaction protéine-protéine dans des boules de Poancare.
Espace twin L'espace jumeau est l'un des espaces non euclidiens, qui est un espace courbe avec une courbure négative. Il a la propriété que l'espace se dilate vers la périphérie, et est dit approprié pour incorporer des réseaux avec une structure hiérarchique.
Bal de Poancare
Le bal Poancare est l'un des modèles de l'espace musical jumeau. La distance entre deux points sur le ballon Poancare
L'incorporation de Poincarē est implémentée dans le génisme de la bibliothèque de traitement du langage naturel de python, alors utilisez-la. Si vous donnez une liste de paires de mots, elle intégrera un réseau de mots dans Poancareball.
# import de bibliothèque
import pandas as pd
import numpy as np
from gensim.models.poincare import PoincareModel
from genism.viz.poincare import poincare_2d_visualization
from plotly.offline import iplot
# Charger le jeu de données
# Téléchargez et décompressez gene_attribute_edges.txt.gz.
# Les paires de protéines qui se lient aux sections source et cible sont répertoriées.
dataset = pd.read_csv('gene_attribute_edges.txt', delimiter = '\t', usecols = [0,3], skiprows = [1])
# Créer une liste de paires de protéines liées
relations = []
for i in range(len(dataset)):
relations.append((dataset.source[i], dataset.target[i]))
# Appliquer le modèle Poancare à la paire de protéines
# Nous le visualiserons en deux dimensions plus tard, définissez donc size = 2.
model = PoincareModel(relations, size = 2)
model.train(epochs = 1000)
# Visualisation
# Si toutes les liaisons entre protéines sont reliées par des lignes, il sera trop compliqué de comprendre la figure, donc le nombre de lignes est limité à 5 avec num_nodes.
map = poincare_2d_visualization(model = model, tree = relations, figure_title = 'PPI network', num_nodes = 5)
iplot(map)
Chaque point représente une protéine et les protéines de liaison sont reliées par une ligne. Au fur et à mesure que la valeur des époques augmente progressivement, l'apprentissage progresse et à mesure que la fonction de perte diminue, la protéine avec moins de liaison est placée à la périphérie et la protéine qui sert de centre est située au centre, ce qui donne une structure hiérarchique.
J'ai utilisé l'incorporation de Poincar gens de gensim pour intégrer un réseau de liaisons interprotéines dans des boules Poancare. Il a été constaté qu'au fur et à mesure que l'apprentissage progresse, les protéines avec moins de liaison sont placées dans la partie périphérique, tandis que les protéines qui servent de hubs restent dans la partie centrale et une structure hiérarchique est acquise. L'intégration de Poincarē semble être un bon moyen d'intégrer un réseau sans échelle.
Maximillian Nickel and Douwe Kiela, “Poincaré Embeddings for Learning Hierarchical Representations” genism Nuclear Receptor Signaling Atlas Malovannaya, A et al., "Analysis of the human endogenous coregulator complexome"