{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Good Software - analysis notebook\n", "## Reproducing all panels from Figure 1\n", "\n", "
\n", "This notebook contains all Python code necessary to reproduce all panels from the Figure 1 of [our paper](./), starting from the raw dataset. If you are interested in reproducing our results, you can use Binder to get started immediately (no requirements). For more information, visit [our wiki page](./).\n", "\n", "**Github:** https://github.com/smangul1/good.software/wiki\n", "\n", "**Manuscript:** https://www.biorxiv.org/content/early/2018/10/25/452532\n", "\n", "**Twitter thread:** https://twitter.com/serghei_mangul/status/1055561147431043072" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Importing libraries" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import pylab as pl\n", "import numpy as np\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Some definitions" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Legend for link statuses\n", "legendStatus = { -1 : 'Time out', 1 : 'Accessible', 3 : 'Redirected', 4 : 'Broken' }\n", "\n", "# Colors for each status\n", "colors = { -1 : (1.0,0.6,0.2), 1 : (0.2,0.7,0.2), 3 : (0.2,0.4,1.0), 4 : (1.0,0.,0.) }\n", "\n", "# Scheme 2:\n", "colors2 = { 'bg_unreach' : (1.0,0.8,0.6), \n", " 'fg_unreach' : (0.8,0.,0.), \n", " 'bg_accessb' : (0.7,1.0,0.7), \n", " 'fg_accessb' : (0.0,0.0,0.8)\n", " }\n", "\n", "# Will only consider these years\n", "initialYear = 2005" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Util functions" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def simpleaxis(ax):\n", " ax.spines['top'].set_visible(False)\n", " ax.spines['right'].set_visible(False)\n", " ax.get_xaxis().tick_bottom()\n", " ax.get_yaxis().tick_left()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Importing and parsing data" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
typejournalidyearlinkcodeflag.uniqueness
0abstractNucleic_Acids_Res23155066.02013http://www.netlab.uky.edu/p/bioinfo/DiffSplice2000
1abstractBioinformatics27273673.02017http://www.cs.helsinki.fi/u/lmsalmel/LoRMA/3020
2abstractBMC_Bioinformatics20492656.02010http://www.cse.univdhaka.edu/~ashis/ppred/inde...3010
3abstractPLoS_Comput_Biol28212402.02017https://dongjunchung.github.io/GGPA/3010
4abstractBioinformatics28130230.02017https://github.com/bfosso/MetaShot3010
\n", "
" ], "text/plain": [ " type journal id year \\\n", "0 abstract Nucleic_Acids_Res 23155066.0 2013 \n", "1 abstract Bioinformatics 27273673.0 2017 \n", "2 abstract BMC_Bioinformatics 20492656.0 2010 \n", "3 abstract PLoS_Comput_Biol 28212402.0 2017 \n", "4 abstract Bioinformatics 28130230.0 2017 \n", "\n", " link code flag.uniqueness \n", "0 http://www.netlab.uky.edu/p/bioinfo/DiffSplice 200 0 \n", "1 http://www.cs.helsinki.fi/u/lmsalmel/LoRMA/ 302 0 \n", "2 http://www.cse.univdhaka.edu/~ashis/ppred/inde... 301 0 \n", "3 https://dongjunchung.github.io/GGPA/ 301 0 \n", "4 https://github.com/bfosso/MetaShot 301 0 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "links = pd.read_csv('links.bulk.csv')\n", "links.head()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 48392 entries, 0 to 48391\n", "Data columns (total 7 columns):\n", "type 48392 non-null object\n", "journal 48392 non-null object\n", "id 48093 non-null float64\n", "year 48392 non-null int64\n", "link 48392 non-null object\n", "code 48392 non-null int64\n", "flag.uniqueness 48392 non-null int64\n", "dtypes: float64(1), int64(3), object(3)\n", "memory usage: 2.6+ MB\n" ] } ], "source": [ "links.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Parsing from code into human-readable status:\n", "\n", "* -1 : time out\n", "* 0..299 : good\n", "* 300..399 : redirected\n", "* \\>= 400 : not found\n", "\n", "To make it easier, let's map these codes to -1 for time out, 1 for accessible, 3 for redirected, and 4 for not found." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "links = links[ links.year >= initialYear ]\n", "links['status'] = ( links['code'] // 100 )\n", "links.loc[ links['status'] > 4, 'status' ] = 4\n", "links.loc[ (links['status'] >= 0) & (links['status'] < 3), 'status' ] = 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the histogram of statuses" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEfCAYAAACJcFuFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xuc3FV9//HXmyAX0UgiMSIBgxqoQDXKCnhDFIVg1UBrFUSJFggIKBaKQm3loihVUcQCNmJK+Kkg1xIlCAG59IayKHITJKJI0hgCQYOiYOD9++OclSHsbjbxu/vdIe/n4zGPnTnf8505M5nM53vusk1EREQT1mm7ABER8fSRoBIREY1JUImIiMYkqERERGMSVCIiojEJKhER0ZgElYiIaEyCSkRENCZBJSIiGrNu2wUYaZtssoknT57cdjEiIrrKjTfeeL/tCavKt9YFlcmTJ9Pb29t2MSIiuoqke4aSL81fERHRmASViIhoTIJKREQ0JkElIiIak6ASERGNSVCJiIjGJKhERERj1rp5KhFrk56enraLsEYyl6x7paYSERGNSVCJiIjGpPkrYm0xc5Q3Kc3qzqa6eLLUVCIiojEJKhER0ZgElYiIaEyCSkRENCZBJSIiGpOgEhERjUlQiYiIxgxbUJG0uaSrJd0u6TZJh9f08ZLmS7qr/h1X0yXpVEkLJN0s6ZUdzzWj5r9L0oyO9O0l3VLPOVWShuv9RETEqg1nTWUFcKTtbYCdgEMlbQMcDVxlewpwVX0MsAcwpd5mAmdACULAscCOwA7AsX2BqOY5sOO8acP4fiIiYhWGLajYXmz7h/X+Q8BPgM2A6cCcmm0OsGe9Px0428X1wMaSNgV2B+bbXmb7QWA+MK0eG2v7etsGzu54roiIaMGI9KlImgy8Avg+MNH24nroV8DEen8z4N6O0xbWtMHSF/aT3t/rz5TUK6l36dKlf9Z7iYiIgQ17UJH0LOBC4CO2l3ceqzUMD3cZbM+y3WO7Z8KECcP9chERa61hDSqSnkEJKN+wfVFNXlKbrqh/76vpi4DNO06fVNMGS5/UT3pERLRkOEd/Cfga8BPbX+g4NBfoG8E1A7ikI32/OgpsJ+A3tZnscmA3SeNqB/1uwOX12HJJO9XX2q/juSIiogXDufT9a4H3AbdIuqmm/SNwEnCepP2Be4B31WPzgLcCC4CHgQ8A2F4m6ZPADTXfCbaX1fuHAGcBGwKX1VtERLRk2IKK7f8CBpo3sms/+Q0cOsBzzQZm95PeC2z3ZxQzIiIalBn1ERHRmASViIhoTIJKREQ0JkElIiIak6ASERGNSVCJiIjGJKhERERjElQiIqIxCSoREdGYBJWIiGhMgkpERDQmQSUiIhqToBIREY1JUImIiMYkqERERGOGc+fH2ZLuk3RrR9q3JN1Ub7/o27xL0mRJv+849pWOc7aXdIukBZJOrbs8Imm8pPmS7qp/xw3Xe4mIiKEZzprKWcC0zgTb77Y91fZUyt71F3Uc/lnfMdsHd6SfARwITKm3vuc8GrjK9hTgqvo4IiJaNGxBxfZ1wLL+jtXaxruAcwZ7DkmbAmNtX193hjwb2LMeng7MqffndKRHRERL2upTeT2wxPZdHWlbSvqRpGslvb6mbQYs7MizsKYBTLS9uN7/FTBxWEscERGrNGx71K/CPjy5lrIY2ML2A5K2B/5D0rZDfTLbluSBjkuaCcwE2GKLLdawyBERsSojXlORtC7w18C3+tJsP2L7gXr/RuBnwFbAImBSx+mTahrAkto81tdMdt9Ar2l7lu0e2z0TJkxo8u1ERESHNpq/3gzcYftPzVqSJkgaU++/iNIhf3dt3louaafaD7MfcEk9bS4wo96f0ZEeEREtGc4hxecA/wtsLWmhpP3rob15agf9zsDNdYjxBcDBtvs6+Q8BzgQWUGowl9X0k4C3SLqLEqhOGq73EhERQzNsfSq29xkg/f39pF1IGWLcX/5eYLt+0h8Adv3zShkREU3KjPqIiGhMgkpERDQmQSUiIhqToBIREY1JUImIiMYkqERERGMSVCIiojEJKhER0ZgElYiIaEyCSkRENCZBJSIiGpOgEhERjUlQiYiIxiSoREREYxJUIiKiMQkqERHRmOHc+XG2pPsk3dqRdpykRZJuqre3dhw7RtICSXdK2r0jfVpNWyDp6I70LSV9v6Z/S9J6w/VeIiJiaIazpnIWMK2f9C/anlpv8wAkbUPZZnjbes7pksbUfetPA/YAtgH2qXkB/qU+10uAB4H9V36hiIgYWcMWVGxfByxbZcZiOnCu7Uds/5yyH/0O9bbA9t22HwXOBaZLEvAmyn72AHOAPRt9AxERsdra6FM5TNLNtXlsXE3bDLi3I8/CmjZQ+nOBX9tesVJ6vyTNlNQrqXfp0qVNvY+IiFjJSAeVM4AXA1OBxcDJI/GitmfZ7rHdM2HChJF4yYiItdK6I/litpf03Zf0VeA79eEiYPOOrJNqGgOkPwBsLGndWlvpzB8RES0Z0ZqKpE07Hu4F9I0MmwvsLWl9SVsCU4AfADcAU+pIr/UonflzbRu4GnhnPX8GcMlIvIeIiBjYsNVUJJ0D7AJsImkhcCywi6SpgIFfAAcB2L5N0nnA7cAK4FDbj9XnOQy4HBgDzLZ9W32JjwHnSvoU8CPga8P1XiIiYmiGLajY3qef5AF/+G2fCJzYT/o8YF4/6XdTRodFl+vp6Wm7CGukt7e37SJEjDqZUR8REY1JUImIiMaM6OiviFWaOcqblGZ1Z1NdxEhJTSUiIhqToBIREY1JUImIiMYkqERERGMSVCIiojEJKhER0ZgElYiIaEyCSkRENCZBJSIiGpOgEhERjUlQiYiIxiSoREREY4YtqEiaLek+Sbd2pH1O0h2SbpZ0saSNa/pkSb+XdFO9faXjnO0l3SJpgaRTJammj5c0X9Jd9e+44XovERExNMNZUzkLmLZS2nxgO9svA34KHNNx7Ge2p9bbwR3pZwAHUrYYntLxnEcDV9meAlxVH0dERIuGLajYvg5YtlLaFbZX1IfXA5MGe466p/1Y29fXfenPBvash6cDc+r9OR3pERHRkiEFFUmvHUraavo74LKOx1tK+pGkayW9vqZtBizsyLOwpgFMtL243v8VMHGgF5I0U1KvpN6lS5f+mcWOiIiBDLWm8uUhpg2JpI8DK4Bv1KTFwBa2XwEcAXxT0tihPl+txXiQ47Ns99jumTBhwpoWOyIiVmHQnR8lvRp4DTBB0hEdh8YCY9bkBSW9H3gbsGsNBth+BHik3r9R0s+ArYBFPLmJbFJNA1giaVPbi2sz2X1rUp6IiGjOqmoq6wHPogSfZ3fclgPvXN0XkzQN+CjwDtsPd6RPkDSm3n8RpUP+7tq8tVzSTnXU137AJfW0ucCMen9GR3pERLRk0JqK7WuBayWdZfue1XliSecAuwCbSFoIHEsZ7bU+ML+ODL6+jvTaGThB0h+Bx4GDbfd18h9CGUm2IaUPpq8f5iTgPEn7A/cA71qd8kVERPMGDSod1pc0C5jceY7tNw10gu19+kn+2gB5LwQuHOBYL7BdP+kPALsOWuqIiBhRQw0q5wNfAc4EHhu+4kRERDcbalBZYfuMYS1JRER0vaEOKf62pEMkbVqXRxkvafywliwiIrrOUGsqfaOsjupIM/CiZosTERHdbEhBxfaWw12QiIjofkMKKpL26y/d9tnNFiciIrrZUJu/XtVxfwPKUN4fUhZ4jIiIAIbe/PWhzsd1H5Rzh6VEERHRtdZ06fvfAelniYiIJxlqn8q3eWIV4DHAS4HzhqtQERHRnYbap/L5jvsrgHtsLxwoc0RErJ2G1PxVF5a8g7JC8Tjg0eEsVEREdKeh7vz4LuAHwN9SVgP+vqTVXvo+IiKe3oba/PVx4FW274Oy/wlwJXDBcBUsIiK6z1BHf63TF1CqB1bj3IiIWEsMNTB8V9Llkt5ftwO+FJi3qpMkzZZ0n6RbO9LGS5ov6a76d1xNl6RTJS2QdLOkV3acM6Pmv0vSjI707SXdUs85te4OGRERLRk0qEh6iaTX2j4K+DfgZfX2v8CsITz/WcC0ldKOBq6yPQW4qj4G2IOyjfAUYCZwRi3DeMqukTsCOwDH9gWimufAjvNWfq2IiBhBq6qpnELZjx7bF9k+wvYRwMX12KBsXwcsWyl5OjCn3p8D7NmRfraL64GNJW0K7A7Mt73M9oPAfGBaPTbW9vW2TVkyZk8iIqI1qwoqE23fsnJiTZu8hq850fbiev9XwMR6fzPg3o58C2vaYOkL+0l/CkkzJfVK6l26dOkaFjsiIlZlVUFl40GObfjnvnitYXiVGf/815llu8d2z4QJE4b75SIi1lqrCiq9kg5cOVHSAcCNa/iaS2rTFfVv36iyRcDmHfkm1bTB0if1kx4RES1ZVVD5CPABSddIOrnergX2Bw5fw9ecyxM7Sc4ALulI36+OAtsJ+E1tJrsc2E3SuNpBvxtweT22XNJOddTXfh3PFRERLRh08qPtJcBrJL0R2K4mX2r7e0N5cknnALsAm0haSBnFdRJwnqT9gXsoM/ShDFF+K7AAeBj4QC3DMkmfBG6o+U6w3df5fwhlhNmGwGX1FhERLRnqfipXA1ev7pPb3meAQ7v2k9fAoQM8z2xgdj/pvTwR7CIiomWZFR8REY1JUImIiMYkqERERGMSVCIiojEJKhER0ZgElYiIaEyCSkRENCZBJSIiGpOgEhERjUlQiYiIxiSoREREYxJUIiKiMQkqERHRmASViIhoTIJKREQ0ZsSDiqStJd3UcVsu6SOSjpO0qCP9rR3nHCNpgaQ7Je3ekT6tpi2QdPRIv5eIiHiyIW3S1STbdwJTASSNoewrfzFlp8cv2v58Z35J2wB7A9sCLwCulLRVPXwa8BZgIXCDpLm2bx+RNxIREU8x4kFlJbsCP7N9T9lmvl/TgXNtPwL8XNICYId6bIHtuwEknVvzJqhERLSk7aCyN3BOx+PDJO0H9AJH2n4Q2Ay4viPPwpoGcO9K6TsOV0F7enqG66mHXW9vb9tFiIi1RGsd9ZLWA94BnF+TzgBeTGkaWwyc3OBrzZTUK6l36dKlTT1tRESspM3RX3sAP7S9BMD2EtuP2X4c+CpPNHEtAjbvOG9STRso/Slsz7LdY7tnwoQJDb+NiIjo02bz1z50NH1J2tT24vpwL+DWen8u8E1JX6B01E8BfgAImCJpS0ow2Rt4z4iUfGYXNCfN6t7muojoXq0EFUkbUUZtHdSR/FlJUwEDv+g7Zvs2SedROuBXAIfafqw+z2HA5cAYYLbt20bsTURExFO0ElRs/w547kpp7xsk/4nAif2kzwPmNV7AiIhYI5lRHxERjUlQiYiIxiSoREREYxJUIiKiMQkqERHRmASViIhoTIJKREQ0JkElIiIak6ASERGNSVCJiIjGJKhERERjElQiIqIxCSoREdGYBJWIiGhMgkpERDQmQSUiIhrTWlCR9AtJt0i6SVJvTRsvab6ku+rfcTVdkk6VtEDSzZJe2fE8M2r+uyTNaOv9RERE+zWVN9qeartvQ/WjgatsTwGuqo8B9qDsTT8FmAmcASUIAccCOwI7AMf2BaKIiBh5bQeVlU0H5tT7c4A9O9LPdnE9sLGkTYHdgfm2l9l+EJgPTBvpQkdERNFmUDFwhaQbJc2saRNtL673fwVMrPc3A+7tOHdhTRso/UkkzZTUK6l36dKlTb6HiIjosG6Lr/0624skPQ+YL+mOzoO2LclNvJDtWcAsgJ6enkaeMyIinqq1mortRfXvfcDFlD6RJbVZi/r3vpp9EbB5x+mTatpA6RER0YJWgoqkjSQ9u+8+sBtwKzAX6BvBNQO4pN6fC+xXR4HtBPymNpNdDuwmaVztoN+tpkVERAvaav6aCFwsqa8M37T9XUk3AOdJ2h+4B3hXzT8PeCuwAHgY+ACA7WWSPgncUPOdYHvZyL2NiIjo1EpQsX038PJ+0h8Adu0n3cChAzzXbGB202WMiIjVN9qGFEdERBdLUImIiMa0OaQ4IqJfPT09q840ivT29rZdhFEjNZWIiGhMgkpERDQmzV8RMfrM7ILmpFnd1UQ3UlJTiYiIxiSoREREYxJUIiKiMQkqERHRmASViIhoTIJKREQ0JkElIiIak6ASERGNSVCJiIjGjHhQkbS5pKsl3S7pNkmH1/TjJC2SdFO9vbXjnGMkLZB0p6TdO9Kn1bQFko4e6fcSERFP1sYyLSuAI23/sG4pfKOk+fXYF21/vjOzpG2AvYFtgRcAV0raqh4+DXgLsBC4QdJc27ePyLuIiIinGPGgUveWX1zvPyTpJ8Bmg5wyHTjX9iPAzyUtAHaoxxbUXSSRdG7Nm6ASEdGSVvtUJE0GXgF8vyYdJulmSbMljatpmwH3dpy2sKYNlN7f68yU1Cupd+nSpQ2+g4iI6NRaUJH0LOBC4CO2lwNnAC8GplJqMic39Vq2Z9nusd0zYcKEpp42IiJW0srS95KeQQko37B9EYDtJR3Hvwp8pz5cBGzecfqkmsYg6RER0YI2Rn8J+BrwE9tf6EjftCPbXsCt9f5cYG9J60vaEpgC/AC4AZgiaUtJ61E68+eOxHuIiIj+tVFTeS3wPuAWSTfVtH8E9pE0FTDwC+AgANu3STqP0gG/AjjU9mMAkg4DLgfGALNt3zaSbyQiIp6sjdFf/wWon0PzBjnnRODEftLnDXZeRESMrMyoj4iIxiSoREREYxJUIiKiMQkqERHRmASViIhoTIJKREQ0JkElIiIak6ASERGNSVCJiIjGJKhERERjElQiIqIxCSoREdGYBJWIiGhMgkpERDQmQSUiIhrT9UFF0jRJd0paIOnotssTEbE26+qgImkMcBqwB7ANZffIbdotVUTE2ku22y7DGpP0auA427vXx8cA2P7MQOf09PS4t7d3tV+rp6dnTYsZEdG6Aw88kIMOOmiNz5d0o+1V/hB2e1B5JzDN9gH18fuAHW0ftlK+mcDM+nBr4M4RLeiqbQLc33Yhnqby2Q6fbvpsu6mso9ULbU9YVaYR36O+DbZnAbPaLsdAJPUO5QogVl8+2+HTTZ9tN5W123V1nwqwCNi84/GkmhYRES3o9qByAzBF0paS1gP2Bua2XKaIiLVWVzd/2V4h6TDgcmAMMNv2bS0Xa02M2qa5p4F8tsOnmz7bbiprV+vqjvqIiBhdur35KyIiRpEElYiIaEyCSsRaTNL4tssQTy8JKsNA0qsk7dp2OZ4OJKntMjxdSfor4H5J09ouy+qQNFXSm9suR/QvQWV4PAM4Q9JubRekm0mS60gSSZMk/UXbZXq6kLQH8FlgOnB8t3xX69p+1wOnS9q47fLEUyWoNEzSOrb/Bzge+H+Sdm+7TF3sGZLWk/QF4FzgdkkT2y5Ut6tX+acCr7b9beBs4IOS1h/NNUNJrwKuBR4FLrP965aLFP3o6nkqo5HtxyVtDUwE/hP4sqQP2b685aJ1lfoZvheYAgj4NnCD7SWtFqzL1RrKpcBptpdLmgQ8D7jJ9iPtlm5gNaBcCXwIGAt8v6a/EviN7Z+1WLzokKDSMElTKD+GzwD+ifIf4HRJG9i+pNXCdYHaxLUTcBJwFfARykKA84ALWyxa15M0HfgMsClwlqRLKZ/to8B32yzbYCRtD1wBHE65ULsC2FnStsC7gHUkfdL2Qy0WM6pMfmxQDSjvowSUK2xfXdNfCcywfXib5RvtJD2T0sz1Q+AxYF/gYGAz4M22P7BS/j/1ucTgJD0LuI6yqvd9kvYCjgQ+Ciy2/fOV8o+Kz1bSK4AbgcNsny7p7yjN9t8BDqWspHGx7RtaLGZ0SFBpSL3CfjewAXC57Wtq+uXAZ21fVR+vY/vx1go6ytXAgu2HJe0JfAm4hnJ12gv8BfCA7f+q+UfFj1836Pzu1e0gtrP9YUkbURZmnQw80nEx1PpnW5tBX2t7dt2U70pKkPkt8Czg67Zv6sjfepnXdmn+aoCkZwB7Ac8FLrB9XU0/l3KV/T1J69t+pPa55Is/ANsPd9z/D0lvBN4MPAzsAowHNpf0Tdun5HMcuo6Asg5wAKUJbCPgY8BrKT/Yb5TUY/tzo+GztX0nT+x/9HLgOcBSYGPg85Smr78ENrb9n7ad/1/tyuivBtj+I3Am8K2OgHI+8BLgLynB+1OS3l7zezSPshkt6lXqFsAFwM+Br9n+G8r20btLem2b5eti44FbgW8BrweeTWmyXWF7N+BNkl7aYvkGshswlTKw4EuU/1//CRxCGRBzCJT/X62VMFJTaYrtpZQrqL4mr7HAq4BnAv8C7ANsLWlz26fniz8k9wG/oATmO2xfX69CH6jNN08aUpor1KGxfb+kj9TRX28EHgB2BeZK2gF4CHiw85xR0mx7CWVU5SnA84GLgQ/Y/o6kycCFkq60/VMo/Ui2f9tWYddWqak0SMVmlKu+1wAbAh+nXFntQJlodlAdzfKnc9ooazew/SBwAvBjSnCB0jGL7XuBv5G0t6S/rmmpAQ5RDSgCDCyrte2/Bn5P+bx/I2nzOvikb6h8q78Xtn8CfKz+2+8GnFwDioD/ozSTLZf0XJWtxXeVtGGLRV4rJag0yMUi22+iBJTPAFsCH63j6F9Y03eoV4Spqq9CDSwXAEdIep/tFQCSzqCMXno+cLSkw2v+fJ5DVD+rsykXOh+2/Xvb+wE/Az5I2fDubJU9iwD2HwXNYn+sf8fzxAWGgS8C4yi1138HjgIWduSPEZLmr+GzEaUJ7J9s/0LSyyjLYnwfuBc4RdI5tr/cZiG7ge3ban/U2wEknQS8Enh5vYK+gLJ6wXcyCW712L5d0r7ASZKuA5YA21KawA4CfgTMkzSOMkLsYeAnLZa376JhDvANSc8FXgC8iNI/9HZKIFmXMgz9xlYKuhbLkOJhJGndujvlK4BPA1cDp9v+raSDga1sH9FuKbuHpDG2H5P0NeArtm+QNLY25YyrtZrO/OljGSJJG9n+naSdgROBD9q+tR67ltL8eAWl1vgm4P9s/7it8tZybQW8GvgdpX/l3ZRBHP8GLAP2BL5g+w+tFXItlJrK8Hpc0nrAJyg1lL6A8mLgZcBNK5+QH8JBPV6Hb28M9FCWbVlej20m6XWUK9bFts/L8NKhs/27encr4Gbbt9bv7vsptZOL6xDv51FqLy/tC/LtlBhqh3xfp/wuwFsoI9putf1rSXeMgsEFa50ElWFUv9CPSjoA+EO9EnwRZbkJA2dK+htK5+hGts/PD+HA6mfyR0n/DFwg6SHbX1fZZuAAysTIj1P6WCba/nI+x9V2DfAPkg4E3kD5bs6pAeXvKFf/BwHX1VrjaBgVBuXffoXt7/QldMzLEWXUmChznhbZ/l4rpVwLpKN+BNh+oAaUycAxwBjbh1KaxL5Aqb4fKOnva/78EA7C9u2UkUr3SVqXMrLuBsow2OdR2tVfI2lCRoOtHtsLgHdQmpW2Br5j+9w6mmoX4GzbiylzRPpGhY2Gz/ha4C21qXllzwC+ApxHCSqzah9nDIMElZH1MLAC+JikoyhzA35AWUBxGvDm2rwQq2D7DttXUL7DrwOuqaPu9gH+G7jH9tLOAD1KfvxGvdqsdDTwGduXSHov5ft5se0L6uPe2tw4Ki6C6nDjV1NGrq1sW8ocsr7Jkq8AlveTLxqQjvoR1tdcIOlk4Pw6oe9yyozxKcB7nOXdh0xlrbCzgQttn1P7XD5NCSz3AzsCS2x/veZP0+JqkLQ38B7KagaX1Gaxj1FqBmMp69yd2WYZByPpDZQmu6WUgQYvtH1hx/HR0nz3tJE+lRbUH77xlPWWrgfeRll19X8SUFaPy8KTxwNzJG1m+/PAUSqr8n6ZMldhz9rHcnICymq7DnjI9qWS9qfM/3iP7R9I2oAyofdPRlPQVtmM7C2U5uUzbD8oaZM68nKJ7Yudtfgal+avEWb7cZfZy58F3i9ppu0/2t7d9j9DGTrbl7+vySZNNwOzfQtly4ENVLYdfhZlj5ApwHzgrygTTl/cd04+z6Gx/X81oMygLDe0r+0f1GN/ALaT9N7aiT9qVjWoM+l3pqwafnJNO4qyQsPGwCclHQSjo/nu6STNXy1S2WToGOBzfWP+O+a2jAEeByba/lU9liuqQdTPbDtgSm373xfY0vanak1liaRnu27mlM9z6GpAfo7tH9bH6wP/QVmXbWfgq8Altk9tr5RPJmkC8JjtZbWWtTPwJds/rB31xwH7U3aOTI2lIWn+apHLTPGZrsu91/bdFXpiOfIXAJMlXWD7K/nCD64OcX2QsiL045R+qv0kbVwDyvGUK+vv2T4tn+fQua5U0PHDew6lWel/KKPF9qGsEjHLo2Syocsir339bu8CvlwDyoaUUWAPumPCbL4PzUhQaVlHQFG9WlqfUl1fTrkSXECZk/FL2/NaLGpXsP3LOvfnW5SO2d8CqCzzMpMyUuxcSY/0dTBLeo7t37RV5m7S8cP7G+DDth+SdBlluPGjK+cfJVf/KyjDzft+73YBJgGXAqgsT3OK7YtaKd3TTPpURomO/3hbUdYN+3dgvu07KMFlg878o6HderSyfRtlFdtTgCNs/5oyIOIayo/hvsALJW1QO5s/oLoab6xavdKfSPkcoXTWP0aZCzJW0ksl7Qijo4/F9qOUxV0/Lum7wAzgbtsXSToHeObKAaXtMnez9KmMMnXEysG231kfvwGYDbyTMizyuW55zaVuIulDwHq2T5Z0HPBL27Prsb+s2RYDfwAed8fOkzEwSdtQJhP+K2W48R8l7VYfX0NZhugbHkULpkralFJDuaPWsM4BJtt+dT0+mbKyxW3tlbL7paYy+vyUchW9b53FfDxl6ZHFlPkCR9URTrmSGprvAe+V9CZK88xeAPVKen/g/bbvB7ahrMb7wtZK2kVcVjX4W8p22eNU1t76OnCA7ZmUuSEHqm7xIOnZKisKt8b2Yts31IDy95RBHH0BZQvKKMFPq2MCcv6frb7UVEahOjLlcMrksrOAuygzmrcBLnKZSR5DJOnllOA8ljJT/H7KFrQPAbMou3OeTmljnw38bhT0A3QFSevZflTSR4ANbX9G0jPr/KHNKfsJvYQy8up825e2WmDfzawuAAAFRElEQVT+FCiOpiyX9CmV9fjeRFnr7HTKrPxtbV/dlz/fh6FLR/0oZPtmlZnL69b/sAdQlpq4wPZ8AElfAc61fU19vHHtO4iV2P6xpHfbfqQOjT2EslDi6ZQ5C2dQBkb83HX72fyQDFnnpll9LR+/h7I7Z62dnAjcOxoCCvypn+fblAEbolys9W30dTdloMyzVVZhvrKvXyjfh6FJ89coVSdJPippLLAfZd2lvoDyWcpV94raKXo8MEMdkybjyWpAWZ+ylLsos+2fS+lcvgf4LnCspA/X/PkBGYKOz+kbwDsk7deXVpsSjweuAn4v6W0tFfMpXPaKeSvwbMoipJ8GfkmZlCzKVhWfkHRkzZ/vwxClpjL6rUdpngFA0qmUq+tPueza1wu81PZGbRWwW9TA0jc5bxxldNgVwJm2H5B0J2U+AwC1P2CZy8q9MQjbd0p6D7BXnRfyTErA/qXtg+rcq606z2n76r8OP/8SsAllyPEJlM3ILqpzyC4D/ll1A7O2ytltUlMZ5Won8gzKsNcFwPbAZ2tA+RzlP8Rtkv62zXJ2izoh7teUK9JNgGttP1AP70sZzo2kV1ECzGF12HGsQr36P7GOoDuN0px4UD28JbClpCMl7VPzj4bhxouAWymTjR+kBpR6+MOUC+8nTeaUlN/NQeTD6QL1S/5RynyVQ1x25fsSsJftyZRO0PEtFrGruKy9djDwv5QfO2qAfjlwhKSXUEaJmTIpblTMEO8GdQLvWOD5wJUAkqZTdj/9BGW30w9KOqzmb71ZyWX3yhMom5HdBiBpFmWF632B9STtpCeW+n88FxoDy+ivLiJp/dqE8w+U3fd6MhN8zUnajrK3+U3AFpRhsM+hDDVeh7JO1C878qezdohU1rU7ihJI9gceoEySnEPpvzqZMsLxwdH2mUr6OmVNsx0pe96/jXLxMR44lTJ0+ouUC4672irnaJWg0mVUls0/lbIP92mqC1C2Xa5uJWkTygim5cBk4IOUgPIJyg/LOsD4vpFLCSxDJ2kD23+os9gPr/0uV1AC+MW2j1kpf6ufbW2KmwjMoyzl8nxKYJwLXE0Z1XYpcC9lw705rgtsxhPS/NVlatPNv1Im9E1NQPnz2L6/1vamAkdSmryOoSyQeD5lZNDhkg6v+RNQhqgGlGdSJp32bfP7dsqmat+X9HxJe0l6Y83v2nTWChe/Ara3vRzYnfJ9+O861PwFlAuN+0lAGVCCSheq7b7vsH1T22V5GllIWRfsFEp/yieA2ynzg/YApqtjP5YYmtpp/3Hgo5L+wfYjlIuiF1LW4zqIsrrxASrrr3289mm1SXV4/mRgocvS+S+gXGzMB85OQBlYhhR3qTqKKRpie6mk41zWsHopZSHKC2tzzYaUgJNtZ9eA7VvqkkN7ShpPGVo8GZhn+3yVBSovomyqJsrckda4bi8s6UzKjqKmrL13JfBV2z9ps3yjXWoqEU/oa0rcmFJDgbIe1Osomz39vJVSPQ3U2vWnbS+j1ATXt31+Pbwz8BeUvq1v2v5RS8V8kho89qE0ed1JCSijomyjWTrqI1YiaWtKf8optmd3diCrbKSWGssakrQu8CXgx7ZnSXo1ZVTYGMok1DtbLWA/6lIzm6e5eWgSVCL6UYfEnkgJLNfUtIz8akAdyn0W0Au8CriMsq5dfrSfBhJUIgag7Ag5bFT2LjmS0q/7Rds/bbVA0ZgElYhVSA1leNQ5QpvavqXtskRzElQiIqIxGf0VERGNSVCJiIjGJKhERERjElQiIqIxCSoREdGYBJWIiGhMgkpERDTm/wOB6M2mdR4ITAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "statuses = np.array( links.status )\n", "\n", "\n", "f, ax = pl.subplots(1, 1)\n", "ax.hist( statuses, np.arange(-1.5,6,1), edgecolor=(0.2,0.2,0.2), lw=3, \n", " color=(0.2,0.6,1.0) )\n", "\n", "\n", "ax.set_ylabel('Count')\n", "ax.set_xticks([-1, 1, 3, 4])\n", "ax.set_xticklabels( ['Time out', 'Accessible', 'Redirected', 'Not found'], rotation=-45 )\n", "\n", "pl.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(array([ 7487, 14394, 21355, 4039]), array([-1.2, -0.8, 1.8, 3.8, 4.8]))\n", "0.15837123215230037\n", "0.30447382337387624\n", "0.451718667371761\n", "0.0854362771020624\n" ] } ], "source": [ "count, bin_values = np.histogram(statuses, bins = [-1.2,-0.8,1.8,3.8,4.8])\n", "\n", "print(count, bin_values)\n", "total = float(count.sum())\n", "\n", "for j in range(4):\n", " print(count[j]/total)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Filtering out repeated links" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To avoid using repeated links, let's create another dataframe." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(36702, 8)\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
typejournalidyearlinkcodestatus
0abstractNucleic_Acids_Res23155066.02013http://www.netlab.uky.edu/p/bioinfo/DiffSplice2001
1abstractBioinformatics27273673.02017http://www.cs.helsinki.fi/u/lmsalmel/LoRMA/3023
2abstractBMC_Bioinformatics20492656.02010http://www.cse.univdhaka.edu/~ashis/ppred/inde...3013
3abstractPLoS_Comput_Biol28212402.02017https://dongjunchung.github.io/GGPA/3013
4abstractBioinformatics28130230.02017https://github.com/bfosso/MetaShot3013
\n", "
" ], "text/plain": [ " type journal id year \\\n", "0 abstract Nucleic_Acids_Res 23155066.0 2013 \n", "1 abstract Bioinformatics 27273673.0 2017 \n", "2 abstract BMC_Bioinformatics 20492656.0 2010 \n", "3 abstract PLoS_Comput_Biol 28212402.0 2017 \n", "4 abstract Bioinformatics 28130230.0 2017 \n", "\n", " link code status \n", "0 http://www.netlab.uky.edu/p/bioinfo/DiffSplice 200 1 \n", "1 http://www.cs.helsinki.fi/u/lmsalmel/LoRMA/ 302 3 \n", "2 http://www.cse.univdhaka.edu/~ashis/ppred/inde... 301 3 \n", "3 https://dongjunchung.github.io/GGPA/ 301 3 \n", "4 https://github.com/bfosso/MetaShot 301 3 " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uniqueLinks = links[ links['flag.uniqueness'] == 0 ]\n", "print(uniqueLinks.shape)\n", "uniqueLinks = uniqueLinks.drop(columns=['flag.uniqueness'])\n", "uniqueLinks.head()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
typejournalidyearlinkcodestatus
1516abstractNucleic_Acids_Res15608157.02005http://www.human-siRNA-database.net3013
25875bodyNucleic_Acids_Res15608157.02005www.human-siRNA-database.net-1-1
1771abstractNucleic_Acids_Res15608160.02005http://rfam.wustl.edu/-1-1
3406abstractNucleic_Acids_Res15608160.02005http://www.sanger.ac.uk/Software/Rfam/3013
11997bodyNucleic_Acids_Res15608160.02005http://infernal.wustl.edu/-1-1
2859abstractNucleic_Acids_Res15608162.02005http://siRNA.cgb.ki.se3013
18563bodyNucleic_Acids_Res15608162.02005http://aosearch.cgb.ki.se-1-1
3097abstractNucleic_Acids_Res15608164.02005http://alpha.protres.ru/trnadbase-1-1
4575abstractNucleic_Acids_Res15608164.02005http://www.tRNA.uni-bayreuth.de2001
7689abstractNucleic_Acids_Res15608166.02005http://www.cs.ualberta.ca/~bioinfo/PA/GOSUB3013
9325bodyNucleic_Acids_Res15608166.02005http://www.cs.ualberta.ca/~bioinfo/PA/3013
16974bodyNucleic_Acids_Res15608166.02005http://redpoll.pharmacy.ualberta.ca/CCDB3013
4324abstractNucleic_Acids_Res15608172.02005http://motif.stanford.edu/eblocks/4044
5294abstractNucleic_Acids_Res15608172.02005http://otl.stanford.edu/2001
734abstractNucleic_Acids_Res15608174.02005http://ekhidna.biocenter.helsinki.fi:9801/sqgr...-1-1
\n", "
" ], "text/plain": [ " type journal id year \\\n", "1516 abstract Nucleic_Acids_Res 15608157.0 2005 \n", "25875 body Nucleic_Acids_Res 15608157.0 2005 \n", "1771 abstract Nucleic_Acids_Res 15608160.0 2005 \n", "3406 abstract Nucleic_Acids_Res 15608160.0 2005 \n", "11997 body Nucleic_Acids_Res 15608160.0 2005 \n", "2859 abstract Nucleic_Acids_Res 15608162.0 2005 \n", "18563 body Nucleic_Acids_Res 15608162.0 2005 \n", "3097 abstract Nucleic_Acids_Res 15608164.0 2005 \n", "4575 abstract Nucleic_Acids_Res 15608164.0 2005 \n", "7689 abstract Nucleic_Acids_Res 15608166.0 2005 \n", "9325 body Nucleic_Acids_Res 15608166.0 2005 \n", "16974 body Nucleic_Acids_Res 15608166.0 2005 \n", "4324 abstract Nucleic_Acids_Res 15608172.0 2005 \n", "5294 abstract Nucleic_Acids_Res 15608172.0 2005 \n", "734 abstract Nucleic_Acids_Res 15608174.0 2005 \n", "\n", " link code status \n", "1516 http://www.human-siRNA-database.net 301 3 \n", "25875 www.human-siRNA-database.net -1 -1 \n", "1771 http://rfam.wustl.edu/ -1 -1 \n", "3406 http://www.sanger.ac.uk/Software/Rfam/ 301 3 \n", "11997 http://infernal.wustl.edu/ -1 -1 \n", "2859 http://siRNA.cgb.ki.se 301 3 \n", "18563 http://aosearch.cgb.ki.se -1 -1 \n", "3097 http://alpha.protres.ru/trnadbase -1 -1 \n", "4575 http://www.tRNA.uni-bayreuth.de 200 1 \n", "7689 http://www.cs.ualberta.ca/~bioinfo/PA/GOSUB 301 3 \n", "9325 http://www.cs.ualberta.ca/~bioinfo/PA/ 301 3 \n", "16974 http://redpoll.pharmacy.ualberta.ca/CCDB 301 3 \n", "4324 http://motif.stanford.edu/eblocks/ 404 4 \n", "5294 http://otl.stanford.edu/ 200 1 \n", "734 http://ekhidna.biocenter.helsinki.fi:9801/sqgr... -1 -1 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "repeated_data = pd.concat(g for _, g in uniqueLinks.groupby(\"id\") if len(g) > 1)\n", "repeated_data.head(15)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 36702 entries, 0 to 48391\n", "Data columns (total 7 columns):\n", "type 36702 non-null object\n", "journal 36702 non-null object\n", "id 36536 non-null float64\n", "year 36702 non-null int64\n", "link 36702 non-null object\n", "code 36702 non-null int64\n", "status 36702 non-null int64\n", "dtypes: float64(1), int64(3), object(3)\n", "memory usage: 2.2+ MB\n" ] } ], "source": [ "uniqueLinks.info()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idyearcodestatus
count3.653600e+0436702.00000036702.00000036702.000000
mean2.282358e+072012.014332232.3634131.849981
std3.722272e+063.483438120.6496231.603584
min1.560816e+072005.000000-1.000000-1.000000
25%1.978383e+072009.000000200.0000001.000000
50%2.318078e+072012.000000301.0000003.000000
75%2.595065e+072015.000000301.0000003.000000
max2.916934e+072017.000000999.0000004.000000
\n", "
" ], "text/plain": [ " id year code status\n", "count 3.653600e+04 36702.000000 36702.000000 36702.000000\n", "mean 2.282358e+07 2012.014332 232.363413 1.849981\n", "std 3.722272e+06 3.483438 120.649623 1.603584\n", "min 1.560816e+07 2005.000000 -1.000000 -1.000000\n", "25% 1.978383e+07 2009.000000 200.000000 1.000000\n", "50% 2.318078e+07 2012.000000 301.000000 3.000000\n", "75% 2.595065e+07 2015.000000 301.000000 3.000000\n", "max 2.916934e+07 2017.000000 999.000000 4.000000" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uniqueLinks.describe()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Percent of repeated links: 100.0%\n" ] } ], "source": [ "print( 'Percent of repeated links: %.1f%%' % ( (1 - len(uniqueLinks)/len(links))*100. ) )" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "statuses = np.array( uniqueLinks.status )\n", "\n", "f, ax = pl.subplots(1, 1)\n", "ax.hist( statuses, np.arange(-1.5,6,1), edgecolor=(0.2,0.2,0.2), lw=3, \n", " color=(0.2,0.6,1.0) )\n", "\n", "\n", "ax.set_ylabel('Count')\n", "ax.set_xticks([-1, 1, 3, 4])\n", "ax.set_xticklabels( ['Time out', 'Accessible', 'Redirected', 'Not found'], rotation=-45 )\n", "\n", "pl.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(19209,)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.unique(uniqueLinks.id).shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fixing http -> https redirection\n", "\n", "Due to increased security awareness in the past few years, a number of links marked as redirections are in fact just changing the http protocol to https. We will not consider them as redirection, if the rest of the URL is the same." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pubmed_idurlstatushttps_redirect
027273673http://www.cs.helsinki.fi/u/lmsalmel/LoRMA/302True
120492656http://www.cse.univdhaka.edu/~ashis/ppred/inde...301-1
228212402https://dongjunchung.github.io/GGPA/301True
328130230https://github.com/bfosso/MetaShot301True
420935049http://github.com301False
521765097http://nwrce.org/pgat301False
617939871http://kdbio.inesc-id.pt/~svinga/ep/301False
728453681http://opig.stats.ox.ac.uk/webapps/sphinx301False
821546392http://www.microbio.me/boulderale301-1
922034521http://www.cmbi.ru.nl/pdb_redo302False
\n", "
" ], "text/plain": [ " pubmed_id url status \\\n", "0 27273673 http://www.cs.helsinki.fi/u/lmsalmel/LoRMA/ 302 \n", "1 20492656 http://www.cse.univdhaka.edu/~ashis/ppred/inde... 301 \n", "2 28212402 https://dongjunchung.github.io/GGPA/ 301 \n", "3 28130230 https://github.com/bfosso/MetaShot 301 \n", "4 20935049 http://github.com 301 \n", "5 21765097 http://nwrce.org/pgat 301 \n", "6 17939871 http://kdbio.inesc-id.pt/~svinga/ep/ 301 \n", "7 28453681 http://opig.stats.ox.ac.uk/webapps/sphinx 301 \n", "8 21546392 http://www.microbio.me/boulderale 301 \n", "9 22034521 http://www.cmbi.ru.nl/pdb_redo 302 \n", "\n", " https_redirect \n", "0 True \n", "1 -1 \n", "2 True \n", "3 True \n", "4 False \n", "5 False \n", "6 False \n", "7 False \n", "8 -1 \n", "9 False " ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "redirection_checking = pd.read_csv('http2https.redirected.csv', \n", " header=None, names=['pubmed_id', 'url', 'status', 'https_redirect']\n", " )\n", "redirection_checking.head(10)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "for index, row in redirection_checking.iterrows():\n", " if row['https_redirect'] == 'True' and uniqueLinks[ uniqueLinks.link == row['url']].shape[0] > 0:\n", " idx = np.where(uniqueLinks.link == row['url'])[0][0]\n", " uniqueLinks.iloc[idx,6] = 1" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
typejournalidyearlinkcodestatus
0abstractNucleic_Acids_Res23155066.02013http://www.netlab.uky.edu/p/bioinfo/DiffSplice2001
1abstractBioinformatics27273673.02017http://www.cs.helsinki.fi/u/lmsalmel/LoRMA/3021
2abstractBMC_Bioinformatics20492656.02010http://www.cse.univdhaka.edu/~ashis/ppred/inde...3013
3abstractPLoS_Comput_Biol28212402.02017https://dongjunchung.github.io/GGPA/3011
4abstractBioinformatics28130230.02017https://github.com/bfosso/MetaShot3011
\n", "
" ], "text/plain": [ " type journal id year \\\n", "0 abstract Nucleic_Acids_Res 23155066.0 2013 \n", "1 abstract Bioinformatics 27273673.0 2017 \n", "2 abstract BMC_Bioinformatics 20492656.0 2010 \n", "3 abstract PLoS_Comput_Biol 28212402.0 2017 \n", "4 abstract Bioinformatics 28130230.0 2017 \n", "\n", " link code status \n", "0 http://www.netlab.uky.edu/p/bioinfo/DiffSplice 200 1 \n", "1 http://www.cs.helsinki.fi/u/lmsalmel/LoRMA/ 302 1 \n", "2 http://www.cse.univdhaka.edu/~ashis/ppred/inde... 301 3 \n", "3 https://dongjunchung.github.io/GGPA/ 301 1 \n", "4 https://github.com/bfosso/MetaShot 301 1 " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uniqueLinks.head()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(array([ 6036, 10926, 16336, 3404]), array([-1.2, -0.8, 1.8, 3.8, 4.8]))\n", "0.16445970246853034\n", "0.2976949485041687\n", "0.44509835976241074\n", "0.0927469892648902\n" ] } ], "source": [ "statuses = uniqueLinks.status\n", "count, bin_values = np.histogram(statuses, bins = [-1.2,-0.8,1.8,3.8,4.8])\n", "\n", "print(count, bin_values)\n", "total = float(count.sum())\n", "\n", "for j in range(4):\n", " print(count[j]/total)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.25720669173342053" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(count[0]+count[-1])/total" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Constructing a dataframe with only abstracts" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 7183 entries, 0 to 7877\n", "Data columns (total 7 columns):\n", "type 7183 non-null object\n", "journal 7183 non-null object\n", "id 7182 non-null float64\n", "year 7183 non-null int64\n", "link 7183 non-null object\n", "code 7183 non-null int64\n", "status 7183 non-null int64\n", "dtypes: float64(1), int64(3), object(3)\n", "memory usage: 448.9+ KB\n" ] } ], "source": [ "uniqueLinks_abs = uniqueLinks[ uniqueLinks.type == 'abstract' ]\n", "uniqueLinks_abs.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Number of entries per journal" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Journal name \t\t Count\n", "Nat_Biotechnol\t\t 180\n", "Genome_Med\t\t 352\n", "Nat_Methods\t\t 403\n", "Genome_Biol\t\t 904\n", "BMC_Syst_Biol\t\t 912\n", "Bioinformatics\t\t 3131\n", "PLoS_Comput_Bio\t\t 3226\n", "BMC_Bioinformat\t\t 6840\n", "BMC_Genomics\t\t 7651\n", "Nucleic_Acids_R\t\t 13103\n" ] } ], "source": [ "journals = np.array( uniqueLinks.journal )\n", "journalTitles = np.unique(journals)\n", "\n", "jhash = {}\n", "for jid,journal in enumerate(journalTitles):\n", " jhash[journal] = jid\n", "listxs = np.arange(0,11,1)\n", "\n", "journals_num = [ jhash[journal] for journal in journals ]\n", "\n", "counts, bins = np.histogram( journals_num, bins=listxs )\n", "\n", "newIDX = np.argsort(counts)\n", "\n", "f, ax = pl.subplots(1, 1)\n", "ax.barh( bins[0:-1], counts[newIDX], 0.8, edgecolor=(0.2,0.2,0.2), lw=2, \n", " color=(0.2,0.6,1.0) )\n", "\n", "ax.spines['bottom'].set_visible(False)\n", "ax.spines['right'].set_visible(False)\n", "ax.get_xaxis().tick_top()\n", "ax.get_yaxis().tick_left()\n", "\n", "ax.text( 5000, 11.3, 'Entries count', fontsize=12 )\n", "\n", "ax.set_yticks( listxs )\n", "ax.set_yticklabels( journalTitles[newIDX], rotation=0, fontsize=12 )\n", "\n", "pl.show()\n", "\n", "print('Journal name \\t\\t Count')\n", "for jid,journal in enumerate(journalTitles[newIDX]):\n", " print('%s\\t\\t %d' %(journal[:15],counts[newIDX][jid]) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Number of entries per abstract" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Journal name \t\t Count\n", "Nat_Biotechnol\t\t 1\n", "Genome_Med\t\t 18\n", "Nat_Methods\t\t 20\n", "Genome_Biol\t\t 60\n", "BMC_Syst_Biol\t\t 104\n", "PLoS_Comput_Bio\t\t 259\n", "BMC_Genomics\t\t 386\n", "BMC_Bioinformat\t\t 1161\n", "Bioinformatics\t\t 1866\n", "Nucleic_Acids_R\t\t 3308\n" ] } ], "source": [ "journals = np.array( uniqueLinks_abs.journal )\n", "journalTitles = np.unique(journals)\n", "\n", "jhash = {}\n", "for jid,journal in enumerate(journalTitles):\n", " jhash[journal] = jid\n", "listxs = np.arange(0,11,1)\n", "\n", "journals_num = [ jhash[journal] for journal in journals ]\n", "\n", "counts, bins = np.histogram( journals_num, bins=listxs )\n", "\n", "newIDX = np.argsort(counts)\n", "\n", "f, ax = pl.subplots(1, 1)\n", "ax.barh( bins[0:-1], counts[newIDX], 0.8, edgecolor=(0.2,0.2,0.2), lw=2, \n", " color=(0.2,0.6,1.0) )\n", "\n", "ax.spines['bottom'].set_visible(False)\n", "ax.spines['right'].set_visible(False)\n", "ax.get_xaxis().tick_top()\n", "ax.get_yaxis().tick_left()\n", "\n", "ax.text( 1200, 11.3, 'Entries count', fontsize=12 )\n", "\n", "ax.set_yticks( listxs )\n", "ax.set_yticklabels( journalTitles[newIDX], rotation=0, fontsize=12 )\n", "\n", "pl.show()\n", "\n", "print('Journal name \\t\\t Count')\n", "for jid,journal in enumerate(journalTitles[newIDX]):\n", " print('%s\\t\\t %d' %(journal[:15],counts[newIDX][jid]) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Number of of links per year" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "uLinks_year = uniqueLinks.groupby(['year', 'status']).agg('count')" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
typejournalidlinkcode
yearstatus
2005-1462462461462462
1319319318319319
3549549535549549
4235235233235235
2006-1442442435442442
1333333333333333
3591591585591591
4216216212216216
2007-1468468466468468
1340340335340340
3603603588603603
4230230230230230
\n", "
" ], "text/plain": [ " type journal id link code\n", "year status \n", "2005 -1 462 462 461 462 462\n", " 1 319 319 318 319 319\n", " 3 549 549 535 549 549\n", " 4 235 235 233 235 235\n", "2006 -1 442 442 435 442 442\n", " 1 333 333 333 333 333\n", " 3 591 591 585 591 591\n", " 4 216 216 212 216 216\n", "2007 -1 468 468 466 468 468\n", " 1 340 340 335 340 340\n", " 3 603 603 588 603 603\n", " 4 230 230 230 230 230" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uLinks_year.head(12)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Grouping by status and retrieving the percent for each status per year." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "tseries = {}\n", "for j,status in enumerate([-1, 1, 3, 4]):\n", " tseries[status] = np.array( uLinks_year.iloc[j::4].link )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "barsize=0.75\n", "\n", "f, ax = pl.subplots(1, 1, figsize=(4,2.2) )\n", "\n", "b = np.zeros( tseries[status].shape[0] )\n", "years = np.arange(2005,2018,1)\n", "\n", "for zlabel,status in enumerate([4,-1,1,3]):\n", " ax.bar( years, tseries[status] + b, barsize, label=legendStatus[status], \n", " color=colors[status], zorder=-1-zlabel )\n", " b += tseries[status]\n", "\n", "simpleaxis(ax)\n", "\n", "ax.set_ylabel(\"Number of links\")\n", "ax.set_yticks( np.arange(0,4001,1000) )\n", "ax.set_yticklabels( np.array( np.arange(0,4001,1000), dtype=int ), fontsize=8 )\n", "\n", "ax.set_xlabel(\"Year\")\n", "ax.set_xticks( np.arange( 2005,2020,3 ) )\n", "ax.set_xticklabels( np.arange( 2005,2020,3 ), fontsize=8 )\n", "\n", "pl.legend(bbox_to_anchor=(1,1.4), frameon=False, ncol=4, \n", " handletextpad=0.2, columnspacing=0.8, handlelength=1)\n", "\n", "pl.tight_layout()\n", "pl.savefig('Figure_1_panels/NumLinks per year - all.pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Percent of links per year" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Normalizing the number of links for each year." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "tseries_norm = np.zeros( tseries[-1].shape )\n", "for status in [-1, 1, 3, 4]:\n", " tseries_norm += tseries[status]" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "barsize=0.75\n", "\n", "f, ax = pl.subplots(1, 1, figsize=(4,2.2) )\n", "\n", "b = np.zeros( tseries[status].shape[0] )\n", "years = np.arange(2005,2018,1)\n", "\n", "for zlabel,status in enumerate([4,-1,1,3]):\n", " ax.bar( years, ( tseries[status]/tseries_norm + b )*100., \n", " barsize, label=legendStatus[status], \n", " color=colors[status], zorder=-1-zlabel )\n", " b += tseries[status]/tseries_norm\n", "\n", "simpleaxis(ax)\n", "\n", "ax.set_ylabel(\"Percent of links (%)\")\n", "ax.set_yticks( np.arange(0,101,25) )\n", "ax.set_yticklabels( np.array( np.arange(0,101,25), dtype=int ), fontsize=8 )\n", "\n", "ax.set_xlabel(\"Year\")\n", "ax.set_xticks( np.arange( 2005,2020,3 ) )\n", "ax.set_xticklabels( np.arange( 2005,2020,3 ), fontsize=8 )\n", "\n", "pl.legend(bbox_to_anchor=(1,1.4), frameon=False, ncol=4, \n", " handletextpad=0.2, columnspacing=0.8, handlelength=1)\n", "\n", "pl.tight_layout()\n", "pl.savefig('Figure_1_panels/Percent per year - all.pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Number of links as function of time" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Counting total number per year" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = pl.subplots( 1, 1, figsize=(3.4, 2.) )\n", "\n", "pl.plot( years, tseries[1] + tseries[3], 'o-', \n", " markersize=7, label='Accessible + Redirected', color=colors2['fg_accessb'],\n", " markeredgecolor=colors2['fg_accessb'], markerfacecolor=colors2['bg_accessb'] )\n", "pl.plot( years, tseries[-1] + tseries[4], 's-', \n", " markersize=6, label='Broken + Time out', color=colors2['fg_unreach'],\n", " markeredgecolor=colors2['fg_unreach'], markerfacecolor=colors2['bg_unreach'] )\n", "\n", "simpleaxis(ax)\n", "\n", "pl.ylabel('Number of links')\n", "pl.ylim(0,4050)\n", "\n", "pl.xlabel('Time (years)')\n", "pl.xlim(2004.5,2017.5)\n", "\n", "pl.legend(bbox_to_anchor=(0.9,1.5), frameon=False, handlelength=1.3)\n", "\n", "pl.tight_layout()\n", "pl.savefig('Figure_1_panels/Total per year - all.pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ratio between accessible links in 2017 in reference to that in 2005" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ratio: 3.00\n", "Average growth ratio: 0.0%\n" ] } ], "source": [ "numAccessible = tseries[1] + tseries[3]\n", "\n", "ratio = numAccessible[-1] / numAccessible[0]\n", "print('Ratio: %.2f' % ratio)\n", "\n", "avgGrowthRatio = (numAccessible[-1] - numAccessible[0]) / (2017-2005) / numAccessible[0]\n", "print( 'Average growth ratio: %.1f%%' % (avgGrowthRatio*100) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ratio between unreachable links in 2017 in reference to that in 2005" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ratio: 0.00\n", "Average growth ratio: -100.0%\n" ] } ], "source": [ "numUnreachable = tseries[-1] + tseries[4]\n", "\n", "ratio = numUnreachable[-1] / numUnreachable[0]\n", "print('Ratio: %.2f' % ratio)\n", "\n", "\n", "avgGrowthRatio = (numUnreachable[-1] - numUnreachable[0]) / (2017-2005) / numUnreachable[0]\n", "print( 'Average growth ratio: %.1f%%' % (avgGrowthRatio*100) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Parsing Github and SourceForge" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "def count_status(statuses):\n", " count, bin_values = np.histogram(statuses, bins = [-1.2,-0.8,1.8,3.8,4.8])\n", "\n", " print(count, bin_values)\n", " total = float(count.sum())\n", "\n", " for j in range(4):\n", " print(count[j]/total)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(array([ 3, 98, 252, 0]), array([-1.2, -0.8, 1.8, 3.8, 4.8]))\n", "0.0084985835694051\n", "0.2776203966005666\n", "0.7138810198300283\n", "0.0\n", "(array([ 1, 107, 105, 1]), array([-1.2, -0.8, 1.8, 3.8, 4.8]))\n", "0.004672897196261682\n", "0.5\n", "0.49065420560747663\n", "0.004672897196261682\n", "(array([1166, 2466, 2400, 584]), array([-1.2, -0.8, 1.8, 3.8, 4.8]))\n", "0.17623941958887546\n", "0.37273276904474\n", "0.36275695284159615\n", "0.08827085852478839\n" ] } ], "source": [ "find_github = lambda x: 'github.com' in x.link\n", "find_sourceforge = lambda x: 'sourceforge.net' in x.link\n", "find_others = lambda x: ('github.com' not in x.link) and ('sourceforge.net' not in x.link)\n", "\n", "uniqLabs_github = uniqueLinks_abs[ uniqueLinks_abs.apply(find_github, axis=1) ]\n", "uniqLabs_sourceforge = uniqueLinks_abs[ uniqueLinks_abs.apply(find_sourceforge, axis=1) ]\n", "uniqLabs_others = uniqueLinks_abs[ uniqueLinks_abs.apply(find_others, axis=1) ]\n", "\n", "count_status(uniqLabs_github.status)\n", "count_status(uniqLabs_sourceforge.status)\n", "count_status(uniqLabs_others.status)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = pl.subplots( 1, 1, figsize=(1.5, 1.4) )\n", "\n", "# let's make sure the order is maintained:\n", "data_broken = np.array([0.08827085852478839, 0.004672897196261682,0])\n", "data_timeout = np.array([0.17623941958887546, 0.004672897196261682, 0.0084985835694051])\n", "data_accessible = np.array([0.4068923821039903, 0.7009345794392523, 0.9036827195467422])\n", "data_redirected = np.array([0.32859733978234584, 0.2897196261682243, 0.08781869688385269])\n", "\n", "colors = { -1 : (1.0,0.6,0.2), 1 : (0.2,0.7,0.2), 3 : (0.2,0.4,1.0), 4 : (1.0,0.,0.) }\n", "\n", "pl.bar( [0,1,2], data_broken+data_timeout+data_accessible+data_redirected, 0.7, color=colors[3], lw=1.3, capsize=8 )\n", "pl.bar( [0,1,2], data_broken+data_timeout+data_accessible, 0.7, color=colors[1], lw=1.3, capsize=8 )\n", "pl.bar( [0,1,2], data_broken+data_timeout, 0.7, color=colors[-1], lw=1.3, capsize=8 )\n", "pl.bar( [0,1,2], data_broken, 0.7, color=colors[4], lw=1.3, capsize=8 )\n", "\n", "ax.set_ylim(0,1)\n", "ax.set_ylabel('Percent of Links')\n", "\n", "ax.set_xlabel('')\n", "ax.set_xlim(-0.5,2.5)\n", "ax.set_xticks([0,1,2])\n", "ax.set_xticklabels( ['Others','Source\\nForge','GitHub'], \n", " rotation=-25, fontsize=9)\n", "\n", "simpleaxis(ax)\n", "\n", "pl.savefig('Figure_1_panels/Percent - github sourceforge.pdf')" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = pl.subplots(1, 1, figsize=(2.,1.6))\n", "\n", "data_broken = np.array([0.08827085852478839, 0.004672897196261682,0])*100\n", "data_timeout = np.array([0.17623941958887546, 0.004672897196261682, 0.0084985835694051])*100\n", "\n", "data_unreachable = data_broken + data_timeout\n", "\n", "ax.barh( [0,1,2], data_unreachable, 0.6, edgecolor=(1.0,0.0,0.0), lw=0.1, color=(1.0,0.0,0.0) )\n", "\n", "ax.spines['top'].set_visible(False)\n", "ax.spines['right'].set_visible(False)\n", "ax.get_xaxis().tick_bottom()\n", "ax.get_yaxis().tick_left()\n", "\n", "ax.text( -0.05, -1.5, 'Unreachable links (%)', fontsize=12 )\n", "\n", "ax.set_xticks( [0, 10, 20, 30] )\n", "ax.set_yticks( [0, 1, 2] )\n", "ax.set_yticklabels( ['Others', 'Source\\nForge', 'GitHub'], rotation=0, fontsize=11 )\n", "\n", "pl.savefig('Figure_1_panels/Percent - github sourceforge_I.pdf')" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "uniqLabs_github = uniqueLinks_abs[ uniqueLinks_abs.apply(find_github, axis=1) ]\n", "\n", "tseries_norm = uniqueLinks_abs.groupby(['year']).agg('count').type\n", "tseries_GH = uniqLabs_github.groupby(['year']).agg('count').type[:-1]/tseries_norm[5:-1]*100\n", "years_gh = range(2010,2017)\n", "tseries_SF = uniqLabs_sourceforge.groupby(['year']).agg('count').type/tseries_norm[:-1]*100\n", "years_sf = range(2005,2017)\n", "\n", "f, ax = pl.subplots( 1, 1, figsize=(2.4, 2.) )\n", "\n", "gh_color=(0.0,0.0,0.5)\n", "gh_incolor=(0.3,0.8,1.0)\n", "pl.plot( years_gh, tseries_GH, 's-', zorder=2,\n", " markersize=5, label='GitHub', color=gh_color,\n", " markeredgecolor=gh_color, markerfacecolor=gh_incolor )\n", "\n", "sf_color=(0.8,0.0,0.0)\n", "sf_incolor=(1.0,0.8,0.8)\n", "pl.plot( years_sf, tseries_SF, 'o-', zorder=1,\n", " markersize=5, label='SourceForge', color=sf_color,\n", " markeredgecolor=sf_color, markerfacecolor=sf_incolor )\n", "\n", "simpleaxis(ax)\n", "\n", "pl.ylabel('Percent of links')\n", "pl.ylim(0,22)\n", "ax.set_xticks([2005, 2010, 2015])\n", "\n", "pl.xlabel('Year')\n", "pl.xlim(2004.5,2016.5)\n", "\n", "pl.legend(bbox_to_anchor=(0.85,1.), frameon=False, handlelength=1.3, fontsize=10)\n", "\n", "pl.tight_layout()\n", "pl.savefig('Figure_1_panels/Total per year - github.pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Number of links per year - abstract only" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "uLinks_ya = uniqueLinks_abs.groupby(['year', 'status']).agg('count')\n", "\n", "tseries_abs = {}\n", "for j,status in enumerate([-1, 1, 3, 4]):\n", " tseries_abs[status] = np.array( uLinks_ya.iloc[j::4].link )" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "barsize=0.75\n", "\n", "f, ax = pl.subplots(1, 1, figsize=(4,2.2) )\n", "\n", "b = np.zeros( tseries_abs[status].shape[0] )\n", "years = np.arange(2005,2018,1)\n", "\n", "for zlabel,status in enumerate([4,-1,1,3]):\n", " ax.bar( years, tseries_abs[status] + b, barsize, label=legendStatus[status], \n", " color=colors[status], zorder=-1-zlabel )\n", " b += tseries_abs[status]\n", "\n", "simpleaxis(ax)\n", "\n", "ax.set_ylabel(\"Number of links\")\n", "#ax.set_yticks( np.arange(0,2001,500) )\n", "#ax.set_yticklabels( np.array( np.arange(0,2001,500), dtype=int ), fontsize=8 )\n", "\n", "ax.set_xlabel(\"Year\")\n", "ax.set_xticks( np.arange( 2005,2020,3 ) )\n", "ax.set_xticklabels( np.arange( 2005,2020,3 ), fontsize=8 )\n", "\n", "pl.legend(bbox_to_anchor=(1,1.4), frameon=False, ncol=4, \n", " handletextpad=0.2, columnspacing=0.8, handlelength=1)\n", "\n", "pl.tight_layout()\n", "pl.savefig('Figure_1_panels/NumLinks per year - Abstract.pdf')" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "tseries_norm = np.zeros( tseries_abs[-1].shape )\n", "for status in [-1, 1, 3, 4]:\n", " tseries_norm += tseries_abs[status]" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "barsize=0.75\n", "\n", "f, ax = pl.subplots(1, 1, figsize=(4,2.2) )\n", "\n", "b = np.zeros( tseries_abs[status].shape[0] )\n", "years = np.arange(2005,2018,1)\n", "\n", "for zlabel,status in enumerate([4,-1,1,3]):\n", " ax.bar( years, 100*(tseries_abs[status] + b)/tseries_norm, barsize, \n", " label=legendStatus[status], \n", " color=colors[status], zorder=-1-zlabel )\n", " b += tseries_abs[status]\n", "\n", "simpleaxis(ax)\n", "\n", "ax.set_ylabel(\"Percent of links (%)\")\n", "ax.set_yticks( np.arange(0,101,25) )\n", "ax.set_yticklabels( np.array( np.arange(0,101,25), dtype=int ), fontsize=8 )\n", "\n", "ax.set_xlabel(\"Year\")\n", "ax.set_xticks( np.arange( 2005,2020,3 ) )\n", "ax.set_xticklabels( np.arange( 2005,2020,3 ), fontsize=8 )\n", "\n", "pl.legend(bbox_to_anchor=(1,1.4), frameon=False, ncol=4, \n", " handletextpad=0.2, columnspacing=0.8, handlelength=1)\n", "\n", "pl.tight_layout()\n", "pl.savefig('Figure_1_panels/Percent per year - Abstract.pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Status vs IF of current journal " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "List of journals considered in this study:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['Nucleic_Acids_Res' 'Bioinformatics' 'BMC_Bioinformatics'\n", " 'PLoS_Comput_Biol' 'BMC_Genomics' 'BMC_Syst_Biol' 'Nat_Biotechnol'\n", " 'Genome_Biol' 'Nat_Methods' 'Genome_Med']\n" ] } ], "source": [ "journals = uniqueLinks.journal.unique()\n", "print( journals )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Impact factors were retrieved from this address: http://admin-apps.webofknowledge.com/JCR/JCR?RQ=HOME" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearBMC_GenomicsNucleic_Acids_ResBioinformaticsBMC_BioinformaticsPLoS_Comput_BiolGenome_BiolBMC_Syst_BiolNat_BiotechnolNat_MethodsGenome_Med
020163.72910.1627.3072.4484.54211.9082.30341.66725.0627.071
120153.8679.2025.7662.4354.58711.3132.20843.11325.3285.846
220143.9869.1124.9812.5764.62010.8102.43541.51432.0725.809
320134.0418.8084.6212.6724.82910.4652.85339.08025.9534.942
420124.3978.2785.3233.0244.86710.2882.98232.43823.5653.906
520114.0738.0265.4682.7515.2159.0363.14823.26819.2760.000
620104.2067.8364.8773.0295.5156.8853.56531.09020.7210.000
720093.7597.4794.9263.4285.7596.6264.06429.49516.8740.000
820083.9266.8784.3283.7815.8956.1533.70622.29713.6510.000
920074.1806.9545.0393.4936.2366.5890.00022.84815.4780.000
1020064.0296.3174.8943.6174.9147.1720.00022.67214.9590.000
1120054.0927.5526.0194.9580.0009.7120.00022.7386.7410.000
1220043.2507.2605.7425.4230.0000.0000.00022.3550.0000.000
1320030.0006.5756.7010.0000.0000.0000.00017.7210.0000.000
\n", "
" ], "text/plain": [ " year BMC_Genomics Nucleic_Acids_Res Bioinformatics BMC_Bioinformatics \\\n", "0 2016 3.729 10.162 7.307 2.448 \n", "1 2015 3.867 9.202 5.766 2.435 \n", "2 2014 3.986 9.112 4.981 2.576 \n", "3 2013 4.041 8.808 4.621 2.672 \n", "4 2012 4.397 8.278 5.323 3.024 \n", "5 2011 4.073 8.026 5.468 2.751 \n", "6 2010 4.206 7.836 4.877 3.029 \n", "7 2009 3.759 7.479 4.926 3.428 \n", "8 2008 3.926 6.878 4.328 3.781 \n", "9 2007 4.180 6.954 5.039 3.493 \n", "10 2006 4.029 6.317 4.894 3.617 \n", "11 2005 4.092 7.552 6.019 4.958 \n", "12 2004 3.250 7.260 5.742 5.423 \n", "13 2003 0.000 6.575 6.701 0.000 \n", "\n", " PLoS_Comput_Biol Genome_Biol BMC_Syst_Biol Nat_Biotechnol Nat_Methods \\\n", "0 4.542 11.908 2.303 41.667 25.062 \n", "1 4.587 11.313 2.208 43.113 25.328 \n", "2 4.620 10.810 2.435 41.514 32.072 \n", "3 4.829 10.465 2.853 39.080 25.953 \n", "4 4.867 10.288 2.982 32.438 23.565 \n", "5 5.215 9.036 3.148 23.268 19.276 \n", "6 5.515 6.885 3.565 31.090 20.721 \n", "7 5.759 6.626 4.064 29.495 16.874 \n", "8 5.895 6.153 3.706 22.297 13.651 \n", "9 6.236 6.589 0.000 22.848 15.478 \n", "10 4.914 7.172 0.000 22.672 14.959 \n", "11 0.000 9.712 0.000 22.738 6.741 \n", "12 0.000 0.000 0.000 22.355 0.000 \n", "13 0.000 0.000 0.000 17.721 0.000 \n", "\n", " Genome_Med \n", "0 7.071 \n", "1 5.846 \n", "2 5.809 \n", "3 4.942 \n", "4 3.906 \n", "5 0.000 \n", "6 0.000 \n", "7 0.000 \n", "8 0.000 \n", "9 0.000 \n", "10 0.000 \n", "11 0.000 \n", "12 0.000 \n", "13 0.000 " ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IFdata = pd.read_csv('impact_factors_timeseries.csv')\n", "IFdata = IFdata.fillna(0)\n", "IFdata" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "count = {}\n", "Z = np.zeros( (10) )\n", "for status in [1,3,-1,4]:\n", " count[status] = np.zeros( (10) )\n", "\n", "def journalID(journalName): \n", " if journalName in journals:\n", " return np.argwhere(journals == journalName)[0][0]\n", " else: return -1\n", "\n", "for index, row in uniqueLinks.iterrows():\n", " jid = journalID(row.journal)\n", " if jid != -1:\n", " count[row['status']][ jid ] += 1\n", " Z[ jid ] += 1\n", " \n", "\n", "# Normalizing\n", "for status in [1,3,-1,4]:\n", " count[status] /= Z" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "IFs = np.array( IFdata.iloc[0] )[1:]\n", "newIDX = np.argsort( IFs )\n", "IFs = IFs[newIDX]" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "barsize=0.7\n", "\n", "f, ax = pl.subplots(1, 1, figsize=(3.6,2.0) )\n", "\n", "IFs_x = np.arange(10)\n", "\n", "ax.bar( IFs_x, count[4][newIDX], barsize, label='Broken', \n", " color=colors[4], zorder=-1 )\n", "b = np.copy( count[4][newIDX] )\n", "\n", "ax.bar( IFs_x, b+count[-1][newIDX], barsize, label='Time out', \n", " color=colors[-1], zorder=-2 )\n", "b += count[-1][newIDX]\n", "\n", "ax.bar( IFs_x, b+count[1][newIDX], barsize, label='Good', \n", " color=colors[1], zorder=-3 )\n", "b += count[1][newIDX]\n", "\n", "ax.bar( IFs_x, b+count[3][newIDX], barsize, label='Redirect',\n", " color=colors[3], zorder=-4 )\n", "\n", "simpleaxis(ax)\n", "\n", "ax.set_ylabel(\"Percent (%)\")\n", "ax.set_yticks( np.arange(0,1.1,0.25) )\n", "ax.set_yticklabels( np.array( np.arange(0,1.1,0.25)*100, dtype=int ), fontsize=8 )\n", "\n", "ax.set_xlabel(\"Current Impact Factor\")\n", "ax.set_xticks( IFs_x )\n", "ax.set_xticklabels( ['2.3','2.5','3.7','4.5','7.1','7.3','10','12','25','41'], \n", " fontsize=8, )\n", "\n", "pl.tight_layout()\n", "pl.savefig('Figure_1_panels/Percent per IF.pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Status vs IF - abstracts only" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "List of journals considered in this study:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['Nucleic_Acids_Res' 'Bioinformatics' 'BMC_Bioinformatics'\n", " 'PLoS_Comput_Biol' 'BMC_Genomics' 'BMC_Syst_Biol' 'Nat_Biotechnol'\n", " 'Genome_Biol' 'Nat_Methods' 'Genome_Med']\n" ] } ], "source": [ "journals = uniqueLinks_abs.journal.unique()\n", "print( journals )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Impact factors were retrieved from this address: http://admin-apps.webofknowledge.com/JCR/JCR?RQ=HOME" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "count = {}\n", "Z = np.zeros( (10) )\n", "for status in [1,3,-1,4]:\n", " count[status] = np.zeros( (10) )\n", "\n", "def journalID(journalName): \n", " if journalName in journals:\n", " return np.argwhere(journals == journalName)[0][0]\n", " else: return -1\n", "\n", "for index, row in uniqueLinks_abs.iterrows():\n", " jid = journalID(row.journal)\n", " if jid != -1:\n", " count[row['status']][ jid ] += 1\n", " Z[ jid ] += 1\n", " \n", "\n", "# Normalizing\n", "for status in [1,3,-1,4]:\n", " count[status] /= Z" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "IFs = np.array( IFdata.iloc[0] )[1:]\n", "newIDX = np.argsort( IFs )\n", "IFs = IFs[newIDX]" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPQAAACXCAYAAAAiT3YKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAEM5JREFUeJzt3Xu0HWV5x/HvD0hIuMRAiQIukXIRuQQiJIJcatCUFbsCchFZKlV6A7QVSoEqtS7ApRXsahESMICVKKAtitwCTeXSQMI1ISYQQKTcapWLEAgGSQjJ0z/edyebnbPPntln73OZ8/ustdeZeWfmmffM3s9+Z2bPvKOIwMyqYaOBroCZdY4T2qxCnNBmFeKENqsQJ7RZhTihzSrECW1WIU5oswpxQptViBParEKGVEJPnTo1AL/8Go6vQrqW0JK2l7RI0kpJm+SyCyTNk3Rh3XwblDXz0ksvdau6ZpXQzRZ6GfBR4D4ASfsCW0TEIcBISZN6Kutifcwqb5NuBY6IlcBKSbWiA4Bb8/BtwIeAt3ooW9CtOplVXdcSugdjgafy8HJgT1JCN5a9jaQTgRMBdthhh5YrmTh7YqlKLZy2sOc4J5UKw8JLm9RnEMUpG8Nx+idOs/e8Hf15Umw5MCYPjwFebVL2NhFxWURMjIiJ48aN65eKmg1V/ZnQ95KOqQGmkI6teyozszZ18yz3CEm3AfsA/wWMIB1TzwPWRMQDEbGosaxb9TEbDrp5Umw1qdWtd38P853arTqYDTdD6sISM+udE9qsQpzQZhXihDarECe0WYU4oc0qxAltViFOaLMKcUKbVYgT2qxCnNBmFeKENqsQJ7RZhbS820rSKGAacAiwPfAGsBS4OSIe6W71zKyMXhNa0rmkZJ5LuvXxRWAU8D7gvJzsp0fEQ12up5kV0KqFfiAizm4y7V8lvRNo3dGXmfWLXhM6Im5uLMut8siIeC0iXiS12mY2CJQ6KSbpL4HrgWslfbPsyiRNlTQ3v56TdKSk5XVlW5eNaWbrtTqGPiIibqwrmhIRU/O0JcBZZVYWEXOAOXn5+0l9cT8cEZPLxDGznrVqocdLukHShDz+kKTvSrocaPsMt6SdgBciYgWwe34Uznmq65XfzMprdQz9DUnbAl/LyfZVYEtgdB/PbB8NXJeHdwVeAWYChwP1ewSlO9o3G86KHEO/DvwtMAO4DPgU8Ms+rndd4kbEsogI0rH5Xo0zuqN9s+J6TWhJXweuBWYDh0bEEcBi4BZJn21nhbnFfzMiXpa0uaSN86SDgCfbiWlmSasWelpEHEZ6usVnAfJJssOArdpc58eBG/LwrsACSXcB7wF+0mZMM6P1hSVLJV0GjAburBVGxFtAy+c59yQiLq0bXgzs204cM9tQq5Nix0saD6yOiF/0U53MrE2tjqEPjoiHmyWzpDGSNjiRZWYDo9Uu9zGSvkW6GORB4LekmzN2AQ4F3guc3tUaWnJ4uedeQ8/PvbZqa7XLfVq+HPMY4FhgO9Ltk48Bl0bE/O5X0cyKank/dEQsAy7PLyvLLav1o649Ttas35T+0oSqfnG6CyKzCnELbeW5RRy03EKbVYgT2qxCnNBmFVIooSXdXqTMzAZWqy6IRgGbAdtI2gqo9SgyBnh3l+s2sPz7sQ1Brc5yn0Tq3GB70qWftYR+jdThgZkNIq0u/bwQuFDSFyNiej/VyczaVOh36IiYLulAYMf6ZSLiB12qlw0Hg+337MFWnzYUSmhJVwI7k7ofWpOLAyiV0JJ2JD1S5zFSN0SHSTqT1IvJs8AJEbG6TEwzW6/olWITgT1yZ359dWtEHA+QH6VzaEQcLOlLwJHAjzuwDrNhqejv0EuBbTu0zkNzP9ynkb4o5uby24APdWgdZsNS0RZ6G+BRSQ8Aq2qFuRfQMp4jPblyFamjwC1Z/2ys5cDYkvHMrE7RhD6nEyuLiFXkLwRJs0k/f9V+zx4DvNq4jDvaNyuu0C53RNwJPAOMyMMLgEVlVyZpy7rRg4D/AT6cx6cA9/Wwbne0b1ZQ0Us//4rUZ3atC953k550UdYhkh6UdA/w64i4H7hL0nxgQpsxzSwrusv918AHST85ERFP5DPUpUTELcAtDWXnA+eXjWVmGyp6lntVRLxZG5G0Cel3aDMbRIom9J2S/gEYLemPSb8V39S9aplZO4om9JdJfXI/TLph4xbgH7tVKTNrT9Fj6NHA9yLicoD8xMjRwO+7VTEzK69oC307KYFrRpOu7DKzQaRoQo+KiBW1kTy8WXeqZGbtKprQr0ta99hXSfuRHoljZoNI0WPoU4EfS/oNqdeSbYHjulYrM2tLy4SWtBEwEng/sFsuftz3LZsNPkUeVrdW0sUR8QHSbZRmNkgV3eW+XdIxwE871MmBWXUNYI+xRU+KnUS6OuxNSa9J+p2k1zpWCzPriKKdBG7Zei4bLhb+ZqBrYM0UvX1Sko6X9NU8/h5JH+xu1cysrKK73JeQ+vv6dB5fAVzclRqZWduKnhTbPyL2lfRzgIh4RdLILtbLzNpQtIVenW/ICABJ44C1XauVmbWlaEJfBFwHvFPSN4D5wD+VXZmk/SXdI2m+pAty2XJJc/Nr67IxzWy9ome5r5b0IPBR0qWfR0bEY22s71ngIxGxUtLVksYDD0fE5DZimVmDIo+TPRnYhdS5waUR8Va7K4uI5+tGV5Meq7O7pHnA3cBZvnDFrH2tWujvkxJvHvAxYHfS42X7RNLewLiIeFTSrsArwEzgcODGhnmHdL/c/s3W+lOrhN4jIsYDSPo34IG+rjAfJ88APgkQEcty+fXAB2hI6Ii4DLgMYOLEicO29fYXQ3PeNuu1Oim27o6qvuxq1+TeQq8CzoiI5yVtns+eQ+p4/8m+rsNsOGvVQu9Td822SL1+vpaHIyLGlFzfscAk4FuSAM4CLpa0AngaOLtkPDOr02tCR8TGvU0vKyJ+BPyooXjfnuY1s/KK/g5tZkNA0Us/zTrOJ7M6zy20WYW4hW6ikq1H6Z40oJO9aVj3uYU2qxAntFmFeJfbyjvpwfLLnNj5atiG3EKbVYhbaLMOG8gTqm6hzSrELbQNfR06pu9Yy1q2Ph08v+AW2qxC3ELbwPHZ8o5zQnfbAO5+2fDjhB4qOvDFUMnLWe1tnNDNuGW1IcgnxcwqZFAktKQLJM2TdOFA18VsKBvwhJa0L7BFRBwCjJQ0aaDrZDZUDXhCAwcAt+bh20hPuTSzNgyGk2Jjgafy8HJgz/qJ9R3tAyskPd7merYBXmosFOpIHFTROCcNSH16jjEY45TbPn3ZNnMiYmqrmQZDQi8Hat0BjwFerZ9Y39F+X0haGBHtdNnhOP0cZzDVZTDG6c1g2OW+l/QQPIApwH0DWBezIW3AEzoiFgEr8wPr1kREnx+3YzZcDYZdbiLi1H5YTZ932x2n3+IMproMxjhNyU9vNauOAd/lNrPOqVxCS9pf0j2S5ku6oGHalyXdKWmBpKP6EOccSUskzZX0dy3i7JXjzJN0hbT+NwpJ/55j3CtpccH/7zRJ8xvKZkm6P8f6dIvlp+b55kp6TtKRddP+XNLTkq4qUI/e4hTeznn+7SUtkrQyP6G0rasHG+P09h62iLPBcpKW1/2/WxeNlZc9Lcfa4P/suIio1AvYFhiVh68GxtdNG5H/bgHc14c45wBTCtZnRN3wFcCkHuY5Cvh6gVibAt8H5jeUzwJ2aWNb3U+6Sq82vg2wC3BVH+MU3s55vlHAVsBc0nmdfYHL87Tv9LTNCsZp+h6Wfe8bt3mJbbPuPWusX6c+8/WvyrXQEfF8RKzMo6uBNXXTas+7Hg0sbTdOdr6k2yRNaBFndd3oKuBXPcx2FPDT3uJkf0H6cGywGuAHkm6S9N4CcZC0E/BCRKyoq+tLQKnngDeJU3g75/lXRsQrdUVtXT3YGKfAe9gsTk/L7Z73GM6r38sqYN171sP/2XGVS+gaSXsD4yLi0YbyS4CHgDv6EOeiiNgP+DwwvUCMIyQtBd4FvNwwbQSp5VjUIsYIYHJE9FTv0yPiQOB84F9a1Sc7Griu4Lyl45Tdzg3GArXnki/P421r9lkoudyuwB+RWtjDCy7f23vWFZVM6HyMM4P07fg2EfEF4P3AV9qNExHL8t8nitQnIm6MiL2A/wOmNUyeTNoFa+VPgR82iV+rz3zS7mIRhwM3Fpy3dJwy27kHvV49WEZvn4Uyy0XEskj70NcDexUM0/Q965bKJXQ+2XAVcEZEPN8wbdM8+AbrW4B24ozJf7ehxW/5deskr/ONhlmOolhLuRvweUlzgD0lfbGH+uxGgQ+/pG2BNyPi5VbzthOnzHZuoiNXD/b2HpZZTtLmkjbOkw8CniwYqul71jXdODAfyBfwKeC3pFZvLun4a3qeNjOX3QMc3Yc4lwJ3kz54H24R5+PAnfn1XWB74Ct5moCfAxuV/B9rLXEtzk25bB6wV4HlTwL+pm689n9Ny3GeA67tQ5zC2znPP4J0rPwKcDuwP3Bh/n+ml9gujXHObnwP+/AZWgTcRToe3riNz+X8nv7PTn/+fWGJWYVUbpfbbDhzQptViBParEKc0GYV4oQ2qxAndBdI2jbfePGkpAcl3SLpff1ch7GSvtDL9BXNpnWTpBMkbd9k2qx8c8ji/DqljfgTJP1J32s6NDmhOyxf53sdMDcido50iehZpMs+i8bYuGG8nTtzxgJNE3oAnUD6Lb6ZMyNiQn5d1Eb8CUCphO7anU8DwAndeYcCqyNiZq0gIpZExDxJkyXNrpVLmiHphDz8jKTzJS0Cjs236X1b0kLgVEnjJF2bb0lcIOmgvNw5kr6X53+qrlU7D9g5t3T/3KyyuU53SrohL3+epM9IekDSw5J2zvPNkjRT0kJJv5Q0LZfvmG9aWJRfB9bF/lKOsSTH/QQwEbg612t0kQ0q6Tt5vY9IOreufJLSbY5Lcn3fAXwNOC7HP07S1pKul/SQpPvy9dm17XalpLuBK4vUY0jo9JUqw/0FnAJc0GTaZGB23fgM4IQ8/Azw93XT5gKX1I3/EDg4D+8APJaHzyFdkbUp6fbHl0lXJO0ILO2lnivq6vQqsF2O8Wvg3DztVODbeXgWMIfUCOxKui59FLAZ62813BVYmIc/luu1WR7fuu7/mtikTrOAp4HF+TW+YdmN8/J7AyNJ3T9PytPGkC7DPQGYURdzOnB2Hv4IsLhuuz0IjB7oz0wnX5XZ1aiI/+hlfAqwR92de2MkbZGHb46IVcAqSS9SYvc+WxARzwFIehL4WS5/mLTHUXNNRKwFnpD0FOnmi6eBGUq3ka4BaucKpgBXRMTvYf0NJAWcGRE/aSj7pFL/7JuQvnj2IN0y+lxELMjxX8v1b4x3MHBMnucOSX9Qu/YduDEiGq+tH9Kc0J33CPCJJtPe4u2HOaMapr/ey/hGwAGx/j5dYN0HeFVd0RrKv6/1y6+tG1/bEKvxOuEATgNeAPbJdVxJB0n6Q+AMUkv8iqRZbLjd2tW4vYc8H0N33h3AprlFAdJ9tZIOAZ4ltbKbShrL+juKivgZUH+HVa8dKwC/A7YsEb+IYyVtlI+rdwIeB95BainXkm4XrJ3QuxX4M0mb5frWuu0pW68xpMRbLuldpF158rq3U34WmqQt88mtxvjzgM/keSYDL9Va8ypyQndYpAO0o4Ap+WerR4BvAs9HxK+Aa0i9eFxDutOqqFOAifnkzqPAyS3q8TJwt6SlvZ0UK+l/gQeA/wROznsLlwCfk7SEtAv+el7/HNJ90guV+ks7I8eYBcwselIsIpaQttMvSOcR7s7lbwLHAdPzum8ltdz/TfrSXCzpONKx8n6SHiKdKPxcXzfCYOa7rayQvKs7u4fjWxtE3EKbVYhbaLMKcQttViFOaLMKcUKbVYgT2qxCnNBmFeKENquQ/webVTXWxCb0FwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "barsize=0.7\n", "\n", "f, ax = pl.subplots(1, 1, figsize=(3.5,2.2) )\n", "\n", "IFs_x = np.arange(10)\n", "\n", "ax.bar( IFs_x, count[4][newIDX], barsize, label='Broken', \n", " color=colors[4], zorder=-1 )\n", "b = np.copy( count[4][newIDX] )\n", "\n", "ax.bar( IFs_x, b+count[-1][newIDX], barsize, label='Time out', \n", " color=colors[-1], zorder=-2 )\n", "b += count[-1][newIDX]\n", "\n", "ax.bar( IFs_x, b+count[1][newIDX], barsize, label='Good', \n", " color=colors[1], zorder=-3 )\n", "b += count[1][newIDX]\n", "\n", "ax.bar( IFs_x, b+count[3][newIDX], barsize, label='Redirect',\n", " color=colors[3], zorder=-4 )\n", "\n", "simpleaxis(ax)\n", "\n", "ax.set_ylabel(\"Percent (%)\")\n", "ax.set_yticks( np.arange(0,1.1,0.25) )\n", "ax.set_yticklabels( np.array( np.arange(0,1.1,0.25)*100, dtype=int ), fontsize=8 )\n", "\n", "ax.set_xlabel(\"Current Impact Factor\")\n", "ax.set_xticks( IFs_x )\n", "ax.set_xticklabels( ['2.3','2.5','3.7','4.5','7.1','7.3','10','12','25','41'], \n", " fontsize=8, )\n", "\n", "pl.tight_layout()\n", "pl.savefig('Figure_1_panels/Percent per IF - abstracts.pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Status vs IF at the time of publication" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "IFpub = {}\n", "for status in [1,3,-1,4]:\n", " IFpub[status] = []\n", "\n", "for index, row in uniqueLinks.iterrows():\n", " year = row.year\n", " if ( year >= 2003 ) and ( year <= 2017 ) :\n", " \n", " # there's no IF for 2017 yet\n", " if year == 2017: year = 2016\n", " \n", " yearIDX = -(year - 2003) + 13\n", " IF_at_time = IFdata[row.journal].iloc[ yearIDX ]\n", " IFpub[row.status].append( IF_at_time )" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = pl.subplots( 1, 1, figsize=(2.8, 2.0) )\n", "\n", "# let's make sure the order is maintained:\n", "data = [IFpub[4], IFpub[-1], IFpub[1], IFpub[3]]\n", "\n", "parts = ax.violinplot( data, [0,1,2,3], showmeans=False, showmedians=False, \n", " showextrema=False, widths=0.7, points=200 )\n", "\n", "colors=[(1.0,0.2,0.1),(1.0,0.6,0.2),(0.3,0.9,0.3),(0.3,0.7,1.0)]\n", "\n", "j = 0\n", "for pc in parts['bodies']:\n", " pc.set_facecolor(colors[j])\n", " pc.set_edgecolor( (0.2,0.2,0.2) )\n", " pc.set_edgecolors( (0.2,0.2,0.2) )\n", " pc.set_alpha(1)\n", " j += 1\n", " \n", "\n", "def buttpos(x): return [x-0.05,x+0.05]\n", "for j in range(4):\n", " pl.plot(buttpos(j), [np.mean(data[j])]*2, color=\"k\", \n", " linewidth=6, solid_capstyle=\"butt\", zorder=4)\n", "\n", "for j in range(4):\n", " ax.text( j-0.4, -2, 'n='+str(len(data[j])), fontsize=7 )\n", "\n", "ax.set_ylim(-3,14)\n", "ax.set_ylabel('Impact factor')\n", "\n", "ax.set_xlabel('')\n", "ax.set_xticks([0,1,2,3])\n", "ax.set_xticklabels( ['Broken','Timeout','Accessible','Redirected'], \n", " rotation=-25, fontsize=8 )\n", "\n", "simpleaxis(ax)\n", "\n", "pl.savefig('Figure_1_panels/IF vs status.pdf')" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(9.877125130203718, 1.659019515265056e-06)\n" ] } ], "source": [ "from scipy import stats\n", "f_value, p_value = stats.f_oneway(data[0], data[1], data[3], data[2])\n", "print(f_value, p_value)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Evolution of IF of each category over the years" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "IFpub = {}\n", "Z = {}\n", "for status in [1,3,-1,4]:\n", " IFpub[status] = np.zeros(12)\n", " Z[status] = np.zeros(12)\n", "\n", "for index, row in uniqueLinks.iterrows():\n", " year = row.year\n", " if ( year >= 2003 ) and ( year <= 2017 ) :\n", " \n", " # there's no IF for 2017 yet\n", " if year == 2017: year = 2016\n", " \n", " yearIDX = year - 2005\n", " IF_at_time = IFdata[row.journal].iloc[ yearIDX ]\n", " IFpub[row.status][yearIDX] += IF_at_time\n", " Z[row.status][yearIDX] += 1" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "colors = { -1 : (1.0,0.6,0.2), 1 : (0.2,0.7,0.2), 3 : (0.2,0.4,1.0), 4 : (1.0,0.,0.) }\n", "for s in [4,-1,1,3]:\n", " pl.plot( IFpub[s]/Z[s], color=colors[s] )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Retrieving altmetric data" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "def parseAltmetricData(filename):\n", "\n", " parsedData = {}\n", "\n", " inputfile = open( filename, 'r' )\n", "\n", " # skipping first row\n", " inputfile.readline()\n", "\n", " for line in inputfile:\n", "\n", " lineSplit = line.split('\\n')[0].split('[')\n", "\n", " ls_comma = lineSplit[0].split(',')\n", " pmid = int( ls_comma[0] )\n", " parsedData[pmid] = {}\n", "\n", " score = float( ls_comma[1] )\n", " parsedData[pmid]['score'] = score\n", "\n", " numReaders = int( ls_comma[2] )\n", " parsedData[pmid]['numReaders'] = numReaders\n", "\n", " cited = int( ls_comma[3] )\n", " parsedData[pmid]['cited'] = cited\n", "\n", " scopus = lineSplit[1][:-1]\n", " parsedData[pmid]['scopus'] = scopus\n", "\n", " return parsedData\n", "\n", "dictAltmetric = parseAltmetricData('./links.bulk.altmetric.csv')" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of Altmetric records: 13889 \n" ] } ], "source": [ "print( 'Number of Altmetric records: %d ' % (len(dictAltmetric.keys())) )" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "import matplotlib as mpl\n", "mpl.rcParams['hatch.linewidth'] = 3 # previous pdf hatch linewidth\n", "from statsmodels.stats.multicomp import MultiComparison" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Altmetric score" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "scores = {}\n", "for status in [1,3,-1,4]:\n", " scores[status] = []\n", "\n", "for index, row in uniqueLinks.iterrows():\n", " if row.id in dictAltmetric.keys():\n", " numYears = (year - 2003)\n", " scores[ row.status ].append( dictAltmetric[row.id]['score'] )" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = pl.subplots( 1, 1, figsize=(3.5, 1.5) )\n", "\n", "# let's make sure the order is maintained:\n", "data = [scores[4], scores[-1], scores[1], scores[3]]\n", "\n", "parts = ax.violinplot( data, [0,1,2,3], showmeans=False, showmedians=False, \n", " showextrema=False, widths=0.7, points=500 )\n", "\n", "colors=[(1.0,0.2,0.1),(1.0,0.6,0.2),(0.3,0.9,0.3),(0.3,0.7,1.0)]\n", "\n", "j = 0\n", "for pc in parts['bodies']:\n", " pc.set_facecolor(colors[j])\n", " pc.set_edgecolor( (0.2,0.2,0.2) )\n", " pc.set_edgecolors( (0.2,0.2,0.2) )\n", " pc.set_alpha(1)\n", " j += 1\n", " \n", "\n", "def buttpos(x): return [x-0.05,x+0.05]\n", "for j in range(4):\n", " pl.plot(buttpos(j), [np.mean(data[j])]*2, color=\"k\", \n", " linewidth=6, solid_capstyle=\"butt\", zorder=4)\n", "\n", "for j in range(4):\n", " ax.text( j-0.3, -2.5, 'n='+str(len(data[j])), fontsize=7 )\n", "\n", "ax.set_ylim(-4,30)\n", "ax.set_ylabel('Altmetric score')\n", "\n", "ax.set_xlabel('')\n", "ax.set_xticks([0,1,2,3])\n", "ax.set_xticklabels( ['Broken','Timeout','Accessible','Redirected'], \n", " rotation=-25, fontsize=8)\n", "\n", "simpleaxis(ax)\n", "\n", "pl.savefig('Figure_1_panels/Altmetric Score vs status.pdf')" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = pl.subplots( 1, 1, figsize=(1.8, 1.4) )\n", "\n", "# let's make sure the order is maintained:\n", "data = [ np.mean(scores[4]), np.mean(scores[-1]), np.mean(scores[1] + scores[3]) ]\n", "vardata = [ np.std(scores[4])/np.sqrt(len(scores[4])), \n", " np.std(scores[-1])/np.sqrt(len(scores[-1])), \n", " np.std(scores[1] + scores[3])/np.sqrt(len(scores[1] + scores[3])) ]\n", "\n", "colors=[(1.0,0.2,0.1),(1.0,0.6,0.2),(0.5,1.0,0.5)]\n", "pl.bar( [0,1,2], data, 0.7, yerr=vardata, color=colors, \n", " edgecolor=[(0.2,0.2,0.2)]*3, lw=1.3, capsize=8 )\n", "\n", "pl.bar( [2], data[2:], 0.7, yerr=vardata[2:], color=colors[2:], hatch=\"//\",\n", " edgecolor=[(0.1,0.4,1.0)]*3, lw=1.5, capsize=8 )\n", "pl.bar( [2], data[2:], 0.7, yerr=vardata[2:], color='none',\n", " edgecolor=[(0.0,0.0,0.0)]*3, lw=1.5, capsize=8 )\n", "\n", "ax.set_ylabel('Altmetric score')\n", "ax.set_ylim(0,18)\n", "ax.set_yticks([0,5,10,15])\n", "\n", "ax.set_xlabel('')\n", "ax.set_xticks([0,1,2])\n", "ax.set_xlim(-0.5,2.5)\n", "ax.set_xticklabels( ['Broken','Timeout','Accessible'], \n", " rotation=-25, fontsize=9)\n", "\n", "ax.text(1.3, 18, '*', fontsize=12)\n", "ax.plot([2,2,0.5,0.5], [16,18,18,16], color='k', lw=1.5)\n", "ax.plot([1,0], [16,16], color='k', lw=1.5)\n", "\n", "simpleaxis(ax)\n", "\n", "pl.savefig('Figure_1_panels/Altmetric Score vs status - barplot.pdf')" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "KruskalResult(statistic=121.71348392841217, pvalue=3.2990385452748936e-26)\n", "Multiple Comparison of Means - Tukey HSD,FWER=0.05\n", "============================================\n", "group1 group2 meandiff lower upper reject\n", "--------------------------------------------\n", " -1 1 2.4789 0.7074 4.2504 True \n", " -1 4 -2.0665 -4.7723 0.6393 False \n", " 1 4 -4.5454 -6.8068 -2.284 True \n", "--------------------------------------------\n", "[-1 1 4]\n" ] } ], "source": [ "from scipy.stats.mstats import kruskalwallis\n", "print(kruskalwallis(scores[-1],scores[4],scores[1],scores[3]))\n", "\n", "lists = scores[-1]+scores[4]+scores[1]+scores[3]\n", "categories = len(scores[-1])*[-1]+len(scores[4])*[4]+len(scores[1]+scores[3])*[1]\n", "\n", "mc = MultiComparison(lists, categories)\n", "result = mc.tukeyhsd()\n", "print(result)\n", "print(mc.groupsunique)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Altmetric number of readers" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "scores = {}\n", "for status in [1,3,-1,4]:\n", " scores[status] = []\n", "\n", "for index, row in uniqueLinks.iterrows():\n", " if row.id in dictAltmetric.keys():\n", " numYears = (year - 2003)\n", " scores[ row.status ].append( dictAltmetric[row.id]['numReaders'] / numYears )" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPYAAACbCAYAAABReGZMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJztnXecVOW5+L/P9F1glyogvYugIBh7waiosUDUm1hjEtM1PTftd+81N7foNT2aGJOoqLGLUkSQIgIWUOrSlg4LLLuwwLbZ3dkpz++P9wzsLltmZmfmzJD5fj7nMzPnnHnPM+U57/s+71NEVcmRI8fphcNuAXLkyJF8coqdI8dpSE6xc+Q4Dckpdo4cpyE5xc6R4zQkp9g5cpyGpEyxRWSQiCwVkS0isllEvmvt7ykii0Rkh/XYI1Uy5Mjxz4qkah1bRPoD/VV1rYh0A9YA04EvAsdU9RER+SnQQ1V/khIhcuT4JyXmHltECiwFjQlVPaSqa63nNcBWYAAwDXjWOu1ZjLLnyJEjiXSo2CLyKRHZCBQBm0Rkg4hMjuciIjIUOA9YBfRV1UPWoTKgb1wS58iRo0Ni6bGfAr6lqkNVdQjwAPBMrBcQka7ATOB7qlrd9JiaeUCrcwER+ZqIrBaR1ePGjYuel/Rt//79Ou3yS5XzB+h/Xna+zp49O2XXStV2+y036O7/O1+vuPQi9fv9tssT73bv1+7Va1+9Vi//9OW2y5LI9uhvfqeX3P51/cq3vpuO68VELIodVtUV0Req+j4QiqVxEXFjlPoFVX3D2l1uzb+j8/DDrb1XVf+qquer6vl5eXmxXC4hAoEAXocA4ImEaWxsTNm1UkUoHMblAKdDCIVi+mkyilA4hHiESCRitygJEQyGEJeXcDhstygniEWxl4nIkyIyRUSuFJE/A++JyCQRmdTWm0REML39VlX9bZNDc4D7rOf3AbMTFT4ZNDQ04LOeeyMhAoGAneIkRChkFNvldGSlYkfCEXBDJJSlih0KIW5fRn33rhjOmWA9PtRi/3mYocGn23jfpcC9wEYRWW/t+znwCPCqiNwP7AM+F5fESSYQCOAVM8LxhkM0NDTYKU5CRHtsVzb32G4xCp6FBINRxT5mtygn6FCxVfWqRBq2huzSxuGrE2kzFQQCATzW1MWrEQL19TZLFD9RxXY7s1Oxw6Ew4s1ixY722IHM+e7bVGwRuUdV/yEiP2jteIvhddbS2NiI11rL96FU1/ltlih+gqEwHie4nEIwGLRbnLgJBc0cW1UJh8M4nU67RYqLUCiEeLpn1E21vR67i/UY89p1NlJfX0+eGqOHD6XBn4WKHTzZY2elYodCOFwOHC5jI8g2xW4MBhF3HqFQ5nz3bSq2qj5pPf5n+sRJP/X19eRZ1sw8lHp/rc0SxYeqEgyHcTvAk6WKHQ6FjWJbxj+v12u3SHERDAaRLj5CGfTddzjHFpE+wFeBoU3PV9Uvp06s9FFXV0de2PwgRrGzq8cOh8M4RHA6FLeTrFyuC4fDeJyeEz12thEMhXF48jNK9lis4rOBFcBiIHMW6pJEQ309eSGjDPlEqK/LLuNZIBDA63YCIbzZqtihMLjIXsVubEQ8+YQzSPZYFDv/dA7SqPfX0hVjjfWh1GeZVbyxsRGPy7gjeLJVsYNhxC043I6snEoEg0HEk0c4g+bYsTiovCUin0m5JDbhr6oi31ru6oLir6+zWaL4CAQCTRQ7kp3r8MHQiR47KxU7FEQ8+YSCmXNTbW+5qwbjgCLAz0UkAASt16qqBekRMbX4q6roail2VxR/fXYpRkNDA15Lsb1OzUrPuXAwjLgEcUt2jjhCIcSdRzicBUNxVT2tl7mi1NZU08UainchQm2W9XiBQACf2/gB+ZyRrFPscDiMqoKTrB2Kh4IhHJ48Ihmk2LGEbV4qIl2s5/eIyG9FZHDqRUsP/traEz12F5S6xiDZVEQhEAjgdRnF9jqyT7GDwSBOlxMRQVzZuVxnXGJ9RMLhjAlkiWWO/QRQJyITgB8Cu4DnUypVGqn1+08Yz5yA1+mgri575tkNDQ34rHGXzxHOujl2MBjE6TEOKdk6FA8Fg+Dy4HC5M8aqH4tih6y46WnA46r6J04jb7Qaf92JHhugm8tJTU2NjRLFR11dHXkuI3+eK0JdljnYBAKBE4qNh6wbcQCEQ0HE4cLpcmfMiCMWxa4RkZ8B9wDzRMQBuFMrVvqorq+nOyeHT4VOB9XV1e28I7MwPbbl6+6ChrrsU2yHx/wNxZOlPXYoCE43Dmd2KfbngQBwv6qWAQOBX6VUqjQRDAZpCIbo0qTHLhClqqrKRqnio76+njynuTHlu8k6l9imio2HrJtKAISDQcTpwuFyZYxit+ugIiJO4KWmoZuqWgI8l2rB0kF1dTUFHhfSZPRXqOGsUuy6ujq6OM28Lt8NddnYY3uNYqsnS5frQkHE5cHh8mSMYrfbY6tqGIiISGGa5EkrVVVVFLSIJCoMBbNLsf1+8l1NFDsLe2zxGKu+ejTrhuKqajzOHC7E6c4Y+WNxKa3FZEFZBJyIkFDV77T3JhF5GrgJOKyq4619v8AElByxTvu5qr6dgNxJobKykkJH86Wt7o31HD9+3CaJ4qeutppC61c0ip09Fn0wQ++mip1tQ/FgMIjD6UIcDhwZZDyLRbHfsLZ4mQE8zqnD9t+p6q8TaC/pHD16lN7aPK6lpwbZX3aojXdkHrU1VQzwmOddPWb5Lpuor69H8oxiR3wR6rLMpbexsRGn24SZOlze7OmxVfVZEckDBqvqtlgbVtXlVj7xjOXo0aP0CjbvIXoRYUN5mU0SxU9tTRVdmyi2P8t67Lq6OqLZJCVPqM0yG4FRbPMDiMuTMYodi+fZzcB6YIH1eqKIzOnENR8UkSIRebq9ul1N84ofOXKkrdM6xbGKCno1No/m6kmEo0cqUnK9VOCvqWmm2LV12TWUra+vJ+IzVn3xCTV12eNDAEaxHZZi4/JkjPEvluWuXwAXAJUAqroeGJ7g9Z4ARgATgUPAb9o6sWle8T59+iR4ufY5WnqQni1CzHsT5mhl9syxa2trmyt2fSCrXGLr6uqaKXa29dgNDQ04XFbGF5c3Y2wEsSh2UFVbmokTcohV1XJVDatqBPgb5oZhGxXlZfRu8VF6E+FIVXXWKEdVTQ2F0f+VA7xuJ/4smmf76/wnFTtP8GdZMsmGhgacHjOXELcvqxR7s4jcBThFZJSIPAZ8mMjFohVALD4LbEqknWRRVl5OvxY9dlcUh5I1bqU1tXV0a5IirFueK2tkB6iurcaRZ/6GjjwHtVm2XFdfX494TKUadedllWJ/GxiH8T57CagGvtfRm0TkJeAjYIyIHLAKBDwqIhtFpAi4Cvh+wpIngbJjlacoNkBfr4vy8nIbJIoPVaXa30BBE8Uu9Dmzah3+WPUxHF0tl9KuklU3JbAU22167IjLlzEZeGKxitcB/8/aYkZV72xl91PxtJFKamtr0UiYbq3UOesnEcrKyhg1apQNksWO3+/H43LgcTbxdfdJVil2VU0V0tUsdzm6OvBXZ9dQvK6uDvGaTN0Rd5eMmQa1l0FlLu1U91PVW1IiUZooKyujn9eNtBJl1y9YT1lZ5i95VVZW0qOLm6Y1Erv7IlnlYFNVXXWix3Z0dVBXk13LdX6/H3VbKfi9XajxZ0YAUXs9dtSJ5FagH/AP6/WdQOaPUzugtLSUfm3YAPsH/JSW7EuzRPFz/PhxCvOau8R2d4eorKy0SaL4qa2pPTkUzxca6xuzqhqI3+9HPV0BcHi7UlWTGc5N7aVGWgYgIr9R1fObHJorIqtTLlmKKdm3j8GB1g01gwnz9o7taZYofo4fP04PX/NBVU9PI8eOZtM6vJ+8rsb4JA7Bne+mpqaG7t272yxZbFTX1BC2emzxdqGqMjNsBLEYz7qIyIl1axEZxsnyP1lLyY4dDA61bugYQoj9JfvTLFH8VFRU0NvX3PjXKx+OHi61SaL4UFX8lX4cBSf/hp4CT1aNOI5X1iB5Ju+Iw9eNyursUezvY+phvyciy4ClxGAVz3RKdu1kMK2nsRlIiINHj2VUIfPWOFpxhN7e5p5OvfPh6JHsmCnV1NTg9DgR78mirO6ebioqsmfEcayyCkeeCX505BVSU50ZhstYrOILRGQUcJa1q1hVM8NvrhOUlJYypI3CJj6gh8dFWVkZAwYMSK9gcVBRXsrIvOZD8d75cGR7dijG0aNH8fZsUaeru9mfLVRW1+DoZfXYed2oyZDsO7H02ACjgDHABODzIvKF1ImUevx+P1V19fRtp2LREIeyZ8+eNEoVP+WHDnJGi0nRGV3gcEV2WMUrKipw9Wjet2gPzaoe+/jx4zi6mJAHR34PaqszYxoRSxDIQ8Bj1nYV8CiQ1UtdO3bsYITP1e6HHxWoYef2zDaglZWV0a9r830988Bf35AxHlDtcfToUaSHNNsX7hHm8NHDNkkUP9VVlTjyjWKLrxvBQH1GxGTH0mPfDlwNlKnqlzC9dlZnVNm+bRtjgu2vl44O1bNtw7o0SZQY5RXH6dtCsR0CfQq8HD6c+cpRUVFBuHvzUZOzh5PSI9lh/AOorTrZY4vDgbdr94ww/sWi2PVW0EZIRAqAw8Cg1IqVWrZvLGJ0Y/s+yaMJsj2De+yamhrC4fCJAJCmnFngpLQ085WjpLQE7d3cRuDs46T0UObLDsadNBwOnfA8A3B37ZkRNoJYFHu1iHTHRGOtAdZifMCzlu2bNzOa9odLQwlRdqwyY3x/W3LgwAEG9vAicuqxgV2DHDhwIP1Cxcnu/btx9W8+x3b2d3LoYGY4eXRERUUFvoLeSJMfwdmtd0bYCDpUbFX9lqpWqupfgGuB+6wheVYSCoXYc6iMkW0sdUVxAcN97ozttffv38/ANsoiDswPsH/f7vQKlAClB0tx9mvuYebs5cRf6c+YhAXtUVFRgbuwd/OdXbJEscVwj4j8h6ruBSpFxNY46s5QXFzMQK+zWS7xthjfWEPRhg1pkCp+9u8vYWB+6wayQYVQsmdnmiWKj3A4zNFDR3H2ba7Y4hTy++ZnxVTiyJEjSJfmih3K783hw6nJ+BMPsQzF/wxcjPERB6gB/pQyiVLM+nXrmNgYWwTOxGAt6z/8IMUSJcbubZsZ3r315bph3WHPnr3pFShOjhw5gqfAg8N36l/Q1c+VFVOJsrJyIt36NdvnKOxHySH7HYRiUewLVfUBoAFAVY8DnpRKlUI2fPQhE4Kxuf1NoJGiLVsyMpvK7l07Gd5GxrhBhXDkWFVGL3kdOHAAb79WLH9ApG+EkpKSNEsUPwdKy9AWiu0s7MfBUvsjA2NKjWRVBFEAEelDDKmRrGSFh0VkU5N9PUVkkYjssB7bTGaYClSVDZs2M5HYMkn2I4I3Es64P1koFKKk9DDD2oiTcDlgYE8fe/fuTatc8bB9+3Z0cBs3zCGwZeeW9AqUAPsPleEsPFWxyzMgfXUsiv1H4E3gDBH5H+B94H9jeN8M4PoW+34KLFHVUcAS63XaKCkpwR0JtRmu2RoTJci6dZm1nr13717OKPCQ105pxNE9I2zbFnO26LRTtK3IpLVsBfcIN5uLN6dXoAQoPViKs/uZzfY5C/tz7EiZ7XWyY7GKvwD8GHgYk1l0uqq+FsP7lgPHWuyeBjxrPX8WmB6XtJ1k5cqVXKDxDU8vqD/OqqVLUiRRYmzdupWzO0jcOrZ7PVs3rk+PQAmwpXgL7hGt35ncQ9yUlZRlTI7u1lBVDh86gKvnwGb7Hd58XL6utlvG21VsEXGKSLGqFqvqn1T1cVXd2onr9VXV6DilDOjbibbi5qPFC7kkEF/0zcUEWLVmbcYUNAfYumkDY7u3v75+dh/YurkoTRLFR0NDA4cPHMY9pHXFFq+Q3z+f3bszd8nu2LFjONweHL6upxzz9Rpgu/EvlqJ820RkcLIvrMYi1aZVKtkFAwKBAOs2beEC4lsf7UOEvg7YsiVz5nybitZ12GOP6QW79h3MyPXgXbt2kT8gH3G34l1j4RzupLi4OI1Sxcf+/fvx9W7dAVN6DLLdLhPLHLsHJgXxEhGZE90SvF55NAWx9dimQ3OyCwasW7eOER4HhTGsX7fk4kAVHy5f3mkZkoHf72dPyUHGdfCV5LlheB8vmzdn3lx169atOEa0/9cLDw+zfnPmTiX27NmDo9ewVo+Feg5jx+696RWoBbEo9r9jqmb+ElO5I7olwhzgPuv5fcDsBNuJmw+XLePiupZT/ti4JOznw3czY55dVFTE2L5evDGUU5zcJ8DaNZmXxWr5J8tNQut28I73smr1qvQIlADFO3YT7tl6QRx3n+EU77B3GhGL8WxZa1tH72sjr/gjwLUisgO4xnqdclSVpYsWcqUmlgFzIo0cLCvLiMyla1d/zHm9Y/NfP69viLUr30+xRPERDodZ98k6vBNbX8OO4hpmCh8cOmT/0lFrbNu5G1ef1ntsV5/h7N2zK80SNSfWRAtxo6p3qmp/VXWr6kBVfUpVj6rq1ao6SlWvUdXEutA42bp1K+5AA6M68A9vCxdwpQRYvGhRcgVLgI9WvMcFZ8a2lDKpP2wq3pFRgSzFxcW4erhw9mo/C6k4BN8EHytXrkyTZLGjquzeuQ13v9GtHnd2P5O62lpbwzdTptiZxOL587m6sZK2TTUdc02gknfnpm3m0CoVFRWUlpUzoV/H54Ip0nd2Pw+ffPJJagWLg49WfYRjYox/u4mwbGWHg8O0U15eTgQnjm6tGzrE4aDLgDG2Gv9iCQLpIiKOJq8dIpKfWrGSh6qy5J0FXB3uXE2oCwiw78BBW4fjH37wARcOcuKK43Z8WX8/Hyx7N3VCxcmylctwTowtZ7h3ope1q9fa7uzRkq1bt5I34Kxm4Zot0b5nsXVrBis2xkOsqSLnA4tTI07y2bZtG9T7GZPgMDyKC7hCAry72L6PvmzJAi7tH9+w+rLBsHz5soxQjtraWnZu3YlnXGyhBs7eTpyFzoxaagTYsHEz4TPObvcc6X82q4vsW5GIRbF9qnqiu7OeZ02PPX/ObKY2VnVqGB7lusBxFrwxMwktxU9tbS2r165nytD43je0OxR6wmzIgPDTxYsX0+W8Lieqa8aCXCrMnT83hVLFz8rVa3EPOa/dc7yDJ7JxwzrbAohi+Yb9IjIp+kJEJgOZY41ph1AoxIK33+bGcHKSuH+KRo6Ul9uSvfS9pUuZPNB1osh9PFw7uJ6Fb9uvHDPfnolMie8W65viY8HCBRnj+dfQ0MDeXdtxDzyn3fOchf0QTxfbAnFiUezvAa+JyAoReR94BXgwtWIlh48//ph+kSBD20kzHA9O4PpwDW/PTr8RbeG8WUwdnNj9dOpwZcmSJbYqR1lZGbt37sZ3vi+u97nOdOHq58oY6/jGjRvp0n8kDqsmdnu4B5/H6tVr0iDVqcSyjv0JpljAN4FvAGNV1R5p42Te669xY1377qiypvSUrT1uDFXz9tw5aZ2zlpeXs2nLVq4cktj7BxXCwALlgw/sSxrx9vy38V3ia9eNtE2uhDfmvZF8oRLgvRUfoEMvju3koRexZLk933mbii0in7YebwVuBkZb283WvozG7/fzwcqVTE3yrGEkIQqDAdasSd+9be6cWVw7nHbDNDti+og6Zr32YvKEigNV5c15b+KaEoO7XCv4LvOx8sOV1NZ2bmUjGSxdtgLPqMtjOtc36hKK1q+1JeFFez32ldbjza1sN6VYrk6zePFiJjvDdE/AN7wjbqyvYN7MDiNXk0IkEmHum68zbVTrIYzy9TWnbK1xzXBYv2EjyQioiZfNmzdT1VCF5+zEEu84C53kn5PPO++8k2TJ4qOkpISaWj/u/md1fDLgyCsgf8AYW/wI2iuj+5C1fj1fVV9No0xJ4a1XXuLu+tTExF6vdfxt+fvU1dWRn5/aBYKVK1fSxRFgbO+Oz22PfDdcOwJmvfE6X/36N5MjXIw8/cLTuG90t7vu2xHOm5zM+PsMbr311k610xkWLl6Cd8wViONkfzj35lNluXnuyc5ER0xh3juLufzy2Hr5ZNFR2GYEk2Qhqzhw4AB79+7j0jhDNGOlFxHOc4Z5d0nqA0Nefv5p7hhT12r+8Hj53FmNzHztlbSWoCkrK2PVqlXkTW3d2DT3zLmnbK3hOddDrdTaZkRTVd6cMw/X+Bvjep9v/FRWLF+WdrfeWKzii0XkRyIyyMpZ1lNEeqZcsk4wb/Ysrov46cSUtENuqq9g7isvp/AKsG/fPrZu3cJ1baQQipeRPWFYYZglaXSyeeHlF/Bd5cOR3znvZRHBeYuTp/7xVJIki4/NmzdTGwjhHnRuXO9zdutN3pAJvPtuer3/Yvm2Pw88ACzHVAJZA2ReLKBFJBJh3qxZ3BSKLVOKTj7zlC0WLqeBXbt3c/Dgwc6I2y6vvPg800eHYwrRjJXPj6nnxeeeSovjRF1dHbPmzsJ7U/uRXLGSd2Ue23ZsY9eu9EdOzZw9F9e4zyQ0DZBxN/LKm+n1I4hFsceq6rCmG9C+P52NFBUV4QvUd9qFtCM8wDXUs3DB/JS0X1VVxYL58/nc2OSswUe5fDDUHCtPiyfa7Dmz8Y734uqXnDuTuAXP9R5mvDgjKe3FSlVVFQsXLsQ36bMJvd931hT27NnLjh07kixZ28Si2B/GuC8jWDTvLabWH0uKC2lHXNtYxaI5qXFWmfn6q1w5BPp0af88fXLyKVt7OB1w99h6nn/6ySRKeyqhUIgZL87ANS2Jww3A9xkf7y55N62F716f+Sa+0VfgLEgsk4+4PHjO/xxPP5++5cb21rH7We6jeSJynohMsrYpZKiveDgcZvGiRVyrsVX66CwTaeRYxdGkuw02Njby6ksvcM+41Bj/bhoNG4uKUuruuGTJEoI9gnjGJre2hLPQie9KH8+/9HxS222LYDDICy+/gufCu1s9fvNcPWVrjbzJt7L8vffSlr20vR77OuDXwEDgt5xMifR94OeduaiI7BWRjSKyXkSSNl9ft24dvSIhhiTJhbQjnMDVET+L31mQ1HYXzJ/PqB5hRqTIROlzwW1jQrz0/IyUtK+q/OWZv+C6rePe+ubSm0/ZOsI73cvMN2amxWFl1uzZSO8RbSZViBVHfnfyJtzI3595tuOTk0Cbiq2qz6rqVcAXVfWqJts0VU2Gf99VqjpRVc9PQlsALHprLlPr01ub+NpgFQvnJprb8VRUlRee/Tt3j03t8sjtY8MsXLQwJVk+PvroI46HjuM9PzlGs5a4+rnwTPLwWoqdhBoaGvjL357GfcU3ktKe95Iv8ta8tykvT31tr1jm2B+IyFMiMh9ARM628pdlFKrKimXLmJJgXrNEOZcgVcePJy2P9KpVq6ChkgsHJKW5NumVD1cNhZmvJd/36IlnnsB1myuljiSeWz089+JzKU2v/NrrM6HfWDwDxyelPWe33vgmTuOJv6Z+yS4WxX4GeAeIrgNtx0R8dQYFForIGhH5WmsnxJtX/MCBAxBsTNswPIoDmOwIJ813/KXnnuKus+qT4pDSEXed3chrr7yY1KivoqIi9h3aR97lHUc/dQb3MDeO4Q7eeuutlLRfW1vLUzOew3NFcr30fJd8gcVLlqQ873gsit3bcimNAKhqCDqtPZep6iTgBuABEbmi5Qnx5hVf/cknTKYxLdbwlkyuP86a91d0up1Dhw6xafNmrhuZBKFiYGRPGNQtwvIk5kx/7uXncN/kRpyp/yVc0108+/KzKVmT/9vTM3COuAR33+T+GI787ngvupdf/e6xpLZ7ynViOMcvIr04WW3zIiC+OjktUNWD1uNhTMG/CzrTHsCa91cwucGerJDnY6K9OvsHm/3mTG4YofiSu0LULp8dWcebr/wjKW1VV1fz0QcfkXdVanvrKJ5zPFQFqpKeOunQoUPMfONNfFemxqc+/8I72bClmLVr16akfYhNsX+ASfQ/QkQ+AJ4Dvp3oBa3kiN2iz4GpwKb239U+qsqades4P8byuMlmMGHCgUCnvNBCoRBzZs1k+uj0+XEDfHoYbCkuprS0/Tj0WFjwzgLyJuXhKEhP8lsRwfVpF6/Pfj2p7f7mj3/Ce/7ncBackdR2o4jbi+fKB3j4179PWVx/LIkW1mJCOC8Bvg6MU9XOVHvrC7wvIhuAj4F5qtqp9aLDhw8TbgwwIM3z6ygCTHCG2bQp8ftTUVERPbwRRqbZC9/ngquHwZLFnc+Z/ursV3Fck96M1r6rfSxatChpMc/FxcWs+vgT8i6+NynttUXe+KlU1MPixakJJIol/bAT+AxwNaZ3/baI/CDRC6rqblWdYG3jVPV/Em0rSllZGWe6nbbMr6OcGfBT1omqFcuXLubKAfakkrtiYCPLl3RuLX7Hjh0cPnoY74TULHG1hbO3E98YX9KCLH79hz/hvfR+HN7U+mCJw4FnygP87rE/pyRlVSy317nAF4FeQLcmW8ZQXl5Ov0h6h7At6RsOUL4/cUvn8vfe5YrB9qQI/tSZsH3X3k6tac+cPRP3p9NjNGuJXC28PKvzkXarV69mx54S8hL0CY8X74gLaezanzdTkEMvFsUeqKq3qupDqvqf0S3pknSCsrIy+jamd/26Jf0IU5agYpeWluKvrWFMryQLFSNeF0we6Objjz9OuI0PPv4A90WpDJRtG98FPrZt3EZjY+dsLL//819xX/51xJW+z+Ge8gB/+etTSe+1Y1Hs+SIyNalXTTLl+0voG0p/Xqmm9CWcsEfRrl27GNPHlZa167YYU1DP7p2JRR+FQiGOHDiCe5A9ii0eIb9vfqfWhnft2sW+fSXkjU/vX90zYBwU9GfFis4vlzYlFsVeCbwpIvUiUi0iNSJSnVQpOsmx8nJ6Ym+li55EOFqV2Neye/cuhnWzt0D9sB7K7u2JLRsdPHgQb08v4rXvzuQa5OpUUMsrr72BZ+J0xJnGtUYLmXgb/3gluYUoYlHs3wIXA/mqWqCq3VS1IKlSdBJffj4BW01nEEDI8yZmONq7o5hhhfYmxB/WnYQLIezZswfPoORGccVLeGCYXbsTS8DQ0NDA/AUL8J43PclSxUbe2Vezrbg4aW7JEJti7wc2qV21SmKga2GLGLRXAAAUGklEQVQhtTYXDq3FQZe8xBwzaqorKUivMfkUCrxQW5eYnWLPnj2EB9iz1BjFMdBB8Z7EiuBt374dT88BuLrHWMY0yYjbS97Ii1i3bl3S2oxl3LEbeM8KAjkxXlTV3yZNik7SpbA7fpt7bD9C1y4dZEVoA6fTScTm22ZEwemIrQpmS7bs3oKMtPf7dw12sXvO7oTeu3PnThx9kpRYLkFCvUZSvH0nHQetxkYs3dweTMVNDyeXurom6fpJoUu3bvhd9g4F/Qhduib2tTicTkI2F8MMKzgdiSundOK9dlO8fRfhXvYqtrvvSLZsT14ut1h67C2q2izwVUT+JWkSJIGCggJ2uH2kOM1ZuxzHQUGPHgm915fXBX9y6gYmjL8RvL7E5gNjho5hzQF7qz6FDoYYPSSxZAj7D5XhPLP96pmpxlnYj/Ly5NVej6XH/lmM+2zjrLPOYrPY22Nv9hZw1nmTOj6xFUaPPYftVfbKv+0ojBkTW4WLlgwdMhTnocSG8ckifDDM6KGJKfbA/n0JVx9OskTxEa4u54wz+iatvTZ7bBG5AeNKOkBE/tjkUAG29o2nMnLkSCpCESqRlJT0iYUNzjxunzgxofeePW4c819xg01BLABbj3kYe01iN6YhQ4YQOmjvX8JV6mLYp4cl9N5hgwciHybPIp0I4WMHGDZ4YNLaa6/HLsXkEG/gZD7xNZhIr+uSJkEScDqdjB81kg3Y0+tVIRwORRg5MrHY3TFjxrDrcAMNNurG5qNuxp6dWFbpQYMGUXeoDg3bZwGMHIwwZEhi5UgHDhyIHNuXZIni5HhJehRbVTeo6gxghJX/LLq9oarHkyZBkphw8SVscNqTPLUID+NGjMDlSrCapM/HhPFjWW7Tf+tANRyqUcaPTywFkM/no1uPboTL7Vny0rBSd7AuYcWeNGkSgdJiQpWJB/F0Bg02ENiyiCuuSF59r/bSD28UkSJgrYgUNdmi+zOKiZMms8ZXaMu11zrzmXBxjDWT2+CW2+5gzm57bkxzdzi5/obP4HYn7hJ6xWVXEHjXHu+5hpUNDB05lG7dEotN6tq1K9On3ULjKnvKDNetf4tzzxnP0KFDk9Zme0Pxm2i7hG6yltuSxqRJkzikTkpIrxEnDLzjKuDqqZ2bnUyZMoWthyOUpbkEdDgCb+10M+3W2zvVzn133UfgnQAaSP9wPDw7zFfu+Uqn2rj37jupL5pHpK5TyYHiRiNhQque52tf+kJS221vKL6vtQ0YRCcrcIrI9SKyTUR2ishPO9NWFJfLxQ033chcZ3ojSlfhpXe/vgnPr6P4fD5uuOEGXt6SXl/lpXuhT78zOy3/kCFDOGf8OdQtTW+UXWNxI+5KN1OmTOlUO2eccQbXXHMN9UsfT45gMVK/6iWGDOjLxAQNr20Rkx+mVQnkVyKyF/gvIDHfPU4kbvgTJpHh2cCdIpKUWmA333ob81yFac2jMtfXi5s/f2dS2rrv/q8xd4eTw+kpZEIoAk+sz+Mb3044b0Yz7r/nfsJzwmga3ehCc0J84c4v4HR2fqT2r9//Dq6Sj6nfujQJknVM8NA2Ah/O4OFfPpT0ttubY48WkYdEpBh4DCgBxCoa0JkUixcAO61MKo3Ay8C0TrR3gpEjR9K7b18+TpN1vBrho4iL666/Pint9enTh2nTb+XvG9Ij/7zt0PvMoVx44YVJaW/y5Mn0zOtJYG165tqh8hCBDQGmT0tO8EbXrl351cP/Rf38h1O+rh1pbKBu1v/jpz/6AQMGJD+JfHvjvmJgBXCTqu4EEJHvJ+GaAzCBJVEOAMn5ZwE333En//uHMga4Ux8UUh2OcPGkT1FQkLxgty986X5umz6LktrUe+3uONzIbx/7UdIS+4sI9999P4889gg6IPW9duPRRm65+Ra6JOij3xrnnnsu99zxOV589qt4e/ZPWrstCdYe44Jzz+LGGz+TkvalraAtEZkO3AFcCizA9Kx/t8roJn5BkduB61X1K9bre4ELVfXBFud9DYgWExgDbOvMdWOkN5CeqmmpISe/vaRD/gpV7XCI2GaPraqzgFlWiuBpmOofZ4jIE8CbqrowQcEOYgxwUQZa+1pe/6/AXxO8RkKIyOpk1hJLNzn57SWT5I8l/bBfVV9U1ZsxSrgO+EknrvkJMEpEhomIBzMqSF5Vuxw5csSXnUBVj1uld65O9IJWiaAHMfXAtgKvqurmRNvLkSPHqaQ/wROgqm8Db9tx7Q5I69A/BeTkt5eMkb9N41mOHDmyF3sTheXIkSMlnJaKLSKfEZF9InKH3bLEg4jcISL32y3H6U6T/8dddsuSKk5LxcZ4yv0vcIsVkZZYBoH0sx8j81oReVBEMvr3EZHLRWRVa/XNM5zHgP8GbhCRd0UkeYHQGUJG/3ESQUTOBw6o6pOqehcwA+Nkk9GIiKjqB6o6DVNW+EHgExH5uYh0t1m8UxCRi4GHMZ6EPpvFiRmrvvs+Vf0b8CWgDlMB9rTitFNs4ElgmIj8RESuBMYCw5uekMk9oYjchHHYuQOTmqo/8LytQrVARC4Bfom5ab6AUe6mx+1NgNY+TwDRiMILgCNAM2/KDJc/JmxZ7koVInIWJvf5CMxw66eYnm++iHQDBqvqZlW1OdnvqaiqiogPmAz4gYOqekREHlHVg3DihiSqalt2fkupHwT+qKpzRWQL8A/rWDdVrYnKZ41CMmbZRURGAxOAR0VkGeamvw5YZh3vrqqVdn6/ySJje64E+QPwC1UNquo3MP7th1X1GPA5YJ6IPG35oZ9ARJySrEiIBGhy7YuBnkCRpdTjgP0i4hKRQlWNNFGatP921lz0v4AbAa+IDALeAupE5CrgN9ac9V4wNyvrfWLn99uEx4ApwF3WtkJVHwYqranFj0VkkYh8qeUbM0T+mDltFFtE+gHXtvBhvw5oFJE84DZgEfAsMNh6z7lWrxK2s2exemsHJsrtOMbtFuDfgcctb73vichMEbnbkjkCRsHToeQi0gv4G6Z3uxsTO/AecA7wTYyiFAE/B24Uka82/XzWZ7RtiGvdlC5U1eWqWgq8DycqOd6GMabtAf4FmCotcuc3uUnZUwcoTk6noXgQeEZEVmBcVf1AraouE5GbMSmTf6SqVSJSLCJPAWcCY0XkfzCRayoi5wD/A3xOVdNZm/cyTHDMUlU9JCK9MT3jUBHpj1GcBcAlwJdE5JvAXlUNpkm+MPA48L6qVgFvicjXMQq+AZgLzFfVoIjcpaoRERkAXIMxTv1FVe2s0toANI2K2g5EqwRcicnK+yBmxBSxHqPD93GYz9YA/ERENqvq39MleCKcNj22qh5V1fsxkWjlmD/bZ0TEhem5V1hKPQgTDhpR1RswijIdiN6J7wWOqWqDNURP13cUAQ4D663X/wnMVtWj1mcqUtXvquoDmPDALwF/E5G/iEiz4O1UyGzNPedZ32G05w0BH2KMZw5LqX2WUncH3sWMjoYD68Xkqm8qp6Tr+1XVClVd2WRXX8z/BIwS/xmj6F7M52kUkcsxhsu7gZVWB6BAiYgUiMh/i0hiqVFTjaqe1htwOabG9wDr9XnA74HLrNcjgI8wvfdgzHDyLJtkjbr4ujCKPhLzp3sRuNM69llgFSa1VB9MXbXz22jPkWJ5JwD/BzwVla/JsYeBF5u8HtDkNzgfGGnz/8IJjLWe/xH4UovjUzH2hJ9Yryda3/t/YJTfgalj1z36m9n5eVpup02P3RaqugL4hlqWZcy65RRVfd96fS4mU0we8HmMlXS3iEwXkedbriGncp6oaubaaubU16nJXHM7pod+2TrtLowiLQBqgc2Y4XqeiEwUkd9Ylms0xdZ/NbnnfwL8BfiZiMyxjFBg5qqPAohIV+v794rIt6xjM0TkdWu4fsI4la55uBq7ylbr5cvAt0RkqYh8uclvXghE69YNx0xH3sbcUN/E5NyvtNoLNf0cdnPaKzaAqq5v8rIG2CMit4nIBZh51TbMHOw24CpML3QJ8BJQLyKFYnmvaYqXQqLKqKqLrF2rgScspb8O00ssUtNNjMeMOJZiDG2fBT4A/ktEftOy7VQpjap+oqrnAr/D2DrA3CzD1vFoUuV7gG9jbB+XYW5KUa81l3XuiaWyVMjaGqr6oap+CtNzuy1l9WFGbtHavKMxo6N1mBTce4EdInK7iLwiVkJO63ex3VfidDKexYSqlorIoxgHiwrgZVV9SoyPdk/MD/bfaua20cqiw4GJIjIW+LE2sbxbPWzKekZVXQustV6ei5nT7hWT2eY6TNklF/B9jNGwBGMk+quI9FPVMhHpo6pH0nBTaprecyOmV34Vs8zUG+iFUZ4rRWSlte+XIjIcYxC8COv3aKIgYrWd8lULVX2zycsSoEBEvoiZj98C/ALogjF0zlZVv4h8AxDgIRE5hjHQ+rXJqkWqR06tYvdcwM4N6Bp9BHZh5n6PAp+19l8ILMcMez2Yu/bj1vN8rDmxda4zTTJ7rMeJmCWbscC/YtbwfcDTwG6MARDgy8DrmBvCd6P60vQxhbKei5k2nG99Z28Dk6xjYzD56a/GjJRmWN/3HGu/o0Vbafl+W1xzovV7z8Isk7owo44/A90xFv8iYLx1fh/MiO9RzGpB2mU+IbtdF86kDXMX/oH1/CvAQ9bzf8NYp/8P+BhYjDHEuaw/4xyMdbrABpm7Afdaz28C/tDkWD/M0tk9GAeSKZhh+1xgtHWO2waZ/w2zFj6kxf7pmFWMQU3k74ZZE/8PoLDJuecBF6VZ7u7AJIzRbDbwZWv/AuCBJufdYd1ARwO/wazzd7OORW+mjpY3rVRs/xRz7I5QM3T6rfXyE+ASa1msDKO0P8HMBd8CnsP88e7C/PnOwARr3JRmmWtUNepDvgU4R0RmiMhlQL2q7ge+BTyqqu+p6iagEuN8MQB4JGpkSyO/w0x/5ovI/4lIf8uwNgvjIPJLERmoqmWY6LyhmJvoQhG5xWpjL8Z/HhG5NB1zcTVLfWsxNoNnMB6Ml2BGS083OfXfMDfUBzHZVN7FjFrAGA57q/EeTP3QPN137WzYsO6omCCBRcDkFsevAuZh9TyY4WazYa4NMrsxQ9j5mOFtP8wQfGSTc3YBozA95B+xej6MK2u0t+wNfBHwpljWsywZf4EZUXgxw93vWOe8BvzWej4co8zjgc9b+4ZgouAmY88w/Wbge01efxpYbz1/EDOFC2GMm3dghvQfYyzww6zz+qTqu8712K2gJy3TH2P+bH8UkZWWC2ovzNxqvarus1wM3cA+6z22uKaq8Y9/VI3TzXtqer1jWLXMReQRjPPLYYzxZztmXRbMctWlIjIV09MMV9WUlfOwZC22ZNyO8fRbiFmKjFbFux8Ii8g31FSNOWR9lqtEJB+zNLlUVdeoDUEbqjpXVX8PJwx8BzBOOB5VfVxVr8DcROuAX2OG8NdgfoMLReRWTCRiar7rdN/psnXDKIMX4/CygpPODfdiHF4m2S1jE1mj87krMAqzEjOqGANchOk9og46UzFGuG4YQ1uV9fnS+nkwvXYfzIjhK5gheHdO9spnYwyE0zFGwmWYYfHLwLQm7UR7yF5plt9lfccrLPmj/49nsEYeTc7Nb/FdtxwRdnoEkuuxY0RV31dzZ92H8ajaKiYU9ELMHHdruw2kEbX+HWoCHqZivMLuV9VtGENhHz3poPMd4HVVrcEs67wG/Az4VJplfk9Vj2BGP9Mw6/FfwSh6MeaGFMYYML+I8cx7G6PYPxCRaLKECZj1/NTV52ld/pAal+Z/x9z8o/YLJyfDQvOsc+swtpnXMaHF51nHR1vHOz8CsatXOR02zBz8SeAKu2WJQ+aLMVFMD1h/qnKM8pyJWROfYLeMlpznYYx/Iy0leAJjsHRilHsq1twUY1e4DbNO/gvg5y3aSoslusU1o7J9AeMSnN/kWPS7ji79jcTELzyJWf//ZivtxSV/rsfuBGrm4D/EGEWyAlX9CDPsFeBO4CVVrcBMKfap6gYxFVpsRVXXqeqf1bjVjsAk0FiKcRQpAI6oakBECjDW6fcxFughGMMmInK2iBRouizRzeWPzpvfAg4Bm+RknPfdQImqrhWRHpgb2HcxN68JmFWZc1u0FxERr4hMiOX6/3SeZ8lGT7pLZg2qug94XESewQx9wUwplljHG+2SrTVU9SMxdbGCYjLPHsf0zgC/wtgRqjE2hd3ARsu7sBYT4bce4xGW9t9KTZKPH4rIL4Ee1u4T3zVmdcCLmVY8iVm5GI2VR05MJtXRGO+9ocC3ReQlVX2nvevmeux/YtSs31daL18A7hOR79gpU1voybjzO4FHgF+LyHLMktlDmIQPwzDD3i8DXwXWqupFGIu1rcXyVLVKVfdaL18CvmB918eAc1T1X1U16un4LtBfRH6M6c29mKCTezDTqKKOrperBJKjGZaDyAG75YgFEZmsqmusePQfYdxtfy4iezGeX9cD9Zie7l1V/bFtwraCtVRagVH0l1T1jSbHvo4JdZ2rqp+IyA+x/A9U9bVWG2xCrsfO0YxsUWoAVV1jPfVg1otXWiGXm4A/qeqNmOHtbsxSlO1RV01R1TI14Z5/Ah4QkfViikYUYJYfQ6oaTZPVG/O5VsTSdq7HznHaIGKyoorIH4Cgqv7IbpniwYplr1XVjVbYbZmq/soKL74bWKOqz8XSVsbcvXLk6Cx6spf6PdBLRDaJyMNWiGvGo6ofqepG6+VS4Msi8m8YH/vumLX9mMj12DlOW6xgl1Gq+p7dsiSCmHxq/4JZzluvqo/F/N6cYufIkdmIiBfooca3Prb35BQ7R47Tj9wcO0eO05CcYufIcRqSU+wcOU5DcoqdI8dpSE6xc+Q4Dckpdo4cpyE5xc6R4zQkp9g5cpyG/H8WL9xPm7wBXwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = pl.subplots( 1, 1, figsize=(3.5, 1.8) )\n", "\n", "# let's make sure the order is maintained:\n", "data = [scores[4], scores[-1], scores[1], scores[3]]\n", "\n", "parts = ax.violinplot( data, [0,1,2,3], showmeans=False, showmedians=False, \n", " showextrema=False, widths=0.7, points=500 )\n", "\n", "colors=[(1.0,0.2,0.1),(1.0,0.6,0.2),(0.3,0.9,0.3),(0.3,0.7,1.0)]\n", "\n", "j = 0\n", "for pc in parts['bodies']:\n", " pc.set_facecolor(colors[j])\n", " pc.set_edgecolor( (0.2,0.2,0.2) )\n", " pc.set_edgecolors( (0.2,0.2,0.2) )\n", " pc.set_alpha(1)\n", " j += 1\n", " \n", "\n", "def buttpos(x): return [x-0.05,x+0.05]\n", "for j in range(4):\n", " pl.plot(buttpos(j), [np.mean(data[j])]*2, color=\"k\", \n", " linewidth=6, solid_capstyle=\"butt\", zorder=4)\n", "\n", "# for j in range(4):\n", "# ax.text( j-0.4, -2, 'n='+str(len(data[j])), fontsize=7 )\n", "\n", "ax.set_ylim(0,20)\n", "ax.set_ylabel('Altmetric readership')\n", "\n", "ax.set_xlabel('')\n", "ax.set_xticks([0,1,2,3])\n", "ax.set_xticklabels( ['Broken','Timeout','Accessible','Redirected'], rotation=-25 )\n", "\n", "simpleaxis(ax)\n", "\n", "pl.savefig('Figure_1_panels/Altmetric numReaders vs status.pdf')" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = pl.subplots( 1, 1, figsize=(1.8, 1.4) )\n", "\n", "# let's make sure the order is maintained:\n", "data = [ np.mean(scores[4]), np.mean(scores[-1]), np.mean(scores[1] + scores[3]) ]\n", "vardata = [ np.std(scores[4])/np.sqrt(len(scores[4])), \n", " np.std(scores[-1])/np.sqrt(len(scores[-1])), \n", " np.std(scores[1] + scores[3])/np.sqrt(len(scores[1] + scores[3])) ]\n", "\n", "colors=[(1.0,0.2,0.1),(1.0,0.6,0.2),(0.5,1.0,0.5)]\n", "pl.bar( [0,1,2], data, 0.7, yerr=vardata, color=colors, \n", " edgecolor=[(0.2,0.2,0.2)]*3, lw=1.3, capsize=8 )\n", "\n", "pl.bar( [2], data[2:], 0.7, yerr=vardata[2:], color=colors[2:], hatch=\"//\",\n", " edgecolor=[(0.1,0.4,1.0)]*3, lw=1.5, capsize=8 )\n", "pl.bar( [2], data[2:], 0.7, yerr=vardata[2:], color='none',\n", " edgecolor=[(0.0,0.0,0.0)]*3, lw=1.5, capsize=8 )\n", "\n", "\n", "ax.set_ylim(0,10)\n", "ax.set_ylabel('Altmetric \\n readership')\n", "\n", "ax.set_xlabel('')\n", "ax.set_xlim(-0.5,2.5)\n", "ax.set_xticks([0,1,2])\n", "ax.set_xticklabels( ['Broken','Timeout','Accessible'], \n", " rotation=-25, fontsize=9)\n", "\n", "simpleaxis(ax)\n", "\n", "pl.savefig('Figure_1_panels/Altmetric numReaders vs status - barplot.pdf')" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Multiple Comparison of Means - Tukey HSD,FWER=0.05\n", "============================================\n", "group1 group2 meandiff lower upper reject\n", "--------------------------------------------\n", " -1 1 -0.3351 -0.9904 0.3202 False \n", " -1 4 0.3794 -0.6216 1.3803 False \n", " 1 4 0.7145 -0.1221 1.551 False \n", "--------------------------------------------\n", "[-1 1 4]\n" ] } ], "source": [ "lists = scores[-1]+scores[4]+scores[1]+scores[3]\n", "categories = len(scores[-1])*[-1]+len(scores[4])*[4]+len(scores[1]+scores[3])*[1]\n", "\n", "mc = MultiComparison(lists, categories)\n", "result = mc.tukeyhsd()\n", "print(result)\n", "print(mc.groupsunique)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Altmetric citation" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [], "source": [ "scores = {}\n", "for status in [1,3,-1,4]:\n", " scores[status] = []\n", "\n", "for index, row in uniqueLinks.iterrows():\n", " if row.id in dictAltmetric.keys():\n", " numYears = (year - 2003)\n", " scores[ row.status ].append( dictAltmetric[row.id]['cited'] / numYears )" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = pl.subplots( 1, 1, figsize=(3.5, 1.5) )\n", "\n", "# let's make sure the order is maintained:\n", "data = [scores[4], scores[-1], scores[1], scores[3]]\n", "\n", "parts = ax.violinplot( data, [0,1,2,3], showmeans=False, showmedians=False, \n", " showextrema=False, widths=0.7, points=500 )\n", "\n", "colors=[(1.0,0.2,0.1),(1.0,0.6,0.2),(0.3,0.9,0.3),(0.3,0.7,1.0)]\n", "\n", "j = 0\n", "for pc in parts['bodies']:\n", " pc.set_facecolor(colors[j])\n", " pc.set_edgecolor( (0.2,0.2,0.2) )\n", " pc.set_edgecolors( (0.2,0.2,0.2) )\n", " pc.set_alpha(1)\n", " j += 1\n", " \n", "\n", "def buttpos(x): return [x-0.05,x+0.05]\n", "for j in range(4):\n", " pl.plot(buttpos(j), [np.mean(data[j])]*2, color=\"k\", \n", " linewidth=6, solid_capstyle=\"butt\", zorder=4)\n", "\n", "# for j in range(4):\n", "# ax.text( j-0.4, -2, 'n='+str(len(data[j])), fontsize=7 )\n", "\n", "ax.set_ylim(0,9)\n", "ax.set_ylabel('Social media \\n citations per year')\n", "ax.set_yticks([0,2,4,6,8])\n", "\n", "ax.set_xlabel('')\n", "ax.set_xticks([0,1,2,3])\n", "ax.set_xticklabels( ['Broken','Timeout','Accessible','Redirected'], \n", " rotation=-25, fontsize=8 )\n", "\n", "simpleaxis(ax)\n", "\n", "pl.savefig('Figure_1_panels/Altmetric Cited vs status.pdf')" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = pl.subplots( 1, 1, figsize=(1.8, 1.4) )\n", "\n", "# let's make sure the order is maintained:\n", "data = [ np.mean(scores[4]), np.mean(scores[-1]), np.mean(scores[1] + scores[3]) ]\n", "vardata = [ np.std(scores[4])/np.sqrt(len(scores[4])), \n", " np.std(scores[-1])/np.sqrt(len(scores[-1])), \n", " np.std(scores[1] + scores[3])/np.sqrt(len(scores[1] + scores[3])) ]\n", "\n", "colors=[(1.0,0.2,0.1),(1.0,0.6,0.2),(0.5,1.0,0.5)]\n", "pl.bar( [0,1,2], data, 0.7, yerr=vardata, color=colors, \n", " edgecolor=[(0.2,0.2,0.2)]*3, lw=1.3, capsize=8 )\n", "\n", "pl.bar( [2], data[2:], 0.7, yerr=vardata[2:], color=colors[2:], hatch=\"//\",\n", " edgecolor=[(0.1,0.4,1.0)]*3, lw=1.5, capsize=8 )\n", "pl.bar( [2], data[2:], 0.7, yerr=vardata[2:], color='none',\n", " edgecolor=[(0.0,0.0,0.0)]*3, lw=1.5, capsize=8 )\n", "\n", "\n", "ax.set_ylim(0,5)\n", "ax.set_ylabel('Social media \\n citations per year')\n", "\n", "ax.set_xlabel('')\n", "ax.set_xlim(-0.5,2.5)\n", "ax.set_xticks([0,1,2])\n", "ax.set_xticklabels( ['Broken','Timeout','Accessible'], \n", " rotation=-25, fontsize=9)\n", "\n", "ax.text(1.3, 4.7, '*', fontsize=12)\n", "ax.plot([2,2,0.5,0.5], [4,4.7,4.7,4], color='k', lw=1.5)\n", "ax.plot([0,1], [4,4], color='k', lw=1.5)\n", "\n", "simpleaxis(ax)\n", "\n", "pl.savefig('Figure_1_panels/Altmetric Cited vs status - barplot.pdf')" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "KruskalResult(statistic=399.6966037767709, pvalue=2.5755683194906825e-86)\n", "Multiple Comparison of Means - Tukey HSD,FWER=0.05\n", "=============================================\n", "group1 group2 meandiff lower upper reject\n", "---------------------------------------------\n", " -1 1 0.9307 0.3997 1.4617 True \n", " -1 4 -0.4639 -1.275 0.3472 False \n", " 1 4 -1.3946 -2.0725 -0.7168 True \n", "---------------------------------------------\n", "[-1 1 4]\n" ] } ], "source": [ "lists = scores[-1]+scores[4]+scores[1]+scores[3]\n", "categories = len(scores[-1])*[-1]+len(scores[4])*[4]+len(scores[1]+scores[3])*[1]\n", "\n", "from scipy.stats.mstats import kruskalwallis\n", "print(kruskalwallis(scores[-1],scores[4],scores[1],scores[3]))\n", "\n", "mc = MultiComparison(lists, categories)\n", "result = mc.tukeyhsd()\n", "print(result)\n", "print(mc.groupsunique)" ] }, { "cell_type": "markdown", "metadata": {}, "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.15" } }, "nbformat": 4, "nbformat_minor": 2 }