hdiff output

r31241/dijkstra_test.py 2017-01-21 10:36:21.434250000 +0000 r31240/dijkstra_test.py 2017-01-21 10:36:22.474250000 +0000
  1: #!/usr/bin/env python  1: #!/usr/bin/env python
  2: import networkx as nx  2: import networkx as nx
  3: import numpy as np  3: import numpy as np
  4: import sys  4: import sys
  5: import math 
  6:   5: 
  7: def duplicate_test(graph,min1,min2):  6: def duplicate_test(graph,min1,min2):
  8:     return min1 in G.neighbors(min2)  7:     return min1 in G.neighbors(min2)
  9: if len(sys.argv) < 4:  8: if len(sys.argv) < 3:
 10:    print 'dijkstra_test.py minA minBi npairs ([True/False] for debugging)'  9:    print 'dijkstra_test.py minA minB ([True/False] for debugging)'
 11:    exit() 10:    exit()
 12:     11:    
 13: A = int(sys.argv[1]) 12: A = int(sys.argv[1])
 14: B = int(sys.argv[2]) 13: B = int(sys.argv[2])
 15: npairs = int(sys.argv[3]) 14: if len(sys.argv) > 3:
 16: if len(sys.argv) == 5:  15:    debug = sys.argv[3]
 17:    debug = sys.argv[4] 
 18: else: 16: else:
 19:    debug = False 17:    debug = False
 20:  18: 
 21: #default for input files 19: #default for input files
 22: min_f = "min.data" 20: min_f = "min.data"
 23: ts_f = "ts.data" 21: ts_f = "ts.data"
 24: paird_f = "pairdist" 22: paird_f = "pairdist"
 25: pairl_f = "pairlist" 23: pairl_f = "pairlist"
 26:  24: 
 27: print 25: print
 35: print '##############################################################################' 33: print '##############################################################################'
 36: print 34: print
 37:  35: 
 38: #read files into arrays 36: #read files into arrays
 39: mindata = np.genfromtxt(min_f , dtype="float,float,int,float,float,float") 37: mindata = np.genfromtxt(min_f , dtype="float,float,int,float,float,float")
 40: tsdata = np.genfromtxt(ts_f , dtype="float,float,int,int,int,float,float,float") 38: tsdata = np.genfromtxt(ts_f , dtype="float,float,int,int,int,float,float,float")
 41: paird = np.genfromtxt(paird_f , dtype = float) 39: paird = np.genfromtxt(paird_f , dtype = float)
 42: pairl = np.genfromtxt(pairl_f , dtype = int) 40: pairl = np.genfromtxt(pairl_f , dtype = int)
 43:  41: 
 44: #reshape paird and pairl to 100 entries per minima as it ought to be (genfromtxt reads it as 10x10 for each minima) 42: #reshape paird and pairl to 100 entries per minima as it ought to be (genfromtxt reads it as 10x10 for each minima)
 45: paird.shape = paird.shape[0]/(npairs/10),npairs 43: paird.shape = paird.shape[0]/10,100
 46: pairl.shape = pairl.shape[0]/(npairs/10),npairs 44: pairl.shape = pairl.shape[0]/10,100
 47:  45: 
 48: if (paird.shape[0] != pairl.shape[0]) or (paird.shape[0] != mindata.shape[0]): 46: if (paird.shape[0] != pairl.shape[0]) or (paird.shape[0] != mindata.shape[0]):
 49:    raise Exception('Number of minima and number of pair entries are not equal.') 47:    raise Exception('Number of minima and number of pair entries are not equal.')
 50:     48:    
 51:  49: 
 52: nmin = mindata.shape[0] 50: nmin = mindata.shape[0]
 53: nts = tsdata.shape[0] 51: nts = tsdata.shape[0]
 54:  52: 
 55: #print 'There are',nmin,'minima and',nts,'transition states.' 53: #print 'There are',nmin,'minima and',nts,'transition states.'
 56:  54: 
 71:              print 'Read TS between minima',tsdata[ts][3],'and',tsdata[ts][4] 69:              print 'Read TS between minima',tsdata[ts][3],'and',tsdata[ts][4]
 72:    # else: 70:    # else:
 73:       # print 'TS',ts+1,'connects minimum',tsdata[ts][3],'with itself' 71:       # print 'TS',ts+1,'connects minimum',tsdata[ts][3],'with itself'
 74:  72: 
 75: #add egdes for every pair in pairl and use paird as weight 73: #add egdes for every pair in pairl and use paird as weight
 76:  74: 
 77: for minima in xrange(nmin): 75: for minima in xrange(nmin):
 78:     for entry in xrange(len(pairl[minima])): 76:     for entry in xrange(len(pairl[minima])):
 79:         if not duplicate_test(G , minima + 1 , pairl[minima][entry]): 77:         if not duplicate_test(G , minima + 1 , pairl[minima][entry]):
 80:            G.add_edge(minima + 1 , pairl[minima][entry] , weight = paird[minima][entry]) 78:            G.add_edge(minima + 1 , pairl[minima][entry] , weight = paird[minima][entry])
 81:           # G.add_edge(minima + 1 , pairl[minima][entry] , weight = math.exp(paird[minima][entry])) 
 82:            if debug: 79:            if debug:
 83:               print 'Added edge between minima',minima + 1,'and',pairl[minima][entry] 80:               print 'Added edge between minima',minima + 1,'and',pairl[minima][entry]
  81: 
 84: try: 82: try:
 85:    wtot = nx.dijkstra_path_length(G,A,B) 83:    wtot = nx.dijkstra_path_length(G,A,B)
 86:    print 'The shortest dijkstra path has weight',wtot 84:    print 'The shortest dijkstra path has weight',wtot
 87:    path = nx.dijkstra_path(G,A,B) 
 88:    sum_ = 0  
 89:    for node in xrange(len(path)-1): 
 90:       sum_ += math.exp(G[path[node]][path[node+1]]['weight']) 
 91:       print '%6d %6d %12.4f  %16.8g' %(path[node], path[node+1], G[path[node]][path[node+1]]['weight'], sum_) 
 92: except nx.exception.NetworkXNoPath: 85: except nx.exception.NetworkXNoPath:
 93:    print 'The A and B sets are not connected by ts.data and pairlist.' 86:    print 'The A and B sets are not connected by ts.data and pairlist.'


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0