hdiff output

r31180/dijkstra_test.py 2016-09-22 14:30:08.244015628 +0100 r31179/dijkstra_test.py 2016-09-22 14:30:08.492018957 +0100
  1: #!/usr/bin/env python  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/SCRIPTS/PATHSAMPLE/dijkstra_test.py' in revision 31179
  2: import networkx as nx 
  3: import numpy as np 
  4: import sys 
  5:  
  6: def duplicate_test(graph,min1,min2): 
  7:     return min1 in G.neighbors(min2) 
  8: if len(sys.argv) < 3: 
  9:    print 'dijkstra_test.py minA minB ([True/False] for debugging)' 
 10:    exit() 
 11:     
 12: A = int(sys.argv[1]) 
 13: B = int(sys.argv[2]) 
 14: if len(sys.argv) > 3: 
 15:    debug = sys.argv[3] 
 16: else: 
 17:    debug = False 
 18:  
 19: #default for input files 
 20: min_f = "min.data" 
 21: ts_f = "ts.data" 
 22: paird_f = "pairdist" 
 23: pairl_f = "pairlist" 
 24:  
 25: print 
 26: print '##############################################################################' 
 27: print '|Script to test whether A and B are connected by pairlist and ts.data        |' 
 28: print '|If there is no connection, PATHSAMPLE will not be able attempt connections  |' 
 29: print '|other than connecting A and B directly.                                     |' 
 30: print '|If there is a connection, the weight given is the sum of the distances on   |'  
 31: print '|the shortest dijkstra path without a weighting function.                    |' 
 32: print '|Written by Konstantin Roeder (kr366)                                        |' 
 33: print '##############################################################################' 
 34: print 
 35:  
 36: #read files into arrays 
 37: mindata = np.genfromtxt(min_f , dtype="float,float,int,float,float,float") 
 38: tsdata = np.genfromtxt(ts_f , dtype="float,float,int,int,int,float,float,float") 
 39: paird = np.genfromtxt(paird_f , dtype = float) 
 40: pairl = np.genfromtxt(pairl_f , dtype = int) 
 41:  
 42: #reshape paird and pairl to 100 entries per minima as it ought to be (genfromtxt reads it as 10x10 for each minima) 
 43: paird.shape = paird.shape[0]/10,100 
 44: pairl.shape = pairl.shape[0]/10,100 
 45:  
 46: if (paird.shape[0] != pairl.shape[0]) or (paird.shape[0] != mindata.shape[0]): 
 47:    raise Exception('Number of minima and number of pair entries are not equal.') 
 48:     
 49:  
 50: nmin = mindata.shape[0] 
 51: nts = tsdata.shape[0] 
 52:  
 53: #print 'There are',nmin,'minima and',nts,'transition states.' 
 54:  
 55: #create graph and add in all minima and transition states as edges with weight 0.0 
 56: G = nx.Graph() 
 57:  
 58: for minima in xrange(nmin): 
 59:     G.add_node(minima + 1,emin=mindata[minima][0]) 
 60:     if debug: 
 61:        print 'Read minimum' , minima + 1 
 62:  
 63:  
 64: for ts in xrange(nts): 
 65:     if (tsdata[ts][3] != tsdata[ts][4]): 
 66:        if not duplicate_test(G,tsdata[ts][3],tsdata[ts][4]): 
 67:           G.add_edge(tsdata[ts][3],tsdata[ts][4],weight=0.0,ets=tsdata[ts][0]) 
 68:           if debug: 
 69:              print 'Read TS between minima',tsdata[ts][3],'and',tsdata[ts][4] 
 70:    # else: 
 71:       # print 'TS',ts+1,'connects minimum',tsdata[ts][3],'with itself' 
 72:  
 73: #add egdes for every pair in pairl and use paird as weight 
 74:  
 75: for minima in xrange(nmin): 
 76:     for entry in xrange(len(pairl[minima])): 
 77:         if not duplicate_test(G , minima + 1 , pairl[minima][entry]): 
 78:            G.add_edge(minima + 1 , pairl[minima][entry] , weight = paird[minima][entry]) 
 79:            if debug: 
 80:               print 'Added edge between minima',minima + 1,'and',pairl[minima][entry] 
 81:  
 82: try: 
 83:    wtot = nx.dijkstra_path_length(G,A,B) 
 84:    print 'The shortest dijkstra path has weight',wtot 
 85: except nx.exception.NetworkXNoPath: 
 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