#! /usr/bin/env python # freqStrInPaths.py # P.Clote # Computes frequency of structures in paths sampled by Ivan's code import sys,os TAG = 'barrier' N = len(TAG) def printDict(D): keys = D.keys() keys.sort() for k in keys: print '%s\t%f' % (k,D[k] ) def cmp( (a,b),(x,y) ): if by or (b==y and a>x): return +1 return 0 def dict2list(D): L = [] for key in D.keys(): L.append( (key,D[key]) ) L.sort(cmp) L.reverse() return L def aux(filename): D = {}; num = 0 file = open(filename) line = file.readline() while line: if line[:N] == TAG: num += 1 else: secstr = line.strip() if secstr not in D.keys(): D[secstr] = 1.0 else: D[secstr]+= 1 line = file.readline() file.close() for k in D.keys(): D[k] = D[k]/num return D def main(filename): D = aux(filename) # printDict(D) L = dict2list(D) print "Structures, reverse sorted by frequency" for (x,y) in L: print "%s\t%f" % (x,y) if __name__ == '__main__': if len(sys.argv) < 2: print "Usage: %s filename" % sys.argv[0] sys.exit(1) filename = sys.argv[1] main(filename)