interactions = networks[letter]['interactions']
    edges = interactions.keys()
    thresholds = networks[letter]['thresholds']
    IG = nx.DiGraph()
    IG.add_edges_from(edges)
                
    mc = dict_to_model(interactions, thresholds=thresholds, add_morphogene=True)
    smallmc = dict_to_model(interactions, thresholds=thresholds, add_morphogene=False)

    lpss = mc._psc._localParameterSets
    print len(mc._psc), "parameter sets."

    gpss = mc._psc.get_parameterSets()
    countaccepted = 0
    countrejected = 0
    for gps in gpss:
        #print gps
        subgps = dict((combi, encode_gps_full(subparset(gps, is_m1_in=combi[0], is_m2_in=combi[1]))) for combi in combis)
        parameter_set_IG_list = [decode_gps_full(subgps[combi]) for combi in combis]
        parameter_sets = [elem[0] for elem in parameter_set_IG_list]
        accepted = all(filter_byAL(smallmc, parameter_sets[i], ALformulas[i]) for i in range(3))*1
        if accepted:
            print "accepting:", gps
            export_STG(mc, gps, filename="_nonboolean_"+letter+"_"+encode_gps(gps, base=10)+".gml", initialRules=None)
            countaccepted += 1
        else:
            print "rejecting:", gps
            countrejected += 1
    print "accepted:", countaccepted
    print "rejected:", countrejected
        
            print net #, networks[net]['interactions']
            graph_number = lookup_graph_number(networks[net]['interactions'])
            iso_graph_number = lookup_iso_rep(graph_number) 
            print iso_graph_number 
            print crs[str(iso_graph_number)]

    print "========================================="
    print "AL model checking"
    crs = shelve.open(combined_results_shelvenames[0])
    numbers = {7747:'A', 7423:'B', 7969:'E', 9349:'D', 14284:'F'} # TODO: this should be generated by the above loop (simple)
    combis = [(False, False), (True, False), (False, True)] # low, medium, high

    ALformulas = ["?(left: left.frozen(gg)&left.max(gg)=0)", "?(middle: middle.frozen(gg)&middle.min(gg)=1)",
                  "?(right: right.frozen(gg)&right.max(gg)=0)"]
    for number in numbers:
        mc = dict_to_model(allnetworks[number], add_morphogene=True)
        smallmc = dict_to_model(allnetworks[number], add_morphogene=False)
        gpss = mc._psc.get_parameterSets()
        count_accepted = 0
        for gps in gpss:
            #print gps
            subgps = dict((combi, encode_gps_full(subparset(gps, is_m1_in=combi[0], is_m2_in=combi[1]))) for combi in combis)
            parameter_set_IG_list = [decode_gps_full(subgps[combi]) for combi in combis]
            parameter_sets = [elem[0] for elem in parameter_set_IG_list]
            #print parameter_sets
            accepted = all(filter_byAL(smallmc, parameter_sets[i], ALformulas[i]) for i in range(3))*1
            if accepted:
                print "accepting:", gps
                #export_STG(mc, gps, filename=str(number).zfill(5)+"_"+encode_gps(gps, base=10)+".gml", initialRules=None)
                export_STG(mc, gps, filename="_"+numbers[number]+"_"+encode_gps(gps, base=10)+".gml", initialRules=None)