@mapequation/infomap 2.8.0 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/arguments.d.ts CHANGED
@@ -1,28 +1,28 @@
1
- declare type OutputFormats = "clu" | "tree" | "ftree" | "newick" | "json" | "csv" | "network" | "states" | "flow";
2
- export interface Arguments extends Partial<{
3
- clusterData: string;
4
- noInfomap: boolean;
1
+ type OutputFormats = "clu" | "tree" | "ftree" | "newick" | "json" | "csv" | "network" | "states" | "flow";
2
+ export type Arguments = Partial<{
5
3
  skipAdjustBipartiteFlow: boolean;
6
4
  bipartiteTeleportation: boolean;
7
5
  weightThreshold: number;
8
6
  noSelfLinks: boolean;
9
7
  nodeLimit: number;
10
8
  matchableMultilayerIds: number;
9
+ clusterData: string;
11
10
  assignToNeighbouringModule: boolean;
12
11
  metaData: string;
13
12
  metaDataRate: number;
14
13
  metaDataUnweighted: boolean;
14
+ noInfomap: boolean;
15
+ outName: string;
16
+ noFileOutput: boolean;
15
17
  tree: boolean;
16
18
  ftree: boolean;
17
19
  clu: boolean;
18
- verbose: 1 | 2 | 3;
19
- silent: boolean;
20
- outName: string;
21
- noFileOutput: boolean;
22
20
  cluLevel: number;
23
21
  output: OutputFormats | OutputFormats[];
24
22
  hideBipartiteNodes: boolean;
25
23
  printAllTrials: boolean;
24
+ verbose: 1 | 2 | 3;
25
+ silent: boolean;
26
26
  twoLevel: boolean;
27
27
  flowModel: "undirected" | "directed" | "undirdir" | "outdirdir" | "rawdir" | "precomputed";
28
28
  directed: boolean;
@@ -37,6 +37,7 @@ export interface Arguments extends Partial<{
37
37
  markovTime: number;
38
38
  variableMarkovTime: boolean;
39
39
  variableMarkovDamping: number;
40
+ variableMarkovMinScale: number;
40
41
  preferredNumberOfModules: number;
41
42
  multilayerRelaxRate: number;
42
43
  multilayerRelaxLimit: number;
@@ -51,11 +52,12 @@ export interface Arguments extends Partial<{
51
52
  coreLoopCodelengthThreshold: number;
52
53
  tuneIterationRelativeThreshold: number;
53
54
  fastHierarchicalSolution: 1 | 2 | 3;
54
- preferModularSolution: boolean;
55
55
  innerParallelization: boolean;
56
+ preferModularSolution: boolean;
57
+ numRandomMoves: number;
58
+ maxDegreeForRandomMoves: number;
56
59
  help: boolean | "advanced";
57
60
  version: boolean;
58
- }> {
59
- }
61
+ }>;
60
62
  export default function argumentsToString(args: Arguments): string;
61
63
  export {};
package/arguments.js ADDED
@@ -0,0 +1,130 @@
1
+ // Generated by scripts/generate_binding_options.py from ./Infomap --print-json-parameters.
2
+ // Edit src/io/Config.cpp or interfaces/parameters/overrides.json, then run
3
+ // make build-binding-options.
4
+ function argumentsToString(args) {
5
+ let result = "";
6
+ if (args.skipAdjustBipartiteFlow)
7
+ result += " --skip-adjust-bipartite-flow";
8
+ if (args.bipartiteTeleportation)
9
+ result += " --bipartite-teleportation";
10
+ if (args.weightThreshold != null)
11
+ result += " --weight-threshold " + args.weightThreshold;
12
+ if (args.noSelfLinks)
13
+ result += " --no-self-links";
14
+ if (args.nodeLimit != null)
15
+ result += " --node-limit " + args.nodeLimit;
16
+ if (args.matchableMultilayerIds != null)
17
+ result += " --matchable-multilayer-ids " + args.matchableMultilayerIds;
18
+ if (args.clusterData != null)
19
+ result += " --cluster-data " + args.clusterData;
20
+ if (args.assignToNeighbouringModule)
21
+ result += " --assign-to-neighbouring-module";
22
+ if (args.metaData != null)
23
+ result += " --meta-data " + args.metaData;
24
+ if (args.metaDataRate != null)
25
+ result += " --meta-data-rate " + args.metaDataRate;
26
+ if (args.metaDataUnweighted)
27
+ result += " --meta-data-unweighted";
28
+ if (args.noInfomap)
29
+ result += " --no-infomap";
30
+ if (args.outName != null)
31
+ result += " --out-name " + args.outName;
32
+ if (args.noFileOutput)
33
+ result += " --no-file-output";
34
+ if (args.tree)
35
+ result += " --tree";
36
+ if (args.ftree)
37
+ result += " --ftree";
38
+ if (args.clu)
39
+ result += " --clu";
40
+ if (args.cluLevel != null)
41
+ result += " --clu-level " + args.cluLevel;
42
+ if (args.output != null) {
43
+ if (typeof args.output === "string")
44
+ result += " --output " + args.output;
45
+ else
46
+ result += " --output " + args.output.join(",");
47
+ }
48
+ if (args.hideBipartiteNodes)
49
+ result += " --hide-bipartite-nodes";
50
+ if (args.printAllTrials)
51
+ result += " --print-all-trials";
52
+ if (args.verbose)
53
+ result += " -" + "v".repeat(args.verbose);
54
+ if (args.silent)
55
+ result += " --silent";
56
+ if (args.twoLevel)
57
+ result += " --two-level";
58
+ if (args.flowModel != null)
59
+ result += " --flow-model " + args.flowModel;
60
+ if (args.directed)
61
+ result += " --directed";
62
+ if (args.recordedTeleportation)
63
+ result += " --recorded-teleportation";
64
+ if (args.useNodeWeightsAsFlow)
65
+ result += " --use-node-weights-as-flow";
66
+ if (args.toNodes)
67
+ result += " --to-nodes";
68
+ if (args.teleportationProbability != null)
69
+ result += " --teleportation-probability " + args.teleportationProbability;
70
+ if (args.regularized)
71
+ result += " --regularized";
72
+ if (args.regularizationStrength != null)
73
+ result += " --regularization-strength " + args.regularizationStrength;
74
+ if (args.entropyCorrected)
75
+ result += " --entropy-corrected";
76
+ if (args.entropyCorrectionStrength != null)
77
+ result += " --entropy-correction-strength " + args.entropyCorrectionStrength;
78
+ if (args.markovTime != null)
79
+ result += " --markov-time " + args.markovTime;
80
+ if (args.variableMarkovTime)
81
+ result += " --variable-markov-time";
82
+ if (args.variableMarkovDamping != null)
83
+ result += " --variable-markov-damping " + args.variableMarkovDamping;
84
+ if (args.variableMarkovMinScale != null)
85
+ result += " --variable-markov-min-scale " + args.variableMarkovMinScale;
86
+ if (args.preferredNumberOfModules != null)
87
+ result += " --preferred-number-of-modules " + args.preferredNumberOfModules;
88
+ if (args.multilayerRelaxRate != null)
89
+ result += " --multilayer-relax-rate " + args.multilayerRelaxRate;
90
+ if (args.multilayerRelaxLimit != null)
91
+ result += " --multilayer-relax-limit " + args.multilayerRelaxLimit;
92
+ if (args.multilayerRelaxLimitUp != null)
93
+ result += " --multilayer-relax-limit-up " + args.multilayerRelaxLimitUp;
94
+ if (args.multilayerRelaxLimitDown != null)
95
+ result += " --multilayer-relax-limit-down " + args.multilayerRelaxLimitDown;
96
+ if (args.multilayerRelaxByJsd)
97
+ result += " --multilayer-relax-by-jsd";
98
+ if (args.seed != null)
99
+ result += " --seed " + args.seed;
100
+ if (args.numTrials != null)
101
+ result += " --num-trials " + args.numTrials;
102
+ if (args.coreLoopLimit != null)
103
+ result += " --core-loop-limit " + args.coreLoopLimit;
104
+ if (args.coreLevelLimit != null)
105
+ result += " --core-level-limit " + args.coreLevelLimit;
106
+ if (args.tuneIterationLimit != null)
107
+ result += " --tune-iteration-limit " + args.tuneIterationLimit;
108
+ if (args.coreLoopCodelengthThreshold != null)
109
+ result += " --core-loop-codelength-threshold " + args.coreLoopCodelengthThreshold;
110
+ if (args.tuneIterationRelativeThreshold != null)
111
+ result += " --tune-iteration-relative-threshold " + args.tuneIterationRelativeThreshold;
112
+ if (args.fastHierarchicalSolution)
113
+ result += " -" + "F".repeat(args.fastHierarchicalSolution);
114
+ if (args.innerParallelization)
115
+ result += " --inner-parallelization";
116
+ if (args.preferModularSolution)
117
+ result += " --prefer-modular-solution";
118
+ if (args.numRandomMoves != null)
119
+ result += " --num-random-moves " + args.numRandomMoves;
120
+ if (args.maxDegreeForRandomMoves != null)
121
+ result += " --max-degree-for-random-moves " + args.maxDegreeForRandomMoves;
122
+ if (args.help)
123
+ result += args.help === "advanced" ? " -hh" : " -h";
124
+ if (args.version)
125
+ result += " --version";
126
+ return result;
127
+ }
128
+
129
+ export { argumentsToString as default };
130
+ //# sourceMappingURL=arguments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arguments.js","sources":["../../../interfaces/js/src/arguments.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/filetypes.cjs ADDED
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const isClu = (file) => {
6
+ const clu = file;
7
+ return clu.length > 0 && ("moduleId" in file[0] || "meta" in file[0]);
8
+ };
9
+ const isTree = (file) => {
10
+ const clu = file;
11
+ return clu.length > 0 && "path" in file[0];
12
+ };
13
+ function fileToString(file) {
14
+ if (file.length === 0) {
15
+ return "";
16
+ }
17
+ if (isClu(file)) {
18
+ return cluToString(file);
19
+ }
20
+ else if (isTree(file)) {
21
+ return treeToString(file);
22
+ }
23
+ return "";
24
+ }
25
+ function cluToString(clu) {
26
+ let result = "";
27
+ for (const node of clu) {
28
+ result += node.id;
29
+ if ("moduleId" in node)
30
+ result += ` ${node.moduleId}`;
31
+ else if ("meta" in node)
32
+ result += ` ${node.meta}`;
33
+ if (node.flow != null)
34
+ result += ` ${node.flow}`;
35
+ result += "\n";
36
+ }
37
+ return result;
38
+ }
39
+ function treeToString(tree) {
40
+ let result = "";
41
+ for (const node of tree) {
42
+ const flow = node.flow ?? 0;
43
+ const name = node.name ?? node.id;
44
+ result += `${node.path.join(":")} ${flow} "${name}"`;
45
+ if ("stateId" in node)
46
+ result += ` ${node.stateId}`;
47
+ result += ` ${node.id}`;
48
+ if ("layerId" in node)
49
+ result += ` ${node.layerId}`;
50
+ result += "\n";
51
+ }
52
+ return result;
53
+ }
54
+
55
+ exports.default = fileToString;
56
+ //# sourceMappingURL=filetypes.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filetypes.cjs","sources":["../../../interfaces/js/src/filetypes.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAmCA,MAAM,KAAK,GAAG,CAAC,IAAe,KAA2B;IACvD,MAAM,GAAG,GAAG,IAAqB;IACjC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,IAAe,KAA8B;IAC3D,MAAM,GAAG,GAAG,IAAwB;AACpC,IAAA,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAEa,SAAU,YAAY,CAAC,IAAe,EAAA;AAClD,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AACf,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC;IAC1B;AAAO,SAAA,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;AACvB,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC;IAC3B;AAEA,IAAA,OAAO,EAAW;AACpB;AAEA,SAAS,WAAW,CAAC,GAAkB,EAAA;IACrC,IAAI,MAAM,GAAG,EAAE;AAEf,IAAA,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;AACtB,QAAA,MAAM,IAAI,IAAI,CAAC,EAAE;QACjB,IAAI,UAAU,IAAI,IAAI;AAAE,YAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,EAAE;aAChD,IAAI,MAAM,IAAI,IAAI;AAAE,YAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,EAAE;AAClD,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;AAAE,YAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,EAAE;QAChD,MAAM,IAAI,IAAI;IAChB;AAEA,IAAA,OAAO,MAAM;AACf;AAEA,SAAS,YAAY,CAAC,IAAsB,EAAA;IAC1C,IAAI,MAAM,GAAG,EAAE;AAEf,IAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;AAEjC,QAAA,MAAM,IAAI,CAAA,EAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,EAAA,EAAK,IAAI,GAAG;QACpD,IAAI,SAAS,IAAI,IAAI;AAAE,YAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,EAAE;AACnD,QAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,EAAE,EAAE;QACvB,IAAI,SAAS,IAAI,IAAI;AAAE,YAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,EAAE;QACnD,MAAM,IAAI,IAAI;IAChB;AAEA,IAAA,OAAO,MAAM;AACf;;;;"}
package/filetypes.d.ts CHANGED
@@ -1,26 +1,26 @@
1
- export declare type NodeBase = {
1
+ export type NodeBase = {
2
2
  id: number;
3
3
  flow?: number;
4
4
  };
5
- declare type StateNodeBase = {
5
+ type StateNodeBase = {
6
6
  stateId: number;
7
7
  layerId?: number;
8
8
  };
9
- export declare type CluNode<T extends string = "moduleId"> = {
9
+ export type CluNode<T extends string = "moduleId"> = {
10
10
  [key in T]: number;
11
11
  } & NodeBase;
12
- export declare type CluStateNode = CluNode & StateNodeBase;
13
- export declare type Clu = CluNode[];
14
- export declare type MetaClu = CluNode<"meta">[];
15
- export declare type TreeNode = {
12
+ export type CluStateNode = CluNode & StateNodeBase;
13
+ export type Clu = CluNode[];
14
+ export type MetaClu = CluNode<"meta">[];
15
+ export type TreeNode = {
16
16
  path: number[];
17
17
  modules?: number[];
18
18
  mec?: number;
19
19
  name?: string;
20
20
  } & NodeBase;
21
- export declare type TreeStateNode = TreeNode & StateNodeBase;
22
- export declare type Tree = TreeNode[];
23
- export declare type StateTree = TreeStateNode[];
24
- export declare type FileTypes = Clu | MetaClu | Tree | StateTree;
21
+ export type TreeStateNode = TreeNode & StateNodeBase;
22
+ export type Tree = TreeNode[];
23
+ export type StateTree = TreeStateNode[];
24
+ export type FileTypes = Clu | MetaClu | Tree | StateTree;
25
25
  export default function fileToString(file: FileTypes): string;
26
26
  export {};
package/filetypes.js ADDED
@@ -0,0 +1,52 @@
1
+ const isClu = (file) => {
2
+ const clu = file;
3
+ return clu.length > 0 && ("moduleId" in file[0] || "meta" in file[0]);
4
+ };
5
+ const isTree = (file) => {
6
+ const clu = file;
7
+ return clu.length > 0 && "path" in file[0];
8
+ };
9
+ function fileToString(file) {
10
+ if (file.length === 0) {
11
+ return "";
12
+ }
13
+ if (isClu(file)) {
14
+ return cluToString(file);
15
+ }
16
+ else if (isTree(file)) {
17
+ return treeToString(file);
18
+ }
19
+ return "";
20
+ }
21
+ function cluToString(clu) {
22
+ let result = "";
23
+ for (const node of clu) {
24
+ result += node.id;
25
+ if ("moduleId" in node)
26
+ result += ` ${node.moduleId}`;
27
+ else if ("meta" in node)
28
+ result += ` ${node.meta}`;
29
+ if (node.flow != null)
30
+ result += ` ${node.flow}`;
31
+ result += "\n";
32
+ }
33
+ return result;
34
+ }
35
+ function treeToString(tree) {
36
+ let result = "";
37
+ for (const node of tree) {
38
+ const flow = node.flow ?? 0;
39
+ const name = node.name ?? node.id;
40
+ result += `${node.path.join(":")} ${flow} "${name}"`;
41
+ if ("stateId" in node)
42
+ result += ` ${node.stateId}`;
43
+ result += ` ${node.id}`;
44
+ if ("layerId" in node)
45
+ result += ` ${node.layerId}`;
46
+ result += "\n";
47
+ }
48
+ return result;
49
+ }
50
+
51
+ export { fileToString as default };
52
+ //# sourceMappingURL=filetypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filetypes.js","sources":["../../../interfaces/js/src/filetypes.ts"],"sourcesContent":[null],"names":[],"mappings":"AAmCA,MAAM,KAAK,GAAG,CAAC,IAAe,KAA2B;IACvD,MAAM,GAAG,GAAG,IAAqB;IACjC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,IAAe,KAA8B;IAC3D,MAAM,GAAG,GAAG,IAAwB;AACpC,IAAA,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAEa,SAAU,YAAY,CAAC,IAAe,EAAA;AAClD,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AACf,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC;IAC1B;AAAO,SAAA,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;AACvB,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC;IAC3B;AAEA,IAAA,OAAO,EAAW;AACpB;AAEA,SAAS,WAAW,CAAC,GAAkB,EAAA;IACrC,IAAI,MAAM,GAAG,EAAE;AAEf,IAAA,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;AACtB,QAAA,MAAM,IAAI,IAAI,CAAC,EAAE;QACjB,IAAI,UAAU,IAAI,IAAI;AAAE,YAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,EAAE;aAChD,IAAI,MAAM,IAAI,IAAI;AAAE,YAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,EAAE;AAClD,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;AAAE,YAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,EAAE;QAChD,MAAM,IAAI,IAAI;IAChB;AAEA,IAAA,OAAO,MAAM;AACf;AAEA,SAAS,YAAY,CAAC,IAAsB,EAAA;IAC1C,IAAI,MAAM,GAAG,EAAE;AAEf,IAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;AAEjC,QAAA,MAAM,IAAI,CAAA,EAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,EAAA,EAAK,IAAI,GAAG;QACpD,IAAI,SAAS,IAAI,IAAI;AAAE,YAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,EAAE;AACnD,QAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,EAAE,EAAE;QACvB,IAAI,SAAS,IAAI,IAAI;AAAE,YAAA,MAAM,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,EAAE;QACnD,MAAM,IAAI,IAAI;IAChB;AAEA,IAAA,OAAO,MAAM;AACf;;;;"}