diff options
Diffstat (limited to 'structure/reinforcement/reinforcement.py')
| -rw-r--r-- | structure/reinforcement/reinforcement.py | 61 | 
1 files changed, 61 insertions, 0 deletions
diff --git a/structure/reinforcement/reinforcement.py b/structure/reinforcement/reinforcement.py new file mode 100644 index 0000000..5939e59 --- /dev/null +++ b/structure/reinforcement/reinforcement.py @@ -0,0 +1,61 @@ +import networkx as nx +import sys + + +if __name__ == "__main__": + +	 +	if len(sys.argv) < 6: +	    print "Usage: %s <layer1> <layer2> <N bins> <min_value> <max_value>" % sys.argv[0] +	    sys.exit(1) + + +	filename_a = sys.argv[1] +	filename_b = sys.argv[2] +	 +	intervals=int(sys.argv[3]) +	minvalue=float(sys.argv[4]) +	maxvalue=float(sys.argv[5]) +	 +	 +	tot_a = [] +	pos_a = [] +	for t in range (intervals): +		tot_a.append(0) +		pos_a.append(0) + +	 + +	 +	fa=open(filename_a, 'r') +	Ga=nx.read_adjlist(fa) +	 +	 +	fb=open(filename_b, 'r') +	Gb=nx.read_weighted_edgelist(fb) +	 +	 + +	 +	for u,v in Gb.edges(): +		Gbw=Gb[u][v]['weight'] +		for i in range (intervals): +			a=minvalue+float(maxvalue-minvalue)*float(i)/intervals +			b=minvalue+float(maxvalue-minvalue)*float(i+1)/intervals +			if (Gbw>a and Gbw<b): +				tot_a[i]+=1 +				break +		if (Ga.has_edge(u,v)==True): +			pos_a[i]+=1 + +	freq_a=[] +	for i in range (intervals): +		if (tot_a[i]>0): +			freq_a.append(float(pos_a[i])/tot_a[i]) +		else: +			freq_a.append(0) +	print "#bin_minvalue bin_maxvalue frequence" +	for i in range (intervals): +		a=minvalue+float(maxvalue-minvalue)*float(i)/intervals +		b=minvalue+float(maxvalue-minvalue)*float(i+1)/intervals +		print a, b, freq_a[i]  | 
