#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Fri Aug 31 13:51:21 2018 @author: matias """ import networkx as nx import numpy as np from matplotlib import pyplot as plt from lectura import ldata dolphin = nx.read_gml('tc01_data/new_dolphins.gml') genders = ldata('tc01_data/dolphinsGender.txt') color = [] for i in range(0, len(genders)): dolphin.add_node(genders[i][0], gender=genders[i][1]) if genders[i][1] == 'm': color.append('blue') elif genders[i][1] == 'f': color.append('red') else: color.append('green') # #fig, axes= plt.subplots(2,2) #axes = axes.flatten() #nx.draw_shell(dolphin, with_labels=True, node_color=color, node_size = 10 # , ax=axes[0])
import networkx as nx import numpy as np from matplotlib import pyplot as plt import pandas as pd from os.path import join as osjoin import sys sys.path.append('./Tp2/') from agregar_esencialidad import agregar_esencialidad_dict from histograma import histograma from funciones_de_desarme_ejc import (agregar_centralidad, desarme_por_centralidad, desarme_por_centralidad_flow, desarme_por_centralidad_random) #%% apms = ldata('Tp2/tc02Data/yeast_AP-MS.txt') y2h = ldata('Tp2/tc02Data/yeast_Y2H.txt') lit = ldata('Tp2/tc02Data/yeast_LIT.txt') lit_r = ldata('Tp2/tc02Data/yeast_LIT_Reguly.txt') lit_r = [fila[:2] for fila in lit_r[1:]] g_apms = nx.Graph() g_apms.add_edges_from(apms) g_lit = nx.Graph() g_lit.add_edges_from(lit) g_lit_reg = nx.Graph()
metodos = [ "fastgreedy", "eigenvector", "edge_betweenness", "louvain", "walktrap", "infomap", "label_prop" ] tabla = np.zeros([len(metodos), len(metodos)]) for i in range(len(metodos)): for j in range(len(metodos)): tabla[i, j] = round(I_M(dolph, metodos[i], metodos[j]), 4) import copy tabla2 = copy.deepcopy(tabla) tabla2 = (tabla + np.transpose(tabla)) / 2 cuadro = pd.DataFrame(tabla2, columns=metodos, index=metodos) genders = dict(ldata('Tp3/dolphinsGender.txt')) # Agrego los sexos a los dicts de cada delfín for nodo, dict_nodo in dict(dolph.nodes).items(): dict_nodo['gender'] = genders[nodo] # agrego el sexo del delfín a su dict # print('Key = {}, Value = {}'.format(nodo, dict_nodo)) # para chequear que anda tabla = np.zeros(len(metodos)) for i in range(len(metodos)): tabla[i] = I_M(dolph, 'asd', metodos[i], genero=True) np.save('tabla_info_mutua_generos', tabla) cuadro = pd.DataFrame(tabla, columns=['Genero'], index=metodos) #%% # ============================================================================= # MATRIZ CONFUSION / MATRIX DE PRESICIONES # =============================================================================
p = fisher_exact(table)[1] pfisher[j, i] = p # Rellenamos sobrerrep if pfisher[j, i] >= thres: sobrerrep[j, i] = 0 else: nclust_efectivo = hembras_encluster + machos_encluster hembras_porazar = nclust_efectivo * n_hembras / ntot_efectivo if hembras_encluster > hembras_porazar: sobrerrep[j, i] = 1 else: sobrerrep[j, i] = 2 sobrerrep[np.isnan(sobrerrep)] = -1 return pfisher, sobrerrep particiones = np.load( 'Tp3/tc03Data/Ej_b_particiones_tomi.npz')['salida_grafo_original'] genders = dict(ldata('Tp1/tc01_data/dolphinsGender.txt')) pfisher, sobrerrep = calcular_fisher(particiones, genders, thres=0.05) plot_matrix(pfisher, columnas=nombres_metodos, titulo='p-valores (test de Fisher exacto)', ylabel='Comunidad') plot_matrix(pfisher, columnas=nombres_metodos, titulo='p-valores (test de Fisher exacto)', ylabel='Comunidad', sobrerrep=sobrerrep) #%%
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Fri Aug 24 18:06:47 2018 @author: matias """ from lectura import ldata import networkx as nx import numpy as np from matplotlib import pyplot as plt apms = ldata('Tp1/tc01_data/yeast_AP-MS.txt') lit = ldata('Tp1/tc01_data/yeast_LIT.txt') y2h = ldata('Tp1/tc01_data/yeast_Y2H.txt') #%% def es_dirigido(data): """data debe ser una lista de enlaces (tuplas). Si el resultado es 0, entonces es no dirigido; si es distinto de cero, es dirigido. Esta función implementa una manera de inferir si un grafo es dirigido o no a partir de cómo se presentan sus enlaces en una lista; sin embargo este criterio no es infalible. De hecho, nos fue revelado que las 3 redes consideradas en este ejercicio son efectivamente no dirigidas, lo cual tiene sentido pues se trata de interacciones entre proteínas en las cuales no es evidente qué significado podría tener la direccionalidad."""
""" colores_posibles = [b for (a,b) in matplotlib.colors.cnames.items()] colores_random = np.random.choice(np.arange(len(colores_posibles)), size=len(lista), replace=False) nodos = list(g.nodes()) colores = list(np.zeros(len(nodos))) for i in range(len(lista)): for j in range(len(nodos)): index = colores_random[i] if nodos[j] in lista[i]: colores[j] = colores_posibles[index] return colores #%% Punto 1 wiki = ldata('Final/links.tsv') g_wiki = nx.Graph() g_wiki.add_edges_from(wiki) #%% wiki_infomap = calcular_particion(g_wiki) wiki_infomap_color = comunidad_a_color(g_wiki, wiki_infomap) wiki_fastgreedy = calcular_particion(g_wiki, method = 'fastgreedy') wiki_fastgreedy_color = comunidad_a_color(g_wiki, wiki_fastgreedy) #%%Ploteamos la red fig, ax = plt.subplots() plt.sca(ax) ax.set_title('Wikipedia') #nx.draw(g_wiki, node_color = wiki_infomap_color, node_size = 10) nx.draw_spring(g_wiki, node_color = wiki_fastgreedy_color, node_size = 10, with_labels=True)
# -*- coding: utf-8 -*- """ Created on Fri Oct 5 18:04:22 2018 @author: Gabo """ from lectura import ldata ess = ldata('tc02Data/Essential_ORFs_paperHe.txt')