Infomap optimizes the map equation, which exploits the information-theoretic duality between the problem of compressing data, and the problem of detecting and extracting significant patterns or structures within those data.
npm install infomapThe execution of this algorithm is divided in 2 phases: minimizing description length (using map equation) and community
aggregation. Although the implementation is similar to the [Louvain algorithm](), the optimizing function is different.
Map Equation:
Install package using NPM.
``cmd`
npm i --save infomap
Require it using Node.js.
`node`
const infomap = require('infomap');
Start community finding.
`node
let node2com = infomap.jInfomap(nodes, links, min);
// node2com = {nodeID1: commmunityID1, nodeID2: commmunityID2...}
// nodes = [nodeID1, nodeID2...]
// links = [{source: nodeID1, target: nodeID2, value: weight ...}]
// Whenever the MDL between 2 partitions is lower than a value "min", the iteration stops.
``
#### Community Finding with Applications on Phylogenetic Networks (Master Thesis)
[Louvain](), Infomap, Layered Label Propagation,
Label Propagation, [Hamming Distance](), Girvan-Newman Benchmark
and Normalized Mutual Information algorithms were developed in JavaScript. To visualize the results, an interface
using D3.js (SVG and Canvas) and Cytoscape was implemented. Every community finding algorithm was tested in terms of accuracy, speed and memory against 2 synthetic networks (Girvan-Newman
and Lacichinetti-Fortunato-Radicchi networks with varying parameters). Final goal was to cluster microbiological data.
Check out more in the thesis website. You may also download an image of the application in Docker Hub. A description video is below.

#### Supervision Team
Alexandre Francisco (INESC-ID & IST) | João Carriço (iMM) | Vítor Borges (INSA)