Skip to content
Snippets Groups Projects
pybis demo.ipynb 260 KiB
Newer Older
  • Learn to ignore specific revisions
  •        "<pybis.property.PropertyAssignments at 0x7f2e99cf6ef0>"
    
         "execution_count": 9,
    
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
    
       "execution_count": 10,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/plain": [
           "True"
          ]
         },
         "execution_count": 10,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
    
       "source": [
    
        "s.experiment.type == 'UNKNOWN'"
    
       ]
      },
      {
       "cell_type": "code",
       "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>space</th>\n",
           "      <th>registrator</th>\n",
           "      <th>registrationDate</th>\n",
           "      <th>modifier</th>\n",
           "      <th>modificationDate</th>\n",
           "      <th>permid</th>\n",
           "      <th>identifier</th>\n",
           "    </tr>\n",
           "  </thead>\n",
           "  <tbody>\n",
           "    <tr>\n",
           "      <th>0</th>\n",
           "      <td>BACTERIA</td>\n",
           "      <td>MATERIALS</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td>20160624054751885-33</td>\n",
           "      <td>/MATERIALS/BACTERIA</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>1</th>\n",
           "      <td>CELL_LINES</td>\n",
           "      <td>MATERIALS</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td>20160624054751885-34</td>\n",
           "      <td>/MATERIALS/CELL_LINES</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>2</th>\n",
           "      <td>FLIES</td>\n",
           "      <td>MATERIALS</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td>20160624054751885-35</td>\n",
           "      <td>/MATERIALS/FLIES</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>3</th>\n",
           "      <td>PLASMIDS</td>\n",
           "      <td>MATERIALS</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td>20160624054751885-37</td>\n",
           "      <td>/MATERIALS/PLASMIDS</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>4</th>\n",
           "      <td>POLYNUCLEOTIDES</td>\n",
           "      <td>MATERIALS</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td>20160624054751885-38</td>\n",
           "      <td>/MATERIALS/POLYNUCLEOTIDES</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>5</th>\n",
           "      <td>PROJECT_ONE</td>\n",
           "      <td>VERMEUL</td>\n",
           "      <td></td>\n",
           "      <td>2017-01-15 22:01:58</td>\n",
           "      <td></td>\n",
           "      <td>2017-01-15 22:02:59</td>\n",
           "      <td>20170115220158336-410</td>\n",
           "      <td>/VERMEUL/PROJECT_ONE</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>6</th>\n",
           "      <td>PROTOCOLS</td>\n",
           "      <td>METHODS</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td>20160624054751885-39</td>\n",
           "      <td>/METHODS/PROTOCOLS</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>7</th>\n",
           "      <td>REAGENTS</td>\n",
           "      <td>MATERIALS</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td>20160624054751885-32</td>\n",
           "      <td>/MATERIALS/REAGENTS</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>8</th>\n",
           "      <td>VERMEUL_PROJECT</td>\n",
           "      <td>MY_NEW_SPACE</td>\n",
           "      <td></td>\n",
           "      <td>2016-09-26 23:47:55</td>\n",
           "      <td></td>\n",
           "      <td>2017-01-09 01:33:37</td>\n",
           "      <td>20160926234755430-363</td>\n",
           "      <td>/MY_NEW_SPACE/VERMEUL_PROJECT</td>\n",
           "    </tr>\n",
           "    <tr>\n",
           "      <th>9</th>\n",
           "      <td>YEASTS</td>\n",
           "      <td>MATERIALS</td>\n",
           "      <td></td>\n",
           "      <td>2016-06-24 11:47:52</td>\n",
           "      <td></td>\n",
           "      <td>2016-10-04 22:04:57</td>\n",
           "      <td>20160624054751885-36</td>\n",
           "      <td>/MATERIALS/YEASTS</td>\n",
           "    </tr>\n",
           "  </tbody>\n",
           "</table>\n",
           "</div>"
          ],
          "text/plain": [
           "<pybis.pybis.Things at 0x7f2e99b5d9b0>"
          ]
         },
         "execution_count": 12,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "o.get_projects()"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 10,
    
    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>YEA21</td> </tr><tr> <td>permId</td> <td>20161025010638912-382</td> </tr><tr> <td>identifier</td> <td>/MY_NEW_SPACE/YEA21</td> </tr><tr> <td>type</td> <td>YEAST</td> </tr><tr> <td>space</td> <td>MY_NEW_SPACE</td> </tr><tr> <td>experiment</td> <td>/MY_NEW_SPACE/VERMEUL_PROJECT/MY_SPECIAL_EXPERIMENT</td> </tr><tr> <td>container</td> <td></td> </tr><tr> <td>components</td> <td></td> </tr><tr> <td>tags</td> <td>['do', 'fa', 're']</td> </tr><tr><td>attachments</td><td></td></tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "<pybis.pybis.Sample at 0x7f8ff55c2e10>"
          ]
         },
         "execution_count": 10,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "s"
       ]
      },
    
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "list all the properties (p) of a given sample"
       ]
      },
    
    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>URA3_HIS3_LEU2</td> <td>ura3- his3- leu2-</td> <td>The strain is a uracil, histidine, and leucine auxotroph</td> <td>COMMON_MARKERS</td> </tr><tr> <td>URA3_HIS3</td> <td>ura3- his3-</td> <td>The strain is a uracil and histidine auxotroph</td> <td>COMMON_MARKERS</td> </tr><tr> <td>URA3_LEU2</td> <td>ura3- leu2-</td> <td>The strain is a uracil and leucine auxotroph</td> <td>COMMON_MARKERS</td> </tr><tr> <td>URA3</td> <td>ura3-</td> <td>The strain is a uracil auxotroph</td> <td>COMMON_MARKERS</td> </tr><tr> <td>HIS3_LEU2</td> <td>his3- leu2-</td> <td>The strain is a histidine and leucine auxotroph</td> <td>COMMON_MARKERS</td> </tr><tr> <td>HIS3</td> <td>his3-</td> <td>The strain is a histidine auxotroph</td> <td>COMMON_MARKERS</td> </tr><tr> <td>LEU2</td> <td>leu2-</td> <td>The strain is a leucine auxotroph</td> <td>COMMON_MARKERS</td> </tr><tr> <td>NONE</td> <td>none</td> <td>The strain does not have any background-specific auxotrophies</td> <td>COMMON_MARKERS</td> </tr><tr> <td>UNKNOWN</td> <td>unknown</td> <td>No information about the auxotrophy</td> <td>COMMON_MARKERS</td> </tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "<pybis.pybis.Vocabulary at 0x7f6b74235358>"
          ]
         },
         "execution_count": 8,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "s.props.common_markers_"
       ]
      },
      {
       "cell_type": "markdown",
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "source": [
        "fetch just a single property: sample.p.«property_name»"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 14,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/plain": [
           "'comments: publication in my office'"
          ]
         },
         "execution_count": 14,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "s.p.publication"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "if you don't know the controlled vocabulary of a property, just add an underscore and press shift-enter:"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 15,
    
    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>A</td> <td>a</td> <td>None</td> <td>MATING_TYPE</td> </tr><tr> <td>ALPHA</td> <td>alpha</td> <td>None</td> <td>MATING_TYPE</td> </tr><tr> <td>DIPLOID</td> <td>diploid</td> <td>None</td> <td>MATING_TYPE</td> </tr><tr> <td>UNKNOWN</td> <td>unknown</td> <td>None</td> <td>MATING_TYPE</td> </tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "<pybis.pybis.Vocabulary at 0x7efe6097d828>"
          ]
         },
         "execution_count": 15,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "s.p.mating_type_"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "pybis will automatically check the controlled vocabulary when you assign a value to it:"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 24,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "ename": "ValueError",
         "evalue": "Value must be one of these terms: A, ALPHA, DIPLOID, UNKNOWN",
         "output_type": "error",
         "traceback": [
          "\u001b[1;31m\u001b[0m",
          "\u001b[1;31mValueError\u001b[0mTraceback (most recent call last)",
          "\u001b[1;32m<ipython-input-24-d4d5f6a664c5>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0ms\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmating_type\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'invalid content'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
          "\u001b[1;32m/vagrant_python/PyBis/pybis/pybis.py\u001b[0m in \u001b[0;36m__setattr__\u001b[1;34m(self, name, value)\u001b[0m\n\u001b[0;32m   2122\u001b[0m             \u001b[0mvoc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_openbis\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_terms\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2123\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mvalue\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mvoc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mterms\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2124\u001b[1;33m                 \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Value must be one of these terms: \"\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m\", \"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvoc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mterms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   2125\u001b[0m         \u001b[1;32melif\u001b[0m \u001b[0mdata_type\u001b[0m \u001b[1;32min\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;34m'INTEGER'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'BOOLEAN'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'VARCHAR'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2126\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mcheck_datatype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata_type\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
          "\u001b[1;31mValueError\u001b[0m: Value must be one of these terms: A, ALPHA, DIPLOID, UNKNOWN"
         ]
        }
       ],
       "source": [
        "s.p.mating_type = 'invalid content'"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "some properties are of a general type. Again, you can list it by adding an underscore _ :"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 16,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "data": {
          "text/plain": [
           "{'Storage Column': 'INTEGER'}"
          ]
         },
         "execution_count": 16,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "s.p.storage_column_"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {
        "collapsed": true
       },
       "source": [
        "### alter a sample and its properties"
       ]
      },
      {
       "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)"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 6,
    
    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>FLY45</td> </tr><tr> <td>permId</td> <td>20170104000847172-405</td> </tr><tr> <td>identifier</td> <td>/MATERIALS/FLY45</td> </tr><tr> <td>type</td> <td>FLY</td> </tr><tr> <td>parents</td> <td>['/MATERIALS/FLY43']</td> </tr><tr> <td>children</td> <td>[]</td> </tr><tr> <td>space</td> <td>MATERIALS</td> </tr><tr> <td>experiment</td> <td>/MATERIALS/YEASTS/MY_EXPERIMENT007</td> </tr><tr> <td>container</td> <td></td> </tr><tr> <td>components</td> <td></td> </tr><tr> <td>tags</td> <td>[]</td> </tr><tr><td>attachments</td><td>openBIS JSON-RPC.md</td></tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "<pybis.pybis.Sample at 0x7faa0c089828>"
          ]
         },
         "execution_count": 6,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "sample = o.get_sample('/MATERIALS/FLY45')\n",
        "sample"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 7,
    
    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>property</th>\n",
           "                <th>value</th>\n",
           "                </tr>\n",
           "            </thead>\n",
           "            <tbody>\n",
           "        <tr> <td>name</td> <td>a fly45 which is the child of fly43</td> </tr><tr> <td>show_in_project_overview</td> <td>False</td> </tr><tr> <td>owner</td> <td></td> </tr><tr> <td>owner_number</td> <td></td> </tr><tr> <td>genetic_modification</td> <td></td> </tr><tr> <td>fly_genotype</td> <td></td> </tr><tr> <td>associated_gene</td> <td></td> </tr><tr> <td>markers</td> <td></td> </tr><tr> <td>origin</td> <td></td> </tr><tr> <td>strain_check</td> <td></td> </tr><tr> <td>source</td> <td></td> </tr><tr> <td>mating_partners</td> <td></td> </tr><tr> <td>publication</td> <td></td> </tr><tr> <td>notes</td> <td></td> </tr><tr> <td>xmlcomments</td> <td><root>\n",
           "  <commentEntry date=\"1483484927350\" person=\"vermeul\"/>\n",
           "</root>\n",
           "</td> </tr><tr> <td>annotations_state</td> <td>�(undefined)</td> </tr><tr> <td>storage_names</td> <td></td> </tr><tr> <td>storage_row</td> <td></td> </tr><tr> <td>storage_column</td> <td></td> </tr><tr> <td>storage_box_name</td> <td></td> </tr><tr> <td>storage_box_size</td> <td></td> </tr><tr> <td>storage_user</td> <td></td> </tr><tr> <td>storage_position</td> <td></td> </tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "<pybis.pybis.PropertyHolder at 0x7faa0c089a20>"
          ]
         },
         "execution_count": 7,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "sample.props"
       ]
      },
      {
       "cell_type": "code",
       "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>identifier</th>\n",
           "      <th>permId</th>\n",
           "      <th>experiment</th>\n",
           "      <th>sample_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>/MATERIALS/FLY43</td>\n",
           "      <td>20170104000802333-404</td>\n",
           "      <td>/MATERIALS/YEASTS/MY_EXPERIMENT007</td>\n",
           "      <td>FLY</td>\n",
           "      <td></td>\n",
           "      <td>2017-01-04 00:08:02</td>\n",
           "      <td></td>\n",
           "      <td>2017-01-04 00:08:47</td>\n",
           "    </tr>\n",
           "  </tbody>\n",
           "</table>\n",
           "</div>"
          ],
          "text/plain": [
           "<pybis.pybis.Things at 0x7faa0c0de940>"
          ]
         },
         "execution_count": 8,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "sample.get_parents()"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 65,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "ename": "NameError",
         "evalue": "name 'sample' is not defined",
         "output_type": "error",
         "traceback": [
          "\u001b[1;31m\u001b[0m",
          "\u001b[1;31mNameError\u001b[0mTraceback (most recent call last)",
          "\u001b[1;32m<ipython-input-65-066328cddbd3>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0msample\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_datasets\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
          "\u001b[1;31mNameError\u001b[0m: name 'sample' is not defined"
         ]
        }
       ],
       "source": [
        "sample.get_datasets()"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 14,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "Files downloaded to: localhost/20170104003608559-406\n"
         ]
        }
       ],
       "source": [
        "sample.get_datasets()[0].download()"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 16,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "localhost/20170104003608559-406\r\n",
          "localhost/20170104003608559-406/original\r\n",
          "localhost/20170104003608559-406/original/jupyter_useage_lab.zip\r\n"
         ]
        }
       ],
       "source": [
        "!find localhost/20170104003608559-406"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 19,
       "metadata": {
        "collapsed": true
       },
       "outputs": [],
       "source": [
        "s_up = o.get_sample('/VERMEUL/MY_WONDERFUL_SAMPLE_NAME')"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 20,
       "metadata": {
        "collapsed": true
       },
       "outputs": [],
       "source": [
        "s_up.space = 'ANOTHER_SPACE_NAME'"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 21,
       "metadata": {
        "collapsed": true
       },
       "outputs": [],
       "source": [
        "s_up.tags = ['one', 'two', 'three']"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 22,
    
    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>identifier</td> <td>/VERMEUL/MY_WONDERFUL_SAMPLE_NAME</td> </tr><tr> <td>permId</td> <td>20160720225637704-262</td> </tr><tr> <td>code</td> <td>MY_WONDERFUL_SAMPLE_NAME</td> </tr><tr> <td>type</td> <td>UNKNOWN</td> </tr><tr> <td>space</td> <td>ANOTHER_SPACE_NAME</td> </tr><tr> <td>project</td> <td>None</td> </tr><tr> <td>experiment</td> <td></td> </tr><tr> <td>parents</td> <td>[]</td> </tr><tr> <td>children</td> <td>[]</td> </tr><tr> <td>tags</td> <td>['one', 'two', 'three']</td> </tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "<pybis.pybis.Sample at 0x7efe60915668>"
          ]
         },
         "execution_count": 22,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "s_up"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 23,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "Sample successfully updated\n"
         ]
        }
       ],
       "source": [
        "s_up.save()"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "### create a new sample"
       ]
      },
      {
       "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)"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 6,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "metadata": {},
    
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "Experiment\n"
         ]
        },
        {
         "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>YEAST_COLLECTION_1</td> </tr><tr> <td>permId</td> <td>20160624054739283-9</td> </tr><tr> <td>identifier</td> <td>/MATERIALS/YEASTS/YEAST_COLLECTION_1</td> </tr><tr> <td>type</td> <td>MATERIALS</td> </tr><tr> <td>space</td> <td></td> </tr><tr> <td>project</td> <td>/MATERIALS/YEASTS</td> </tr><tr> <td>tags</td> <td>[]</td> </tr><tr><td>attachments</td><td></td></tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "<pybis.pybis.Experiment at 0x7f56f2f17b38>"
          ]
         },
         "execution_count": 6,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "o.get_experiments()[31]"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "to create a new sample, the sampletype must be specified"
       ]
      },
      {
       "cell_type": "code",
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "execution_count": 7,
       "metadata": {},
       "outputs": [],
       "source": [
        "s_new = o.new_sample(type='YEAST', space='VERMEUL', parents=['/VERMEUL/BLAJLSD'])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 10,
       "metadata": {},
    
       "outputs": [],
       "source": [
        "s_new = o.new_sample(type='YEAST', space='VERMEUL')"
       ]
      },
      {
       "cell_type": "code",
    
    Swen Vermeul's avatar
    Swen Vermeul committed
       "execution_count": 11,
       "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></td> </tr><tr> <td>permId</td> <td></td> </tr><tr> <td>identifier</td> <td></td> </tr><tr> <td>type</td> <td>YEAST</td> </tr><tr> <td>project</td> <td></td> </tr><tr> <td>parents</td> <td></td> </tr><tr> <td>children</td> <td></td> </tr><tr> <td>components</td> <td></td> </tr><tr> <td>space</td> <td>VERMEUL</td> </tr><tr> <td>experiment</td> <td></td> </tr><tr> <td>tags</td> <td>[]</td> </tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "attribute    value\n",
           "-----------  -------\n",
           "code\n",
           "permId\n",
           "identifier\n",
           "type         YEAST\n",
           "project\n",
           "parents\n",
           "children\n",
           "components\n",
           "space        VERMEUL\n",
           "experiment\n",
           "tags         []"
          ]
         },
         "execution_count": 11,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "s_new"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 12,
       "metadata": {},
       "outputs": [],
       "source": [
        "s_new.add_parents('/VERMEUL/BLAJLSD')"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 13,
       "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></td> </tr><tr> <td>permId</td> <td></td> </tr><tr> <td>identifier</td> <td></td> </tr><tr> <td>type</td> <td>YEAST</td> </tr><tr> <td>project</td> <td></td> </tr><tr> <td>parents</td> <td>['/VERMEUL/BLAJLSD']</td> </tr><tr> <td>children</td> <td></td> </tr><tr> <td>components</td> <td></td> </tr><tr> <td>space</td> <td>VERMEUL</td> </tr><tr> <td>experiment</td> <td></td> </tr><tr> <td>tags</td> <td>[]</td> </tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "attribute    value\n",
           "-----------  --------------------\n",
           "code\n",
           "permId\n",
           "identifier\n",
           "type         YEAST\n",
           "project\n",
           "parents      ['/VERMEUL/BLAJLSD']\n",
           "children\n",
           "components\n",
           "space        VERMEUL\n",
           "experiment\n",
           "tags         []"
          ]
         },
         "execution_count": 13,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "s_new"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 45,
       "metadata": {},
       "outputs": [],
       "source": [
        "s_new.get_parents()"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 33,
       "metadata": {},
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "Sample successfully created.\n"
         ]
        },
        {
         "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>YEA86</td> </tr><tr> <td>permId</td> <td>20180926000051715-743</td> </tr><tr> <td>identifier</td> <td>/VERMEUL/YEA86</td> </tr><tr> <td>type</td> <td>YEAST</td> </tr><tr> <td>project</td> <td></td> </tr><tr> <td>parents</td> <td>[]</td> </tr><tr> <td>children</td> <td>[]</td> </tr><tr> <td>components</td> <td>[]</td> </tr><tr> <td>space</td> <td>VERMEUL</td> </tr><tr> <td>experiment</td> <td></td> </tr><tr> <td>tags</td> <td>[]</td> </tr><tr><td>attachments</td><td></td></tr>\n",
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
           "attribute    value\n",
           "-----------  ---------------------\n",
           "code         YEA86\n",
           "permId       20180926000051715-743\n",
           "identifier   /VERMEUL/YEA86\n",
           "type         YEAST\n",
           "project\n",
           "parents      []\n",
           "children     []\n",
           "components   []\n",
           "space        VERMEUL\n",
           "experiment\n",
           "tags         []"
          ]
         },
         "execution_count": 33,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "s_new.save()"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 36,
       "metadata": {},
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "Sample 20180926000051715-743 successfully deleted.\n"
         ]
        }
       ],
       "source": [
        "s_new.delete('dfd')"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 6,
       "metadata": {},
    
    Swen Vermeul's avatar
    Swen Vermeul committed
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "Sample successfully created.\n"
         ]
        },
    
        {
         "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",
    
    Swen Vermeul's avatar
    Swen Vermeul committed
           "        <tr> <td>code</td> <td>YEA85</td> </tr><tr> <td>permId</td> <td>20180925234950217-726</td> </tr><tr> <td>identifier</td> <td>/VERMEUL/YEA85</td> </tr><tr> <td>type</td> <td>YEAST</td> </tr><tr> <td>project</td> <td></td> </tr><tr> <td>parents</td> <td>[]</td> </tr><tr> <td>children</td> <td>[]</td> </tr><tr> <td>components</td> <td>[]</td> </tr><tr> <td>space</td> <td>VERMEUL</td> </tr><tr> <td>experiment</td> <td></td> </tr><tr> <td>tags</td> <td>[]</td> </tr><tr><td>attachments</td><td></td></tr>\n",
    
           "            </tbody>\n",
           "            </table>\n",
           "        "
          ],
          "text/plain": [
    
    Swen Vermeul's avatar
    Swen Vermeul committed
           "attribute    value\n",
           "-----------  ---------------------\n",
           "code         YEA85\n",
           "permId       20180925234950217-726\n",
           "identifier   /VERMEUL/YEA85\n",
           "type         YEAST\n",
           "project\n",
           "parents      []\n",
           "children     []\n",
           "components   []\n",
           "space        VERMEUL\n",
           "experiment\n",
           "tags         []"
          ]
         },
         "execution_count": 6,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "s_new.save()"
       ]