Scientific Python
for Minicubes

Minicube Open-Source Control, Data capture and Analysis


Minicube machines all has an embedded Linux web server ready to answer the user via HTTP commands such as GET, PUT, POST and DELETE. A simple URL send to the machine either sets or gets parameters from the device. This gives the Open-Source user maximum flexibility in controlling, commanding and gathering data from the device for analysis.



Talking to a Minicube device is as easy and opening a URL for a newspaper online.The swagger interface can teach anyone how to do it. The code examples are stored in the online interface and we have provided a range of Jupyter Notebook examples in Scientific Python utilizing the HTTP Rest interface to provide a quick and powerful start.


easy parallel computing

Minicubes are advanced parallel computers, but we have made it easy to control and command them

Run experiments, extract data, and Analyze using the tools we provide here and you will be at the front row to many new exciting applications and techniques. We will continue to provide new tools and hope the community picks up as well


Minicubes are advanced scientific parallel computers with Open-Source control

Easy Web Interface

All examples and run time code is hosted on the machine and can be tried out by simple point, click, run and wait for feedback operations

All Minicube machines has a easy to use “swagger interface” where all commands possible are outlined and can be tried out. The run-time examples that can be directly executed on a running machines are all HTTP commands and the interface grabs the response and feeds it back. Very intuitive and very easy way to get started with commanding a minicube

Flexibility with HTTP interface

The interface on the web server is defined as a RESTfull or abbreviated REST interface. This kind of application interface is common for web servers. The full documentation of the interface can be found on the machines “swagger interface” which is a url that can be addressed when the machine is connected to the network. To address a given machine one needs to know its ID which can be found at the backplate of all minicube devices. The ID of the machines has the format: “minicubepcr-000030” hereto one need to add “local/swagger/?url=/control.json” so the line reads “minicubepcr-000023.local/swagger/?url=/control.json” which brings up the swagger interface where we can try out the examples given and experiment with the different response we get.

Our patented system measures and regulates
temperature of each well 100 times pr. second.

Advanced Plotting the Easy Way

The concept one need to grasp is know as a “dataframe” which basically is a spreadsheet. The module “Pandas” allows to bring a CSV file of data into memory in a format similiar to a spreadsheet.

Once we have the data imported which takes a few lines of code we have a huge range of possibilities to slice our data with looking at a section of end rows (e.g. steady state melting or annealing temps), start rows (for ramp speeds), statistics, baseline subtraction etc.

Below we have added some plots that was generated from the import of temperature data. The first is a distribution samples at the different temperatures. We can see we have a lot of samples at the steady state temperature which is not surprising. Analysis like this can be utilized to reveal methodological errors of our instrumentation.

The next plot is a KDE violin plot showing the normalized two sided noise over the range of sampled temperatures. Maybe not so useful here but plots like this can be utilized to see if our data is skewing towards one side for some reason – again a way to drill methodological errors.

Interacting with a Minicube

Below we illustrate how a temperature stage is analyzed after it has been extracted from the device.

The data are from a single temperature stage and we will plot the extracted temperature time course of heating to melting temperature

We calculate descriptive statics of the steady state temperature and we plot the first derivative of the temperature over time. That plot allows us to find the peak ramp temperature

We use Jupyter Notebook and Scientific Python as programming environment

Open the Jupyter Notebook Example in another tab by clicking here

Next we take the derivative of the imported temperature data and plot the ramping speed over time

We use a peak function from Numpy to find the max peak temp change over time

Jupyter Notebook Pyton Example 

This example imports data from a CSV file extracted from a Minicube PCR machine. The data represents a single temperature stage and temp vs time is plotted and  section of the steady state data at the melting temperature is utilzed for descriptive statistics analysis to show the precision of the temperature control. Secondly, the derivative of the plot is created now showing the temp change over time from which the peak ramping temperature is found.


Minicube Parallel Computer Structure

The picture below illustrates the hardware structure and different software platforms incorporated in this advanced scientific instrument

The structure is build with the aim of providing the researcher a cutting-edge scientific instrument and methods to command it but without the need to understand all the electronic complexity, microprocessor firmware gymnastics and server and control interfaces to run it. It is comparable to driving a car – its complex but you get from A to B and that’s the point

Hello World Tutorial – Coming Soon

Video Tutorial – Coming Soon

Calorimetry Tutorial using Mincube PCR – coming soon