Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including normalized-mutual-information with all npm packages installed. Try it out:

var normalizedMutualInformation = require("normalized-mutual-information")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

normalized-mutual-information v1.0.2

This algorithm assesses how similar are 2 input partitions of a given network.

Normalized Mutual Information


Given 2 partitions of the same network, NMI allows us to check how correlated are both. This value varies between 0 (disparate partitioning) and 1 (same clusters were identified).


Install package using NPM.

npm i --save normalized-mutual-information

Require it using Node.js.

const nmi = require('normalized-mutual-information');

Run it!

let node2com = nmi.jNMI(array1, array2);

// Each value of the array is the community to which each node (given by the position in the array) belongs.


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.

Supervision Team

Bruno Gonçalves (iMM) | Alexandre Francisco (INESC-ID & IST) | João Carriço (iMM & IST)

I am deeply grateful for their help along this unique journey...

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free