Skip to content
Snippets Groups Projects
pybis demo.ipynb 260 KiB
Newer Older
  • Learn to ignore specific revisions
  • {
     "cells": [
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "# Working with pybis"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "## connect to openBIS\n",
        "(using stored session token ~/.pybis/localhost.token)"
       ]
      },
      {
       "cell_type": "code",
    
       "execution_count": 1,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
       "outputs": [],
    
       "source": [
        "from pybis import Openbis\n",
        "o = Openbis(url='https://localhost:8443', verify_certificates=False)\n",
        "o.token"
       ]
      },
    
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "check if session is still active:"
       ]
      },
    
      {
       "cell_type": "code",
    
       "execution_count": 2,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/plain": [
           "True"
          ]
         },
    
         "execution_count": 2,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "o.is_session_active()"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
    
        "login with a password if the token is no longer valid - and store the token"
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "execution_count": 1,
       "metadata": {},
    
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "········\n"
         ]
        },
        {
         "data": {
          "text/plain": [
    
    Swen Vermeul's avatar
    Swen Vermeul committed
           "'vermeul-180926010607740x90FB53D7BFEB6F8D6E3F634753E5E5E5'"
    
    Swen Vermeul's avatar
    Swen Vermeul committed
         "execution_count": 1,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
        "from pybis import Openbis\n",
    
        "o = Openbis('https://localhost:8443', verify_certificates=False)\n",
    
        "\n",
        "import getpass\n",
    
        "password = getpass.getpass()\n",
    
        "\n",
    
        "o.login('vermeul',password, save_token=True)"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
    
        "you can connect to another openBIS instance if you like to:"
    
       "execution_count": 82,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "········\n"
         ]
        },
        {
    
         "data": {
          "text/plain": [
           "'vermeul-170213105248365xBB06092567F9EE09864C78CDBDB14CA9'"
          ]
         },
         "execution_count": 82,
         "metadata": {},
         "output_type": "execute_result"
    
        }
       ],
       "source": [
        "from pybis import Openbis\n",
        "import getpass\n",
        "o2 = Openbis('https://sprint-openbis.ethz.ch:8443', verify_certificates=False)\n",
        "password = getpass.getpass()\n",
        "o2.login('vermeul',password)\n",
        "o2.token"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
    
        "disconnnect (or rather: make the session key invalid):"
    
       "execution_count": 29,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [],
       "source": [
        "o2.logout()"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "## get general information about openBIS"
       ]
      },
    
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "Data Store Servers (DSS)"
       ]
      },
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
           "<div>\n",
           "<table border=\"1\" class=\"dataframe\">\n",
           "  <thead>\n",
           "    <tr style=\"text-align: right;\">\n",
           "      <th></th>\n",
           "      <th>code</th>\n",
           "      <th>downloadUrl</th>\n",
           "      <th>hostUrl</th>\n",
           "    </tr>\n",
           "  </thead>\n",
           "  <tbody>\n",
           "    <tr>\n",
           "      <th>0</th>\n",
           "      <td>DSS1</td>\n",
           "      <td>https://localhost:8444/datastore_server</td>\n",
           "      <td>https://localhost:8444</td>\n",
           "    </tr>\n",
           "  </tbody>\n",
           "</table>\n",
           "</div>"
          ],
          "text/plain": [
           "   code                              downloadUrl                 hostUrl\n",
           "0  DSS1  https://localhost:8444/datastore_server  https://localhost:8444"
          ]
         },
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "o.get_datastores()"
       ]
      },
      {
    
       "cell_type": "markdown",
       "metadata": {},
    
        "list all available spaces:"
    
       "execution_count": 8,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
           "<div>\n",
           "<table border=\"1\" class=\"dataframe\">\n",
           "  <thead>\n",
           "    <tr style=\"text-align: right;\">\n",
           "      <th></th>\n",
           "      <th>code</th>\n",
           "      <th>description</th>\n",
           "      <th>registrationDate</th>\n",
           "      <th>modificationDate</th>\n",
           "    </tr>\n",
           "  </thead>\n",
           "  <tbody>\n",
           "    <tr>\n",
           "      <th>0</th>\n",
           "      <td>ANOTHER_SPACE_NAME</td>\n",
           "      <td>another space description</td>\n",
           "      <td>2016-07-15 02:54:45</td>\n",
           "      <td>2016-07-15 02:54:45</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>1</th>\n",
           "      <td>MATERIALS</td>\n",
           "      <td>None</td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>2</th>\n",
           "      <td>METHODS</td>\n",
           "      <td>None</td>\n",
           "      <td>2016-06-24 11:47:53</td>\n",
           "      <td>2016-06-24 11:47:53</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>3</th>\n",
           "      <td>MY_NEW_SPACE</td>\n",
           "      <td>this is yet another space</td>\n",
           "      <td>2016-07-15 03:02:14</td>\n",
           "      <td>2016-07-15 03:02:14</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>4</th>\n",
           "      <td>VERMEUL</td>\n",
           "      <td>Space for user vermeul</td>\n",
           "      <td>2016-06-24 11:50:48</td>\n",
           "      <td>2016-06-24 11:50:48</td>\n",
           "    </tr>\n",
           "  </tbody>\n",
           "</table>\n",
           "</div>"
          ],
          "text/plain": [
    
           "<pybis.pybis.Things at 0x7f7ff39e4fd0>"
    
         "execution_count": 8,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "o.get_spaces()"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 9,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
           "\n",
           "            <table border=\"1\" class=\"dataframe\">\n",
           "            <thead>\n",
           "                <tr style=\"text-align: right;\">\n",
           "                <th>attribute</th>\n",
           "                <th>value</th>\n",
           "                </tr>\n",
           "            </thead>\n",
           "            <tbody>\n",
           "        <tr> <td>code</td> <td>MY_NEW_SPACE</td> </tr><tr> <td>permId</td> <td>MY_NEW_SPACE</td> </tr><tr> <td>description</td> <td>this is yet another space</td> </tr><tr> <td>registrator</td> <td>vermeul</td> </tr><tr> <td>registrationDate</td> <td>2016-07-15 03:02:14</td> </tr><tr> <td>modificationDate</td> <td>2016-07-15 03:02:14</td> </tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "<pybis.pybis.Space at 0x7f7ff5194898>"
          ]
         },
         "execution_count": 9,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
        "sp = o.get_space('my_new_space')\n",
        "# another way: get space number 3 from the list above.\n",
        "# sp = o.get_spaces()[3]\n",
        "# sp = o.get_spaces()['MY_NEW_SPACE']\n",
    
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "list all the projects within that space"
       ]
      },
    
       "execution_count": 10,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
           "<div>\n",
           "<table border=\"1\" class=\"dataframe\">\n",
           "  <thead>\n",
           "    <tr style=\"text-align: right;\">\n",
           "      <th></th>\n",
    
           "      <th>identifier</th>\n",
           "      <th>permId</th>\n",
           "      <th>leader</th>\n",
    
           "      <th>registrator</th>\n",
           "      <th>registrationDate</th>\n",
           "      <th>modifier</th>\n",
           "      <th>modificationDate</th>\n",
           "    </tr>\n",
           "  </thead>\n",
           "  <tbody>\n",
           "    <tr>\n",
           "      <th>0</th>\n",
    
           "      <td>/MY_NEW_SPACE/VERMEUL_PROJECT</td>\n",
           "      <td>20160926234755430-363</td>\n",
           "      <td>None</td>\n",
           "      <td>vermeul</td>\n",
           "      <td>2016-09-26 23:47:55</td>\n",
           "      <td>admin</td>\n",
           "      <td>2017-01-20 23:57:45</td>\n",
    
           "    </tr>\n",
           "  </tbody>\n",
           "</table>\n",
           "</div>"
          ],
          "text/plain": [
    
           "<pybis.pybis.Things at 0x7f7ff39e8940>"
    
         "execution_count": 10,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
        "sp.get_projects()"
    
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
    
        "get details of the first project in this list"
    
       "execution_count": 4,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
           "\n",
           "            <table border=\"1\" class=\"dataframe\">\n",
           "            <thead>\n",
           "                <tr style=\"text-align: right;\">\n",
    
           "                <th>attribute</th>\n",
           "                <th>value</th>\n",
    
           "                </tr>\n",
           "            </thead>\n",
           "            <tbody>\n",
    
           "        <tr> <td>code</td> <td>VERMEUL_PROJECT</td> </tr><tr> <td>description</td> <td>my first project in my space...</td> </tr><tr> <td>permId</td> <td>20160926234755430-363</td> </tr><tr> <td>identifier</td> <td>/MY_NEW_SPACE/VERMEUL_PROJECT</td> </tr><tr> <td>space</td> <td>MY_NEW_SPACE</td> </tr><tr> <td>leader</td> <td></td> </tr><tr> <td>registrator</td> <td>vermeul</td> </tr><tr> <td>registrationDate</td> <td>2016-09-26 23:47:55</td> </tr><tr> <td>modifier</td> <td>admin</td> </tr><tr> <td>modificationDate</td> <td>2017-01-20 23:57:45</td> </tr><tr><td>attachments</td><td>pybis.pdf</td></tr>\n",
    
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
    
           "<pybis.pybis.Project at 0x7f6a2776dbe0>"
    
         "execution_count": 4,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
        "pr = sp.get_projects()[0]\n",
        "# this works too:\n",
        "# pr = sp.get_projects()['/MY_NEW_SPACE/VERMEUL_PROJECT']\n",
        "pr"
    
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
    
        "**TAB completion**: list all possible attributes and methods by hitting the TAB key"
    
       "execution_count": 5,
    
       },
       "outputs": [],
       "source": [
    
        "# try it: put the cursor after the dot and press TAB\n",
        "pr."
    
       "cell_type": "markdown",
       "metadata": {},
    
        "Fetch the experiments that belong to a project"
    
       "execution_count": 87,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [],
       "source": [
        "pr = o.get_project('/MY_NEW_SPACE/VERMEUL_PROJECT')"
       ]
      },
      {
       "cell_type": "code",
    
       "execution_count": 88,
    
       "outputs": [
        {
         "data": {
          "text/html": [
           "<div>\n",
           "<table border=\"1\" class=\"dataframe\">\n",
           "  <thead>\n",
           "    <tr style=\"text-align: right;\">\n",
           "      <th></th>\n",
    
           "      <th>identifier</th>\n",
           "      <th>permId</th>\n",
           "      <th>project</th>\n",
           "      <th>type</th>\n",
           "      <th>registrator</th>\n",
           "      <th>registrationDate</th>\n",
           "      <th>modifier</th>\n",
    
           "      <th>modificationDate</th>\n",
    
           "    </tr>\n",
           "  </thead>\n",
           "  <tbody>\n",
           "    <tr>\n",
           "      <th>0</th>\n",
    
           "      <td>/MY_NEW_SPACE/VERMEUL_PROJECT/EXP_NEW</td>\n",
           "      <td>20170127005816666-430</td>\n",
           "      <td>VERMEUL_PROJECT</td>\n",
           "      <td>None</td>\n",
           "      <td>vermeul</td>\n",
           "      <td>2017-01-27 00:58:17</td>\n",
           "      <td>vermeul</td>\n",
           "      <td>2017-01-27 00:58:17</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>1</th>\n",
    
           "      <td>/MY_NEW_SPACE/VERMEUL_PROJECT/MY_EXPERIMENT4</td>\n",
           "      <td>20160924020719018-358</td>\n",
           "      <td>VERMEUL_PROJECT</td>\n",
           "      <td>None</td>\n",
           "      <td>vermeul</td>\n",
           "      <td>2016-09-24 02:07:19</td>\n",
           "      <td>vermeul</td>\n",
           "      <td>2017-01-09 00:05:43</td>\n",
    
           "      <td>/MY_NEW_SPACE/VERMEUL_PROJECT/MY_SPECIAL_EXPER...</td>\n",
           "      <td>20161121013609807-402</td>\n",
           "      <td>VERMEUL_PROJECT</td>\n",
           "      <td>None</td>\n",
           "      <td>vermeul</td>\n",
           "      <td>2016-11-21 01:36:10</td>\n",
           "      <td>vermeul</td>\n",
           "      <td>2017-01-20 23:41:42</td>\n",
    
           "    </tr>\n",
           "  </tbody>\n",
           "</table>\n",
           "</div>"
          ],
          "text/plain": [
    
           "0\t/MY_NEW_SPACE/VERMEUL_PROJECT/EXP_NEW\n",
           "1\t/MY_NEW_SPACE/VERMEUL_PROJECT/MY_EXPERIMENT4\n",
           "2\t/MY_NEW_SPACE/VERMEUL_PROJECT/MY_SPECIAL_EXPERIMENT"
    
         "execution_count": 88,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
        "exs = pr.get_experiments()\n",
        "exs"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "... using a different approach"
    
       "execution_count": 90,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
    
           "<div>\n",
    
           "<table border=\"1\" class=\"dataframe\">\n",
           "  <thead>\n",
           "    <tr style=\"text-align: right;\">\n",
    
           "      <th></th>\n",
    
           "      <th>identifier</th>\n",
           "      <th>permId</th>\n",
    
           "      <th>project</th>\n",
           "      <th>type</th>\n",
    
           "      <th>registrator</th>\n",
           "      <th>registrationDate</th>\n",
           "      <th>modifier</th>\n",
    
           "      <th>modificationDate</th>\n",
    
           "    </tr>\n",
           "  </thead>\n",
           "  <tbody>\n",
    
           "    <tr>\n",
           "      <th>0</th>\n",
    
           "      <td>/MY_NEW_SPACE/VERMEUL_PROJECT/EXP_NEW</td>\n",
           "      <td>20170127005816666-430</td>\n",
           "      <td>VERMEUL_PROJECT</td>\n",
           "      <td>None</td>\n",
    
           "      <td>vermeul</td>\n",
    
           "      <td>2017-01-27 00:58:17</td>\n",
    
           "      <td>vermeul</td>\n",
    
           "      <td>2017-01-27 00:58:17</td>\n",
    
           "    </tr>\n",
           "    <tr>\n",
           "      <th>1</th>\n",
           "      <td>/MY_NEW_SPACE/VERMEUL_PROJECT/MY_EXPERIMENT4</td>\n",
    
           "      <td>20160924020719018-358</td>\n",
           "      <td>VERMEUL_PROJECT</td>\n",
           "      <td>None</td>\n",
    
           "      <td>vermeul</td>\n",
    
           "      <td>2016-09-24 02:07:19</td>\n",
    
           "      <td>vermeul</td>\n",
    
           "      <td>2017-01-09 00:05:43</td>\n",
    
           "    </tr>\n",
           "    <tr>\n",
           "      <th>2</th>\n",
           "      <td>/MY_NEW_SPACE/VERMEUL_PROJECT/MY_SPECIAL_EXPER...</td>\n",
    
           "      <td>20161121013609807-402</td>\n",
           "      <td>VERMEUL_PROJECT</td>\n",
           "      <td>None</td>\n",
    
           "      <td>vermeul</td>\n",
    
           "      <td>2016-11-21 01:36:10</td>\n",
    
           "      <td>vermeul</td>\n",
           "      <td>2017-01-20 23:41:42</td>\n",
    
           "    </tr>\n",
           "  </tbody>\n",
           "</table>\n",
           "</div>"
    
           "0\t/MY_NEW_SPACE/VERMEUL_PROJECT/EXP_NEW\n",
           "1\t/MY_NEW_SPACE/VERMEUL_PROJECT/MY_EXPERIMENT4\n",
           "2\t/MY_NEW_SPACE/VERMEUL_PROJECT/MY_SPECIAL_EXPERIMENT"
    
         "execution_count": 90,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
        "o.get_experiments(project='/MY_NEW_SPACE/VERMEUL_PROJECT')"
    
       "cell_type": "markdown",
       "metadata": {},
    
        "**get vocabulary terms**"
    
       "execution_count": 24,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
    
           "\n",
           "            <table border=\"1\" class=\"dataframe\">\n",
           "            <thead>\n",
           "                <tr style=\"text-align: right;\">\n",
    
           "                <th>vocabulary term</th>\n",
           "                <th>label</th>\n",
           "                <th>description</th>\n",
           "                <th>vocabulary</th>\n",
    
           "                </tr>\n",
           "            </thead>\n",
           "            <tbody>\n",
    
           "        <tr> <td>PBLUESCRIPT_II_KS_PLUS</td> <td>pBluescript II KS +</td> <td>Commercial vector for cloning in bacteria (Stratagene)</td> <td>BACKBONE</td> </tr><tr> <td>PSPPOLY_A</td> <td>pSPpoly(A)</td> <td>Standard cloning vector. It can be used for in vitro trascription from SP6 promoter. It contains a poly(A) to generate poly(A)+ transcripts in vitro (Promega)</td> <td>BACKBONE</td> </tr><tr> <td>PRS30Y</td> <td>pRS30y</td> <td>Integrative yeast shuttle vector from Sikorski et al, 1989</td> <td>BACKBONE</td> </tr><tr> <td>PRS31Y</td> <td>pRS31y</td> <td>Centromeric yeast shuttle vector from Sikorski et al, 1989</td> <td>BACKBONE</td> </tr><tr> <td>PRS40Y</td> <td>pRS40y</td> <td>Integrative yeast shuttle vector from Sikorski et al, 1992</td> <td>BACKBONE</td> </tr><tr> <td>PRS41Y</td> <td>pRS41y</td> <td>Centromeric yeast shuttle vector from Sikorski et al, 1992</td> <td>BACKBONE</td> </tr><tr> <td>PRS42Y</td> <td>pRS42y</td> <td>2-micron-based yeast shuttle vector from Sikorski et al, 1992</td> <td>BACKBONE</td> </tr><tr> <td>UNKNOWN</td> <td>unknown</td> <td>unknown vector</td> <td>BACKBONE</td> </tr><tr> <td>PGEX4T1</td> <td>pGEX4T1</td> <td>Vector for bacterial expression</td> <td>BACKBONE</td> </tr>\n",
    
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
    
           "<pybis.masterdata.Vocabulary at 0x7f3140fafeb8>"
    
         "execution_count": 24,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
        "x = o.get_terms('Backbone')\n",
        "x"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "## get information about general types"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "OpenBIS categorizes some of its entities in «types»:\n",
        "\n",
        "* sample type\n",
        "* experiment type\n",
        "* material type\n",
        "* dataset type\n",
        "\n",
        "The types define the collection of **properties** that can be later assigned to a sample, experiment or dataset."
    
       "execution_count": 12,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
    
           "<div>\n",
           "<table border=\"1\" class=\"dataframe\">\n",
           "  <thead>\n",
           "    <tr style=\"text-align: right;\">\n",
           "      <th></th>\n",
           "      <th>code</th>\n",
           "      <th>description</th>\n",
           "      <th>modificationDate</th>\n",
           "    </tr>\n",
           "  </thead>\n",
           "  <tbody>\n",
           "    <tr>\n",
           "      <th>0</th>\n",
           "      <td>DEFAULT_EXPERIMENT</td>\n",
           "      <td>Default Experiment</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>1</th>\n",
           "      <td>MATERIALS</td>\n",
           "      <td>Folder used to organize samples in the Invento...</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>2</th>\n",
           "      <td>METHODS</td>\n",
           "      <td>Folder used to organize samples in the Invento...</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>3</th>\n",
           "      <td>BOARDS</td>\n",
           "      <td>Folder used to organize boards</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>4</th>\n",
           "      <td>UNKNOWN</td>\n",
           "      <td>Unknown</td>\n",
           "      <td>2016-06-24 10:47:01</td>\n",
           "    </tr>\n",
           "  </tbody>\n",
           "</table>\n",
           "</div>"
    
           "<pybis.pybis.Things at 0x7f7ff3996a20>"
    
         "execution_count": 12,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
        "o.get_experiment_types()"
    
       "execution_count": 13,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
           "<div>\n",
           "<table border=\"1\" class=\"dataframe\">\n",
    
           "  <thead>\n",
           "    <tr style=\"text-align: right;\">\n",
           "      <th></th>\n",
           "      <th>code</th>\n",
    
           "      <th>description</th>\n",
           "      <th>generatedCodePrefix</th>\n",
    
           "      <th>modificationDate</th>\n",
    
           "    </tr>\n",
           "  </thead>\n",
           "  <tbody>\n",
           "    <tr>\n",
           "      <th>0</th>\n",
    
           "      <td>ANTIBODY</td>\n",
    
           "      <td>ANT</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
    
           "    </tr>\n",
           "    <tr>\n",
           "      <th>1</th>\n",
    
           "      <td>CHEMICAL</td>\n",
    
           "      <td>CHE</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
    
           "    </tr>\n",
           "    <tr>\n",
           "      <th>2</th>\n",
    
           "      <td>ENZ</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
    
           "    </tr>\n",
           "    <tr>\n",
           "      <th>3</th>\n",
    
           "      <td>MED</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
    
           "    </tr>\n",
           "    <tr>\n",
           "      <th>4</th>\n",
    
           "      <td>SOLUTION_BUFFER</td>\n",
    
           "      <td>SOL</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
    
           "    </tr>\n",
           "    <tr>\n",
           "      <th>5</th>\n",
    
           "      <td>OLI</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
    
           "    </tr>\n",
           "    <tr>\n",
           "      <th>6</th>\n",
    
           "      <td>RNA</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>7</th>\n",
           "      <td>PLASMID</td>\n",
    
           "      <td>PLA</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>8</th>\n",
           "      <td>BACTERIA</td>\n",
           "      <td></td>\n",
           "      <td>BAC</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>9</th>\n",
           "      <td>YEAST</td>\n",
           "      <td></td>\n",
           "      <td>YEA</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>10</th>\n",
           "      <td>CELL_LINE</td>\n",
           "      <td></td>\n",
           "      <td>CEL</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>11</th>\n",
           "      <td>FLY</td>\n",
           "      <td></td>\n",
           "      <td>FLY</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>12</th>\n",
           "      <td>EXPERIMENTAL_STEP</td>\n",
           "      <td></td>\n",
           "      <td>EXP</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>13</th>\n",
           "      <td>GENERAL_PROTOCOL</td>\n",
           "      <td></td>\n",
           "      <td>GEN</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>14</th>\n",
           "      <td>PCR_PROTOCOL</td>\n",
           "      <td></td>\n",
           "      <td>PCR</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>15</th>\n",
           "      <td>WESTERN_BLOTTING_PROTOCOL</td>\n",
           "      <td></td>\n",
           "      <td>WES</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>16</th>\n",
           "      <td>DRAWING_BOARD</td>\n",
           "      <td></td>\n",
           "      <td>DRA</td>\n",
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>17</th>\n",
           "      <td>UNKNOWN</td>\n",
           "      <td>Unknown</td>\n",
           "      <td>S</td>\n",
           "      <td>2016-06-24 10:47:01</td>\n",
    
           "    </tr>\n",
           "  </tbody>\n",
           "</table>\n",
           "</div>"
          ],
          "text/plain": [
    
           "<pybis.pybis.Things at 0x7f7ff399dbe0>"
    
         "execution_count": 13,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
        "o.get_sample_types()"
    
       ]
      },
      {
       "cell_type": "code",
    
       "execution_count": 14,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
    
           "<div>\n",
           "<table border=\"1\" class=\"dataframe\">\n",
           "  <thead>\n",
           "    <tr style=\"text-align: right;\">\n",
           "      <th></th>\n",
           "      <th>code</th>\n",
           "      <th>description</th>\n",
           "      <th>modificationDate</th>\n",
           "    </tr>\n",
           "  </thead>\n",
           "  <tbody>\n",
           "    <tr>\n",
           "      <th>0</th>\n",
           "      <td>MY_VERY_EXCITING_MATERIAL</td>\n",
           "      <td>looks like dirt and probably is dirt</td>\n",
           "      <td>2016-09-24 00:46:19</td>\n",
           "    </tr>\n",
           "  </tbody>\n",
           "</table>\n",
           "</div>"
    
          ],
          "text/plain": [
    
           "<pybis.pybis.Things at 0x7f7ff399d518>"
    
         "execution_count": 14,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
        "o.get_material_types()"
    
       "execution_count": 15,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/html": [
           "<div>\n",
    
           "<table border=\"1\" class=\"dataframe\">\n",
           "  <thead>\n",
           "    <tr style=\"text-align: right;\">\n",
    
           "      <th></th>\n",
           "      <th>code</th>\n",
    
           "      <th>description</th>\n",
    
           "      <th>modificationDate</th>\n",
    
           "  </thead>\n",
           "  <tbody>\n",
    
           "    <tr>\n",
           "      <th>0</th>\n",
    
           "      <td>ELN_PREVIEW</td>\n",
           "      <td>ELN Preview image</td>\n",
           "      <td>PHYSICAL</td>\n",
    
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>1</th>\n",
    
           "      <td>SEQ_FILE</td>\n",
           "      <td></td>\n",
           "      <td>PHYSICAL</td>\n",
    
           "      <td>2016-06-24 10:48:02</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>2</th>\n",
    
           "      <td>RAW_DATA</td>\n",
           "      <td></td>\n",
           "      <td>PHYSICAL</td>\n",