SIMBA 2.0-Building a Better Bayesian Pipeline for Viral Evolution in the Coronavirus Spike Protein.
Bioinformatics often feels like a balancing act between mathematical rigour and biological reality. When I first developed the SIMBA framework, my goal was simple. I wanted a way to see where a virus was changing most rapidly. However, as any researcher knows, the first version of a tool is rarely the final word.
Recently, I released SIMBA 2.0. This update is not just a cosmetic change but a fundamental shift in how the software “thinks” about the genome.
Moving Beyond the Simple Calculator
In the original version of SIMBA, I relied on the Nei-Gojobori method. It is a foundational approach in molecular evolution, but it carries a significant limitation. It assumes that every mutation is equally likely to occur. In the biological world, this is rarely true.
When we look at the Spike protein, we are looking at one of the most complex pieces of viral machinery. To analyse it properly, I had to move to the HKY85 substitution model . Unlike its predecessor, HKY85 acknowledges that transitions (mutations between similar bases) happen more frequently than transversions. It also accounts for the fact that base frequencies in a viral genome are rarely even.
By making this change, the software became less of a simple calculator and more of a high-fidelity lens.
The Power of the Bayesian Grid
The second major shift was in the statistical engine. SIMBA 2.0 now employs an Empirical Bayesian Grid for its inference.
Get Milton Simba Kambarami’s stories in your inbox
Join Medium for free to get updates from this writer.
In traditional frequentist statistics, you are often looking for a single point of truth. By using a Bayesian approach, the tool learns a “prior” from the dataset itself. It looks at the overall evolutionary signal across the entire gene before deciding how significant the mutations at a specific codon really are.
This is particularly useful when sequences have varying levels of quality. I implemented epsilon-normalisation to ensure that numerical stability is maintained even when the data is sparse. It ensures that the “noise” of sequencing errors does not drown out the “signal” of true positive selection.
Mapping the Functional Terrain
Perhaps the most rewarding part of this build was the visualisation suite. Data is only as good as our ability to interpret it.
I designed the tool to automatically shade functional regions like the Receptor Binding Domain (RBD) and the Receptor Binding Motif (RBM). When you run the pipeline, you don’t just get a table of numbers. You get a “Selection Landscape and Rates.” (Fig 1 and Fig 2). You can see exactly which evolutionary hotspots fall within critical structural areas of the Spike gene.
A Journey in Independent Research
Building SIMBA 2.0 while balancing my role as a science educator in Harare has been a lesson in focus. It has reinforced my belief that we don’t need massive institutional clusters to produce meaningful research tools.
Sometimes, all you need is a deep curiosity about how a virus evolves and a clean Python environment to build the solution.
The project is now open-source on GitHub for anyone interested in exploring the landscape of viral selection.









