forked from chenmingming/ParallelComMetric
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathargs.ggo
99 lines (84 loc) · 4.29 KB
/
args.ggo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# Configuration file for the automatic generation of the input options parsing
package "pcomet"
version "1.1"
versiontext "Authors: Mingming Chen <mileschen2008@gmail.com> and Sisi Liu <liusisiapply@gmail.com>
Collaborator: Boleslaw K. Szymanski <szymab@rpi.edu>
Extended by: Artem Lutov <artem@exascale.info>
Sources: https://github.com/eXascaleInfolab/ParallelComMetric
"
purpose "A parallel toolkit, implemented with Pthreads (or MPI), to calculate the
community quality metrics with and without ground truth community structure.
Paper: Mingming Chen, Sisi Liu, and Boleslaw Szymanski, \"Parallel Toolkit for
Measuring the Quality of Network Community Structure\", The First European
Network Intelligence Conference (ENIC), Wroclaw, Poland, September, 2014, pp. 22-29.
"
usage "pcomet [OPTIONS] ground-truth|ipnut-network clustering
ground-truth - ground-truth clustering (communities) for the extrinsic metrics\
evaluation. The clusterins are specified in the NCL format, where each line consists\
of the member node ids of the respective cluster (community).
ipnut-network - input network for the intrinsic metrics evaluation. The input\
network is specified in the NSL format, where each line describes the respective\
link: <src_id> <dst_id> [<weight>].
clustering - input file, collection of the clusters (detected communities) to\
be evaluated. in the NCL format, where each line list member node ids of the\
respective cluster (community).
Examples:
$ ./pcomet -n 4 -ef1m ./dataset/football_true_community.groups ./dataset/football_detected_community.groups
$ ./pcomet -n 4 -i ./dataset/football_network.pairs ./dataset/football_detected_community.groups
"
description "Extrinsic or intrinsic measures are evaluated. For the extrinsic\
measures, two input clusterings (collections of clusters/communities) are compared\
to each other, whether one of them typically is a ground-truth clustering.\
For the intrinsic measures, the clustering is processed together with the respective\
input network (graph).
"
option "num" n "the number of threads to be used." short default="1"
option "cpufreq" f "CPU frequency to measure timing of the metrics, MHz (can be fetched by `$ lscpu`)." short default="2100"
defgroup "gr_metrics" groupdesc="Quality metrics type to be evaluated" required
groupoption "extrinsic" e "extrinsic quality metrics to be evaluated" enum values="all","f1m","nvd" default="all" group="gr_metrics" argoptional
# vi nmi f1m nvd ri ari ji
groupoption "intrinsic" i "intrinsic quality metrics to be evaluated" enum values="all" default="all" group="gr_metrics" argoptional
option "weighted" w "the input network is weighted" flag off dependon="intrinsic"
option "directed" d "the input network is directed" flag off dependon="intrinsic"
# modularity Qds intraEdges intraDensity contraction interEdges expansion conductance
# Set optional options by default, allow input file names to be unnamed parameters
args "--default-optional --unamed-opts=files"
#args "--unamed-opts=clusterings" # Allow input files to be unnamed parameters
# = Changelog =
# v1.1 - Standard console interface added, options refined
# v1.0 - Initial Release
# Basic structure, see https://www.gnu.org/software/gengetopt/gengetopt.html#Basic-Usage
# package "<packname>"
# version "<version>"
# purpose "<purpose>"
# usage "<usage>"
# description "<description>"
# versiontext "<versiontext>"
#
# args "<command line options>"
#
# option <long> <short> "<desc>"
# {details="<detailed description>"}
# {argtype} {typestr="<type descr>"}
# {values="<value1>","<value2>",...}
# {default="<default value>"}
# {dependon="<other option>"}
# {required} {argoptional} {multiple}
# {hidden}
#
# option <long> <short> "<desc>" flag <on/off>
#
# section "section name" {sectiondesc="optional section description"}
#
# text "a textual sentence"
#
#
# Mutually exclusive options should belong to a group:
#
# defgroup "<group name>" {groupdesc="<group description>"} {required}
# groupoption <long> <short> "<desc>" <argtype> group="<group name>" \
# {argoptional} {multiple}
#
# defgroup "my grp2"
# defgroup "grp1" groupdesc="an option of this group is required" required
# groupoption "opta" a "string a" group="grp1" multiple