Welcome to Jpeg DNA’s documentation!

The algorithm

This package contains an implementation of the Jpeg DNA algorithm originally developped in MatLab. The software can be found on Jpeg_DNA_Python’s github. It is inspired by the classic Jpeg algorithm, but the goal of Jpeg DNA’s algorithm is not to compress data into a normal binary file but into a quaternary file adapted to DNA data storage.

To this end, the encoding aspect of the algorithm has to respect some rules linked to biological constraints of DNA molecules and technical constraints of the synthetisation and sequencing of those DNA molecules. Some words or some patterns have been forbidden during encoding as a convention, because those patterns are more error prone than the regular ones. This means that the encoding part of the Jpeg DNA algorithm is based on an incomplete quaternary code. An in-depth description of the algorithm can be found in the jpegdna_algorithm section.

Implementation

The algorithm has been implemented in the most modular way possible, so that anyone can experiment with the compoenents of the alogorithm, adjust parameters, use different coding alogorithm, develop new ones.

To this end, we have developped a collection of coders that all follow the same functionning mechanisms. The same kind of development has been used for transforms. You can find an explanation of this in the jpegdna_implementation section.

Usage

In the section jpegdna_usage, you will find a short explanation on how to use the compression and decompression scripts.