We Use ‘Version Control’ for Synthetic Biology at The Foundry. Here’s Why You Should Too
- Posted on 2 June, 2016
David McClymont, Automation Manager, @dmcclymo
While writing my PhD thesis, I worried about keeping backups of that special file, Thesis.doc. What if I decided a paragraph I’d deleted in a moment of misguided inspiration was fantastic, and I wanted it back? What if I wanted to experiment? The old versions of my writing would be gone.
Drawing inspiration from programming
I knew there must be a solution. Fortunately, I also knew about version control systems used in the programming world. These systems (typically called GIT or SVN) are a database repository for an entire project. Rather than have a directory on their server containing every project file, these systems allow a programmer to ‘commit’ new versions of their program to the repository with notes explaining the changes and additions.
The repository allows the user to ‘go back in time’ to examine changes to the project and, if they wish, revert back to an earlier version. In addition, the database allows several independent versions of the project to be created, and worked on separately, so that wholesale changes can be tested without affecting the main code in any way.
Applying version control to our Foundry
I thought about my PhD backup worries as we developed SynbiCITE’s ‘Foundry’, our suite of state-of-the-art robotics for prototyping biologically-based drugs, chemicals and materials. The tip-based liquid handlers, which form a core part of The Foundry, use automation protocols to process microplates that are similar in many ways to a software developer’s code.
With great success, we use version control systems throughout automation development at The Foundry. We can see how a protocol was developed and revert to any version we wish; we can branch off and work on features that could potentially break the system, changes by other users are always logged (and can be reverted), and we have automatic off-site backup using the GitHub cloud. But, better yet, by using the database repository we never see confusingly-named and bizarre files with no idea if problematic changes have been made.
Using this system, multiple programmers can work on the same protocol and, via the ‘commit comments’ function, see what each other have done. At Imperial, we have distributed CyBio FeliX liquid-handling units throughout the university, and – thanks to our version control systems - scientists can work on different instruments, but using the same code base via the GitHub server. None of this would be possible in the days of emailing various versions of files around.
Our learning, your protocols
Here at The Foundry, we’ve had enormous success using version control in synthetic biology. So, if you’re an automation programmer wondering what is ‘goldengatev7old_JL.HSL’, why not try it for yourself? See how programming tools can help develop your protocols faster, better and more efficiently.
Share this article: