Repository: Casyfill/pyCombo (language: python)

Issue:
initial benchmark



Discussion / hints:

Fix patch:
diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml
index aef7424..c549ad5 100644
--- a/.github/workflows/pre-release.yml
+++ b/.github/workflows/pre-release.yml
@@ -40,6 +40,10 @@ jobs:
 
       - name: Install Dependencies
         run: poetry install
+
+      - name: Build
+        run: poetry build
+
       - name: Lint with flake8
         run: |
             # stop the build if there are Python syntax errors or undefined names
@@ -47,9 +51,9 @@ jobs:
       - name: Run tests
         run: |
             poetry run pytest
-        
+
       - run: poetry config repositories.testpypi https://test.pypi.org/legacy/
       - run: poetry config pypi-token.testpypi ${{ secrets.TEST_PYPI_TOKEN }}
-      
+
       - name: Publish package
         run: poetry publish --build -r testpypi
diff --git a/.gitmodules b/.gitmodules
index e3b71d3..f2032b7 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,4 +1,4 @@
 [submodule "src/Combo"]
 	path = src/Combo
 	url = https://github.com/Alexander-Belyi/Combo
-	branch = v2.1
+	branch = master
diff --git a/README.md b/README.md
index 3f3c8a1..50f24de 100644
--- a/README.md
+++ b/README.md
@@ -3,19 +3,16 @@
 
 pyCombo is a python wrapper around [C++ implementation](https://github.com/Alexander-Belyi/Combo) of the [network] community detection algorithm called "Combo".
 
-Combo achieves hight quality of partitioning, while being less greedy in terms of computation, than other algorithms.
-![algorithm comparison](http://senseable.mit.edu/community_detection/img/plot_yoon_01.png)
-
-Details of the algorithm are described in the paper "General optimization technique for high-quality community detection in the paper:
+Details of the algorithm are described in the paper "General optimization technique for high-quality community detection":
 
 ```
 Sobolevsky, S., Campari, R., Belyi, A. and Ratti, C., 2014. General optimization technique for high-quality community detection in complex networks. Physical Review E, 90(1), p.012811.
 ```
 
 ## Installation
-You can install current version of pycombo from github by executing
+You can install the latest release of pycombo from PyPI by executing
 ```bash
-pip install pycombo
+python -m pip install pycombo
 ```
 
 ## Quick Start
@@ -31,6 +28,16 @@ More examples could be found in [example](https://github.com/Casyfill/pyCombo/tr
 
 ## Development
 
+This repo uses https://github.com/Alexander-Belyi/Combo as a [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules).
+So for local development, clone with `--recurse-submodules` flag, as:
+```bash
+git clone --recurse-submodules https://github.com/Casyfill/pyCombo
+```
+Or, if you've already cloned it without `--recurse-submodules`, run:
+```bash
+git submodule update --init --recursive
+```
+
 Package is built and managed via `poetry`.
 - to install dev version, run `poetry install`
 - To build distributions run `poetry build`.
@@ -38,5 +45,6 @@ Package is built and managed via `poetry`.
 # Information
 - [project web_site](http://senseable.mit.edu/community_detection/)
 - [paper](http://journals.aps.org/pre/abstract/10.1103/PhysRevE.90.012811)
+
 ### Other useful Links and resources
-- [How to build C extension in poetry](https://github.com/python-poetry/poetry/issues/2740)
+- [How to build C extension in poetry](https://github.com/python-poetry/poetry/issues/2740)
\ No newline at end of file
diff --git a/example/benchmark.ipynb b/example/benchmark.ipynb
index 0409692..47a4db9 100644
--- a/example/benchmark.ipynb
+++ b/example/benchmark.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 31,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [
     {
@@ -28,24 +28,35 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "# ! pip install python-louvain"
+    "%load_ext filprofiler"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 42,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# ! pip install python-louvain\n",
+    "# ! pip install cdlib[C]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 57,
    "metadata": {},
    "outputs": [],
    "source": [
     "import networkx as nx\n",
     "from networkx.algorithms.community.quality import modularity\n",
     "import pycombo\n",
+    "from cdlib import algorithms\n",
     "import community as community_louvain"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 76,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -59,16 +70,11 @@
     "    for k, v in p.items():\n",
     "        P[v] = P.get(v, set())\n",
     "        P[v].add(k)\n",
-    "    return list(P.values())"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# ?modularity"
+    "    return list(P.values())\n",
+    "\n",
+    "def _partition_sets_cdlib(p:List[list])->List[set]:\n",
+    "    return [set(v) for v in p]\n",
+    "    "
    ]
   },
   {
@@ -80,7 +86,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -93,13 +99,13 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "partition1, mod = pycombo.execute(G, return_modularity=True, random_seed=42)\n",
-    "partition2 = community_louvain.best_partition(G)"
+    "partition_combo, mod = pycombo.execute(G, return_modularity=True, random_seed=42)\n",
+    "partition_louvain = community_louvain.best_partition(G)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
@@ -108,7 +114,7 @@
        "0.41978961209730403"
       ]
      },
-     "execution_count": 17,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -119,56 +125,84 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "0.41978961209730437"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Combo Modularity: 0.4198\n"
+     ]
     }
    ],
    "source": [
-    "p = _partition_sets(partition1)\n",
-    "modularity(G, p)"
+    "p = _partition_sets(partition_combo)\n",
+    "m_combo = modularity(G, p)\n",
+    "print(f'Combo Modularity: {m_combo:,.4f}')"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Louvain Modularity: 0.4188\n"
+     ]
+    }
+   ],
+   "source": [
+    "p = _partition_sets(partition_louvain)\n",
+    "m_louvain = modularity(G, p)\n",
+    "print(f'Louvain Modularity: {m_louvain:,.4f}')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
    "metadata": {},
    "outputs": [
     {
      "data": {
+      "image/png": "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\n",
       "text/plain": [
-       "0.41880341880341876"
+       "<Figure size 432x288 with 1 Axes>"
       ]
      },
-     "execution_count": 14,
-     "metadata": {},
-     "output_type": "execute_result"
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
     }
    ],
    "source": [
-    "p = _partition_sets(partition2)\n",
-    "modularity(G, p)"
+    "pd.Series({\n",
+    "    'combo': m_combo,\n",
+    "    'louvain': m_louvain,\n",
+    "}).plot(kind='barh');"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Performance"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 21,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "792 µs ± 66 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n"
+      "776 µs ± 13.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n"
      ]
     }
    ],
@@ -178,14 +212,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 22,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "2.59 ms ± 209 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
+      "2.81 ms ± 77 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
      ]
     }
    ],
@@ -193,6 +227,75 @@
     "%timeit community_louvain.best_partition(G)"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Memory"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "\n",
+       "        <iframe\n",
+       "            width=\"100%\"\n",
+       "            height=\"600\"\n",
+       "            src=\"fil-result/tmp6y75f1f7/peak-memory.svg\"\n",
+       "            frameborder=\"0\"\n",
+       "            allowfullscreen\n",
+       "        ></iframe>\n",
+       "        "
+      ],
+      "text/plain": [
+       "<IPython.lib.display.IFrame at 0x7fabf1ed5940>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "%%filprofile\n",
+    "community_louvain.best_partition(G)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "\n",
+       "        <iframe\n",
+       "            width=\"100%\"\n",
+       "            height=\"600\"\n",
+       "            src=\"fil-result/tmp3bp1bd2t/peak-memory.svg\"\n",
+       "            frameborder=\"0\"\n",
+       "            allowfullscreen\n",
+       "        ></iframe>\n",
+       "        "
+      ],
+      "text/plain": [
+       "<IPython.lib.display.IFrame at 0x7fabe96f3a50>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "%%filprofile\n",
+    "pycombo.execute(G, return_modularity=True, random_seed=42)"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -202,40 +305,40 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 35,
+   "execution_count": 27,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "Ns = range(100, 1601, 100)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 48,
    "metadata": {},
    "outputs": [],
    "source": [
-    "Ns = [100, ] + list(range(200, 2100, 200))"
+    "ALGOS = {\n",
+    "    'pycombo' : lambda G: pycombo.execute(G, return_modularity=True, random_seed=42),\n",
+    "    'comm_louvain': lambda G: community_louvain.best_partition(G, randomize=False),\n",
+    "    'cdlib_louvain': lambda G: algorithms.louvain(G, weight='weight', resolution=1., randomize=False),\n",
+    "    'cdlib_surprise': lambda G:  algorithms.surprise_communities(G),\n",
+    "    'cdlib_leiden': lambda G:  algorithms.leiden(G),\n",
+    "    'cdlib_walktrap': lambda G: algorithms.walktrap(G)\n",
+    "    \n",
+    "}"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 22,
+   "execution_count": 77,
    "metadata": {},
    "outputs": [
     {
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      " 84%|████████▎ | 41/49 [9:46:23<1:54:25, 858.13s/it]  \n"
-     ]
-    },
-    {
-     "ename": "KeyboardInterrupt",
-     "evalue": "",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
-      "\u001b[0;32m<ipython-input-22-22fc3155a78d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m     \u001b[0mpartition1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpycombo\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mG\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreturn_modularity\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrandom_seed\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m42\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m     \u001b[0mpartition2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcommunity_louvain\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbest_partition\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mG\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      9\u001b[0m     \u001b[0mp2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_partition_sets\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpartition2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/py37/lib/python3.7/site-packages/community/community_louvain.py\u001b[0m in \u001b[0;36mbest_partition\u001b[0;34m(graph, partition, weight, resolution, randomize, random_state)\u001b[0m\n\u001b[1;32m    247\u001b[0m                                 \u001b[0mresolution\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    248\u001b[0m                                 \u001b[0mrandomize\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 249\u001b[0;31m                                 random_state)\n\u001b[0m\u001b[1;32m    250\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mpartition_at_level\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdendo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdendo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    251\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/py37/lib/python3.7/site-packages/community/community_louvain.py\u001b[0m in \u001b[0;36mgenerate_dendrogram\u001b[0;34m(graph, part_init, weight, resolution, randomize, random_state)\u001b[0m\n\u001b[1;32m    345\u001b[0m     \u001b[0mstatus\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcurrent_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpart_init\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    346\u001b[0m     \u001b[0mstatus_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 347\u001b[0;31m     \u001b[0m__one_level\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcurrent_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresolution\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrandom_state\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    348\u001b[0m     \u001b[0mnew_mod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m__modularity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresolution\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    349\u001b[0m     \u001b[0mpartition\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m__renumber\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnode2com\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/py37/lib/python3.7/site-packages/community/community_louvain.py\u001b[0m in \u001b[0;36m__one_level\u001b[0;34m(graph, status, weight_key, resolution, random_state)\u001b[0m\n\u001b[1;32m    477\u001b[0m             \u001b[0mcom_node\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnode2com\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnode\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    478\u001b[0m             \u001b[0mdegc_totw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgdegrees\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtotal_weight\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;36m2.\u001b[0m\u001b[0;34m)\u001b[0m  \u001b[0;31m# NOQA\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 479\u001b[0;31m             \u001b[0mneigh_communities\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m__neighcom\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweight_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    480\u001b[0m             \u001b[0mremove_cost\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mresolution\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mneigh_communities\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcom_node\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    481\u001b[0m                 \u001b[0;34m(\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdegrees\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcom_node\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgdegrees\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mdegc_totw\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/py37/lib/python3.7/site-packages/community/community_louvain.py\u001b[0m in \u001b[0;36m__neighcom\u001b[0;34m(node, graph, status, weight_key)\u001b[0m\n\u001b[1;32m    505\u001b[0m     \"\"\"\n\u001b[1;32m    506\u001b[0m     \u001b[0mweights\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 507\u001b[0;31m     \u001b[0;32mfor\u001b[0m \u001b[0mneighbor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdatas\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnode\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    508\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mneighbor\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mnode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    509\u001b[0m             \u001b[0medge_weight\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdatas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mweight_key\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/py37/lib/python3.7/_collections_abc.py\u001b[0m in \u001b[0;36m__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    742\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__iter__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    743\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mapping\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 744\u001b[0;31m             \u001b[0;32myield\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mapping\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    745\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    746\u001b[0m \u001b[0mItemsView\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mregister\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdict_items\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/py37/lib/python3.7/site-packages/networkx/classes/coreviews.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m     49\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     50\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__getitem__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 51\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_atlas\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     52\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     53\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
+      "100%|██████████| 16/16 [06:21<00:00, 23.85s/it]\n"
      ]
     }
    ],
@@ -244,39 +347,36 @@
     "\n",
     "for n in tqdm(Ns):\n",
     "    G = nx.generators.random_graphs.erdos_renyi_graph(n=n, p=0.15, seed=42)\n",
+    "    RESULTS[n] = dict()\n",
     "    \n",
-    "    \n",
-    "    partition1, mod = pycombo.execute(G, return_modularity=True, random_seed=42)\n",
-    "    partition2 = community_louvain.best_partition(G)\n",
-    "    p2 = _partition_sets(partition2)\n",
-    "    \n",
-    "    RESULTS[n] = {\n",
-    "        'combo': mod,\n",
-    "        'louvain': modularity(G, p2)\n",
-    "        \n",
-    "    }"
+    "    for k, func in ALGOS.items():\n",
+    "        try:\n",
+    "            if k == 'pycombo':\n",
+    "                _, mod = func(G)\n",
+    "\n",
+    "            else:\n",
+    "                partition = func(G)\n",
+    "                if 'cdlib' in k:\n",
+    "                    pset = _partition_sets_cdlib(partition.communities)\n",
+    "                else:\n",
+    "                    pset = _partition_sets(partition)\n",
+    "                mod = modularity(G, pset)\n",
+    "\n",
+    "            RESULTS[n][k] = mod\n",
+    "        except Exception as e:\n",
+    "            raise Exception(n, k, e)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 27,
+   "execution_count": 78,
    "metadata": {},
    "outputs": [
     {
      "data": {
+      "image/png": "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6UguJ4oq23s4QgghhLjISADWiOtjQjFp+G5XensPRQghhBAXGQnAGhHu68Kgzl4s3ZnWYBVfIYQQQohzJQHYWUwfGMqR7FJ2pxW191CEEEKIS9b69eu55ppr2ux+I0aMaPV7SAB2FldHBuFga5CaYEIIIcQlZPPmza1+D9mK6CzcHe2Y0DeQH3dn8I9reuNga9PeQxJCCHEp+uVJOLGnZa8Z2B8mv3jWJp9++inz589HKUVkZCTPPfccd911Fzk5OXXb/3Tq1Ik77rgDJycnDhw4QEpKCh999BGffPIJsbGxDB06lI8//hgAV1dX5syZw5o1a/Dy8uKFF17g8ccf5/jx47z22mtcd911TQ47Pz+fu+66i6SkJJydnXn33XeJjIxk3rx5uLq68thjjwHQr18/li1bxltvvUXnzp25//77AZg3bx5ubm7ce++9TJkyhYKCAmpqanjuueeYMmVK3ThLS0tZv3498+bNw9fXl7179zJw4EA+//zzFtmqUDJgTZgeE0JRRQ1r92e391CEEEKINrNv3z6ef/551q5dy+7du1mwYAFz587ltttuIyEhgVtuuYUHH3ywrn1BQQFr167l1Vdf5dprr+Wvf/0r+/btY8+ePcTHxwNQVlbG5Zdfzo4dO3Bzc+Mf//gHq1ev5rvvvuOf//ynVeN65plniI6OJiEhgRdeeIHbbrvtrO1vuummus28AZYsWcINN9yAo6Mj3333HTt37mTdunU8+uijDa753rVrF6+99hqJiYkkJSWxadMmq8bZFMmANWF0dz/83RxYujONyf2D2ns4QgghLkVNZKpaw9q1a5kxYwa+vr4AeHt7Exsby7fffgvArFmzePzxx+vaX3vttSil6N+/PwEBAfTv3x+Avn37kpycTFRUFPb29kyaNAmA/v374+DggJ2dHf379yc5OdmqcW3cuJGlS5cCcMUVV5CXl0dRUeNrtaOjo8nOziYjI4OcnBy8vLzo1KkTNTU1/P3vf2fDhg0YDAbS09PJysoiMDDwlP5DhgwhNDQUgKioKJKTkxk1apRVYz0bCcCaYGNQTIsO4YONx8gtrcLXVbZdEEIIcfHTWjc51Vb//MltiQwGwylbFBkMBmprawGws7Or61O/Xf021oyroXHY2tpiMpnqjlVW/lHHc8aMGXzzzTecOHGCm266CYBFixaRk5PDjh07sLOz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\n",
       "text/plain": [
-       "<AxesSubplot:>"
-      ]
-     },
-     "execution_count": 27,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
+       "<Figure size 720x432 with 1 Axes>"
       ]
      },
      "metadata": {
@@ -286,104 +386,96 @@
     }
    ],
    "source": [
-    "pd.DataFrame(RESULTS).T.plot()"
+    "pd.DataFrame(RESULTS).T.plot(title='Modularity Comparison',figsize=(10,6));"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Time Comparison"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 53,
+   "execution_count": 88,
    "metadata": {},
    "outputs": [],
    "source": [
     "import timeit \n",
-    "    \n",
-    "  \n",
-    "# compute binary search time \n",
-    "def combo_time(n:int): \n",
-    "    SETUP_CODE = f''' \n",
-    "from __main__ import pycombo\n",
-    "import networkx as nx\n",
-    "G = nx.generators.random_graphs.erdos_renyi_graph(n={n}, p=0.15, seed=42)\n",
-    "'''\n",
+    "REPEATS = 5\n",
     "  \n",
-    "    TEST_CODE = '''pycombo.execute(G, random_seed=42)'''\n",
-    "      \n",
-    "    # timeit.repeat statement \n",
-    "    return timeit.repeat(setup = SETUP_CODE, \n",
-    "                          stmt = TEST_CODE, \n",
-    "                          repeat = 3, \n",
-    "                          number = 1) \n",
-    "    \n",
-    "def louvain_time(n:int): \n",
-    "    SETUP_CODE = f''' \n",
+    "\n",
+    "SETUP_CODE = ''' \n",
+    "import pycombo\n",
     "import community as community_louvain\n",
     "import networkx as nx\n",
+    "from cdlib import algorithms\n",
     "G = nx.generators.random_graphs.erdos_renyi_graph(n={n}, p=0.15, seed=42)\n",
     "'''\n",
-    "  \n",
-    "    TEST_CODE = '''community_louvain.best_partition(G)'''\n",
+    "\n",
+    "ALGOS_STR = {\n",
+    "    'pycombo' : \"pycombo.execute(G, return_modularity=True, random_seed=42)\",\n",
+    "    'comm_louvain': \"community_louvain.best_partition(G, randomize=False)\",\n",
+    "    'cdlib_louvain': \"algorithms.louvain(G, weight='weight', resolution=1., randomize=False)\",\n",
+    "    'cdlib_surprise': \"algorithms.surprise_communities(G)\",\n",
+    "    'cdlib_leiden': \"algorithms.leiden(G)\",\n",
+    "    'cdlib_walktrap': \"algorithms.walktrap(G)\"\n",
+    "    \n",
+    "}\n",
+    "\n",
+    "def timeit_comm(n:int, test_code:str)->List[int]: \n",
     "      \n",
     "    # timeit.repeat statement \n",
-    "    return timeit.repeat(setup = SETUP_CODE, \n",
-    "                          stmt = TEST_CODE, \n",
-    "                          repeat = 3, \n",
+    "    return timeit.repeat(setup = SETUP_CODE.format(n=n), \n",
+    "                          stmt = test_code, \n",
+    "                          repeat = REPEATS, \n",
     "                          number = 1) "
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 64,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
-   "source": [
-    "from statistics import mean"
-   ]
+   "source": []
   },
   {
    "cell_type": "code",
-   "execution_count": 65,
+   "execution_count": 89,
    "metadata": {},
    "outputs": [
     {
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "100%|██████████| 16/16 [10:05<00:00, 37.87s/it]\n"
+      "100%|██████████| 16/16 [26:50<00:00, 100.65s/it]\n"
      ]
     }
    ],
    "source": [
-    "PERF = {\n",
-    "    'combo': {},\n",
-    "    'louvain': {}\n",
-    "}\n",
+    "from statistics import mean\n",
     "\n",
-    "for n in tqdm(range(100, 1601, 100)):\n",
-    "    PERF['combo'][n] = mean(combo_time(n=n))\n",
-    "    PERF['louvain'][n] = mean(louvain_time(n=n))\n",
+    "PERF = dict()\n",
+    "\n",
+    "for n in tqdm(Ns):\n",
+    "    PERF[n] = dict()\n",
+    "    for k, code in ALGOS_STR.items():\n",
+    "        times = timeit_comm(n, test_code=code)\n",
+    "        PERF[n][k] = mean(times)\n",
     "    "
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 66,
+   "execution_count": 91,
    "metadata": {},
    "outputs": [
     {
      "data": {
+      "image/png": "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\n",
       "text/plain": [
-       "<AxesSubplot:>"
-      ]
-     },
-     "execution_count": 66,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
+       "<Figure size 720x432 with 1 Axes>"
       ]
      },
      "metadata": {
@@ -393,7 +485,7 @@
     }
    ],
    "source": [
-    "pd.DataFrame(PERF).plot()"
+    "pd.DataFrame(PERF).T.iloc[:10, :].plot(title='Computation Speed Comparison',figsize=(10,6));"
    ]
   },
   {
@@ -406,9 +498,9 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3",
+   "display_name": "Python 3 with Fil",
    "language": "python",
-   "name": "python3"
+   "name": "filprofile"
   },
   "language_info": {
    "codemirror_mode": {
diff --git a/pycombo/pyCombo.py b/pycombo/pyCombo.py
index bd20101..51621f4 100644
--- a/pycombo/pyCombo.py
+++ b/pycombo/pyCombo.py
@@ -19,11 +19,14 @@
 def execute(
     graph,
     weight: Optional[str] = "weight",
-    max_communities: int = -1,
+    max_communities: Optional[int] = None,
     modularity_resolution: int = 1,
     num_split_attempts: int = 0,
     fixed_split_step: int = 0,
+    start_separate: bool = False,
     treat_as_modularity: bool = False,
+    verbose: int = 0,
+    intermediate_results_path: Optional[str] = None,
     return_modularity: bool = True,
     random_seed: Optional[int] = None,
 ) -> Union[Tuple[dict, float], dict]:
@@ -38,8 +41,8 @@ def execute(
     weight : str, default 'weight'
         Graph edges property to use as weights. If None, graph assumed to be unweighted.
         Ignored if graph is passed as string (path to the file).
-    max_communities : int, default -1
-        Maximum number of communities. If -1, assume to be infinite.
+    max_communities : int, default None
+        Maximum number of communities. If <= 0 or None, assume to be infinite.
     modularity_resolution : float, default 1.0
         Modularity resolution parameter.
     num_split_attempts : int, default 0
@@ -47,12 +50,21 @@ def execute(
     fixed_split_step : int, default 0
         Step number to apply predefined split. If 0, use only random splits,
         if >0 sets up the usage of 6 fixed type splits on every fixed_split_step.
+    start_separate : bool, default False
+        Indicates if Combo should start from assigning each node into its own separate community.
+        This could help to achieve higher modularity, but it makes execution much slower.
     treat_as_modularity : bool, default False
         Indicates if edge weights should be treated as modularity scores.
         If True, the algorithm solves clique partitioning problem over the given graph,
         treated as modularity graph (matrix).
         For example, this allows users to provide their own custom 'modularity' matrix.
         `modularity_resolution` is ignored in this case.
+    verbose : int, default 0
+        Indicates how much progress information Combo should print out.
+        For now Combo has only one level starting at verbose >= 1.
+    intermediate_results_path : str, default None
+        Path to the file where community assignments will be saved on each iteration.
+        If None or empty, intermediate results will not be saved.
     return_modularity : bool, default True
         Indicates if function should return achieved modularity score.
     random_seed : int, default None
@@ -67,6 +79,9 @@ def execute(
     modularity : float
         Achieved modularity value. Only returned if return_modularity=True
     """
+    if max_communities is not None and max_communities <= 0:
+        max_communities = None
+
     if type(graph) is str:
         community_labels, modularity = comboCPP.execute_from_file(
             graph_path=graph,
@@ -74,7 +89,10 @@ def execute(
             modularity_resolution=modularity_resolution,
             num_split_attempts=num_split_attempts,
             fixed_split_step=fixed_split_step,
+            start_separate=start_separate,
             treat_as_modularity=treat_as_modularity,
+            verbose=verbose,
+            intermediate_results_path=intermediate_results_path,
             random_seed=random_seed,
         )
 
@@ -87,7 +105,10 @@ def execute(
             modularity_resolution=modularity_resolution,
             num_split_attempts=num_split_attempts,
             fixed_split_step=fixed_split_step,
+            start_separate=start_separate,
             treat_as_modularity=treat_as_modularity,
+            verbose=verbose,
+            intermediate_results_path=intermediate_results_path,
             random_seed=random_seed,
         )
 
@@ -107,7 +128,10 @@ def execute(
             modularity_resolution=modularity_resolution,
             num_split_attempts=num_split_attempts,
             fixed_split_step=fixed_split_step,
+            start_separate=start_separate,
             treat_as_modularity=treat_as_modularity,
+            verbose=verbose,
+            intermediate_results_path=intermediate_results_path,
             random_seed=random_seed,
         )
 
diff --git a/pyproject.toml b/pyproject.toml
index fcdec65..c64f459 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "pycombo"
-version = "0.1.00"
+version = "0.1.02"
 description = "Python wrapper around Combo network partitioning algorythm (C++)"
 authors = ["Philipp <casyfill@gmail.com>"]
 license = "MIT"
diff --git a/src/Binder.cpp b/src/Binder.cpp
index 2816013..c8f104a 100644
--- a/src/Binder.cpp
+++ b/src/Binder.cpp
@@ -7,54 +7,63 @@
 namespace py = pybind11;
 
 
-std::tuple<std::vector<int>, double> execute_from_file(
+std::tuple<std::vector<size_t>, double> execute_from_file(
 	std::string file_name,
 	double modularity_resolution=1.0,
-	int max_communities=-1,
+	std::optional<size_t> max_communities=std::nullopt,
 	int num_split_attempts=0,
 	int fixed_split_step=0,
+	bool start_separate=false,
 	bool treat_as_modularity=false,
+	int verbose=0,
+	std::optional<std::string> intermediate_results_path=std::nullopt,
 	std::optional<int> random_seed=std::nullopt)
 {
 	Graph graph = ReadGraphFromFile(file_name, modularity_resolution, treat_as_modularity);
 	if(graph.Size() <= 0) {
 		std::cerr << "Error: graph is empty" << std::endl;
-		return {std::vector<int>(), -1.0};
+		return {std::vector<size_t>(), -1.0};
 	}
-	ComboAlgorithm combo(random_seed, num_split_attempts, fixed_split_step);
-	combo.Run(graph, max_communities);
+	ComboAlgorithm combo(random_seed, num_split_attempts, fixed_split_step, verbose);
+	combo.Run(graph, max_communities, start_separate, intermediate_results_path);
 	return {graph.Communities(), graph.Modularity()};
 }
 
-std::tuple< std::vector<int>, double> execute_from_matrix(
+std::tuple< std::vector<size_t>, double> execute_from_matrix(
 	const std::vector<std::vector<double>>& matrix,
 	double modularity_resolution=1.0,
-	int max_communities=-1,
+	std::optional<size_t> max_communities=std::nullopt,
 	int num_split_attempts=0,
 	int fixed_split_step=0,
+	bool start_separate=false,
 	bool treat_as_modularity=false,
+	int verbose=0,
+	std::optional<std::string> intermediate_results_path=std::nullopt,
 	std::optional<int> random_seed=std::nullopt)
 {
 	Graph graph(matrix, modularity_resolution, treat_as_modularity);
-	ComboAlgorithm combo(random_seed, num_split_attempts, fixed_split_step);
-	combo.Run(graph, max_communities);
+	ComboAlgorithm combo(random_seed, num_split_attempts, fixed_split_step, verbose);
+	combo.Run(graph, max_communities, start_separate, intermediate_results_path);
 	return {graph.Communities(), graph.Modularity()};
 }
 
-std::tuple< std::vector<int>, double> execute(
+std::tuple< std::vector<size_t>, double> execute(
 	int size,
 	const std::vector<std::tuple<int, int, double>>& edges,
 	bool directed=false,
 	double modularity_resolution=1.0,
-	int max_communities=-1,
+	std::optional<size_t> max_communities=std::nullopt,
 	int num_split_attempts=0,
 	int fixed_split_step=0,
+	bool start_separate=false,
 	bool treat_as_modularity=false,
+	int verbose=0,
+	std::optional<std::string> intermediate_results_path=std::nullopt,
 	std::optional<int> random_seed=std::nullopt)
 {
 	Graph graph(size, edges, directed, modularity_resolution, treat_as_modularity);
-	ComboAlgorithm combo(random_seed, num_split_attempts, fixed_split_step);
-	combo.Run(graph, max_communities);
+	ComboAlgorithm combo(random_seed, num_split_attempts, fixed_split_step, verbose);
+	combo.Run(graph, max_communities, start_separate, intermediate_results_path);
 	return {graph.Communities(), graph.Modularity()};
 }
 
@@ -65,20 +74,26 @@ PYBIND11_MODULE(_combo, m) {
 	m.def("execute_from_file", &execute_from_file, "execute combo algorithm on a graph read from specified file",
 		py::arg("graph_path"),
 		py::arg("modularity_resolution") = 1.0,
-		py::arg("max_communities") = -1,
+		py::arg("max_communities") = std::nullopt,
 		py::arg("num_split_attempts") = 0,
 		py::arg("fixed_split_step") = 0,
+		py::arg("start_separate") = false,
 		py::arg("treat_as_modularity") = false,
+		py::arg("verbose") = 0,
+		py::arg("intermediate_results_path") = std::nullopt,
 		py::arg("random_seed") = std::nullopt
 		);
 
 	m.def("execute_from_matrix", &execute_from_matrix, "execute combo algorithm on a graph passed as matrix",
 		py::arg("matrix"),
 		py::arg("modularity_resolution") = 1.0,
-		py::arg("max_communities") = -1,
+		py::arg("max_communities") = std::nullopt,
 		py::arg("num_split_attempts") = 0,
 		py::arg("fixed_split_step") = 0,
+		py::arg("start_separate") = false,
 		py::arg("treat_as_modularity") = false,
+		py::arg("verbose") = 0,
+		py::arg("intermediate_results_path") = std::nullopt,
 		py::arg("random_seed") = std::nullopt
 		);
 
@@ -87,10 +102,13 @@ PYBIND11_MODULE(_combo, m) {
 		py::arg("edges"),
 		py::arg("directed") = false,
 		py::arg("modularity_resolution") = 1.0,
-		py::arg("max_communities") = -1,
+		py::arg("max_communities") = std::nullopt,
 		py::arg("num_split_attempts") = 0,
 		py::arg("fixed_split_step") = 0,
+		py::arg("start_separate") = false,
 		py::arg("treat_as_modularity") = false,
+		py::arg("verbose") = 0,
+		py::arg("intermediate_results_path") = std::nullopt,
 		py::arg("random_seed") = std::nullopt
 	);
 }
diff --git a/src/Combo b/src/Combo
index a189f81..8afdf3f 160000
--- a/src/Combo
+++ b/src/Combo
@@ -1,1 +1,1 @@
-Subproject commit a189f81c044acf10b9c9febb64741d620a6ba020
+Subproject commit 8afdf3ffe0c166f58ead6acd26feac7006bd4e4a


Test patch:
diff --git a/tests/conftest.py b/tests/conftest.py
index 9c53ea6..ec3ba26 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -36,6 +36,18 @@ def test_cp_graph():
     return G
 
 
+@pytest.fixture(scope="function")
+def test_start_sep_graph():
+    """test graph with known clique partition that needs start_separate"""
+    G = nx.Graph()
+    G.add_nodes_from(range(6))
+    G.add_edges_from([(0, 1, {'weight': 1.0}), (0, 2, {'weight': -10}), (0, 3, {'weight': 1}), (0, 4, {'weight': -10}), (0, 5, {'weight': -10}),
+                      (1, 2, {'weight': 1.2}), (1, 3, {'weight': -10}), (1, 4, {'weight': -10}), (1, 5, {'weight': -10}),
+                      (2, 3, {'weight': 1}), (2, 4, {'weight': -1}), (2, 5, {'weight': 0.5}),
+                      (3, 4, {'weight': 0.5}), (3, 5, {'weight': -1})])
+    return G
+
+
 @pytest.fixture(scope="function")
 def karate() -> nx.Graph:
     import networkx as nx
diff --git a/tests/test_pyCombo.py b/tests/test_pyCombo.py
index 75546a2..847eaad 100644
--- a/tests/test_pyCombo.py
+++ b/tests/test_pyCombo.py
@@ -130,3 +130,62 @@ def test_clique_partitioning(test_cp_graph):
     partition, modularity = pycombo.execute(test_cp_graph, treat_as_modularity=True)
     assert modularity == 1.1, modularity
     assert _partitionGroup(partition) == _partitionGroup({0: 0, 1: 0, 2: 1, 3: 2})
+
+
+def test_max_communities(karate):
+    import pycombo
+
+    partition_None, modularity_None = pycombo.execute(karate)
+    partition_0, modularity_0 = pycombo.execute(karate, max_communities=0)
+    assert modularity_None == pytest.approx(modularity_0, 0.000001), (modularity_None, modularity_0)
+    assert _partitionGroup(partition_None) == _partitionGroup(partition_0)
+    partition_minus1, modularity_minus1 = pycombo.execute(karate, max_communities=-1)
+    assert modularity_None == pytest.approx(modularity_minus1, 0.000001), (modularity_None, modularity_minus1)
+    assert _partitionGroup(partition_None) == _partitionGroup(partition_minus1)
+    partition_minus10, modularity_minus10 = pycombo.execute(karate, max_communities=-10)
+    assert modularity_None == pytest.approx(modularity_minus10, 0.000001), (modularity_None, modularity_minus10)
+    assert _partitionGroup(partition_None) == _partitionGroup(partition_minus10)
+    partition_1, modularity_1 = pycombo.execute(karate, max_communities=1)
+    assert modularity_1 == pytest.approx(0, 0.000001), modularity_1
+    assert _partitionGroup(partition_1) == [list(range(len(karate)))]
+    partition_2, modularity_2 = pycombo.execute(karate, max_communities=2)
+    assert modularity_2 == pytest.approx(0.371795, 0.000001), modularity_2
+    assert _partitionGroup(partition_2) == [list(range(8)) + list(range(9, 14)) + [16, 17, 19, 21],
+                                            [8, 14, 15, 18, 20] + list(range(22, 34))]
+    partition_3, modularity_3 = pycombo.execute(karate, max_communities=3)
+    assert modularity_3 == pytest.approx(0.402038, 0.000001), modularity_3
+    assert _partitionGroup(partition_3) == [list(range(4)) + [7, 9, 11, 12, 13, 17, 19, 21],
+                                            [4, 5, 6, 10, 16],
+                                            [8, 14, 15, 18, 20] + list(range(22, 34))]
+
+
+def test_start_separate(test_start_sep_graph):
+    import pycombo
+
+    partition, modularity = pycombo.execute(test_start_sep_graph, treat_as_modularity=True)
+    assert modularity == 2.0, modularity
+    partition_sep, modularity_sep = pycombo.execute(test_start_sep_graph, start_separate=True, treat_as_modularity=True)
+    assert modularity_sep == 2.2, modularity_sep
+
+
+def test_output_info(test_start_sep_graph, capfd):
+    import pycombo
+
+    _, _ = pycombo.execute(test_start_sep_graph, start_separate=True, treat_as_modularity=True)
+    captured = capfd.readouterr()
+    assert captured.err == ""
+    assert captured.out == ""
+    _, _ = pycombo.execute(test_start_sep_graph, start_separate=True, treat_as_modularity=True, verbose=1)
+    captured = capfd.readouterr()
+    assert captured.err == ""
+    info_lines = captured.out.split('\n')
+    assert info_lines[-2] == "Finished with 4 communities, achieved modularity = 2.2"
+    assert info_lines[-1] == ""
+
+
+def test_intermediate_results(karate, tmp_path):
+    import pycombo
+
+    file = tmp_path / 'tmp_communities.txt'
+    partition, _ = pycombo.execute(karate, intermediate_results_path=str(file))
+    assert file.read_text().strip() == "\n".join(map(str, list(zip(*sorted(partition.items())))[1]))