# -*- coding: utf-8 -*- import os, sys import re import numpy as np from Bio import pairwise2 import networkx as nx import matplotlib.pyplot as plt def network_project(): gene=[] header=[] lecture='' i=0 j=0 file='exemple_sequence.txt' lecture=open(file,"r") seq='' for line in lecture: sequence=len(re.findall(r"[>]",line)) if(sequence>0): gene.append(seq) seq='' sequence=0 header.append(line[1:-1]) i=i+1 else: seq=seq+line[:-1] gene.append(seq) lecture.close() score=[] for i in range(len(gene)): for j in range((i+1),len(gene)): score.append(pairwise2.align.globalms(gene[i],gene[j], 3, -2, -1, -.5,score_only=True)) liste=[] seuil=(np.mean(score)+0.05*np.std(score)) s=0 edge_labels={} for i in range(len(gene)): for j in range((i+1),len(gene)): if(score[s]>seuil): liste.append((header[i],header[j])) edge_labels[(header[i],header[j])]=score[s] s=s+1 G=nx.Graph() G.add_nodes_from(header) G.add_edges_from(liste) pos=nx.spring_layout(G) node_s=[] t=0 for t in range(len(gene)): node_s.append(20*np.log(len(seq[t]))) nx.draw_networkx_nodes(G,pos,node_color='green',label=True,alpha=1,node_size=node_s) Width=dict(edge_labels) for key,value in Width.items() : Width[key] = np.log10(value)/2 nx.draw_networkx_edges(G,pos,width=Width.values(),style='solid',edge_color='red',alpha=1) nx.draw_networkx_edge_labels(G,pos,edge_labels=edge_labels,font_size=2,alpha=0.5,font_color='black') nx.draw_networkx_labels(G,pos,font_size=3,font_color='blue') namefordoc=input('Nom du PDF sans .pdf ?\n') plt.savefig(namefordoc+'.pdf')