{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Glob"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/home/magnus/work-src/rna-tools/__init__.py',\n",
       " '/home/magnus/work-src/rna-tools/test.py',\n",
       " '/home/magnus/work-src/rna-tools/setup.py']"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import glob\n",
    "glob.glob(\"/home/magnus/work-src/rna-tools/*py\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/magnus/work-src/rna-tools/__init__.py\n",
      "/home/magnus/work-src/rna-tools/test.py\n",
      "/home/magnus/work-src/rna-tools/setup.py\n"
     ]
    }
   ],
   "source": [
    "for f in glob.glob(\"/home/magnus/work-src/rna-tools/*py\"):\n",
    "    print (f)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Execute a commend"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def exe(cmd):\n",
    "    import subprocess\n",
    "    o = subprocess.Popen(\n",
    "        cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n",
    "    out = o.stdout.read().strip().decode()\n",
    "    err = o.stderr.read().strip().decode()\n",
    "    return out, err"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/magnus/work-src/rna-tools/__init__.py\n",
      "/home/magnus/work-src/rna-tools/setup.py\n",
      "/home/magnus/work-src/rna-tools/test.py\n"
     ]
    }
   ],
   "source": [
    "cmd = \"ls /home/magnus/work-src/rna-tools/*py\"\n",
    "out, err = exe(cmd)\n",
    "for f in out.split('\\n'):\n",
    "    print f"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Pandas: make a data from scratch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th># of lines</th>\n",
       "      <th>fn</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>/home/magnus/work-src/rna-tools/__init__.py</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>27</td>\n",
       "      <td>/home/magnus/work-src/rna-tools/setup.py</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>13</td>\n",
       "      <td>/home/magnus/work-src/rna-tools/test.py</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   # of lines                                           fn\n",
       "0           0  /home/magnus/work-src/rna-tools/__init__.py\n",
       "1          27     /home/magnus/work-src/rna-tools/setup.py\n",
       "2          13      /home/magnus/work-src/rna-tools/test.py"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cmd = \"ls /home/magnus/work-src/rna-tools/*py\"\n",
    "out, err = exe(cmd)\n",
    "\n",
    "    \n",
    "import pandas as pd\n",
    "df = pd.DataFrame()\n",
    "\n",
    "for index, f in enumerate(out.split('\\n')):\n",
    "    out, err = exe('wc -l %s' % f)\n",
    "    nol = out.split()[0]\n",
    "    df = df.append(pd.DataFrame({'fn' : f, '# of lines' : int(nol)}, index=[index]))\n",
    "    \n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Plotting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import pyplot, transforms\n",
    "%matplotlib inline\n",
    "plt.style.use('classic')\n",
    "plt.rcParams['figure.facecolor']='white'\n",
    "import seaborn as sns\n",
    "sns.set_style(\"whitegrid\");\n",
    "plt.rcParams['axes.linewidth'] = 10;\n",
    "#plt.rcParams['axes.color'] = \"black\"\n",
    "plt.style.use('classic');\n",
    "plt.rc(\"figure\", facecolor=\"white\");\n",
    "plt.rcParams['lines.linewidth'] = 2;\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rc('font', family='Helvetica-Normal')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11a368d50>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApgAAAIKCAYAAACHnz+BAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3X2U13Wd///HZxQcRgURlFZhEq+4UCzHUx42JUUPI3jw\nakvFi9IUrO2sQJrZ6kkXpdIU2lJLu9TQIT1ry3pslwtPaniRpR3zAjkGErq56ViMgiAgn98fu87v\nO4HKwGvkM3a7nfP5g9f76jlHP3A/78/FVKrVajUAAFBI3bYeAACA9xeBCQBAUQITAICiBCYAAEUJ\nTAAAihKYAAAUJTABAChKYAIAUJTABACgqE4F5urVq/OFL3whgwYNSq9evbLvvvvmoosuymuvvda+\nz+LFizN27Nj06dMnu+22Wz796U+ntbW1+OAAANSmSmd+VeSnPvWptLS05MILL8xHPvKRPPHEE/na\n176WcePG5c4778wrr7ySESNGZI899sgXv/jFvPHGG7nyyiuz00475ZFHHsn222/flT8LAAA1YLOL\n75VXXklLS0suvfTSXHbZZUmSk046KWvXrs3VV1+d1atX55vf/GZWrlyZefPmZdddd02SHHTQQWlq\nasrs2bNzxhlndM1PAQBAzdjsl8hbW1szcuTINDc3d1jfaaedsmHDhrzxxhu56667Mm7cuPa4TJIP\nf/jD2XPPPXP33XeXmxoAgJq12XcwhwwZkvvvvz9Jsn79+qxatSq//vWvc91112X8+PHZeeed88QT\nT+Tkk0/e6NgDDzwwixcvLjc1AAA1a4s+RT5nzpz07ds3Y8aMydq1azNt2rT8+c9/TrVaTb9+/Tba\nv2/fvmlra9vqYQEAqH1b9Kmb0aNH55577smzzz6bmTNn5vDDD89dd931tvvX1dWloaHhbbe3trZm\n7ty52WuvvdKrV68tGQkAgC60evXqLFu2LM3Nzenfv/877rtFgdm3b98ceeSROfLIIzNu3Lg0Njbm\n3//935MkK1as2Gj/FStWvOMgc+fO9QEgAIBuYNasWTn99NPfcZ/NDsyZM2fm6quvzu9+97vstttu\n7esDBw5Mnz598sYbb2Tw4MF5/PHHNzp20aJFOf7449/23HvttVf7wMOGDdvckXgPTZ06NTNnztzW\nY0C34nkDW8ZzpzYtWrQoZ5xxRnu3vZPNDsx99tknL7300kZ3Gx999NG0tbXl4IMPTs+ePfPjH/84\nbW1t6dOnT5LkgQceyHPPPZcTTjjhbc/91sviw4YNS1NT0+aOxHuoT58+/ttAJ3newJbx3Kltm/N2\nxs0OzPHjx+dDH/pQPvvZz2bp0qUZMWJEfv/73+faa6/NiBEjcuaZZ+bPf/5zbr311owZMyYXXHBB\nXnnllUybNi3HHHNMRo0atVU/DAAA3cNmB2alUsnPf/7zXHTRRbn++uuzYsWKfOADH8gnP/nJXHHF\nFdlhhx3yd3/3d7n33nszZcqUnHPOOdlxxx3ziU98It/4xje68mcAAKCGdOpDPh/4wAdyyy23vOM+\nw4cPz7x587ZqKAAAuq8t+h5M/vZMmDBhW48A3Y7nDWwZz53uT2CyWTzZofM8b2DLeO50fwITAICi\ntuiL1gGA99by5cvT2tq6rcfgfap///5pbGwsdj6BCQA1bvny5Rk2bFhef/31bT0K71MNDQ1ZtGhR\nscgUmABQ41pbW/P666/7jXd0ibd+Q09ra6vABIC/NX7jHd2FD/kAAFCUwAQAoCiBCQBAUQITAICi\nBCYAAEX5FDkAvA/U+hexl/4ib2qbwASAbm758uUZMmRY1qyp3S9ir69vyOLF5b7Ie9GiRTnggAPy\nn//5n2lubs4Xv/jFzJ49O88//3yR8yfJqlWrMnHixPzXf/1XXnvttaxbt+5t9z3iiCNy//33Z8WK\nFendu3duvvnmnH322fnmN7+Z888/v9hM3YXABIBurrW19f/iclaSWvwi9kVZs6bsF3n/8pe/zHbb\nbZePfexjSZKFCxfm8MMPL3Lut/zwhz/M7NmzM3To0Jx55pnvuG+lUkmlUmn/8/DhwzNlypQcfPDB\nRWfqLgQmALxvDEvyt/FF7A888EBGjBiRnXbaKatXr85jjz32rhHYWX/4wx9SqVRy1VVXZfz48Z06\n9iMf+Ug+8pGPFJ2nO/EhHwCg21m4cGFGjRqVJHnwwQezfv369j+Xsn79+iRJ7969i573b4HABAC6\nlRdffDHPPfdcDjvssCTJ/fffnz59+uSAAw7YrOMXLlyYcePGZdddd01DQ0MOPvjgfPvb386GDRva\n96mrq8u3vvWtJMmRRx6Z7bbbrlMz3nzzzR3O8dY5x4wZk+XLl+e0005L//79s+OOO+awww7LAw88\nsNE5Xn311XzpS1/Kvvvum169emXvvffORRddlBUrVnTYb8OGDbnxxhvT1NSU3r17Z5dddsmRRx6Z\n+fPnd2rmkgQmANAtnHfeeenRo0caGxtTqVRy2mmnpUePHrnyyivT1taWnj17pl+/fh1C8a/Nnj07\nRx55ZB566KGMGzcun/rUp/LGG29k8uTJOemkk1KtVpOkw/snP/GJT2TKlCmdnvf/fU/mW55//vkc\neuiheeqpp/KJT3wiRxxxRB588MEce+yxeemll9r3W7FiRf7+7/8+11xzTQYNGpSzzz47++23X669\n9tp8+MMfzh//+Mf2fSdPnpzPfe5zqauryxlnnJExY8bkN7/5TcaOHZt58+Z1eu4iqjXg0UcfrSap\nPvroo9t6FACoOe/27+Rb25NHq0m1Bh9l/p1ftmxZ9amnnqqOGzeuetBBB1Wffvrp6oMPPljdbrvt\nqldccUX1qaeeqi5ZsuRtj3/55ZerO++8c3XAgAHV559/vn19w4YN1TPOOKNaV1dX/c53vtO+PmXK\nlGpdXV31vvvue9fZjjjiiGpdXV21ra2tWq1Wqz/+8Y+rlUql+q//+q/t+1QqlWpdXV317LPP7nDs\nOeecU62rq6t+//vfb1/79Kc/Xa2rq6vOnj27w74tLS3VSqVSPeOMM6rVarX6+uuvV3v27Fn98Ic/\n3GG/xYsXV3fYYYfqkUce+a6zb26HdabX3MEEALqFD37wgxkyZEgefvjhfPKTn8ywYcOydOnSJMnE\niRMzfPjw7L333m97/KxZs7Jq1apMnjw5AwcObF9/64M8SfKTn/ykS3+GHXbYocPL5kkyfvz4VKvV\n/OEPf0iS/OUvf8ltt92Wo446KqecckqHfU899dQccMABmTNnTjZs2JBVq1Zl3bp1efXVV/Pqq6+2\n77f//vtnwYIFmTZtWpf+PG/Hp8gBgG7jnnvuyYoVK3LiiScmSf7t3/4tI0eOzIABA9712EceeSRJ\nMnbs2I227bHHHhk4cGCefvrpsgP/lb322is77bRTh7Vddtklyf9+72aS/PrXv8769evz8ssvZ+rU\nqRudY+3atVm1alX++7//O4MGDcoJJ5yQOXPmZMiQITnppJPy8Y9/PEcccUT7e1S3BYEJANS8Qw45\nJL/97W+T/O8dxxEjRnTYXldXl5EjR27ywzJvees3He2xxx6b3N7Q0JA//elPhSbetPr6+rfdVv2/\n93++Nefvfve7/O53v9vkvpVKJa+99lqS5I477sgPfvCDzJo1K9/73vfy3e9+N0na38N56KGHlvwR\nNovABABqXnNzcz7+8Y+npaUlffv2zTHHHJPW1tbceuutOemkkzJo0KB89KMffcdzNDQ0JEn+/Oc/\nZ/fdd99o+x//+MdNrr/XdtxxxyT/+0Gja6+99l3332677TJp0qRMmjQpK1euzC9/+cvcdddduemm\nmzJ27Ng8//zz7ed8r3gPJgBQ87761a/mqquuymuvvZaJEydmxowZOeqoo1KpVHLTTTdlxowZOfXU\nU9/xHG/d9bzvvvs22rZw4cK89tprGTlyZJfM3xkHHXRQkrTfsf1rF198cSZOnJgk+dWvfpUTTzwx\n999/f5Jkp512ytixY3PDDTfklFNOSVtbW5566qn3ZvD/h8AEALqFhQsXZvXq1Tn66KOTJPPnz8/B\nBx+cvn37btbxp59+eiqVSq6++ur2l6GT//1C9enTp6dSqbSH27Y0ePDgjBo1Kvfdd1/uuuuuDttu\nuummXH311XnzzTeTJH369MmcOXNy1VVXZe3ate37rVmzJk899VQqlUqHDzS9V7xEDgDvG4u29QBv\no8xcCxYsSP/+/dvvRN5zzz35zGc+s9nHDx06NJdffnkuu+yyDBs2LOPGjUuvXr3yi1/8Ir///e9z\nzjnntMfrtvb9738/hx9+eE488cQcddRR+eAHP5gnnngiv/rVr7LPPvu0f+p96NCh+Yd/+Ifceeed\nGT58eD72sY9l++23zz333JPnn38+n/3sZ9/2PaddSWACQDfXv3//1Nc3ZM2aM7b1KG+rvr4h/fv3\n36pzLFiwIEcddVSS5IknnshLL72UMWPGdOocl156afbff/9885vfzJ133plKpZJhw4blO9/5TiZN\nmrRV8/31F6tv6s+b+vL1TW3bd99985vf/CZf+cpXcvfdd+eXv/xlBg4cmC984Qu59NJL2z95niS3\n3HJL9tlnn/zsZz/L7bffnkqlkv333z9TpkzJ5MmTt+pn2lKV6lsfWdqGHnvssRxyyCF59NFH09TU\ntK3HAYCasjn/Ti5fvrzDy761pn///mlsbNzWY7AJm9thnek1dzAB4H2gsbFRwFEzfMgHAICiBCYA\nAEUJTAAAihKYAAAUJTABAChKYAIAUJTABACgKIEJAEBRvmgdALqJRYtq9XeN0511xf9XAhMAalz/\n/v3T0NCQM86o3d81TvfW0LD1vyv+/yUwAaDGNTY2ZtGiRTX9u8bp3kr/rniBCdSU5cuX+0e0RpX+\n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\nyZgAAGyBlpaWtLS0dFjrzCvRnQ7MG2+8MZ/73OcycuTI/PCHP8yQIUPat+2zzz6pr6/P448/nlNO\nOaV9fd26dVm6dGkmTZr0jueeOXPmRu/vBADgvbWpG3yPPfZYDjnkkM06vlMvka9cuTIXXnhhjjji\niNx3330d4jJJevbsmebm5txxxx1Zv359+/rtt9+etWvXZvz48Z25HAAA3VCn7mDOnTs3q1atytix\nY3PPPfdstH3ffffNtGnTcuihh2b8+PGZOHFili5dmmnTpmXSpEkZPHhwscEBAKhNnQrMZcuWpVKp\n5OKLL97k9ssuuyxf+cpXMm/evHzpS1/KmWeemX79+mXKlCm5/PLLS8wLAECN61RgXnDBBbngggve\ndb/DDjssDzzwwBYPBQBA97XFX1MEAACbIjABAChKYAIAUJTABACgKIEJAEBRAhMAgKIEJgAARQlM\nAACKEpgAABQlMAEAKEpgAgBQlMAEAKAogQkAQFECEwCAogQmAABFCUwAAIoSmAAAFCUwAQAoSmAC\nAFCUwAQAoCiBCQBAUQITAICiBCYAAEUJTAAAihKYAAAUJTABAChKYAIAUJTABACgKIEJAEBRAhMA\ngKIEJgAARQlMAACKEpgAABQlMAEAKEpgAgBQlMAEAKAogQkAQFECEwCAogQmAABFCUwAAIoSmAAA\nFCUwAQAoSmACAFCUwAQAoCiBCQBAUQITAICiBCYAAEUJTAAAihKYAAAUJTABAChKYAIAUJTABACg\nKIEJAEBRAhMAgKIEJgAARQlMAACKEpgAABQlMAEAKEpgAgBQlMAEAKAogQkAQFECEwCAogQmAABF\nCUwAAIoSmAAAFCUwAQAoavuuOOnq1auzYcOGjdZ33HHHrrgcAAA1ZKvuYN54440ZNGjQRuv9+vXL\nzjvv3OHRu3fvLF26dGsuBwBAN7DFdzBfeOGFzJgxI5VKpcP6iy++mDVr1uS2225LY2Njh20DBw7c\n0ssBANBNdDow77333kyePDlPP/103nzzzY2iccmSJamrq8sJJ5yQ+vr6YoMCANA9dDowd99995x+\n+ulJkttvvz0vvfRSh+1LlizJnnvumfr6+mzYsCGVSmWju5wAALx/dfo9mMOHD89FF12Uiy66KCNG\njNho+5IlS9KjR4+MHj06PXv2zA477JBjjjkmzzzzTJGBAQCobcW/pmjJkiV57rnn0tTUlLlz5+aG\n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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113dd39d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.plot(kind='bar')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11afa93d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4,4))\n",
    "plt.style.use('ggplot')\n",
    "ax = sns.barplot(data=df, x='fn', y=\"# of lines\")\n",
    "ax.grid()\n",
    "plt.xticks(rotation=90);"
   ]
  }
 ],
 "metadata": {
  "hide_input": false,
  "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"
  },
  "toc": {
   "colors": {
    "hover_highlight": "#DAA520",
    "running_highlight": "#FF0000",
    "selected_highlight": "#FFD700"
   },
   "moveMenuLeft": true,
   "nav_menu": {
    "height": "66px",
    "width": "253px"
   },
   "navigate_menu": true,
   "number_sections": true,
   "sideBar": true,
   "threshold": 4,
   "toc_cell": false,
   "toc_section_display": "block",
   "toc_window_display": true,
   "widenNotebook": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
