News

Streamlining Biotech Research with Scispot Jupyter Hub: A Comprehensive Guide to Programmatic LIMS and ELN

Post by
Streamlining Biotech Research with Scispot Jupyter Hub: A Comprehensive Guide to Programmatic LIMS and ELN

Dive into the realm of Scispot Jupyter Hub, a pioneering solution that's redefining the way we perceive Laboratory Information Management Systems (LIMS) and Electronic Lab Notebooks (ELN). This game-changing platform, with its unique ability to programmatically automate lab procedures, is setting new benchmarks in the field of computational biology. From executing complex molecular routines to managing sophisticated data, Scispot's Jupyter Hub delivers it all seamlessly. In this article, we'll explore the remarkable features of this platform, illustrating how it optimizes workflows and brings a new level of efficiency to your research. Join us to discover this innovative shift in lab management.

Scispot Jupyter Hub: The Game-Changer in Programmatic LIMS and ELN for Computational Biologists

The future of labs might have seemed like an unattainable utopia at one point. A place where the seamless integration of wet lab and computational workflows is not just a concept, but a reality. Where the limitations of traditional ELN and LIMS systems are things of the past, and programmatically creating an automated lab is not a dream but an achievable goal. This is the promise of Scispot Jupyter Hub.

Think of it not as a stark, impersonal piece of technology, but as a helpful colleague, proficient in Python and ready to streamline your data. Scispot is like a trusted team member who brings all your research tools under one roof.

Scispot of the best modern tech stack with GxP compliance software for R&D

Scispot Jupyter Hub in Action: Real-World Use Cases Revolutionizing Lab Management

Are you working on intricate molecular biology workflows? With Scispot, you can program your DNA construct, primer design, PCR, and GFP reporter assay. It simplifies integrating your lab QC data and allows you to update or modify protocols within your Scispot ELN. Need to bring in data from Benchling, Airtable, or Notion? Scispot makes it a breeze.

Consider a complex, time-consuming task like creating well plates and assigning controls for hundreds of samples. Traditionally, this could be prone to errors and take a large chunk of your valuable time. However, with Scispot's programmatic LIMS, the task becomes simple, fast, and error-free.

Scispot Jupyter Hub is also invaluable when you're handling more complex data manipulations. It can calculate the released drug concentration from standard curves, fill constants in release studies, and transpose absorbances for standard curves. You can run Python preprocessing scripts right in your ELN to streamline and enhance your workflows.

The Scispot Jupyter Hub brings the power of programmatic LIMS and ELN under one roof. It allows you to run scripts either synchronously or asynchronously without leaving the platform. This way, Scispot has created a unified, efficient workflow for computational biologists.

In this blog series, we will take a deep dive into how Scispot Jupyter Hub is revolutionizing programmatic LIMS and ELN. We'll explore how it helps optimize processes, manage workflows effectively, and perform advanced data manipulation tasks.

Scispot OS has built in GxP compliance software with lims validation for your laboratory


Join us on this journey to make your research more efficient and impactful with programmatic LIMS and ELN. The future of computational biology is here, where the convergence of technology and biology is accelerating scientific discovery. Let's explore the full potential of Scispot Jupyter Hub, your next-gen platform for programmatic LIMS and ELN.

We understand that starting a new journey can come with questions. So we have compiled a list of Frequently Asked Questions from our users to help you navigate this new terrain with ease. Your adventure with Scispot JupyterHub awaits!

Navigating Scispot Jupyter Hub: Top FAQs for Computational Biologists

How do I use Scispot's Jupyter Hub to run my python scripts?

Here is a quick video highlighting all Scispot's programmatic features for computational biologists.

How should I create a new executable?

When creating a new executable, make sure to check the script and verify that the number of input fields in the executable match the number of input functions in the script.

How should I create user prompts to pass values into the Python scripts?

To create user prompts for passing values into Python scripts, follow these steps:

1. In the Python script, begin by creating input lines within the notebook. As an example, let's consider the scenario where you need to collect the user's first name and five numbers. Each of these fields will serve as a separate input section.

input(“User’s First Name”)
for i in range(5):
	input(“Number ” + str(i+1))

2. Next, you need to add the input fields to the executable code. To do this, click on the three dots located in the top-right corner of the card and select "Edit Settings." This will open a modal window enabling you to add new input fields.

3. Ensure that the input fields you add correspond to the order of the inputs in your script. This is crucial for proper mapping of the user's input to the correct variables in the script.

How should I create new database (labsheets) entries (rows) using these scripts?

You may utilize the add endpoint in our Labsheets API to add new rows to a labsheet. See the API Documentation for more details. Before creating any new entries, we suggest creating a new Labsheet via GUI in Scispot with the properties or metadata that you need for your specific database. Once your labsheet is successfully created, you can then easily create entries programmatically.

Here is some sample code to get you started:

import json
import requests
API_TOKEN = "[YOUR_API_TOKEN_HERE]"
BASE_LABSHEETS_URL = "https://api.scispot.io/tryingtofixcors"
ADD_ROW_URL = BASE_LABSHEETS_URL + "labsheets/add-rows"
LABSHEET_NAME = "[LABSHEET_NAME_HERE]"
class APIException(Exception):
    def __init__(self, message):
        self.message = message
        super().__init__(self.message)

#Convenient wrapper for add-rows API call
def add_rows(rows, labsheet_name=LABSHEET_NAME, api_token=API_TOKEN):
    payload = {
      "apiKey": api_token,
      "manager": labsheet_name,
      "rows": rows
    }
    res = None
    try:
        ret = requests.post(url=ADD_ROW_URL, json=payload)
        res = json.loads(ret.text)
    except Exception as e:
        raise APIException("An error has occurred while adding rows.")
    if not type(res) is list:
        raise APIException("An error with your configuration has occurred\n" + str(res))
    for row in res:
        if row["success"] == "false":
            raise APIException("An error occurred while adding a row\n" + str(res))
    print("successfully added rows.")

try:
    # Rows are formatted as an array of arrays.
    add_rows([[“example_id”, “example_text”]])
except Exception as e:
    print(e)

How should I create well plates while also specifying which samples go in each position?

You may utilize the create endpoint in our Manifest API to create well plates. See the API Documentation for more details.

Here is a breakdown of how the example payload in the docs is constructed:

import request
MANIFEST_CREATE_URL = “https://api.scispot.io/tryingtofixcors/manifest/create”
payload = {
  # Your API Key goes here
  "apiKey": "12345678-abcd-9012-efgh-345678901234",
  # This is the name of the new manifest you would like to create
  "name": "My Manifest",
  # Use this template manifest
  "template": "My Plate Template",
  "plates": [
    {
      # Use this template manifest
      "template": "My Plate Template",
      # The number of wells in the well plate
      "wells": 96,
      "labsheets": [
        {
          "labsheet": "My Labsheet 01",
          # For each item, we will select the row with id defined
          # by the name field, and insert it into the corresponding well
          # This will also add them to the data tab.
          "items": [
            {
              "name": "item 1",
              "well": "A1"
            },
            {
              "name": "item 1",
              "well": "A2"
            },
            {
              "name": "item 1",
              "well": "A3"
            }
          ]
        },
        {
          "labsheet": "My Labsheet 02",
	    # Items formatted like this will be inserted into the wells in order
          # item A goes to A1, item B goes to A2, etc.
          "items": [
            "item A",
            "item B",
            "item C",
            "item D"
          ]
        }
      ]
    }
  ]
}
# Making request here.
requests.post(url=MANIFEST_CREATE_URL, json=payload)


How should I bring data from Benchling?

Bringing data from Benchling takes a few seconds! Just navigate to GLUE on your Scispot account, and connect using your Benchling API key. Once connected, it will bring all of the data into Scispot platform. You can also schedule the sync from Benchling to Scispot seamlessly. Once the data is sync'd with your Scispot operating system, you can easily run analytics, processing and many more custom functions without leaving Scispot.

In Labsheets (databases), what property types are supported with API?

When adding rows, the following property types are supported:

text, id, number, quantity, list, status, unit, date, checkbox, connection, attached_files, sequence_data, connection (reference)

When updating rows, the following property types are supported:

text, id, number, quantity, list, status, unit, date, checkbox, sequence_data, connection (reference)

My script is erroring, what should I do?

Before asking a developer, be sure to verify that you have filled in the inputs correctly.

My script is taking a long time to run, what is happening?

Some scripts may take a while depending on various factors, such as the task it is performing, connectivity issues, as well as the amount of data being processed.

If the script takes an abnormally long amount of time, you may try rerunning the script.

What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.