Synthetic biology, as with many projects, gets complex quickly and could be improved through the use of versioning systems. SBOL currently supports versioning of designs, but not constructs. Further, the versioning for synthetic biology needs to track provenance and contextual information. But how do we approach versioning in biological systems? In biology, branching tends to be how its done (constructing in parallel). Feature branches are much more the rule in biology than successive commits.
Variant Control is based on phylogenetic analysis of DNA sequences. (Scoring matrix -> multiple sequence alignment -> pairwise distance matrix -> phylogenetic tree). In Variant Control, the composition of genetic circuits are encoded as sequences. Then you can do a MSA on these sequences of circuits, performing a parts-based phylogenetic analysis. From this, you get a tree of variants.
Next, add semantic annotations to score the alignments. Going up the hierarchy to reach a common SO term creates a penalty score. Variant control clusters similar designs by both sequence and functional similarity (e.g. repressors together).
Please note that this post is merely my notes on the presentation. I may have made mistakes: these notes are not guaranteed to be correct. Unless explicitly stated, they represent neither my opinions nor the opinions of my employers. Any errors you can assume to be mine and not the speaker’s. I’m happy to correct any errors you may spot – just let me know!