Under Construction

This page is still under construction! Check back soon, or subscribe to our newsletter for updates about the 2021 iGEM Competition.


On this page you will find information on: Introduction, Learn Stage Resources, Next Steps.


In the previous Test stage you will have run experiments to test your design(s) and build(s) and generated some data from these experiments. You may also have some idea as to how your data needs to be analysed and presented. In this Learn stage, you will link your experimental data back to your design and complete the first iteration of the DBTL cycle.

The Learn stage is very similar for all types of projects, from wet-lab to computational to hardware. In all cases, you will analyse your data generated during the Test stage and compare it to your design specification from the Design stage. From these comparisons, you can determine if what you have built (whether that is a biological device, a model, a piece of software, or some hardware) lies within the parameters defined by your design specification, and hence determine if you have built what you intended. In many cases, you will find that after the first iteration, what you have built is not optimal for your design. This is where the learn part comes in. Based on the data you have collected, you can create informed decisions as to what needs to be changed in your design, which completes the first iteration of the engineering cycle as you enter the second iteration of the Design stage.

Questions to Consider

The questions below will help you determine how to get the most out of your data and use it to inform the next iteration of the engineering cycle. Some of the questions should already have been answered in previous stages of the cycle.

  • What do you want to learn from your data?
    • Do you want to determine the optimal strength of a promoter in your design? Are you trying to work out what the best dimensions are for your hardware? Maybe you want to know whether end-users find your software tool easy to use? Or are you trying to find parameters for your model?
  • Does your system work as anticipated?
    • If you were testing your design, does it fit within your design specification?
  • What part(s) of the system can be changed?
    • Some parts of your design can’t be changed, either because it isn’t feasible, or because it would go against your design specification. Other parts of your design can be changed. These will be the parts that you should use your data to understand better
  • Can you improve your system? Do you need to?
    • Sometimes your design will work as intended, but maybe not as well as it could. It is an important skill to determine if your system works “good enough”, or if it needs to be improved. Your design specification can help determine this
  • How does your experimental data compare to your model?
    • If you’ve used a model to inform your design,how does your experimental data compare to the data from your model? If there is a large discrepancy, could this be why your system doesn’t work as intended? Can you use your experimental data to learn how to improve your model?
  • How should you analyse and display your data?
    • The way in which you handle your data will determine how much you can learn from it. Depending on the questions you are asking, certain aspects of your data will be more important.
    • The way in which you display your data will also determine how easy it is to spot patterns. Ensure that your data is displayed in the optimal way for the questions you are asking. For example, if you just want to know how a biosensor functions after 2 hours, maybe it’s better to display the data as end-point, rather than as a time course?

Tips to Get Started

The Learn stage can be one of the most difficult stages of the cycle, but if you have designed your experiments well, you should have an idea of what you plan to use the data for. If you are struggling to determine what you need to learn, make a list of anything you are unsure of in your design, along with anything which could be easily changed. Then, when designing your experiments to test your design, ensure that you can measure these aspects of the design. If you are using a model to inform your design, you could also try and generate data to help better parameterise it.

Learn Stage Resources


MATLAB is a programming and numeric computing platform used by millions of engineers and scientists to analyze data, develop algorithms, and create models.

Analyzing and Plotting Data

Presenting your data correctly and well is just as important as good measurement. Below are some tools that can help you analyze your data and create useful plots to explain your results. There is an older but still very pertinent article here on things to consider when plotting your data: "Some Helpful Hints in Preparing Scientific-Quality Plots for Reports by hand or by using Excel." We also recommend teams look at our Exemplary Projects page to see good past iGEM examples. This also has examples of many common graphs and figures, presented in published scientific articles.


Fiji, a distribution of ImageJ, is a powerful, free program that is widely used to explore, process, and analyze fluorescence microscopy data. With a scripting language and a large community of users, plugins exist to meet many image processing and analysis goals, and new extensions of the software can easily be written.

Image from DNAplotlib


Visually integrating graphs of your data with a schematic representation of the parts and circuits which generated that data is an important aspect of scientific communication in synthetic biology. There are many ways to achieve this goal, but for teams with proficiency in the Python programming language, DNAplotlib is an excellent tool developed by the authors of Der and Glassey et al., 2016, ACS Synthetic Biology for this purpose. Even for teams without coding experience, we recommend looking at some of DNAplotlib’s sample graphs as an example of good data visualization practices in synthetic biology.

Image from WebPlotDigitizer


Often, published data (whether in scientific papers or in the BioBrick Registry) exists only in graphical form, which prevents you from being able to make quantitative comparisons between your results and existing work. WebPlotDigitizer, developed by Ankit Rohatgi, is an open-source web-based tool that solves this problem by allowing you to input an image of a graph or plot and returning numerical values for the data depicted in the image. No coding experience is required-- just upload an image, define values along the axes, and click on points within the graph to generate a table of data that you can analyze!

R and R Studio

R studio is a free set of tools designed to let you use the programming language R in an easy and effective way. R is a programming language for statistical computing which can be used to analyse data from your experiments, and plot graphs for use on your wiki. As R is an opensource platform, scripts written to analyse and plot your data can be uploaded to iGEM wikis, which helps others better understand your data and hence more likely to use aspects of your project. A beginners tutorial for R can be found here.

Next Steps

You are now back at the Design stage of the DBTL cycle, and can go around it many times to improve/optimise your design(s) and/or system(s). In most iGEM projects, you may only have enough time or resources to go around this cycle once. In that case, consider what you would do next based on what you have learnt.

Have a resource to contribute?

Please email the Engineering Committee at engineering [AT] igem [DOT] org and provide links to material with a short description. We’ll check it out and if we believe it will be helpful, we’ll add it to this page!