示例#1
0
def script():
    filename = sys.argv[1]
    min_sup = sys.argv[2]

    D = graph_reader.graph_reader(filename)
    gspan.gSpan([], D, int(min_sup))

    print "Total number of patterns: {}".format(gspan.num_call - 1)
示例#2
0
def main():
    if len(sys.argv) == 1 or '-h' in sys.argv:
        usage()
        exit()

    if '-t' in sys.argv:
        opt_dict = parse_args('-n 2 -s 2 -l 2 -u 3 -v'.split(), default_args)

    else:
        opt_dict = parse_args(sys.argv[1:], default_args)

    if not os.path.exists(opt_dict['database_file_name']):
        print('{} does not exist.'.format(opt_dict['database_file_name']))
        exit()

    gs = gSpan(database_file_name=opt_dict['database_file_name'],
               min_support=opt_dict['-s'],
               min_num_vertices=opt_dict['-l'],
               max_num_vertices=opt_dict['-u'],
               max_ngraphs=opt_dict['-n'],
               is_undirected=(opt_dict['-d'] == 0),
               verbose=(opt_dict['-v'] == 1),
               visualize=(opt_dict['-p'] == 1),
               where=(opt_dict['-w'] == 1))

    gs.run()
    gs.time_stats()
示例#3
0
    def test_compound_min_graph_size_2_support_10_percent(self):
        graph_dataset_size = 422

        file_name = "../graphdata/benchmark_tests/Coumpound_422.txt"
        supp = graph_dataset_size * 0.1
        min_size_graph = 2
        gs = gSpan(database_file_name=file_name,
                   min_support=supp,
                   min_num_vertices=min_size_graph)
        gs.run()
        gs.time_stats()
示例#4
0
    def test_chemical_min_graph_size_32_support_5_percent(self):
        graph_dataset_size = 340

        file_name = "../graphdata/benchmark_tests/Chemical_340.txt"
        supp = graph_dataset_size * 0.05
        min_size_graph = 32
        gs = gSpan(database_file_name=file_name,
                   min_support=supp,
                   min_num_vertices=min_size_graph)
        gs.run()
        gs.time_stats()
示例#5
0
def main(FLAGS=None):
    """Run gSpan."""

    if FLAGS is None:
        FLAGS, _ = parser.parse_known_args(args=sys.argv[1:])
    if not os.path.exists(FLAGS.database_file_name):
        print('{} does not exist.'.format(FLAGS.database_file_name))
        sys.exit()
    gs = gSpan(database_file_name=FLAGS.database_file_name, min_support=FLAGS.min_support)
    gs.run()    
    gs.time_stats()
    return gs
示例#6
0
def main(args):
    gs = gSpan(database_file_name=args['database_file_name'],
               min_support=args['-s'],
               min_num_vertices=args['-l'],
               max_num_vertices=args['-u'],
               max_ngraphs=args['-n'],
               is_undirected=(args['-d'] == 0),
               verbose=(args['-v'] == 1),
               visualize=(args['-p'] == 1),
               where=(args['-w'] == 1))

    gs.run()
    gs.time_stats()
示例#7
0
def run_ncg(file_name, supp, min_size_graph, graphs_to_keep):
    from gspan import gSpan
    gs = gSpan(database_file_name=file_name,
               min_support=supp,
               min_num_vertices=min_size_graph,
               graphs_to_keep=graphs_to_keep)
    gs.run()
    max_subgraphs = gs._max_subgraphs
    if max_subgraphs is None:
        results = []
    else:
        results = get_multiple_results(gs, max_subgraphs)
    return results, gs
示例#8
0
    def test_chemical_min_graph_size_2(self):
        graph_dataset_size = 340

        file_name = "../graphdata/benchmark_tests/Chemical_340.txt"
        supp = graph_dataset_size * 0.45
        min_size_graph = 2
        gs = gSpan(database_file_name=file_name,
                   min_support=supp,
                   min_num_vertices=min_size_graph)
        gs.run()
        gs.time_stats()

        max_subgraphs = gs._max_subgraphs
        results = self.get_multiple_results(gs, max_subgraphs)
        self.updateOutput(results)
示例#9
0
    def test_testcase_00(self):
        gs = gSpan(
            database_file_name="../graphdata/graph.data.testcase.0",
            min_support=2
        )
        gs.run()
        max_subgraphs = gs._max_subgraphs

        results = self.get_single_result(gs,max_subgraphs)

        solution_1 = ('2', 'v 0 A v 1 B v 2 C v 3 D e 0 1 x e 1 2 y e 1 3 z ', '4')
        solutions = [solution_1]

        self.updateOutput(results)
        self.assertEqual(sorted(solutions), sorted(results))
示例#10
0
    def test_testcase_11(self):
        gs = gSpan(
            database_file_name="../graphdata/graph.data.testcase.11",
            min_support=2
        )
        gs.run()
        max_subgraphs = gs._max_subgraphs
        results = self.get_multiple_results(gs,max_subgraphs)

        solution_1 = ('2','v 0 A v 1 AA v 2 B v 3 C v 4 D v 5 E v 6 F v 7 G e 0 1 m e 1 2 n e 1 5 q e 2 3 o e 3 4 p e 5 6 r e 6 7 s ','8')
        solution_2 = ('3','v 0 A v 1 AA v 2 B v 3 E e 0 1 m e 1 2 n e 1 3 q ','4')
        solutions = [solution_1, solution_2]

        self.updateOutput(results)
        self.assertEqual(sorted(solutions), sorted(results))
示例#11
0
文件: main.py 项目: karpnv/gSpan
def main():

    if not os.path.exists(FLAGS.database_file_name):
        print('{} does not exist.'.format(FLAGS.database_file_name))
        sys.exit()

    gs = gSpan(database_file_name=FLAGS.database_file_name,
               min_support=FLAGS.s,
               min_num_vertices=FLAGS.l,
               max_num_vertices=FLAGS.u,
               max_ngraphs=FLAGS.n,
               is_undirected=(FLAGS.d == 0),
               verbose=(FLAGS.v != 0),
               visualize=(FLAGS.p != 0),
               where=(FLAGS.w != 0))

    gs.run()
    gs.time_stats()
示例#12
0
    def test_testcase_02(self):
        gs = gSpan(
            database_file_name="../graphdata/graph.data.testcase.2",
            min_support=2
        )
        gs.run()
        max_subgraphs = gs._max_subgraphs
        results = self.get_single_result(gs, max_subgraphs)

        solution_support = "2"
        solution_description = "v 0 A v 1 B v 2 C e 0 1 x e 0 2 z e 1 2 y "
        solution_num_vert = "3"
        solution_1 = (solution_support, solution_description, solution_num_vert)

        solutions = [solution_1]

        self.updateOutput(results)
        self.assertEqual(sorted(solutions), sorted(results))
示例#13
0
def find_subgraph(group_id, is_generalise=0, has_root=1):
    graphs,min_support=read_gml_graphs('../with_tags',
                group_id=group_id,
                is_generalise=is_generalise,
                has_root=has_root)

    gs = gSpan(
        database_file_name='../gSpan/graphdata/graph.data.5',
        min_support=min_support,
        min_num_vertices=2,
        max_num_vertices=float('inf'),
        max_ngraphs=float('inf'),
        is_undirected=0,
        verbose=0,
        visualize=0,
        where=0)
    gs.graphs=graphs
    logging.info('Number of graphs = %s, min_support = %s, min_num_vertices = %s',len(gs.graphs), gs.min_support, gs.min_num_vertices)
    gs.run()
    gs.report_df.to_csv('gen/group'+str(group_id)+'_hubermas'+str(is_generalise)+'_root'+str(has_root)+'_supp'+str(gs.min_support)+'_min'+str(gs.min_num_vertices)+'.csv', sep=';', encoding='cp1251')
示例#14
0
文件: main.py 项目: KenCheong/gSpan
def main(FLAGS):
    """Run gSpan."""
    if not os.path.exists(FLAGS.database_file_name):
        print('{} does not exist.'.format(FLAGS.database_file_name))
        sys.exit()

    gs = gSpan(
        database_file_name=FLAGS.database_file_name,
        min_support=FLAGS.min_support,
        min_num_vertices=FLAGS.lower_bound_of_num_vertices,
        max_num_vertices=FLAGS.upper_bound_of_num_vertices,
        max_ngraphs=FLAGS.num_graphs,
        is_undirected=(not FLAGS.directed),
        verbose=FLAGS.verbose,
        visualize=FLAGS.plot,
        where=FLAGS.where
    )

    gs.run()
    gs.time_stats()
    return gs
示例#15
0
    def test_testcase_10(self):
        gs = gSpan(
            database_file_name="../graphdata/graph.data.testcase.10",
            min_support=2
        )
        gs.run()
        max_subgraphs = gs._max_subgraphs
        results = self.get_multiple_results(gs,max_subgraphs)

        solution_support_1 = "3"
        solution_description_1 = 'v 0 A v 1 D v 2 B v 3 C e 0 1 y e 0 2 z e 2 3 x '
        solution_num_vert_1 = "4"
        solution_1 = (solution_support_1, solution_description_1, solution_num_vert_1)

        solution_support_2 = "2"
        solution_description_2 = 'v 0 A v 1 D v 2 E v 3 B v 4 C e 0 1 y e 0 3 z e 1 2 w e 3 4 x '
        solution_num_vert_2 = "5"
        solution_2 = (solution_support_2, solution_description_2, solution_num_vert_2)

        solutions = [solution_1, solution_2]

        self.updateOutput(results)
        self.assertEqual(sorted(solutions), sorted(results))
示例#16
0
文件: main.py 项目: NaazS03/gSpan
def main(FLAGS=None):
    """Run gSpan."""

    if FLAGS is None:
        FLAGS, _ = parser.parse_known_args(args=sys.argv[1:])

    if not os.path.exists(FLAGS.database_file_name):
        print('{} does not exist.'.format(FLAGS.database_file_name))
        sys.exit()

    gs = gSpan(database_file_name=FLAGS.database_file_name,
               min_support=FLAGS.min_support,
               min_num_vertices=FLAGS.lower_bound_of_num_vertices,
               max_num_vertices=FLAGS.upper_bound_of_num_vertices,
               max_ngraphs=FLAGS.num_graphs,
               is_undirected=(not FLAGS.directed),
               verbose=FLAGS.verbose,
               visualize=FLAGS.plot,
               where=FLAGS.where)

    test = gs.run()
    gs.time_stats()
    return gs
示例#17
0
    def test_testcase_08(self):
        gs = gSpan(
            database_file_name="../graphdata/graph.data.testcase.8",
            min_support=2
        )
        gs.run()
        max_subgraphs = gs._max_subgraphs
        results = self.get_multiple_results(gs,max_subgraphs)

        solution_support_1 = "3"
        solution_description_1 = 'v 0 A v 1 B v 2 C v 3 D e 0 1 w e 0 2 x e 0 3 y '
        solution_num_vert_1 = "4"
        solution_1 = (solution_support_1, solution_description_1, solution_num_vert_1)

        solution_support_2 = "2"
        solution_description_2 = 'v 0 A v 1 B v 2 C v 3 D v 4 E e 0 1 w e 0 2 x e 0 3 y e 0 4 z '
        solution_num_vert_2 = "5"
        solution_2 = (solution_support_2, solution_description_2, solution_num_vert_2)

        solutions = [solution_1, solution_2]

        self.updateOutput(results)
        self.assertEqual(sorted(solutions), sorted(results))