{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MODULARITY: 0.408949901457\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1056a9e50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\niy98rxcXF/tev3DZC2VnZ+Nyuc57zuVyXVW3y5MnT/r+A77YsllZWdSrV6/EcllZWbhcrhJDgVfr\nt9s7167k2Wef9T1nGMZ57/ntv5PT6QTOtE84efIkwcHBBAYGltjG5T7X5s2b069fPxYvXkx6ejqt\nW7emb9++vt5Acn1QARJLCggIoKCgwPf4WgrTpWRlZfn+7na7ff/Z1a5dm169evHf//3fl1z2cl0h\na9WqhdvtLrGt22677YqZQkJCcDgcuN1uGjRoAEBmZqav0Vft2rU5cuRIieVq165NZmYmXq+3RBHy\n9/c/77P7bSG9GJfLhdPpJDk5+Zq7X7pcLnJzc8nLyytRhK70uXbq1IlOnTqRn5/Pu+++y0cffcSg\nQYOuaftStWkITiypUaNGHDhwgF9//ZWioiIWL15c5nWuWLGCY8eOkZuby5IlS+jYsSMA99xzD19/\n/TW7du0CzhzZb968ucQZ1KW0adOGw4cPs27dOt+QWnp6Om3btr3isn5+ftxxxx18/PHH5Ofn43a7\n+fzzz+nSpQsA3bp1Y9myZezZsweAjIwMMjMziYmJoVatWixatIiCggKKiorYuXMnAFFRUezYsYPM\nzEzy8vIu2ib6t0JDQ2nVqhULFy7k9OnTGIbBkSNHSE1NvWL+0NBQbr31VubPn8+pU6fweDzs2LED\nuPzneujQIbZv305xcTEOhwOn01nqszmpunQGJFXW5Y6269evzx/+8AfefPNN/P39efzxx/nmm2/K\ntK1OnToxbtw4srOziY+P9800i46O5rnnnuP9998nIyMDp9NJXFwcLVq0uGJOgODgYF599VU++OAD\n5s+fz0033cRrr71GcHDwVWV7+umnSU5OZtCgQTidTu655x7uvvtu4Eyb59zcXN5++22ys7OpU6cO\ngwYNwuVyMWLECJKTk0lMTMRms9G5c2eaNWtGq1at6NixI8OHD6dGjRo8+OCDV7weNWjQID766CNe\neukl8vPzqVu3Lg8++OBV5R88eDALFizgxRdfxOPxcPPNN9O8efPLfq7FxcUsWrSIgwcP4nA4iI2N\n5bnnnruq7Yl1qCGdiIiYQue0IiJiChUgERExhQqQiIiYQgVIRERMoQIkIiKmUAESERFTqACJiIgp\nVIBERMQUKkAiImKK/w+qYZYMcmS18wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11fcab850>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "from scipy.io import loadmat\n",
    "from coclust.CoclustMod import CoclustMod\n",
    "from coclust.utils.evaluation import (plot_top_terms,\n",
    "                                      get_term_graph,\n",
    "                                      plot_criterion)\n",
    "\n",
    "# Retrieve the Classic3  document-term matrix from a matlab file\n",
    "file_name = \"../datasets/classic3.mat\"\n",
    "matlab_dict = loadmat(file_name)\n",
    "\n",
    "X = matlab_dict['A']\n",
    "\n",
    "# Create and fit a model with 3 co-clusters\n",
    "model = CoclustMod(n_clusters=3, random_state=0)\n",
    "model.fit(X)\n",
    "\n",
    "# Plot modularities\n",
    "print(\"MODULARITY: %s\" % model.modularity)\n",
    "plot_criterion(model.modularities, \"Modularities\")\n",
    "\n",
    "# plot terms\n",
    "terms = [str(x[0][0]) for x in matlab_dict['ms']]\n",
    "plot_top_terms(model, X, terms, n_cluster=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "graph = get_term_graph(X, model, terms, 2, 50, 25)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "require.config({\n",
       "  paths: {\n",
       "      d3: '//cdnjs.cloudflare.com/ajax/libs/d3/3.4.8/d3.min'\n",
       "  }\n",
       "});"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%javascript\n",
    "require.config({\n",
    "  paths: {\n",
    "      d3: '//cdnjs.cloudflare.com/ajax/libs/d3/3.4.8/d3.min'\n",
    "  }\n",
    "});"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "\n",
       "           window.graph={'nodes': [{'group': 0, 'name': 'boundary'}, {'group': 0, 'name': 'pressure'}, {'group': 0, 'name': 'layer'}, {'group': 0, 'name': 'mach'}, {'group': 0, 'name': 'theory'}, {'group': 0, 'name': 'shock'}, {'group': 0, 'name': 'heat'}, {'group': 0, 'name': 'method'}, {'group': 0, 'name': 'wing'}, {'group': 0, 'name': 'supersonic'}, {'group': 0, 'name': 'surface'}, {'group': 0, 'name': 'body'}, {'group': 0, 'name': 'effects'}, {'group': 0, 'name': 'transfer'}, {'group': 0, 'name': 'temperature'}, {'group': 0, 'name': 'obtained'}, {'group': 0, 'name': 'laminar'}, {'group': 0, 'name': 'solution'}, {'group': 0, 'name': 'velocity'}, {'group': 0, 'name': 'equations'}, {'group': 0, 'name': 'ratio'}, {'group': 0, 'name': 'hypersonic'}, {'group': 0, 'name': 'jet'}, {'group': 0, 'name': 'experimental'}, {'group': 0, 'name': 'effect'}, {'group': 0, 'name': 'plate'}, {'group': 0, 'name': 'free'}, {'group': 0, 'name': 'conditions'}, {'group': 0, 'name': 'presented'}, {'group': 0, 'name': 'numbers'}, {'group': 0, 'name': 'distribution'}, {'group': 0, 'name': 'dimensional'}, {'group': 0, 'name': 'stream'}, {'group': 0, 'name': 'reynolds'}, {'group': 0, 'name': 'lift'}, {'group': 0, 'name': 'range'}, {'group': 0, 'name': 'high'}, {'group': 0, 'name': 'solutions'}, {'group': 0, 'name': 'air'}, {'group': 0, 'name': 'problem'}, {'group': 0, 'name': 'bodies'}, {'group': 0, 'name': 'case'}, {'group': 0, 'name': 'buckling'}, {'group': 0, 'name': 'wave'}, {'group': 0, 'name': 'turbulent'}, {'group': 0, 'name': 'drag'}, {'group': 0, 'name': 'investigation'}, {'group': 0, 'name': 'edge'}, {'group': 0, 'name': 'shown'}, {'group': 0, 'name': 'flat'}, {'group': 1, 'name': 'theoretical'}, {'group': 1, 'name': 'optimum'}, {'group': 1, 'name': 'bluff'}, {'group': 1, 'name': 'maximum'}, {'group': 1, 'name': 'rm'}, {'group': 1, 'name': 'tn'}, {'group': 1, 'name': 'ae'}, {'group': 1, 'name': 'minimum'}, {'group': 1, 'name': 'li'}, {'group': 1, 'name': 'prandtl'}, {'group': 1, 'name': 'triangular'}, {'group': 1, 'name': 'detachment'}, {'group': 1, 'name': 'percent'}, {'group': 1, 'name': 'similarity'}, {'group': 1, 'name': 'blast'}, {'group': 1, 'name': 'approximation'}, {'group': 1, 'name': 'plane'}, {'group': 1, 'name': 'functions'}, {'group': 1, 'name': 'disturbances'}, {'group': 1, 'name': 'experiment'}, {'group': 1, 'name': 'cruciform'}, {'group': 1, 'name': 'app'}, {'group': 1, 'name': 'probstein'}, {'group': 1, 'name': 'bow'}, {'group': 1, 'name': 'oblique'}, {'group': 1, 'name': 'hot'}, {'group': 1, 'name': 'expansion'}, {'group': 1, 'name': 'gas'}, {'group': 1, 'name': 'low'}, {'group': 1, 'name': 'variation'}, {'group': 1, 'name': 'initial'}, {'group': 1, 'name': 'rep'}, {'group': 1, 'name': 'scs'}, {'group': 1, 'name': 'thermal'}, {'group': 1, 'name': 'cantilever'}, {'group': 1, 'name': 'load'}, {'group': 1, 'name': 'form'}, {'group': 1, 'name': 'compressors'}, {'group': 1, 'name': 'cylinders'}, {'group': 1, 'name': 'experiments'}, {'group': 1, 'name': 'temperatures'}, {'group': 1, 'name': 'numerical'}, {'group': 1, 'name': 'nozzles'}, {'group': 1, 'name': 'slender'}, {'group': 1, 'name': 'naca'}, {'group': 1, 'name': 'classical'}, {'group': 1, 'name': 'wake'}, {'group': 1, 'name': 'newtonian'}, {'group': 1, 'name': 'columns'}, {'group': 1, 'name': 'tube'}, {'group': 1, 'name': 'tangent'}, {'group': 1, 'name': 'math'}, {'group': 1, 'name': 'applicable'}, {'group': 1, 'name': 'base'}, {'group': 1, 'name': 'density'}, {'group': 1, 'name': 'perigee'}, {'group': 1, 'name': 'nose'}, {'group': 1, 'name': 'weak'}, {'group': 1, 'name': 'wall'}, {'group': 1, 'name': 'span'}, {'group': 1, 'name': 'nasa'}, {'group': 1, 'name': 'thin'}, {'group': 1, 'name': 'skin'}, {'group': 1, 'name': 'langley'}, {'group': 1, 'name': 'exhaust'}, {'group': 1, 'name': 'resultant'}, {'group': 1, 'name': 'viscous'}, {'group': 1, 'name': 'transient'}, {'group': 1, 'name': 'exit'}, {'group': 1, 'name': 'feet'}, {'group': 1, 'name': 'arbitrary'}, {'group': 1, 'name': 'flux'}, {'group': 1, 'name': 'biot'}, {'group': 1, 'name': 'parameters'}, {'group': 1, 'name': 'approximate'}, {'group': 1, 'name': 'viscosity'}, {'group': 1, 'name': 'combinations'}, {'group': 1, 'name': 'agreement'}, {'group': 1, 'name': 'tilt'}, {'group': 1, 'name': 'earth'}, {'group': 1, 'name': 'interference'}, {'group': 1, 'name': 'properties'}, {'group': 1, 'name': 'compressive'}, {'group': 1, 'name': 'calculations'}, {'group': 1, 'name': 'jets'}, {'group': 1, 'name': 'integrations'}, {'group': 1, 'name': 'mass'}, {'group': 1, 'name': 'pressures'}, {'group': 1, 'name': 'combination'}, {'group': 1, 'name': 'similitude'}, {'group': 1, 'name': 'values'}, {'group': 1, 'name': 'thermodynamic'}, {'group': 1, 'name': 'valid'}, {'group': 1, 'name': 'locations'}, {'group': 1, 'name': 'angle'}, {'group': 1, 'name': 'variable'}, {'group': 1, 'name': 'cheng'}, {'group': 1, 'name': 'acoustic'}, {'group': 1, 'name': 'contraction'}, {'group': 1, 'name': 'roughness'}, {'group': 1, 'name': 'disturbance'}, {'group': 1, 'name': 'inviscid'}, {'group': 1, 'name': 'bluntness'}, {'group': 1, 'name': 'sound'}, {'group': 1, 'name': 'magnetic'}, {'group': 1, 'name': 'interaction'}, {'group': 1, 'name': 'fluid'}, {'group': 1, 'name': 'momentum'}, {'group': 1, 'name': 'small'}, {'group': 1, 'name': 'shell'}, {'group': 1, 'name': 'thick'}, {'group': 1, 'name': 'delta'}, {'group': 1, 'name': 'slope'}, {'group': 1, 'name': 'moore'}, {'group': 1, 'name': 'chord'}, {'group': 1, 'name': 'heats'}, {'group': 1, 'name': 'propagation'}, {'group': 1, 'name': 'show'}, {'group': 1, 'name': 'local'}, {'group': 1, 'name': 'shape'}, {'group': 1, 'name': 'axial'}, {'group': 1, 'name': 'tsien'}, {'group': 1, 'name': 'yaw'}, {'group': 1, 'name': 'atmosphere'}, {'group': 1, 'name': 'series'}, {'group': 1, 'name': 'incompressible'}, {'group': 1, 'name': 'direction'}, {'group': 1, 'name': 'front'}, {'group': 1, 'name': 'integral'}, {'group': 1, 'name': 'aerodynamic'}, {'group': 1, 'name': 'order'}, {'group': 1, 'name': 'wings'}, {'group': 1, 'name': 'subsonic'}, {'group': 1, 'name': 'friction'}, {'group': 1, 'name': 'equation'}, {'group': 1, 'name': 'edges'}, {'group': 1, 'name': 'row'}, {'group': 1, 'name': 'point'}, {'group': 1, 'name': 'creep'}, {'group': 1, 'name': 'differential'}, {'group': 1, 'name': 'accurate'}, {'group': 1, 'name': 'exact'}, {'group': 1, 'name': 'obtainable'}, {'group': 1, 'name': 'parallel'}, {'group': 1, 'name': 'spanwise'}, {'group': 1, 'name': 'compression'}, {'group': 1, 'name': 'channel'}, {'group': 1, 'name': 'deformation'}, {'group': 1, 'name': 'outer'}, {'group': 1, 'name': 'blunt'}, {'group': 1, 'name': 'calculation'}, {'group': 1, 'name': 'distance'}, {'group': 1, 'name': 'gases'}, {'group': 1, 'name': 'waves'}, {'group': 1, 'name': 'rates'}, {'group': 1, 'name': 'cylinder'}, {'group': 1, 'name': 'flaps'}, {'group': 1, 'name': 'flows'}, {'group': 1, 'name': 'constant'}, {'group': 1, 'name': 'theories'}, {'group': 1, 'name': 'ordinary'}, {'group': 1, 'name': 'sharp'}, {'group': 1, 'name': 'swept'}, {'group': 1, 'name': 'surfaces'}, {'group': 1, 'name': 'tests'}, {'group': 1, 'name': 'vortices'}, {'group': 1, 'name': 'integration'}, {'group': 1, 'name': 'incident'}, {'group': 1, 'name': 'adjacent'}, {'group': 1, 'name': 'gradient'}, {'group': 1, 'name': 'planform'}, {'group': 1, 'name': 'profiles'}, {'group': 1, 'name': 'strong'}, {'group': 1, 'name': 'engine'}, {'group': 1, 'name': 'smooth'}, {'group': 1, 'name': 'buckle'}, {'group': 1, 'name': 'gust'}, {'group': 1, 'name': 'static'}, {'group': 1, 'name': 'turbojet'}, {'group': 1, 'name': 'diameter'}, {'group': 1, 'name': 'length'}, {'group': 1, 'name': 'regime'}, {'group': 1, 'name': 'mixtures'}, {'group': 1, 'name': 'moment'}, {'group': 1, 'name': 'ballistic'}, {'group': 1, 'name': 'limit'}, {'group': 1, 'name': 'coefficient'}, {'group': 1, 'name': 'separates'}, {'group': 1, 'name': 'nozzle'}, {'group': 1, 'name': 'simple'}, {'group': 1, 'name': 'ground'}, {'group': 1, 'name': 'attack'}, {'group': 1, 'name': 'fineness'}, {'group': 1, 'name': 'satellite'}, {'group': 1, 'name': 'accuracy'}, {'group': 1, 'name': 'region'}, {'group': 1, 'name': 'tunnel'}, {'group': 1, 'name': 'stationary'}, {'group': 1, 'name': 'spherical'}, {'group': 1, 'name': 'afterbodies'}, {'group': 1, 'name': 'turbulence'}, {'group': 1, 'name': 'distributions'}, {'group': 1, 'name': 'good'}, {'group': 1, 'name': 'entropy'}, {'group': 1, 'name': 'revolution'}, {'group': 1, 'name': 'speeds'}, {'group': 1, 'name': 'combustion'}, {'group': 1, 'name': 'field'}, {'group': 1, 'name': 'flight'}, {'group': 1, 'name': 'convection'}, {'group': 1, 'name': 'navier'}, {'group': 1, 'name': 'stagnation'}, {'group': 1, 'name': 'transverse'}, {'group': 1, 'name': 'deflection'}, {'group': 1, 'name': 'reflection'}, {'group': 1, 'name': 'transition'}, {'group': 1, 'name': 'stokes'}, {'group': 1, 'name': 'conduction'}, {'group': 1, 'name': 'limitation'}, {'group': 1, 'name': 'coefficients'}, {'group': 1, 'name': 'separation'}, {'group': 1, 'name': 'angles'}, {'group': 1, 'name': 'measurements'}, {'group': 1, 'name': 'pohlhausen'}, {'group': 1, 'name': 'transitional'}, {'group': 1, 'name': 'characteristics'}, {'group': 1, 'name': 'reciprocal'}, {'group': 1, 'name': 'compressible'}, {'group': 1, 'name': 'vorticity'}, {'group': 1, 'name': 'rocket'}, {'group': 1, 'name': 'ratios'}, {'group': 1, 'name': 'comparison'}, {'group': 1, 'name': 'modifications'}, {'group': 1, 'name': 'losses'}, {'group': 1, 'name': 'shocks'}, {'group': 1, 'name': 'aspect'}, {'group': 1, 'name': 'shells'}, {'group': 1, 'name': 'assumptions'}, {'group': 1, 'name': 'shapes'}, {'group': 1, 'name': 'layers'}, {'group': 1, 'name': 'stress'}, {'group': 1, 'name': 'expressions'}, {'group': 1, 'name': 'rogers'}, {'group': 1, 'name': 'predictions'}, {'group': 1, 'name': 'orbits'}, {'group': 1, 'name': 'thrust'}, {'group': 1, 'name': 'downstream'}, {'group': 1, 'name': 'mixture'}, {'group': 1, 'name': 'discontinuous'}, {'group': 1, 'name': 'vortex'}, {'group': 1, 'name': 'magnitude'}, {'group': 1, 'name': 'convex'}, {'group': 1, 'name': 'determine'}, {'group': 1, 'name': 'deceleration'}, {'group': 1, 'name': 'elastic'}, {'group': 1, 'name': 'plastic'}, {'group': 1, 'name': 'plates'}, {'group': 1, 'name': 'profile'}, {'group': 1, 'name': 'helium'}, {'group': 1, 'name': 'adiabatic'}, {'group': 1, 'name': 'portions'}, {'group': 1, 'name': 'trajectory'}, {'group': 1, 'name': 'imperfections'}, {'group': 1, 'name': 'vehicle'}, {'group': 1, 'name': 'cylindrical'}, {'group': 1, 'name': 'isothermal'}, {'group': 1, 'name': 'infinite'}, {'group': 1, 'name': 'hemisphere'}], 'links': [{'source': 0, 'target': 2, 'value': 0.86708031044429534}, {'source': 0, 'target': 16, 'value': 0.57786094460339676}, {'source': 0, 'target': 50, 'value': 0.45915869795989134}, {'source': 0, 'target': 51, 'value': 0.43686929071269065}, {'source': 0, 'target': 44, 'value': 0.38937570698699214}, {'source': 0, 'target': 18, 'value': 0.36771144458319083}, {'source': 0, 'target': 13, 'value': 0.34099621808818203}, {'source': 0, 'target': 27, 'value': 0.33650254952196018}, {'source': 0, 'target': 52, 'value': 0.33317358135174502}, {'source': 0, 'target': 10, 'value': 0.33136893163142128}, {'source': 0, 'target': 53, 'value': 0.32733328864276334}, {'source': 0, 'target': 33, 'value': 0.32110365927721801}, {'source': 0, 'target': 19, 'value': 0.31734715652719941}, {'source': 0, 'target': 54, 'value': 0.31604036974514255}, {'source': 0, 'target': 55, 'value': 0.31574705527001456}, {'source': 0, 'target': 56, 'value': 0.31380177495832684}, {'source': 0, 'target': 6, 'value': 0.31231052219044914}, {'source': 0, 'target': 57, 'value': 0.31105704998342626}, {'source': 0, 'target': 37, 'value': 0.30565382911027117}, {'source': 0, 'target': 58, 'value': 0.29990626180235325}, {'source': 0, 'target': 17, 'value': 0.29857239398737195}, {'source': 0, 'target': 59, 'value': 0.29502559613000467}, {'source': 0, 'target': 60, 'value': 0.29329231699674579}, {'source': 1, 'target': 3, 'value': 0.47308227532630209}, {'source': 1, 'target': 22, 'value': 0.38318951317303929}, {'source': 1, 'target': 32, 'value': 0.37571596949912794}, {'source': 1, 'target': 61, 'value': 0.36708696177736622}, {'source': 1, 'target': 30, 'value': 0.36508795350802642}, {'source': 1, 'target': 62, 'value': 0.35094183531456391}, {'source': 1, 'target': 26, 'value': 0.34063643286834044}, {'source': 1, 'target': 20, 'value': 0.33646129756387361}, {'source': 1, 'target': 46, 'value': 0.33126230340225271}, {'source': 1, 'target': 63, 'value': 0.30820994818442254}, {'source': 1, 'target': 63, 'value': 0.30800114839423437}, {'source': 1, 'target': 23, 'value': 0.30707820251590617}, {'source': 1, 'target': 64, 'value': 0.30559602697242516}, {'source': 1, 'target': 12, 'value': 0.30074717682191365}, {'source': 1, 'target': 24, 'value': 0.29736480620361599}, {'source': 1, 'target': 35, 'value': 0.29258443174397075}, {'source': 1, 'target': 65, 'value': 0.29075958195915375}, {'source': 1, 'target': 66, 'value': 0.29025135407904318}, {'source': 1, 'target': 0, 'value': 0.2816988749717963}, {'source': 1, 'target': 67, 'value': 0.2807093843357869}, {'source': 1, 'target': 9, 'value': 0.27908271276523394}, {'source': 1, 'target': 2, 'value': 0.27802983581068297}, {'source': 1, 'target': 10, 'value': 0.27246061657762022}, {'source': 2, 'target': 16, 'value': 0.56037166098885238}, {'source': 2, 'target': 67, 'value': 0.3768879020866393}, {'source': 2, 'target': 44, 'value': 0.37513713659262582}, {'source': 2, 'target': 13, 'value': 0.3453989316297239}, {'source': 2, 'target': 67, 'value': 0.33719026446614575}, {'source': 2, 'target': 33, 'value': 0.33040919119440865}, {'source': 2, 'target': 67, 'value': 0.32953246137709352}, {'source': 2, 'target': 6, 'value': 0.32442410657028825}, {'source': 2, 'target': 67, 'value': 0.32246493837292528}, {'source': 2, 'target': 18, 'value': 0.32243436439959067}, {'source': 2, 'target': 67, 'value': 0.32151697920569011}, {'source': 2, 'target': 67, 'value': 0.31871650388424444}, {'source': 2, 'target': 67, 'value': 0.31855752230059076}, {'source': 2, 'target': 67, 'value': 0.31663621860547214}, {'source': 2, 'target': 10, 'value': 0.3158212530904243}, {'source': 2, 'target': 19, 'value': 0.31480609510607155}, {'source': 2, 'target': 68, 'value': 0.30416631281065565}, {'source': 2, 'target': 68, 'value': 0.30355195109136335}, {'source': 2, 'target': 68, 'value': 0.29719797880003074}, {'source': 2, 'target': 49, 'value': 0.29329339480346805}, {'source': 2, 'target': 69, 'value': 0.28775547229210485}, {'source': 3, 'target': 29, 'value': 0.62937872206470502}, {'source': 3, 'target': 46, 'value': 0.39233508872728079}, {'source': 3, 'target': 35, 'value': 0.37400181220773204}, {'source': 3, 'target': 32, 'value': 0.35928321437654825}, {'source': 3, 'target': 12, 'value': 0.34651544385840027}, {'source': 3, 'target': 69, 'value': 0.34526379950633485}, {'source': 3, 'target': 70, 'value': 0.33545872869590987}, {'source': 3, 'target': 26, 'value': 0.3335376478284795}, {'source': 3, 'target': 20, 'value': 0.33284324244550939}, {'source': 3, 'target': 5, 'value': 0.32387381453609959}, {'source': 3, 'target': 71, 'value': 0.31843841223040303}, {'source': 3, 'target': 72, 'value': 0.31690033392154465}, {'source': 3, 'target': 73, 'value': 0.31578765632506861}, {'source': 3, 'target': 9, 'value': 0.31293935662805994}, {'source': 3, 'target': 33, 'value': 0.29634849421016202}, {'source': 3, 'target': 49, 'value': 0.2933436846478778}, {'source': 3, 'target': 74, 'value': 0.27917802336348541}, {'source': 3, 'target': 24, 'value': 0.27649345711312884}, {'source': 3, 'target': 75, 'value': 0.27553925922465849}, {'source': 3, 'target': 76, 'value': 0.27503968620796237}, {'source': 4, 'target': 77, 'value': 0.31751046168258468}, {'source': 4, 'target': 78, 'value': 0.3039538826327074}, {'source': 4, 'target': 79, 'value': 0.29224734951213688}, {'source': 4, 'target': 9, 'value': 0.29029694084868279}, {'source': 4, 'target': 23, 'value': 0.28824392912652164}, {'source': 4, 'target': 79, 'value': 0.28226327048679689}, {'source': 4, 'target': 80, 'value': 0.28004545244124518}, {'source': 4, 'target': 80, 'value': 0.27725922820417043}, {'source': 4, 'target': 48, 'value': 0.27680055480090532}, {'source': 4, 'target': 81, 'value': 0.27244589458641327}, {'source': 4, 'target': 82, 'value': 0.26925999153302022}, {'source': 4, 'target': 83, 'value': 0.26604854954739576}, {'source': 4, 'target': 40, 'value': 0.26334169567697641}, {'source': 4, 'target': 84, 'value': 0.25646577644304319}, {'source': 4, 'target': 85, 'value': 0.25467886334178574}, {'source': 4, 'target': 86, 'value': 0.24838451815475801}, {'source': 4, 'target': 21, 'value': 0.24799959401312444}, {'source': 4, 'target': 87, 'value': 0.24373577341135316}, {'source': 4, 'target': 3, 'value': 0.2416875981692862}, {'source': 4, 'target': 88, 'value': 0.23904065297820404}, {'source': 4, 'target': 1, 'value': 0.23843174894648111}, {'source': 5, 'target': 43, 'value': 0.57465397683335273}, {'source': 5, 'target': 89, 'value': 0.39778073563155769}, {'source': 5, 'target': 90, 'value': 0.35880283221016024}, {'source': 5, 'target': 91, 'value': 0.30490634166181846}, {'source': 5, 'target': 21, 'value': 0.30486785045390818}, {'source': 5, 'target': 91, 'value': 0.30008927240002992}, {'source': 5, 'target': 92, 'value': 0.29789251038941067}, {'source': 5, 'target': 93, 'value': 0.2946761496341071}, {'source': 5, 'target': 94, 'value': 0.27399834704291026}, {'source': 5, 'target': 12, 'value': 0.26164388950393319}, {'source': 5, 'target': 95, 'value': 0.26087458826261162}, {'source': 5, 'target': 2, 'value': 0.25853727840202606}, {'source': 5, 'target': 96, 'value': 0.25544805031654499}, {'source': 5, 'target': 97, 'value': 0.25120392808905129}, {'source': 5, 'target': 98, 'value': 0.24552723700202675}, {'source': 5, 'target': 27, 'value': 0.24519860801109819}, {'source': 5, 'target': 99, 'value': 0.23988690649015745}, {'source': 5, 'target': 100, 'value': 0.23818098995633033}, {'source': 5, 'target': 35, 'value': 0.23494569288052933}, {'source': 5, 'target': 1, 'value': 0.23355018729795665}, {'source': 6, 'target': 13, 'value': 0.84478269976473108}, {'source': 6, 'target': 14, 'value': 0.43967507919935889}, {'source': 6, 'target': 16, 'value': 0.40076176733974644}, {'source': 6, 'target': 101, 'value': 0.34978336028804724}, {'source': 6, 'target': 101, 'value': 0.34752081631766263}, {'source': 6, 'target': 102, 'value': 0.32614737595376625}, {'source': 6, 'target': 103, 'value': 0.31023005263174902}, {'source': 6, 'target': 104, 'value': 0.28725301413742793}, {'source': 6, 'target': 104, 'value': 0.28309950414091573}, {'source': 6, 'target': 104, 'value': 0.27316656776005499}, {'source': 6, 'target': 104, 'value': 0.26950333433164325}, {'source': 6, 'target': 10, 'value': 0.26737006340666886}, {'source': 6, 'target': 104, 'value': 0.26463393475888231}, {'source': 6, 'target': 105, 'value': 0.25153942078885544}, {'source': 6, 'target': 105, 'value': 0.23753832635187902}, {'source': 6, 'target': 106, 'value': 0.23729654155308605}, {'source': 6, 'target': 41, 'value': 0.22501940190918596}, {'source': 6, 'target': 27, 'value': 0.21536598032622242}, {'source': 6, 'target': 33, 'value': 0.21415513896873811}, {'source': 6, 'target': 107, 'value': 0.21351496557964708}, {'source': 7, 'target': 108, 'value': 0.35183392903243838}, {'source': 7, 'target': 109, 'value': 0.32929954973127651}, {'source': 7, 'target': 110, 'value': 0.28688565048242098}, {'source': 7, 'target': 111, 'value': 0.28243166502254141}, {'source': 7, 'target': 37, 'value': 0.27648564777656592}, {'source': 7, 'target': 17, 'value': 0.27594165998860276}, {'source': 7, 'target': 30, 'value': 0.27049002444820075}, {'source': 7, 'target': 111, 'value': 0.26982346127508589}, {'source': 7, 'target': 112, 'value': 0.25602490509746884}, {'source': 7, 'target': 113, 'value': 0.24949921476897871}, {'source': 7, 'target': 114, 'value': 0.24930461136120663}, {'source': 7, 'target': 115, 'value': 0.24463130026436317}, {'source': 7, 'target': 115, 'value': 0.24178192706525656}, {'source': 7, 'target': 0, 'value': 0.23254147035510581}, {'source': 7, 'target': 19, 'value': 0.23054465230687898}, {'source': 7, 'target': 115, 'value': 0.22567275949434865}, {'source': 7, 'target': 115, 'value': 0.22413422954850673}, {'source': 7, 'target': 116, 'value': 0.22289600531570639}, {'source': 7, 'target': 116, 'value': 0.22274971389722745}, {'source': 8, 'target': 117, 'value': 0.41338397935334159}, {'source': 8, 'target': 118, 'value': 0.36286078855189657}, {'source': 8, 'target': 11, 'value': 0.35348949190611589}, {'source': 8, 'target': 119, 'value': 0.33641035109134693}, {'source': 8, 'target': 46, 'value': 0.31647540611009728}, {'source': 8, 'target': 120, 'value': 0.31268776301633605}, {'source': 8, 'target': 20, 'value': 0.30173872669710872}, {'source': 8, 'target': 121, 'value': 0.30087669508806442}, {'source': 8, 'target': 122, 'value': 0.29540009302272902}, {'source': 8, 'target': 34, 'value': 0.29365969488446098}, {'source': 8, 'target': 123, 'value': 0.29123410301576291}, {'source': 8, 'target': 124, 'value': 0.28155558311059914}, {'source': 8, 'target': 125, 'value': 0.27359484455264382}, {'source': 8, 'target': 126, 'value': 0.27174062772157931}, {'source': 8, 'target': 127, 'value': 0.26833948457971124}, {'source': 8, 'target': 128, 'value': 0.25927540230778373}, {'source': 8, 'target': 129, 'value': 0.25646064710635741}, {'source': 8, 'target': 130, 'value': 0.25268932275040468}, {'source': 8, 'target': 131, 'value': 0.24643998635195286}, {'source': 8, 'target': 132, 'value': 0.24486798219656153}, {'source': 8, 'target': 47, 'value': 0.24234335365316739}, {'source': 8, 'target': 133, 'value': 0.2392344037951542}, {'source': 9, 'target': 134, 'value': 0.33434256448225735}, {'source': 9, 'target': 135, 'value': 0.27731738856010002}, {'source': 9, 'target': 11, 'value': 0.25318355130248449}, {'source': 9, 'target': 32, 'value': 0.2364695272798899}, {'source': 9, 'target': 31, 'value': 0.23489910731471322}, {'source': 9, 'target': 135, 'value': 0.22579609985277221}, {'source': 9, 'target': 29, 'value': 0.2235682249575886}, {'source': 9, 'target': 135, 'value': 0.22090878680702941}, {'source': 9, 'target': 136, 'value': 0.21797618675745931}, {'source': 9, 'target': 12, 'value': 0.21717506975787962}, {'source': 9, 'target': 137, 'value': 0.21615849097122738}, {'source': 9, 'target': 138, 'value': 0.21253044113658578}, {'source': 9, 'target': 46, 'value': 0.21116099236577063}, {'source': 9, 'target': 138, 'value': 0.20857514936028751}, {'source': 9, 'target': 139, 'value': 0.20564288054419641}, {'source': 9, 'target': 139, 'value': 0.20554272550456507}, {'source': 9, 'target': 139, 'value': 0.20203279220545034}, {'source': 9, 'target': 139, 'value': 0.19485703274225347}, {'source': 9, 'target': 40, 'value': 0.19440891325430121}, {'source': 10, 'target': 27, 'value': 0.27605322640278224}, {'source': 10, 'target': 30, 'value': 0.26740094765258809}, {'source': 10, 'target': 13, 'value': 0.25673590952282094}, {'source': 10, 'target': 16, 'value': 0.25268046774260167}, {'source': 10, 'target': 3, 'value': 0.25176282961536384}, {'source': 10, 'target': 14, 'value': 0.2464298977205219}, {'source': 10, 'target': 140, 'value': 0.2327246125840246}, {'source': 10, 'target': 140, 'value': 0.23161198384258697}, {'source': 10, 'target': 140, 'value': 0.23069342122860856}, {'source': 10, 'target': 141, 'value': 0.22625275760956026}, {'source': 10, 'target': 49, 'value': 0.22316959712277687}, {'source': 10, 'target': 141, 'value': 0.22008195580791889}, {'source': 10, 'target': 7, 'value': 0.21828128447558418}, {'source': 10, 'target': 141, 'value': 0.21826538022425249}, {'source': 10, 'target': 46, 'value': 0.21544612636526358}, {'source': 10, 'target': 12, 'value': 0.21525601386059032}, {'source': 10, 'target': 141, 'value': 0.21358989413412727}, {'source': 10, 'target': 142, 'value': 0.21199259600692213}, {'source': 11, 'target': 142, 'value': 0.35555484444245727}, {'source': 11, 'target': 142, 'value': 0.3470283681624356}, {'source': 11, 'target': 142, 'value': 0.34275706986201959}, {'source': 11, 'target': 142, 'value': 0.3279330234387835}, {'source': 11, 'target': 143, 'value': 0.2783188255462099}, {'source': 11, 'target': 40, 'value': 0.27492712007235171}, {'source': 11, 'target': 144, 'value': 0.26334790288849191}, {'source': 11, 'target': 144, 'value': 0.26333212520207627}, {'source': 11, 'target': 45, 'value': 0.23302437729124537}, {'source': 11, 'target': 21, 'value': 0.22915972745574514}, {'source': 11, 'target': 144, 'value': 0.22842879236886032}, {'source': 11, 'target': 144, 'value': 0.22735269071287442}, {'source': 11, 'target': 145, 'value': 0.2217764794078021}, {'source': 11, 'target': 7, 'value': 0.21831840409283795}, {'source': 11, 'target': 145, 'value': 0.21670412573358711}, {'source': 11, 'target': 4, 'value': 0.21169884425405927}, {'source': 11, 'target': 1, 'value': 0.21140168363187423}, {'source': 11, 'target': 146, 'value': 0.20894178128177074}, {'source': 11, 'target': 3, 'value': 0.20798826748334429}, {'source': 11, 'target': 146, 'value': 0.20416567723819803}, {'source': 11, 'target': 146, 'value': 0.20395093860147592}, {'source': 11, 'target': 41, 'value': 0.20372749805022505}, {'source': 12, 'target': 146, 'value': 0.29000971705573325}, {'source': 12, 'target': 46, 'value': 0.28755517743024689}, {'source': 12, 'target': 0, 'value': 0.28459021369077925}, {'source': 12, 'target': 29, 'value': 0.27729979137101513}, {'source': 12, 'target': 20, 'value': 0.27260586139046594}, {'source': 12, 'target': 2, 'value': 0.2698952757514203}, {'source': 12, 'target': 36, 'value': 0.25204101594282713}, {'source': 12, 'target': 146, 'value': 0.24921929631409906}, {'source': 12, 'target': 48, 'value': 0.24698605534030035}, {'source': 12, 'target': 22, 'value': 0.24591432932197679}, {'source': 12, 'target': 24, 'value': 0.24570153146241824}, {'source': 12, 'target': 146, 'value': 0.23894827619855574}, {'source': 12, 'target': 32, 'value': 0.23722766116337893}, {'source': 12, 'target': 23, 'value': 0.23715637743883439}, {'source': 12, 'target': 35, 'value': 0.23573229829019254}, {'source': 12, 'target': 147, 'value': 0.23164264423286063}, {'source': 12, 'target': 33, 'value': 0.22959931615327181}, {'source': 12, 'target': 147, 'value': 0.22790314646218437}, {'source': 12, 'target': 4, 'value': 0.22163709704393478}, {'source': 13, 'target': 16, 'value': 0.41805413999064051}, {'source': 13, 'target': 147, 'value': 0.39943607868495451}, {'source': 13, 'target': 14, 'value': 0.36993455363857786}, {'source': 13, 'target': 147, 'value': 0.34978765164191727}, {'source': 13, 'target': 148, 'value': 0.32667131590588383}, {'source': 13, 'target': 148, 'value': 0.30796446067065286}, {'source': 13, 'target': 148, 'value': 0.29633894044839904}, {'source': 13, 'target': 148, 'value': 0.27994596699235447}, {'source': 13, 'target': 148, 'value': 0.26706451913832219}, {'source': 13, 'target': 148, 'value': 0.26348311574012356}, {'source': 13, 'target': 148, 'value': 0.26178466417048135}, {'source': 13, 'target': 148, 'value': 0.26040467794740318}, {'source': 13, 'target': 148, 'value': 0.2414305472684258}, {'source': 13, 'target': 149, 'value': 0.23926087476268321}, {'source': 13, 'target': 44, 'value': 0.2354880346927353}, {'source': 13, 'target': 150, 'value': 0.22576072076886786}, {'source': 13, 'target': 33, 'value': 0.21845155992177859}, {'source': 13, 'target': 151, 'value': 0.21561133374723837}, {'source': 13, 'target': 151, 'value': 0.21288039205551423}, {'source': 14, 'target': 151, 'value': 0.42117568590612942}, {'source': 14, 'target': 152, 'value': 0.4167616802383764}, {'source': 14, 'target': 16, 'value': 0.30566005634358712}, {'source': 14, 'target': 153, 'value': 0.30391247258037224}, {'source': 14, 'target': 153, 'value': 0.29616478375507543}, {'source': 14, 'target': 154, 'value': 0.28805142093577235}, {'source': 14, 'target': 0, 'value': 0.28072359661714369}, {'source': 14, 'target': 41, 'value': 0.26258362812446034}, {'source': 14, 'target': 2, 'value': 0.26003226164787197}, {'source': 14, 'target': 155, 'value': 0.25651709050745025}, {'source': 14, 'target': 156, 'value': 0.25349299030915001}, {'source': 14, 'target': 156, 'value': 0.24158172875302003}, {'source': 14, 'target': 157, 'value': 0.23915797240530887}, {'source': 14, 'target': 158, 'value': 0.23756872587380001}, {'source': 14, 'target': 159, 'value': 0.23265922025799823}, {'source': 14, 'target': 159, 'value': 0.2316232561424337}, {'source': 14, 'target': 160, 'value': 0.22949754945105286}, {'source': 14, 'target': 37, 'value': 0.22589763914101338}, {'source': 14, 'target': 161, 'value': 0.21962445321897017}, {'source': 14, 'target': 161, 'value': 0.21889458389969091}, {'source': 15, 'target': 161, 'value': 0.32460779577010263}, {'source': 15, 'target': 0, 'value': 0.30542873115889585}, {'source': 15, 'target': 7, 'value': 0.29993361322093237}, {'source': 15, 'target': 2, 'value': 0.28865951338855522}, {'source': 15, 'target': 1, 'value': 0.28566547612231369}, {'source': 15, 'target': 37, 'value': 0.27984577847893877}, {'source': 15, 'target': 41, 'value': 0.26743449699444194}, {'source': 15, 'target': 10, 'value': 0.26713073319224456}, {'source': 15, 'target': 4, 'value': 0.26428678834211067}, {'source': 15, 'target': 27, 'value': 0.26181278859781254}, {'source': 15, 'target': 33, 'value': 0.25907681956984113}, {'source': 15, 'target': 35, 'value': 0.25545585476512017}, {'source': 15, 'target': 23, 'value': 0.25087885047807834}, {'source': 15, 'target': 38, 'value': 0.2472077525130465}, {'source': 15, 'target': 17, 'value': 0.24656125858408637}, {'source': 15, 'target': 162, 'value': 0.24052949241802205}, {'source': 15, 'target': 19, 'value': 0.23596943845534873}, {'source': 15, 'target': 3, 'value': 0.23445749773249894}, {'source': 15, 'target': 30, 'value': 0.23356193709216641}, {'source': 15, 'target': 163, 'value': 0.23155721821765543}, {'source': 15, 'target': 164, 'value': 0.230483762863917}, {'source': 15, 'target': 18, 'value': 0.23040146298266792}, {'source': 16, 'target': 164, 'value': 0.34280172233134032}, {'source': 16, 'target': 164, 'value': 0.33977275295209991}, {'source': 16, 'target': 165, 'value': 0.33504158815112711}, {'source': 16, 'target': 44, 'value': 0.33182294986889893}, {'source': 16, 'target': 18, 'value': 0.32989932235665081}, {'source': 16, 'target': 165, 'value': 0.3087065956993158}, {'source': 16, 'target': 166, 'value': 0.30685326367004567}, {'source': 16, 'target': 166, 'value': 0.28701445812741594}, {'source': 16, 'target': 167, 'value': 0.25724787771376323}, {'source': 16, 'target': 167, 'value': 0.24953704024199744}, {'source': 16, 'target': 168, 'value': 0.24288355560308528}, {'source': 16, 'target': 168, 'value': 0.24283093212859114}, {'source': 16, 'target': 37, 'value': 0.24226342728662825}, {'source': 16, 'target': 49, 'value': 0.23925154475689964}, {'source': 16, 'target': 30, 'value': 0.23746198181309722}, {'source': 16, 'target': 32, 'value': 0.23713539386763874}, {'source': 16, 'target': 41, 'value': 0.23355069836692355}, {'source': 16, 'target': 168, 'value': 0.22934991864014331}, {'source': 17, 'target': 168, 'value': 0.35639939952088628}, {'source': 17, 'target': 19, 'value': 0.3328822954178402}, {'source': 17, 'target': 39, 'value': 0.31579841706514655}, {'source': 17, 'target': 169, 'value': 0.30900312668733887}, {'source': 17, 'target': 169, 'value': 0.30406792489021173}, {'source': 17, 'target': 18, 'value': 0.27900773578841598}, {'source': 17, 'target': 169, 'value': 0.26231400781718561}, {'source': 17, 'target': 169, 'value': 0.26091557006297789}, {'source': 17, 'target': 2, 'value': 0.25246155057644232}, {'source': 17, 'target': 170, 'value': 0.25153351659214296}, {'source': 17, 'target': 41, 'value': 0.24572545860198028}, {'source': 17, 'target': 171, 'value': 0.24430013465776237}, {'source': 17, 'target': 37, 'value': 0.2347666442765092}, {'source': 17, 'target': 30, 'value': 0.23471112639192479}, {'source': 17, 'target': 172, 'value': 0.23198024589171257}, {'source': 17, 'target': 173, 'value': 0.23158796194158168}, {'source': 17, 'target': 174, 'value': 0.22306329653954959}, {'source': 17, 'target': 175, 'value': 0.22265697721333608}, {'source': 17, 'target': 176, 'value': 0.21676959160681761}, {'source': 17, 'target': 25, 'value': 0.21539446046247931}, {'source': 18, 'target': 30, 'value': 0.34263136704172475}, {'source': 18, 'target': 176, 'value': 0.29012452730804528}, {'source': 18, 'target': 41, 'value': 0.26739243463539186}, {'source': 18, 'target': 32, 'value': 0.26292333701490389}, {'source': 18, 'target': 177, 'value': 0.26136792018239918}, {'source': 18, 'target': 177, 'value': 0.2546811822234098}, {'source': 18, 'target': 177, 'value': 0.25143025699879873}, {'source': 18, 'target': 178, 'value': 0.25004600040086339}, {'source': 18, 'target': 178, 'value': 0.24599501667780033}, {'source': 18, 'target': 19, 'value': 0.24387940796145183}, {'source': 18, 'target': 178, 'value': 0.24017553122542698}, {'source': 18, 'target': 178, 'value': 0.23835466257629126}, {'source': 18, 'target': 179, 'value': 0.23511387983785503}, {'source': 18, 'target': 179, 'value': 0.2305644142269489}, {'source': 18, 'target': 179, 'value': 0.22918878829583209}, {'source': 18, 'target': 1, 'value': 0.22481252859150461}, {'source': 18, 'target': 180, 'value': 0.22221908616123692}, {'source': 18, 'target': 37, 'value': 0.21876036031765855}, {'source': 18, 'target': 181, 'value': 0.21796311046794115}, {'source': 19, 'target': 181, 'value': 0.42189685402606569}, {'source': 19, 'target': 37, 'value': 0.37371477532034503}, {'source': 19, 'target': 181, 'value': 0.34152337648896391}, {'source': 19, 'target': 182, 'value': 0.30061689760960969}, {'source': 19, 'target': 183, 'value': 0.27602786107957994}, {'source': 19, 'target': 183, 'value': 0.27265894654813622}, {'source': 19, 'target': 184, 'value': 0.26841300195339102}, {'source': 19, 'target': 184, 'value': 0.24557719554995763}, {'source': 19, 'target': 41, 'value': 0.24346964442429511}, {'source': 19, 'target': 184, 'value': 0.23704972639571451}, {'source': 19, 'target': 184, 'value': 0.23363012249588558}, {'source': 19, 'target': 184, 'value': 0.22198629536240208}, {'source': 19, 'target': 48, 'value': 0.21940667092267435}, {'source': 19, 'target': 27, 'value': 0.21685302833859818}, {'source': 20, 'target': 184, 'value': 0.57459969698391511}, {'source': 20, 'target': 184, 'value': 0.33932580557427661}, {'source': 20, 'target': 34, 'value': 0.32485364097497071}, {'source': 20, 'target': 22, 'value': 0.30889487841094765}, {'source': 20, 'target': 45, 'value': 0.30580476526551731}, {'source': 20, 'target': 184, 'value': 0.29959503499010548}, {'source': 20, 'target': 185, 'value': 0.29214767592822732}, {'source': 20, 'target': 46, 'value': 0.29161542520867795}, {'source': 20, 'target': 186, 'value': 0.28906796294263049}, {'source': 20, 'target': 32, 'value': 0.28211017707546532}, {'source': 20, 'target': 186, 'value': 0.27151540171155697}, {'source': 20, 'target': 187, 'value': 0.25880617923305055}, {'source': 20, 'target': 187, 'value': 0.25282707174518015}, {'source': 20, 'target': 188, 'value': 0.25205129713413349}, {'source': 20, 'target': 35, 'value': 0.25070047769678483}, {'source': 20, 'target': 188, 'value': 0.24324008694749291}, {'source': 20, 'target': 188, 'value': 0.24035222022161232}, {'source': 20, 'target': 188, 'value': 0.23778512603958218}, {'source': 20, 'target': 189, 'value': 0.23354631386461638}, {'source': 21, 'target': 189, 'value': 0.38998013010017119}, {'source': 21, 'target': 190, 'value': 0.38324572959138009}, {'source': 21, 'target': 40, 'value': 0.35333303614765726}, {'source': 21, 'target': 190, 'value': 0.3323473402767958}, {'source': 21, 'target': 191, 'value': 0.28870704799712349}, {'source': 21, 'target': 192, 'value': 0.28702713421669079}, {'source': 21, 'target': 2, 'value': 0.2724202227632167}, {'source': 21, 'target': 192, 'value': 0.2691845390571041}, {'source': 21, 'target': 192, 'value': 0.26259354466149043}, {'source': 21, 'target': 192, 'value': 0.26178756593989361}, {'source': 21, 'target': 192, 'value': 0.25231202118261237}, {'source': 21, 'target': 192, 'value': 0.24960199129077656}, {'source': 21, 'target': 43, 'value': 0.22917421285495473}, {'source': 21, 'target': 193, 'value': 0.22889176734422095}, {'source': 21, 'target': 193, 'value': 0.22360437150043047}, {'source': 21, 'target': 194, 'value': 0.22264674666531442}, {'source': 21, 'target': 195, 'value': 0.21375011730865801}, {'source': 21, 'target': 195, 'value': 0.2125084214965699}, {'source': 21, 'target': 196, 'value': 0.21156308091319437}, {'source': 21, 'target': 196, 'value': 0.21091786297853468}, {'source': 22, 'target': 196, 'value': 0.53934939575950647}, {'source': 22, 'target': 197, 'value': 0.40112406205570972}, {'source': 22, 'target': 32, 'value': 0.38687244569141688}, {'source': 22, 'target': 198, 'value': 0.36952802295101095}, {'source': 22, 'target': 198, 'value': 0.36367459397671403}, {'source': 22, 'target': 199, 'value': 0.33647402800961307}, {'source': 22, 'target': 200, 'value': 0.3348624882125541}, {'source': 22, 'target': 26, 'value': 0.30180092249304724}, {'source': 22, 'target': 201, 'value': 0.30076094326405634}, {'source': 22, 'target': 201, 'value': 0.28530696980917447}, {'source': 22, 'target': 3, 'value': 0.27369190219304362}, {'source': 22, 'target': 202, 'value': 0.26822693742275761}, {'source': 22, 'target': 202, 'value': 0.25905630569102661}, {'source': 22, 'target': 203, 'value': 0.24113216560415085}, {'source': 22, 'target': 204, 'value': 0.23024515265955525}, {'source': 22, 'target': 205, 'value': 0.22588724354335415}, {'source': 22, 'target': 206, 'value': 0.22429405714762407}, {'source': 22, 'target': 207, 'value': 0.22339819396584754}, {'source': 23, 'target': 207, 'value': 0.42111069113600835}, {'source': 23, 'target': 207, 'value': 0.35789070022601133}, {'source': 23, 'target': 46, 'value': 0.33290519454996781}, {'source': 23, 'target': 35, 'value': 0.27840430798209387}, {'source': 23, 'target': 3, 'value': 0.27488660947900023}, {'source': 23, 'target': 207, 'value': 0.27027121941792859}, {'source': 23, 'target': 208, 'value': 0.24243118135459199}, {'source': 23, 'target': 209, 'value': 0.23352733720398636}, {'source': 23, 'target': 29, 'value': 0.23063750876717018}, {'source': 23, 'target': 209, 'value': 0.22936663456272841}, {'source': 23, 'target': 24, 'value': 0.22824304029847794}, {'source': 23, 'target': 209, 'value': 0.22719541078416158}, {'source': 23, 'target': 0, 'value': 0.22360426467936942}, {'source': 23, 'target': 27, 'value': 0.22068852062490721}, {'source': 23, 'target': 209, 'value': 0.21844923405263558}, {'source': 23, 'target': 210, 'value': 0.21581320098969223}, {'source': 24, 'target': 211, 'value': 0.26552621938323806}, {'source': 24, 'target': 0, 'value': 0.24622436221250255}, {'source': 24, 'target': 2, 'value': 0.23875921690291729}, {'source': 24, 'target': 211, 'value': 0.22649838577756476}, {'source': 24, 'target': 33, 'value': 0.22520778617923826}, {'source': 24, 'target': 31, 'value': 0.22317499730534565}, {'source': 24, 'target': 212, 'value': 0.21756385326330993}, {'source': 24, 'target': 212, 'value': 0.21342427941368608}, {'source': 24, 'target': 212, 'value': 0.21033022795936998}, {'source': 24, 'target': 46, 'value': 0.20903949234704339}, {'source': 24, 'target': 48, 'value': 0.20750118952802671}, {'source': 24, 'target': 20, 'value': 0.2040827589282794}, {'source': 24, 'target': 212, 'value': 0.20371667044491987}, {'source': 24, 'target': 212, 'value': 0.20291272535718446}, {'source': 24, 'target': 16, 'value': 0.20248208512506513}, {'source': 24, 'target': 212, 'value': 0.19989600089125117}, {'source': 24, 'target': 213, 'value': 0.19165610920612444}, {'source': 24, 'target': 214, 'value': 0.1910073388201369}, {'source': 24, 'target': 35, 'value': 0.19061432450023688}, {'source': 25, 'target': 49, 'value': 0.62320755580360665}, {'source': 25, 'target': 0, 'value': 0.29022661206569977}, {'source': 25, 'target': 2, 'value': 0.27393322651005492}, {'source': 25, 'target': 26, 'value': 0.26036705611189565}, {'source': 25, 'target': 32, 'value': 0.2354557781307425}, {'source': 25, 'target': 214, 'value': 0.22729336242562076}, {'source': 25, 'target': 16, 'value': 0.22701533689550424}, {'source': 25, 'target': 39, 'value': 0.2265680237954639}, {'source': 25, 'target': 214, 'value': 0.19640638549805831}, {'source': 25, 'target': 215, 'value': 0.19600158307197929}, {'source': 25, 'target': 216, 'value': 0.19353026336298357}, {'source': 25, 'target': 47, 'value': 0.19350095764394545}, {'source': 25, 'target': 1, 'value': 0.18911759047142618}, {'source': 25, 'target': 217, 'value': 0.18873607482048416}, {'source': 25, 'target': 217, 'value': 0.18687826016245193}, {'source': 25, 'target': 218, 'value': 0.18634456834425872}, {'source': 25, 'target': 219, 'value': 0.1817458498271329}, {'source': 25, 'target': 220, 'value': 0.18086768449910309}, {'source': 25, 'target': 13, 'value': 0.18014156333662026}, {'source': 25, 'target': 220, 'value': 0.17971116612597915}, {'source': 26, 'target': 32, 'value': 0.51462847756922536}, {'source': 26, 'target': 221, 'value': 0.28638380324638907}, {'source': 26, 'target': 221, 'value': 0.28524221609348799}, {'source': 26, 'target': 49, 'value': 0.25747373748041175}, {'source': 26, 'target': 2, 'value': 0.25486510117563216}, {'source': 26, 'target': 221, 'value': 0.2420552764613004}, {'source': 26, 'target': 41, 'value': 0.23690496257776891}, {'source': 26, 'target': 221, 'value': 0.23671942971266494}, {'source': 26, 'target': 222, 'value': 0.22570166182720214}, {'source': 26, 'target': 20, 'value': 0.22507806337455705}, {'source': 26, 'target': 46, 'value': 0.21998463279015193}, {'source': 26, 'target': 223, 'value': 0.21435475454923247}, {'source': 26, 'target': 35, 'value': 0.21417088649328309}, {'source': 26, 'target': 29, 'value': 0.2123572218415388}, {'source': 26, 'target': 0, 'value': 0.21179580228666675}, {'source': 26, 'target': 223, 'value': 0.21094484305627101}, {'source': 26, 'target': 224, 'value': 0.20569814794924052}, {'source': 27, 'target': 2, 'value': 0.2558939656637898}, {'source': 27, 'target': 224, 'value': 0.2342688817063909}, {'source': 27, 'target': 1, 'value': 0.231386015678021}, {'source': 27, 'target': 224, 'value': 0.23036575942142115}, {'source': 27, 'target': 48, 'value': 0.22666166382929748}, {'source': 27, 'target': 224, 'value': 0.22614240035096286}, {'source': 27, 'target': 37, 'value': 0.2249135000692544}, {'source': 27, 'target': 41, 'value': 0.22041723669232496}, {'source': 27, 'target': 12, 'value': 0.21819447265414163}, {'source': 27, 'target': 36, 'value': 0.21722458442613268}, {'source': 27, 'target': 13, 'value': 0.21227050887431595}, {'source': 27, 'target': 14, 'value': 0.21095436214142949}, {'source': 27, 'target': 46, 'value': 0.20891382318026819}, {'source': 27, 'target': 224, 'value': 0.20832960350728413}, {'source': 27, 'target': 21, 'value': 0.20810793379396361}, {'source': 27, 'target': 224, 'value': 0.20387316376734174}, {'source': 28, 'target': 224, 'value': 0.26845010712519385}, {'source': 28, 'target': 1, 'value': 0.26810551888945089}, {'source': 28, 'target': 224, 'value': 0.26667064816266445}, {'source': 28, 'target': 23, 'value': 0.25635938291542376}, {'source': 28, 'target': 27, 'value': 0.25260031791787918}, {'source': 28, 'target': 224, 'value': 0.23865032820169263}, {'source': 28, 'target': 19, 'value': 0.23506661351027552}, {'source': 28, 'target': 224, 'value': 0.23467193845543918}, {'source': 28, 'target': 7, 'value': 0.23434420515359419}, {'source': 28, 'target': 2, 'value': 0.23021125911893117}, {'source': 28, 'target': 0, 'value': 0.2295970663192681}, {'source': 28, 'target': 225, 'value': 0.21589715008395657}, {'source': 28, 'target': 12, 'value': 0.21484751238011146}, {'source': 28, 'target': 6, 'value': 0.21230210363943233}, {'source': 28, 'target': 37, 'value': 0.21131141433527367}, {'source': 28, 'target': 46, 'value': 0.2110440347937679}, {'source': 28, 'target': 35, 'value': 0.20578861822859312}, {'source': 28, 'target': 226, 'value': 0.20249319442593594}, {'source': 28, 'target': 4, 'value': 0.19898738759591716}, {'source': 28, 'target': 3, 'value': 0.1984473711591456}, {'source': 29, 'target': 33, 'value': 0.52679469021649961}, {'source': 29, 'target': 226, 'value': 0.30080500573743796}, {'source': 29, 'target': 0, 'value': 0.27860706416949604}, {'source': 29, 'target': 36, 'value': 0.27115968755495778}, {'source': 29, 'target': 226, 'value': 0.26941556187684595}, {'source': 29, 'target': 35, 'value': 0.26660271268251901}, {'source': 29, 'target': 1, 'value': 0.26482772688511563}, {'source': 29, 'target': 226, 'value': 0.25171324955801483}, {'source': 29, 'target': 226, 'value': 0.25045550036013314}, {'source': 29, 'target': 2, 'value': 0.24930264020151816}, {'source': 29, 'target': 226, 'value': 0.2340983012326974}, {'source': 29, 'target': 226, 'value': 0.2282877901210022}, {'source': 29, 'target': 46, 'value': 0.22813364988226803}, {'source': 29, 'target': 226, 'value': 0.22382238169612295}, {'source': 29, 'target': 226, 'value': 0.22332895465458791}, {'source': 29, 'target': 20, 'value': 0.22205468061975889}, {'source': 29, 'target': 226, 'value': 0.21983860037890063}, {'source': 30, 'target': 0, 'value': 0.24782090365459505}, {'source': 30, 'target': 2, 'value': 0.23634427174764713}, {'source': 30, 'target': 41, 'value': 0.21375993193302986}, {'source': 30, 'target': 226, 'value': 0.21039478148776605}, {'source': 30, 'target': 3, 'value': 0.20852821538214511}, {'source': 30, 'target': 32, 'value': 0.20777447335006627}, {'source': 30, 'target': 14, 'value': 0.20650587573108195}, {'source': 30, 'target': 226, 'value': 0.20534530673205967}, {'source': 30, 'target': 13, 'value': 0.20329152285329299}, {'source': 30, 'target': 226, 'value': 0.20322705571445368}, {'source': 30, 'target': 4, 'value': 0.20222828633684645}, {'source': 30, 'target': 6, 'value': 0.19458668747212393}, {'source': 31, 'target': 227, 'value': 0.27840890922764516}, {'source': 31, 'target': 0, 'value': 0.26686771550993516}, {'source': 31, 'target': 2, 'value': 0.2475643984200068}, {'source': 31, 'target': 48, 'value': 0.23871457478564345}, {'source': 31, 'target': 228, 'value': 0.2303928561030118}, {'source': 31, 'target': 228, 'value': 0.22883494715012159}, {'source': 31, 'target': 228, 'value': 0.22840797854123313}, {'source': 31, 'target': 228, 'value': 0.22025908966165883}, {'source': 31, 'target': 18, 'value': 0.21706945830684915}, {'source': 31, 'target': 228, 'value': 0.20604930770158172}, {'source': 31, 'target': 228, 'value': 0.20401769605602851}, {'source': 31, 'target': 7, 'value': 0.20319027072655832}, {'source': 31, 'target': 41, 'value': 0.19635531140935447}, {'source': 31, 'target': 12, 'value': 0.19554812263225441}, {'source': 31, 'target': 16, 'value': 0.19442998583871057}, {'source': 31, 'target': 44, 'value': 0.19289010277406071}, {'source': 31, 'target': 27, 'value': 0.19252719313430286}, {'source': 31, 'target': 228, 'value': 0.19206929382608615}, {'source': 31, 'target': 3, 'value': 0.1915013582675025}, {'source': 31, 'target': 32, 'value': 0.19149067265690456}, {'source': 31, 'target': 228, 'value': 0.18857758840418809}, {'source': 31, 'target': 29, 'value': 0.18846756599069467}, {'source': 32, 'target': 228, 'value': 0.34806981135696136}, {'source': 32, 'target': 228, 'value': 0.30426678887785524}, {'source': 32, 'target': 49, 'value': 0.2949711949458565}, {'source': 32, 'target': 2, 'value': 0.28144828010448969}, {'source': 32, 'target': 0, 'value': 0.27904990705511301}, {'source': 32, 'target': 228, 'value': 0.25174396722310133}, {'source': 32, 'target': 46, 'value': 0.2329756362682367}, {'source': 32, 'target': 228, 'value': 0.23112631112876691}, {'source': 32, 'target': 228, 'value': 0.22005397529906606}, {'source': 32, 'target': 41, 'value': 0.21437123240964018}, {'source': 32, 'target': 229, 'value': 0.2105861167373945}, {'source': 33, 'target': 229, 'value': 0.49868357507319633}, {'source': 33, 'target': 35, 'value': 0.30607969828348702}, {'source': 33, 'target': 229, 'value': 0.28655520023392606}, {'source': 33, 'target': 44, 'value': 0.27955667406302082}, {'source': 33, 'target': 229, 'value': 0.26969696969696988}, {'source': 33, 'target': 229, 'value': 0.26902659549196734}, {'source': 33, 'target': 229, 'value': 0.26491227853684163}, {'source': 33, 'target': 229, 'value': 0.25403411844343537}, {'source': 33, 'target': 1, 'value': 0.24700907116940735}, {'source': 33, 'target': 229, 'value': 0.2464261257038157}, {'source': 33, 'target': 229, 'value': 0.24116476235195849}, {'source': 33, 'target': 229, 'value': 0.23079981065872524}, {'source': 33, 'target': 229, 'value': 0.23070591584527839}, {'source': 33, 'target': 229, 'value': 0.22338352580438511}, {'source': 34, 'target': 45, 'value': 0.47367029745603861}, {'source': 34, 'target': 229, 'value': 0.38656874368624489}, {'source': 34, 'target': 229, 'value': 0.33721939673826357}, {'source': 34, 'target': 229, 'value': 0.28872876643208778}, {'source': 34, 'target': 230, 'value': 0.28482929535805618}, {'source': 34, 'target': 231, 'value': 0.28211764484525542}, {'source': 34, 'target': 232, 'value': 0.26863174042647214}, {'source': 34, 'target': 232, 'value': 0.26833251773881689}, {'source': 34, 'target': 232, 'value': 0.24541054717816529}, {'source': 34, 'target': 232, 'value': 0.23499372676418001}, {'source': 34, 'target': 232, 'value': 0.23028425240181155}, {'source': 34, 'target': 232, 'value': 0.22560348094671182}, {'source': 34, 'target': 233, 'value': 0.22070803720453716}, {'source': 34, 'target': 233, 'value': 0.21865286624890412}, {'source': 34, 'target': 234, 'value': 0.21775124226307868}, {'source': 34, 'target': 234, 'value': 0.21189733020372786}, {'source': 34, 'target': 235, 'value': 0.20957467850695477}, {'source': 34, 'target': 235, 'value': 0.20369878630905131}, {'source': 34, 'target': 236, 'value': 0.19957231006824505}, {'source': 34, 'target': 236, 'value': 0.19604828808730479}, {'source': 35, 'target': 46, 'value': 0.26876166599044105}, {'source': 35, 'target': 236, 'value': 0.26564997382128058}, {'source': 35, 'target': 236, 'value': 0.26184124529025149}, {'source': 35, 'target': 236, 'value': 0.2535740971391483}, {'source': 35, 'target': 236, 'value': 0.25048753354567538}, {'source': 35, 'target': 237, 'value': 0.2455726745045714}, {'source': 35, 'target': 45, 'value': 0.2450344154229587}, {'source': 35, 'target': 237, 'value': 0.24059350642119143}, {'source': 35, 'target': 238, 'value': 0.23719135789429646}, {'source': 35, 'target': 238, 'value': 0.23498018272720333}, {'source': 35, 'target': 238, 'value': 0.23065289414129961}, {'source': 35, 'target': 238, 'value': 0.22570068496324955}, {'source': 35, 'target': 238, 'value': 0.22512847061806343}, {'source': 35, 'target': 238, 'value': 0.22000999514094827}, {'source': 36, 'target': 3, 'value': 0.2654127663817773}, {'source': 36, 'target': 238, 'value': 0.25355076732548959}, {'source': 36, 'target': 238, 'value': 0.23346307108777442}, {'source': 36, 'target': 38, 'value': 0.22620941060074135}, {'source': 36, 'target': 5, 'value': 0.22265872156926161}, {'source': 36, 'target': 20, 'value': 0.22043339114403276}, {'source': 36, 'target': 238, 'value': 0.21612010009268276}, {'source': 36, 'target': 10, 'value': 0.209784733403692}, {'source': 36, 'target': 239, 'value': 0.20965267337596086}, {'source': 36, 'target': 239, 'value': 0.20055976186242136}, {'source': 36, 'target': 240, 'value': 0.1996827604436146}, {'source': 36, 'target': 35, 'value': 0.19275305405004525}, {'source': 36, 'target': 240, 'value': 0.19255709562623333}, {'source': 36, 'target': 1, 'value': 0.19104158999702608}, {'source': 36, 'target': 23, 'value': 0.19098435013871715}, {'source': 36, 'target': 0, 'value': 0.19010087001591014}, {'source': 36, 'target': 7, 'value': 0.18521246162029939}, {'source': 36, 'target': 14, 'value': 0.18479390616336053}, {'source': 36, 'target': 48, 'value': 0.18476639118924726}, {'source': 37, 'target': 240, 'value': 0.33748176974408328}, {'source': 37, 'target': 240, 'value': 0.32706665939549184}, {'source': 37, 'target': 240, 'value': 0.28385422465107057}, {'source': 37, 'target': 2, 'value': 0.26959994201506765}, {'source': 37, 'target': 240, 'value': 0.26633149716277738}, {'source': 37, 'target': 41, 'value': 0.25890361540882062}, {'source': 37, 'target': 241, 'value': 0.23605379267197951}, {'source': 37, 'target': 242, 'value': 0.22951642105288159}, {'source': 37, 'target': 242, 'value': 0.22666610023813599}, {'source': 37, 'target': 242, 'value': 0.22255365003088001}, {'source': 37, 'target': 242, 'value': 0.21855190396075685}, {'source': 37, 'target': 242, 'value': 0.21538201448238092}, {'source': 37, 'target': 242, 'value': 0.21131041075062559}, {'source': 37, 'target': 242, 'value': 0.20918662508536975}, {'source': 38, 'target': 243, 'value': 0.30539562072560417}, {'source': 38, 'target': 244, 'value': 0.29958605966084523}, {'source': 38, 'target': 244, 'value': 0.29758593474387957}, {'source': 38, 'target': 245, 'value': 0.29556739901431517}, {'source': 38, 'target': 246, 'value': 0.27120833170177072}, {'source': 38, 'target': 247, 'value': 0.26306951401781475}, {'source': 38, 'target': 248, 'value': 0.25857259924827941}, {'source': 38, 'target': 248, 'value': 0.24349271436324693}, {'source': 38, 'target': 249, 'value': 0.23067502026806211}, {'source': 38, 'target': 250, 'value': 0.22575249129926273}, {'source': 38, 'target': 251, 'value': 0.22259728109199708}, {'source': 38, 'target': 251, 'value': 0.20750502927877251}, {'source': 38, 'target': 252, 'value': 0.20476219879799673}, {'source': 38, 'target': 253, 'value': 0.20134681656420728}, {'source': 38, 'target': 254, 'value': 0.19531919141928508}, {'source': 38, 'target': 1, 'value': 0.19317194646856919}, {'source': 38, 'target': 3, 'value': 0.18937539906614384}, {'source': 38, 'target': 255, 'value': 0.18782030543813477}, {'source': 38, 'target': 255, 'value': 0.18759518629183725}, {'source': 38, 'target': 256, 'value': 0.18533203845792245}, {'source': 39, 'target': 256, 'value': 0.28627918410410746}, {'source': 39, 'target': 256, 'value': 0.24460035216507336}, {'source': 39, 'target': 256, 'value': 0.22796743864822619}, {'source': 39, 'target': 0, 'value': 0.22429110540318653}, {'source': 39, 'target': 257, 'value': 0.22303882907779765}, {'source': 39, 'target': 257, 'value': 0.21828506385168517}, {'source': 39, 'target': 7, 'value': 0.21720201350659829}, {'source': 39, 'target': 19, 'value': 0.2089481405606558}, {'source': 39, 'target': 37, 'value': 0.20866119596467073}, {'source': 39, 'target': 257, 'value': 0.20765083397114048}, {'source': 39, 'target': 257, 'value': 0.20086369768148782}, {'source': 39, 'target': 27, 'value': 0.20001095276553094}, {'source': 39, 'target': 258, 'value': 0.19288225361536715}, {'source': 39, 'target': 259, 'value': 0.19110756139083346}, {'source': 39, 'target': 2, 'value': 0.19038115424603769}, {'source': 39, 'target': 41, 'value': 0.18861179952682325}, {'source': 39, 'target': 48, 'value': 0.18035085694750336}, {'source': 39, 'target': 259, 'value': 0.17724959045344763}, {'source': 40, 'target': 259, 'value': 0.43285732939444466}, {'source': 40, 'target': 259, 'value': 0.37400576753591236}, {'source': 40, 'target': 259, 'value': 0.32488206582835855}, {'source': 40, 'target': 259, 'value': 0.29655431720872}, {'source': 40, 'target': 259, 'value': 0.28120136650765837}, {'source': 40, 'target': 259, 'value': 0.26332629915143951}, {'source': 40, 'target': 260, 'value': 0.2373785509995899}, {'source': 40, 'target': 260, 'value': 0.23560481490508989}, {'source': 40, 'target': 260, 'value': 0.22501849276406141}, {'source': 40, 'target': 261, 'value': 0.22157934450689959}, {'source': 40, 'target': 262, 'value': 0.21973759495696482}, {'source': 40, 'target': 7, 'value': 0.21157776902838807}, {'source': 40, 'target': 1, 'value': 0.21096462656161077}, {'source': 40, 'target': 262, 'value': 0.21069481669477652}, {'source': 40, 'target': 23, 'value': 0.20346001298330277}, {'source': 40, 'target': 262, 'value': 0.20079063889808504}, {'source': 40, 'target': 262, 'value': 0.19960243856287807}, {'source': 40, 'target': 263, 'value': 0.19688422916455572}, {'source': 41, 'target': 263, 'value': 0.29661566235884945}, {'source': 41, 'target': 0, 'value': 0.2721204524556875}, {'source': 41, 'target': 2, 'value': 0.26802693877175943}, {'source': 41, 'target': 48, 'value': 0.25347422755649673}, {'source': 41, 'target': 263, 'value': 0.24665291746912466}, {'source': 41, 'target': 263, 'value': 0.24329704721773648}, {'source': 41, 'target': 264, 'value': 0.23826548855538737}, {'source': 41, 'target': 264, 'value': 0.23548086942780716}, {'source': 41, 'target': 264, 'value': 0.2274951836699432}, {'source': 41, 'target': 265, 'value': 0.22608767826008919}, {'source': 41, 'target': 265, 'value': 0.22525036663823586}, {'source': 41, 'target': 265, 'value': 0.22453612276636309}, {'source': 41, 'target': 265, 'value': 0.22308015018984009}, {'source': 42, 'target': 266, 'value': 0.42862132969144406}, {'source': 42, 'target': 267, 'value': 0.42271545666107291}, {'source': 42, 'target': 268, 'value': 0.42043410236084183}, {'source': 42, 'target': 269, 'value': 0.38400060111274842}, {'source': 42, 'target': 270, 'value': 0.35442986995688819}, {'source': 42, 'target': 271, 'value': 0.35019226710913426}, {'source': 42, 'target': 272, 'value': 0.34845432949753891}, {'source': 42, 'target': 272, 'value': 0.33538678518750098}, {'source': 42, 'target': 273, 'value': 0.32608319445026407}, {'source': 42, 'target': 274, 'value': 0.32356078408875261}, {'source': 42, 'target': 275, 'value': 0.30973416524556741}, {'source': 42, 'target': 276, 'value': 0.30821731958588755}, {'source': 42, 'target': 277, 'value': 0.29986812025333398}, {'source': 42, 'target': 278, 'value': 0.29352908466198219}, {'source': 42, 'target': 279, 'value': 0.28959909784064447}, {'source': 42, 'target': 280, 'value': 0.27906269286213115}, {'source': 42, 'target': 281, 'value': 0.26658327605890775}, {'source': 42, 'target': 281, 'value': 0.26575835516081842}, {'source': 42, 'target': 282, 'value': 0.26203621736388982}, {'source': 42, 'target': 283, 'value': 0.26150772997158417}, {'source': 42, 'target': 284, 'value': 0.23363891995414207}, {'source': 42, 'target': 285, 'value': 0.22692104126720924}, {'source': 42, 'target': 4, 'value': 0.22581445727345112}, {'source': 43, 'target': 286, 'value': 0.42756269152194909}, {'source': 43, 'target': 286, 'value': 0.36559449080004136}, {'source': 43, 'target': 287, 'value': 0.29744065334226477}, {'source': 43, 'target': 288, 'value': 0.27153935574149618}, {'source': 43, 'target': 288, 'value': 0.2494977500039581}, {'source': 43, 'target': 289, 'value': 0.2369794426543278}, {'source': 43, 'target': 289, 'value': 0.2176164892424072}, {'source': 43, 'target': 2, 'value': 0.21503970760972169}, {'source': 43, 'target': 290, 'value': 0.20834719448323763}, {'source': 43, 'target': 291, 'value': 0.20501342427556693}, {'source': 43, 'target': 291, 'value': 0.20409832906287334}, {'source': 43, 'target': 292, 'value': 0.20381968383980756}, {'source': 43, 'target': 3, 'value': 0.20166949185233346}, {'source': 43, 'target': 1, 'value': 0.19999245550923653}, {'source': 43, 'target': 0, 'value': 0.19237152485489808}, {'source': 43, 'target': 293, 'value': 0.19040833340275631}, {'source': 43, 'target': 294, 'value': 0.19002786289864404}, {'source': 43, 'target': 295, 'value': 0.18831492290163587}, {'source': 43, 'target': 296, 'value': 0.18412992825949723}, {'source': 43, 'target': 296, 'value': 0.1833023896137449}, {'source': 43, 'target': 297, 'value': 0.18061363254749005}, {'source': 44, 'target': 297, 'value': 0.35921527606983861}, {'source': 44, 'target': 297, 'value': 0.26368010637777201}, {'source': 44, 'target': 297, 'value': 0.260476211807803}, {'source': 44, 'target': 298, 'value': 0.24337050221600598}, {'source': 44, 'target': 298, 'value': 0.23883080187908617}, {'source': 44, 'target': 299, 'value': 0.23431983052221253}, {'source': 44, 'target': 299, 'value': 0.22920863986522369}, {'source': 44, 'target': 300, 'value': 0.21746194748849301}, {'source': 44, 'target': 301, 'value': 0.21554422150477648}, {'source': 44, 'target': 301, 'value': 0.21168101115692928}, {'source': 44, 'target': 23, 'value': 0.21162153181911825}, {'source': 44, 'target': 18, 'value': 0.2100326195645362}, {'source': 44, 'target': 301, 'value': 0.20976010520813865}, {'source': 44, 'target': 301, 'value': 0.20760233918128673}, {'source': 44, 'target': 301, 'value': 0.20749736932338461}, {'source': 44, 'target': 302, 'value': 0.20710059602701536}, {'source': 44, 'target': 302, 'value': 0.20614541289818944}, {'source': 44, 'target': 6, 'value': 0.20260197845002062}, {'source': 45, 'target': 302, 'value': 0.37660780784475512}, {'source': 45, 'target': 302, 'value': 0.36809983984309352}, {'source': 45, 'target': 303, 'value': 0.34218323514092541}, {'source': 45, 'target': 303, 'value': 0.28831386410745635}, {'source': 45, 'target': 303, 'value': 0.25813482238556601}, {'source': 45, 'target': 304, 'value': 0.24938055385549601}, {'source': 45, 'target': 304, 'value': 0.23791986671417686}, {'source': 45, 'target': 305, 'value': 0.23237964619440912}, {'source': 45, 'target': 305, 'value': 0.23172497692203686}, {'source': 45, 'target': 305, 'value': 0.22544351020016676}, {'source': 45, 'target': 306, 'value': 0.22371929507618701}, {'source': 45, 'target': 307, 'value': 0.22305274827497448}, {'source': 45, 'target': 307, 'value': 0.20854629347469733}, {'source': 45, 'target': 308, 'value': 0.2013232671737698}, {'source': 45, 'target': 3, 'value': 0.20001401722451617}, {'source': 45, 'target': 309, 'value': 0.18358672241555146}, {'source': 45, 'target': 310, 'value': 0.18070346213459998}, {'source': 45, 'target': 310, 'value': 0.17955795601969618}, {'source': 45, 'target': 1, 'value': 0.17867926229565739}, {'source': 46, 'target': 311, 'value': 0.34424511710760691}, {'source': 46, 'target': 311, 'value': 0.31961777991648854}, {'source': 46, 'target': 311, 'value': 0.30697642342217191}, {'source': 46, 'target': 311, 'value': 0.26904443998862143}, {'source': 46, 'target': 311, 'value': 0.26316787964829808}, {'source': 46, 'target': 311, 'value': 0.25092581377152784}, {'source': 46, 'target': 311, 'value': 0.24861540621731223}, {'source': 46, 'target': 311, 'value': 0.23915886348633805}, {'source': 46, 'target': 311, 'value': 0.23749099019399877}, {'source': 46, 'target': 311, 'value': 0.23463929012387374}, {'source': 47, 'target': 312, 'value': 0.30221266748789166}, {'source': 47, 'target': 312, 'value': 0.25433722608294385}, {'source': 47, 'target': 313, 'value': 0.23880739370018622}, {'source': 47, 'target': 313, 'value': 0.23722763846776018}, {'source': 47, 'target': 313, 'value': 0.23008592457286001}, {'source': 47, 'target': 314, 'value': 0.22790296974825472}, {'source': 47, 'target': 314, 'value': 0.22616587455284382}, {'source': 47, 'target': 2, 'value': 0.21543219900201299}, {'source': 47, 'target': 314, 'value': 0.21447840706994523}, {'source': 47, 'target': 3, 'value': 0.21321843413483366}, {'source': 47, 'target': 314, 'value': 0.20422758528031409}, {'source': 47, 'target': 315, 'value': 0.19965143239859756}, {'source': 47, 'target': 0, 'value': 0.19768903926959633}, {'source': 47, 'target': 315, 'value': 0.19686218888404142}, {'source': 47, 'target': 10, 'value': 0.19327379930353406}, {'source': 47, 'target': 315, 'value': 0.18825342966838196}, {'source': 47, 'target': 49, 'value': 0.18061832048325105}, {'source': 47, 'target': 21, 'value': 0.1782153627707401}, {'source': 47, 'target': 316, 'value': 0.17804243810677836}, {'source': 48, 'target': 0, 'value': 0.28577481464605137}, {'source': 48, 'target': 2, 'value': 0.28033986810262013}, {'source': 48, 'target': 316, 'value': 0.26850440729469588}, {'source': 48, 'target': 316, 'value': 0.25366315109231391}, {'source': 48, 'target': 18, 'value': 0.21376327489128144}, {'source': 48, 'target': 316, 'value': 0.21221866613596532}, {'source': 48, 'target': 316, 'value': 0.2107707023758279}, {'source': 48, 'target': 316, 'value': 0.20871458804499265}, {'source': 48, 'target': 16, 'value': 0.20633081996831143}, {'source': 48, 'target': 316, 'value': 0.20628980811784958}, {'source': 48, 'target': 5, 'value': 0.20142497228686723}, {'source': 48, 'target': 6, 'value': 0.20071505929980687}, {'source': 48, 'target': 1, 'value': 0.19824089406878911}, {'source': 48, 'target': 316, 'value': 0.19607127643397548}, {'source': 49, 'target': 0, 'value': 0.28837710114070275}, {'source': 49, 'target': 1, 'value': 0.25397546271589833}, {'source': 49, 'target': 316, 'value': 0.23229364758479518}, {'source': 49, 'target': 316, 'value': 0.23138741676655122}, {'source': 49, 'target': 316, 'value': 0.21427500048009307}, {'source': 49, 'target': 13, 'value': 0.2095470690381204}, {'source': 49, 'target': 46, 'value': 0.20182203907691942}, {'source': 49, 'target': 21, 'value': 0.19545896454993192}, {'source': 49, 'target': 317, 'value': 0.19183015882898213}, {'source': 49, 'target': 317, 'value': 0.18681776495291233}, {'source': 49, 'target': 29, 'value': 0.18494392721398717}, {'source': 49, 'target': 6, 'value': 0.18467963696727566}, {'source': 49, 'target': 317, 'value': 0.18184301532536626}, {'source': 49, 'target': 317, 'value': 0.18119301614517766}]};\n",
       "           "
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Javascript\n",
    "#runs arbitrary javascript, client-side\n",
    "Javascript(\"\"\"\n",
    "           window.graph={};\n",
    "           \"\"\".format(graph))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "require(['d3'], function(d3){\n",
       "  //a weird idempotency thing\n",
       "  $(\"#chart1\").remove();\n",
       "  //create canvas\n",
       "  element.append(\"<div id='chart1'></div>\");\n",
       "  $(\"#chart1\").width(\"1160px\");\n",
       "  $(\"#chart1\").height(\"800px\");        \n",
       "  var margin = {top: 20, right: 20, bottom: 30, left: 40};\n",
       "  var width = 1280 - margin.left - margin.right;\n",
       "  var height = 800 - margin.top - margin.bottom;\n",
       "  var svg = d3.select(\"#chart1\").append(\"svg\")\n",
       "    .style(\"position\", \"relative\")\n",
       "    .style(\"max-width\", \"960px\")\n",
       "    .attr(\"width\", width + \"px\")\n",
       "    .attr(\"height\", (height + 50) + \"px\")\n",
       "    .call(d3.behavior.zoom().on(\"zoom\", redraw))\n",
       "    .append(\"g\")\n",
       "    .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n",
       "    \n",
       "    \n",
       "  function redraw() {\n",
       "      svg.attr(\"transform\",\n",
       "               \"translate(\" + d3.event.translate + \")\"\n",
       "               + \" scale(\" + d3.event.scale + \")\");\n",
       "  }   \n",
       "\n",
       "  var color = d3.scale.category20();\n",
       "\n",
       "  var force = d3.layout.force()\n",
       "    .charge(-500)\n",
       "    //.linkDistance(5)\n",
       "    .linkDistance(function(d) { return (1 - d.value); })\n",
       "    .size([width, height]);\n",
       "\n",
       "  var graph = window.graph;\n",
       "    \n",
       "  force\n",
       "      .nodes(graph.nodes)\n",
       "      .links(graph.links)\n",
       "      .start();\n",
       "\n",
       "  var link = svg.selectAll(\".link\")\n",
       "      .data(graph.links)\n",
       "      .enter().append(\"line\")\n",
       "      .attr(\"class\", \"link\")\n",
       "      .style(\"stroke\", \"#999;\")\n",
       "      .style(\"stroke-opacity\", .6)\n",
       "      .style(\"stroke-width\", function(d) { return Math.sqrt(d.value); })\n",
       "  \n",
       "      .style(\"stroke\", \"blue\");\n",
       "\n",
       "  var node = svg.selectAll(\".node\")\n",
       "      .data(graph.nodes)\n",
       "      .enter().append(\"g\")\n",
       "      .attr(\"class\", \"node\")\n",
       "      .call(force.drag);\n",
       "    \n",
       "  node.append(\"circle\")\n",
       "      .attr(\"class\", \"node_circle\")\n",
       "      .attr(\"r\", 8)\n",
       "      .style(\"fill\", function(d) { return color(d.group); });\n",
       "\n",
       "  node.append(\"text\")\n",
       "      .attr(\"class\", \"node_text\")\n",
       "      .attr(\"dx\", 12)\n",
       "      .attr(\"dy\", \".35em\")\n",
       "      .text(function(d) { return d.name });\n",
       "\n",
       "  node.append(\"title\")\n",
       "      .text(function(d) { return d.name; });\n",
       "\n",
       "  var node_text = svg.selectAll(\".node_text\");\n",
       "  var node_circle = svg.selectAll(\".node_circle\");\n",
       "    \n",
       "  force.on(\"tick\", function() {\n",
       "    link.attr(\"x1\", function(d) { return d.source.x; })\n",
       "        .attr(\"y1\", function(d) { return d.source.y; })\n",
       "        .attr(\"x2\", function(d) { return d.target.x; })\n",
       "        .attr(\"y2\", function(d) { return d.target.y; });\n",
       "\n",
       "    node_circle.attr(\"cx\", function(d) { return d.x; })\n",
       "        .attr(\"cy\", function(d) { return d.y; });\n",
       "      \n",
       "    node_text.attr(\"x\", function(d) { return d.x; })\n",
       "        .attr(\"y\", function(d) { return d.y; });\n",
       "  });\n",
       "});"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%javascript\n",
    "require(['d3'], function(d3){\n",
    "  //a weird idempotency thing\n",
    "  $(\"#chart1\").remove();\n",
    "  //create canvas\n",
    "  element.append(\"<div id='chart1'></div>\");\n",
    "  $(\"#chart1\").width(\"1160px\");\n",
    "  $(\"#chart1\").height(\"800px\");        \n",
    "  var margin = {top: 20, right: 20, bottom: 30, left: 40};\n",
    "  var width = 1280 - margin.left - margin.right;\n",
    "  var height = 800 - margin.top - margin.bottom;\n",
    "  var svg = d3.select(\"#chart1\").append(\"svg\")\n",
    "    .style(\"position\", \"relative\")\n",
    "    .style(\"max-width\", \"960px\")\n",
    "    .attr(\"width\", width + \"px\")\n",
    "    .attr(\"height\", (height + 50) + \"px\")\n",
    "    .call(d3.behavior.zoom().on(\"zoom\", redraw))\n",
    "    .append(\"g\")\n",
    "    .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n",
    "    \n",
    "    \n",
    "  function redraw() {\n",
    "      svg.attr(\"transform\",\n",
    "               \"translate(\" + d3.event.translate + \")\"\n",
    "               + \" scale(\" + d3.event.scale + \")\");\n",
    "  }   \n",
    "\n",
    "  var color = d3.scale.category20();\n",
    "\n",
    "  var force = d3.layout.force()\n",
    "    .charge(-500)\n",
    "    //.linkDistance(5)\n",
    "    .linkDistance(function(d) { return (1 - d.value); })\n",
    "    .size([width, height]);\n",
    "\n",
    "  var graph = window.graph;\n",
    "    \n",
    "  force\n",
    "      .nodes(graph.nodes)\n",
    "      .links(graph.links)\n",
    "      .start();\n",
    "\n",
    "  var link = svg.selectAll(\".link\")\n",
    "      .data(graph.links)\n",
    "      .enter().append(\"line\")\n",
    "      .attr(\"class\", \"link\")\n",
    "      .style(\"stroke\", \"#999;\")\n",
    "      .style(\"stroke-opacity\", .6)\n",
    "      .style(\"stroke-width\", function(d) { return Math.sqrt(d.value); })\n",
    "  \n",
    "      .style(\"stroke\", \"blue\");\n",
    "\n",
    "  var node = svg.selectAll(\".node\")\n",
    "      .data(graph.nodes)\n",
    "      .enter().append(\"g\")\n",
    "      .attr(\"class\", \"node\")\n",
    "      .call(force.drag);\n",
    "    \n",
    "  node.append(\"circle\")\n",
    "      .attr(\"class\", \"node_circle\")\n",
    "      .attr(\"r\", 8)\n",
    "      .style(\"fill\", function(d) { return color(d.group); });\n",
    "\n",
    "  node.append(\"text\")\n",
    "      .attr(\"class\", \"node_text\")\n",
    "      .attr(\"dx\", 12)\n",
    "      .attr(\"dy\", \".35em\")\n",
    "      .text(function(d) { return d.name });\n",
    "\n",
    "  node.append(\"title\")\n",
    "      .text(function(d) { return d.name; });\n",
    "\n",
    "  var node_text = svg.selectAll(\".node_text\");\n",
    "  var node_circle = svg.selectAll(\".node_circle\");\n",
    "    \n",
    "  force.on(\"tick\", function() {\n",
    "    link.attr(\"x1\", function(d) { return d.source.x; })\n",
    "        .attr(\"y1\", function(d) { return d.source.y; })\n",
    "        .attr(\"x2\", function(d) { return d.target.x; })\n",
    "        .attr(\"y2\", function(d) { return d.target.y; });\n",
    "\n",
    "    node_circle.attr(\"cx\", function(d) { return d.x; })\n",
    "        .attr(\"cy\", function(d) { return d.y; });\n",
    "      \n",
    "    node_text.attr(\"x\", function(d) { return d.x; })\n",
    "        .attr(\"y\", function(d) { return d.y; });\n",
    "  });\n",
    "});"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
