Simulation Engine

DNAssim

While Encoding and Decoding can be described by a set of equations, errors are not deterministic in nature, and must be modeled. Both Encoding and Decoding can be optimized if tailored to a specific noise model (i.e. a particular Synthesis/Sequencing technology). Because of the intrinsic statistical behavior of the noise, a simulator is required for figuring out the (non-linear) impact of different algorithms and strategies on the storage properties of synthetic DNA (especially, reliability): this is exactly what DNAssim (DNA storage simulator) does. 

Simulation tool
Simulation tool

Simulation Control Panel

DNAssim is a completely customizable simulator for vetting the impact of different encoding and decoding strategies, starting from a custom-defined noise model. A comprehensive Control Panel helps users to define each parameter of the simulation, thus enabling a full design exploration of the entire DNA storing process.  

Full integration with MongoDB®

Identifying the right Encoding/Decoding (or CODEC) strategy requires a huge amount of simulations, which must then be compared in terms of correction performances, computing power, complexity, etc.

As such, DNAssim is coupled to a MongoDB® database where all the relevant input/output simulations parameters are stored.

In this way, by simply querying the database, designers can easily retrieve the simulation results, thus enabling fast, efficient and sophisticated data analyses.

Hardware/Software Co-Simulations

DNAssim enables a full design exploration of the Synthesis and Sequencing technologies in the context of storing digital information inside a DNA string. Because of the number and complexity of the steps involved in the DNA storing process, the number of simulations is huge and a “pure software” simulator can easily run out of gas. To overcome this limitation, at DNAalgo we developed a custom co-simulation (i.e. mix of hardware and software) platform: when functions are too slow in software, a team of senior hardware designers implement them into a piece of hardware, thus boosting the overall simulation speed.

Acceleration through PCIe

PCIe-attached hardware is used to accelerate simulations. FPGAs (Field Programmable Gate Arrays) and GPUs (Graphics Processing Units) are great examples of high performance cards using the PCIe interface to communicate to the host PC/workstation/server. FPGAs and GPUs can co-exist in the same platform and they can both be instantiated multiple times.

FPGA or GPU? It depends on the specific computing function that needs to be accelerated (a deep dive on the associated math is definitely required). 

“Information is the resolution of uncertainty”

Claude Shannon