{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Infomap\n",
    "Multi-level network clustering based on the [Map equation](http://www.mapequation.org/publications.html#Rosvall-Axelsson-Bergstrom-2009-Map-equation).\n",
    "\n",
    "\n",
    "### The Map Equation\n",
    "\n",
    "\\begin{equation*}\n",
    "    L(M) = q_\\curvearrowright H(\\mathcal{Q}) + \\sum_{i = 1}^{m}{p_{\\circlearrowright}^i H(\\mathcal{P}^i)}\n",
    "\\end{equation*}\n",
    "\n",
    "$L(M)$ measures the amount of information it takes to describe a random walk on a network given a partition of the network into modules $M$. It is a sum of the amount of information needed to describe the movements _between_ and _within_ the modules, which balances the goodness of fit with the complexity of the model. For more information, see [www.mapequation.org](http://www.mapequation.org)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Import Infomap\n",
    "Infomap includes an `examples/python` folder with some examples, including this notebook. Run `make` in that directory to build the python interface to a local folder.\n",
    "\n",
    "The `infomap` package exposes two classes, `Infomap` and `MemInfomap`, that wraps an input `network`, an output `tree`, and a `run` method to run Infomap on the input network. The classes takes a string of [options](http://www.mapequation.org/code.html#Options) as input."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from infomap import infomap"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Simple example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 2 modules with codelength: 2.320730\n",
      "\n",
      "#node module\n",
      "0 0\n",
      "1 0\n",
      "2 0\n",
      "3 1\n",
      "4 1\n",
      "5 1\n"
     ]
    }
   ],
   "source": [
    "infomapWrapper = infomap.Infomap(\"--two-level\")\n",
    "\n",
    "# Add link weight as an optional third argument\n",
    "infomapWrapper.addLink(0, 1)\n",
    "infomapWrapper.addLink(0, 2)\n",
    "infomapWrapper.addLink(0, 3)\n",
    "infomapWrapper.addLink(1, 0)\n",
    "infomapWrapper.addLink(1, 2)\n",
    "infomapWrapper.addLink(2, 1)\n",
    "infomapWrapper.addLink(2, 0)\n",
    "infomapWrapper.addLink(3, 0)\n",
    "infomapWrapper.addLink(3, 4)\n",
    "infomapWrapper.addLink(3, 5)\n",
    "infomapWrapper.addLink(4, 3)\n",
    "infomapWrapper.addLink(4, 5)\n",
    "infomapWrapper.addLink(5, 4)\n",
    "infomapWrapper.addLink(5, 3)\n",
    "\n",
    "infomapWrapper.run()\n",
    "\n",
    "tree = infomapWrapper.tree\n",
    "\n",
    "print(\"Found %d modules with codelength: %f\" % (tree.numTopModules(), tree.codelength()))\n",
    "\n",
    "print(\"\\n#node module\")\n",
    "for node in tree.leafIter():\n",
    "    print(\"%d %d\" % (node.physIndex, node.moduleIndex()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Simple example with file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 3 levels with codelength: 3.462273\n",
      "Hierarchical solution:\n",
      "#path flow node\n",
      "1:1:1 0.038462 \"4\"\n",
      "1:1:2 0.038462 \"5\"\n",
      "1:1:3 0.038462 \"6\"\n",
      "1:2:1 0.038462 \"7\"\n",
      "1:2:2 0.038462 \"8\"\n",
      "1:2:3 0.038462 \"9\"\n",
      "1:3:1 0.038462 \"1\"\n",
      "1:3:2 0.038462 \"3\"\n",
      "1:3:3 0.025641 \"2\"\n",
      "2:1:1 0.038462 \"19\"\n",
      "2:1:2 0.038462 \"20\"\n",
      "2:1:3 0.038462 \"21\"\n",
      "2:2:1 0.038462 \"22\"\n",
      "2:2:2 0.038462 \"23\"\n",
      "2:2:3 0.038462 \"24\"\n",
      "2:3:1 0.038462 \"25\"\n",
      "2:3:2 0.038462 \"26\"\n",
      "2:3:3 0.025641 \"27\"\n",
      "3:1 0.038462 \"10\"\n",
      "3:2 0.038462 \"11\"\n",
      "3:3 0.038462 \"12\"\n",
      "4:1 0.038462 \"16\"\n",
      "4:2 0.038462 \"17\"\n",
      "4:3 0.038462 \"18\"\n",
      "5:1 0.038462 \"13\"\n",
      "5:2 0.038462 \"15\"\n",
      "5:3 0.025641 \"14\"\n"
     ]
    }
   ],
   "source": [
    "\n",
    "name = \"ninetriangles\"\n",
    "filename = \"../../{}.net\".format(name)\n",
    "\n",
    "infomapWrapper = infomap.Infomap(\"\")\n",
    "\n",
    "infomapWrapper.readInputData(filename)\n",
    "\n",
    "infomapWrapper.run()\n",
    "\n",
    "tree = infomapWrapper.tree\n",
    "\n",
    "print(\"Found %d levels with codelength: %f\" % (tree.maxDepth(), tree.codelength()))\n",
    "print(\"Hierarchical solution:\\n#path flow node\")\n",
    "for node in tree.treeIter():\n",
    "\tif node.isLeaf:\n",
    "\t\tprint(\"%s %f \\\"%s\\\"\" % (\":\".join(map(lambda n: str(n+1), node.path())), node.data.flow, node.data.name))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Memory networks\n",
    "\n",
    "With memory networks, the flow between two nodes depends on how you arrived at the first node. This higher-order relationships can be described by trigrams as in the example below:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Trigrams"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 3 modules with codelength: 1.227078\n",
      "\n",
      "#node module\n",
      "4 0\n",
      "3 0\n",
      "2 0\n",
      "1 1\n",
      "2 1\n",
      "0 2\n"
     ]
    }
   ],
   "source": [
    "infomapWrapper = infomap.MemInfomap(\"--two-level\")\n",
    "\n",
    "# Trigrams represents a path from node A through B to C.\n",
    "# Add link weight as an optional fourth argument\n",
    "infomapWrapper.addTrigram(0, 2, 0)\n",
    "infomapWrapper.addTrigram(0, 2, 1)\n",
    "infomapWrapper.addTrigram(1, 2, 1)\n",
    "infomapWrapper.addTrigram(1, 2, 0)\n",
    "infomapWrapper.addTrigram(1, 2, 3)\n",
    "infomapWrapper.addTrigram(3, 2, 3)\n",
    "infomapWrapper.addTrigram(2, 3, 4)\n",
    "infomapWrapper.addTrigram(3, 2, 4)\n",
    "infomapWrapper.addTrigram(4, 2, 4)\n",
    "infomapWrapper.addTrigram(4, 2, 3)\n",
    "infomapWrapper.addTrigram(4, 3, 3)\n",
    "\n",
    "infomapWrapper.run()\n",
    "\n",
    "tree = infomapWrapper.tree\n",
    "\n",
    "print(\"Found %d modules with codelength: %f\" % (tree.numTopModules(), tree.codelength()))\n",
    "\n",
    "print(\"\\n#node module\")\n",
    "for node in tree.leafIter():\n",
    "    print(\"%d %d\" % (node.physIndex, node.moduleIndex()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Overlapping modules\n",
    "\n",
    "Notice that node `2` in the example below exists in both module `0` and `1`. This is because `MemInfomap` partitions the higher-order state network which can include multiple state nodes for each physical node. For trigrams, a state node is a pair of `previousNode node`. To keep the state network in the output tree, add the `--expanded` flag to configure `MemInfomap`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 3 modules with codelength: 1.227078\n",
      "\n",
      "#previousNode node module\n",
      "2 3 0\n",
      "3 4 0\n",
      "2 4 0\n",
      "3 2 0\n",
      "4 2 0\n",
      "2 1 1\n",
      "0 2 1\n",
      "1 2 1\n",
      "2 0 2\n"
     ]
    }
   ],
   "source": [
    "# Store expanded state network\n",
    "infomapWrapper = infomap.MemInfomap(\"--two-level --expanded\")\n",
    "\n",
    "infomapWrapper.addTrigram(0, 2, 0)\n",
    "infomapWrapper.addTrigram(0, 2, 1)\n",
    "infomapWrapper.addTrigram(1, 2, 1)\n",
    "infomapWrapper.addTrigram(1, 2, 0)\n",
    "infomapWrapper.addTrigram(1, 2, 3)\n",
    "infomapWrapper.addTrigram(3, 2, 3)\n",
    "infomapWrapper.addTrigram(2, 3, 4)\n",
    "infomapWrapper.addTrigram(3, 2, 4)\n",
    "infomapWrapper.addTrigram(4, 2, 4)\n",
    "infomapWrapper.addTrigram(4, 2, 3)\n",
    "infomapWrapper.addTrigram(4, 3, 3)\n",
    "\n",
    "infomapWrapper.run()\n",
    "\n",
    "tree = infomapWrapper.tree\n",
    "\n",
    "print(\"Found %d modules with codelength: %f\" % (tree.numTopModules(), tree.codelength()))\n",
    "\n",
    "print(\"\\n#previousNode node module\")\n",
    "for node in tree.leafIter():\n",
    "    print(\"%d %d %d\" % (node.stateIndex, node.physIndex, node.moduleIndex()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As seen in the expanded output above, node `2` is represented by four state nodes partitioned into two modules depending on where you come from; if you go to node `2` from node `0` or `1` you are still considered to be in module `1`, but if you go to node `2` from node `3` and `4` you are still considered to be in module `0`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Multi-layer networks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 3 modules with codelength: 0.865437\n",
      "\n",
      "#layer node module:\n",
      "2 1 0\n",
      "1 2 0\n",
      "2 3 1\n",
      "3 2 1\n",
      "0 0 2\n"
     ]
    }
   ],
   "source": [
    "infomapWrapper = infomap.MemInfomap(\"--two-level --expanded\")\n",
    "\n",
    "# from (layer, node) to (layer, node) weight\n",
    "infomapWrapper.addMultiplexLink(2, 1, 1, 2, 1.0)\n",
    "infomapWrapper.addMultiplexLink(1, 2, 2, 1, 1.0)\n",
    "infomapWrapper.addMultiplexLink(3, 2, 2, 3, 1.0)\n",
    "\n",
    "infomapWrapper.run()\n",
    "\n",
    "tree = infomapWrapper.tree\n",
    "\n",
    "print(\"Found %d modules with codelength: %f\" % (tree.numTopModules(), tree.codelength()))\n",
    "\n",
    "print(\"\\n#layer node module:\")\n",
    "for node in tree.leafIter():\n",
    "    print(\"%d %d %d\" % (node.stateIndex, node.physIndex, node.moduleIndex()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### General state networks\n",
    "The [state format](http://www.mapequation.org/code.html#State-format) describes the exact network used internally by Infomap. It can model both ordinary networks and memory networks (of variable order)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wrote state network to file '/var/folders/cm/8zsqg6xn2911z_jpkcxyxb4w0000gn/T/stateNetwork.net'\n"
     ]
    }
   ],
   "source": [
    "import tempfile\n",
    "\n",
    "stateNetwork = \"\"\"\n",
    "*Vertices 4\n",
    "1 \"PRE\"\n",
    "2 \"SCIENCE\"\n",
    "3 \"PRL\"\n",
    "4 \"BIO\"\n",
    "# *ngrams\n",
    "# 1 2 3\n",
    "# 1 2 2 3\n",
    "# 4 2 4\n",
    "*States\n",
    "1 2 \"1 2\"\n",
    "2 3 \"2 3\"\n",
    "3 2 \"1 2 2\"\n",
    "4 2 \"4 2\"\n",
    "5 4 \"2 4\"\n",
    "*Links\n",
    "1 2\n",
    "3 2\n",
    "4 5\n",
    "\"\"\"\n",
    "\n",
    "filename = \"%s/stateNetwork.net\" % tempfile.gettempdir()\n",
    "with open(filename, 'w') as fp:\n",
    "    fp.write(stateNetwork)\n",
    "print(\"Wrote state network to file '{}'\".format(filename))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 2 modules with codelength: 0.000000\n",
      "State-expanded clusters:\n",
      "#stateIndex physicalIndex module name:\n",
      "1 2 0 \"2 PRL\"\n",
      "0 1 0 \"1 SCIENCE\"\n",
      "2 1 0 \"3 SCIENCE\"\n",
      "4 3 1 \"5 BIO\"\n",
      "3 1 1 \"4 SCIENCE\"\n"
     ]
    }
   ],
   "source": [
    "infomapWrapper = infomap.MemInfomap(\"-i states --expanded\")\n",
    "\n",
    "infomapWrapper.readInputData(filename)\n",
    "\n",
    "infomapWrapper.run()\n",
    "\n",
    "tree = infomapWrapper.tree\n",
    "\n",
    "print(\"Found %d modules with codelength: %f\" % (tree.numTopModules(), tree.codelength()))\n",
    "\n",
    "print(\"State-expanded clusters:\\n#stateIndex physicalIndex module name:\")\n",
    "for node in tree.leafIter():\n",
    "    print(\"%d %d %d \\\"%s\\\"\" % (node.stateIndex, node.physIndex, node.moduleIndex(), node.data.name))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Infomap + NetworkX\n",
    "Generate and draw a network with NetworkX, colored\n",
    "according to the community structure found by Infomap."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import networkx as nx\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.colors as colors\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def findCommunities(G):\n",
    "    \"\"\"\n",
    "    Partition network with the Infomap algorithm.\n",
    "    Annotates nodes with 'community' id and return number of communities found.\n",
    "    \"\"\"\n",
    "    infomapWrapper = infomap.Infomap(\"--two-level --silent\")\n",
    "\n",
    "    print(\"Building Infomap network from a NetworkX graph...\")\n",
    "    for e in G.edges():\n",
    "        infomapWrapper.addLink(*e)\n",
    "\n",
    "    print(\"Find communities with Infomap...\")\n",
    "    infomapWrapper.run();\n",
    "\n",
    "    tree = infomapWrapper.tree\n",
    "\n",
    "    print(\"Found %d modules with codelength: %f\" % (tree.numTopModules(), tree.codelength()))\n",
    "\n",
    "    communities = {}\n",
    "    for node in tree.leafIter():\n",
    "        communities[node.originalLeafIndex] = node.moduleIndex()\n",
    "\n",
    "    nx.set_node_attributes(G, name='community', values=communities)\n",
    "    return tree.numTopModules()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def drawNetwork(G):\n",
    "    # position map\n",
    "    pos = nx.spring_layout(G)\n",
    "    # community ids\n",
    "    communities = [v for k,v in nx.get_node_attributes(G, 'community').items()]\n",
    "    numCommunities = max(communities) + 1\n",
    "    # color map from http://colorbrewer2.org/\n",
    "    cmapLight = colors.ListedColormap(['#a6cee3', '#b2df8a', '#fb9a99', '#fdbf6f', '#cab2d6'], 'indexed', numCommunities)\n",
    "    cmapDark = colors.ListedColormap(['#1f78b4', '#33a02c', '#e31a1c', '#ff7f00', '#6a3d9a'], 'indexed', numCommunities)\n",
    "\n",
    "    # Draw edges\n",
    "    nx.draw_networkx_edges(G, pos)\n",
    "\n",
    "    # Draw nodes\n",
    "    nodeCollection = nx.draw_networkx_nodes(G,\n",
    "        pos = pos,\n",
    "        node_color = communities,\n",
    "        cmap = cmapLight\n",
    "    )\n",
    "    # Set node border color to the darker shade\n",
    "    darkColors = [cmapDark(v) for v in communities]\n",
    "    nodeCollection.set_edgecolor(darkColors)\n",
    "\n",
    "    # Draw node labels\n",
    "    for n in G.nodes():\n",
    "        plt.annotate(n,\n",
    "            xy = pos[n],\n",
    "            textcoords = 'offset points',\n",
    "            horizontalalignment = 'center',\n",
    "            verticalalignment = 'center',\n",
    "            xytext = [0, 0],\n",
    "            color = cmapDark(communities[n])\n",
    "        )\n",
    "\n",
    "    plt.axis('off')\n",
    "    # plt.savefig(\"karate.png\")\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Building Infomap network from a NetworkX graph...\n",
      "Find communities with Infomap...\n",
      "Found 3 modules with codelength: 4.311793\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n2J9MjQqKUl8WXQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e8d6790>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "G=nx.karate_club_graph()\n",
    "\n",
    "findCommunities(G)\n",
    "\n",
    "drawNetwork(G)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
