import networkx as nx import matplotlib.pyplot as plt import math as mth mu=1 aminodes={} abc={1: 'A', 2: 'G', 3: 'U', 4:'C'} mu=pow(4,3) cnt=1 for i in range (1,5): for j in range (1,5): for k in range (1,5): amn=abc[i]+abc[j]+abc[k] aminodes[cnt]=amn cnt=cnt+1 #print amn #print aminodes #Aminoacid (Color) Association. ACC={'Phe': ['UUU', 'UUC'], 'Leu': ['UUA','UUG','CUU','CUC','CUA','CUG'], 'Ile': ['AUU', 'AUC', 'AUA'], 'Met': ['AUG'], 'Val': ['GUU', 'GUC','GUA','GUG'], 'Ser': ['UCU','UCC','UCA','UCG','AGU','AGC'], 'Pro': ['CCU','CCC','CCA','CCG'], 'Thr': ['ACU','ACC','ACA','ACG'], 'Ala': ['GCU','GCC','GCA','GCG'], 'Tyr': ['UAU','UAC'], 'Stop':['UAA','UAG','UGA'], 'Cys': ['UGU','UGC'], 'Trp': ['UGG'], 'His': ['CAU','CAC'], 'Gln': ['CAA','CAG'], 'Arg': ['CGU','CGC','CGA','CGG','AGA','AGG'], 'Asn': ['AAU','AAC'], 'Lys': ['AAA','AAG'], 'Asp': ['GAU','GAC'], 'Glu': ['GAA','GAG'], 'Gly': ['GGU','GGC','GGA','GGG']} #print len(ACC) ACOL={} ALABELX={} for i in aminodes.keys(): asrc=aminodes[i] fl=0 dx=1.0 for j in ACC.keys(): for k in ACC[j]: atgt=k if asrc==atgt: ACOL[i]=dx ALABELX[i]=j fl=1 break if fl==1: break dx+=1.0 #print aminodes #print ALABELX #print ACOL SUMMARY={} for i in aminodes.keys(): zk=[] zk.append(aminodes[i]) zk.append(ALABELX[i]) zk.append(ACOL[i]) SUMMARY[i]=zk #print len(ACC) #print ACC #print SUMMARY AMADJ={} for i in aminodes.keys(): ik=[] x1=aminodes[i] for j in aminodes.keys(): x2=aminodes[j] #print x1 #print x2 hd=0 for sx, sy in zip(x1,x2): if sx!=sy: hd+=1 #print hd if(hd==1): ik.append(j) #raw_input() AMADJ[i]=ik #print AMADJ import networkx as nx import matplotlib.pyplot as plt import math as mth #print nx.__version__ G=nx.Graph() for i in AMADJ.keys(): ni=i mu=AMADJ[i] #print("Values: ") for j in mu: G.add_edge(ni,j) #pos=nx.spring_layout(G, scale=1, iterations=100) #pos=nx.spring_layout(G, scale=1, iterations=100) pos={} Pi=mth.pi N=0 for i in ACC.keys(): xo=15*mth.sin(N*(2*Pi/21)) yo=15*mth.cos(N*(2*Pi/21)) #print i #print ACC[i] zx=ACC[i] LK=len(zx) px=[] #print len(zx) for j in zx: for k in SUMMARY.keys(): vx=SUMMARY[k][0] #print vx if vx==j: #print vx px.append(k) #print px jn=0 for kx in px: x=1.3*mth.sin(jn*(2*Pi)/LK) y=1.3*mth.cos(jn*(2*Pi)/LK) #mu=np.array((x+xo),(y+yo)) pos[kx]=[x+xo,y+yo] #array() jn=jn+1 #raw_input() N=N+1 #print pos plt.figure(figsize=(20,20)) plt.axis('off') plt.axis('equal') nx.draw_networkx_nodes(G,pos,node_size=1000, label='F',alpha=0.7,node_color=ACOL.values()) nx.draw_networkx_labels(G,pos,labels=aminodes,font_size=10) nx.draw_networkx_edges(G,pos) #nx.draw_networkx(G,pos) nx.write_adjlist(G,"aminodesadj.dat") #fin=open("aminodesadj.dat","r") #fout=open("amncytnet.dat","w") #line=fin.readline() #while line: # r=line.split() # print r #while line: # r=line.split() # print r # raw_input("nxt") # for i in r: # if (int(i)!=int(r[0])): # fout.write("%d %d\n"%(int(r[0]),(int(i))) ##fout.write(" %s"%'pp') #fout.write(" %d"%int(i)) #fout.write("\n") # line=fin.readline() #fout.close() #fin.close() #raw_input fout=open("labels.dat","w") for i in aminodes.keys(): fout.write("%d %s\n"%(i, aminodes[i])) fout.close() fout=open("amicol.dat","w") for i in aminodes.keys(): fout.write("%d %s\n"%(i, ACOL[i])) fout.close() #print AMADJ #print aminodes #print ACC #print SUMMARY nsets={} #raw_input() for i in ACC.keys(): nseti=[] for j in SUMMARY.keys(): mu=SUMMARY[j][1] #print mu if mu==i: nseti.append(j) nsk='ns'+str(i) nsets[nsk]=nseti #print nsets Sizes=[] for h in nsets.keys(): Sizes.append(len(nsets[h])) #print nsets #print Sizes import numpy as np xmin=min(Sizes) xmax=max(Sizes) #Xn=np.linspace(xmin-1,xmax+1) z,h=np.histogram(Sizes,6,range=(xmin,xmax+1)) #print z #print h hx=[] for k in range (1,len(h)): hx.append(0.5+k) #print hx j=1 NG={} for n in nsets.keys(): a='ns'+str(j) NG[a]=G.subgraph(nsets[n]) j=j+1 Un=nx.Graph() for z in NG.keys(): Un=nx.union(NG[z],Un) #print Un.nodes() plt.figure(figsize=(20,20)) plt.axis('off') plt.axis('equal') nx.draw_networkx_nodes(Un,pos,node_size=1000, label='F',alpha=0.7,node_color=ACOL.values()) nx.draw_networkx_labels(Un,pos,labels=aminodes,font_size=10) nx.draw_networkx_edges(Un,pos) adjx={} k=1 for n in nsets.keys(): adjx[k]=n k=k+1 print adjx #print nsets #print adjx ANxNy={} posk={} colk={} i=1 LK=len(nsets[adjx[i]]) fnm='NNETS/'+str(i)+'/LABELS.dat' fout=open(fnm,'w') for r in aminodes.keys(): fout.write('%d %s\n'%(int(r),aminodes[r])) fout.close() jn=0 cl=[] for ix in nsets[adjx[i]]: #print ix cl.append(ACOL[ix]) x=1.3*mth.sin(jn*(2*Pi)/LK) y=1.3*mth.cos(jn*(2*Pi)/LK) jn=jn+1 #mu=np.array((x+xo),(y+yo)) posk[ix]=[x,y] colk[adjx[i]]=cl #print nsets #raw_input() #print nsets[adjx[i]] #print colk[adjx[i]] #print posk N=0 cl=[] for j in adjx.keys(): #print j #raw_input() #print adjx[j] if adjx[j]!=adjx[i]: Xo=15*mth.sin(N*(2*Pi/20)) Yo=15*mth.cos(N*(2*Pi/20)) LK=len(nsets[adjx[j]]) cl=[] jn=0 for jx in nsets[adjx[j]]: cl.append(ACOL[jx]) x=1.3*mth.sin(jn*(2*Pi)/LK) y=1.3*mth.cos(jn*(2*Pi)/LK) jn=jn+1 posk[jx]=[x+Xo,y+Yo] colk[adjx[j]]=cl N=N+1 ANxNy[j]=G.subgraph(nsets[adjx[i]]+nsets[adjx[j]]) qs1=adjx[i].replace("ns","") qs1="NNETS/"+str(i)+"/" qs2=adjx[j].replace("ns","") qs=qs1+qs2+".gml" #print qs nx.write_gml(ANxNy[j],qs) #print colk plt.figure(figsize=(20,20)) plt.axis('off') plt.axis('equal') nx.draw_networkx_nodes(Un,posk,node_size=1000, label='F',alpha=0.7,node_color=ACOL.values()) nx.draw_networkx_labels(Un,posk,labels=aminodes,font_size=10) nx.draw_networkx_edges(Un,posk) #print len(adjx.keys()) #print adjx.keys() #print len(ANxNy.keys()) #print ANxNy.keys() #print nsets[adjx[i]] #print colk[adjx[i]] #raw_input() ################## #plt.figure(figsize=(20,20)) #plt.axis('off') #plt.axis('equal') #nx.draw_networkx_nodes(ANxNy[2],posk,nodelist=nsets[adjx[i]], node_size=1000,alpha=0.7,node_color=colk[adjx[i]]) #nx.draw_networkx_labels(ANxNy[2],posk,labels=aminodes,font_size=10) for x in ANxNy.keys(): # nx.draw_networkx_labels(ANxNy[x],posk,labels=aminodes,font_size=10) nx.draw_networkx_edges(ANxNy[x],posk) for i in range(2,1+len(adjx.keys())): #print i #print aminodes ANxNy={} #print aminodes posk={} colk={} #i=1 LK=len(nsets[adjx[i]]) fnm='NNETS/'+str(i)+'/LABELS.dat' fout=open(fnm,'w') for r in aminodes.keys(): fout.write('%d %s\n'%(int(r),aminodes[r])) fout.close() jn=0 cl=[] for ix in nsets[adjx[i]]: #print ix cl.append(ACOL[ix]) x=1.3*mth.sin(jn*(2*Pi)/LK) y=1.3*mth.cos(jn*(2*Pi)/LK) jn=jn+1 #mu=np.array((x+xo),(y+yo)) posk[ix]=[x,y] colk[adjx[i]]=cl N=0 cl=[] for j in adjx.keys(): #print j #raw_input() #print adjx[j] if adjx[j]!=adjx[i]: Xo=15*mth.sin(N*(2*Pi/20)) Yo=15*mth.cos(N*(2*Pi/20)) LK=len(nsets[adjx[j]]) cl=[] jn=0 for jx in nsets[adjx[j]]: cl.append(ACOL[jx]) x=1.3*mth.sin(jn*(2*Pi)/LK) y=1.3*mth.cos(jn*(2*Pi)/LK) jn=jn+1 posk[jx]=[x+Xo,y+Yo] colk[adjx[j]]=cl N=N+1 ANxNy[j]=G.subgraph(nsets[adjx[i]]+nsets[adjx[j]]) qs1=adjx[i].replace("ns","") qs1="NNETS/"+str(i)+"/" qs2=adjx[j].replace("ns","") qs=qs1+qs2+".gml" #print qs nx.write_gml(ANxNy[j],qs) plt.figure(figsize=(20,20)) plt.axis('off') plt.axis('equal') nx.draw_networkx_nodes(Un,posk,node_size=1000, label='F',alpha=0.7,node_color=ACOL.values()) nx.draw_networkx_labels(Un,posk,labels=aminodes,font_size=10) nx.draw_networkx_edges(Un,posk) ################## for x in ANxNy.keys(): nx.draw_networkx_edges(ANxNy[x],posk) NNETFILE='AMNADJ.dat' GAM=nx.Graph() fin=open(NNETFILE,'r') line=fin.readline() #mu=line.split() #print mu[0] #print mu[1] while line: mu=line.split() e=(mu[0],mu[1]) GAM.add_edge(*e) line=fin.readline() fin.close() #print 'hola' print GAM.nodes() DG=nx.degree(GAM) DGH=nx.degree_histogram(GAM) r=nx.degree_pearson_correlation_coefficient(GAM) knni=nx.average_neighbor_degree(GAM) knn=nx.k_nearest_neighbors(GAM) avdegk=nx.average_degree_connectivity(GAM) kx=[] Pk=[] for index, item in enumerate(DGH): kx.append(int(index)) Pk.append(int(item)) #print int(index) #print int(item) krx=[] NNk=[] for i in knn.keys(): krx.append(float(i)) NNk.append(float(knn[i])) print r fig, axes = plt.subplots(1, 1, figsize=(20, 8)) axes.plot(kx, Pk, 'g*-') axes.set_ylabel("P(k)",fontsize=26) axes.tick_params(axis='x', labelsize=30) axes.tick_params(axis='y', labelsize=30) axes.set_xlabel("Degree k",fontsize=26) axes.set_xlim([0,15]) axes.set_ylim([0,10]) fig, axes = plt.subplots(1, 1, figsize=(20, 8)) axes.tick_params(axis='x', labelsize=30) axes.tick_params(axis='y', labelsize=30) axes.plot(krx, NNk,'g*-') axes.set_ylabel("NN(k)",fontsize=26) axes.set_xlabel("Degree k",fontsize=26) axes.set_xlim([0,21]) plt.figure(figsize=(20,15)) plt.axis('off') plt.axis('equal') #nx.draw_networkx_nodes(Un,posk,node_size=1000, label='F',alpha=0.7,node_color=ACOL.values()) #nx.draw_networkx_labels(Un,posk,labels=aminodes,font_size=10) nx.draw_networkx(GAM,node_size=900)