def patternSearch(fname="networks/6D_Malaria.txt",smallestparam=0,largestparam=46656,getMorseSet=fmg.all_FC,paramsstored=1,resultsfile='malariaresults.txt'): if paramsstored == 1: params = parseParams() else: params = getAllParams(fname,smallestparam,largestparam,getMorseSet) N=len(params) f=open(resultsfile,'w') for k,(p,m) in enumerate(params): print "Parameter {} of {}".format(k+1,N) if type(m) is tuple: for n in m: call(["dsgrn network {} analyze morseset {} {} >dsgrn_output.json".format(fname,n,p)],shell=True) patterns,matches=pm.callPatternMatch(writetofile=0,returnmatches=1) for q,c in zip(patterns,matches): f.write("Parameter: {}, Morseset: {}".format(p,n)+'\n') f.write("Pattern: {}".format(q)+'\n') f.write("Results: {}".format(c)+'\n') else: call(["dsgrn network {} analyze morseset {} {} >dsgrn_output.json".format(fname,m,p)],shell=True) patterns,matches=pm.callPatternMatch(writetofile=0,returnmatches=1) for q,c in zip(patterns,matches): f.write("Parameter: {}, Morseset: {}".format(p,m)+'\n') f.write("Pattern: {}".format(q)+'\n') f.write("Results: {}".format(c)+'\n') f.close()
def search(forcing=1): if forcing==1: onewayforcing() elif forcing==2: twowayforcing() else: print "Unrecognized input argument to search(). Aborting." return None pm.callPatternMatch()
def search(forcing=1): if forcing == 1: onewayforcing() elif forcing == 2: twowayforcing() else: print "Unrecognized input argument to search(). Aborting." return None pm.callPatternMatch()
def patternSearch(morseset=0,specfile="networks/5D_Model_B.txt",paramfile="5D_Model_B_FCParams.txt",resultsfile='results_5D_B.txt',printtoscreen=0,printparam=0,findallmatches=1,unique_identifier=0): subprocess.call(["dsgrn network {} domaingraph > dsgrn_domaincells_{:04d}.json".format(specfile,unique_identifier)],shell=True) R=open(resultsfile,'w',0) P=open(paramfile,'r') paramcount=1 for param in P.readlines(): param=param.split()[0] if printparam and paramcount%1000==0: print str(paramcount)+' parameters checked' paramcount+=1 # shell call to dsgrn to produce dsgrn_output.json, which is the input for the pattern matcher subprocess.call(["dsgrn network {} domaingraph json {} > dsgrn_domaingraph_{:04d}.json".format(specfile,int(param),unique_identifier)],shell=True) subprocess.call(["dsgrn network {} analyze morseset {} {} >dsgrn_output_{:04d}.json".format(specfile,morseset,int(param),unique_identifier)],shell=True) try: patterns,matches=patternmatch.callPatternMatch(fname_morseset='dsgrn_output_{:04d}.json'.format(unique_identifier),fname_domgraph='dsgrn_domaingraph_{:04d}.json'.format(unique_identifier),fname_domcells='dsgrn_domaincells_{:04d}.json'.format(unique_identifier),fname_patterns='patterns.txt',fname_results=resultsfile,writetofile=0,returnmatches=1,printtoscreen=printtoscreen,findallmatches=findallmatches) except ValueError: print 'Problem parameter is {}'.format(param) raise for pat,match in zip(patterns,matches): if findallmatches: R.write("Parameter: {}, Morseset: {}".format(param,morseset)+'\n') R.write("Pattern: {}".format(pat)+'\n') R.write("Results: {}".format(match)+'\n') else: R.write("Parameter: {}, Morseset: {}".format(param,morseset)+'\n') R.write("Pattern: {}".format(pat)+'\n') R.close() P.close()
def patternSearch(fname="networks/6D_Malaria.txt", smallestparam=0, largestparam=46656, getMorseSet=fmg.all_FC, paramsstored=1, resultsfile='malariaresults.txt'): if paramsstored == 1: params = parseParams() else: params = getAllParams(fname, smallestparam, largestparam, getMorseSet) N = len(params) f = open(resultsfile, 'w') for k, (p, m) in enumerate(params): print "Parameter {} of {}".format(k + 1, N) if type(m) is tuple: for n in m: call([ "dsgrn network {} analyze morseset {} {} >dsgrn_output.json" .format(fname, n, p) ], shell=True) patterns, matches = pm.callPatternMatch(writetofile=0, returnmatches=1) for q, c in zip(patterns, matches): f.write("Parameter: {}, Morseset: {}".format(p, n) + '\n') f.write("Pattern: {}".format(q) + '\n') f.write("Results: {}".format(c) + '\n') else: call([ "dsgrn network {} analyze morseset {} {} >dsgrn_output.json". format(fname, m, p) ], shell=True) patterns, matches = pm.callPatternMatch(writetofile=0, returnmatches=1) for q, c in zip(patterns, matches): f.write("Parameter: {}, Morseset: {}".format(p, m) + '\n') f.write("Pattern: {}".format(q) + '\n') f.write("Results: {}".format(c) + '\n') f.close()
def patternSearchSingle(parameter,morseset=0,specfile="networks/5D_Model_B.txt",resultsfile='results.txt',printtoscreen=0): R=open(resultsfile,'w',0) # shell call to dsgrn to produce dsgrn_output.json, which is the input for the pattern matcher subprocess.call(["dsgrn network {} domaingraph > dsgrn_domaincells.json".format(specfile)],shell=True) subprocess.call(["dsgrn network {} domaingraph json {} > dsgrn_domaingraph.json".format(specfile,int(parameter))],shell=True) subprocess.call(["dsgrn network {} analyze morseset {} {} >dsgrn_output.json".format(specfile,morseset,parameter)],shell=True) try: patterns,matches=patternmatch.callPatternMatch(writetofile=0,returnmatches=1,printtoscreen=printtoscreen) except ValueError: print 'Problem parameter is {}'.format(parameter) raise for pat,match in zip(patterns,matches): R.write("Parameter: {}, Morseset: {}".format(parameter,morseset)+'\n') R.write("Pattern: {}".format(pat)+'\n') R.write("Results: {}".format(match)+'\n') R.close()
def patternSearch_paramlist(networkfile,paramlist,resultsfile,patternstr,printtoscreen,findallmatches): domaincells_jsonstr=getJSONstring(networkfile,['domaingraph']) results_list=[] for info in paramlist: morsegraph,morseset,param = info.replace('|',' ').split() domaingraph_jsonstr=getJSONstring(networkfile,['domaingraph', 'json',param]) morseset_jsonstr=getJSONstring(networkfile,['analyze', 'morseset', morseset, param]) try: patterns,matches=patternmatch.callPatternMatch(morseset_jsonstr,domaingraph_jsonstr,domaincells_jsonstr,patternstr,resultsfile,writetofile=0,returnmatches=1,printtoscreen=printtoscreen,findallmatches=findallmatches) for pat,match in zip(patterns,matches): if findallmatches: results_list.append("Parameter: {}, Morse Graph: {}, Morse Set: {}, Pattern: {}, Results: {}".format(param,morsegraph,morseset,pat,match)+'\n') else: results_list.append("Parameter: {}, Morse Graph: {}, Morse Set: {}, Pattern: {}".format(param,morsegraph,morseset,pat)+'\n') except Exception as e: print 'Problem parameter is {}'.format(param) print traceback.format_exception_only(type(e),e) sys.stdout.flush() with open(resultsfile,'w',0) as R: for line in results_list: R.write(line)