{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Analysis of results of crawler" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.1\n", " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n" ] } ], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "sns.set(style = 'darkgrid', palette = \"Accent\")\n", "taille = (9, 5)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import json\n", "import pandas as pd\n", " \n", "with open('wf_crawl_nextflow.json') as json_file:\n", " dict = json.load(json_file)\n", "_ = dict.pop(\"last_date\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The crawler found 752 Nextflow workflows with at least Nextflow file at the root.\n" ] } ], "source": [ "print(f\"The crawler found {len(dict)} Nextflow workflows with at least Nextflow file at the root.\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At the time of writing there are 52 Nextflow workflows integrated on WorkflowHub." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hence, at most 6.9% of Nextflow workflows found on Github are integrated into WorkflowHub\n" ] } ], "source": [ "nb_wfhub = 52\n", "print(f\"Hence, at most {(nb_wfhub)/len(dict)*100:.1f}% of Nextflow workflows found on Github are integrated into WorkflowHub\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "tab = []\n", "for wf in dict:\n", " tab.append(dict[wf])\n", "\n", "df = pd.DataFrame(tab)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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APj6+iI3Nxfr1q2DTqfDxIkTG53bFtlrD5hZW/fu3RucRtQcgmjpzbOJWsGIESOQm5trdtr69euNH4CZmZlYtmwZsrOz4e/vj2effbbe161z5szB119/XW85gwYNwqeffgoASE9PxxdffIGLFy9CrVajU6dOuOeeezBjxgx4enradXag+mjVqlWrsGnTJhQVFaFnz57417/+ZfHRO1tkB4D4+HhIJBKkp6dblNce8h88eBCrVq3CuXPnoNfrERwcjMmTJ1tcSFo7u1qtxrRp03Dq1ClUVFQgKCgIEydObNLtUlsqe0ZGBl577TWzy6m73cvKyvD222/ju+++g1arxeDBgzFv3rwmnctui/wNrXP69Ol48cUX7TZ7Q+8tR8i+e/dufPLJJzh37hwqKiqMdzRLTEy0+BsCW7xn6goLC8Orr76KSZMmWZSdqDFYEBARERERtWG8hoCIiIiIqA1jQUBERERE1IaxICAiIiIiasNYEBARERERtWEsCIiIiIiI2jAWBEREREREbRgLAiIiIiKiNowjFRMROai6gxzJ5XIolUoEBQVh6NChePTRR+Hn52fxcrOysrBjxw6MGTMGXbt2bcnIRERkh1gQEBE5uEWLFiEoKAg6nQ4FBQU4cuQIPvroI6xduxbLly/HP/7xD4uWl5WVhVWrVmHQoEEsCIiI2gAWBEREDq5nz54IDw83Po+NjcUzzzyDJ598EtOnT8fOnTvRvn17GyYkIiJ7xmsIiIicUEBAAGbPno3y8nJs2LABAHDy5EnMmjULI0aMQN++fTFixAi89NJLyM3NNc6XkZGBmTNnAgAmTJiAsLAwhIWFISMjw9jnp59+wsSJEzFgwAD069cP48aNw88//2zdF0hERC2GBQERkZOKiYmBVCrF4cOHAQC5ubkIDAzE3LlzsWbNGiQlJeH69et49NFHUVhYCAAYPnw4XnrpJQDA/Pnz8eWXX+LLL7/E8OHDAQBbtmzBc889B09PT7z99tt499134e3tjUmTJrEoICJyUDxliIjISbm7u8PHxwfXrl0DANx333247777jNP1ej2GDx+Ou+66C9u2bcOECRPg6+uL2267DQAQEhKCiIgIY//KykosXLgQw4cPx3/+8x9je0xMDMaMGYNly5YhPT3dOi+OiIhaDAsCIiInJoqi8XF5eTnef/997Ny5E7m5udDr9cZp2dnZt1zWr7/+iuLiYowZMwY6nc5k2rBhw5CWloaKigq4u7u33AsgIqJWx4KAiMhJVVRUoLi4GKGhoQCAl19+GQcOHEBiYiLCw8Ph4eEBQRDwwgsvQKPR3HJ5+fn5AIAZM2Y02KekpIQFARGRg2FBQETkpPbu3Qu9Xo9BgwahtLQUe/fuxfTp0/HCCy8Y+1RVVaGkpKRRy/Px8QEAzJs3D/369TPbpynjHhARkW2xICAickJ5eXlYsmQJvLy8MG7cOAiCAFEUIZfLTfqlp6ebnDoEwNhHrVabtA8YMABKpRJZWVl4+umnW/cFEBGR1bAgICJycOfPn4der4dOp0NhYSEOHz6MjIwMSKVSrFq1Cr6+vgCAyMhIrFmzBj4+PujSpQsOHTqEjRs3QqlUmiyvZ8+eAICvvvoKHh4eUCgU6Nq1K3x8fJCcnIw5c+agpKQEsbGx8PPzQ2FhIc6cOYPCwkL8+9//tvrrJyKi5hHE2lecERGRw8jIyMBrr71mfC6TyaBUKhEcHIyhQ4di7NixxmIAAK5evYoFCxbgwIED0Ol0GDBgAGbPno2EhAQMGjQIixcvNvZdt24d1q9fjytXrkCv12PRokV45JFHAAC//PIL0tLScOzYMZSXl8PX1xe9evXCmDFjTO5iREREjoEFARERERFRG8aByYiIiIiI2jAWBEREREREbRgLAiIiIiKiNowFARERERFRG8aCgIiIiIioDWNBQERERETUhrEgICIiIiJqw1gQEBERERG1YSwIiIiIiIjaMBYERERERERtGAsCIiIiIqI2jAUBEREREVEb9n+sg4B1ijwWLwAAAABJRU5ErkJggg==", "text/plain": [ "<Figure size 640x480 with 2 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "name = \"Nextflow workflows\"\n", "df[name] = 1\n", "df[\"First commit\"] = pd.to_datetime(df[\"first_commit_date\"], format=f'%Y-%m-%d')\n", "\n", "fig = plt.figure() \n", "ax = fig.add_subplot(111)\n", "ax2 = ax.twinx() \n", "\n", "group_by = 'First commit'\n", "df[group_by].hist(ax=ax, bins=84)\n", "df[[name, group_by]].groupby(group_by).count().cumsum().plot(linewidth=2, color='orangered', ax=ax2, grid=False)\n", "\n", "ax.set_ylabel('Counts')\n", "ax2.set_ylabel('Cumulative sum')\n", "ax.set_xlabel('Date')\n", "\n", "\n", "plt.title(\"Evolution of the yearly and cumulative number of Nextflow workflows available on GitHub\");\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We only want to use open workflows, so we are only gonna use the workflows which have an open license. We are gonna keep the ones which have :\n", "\n", "* Apache License 2.0\n", "* GNU General Public License v3.0\n", "* MIT License" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Only keeping open workflows that leaves us with 677 workflows.\n" ] } ], "source": [ "nb_open = len(df[(df[\"license\"] ==\"Apache License 2.0\") | (df[\"license\"] == \"GNU General Public License v3.0\") | (df[\"license\"] == \"MIT License\")])\n", "print(f\"Only keeping open workflows that leaves us with {nb_open} workflows.\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 2 }