Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.


[![Documentation Status](https://readthedocs.org/projects/microdrop/badge/?version=dev)](http://microdrop.readthedocs.io/en/dev/?badge=dev)
[![Join the chat at https://gitter.im/wheeler-microfluidics/microdrop](https://badges.gitter.im/wheeler-microfluidics/microdrop.svg)](https://gitter.im/wheeler-microfluidics/microdrop?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

MicroDrop is a graphical user interface for the [DropBot][1] digital
microfluidics control system (described in detail in [Fobel et al., Appl. Phys.
Lett. 102, 193513 (2013)][2]).

If you use this information in work that you publish, please cite as
appropriate.

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*

- [Installation](#installation)
- [No existing Python 2.7 32-bit Windows installation **(recommended)**](#no-existing-python-27-32-bit-windows-installation-recommended)
- [Existing `anaconda` (Python 2.7 32-bit Windows) installation **(recommended)**](#existing-anaconda-python-27-32-bit-windows-installation-recommended)
- [Create a separate `conda` environment for MicroDrop](#create-a-separate-conda-environment-for-microdrop)
- [Other Python 2.7 32-bit Windows installation (using `pip`, **not recommended**)](#other-python-27-32-bit-windows-installation-using-pip-not-recommended)
- [**Shortcuts**](#shortcuts)
- [**Import** profile](#import-profile)
- [Profile Manager **(new)**](#profile-manager-new)
- [Import profile](#import-profile)
- [Remove profile](#remove-profile)
- [Install plugins](#install-plugins)
- [Featured plugins](#featured-plugins)
- [Install plugins through MicroDrop plugin manager (`mpm`)](#install-plugins-through-microdrop-plugin-manager-mpm)
- [Install plugins through MicroDrop GUI](#install-plugins-through-microdrop-gui)
- [Credits](#credits)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# Installation #

MicroDrop can be installed using any of the methods below.

### No existing Python 2.7 32-bit Windows installation **(recommended)** ###

Download installer for latest [MicroDrop 2.0 release][4].

This installer is a customized distribution of the popular [`Miniconda`][5]
Python.


### Existing `anaconda` (Python 2.7 32-bit Windows) installation **(recommended)** ###

Run:

conda install -c wheeler-microfluidics "microdrop>=2.0,<3.0" microdrop-launcher dmf-device-ui

**Note** *the `-c wheeler-microfluidics` flag allows installing conda packages
from the `wheeler-microfluidics` channel*.


### Create a separate `conda` environment for MicroDrop ###

Run:

conda create -n microdrop -c wheeler-microfluidics "microdrop>=2.0,<3.0" microdrop-launcher dmf-device-ui

To activate the MicroDrop `conda` environment, run:

activate microdrop

To deactivate the MicroDrop `conda` environment, run:

deactivate

See ["Managing environments"][15] section of Conda documentation for more
information.


### Other Python 2.7 32-bit Windows installation (using `pip`, **not recommended**) ###

1. Update `pip`:

pip install -U pip

2. Install microdrop (find latest version number on [PyPi][3], e.g.,
`"2.0.post110.dev156674653"`):

pip install --find-links http://192.99.4.95/wheels --trusted-host 192.99.4.95 <microdrop version> microdrop-launcher dmf-device-ui

**Note** *`192.99.4.95` is the IP address of the official MicroDrop update
server where MicroDrop dependencies not available on PyPI are stored as
wheels*.

<img align="right" src="microdrop/static/images/microdrop-shortcuts.png" />

## **Shortcuts** ##

If MicroDrop is installed using a Conda Python distribution (including the [official installer][1])

- **Documentation**: Open [online MicroDrop documentation][readthedocs].
- **GitHub project**: Open MicroDrop [GitHub project page][github].
- **MicroDrop Profile Manager**: Launch MicroDrop profile manager.
- **MicroDrop environment prompt**: Launch Windows command prompt with
MicroDrop Conda environment activated.
- **MicroDrop**: Launch MicroDrop if only one **profile** is available
*(default)*. Otherwise, launch **MicroDrop Profile Manager** to select
**profile** to launch.
* **Tip**: Right-click on shortcut to **pin** to **taskbar** for easy
access.

## **Import** profile ##

If existing **profile** directory is not automatically found, it can be
manually **imported** by launching the **"MicroDrop Profile Manager"**
shortcut.

See [Profile Manager](#profile-manager-new) section below.

# Profile Manager **(new)** #

In environments where, for example, multiple users are using the same computer
to perform MicroDrop experiments, it can be helpful to create separate
MicroDrop **profiles**. Each MicroDrop **profile** contains **devices** and
**plugins**, as well as **experiment logs**.

The **MicroDrop Profile Manager** provides an interface to manage one or more
MicroDrop profiles. Initially, the **default profile path** (i.e.,
`<Documents>\Microdrop`) is listed.

As shown below:

- Profiles are **listed** according when they were last launched, with the
**most recently used profile first**.
- Existing profiles may be **imported**.
- Listed profiles may be **removed** from the profile list (and optionally
**deleted** entirely).
- Listed profiles may be **opened** in the system file browser.
- MicroDrop may be **launched** using any of the listed profiles.

![MicroDrop Profile Manager][microdrop-profile-manager]


## Import profile ##

When an existing **profile** is imported, **plugin** dependencies are installed
while the following dialog is displayed:

![MicroDrop Profile Manager - install dependencies][install-dependencies]

## Remove profile ##

The following **dialog** is displayed when the **Remove** button for a listed
profile is **clicked**:

![MicroDrop Profile Manager - remove profile][remove-profile]

Clicking the **Remove** button in the dialog removes the corresponding
**profile** from the list, but **does not** delete any files. The **profile**
can be imported to add it back to the profile list.

**Warning:** Clicking the **Remove with data** button in the dialog removes the
corresponding **profile** from the list, **and deletes the profile directory**.
This **cannot be undone**.


# Install plugins #

Plugins can either be installed using the [MicroDrop plugin
manager](#install-plugins-through-microdrop-plugin-manager-mpm) command-line
tool, or through the [MicroDrop user
interface](#install-plugins-through-microdrop-gui).

### Featured plugins ###

- [`device_quality_control_plugin`][6]:
* Perform impedance scan across all channels on microfluidics chip.
* Can be used to identify suspected broken electrode traces.
* **Requires `dmf_control_board_plugin`**.
- [`dmf_control_board_plugin`][7]
* Control actuation parameters for the [DropBot][12] open-source Digital
Microfluidic (DMF) automation system.
- [`dmf_device_ui_plugin`][8]
* Displays interactive DMF chip geometry.
* Optional augmented reality interface, where device drawing is overlaid
on live webcam video feed.
- [**`droplet_planning_plugin`**][13]
* Click and drag mouse over series of electrodes to create a route.
* Hold <kbd>Alt</kbd>, click on source electrode, and drag to target
electrode to automatically route between electrodes.
* Finish route at starting point to form a cycle that may be repeated
(i.e., mixing) either:
- A set number of repetitions
- A time duration
- [`step_label_plugin`][10]
* Optionally add text label to any step in protocol.
* Most recent and next upcoming labelled steps are indicated while running
protocol.
- [`user_prompt_plugin`][11]
* Add (optional) user prompt for each step in protocol (e.g., "Confirm
sample is loaded.")
* Protocol execution is paused until user confirms **OK** to proceed.
* If user selects `Cancel`, protocol is stopped.

### Install plugins through MicroDrop plugin manager (`mpm`) ###

The Microdrop plugin manager is a command-line tool (inspired by `pip`) for
managing (e.g., install, uninstall) Microdrop plugins.

For full usage details, see the [project home page][14].

Basic usage to install a plugin:

- Start MicroDrop environment command prompt using the following shortcut:

![][microdrop-environment-shortcut]

- In MicroDrop environment command prompt, run:

python -m mpm -c <microdrop settings directory>\microdrop.ini install plugin [plugin [plugin ...]]

To install featured plugins:

python -m mpm -c <microdrop settings directory>\microdrop.ini install dmf_control_board_plugin dmf_device_ui_plugin droplet_planning_plugin user_prompt_plugin step_label_plugin

### Install plugins through MicroDrop GUI ###

1. Install plugins:

![Install MicroDrop plugins][install-plugins]

2. Relaunch MicroDrop.


[1]: http://microfluidics.utoronto.ca/microdrop
[2]: http://dx.doi.org/10.1063/1.4807118
[3]: https://pypi.python.org/pypi/microdrop
[4]: https://github.com/wheeler-microfluidics/microdrop/releases/latest
[5]: http://conda.pydata.org/miniconda.html
[6]: https://github.com/wheeler-microfluidics/device-quality-control-plugin
[7]: https://github.com/wheeler-microfluidics/dmf_control_board_plugin
[8]: https://github.com/wheeler-microfluidics/dmf_device_ui_plugin
[9]: https://github.com/wheeler-microfluidics/metadata_plugin
[10]: https://github.com/wheeler-microfluidics/step_label_plugin
[11]: https://github.com/wheeler-microfluidics/user_prompt_plugin
[12]: http://microfluidics.utoronto.ca/dropbot/
[13]: https://github.com/wheeler-microfluidics/droplet-planning-plugin
[14]: https://github.com/wheeler-microfluidics/mpm
[15]: http://conda.pydata.org/docs/using/envs.html

[github]: https://github.com/wheeler-microfluidics/microdrop/tree/release-1.0
[readthedocs]: http://microdrop.readthedocs.io/
[install-plugins]: microdrop/static/images/plugins-install.gif
[microdrop-environment-shortcut]: microdrop/static/images/microdrop-environment-shortcut.png
[microdrop-profile-manager]: microdrop/static/images/microdrop-plugin-manager-annotated.png
[install-dependencies]: microdrop/static/images/plugin-manager-install-dependencies.png
[remove-profile]: microdrop/static/images/plugin-manager-remove.png

Credits
=======

Ryan Fobel <ryan@fobel.net>

Christian Fobel <christian@fobel.net>

Release files for microdrop 2.0.post112.dev147002977

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for microdrop 2.0.post112.dev147002977
File Size Uploaded
microdrop-2.0.post112.dev147002977.tar.gz 1.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for microdrop 2.0.post112.dev147002977
File Interpreter ABI Platform
microdrop-2.0.post112.dev147002977-py2-none-any.whl Python 2 none any Details

Total release size: 2.8 MB

Release files / microdrop-2.0.post112.dev147002977.tar.gz

Download URL microdrop-2.0.post112.dev147002977.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
92f53243e571bd4a14198d1cdb348512fa3abe61901f34b7cb0c0be432039136
BLAKE2b-256 checksum
How to use checksums
4ead00ae60326916c6b6242e13077f7f68cbe666c7942c1c72ccc2a6aa61cce9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / microdrop-2.0.post112.dev147002977-py2-none-any.whl

Download URL microdrop-2.0.post112.dev147002977-py2-none-any.whl
Size 1.4 MB
Tags Python 2
SHA-256 checksum
How to use checksums
31753afbd2f76932150354f9a328e229d48d7ac6dafd6998d8ead1bfc1d62315
BLAKE2b-256 checksum
How to use checksums
ca97149cca7d51263b16f0bb21dd57c0f4abe0e5d6ca1130a769beec95d8abb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page