Team:City of London UK/Software




Previous teams have created tools to automate design of toehold switches. However, a key aspect of any diagnostic tools is the accuracy of disease detection. To solve this issue, we designed the first ever software tool to facilitate understanding of and quantify the target RNA specificity of toehold switches.

With over 2000 downloads on the Python Package Index, ToeholdTools is extensively documented and easy to use. It is shipped with the current copy of miRBase (the comprehensive miRNA database) so that any team wishing to test toehold switches for specificity to miRNA biomarkers can do so offline. For users who do not need full configurability and are more comfortable using a graphical user interface, we provide a standalone app which also works fully offline.


The following are features of our toehold tools package:

  • An easy-to-use programmatic API for investigating the target RNA specificity of toehold switches.
  • Complete documented and permanently hosted online here.
  • A desktop app complete with a graphical user interface for users who prioritise ease over configuration.
  • Full offline support in both the desktop app and the API, with offline support for the latest release of miRBase as well.
  • Progress–tracking support in both the desktop app and the API.
  • Type hints and/or stubs are present for all public names in the API to facilitate ease of writing code.
  • High performance—written in Cython and utilizing multiprocessing. On a four core CPU with default settings you can test a toehold switch at a certain temperature with all 2656 miRNAs in miRBase in under two minutes.

For more information please check the full documentation .

How it works

At the core of ToeholdTools is the idea of testing how specific your toehold switch is to the target RNA. This is essential if you aim to use the switch in any kind of diagnostic test! To do so, we simulate how the switch will behave when in solution with each RNA from a large database of RNAs.

Each RNA will form a set of complexes with the toehold switch, each complex having its own concentration. Using Boltzmann sampling, we calculate the probability of each complex being unfolded in a way that permits translation (“activating” the toehold switch) and hence we weight each complex’s overall probability with its concentration to generate an overall activation level with the RNA.

This results in a table of the activation level of the toehold switch with each RNA strand, and hence we can calculate the specificity of the toehold switch across the entire RNA dataset by the following expression. Let a be the target RNA (we assume that the highest activating RNA is the target in most cases) and b be the RNA with the highest activation level in the set of all RNAs in the database which are not a (i.e., the RNA with the second highest activation level). Defining S as the specificity percentage:

\[S = \frac{\mathbb {P} (a) - \mathbb {P} (b)}{\mathbb {P} (a)} \times 100\% \]

The switch activation model

Placeholder image

In order to calculate the specificity of the toehold switch we needed a way to quantify its relative activation level by its structure. After speaking with Alexander Green we learnt that the most important requirements for a toehold switch’s activation are both the ribosome binding site and the start codon being completely unpaired, while the linker region after the start codon should no longer be part of that hairpin archetypal of an unactivated toehold switch (i.e., no base in the region after the start codon should be bound to any base in or before the start codon).

Niles Pierce and Mark Fornace from the NUPACK team informed us that the most accurate way to get a representation of a toehold switch’s secondary structure was not by the possible structure with the lower mean free energy (MFE)—like all previous iGEM teams using toehold switches have done—but rather by sampling from the Boltzmann distribution of secondary structures using a Boltzmann sampler. This method has the added bonus of being faster and more configurable than the MFE method.

Applications in our project

We used our software to guide us throughout the switch design process. It was able to confirm the information that Alexander Green told us about how using an anti-miRNA in our first generation of switches actually had the opposite effect to intended by reducing the specificity to the target RNAs. The following graphs demonstrate this effect (CRT is an acronym for CelsiusRangeTest, the class in our Python library responsible for drawing these graphs):

Placeholder image
First generation switch for hsa-miR-517-5p (using an anti-miRNA)
Placeholder image
Second generation switch for hsa-miR-517-5p (without using an anti-miRNA)

Although switch activation levels were high in both, the first generation switch lacked specificity to the target RNA in the desired usage temperature range. We also used our software package to contribute to previous teams’ toehold switches—please see our contributions page for a detailed summary of what we accomplished.