Skip to content
/ dnastore Public

Software for error-tolerant coding of information into DNA sequences using finite-state transducers.

License

Notifications You must be signed in to change notification settings

ihh/dnastore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DNAstore

Software for error-tolerant coding of information into DNA sequences using finite-state transducers.

For license, please see LICENSE.txt

To build:

make dnastore
make test

I have built using Apple LLVM version 7.3.0 (clang-703.0.31). You will also need Boost: http://www.boost.org/

Description of method is in doc/ directory:

cd doc
make
open trans.ps

The tests include a few examples.

To generate a code transducer with 4 nucleotides of context (this will avoid all homopolymer and dinucleotide repeats):

bin/dnastore -l 4

To encode the string "Hello World!" in DNA using this transducer:

bin/dnastore -l 4 -E "Hello World!" > HelloWorld.fasta

To decode this DNA:

bin/dnastore -l 4 -d HelloWorld.fasta

To construct a composite machine using the MIXRADAR6 block code for mixed-radix conversion:

bin/dnastore -l 4 --compose-machine data/flusher.json  --compose-machine data/mixradar6.json --save-machine mixradar6-dnastore4.json

(The flusher.json file describes an outer transducer that automatically flushes MIXRADAR6 whenever the end of the file is reached.)

To encode and decode using this transducer:

bin/dnastore --load-machine mixradar6-dnastore4.json -E "Hello World!" >HelloWorld46.fasta
bin/dnastore --load-machine mixradar6-dnastore4.json -d HelloWorld46.fasta

To use Viterbi decoding instead of exact decoding:

bin/dnastore --load-machine mixradar6-dnastore4.json -V HelloWorld46.fasta --error-global

To create a 64-bit watermark synchronization code with 1 watermark bit per signal bit:

bin/dnastore -l 4 --compose-machine data/water64.1.json --save-machine watmark64-dnastore4.json

Strings encoded using this code must be a multiple of 64 bits in length:

bin/dnastore --load-machine watmark64-dnastore4.json -E "Hello World! (192 bits.)" >hw64.fa
bin/dnastore --load-machine watmark64-dnastore4.json -d hw64.fa

For a list of more options:

bin/dnastore -h

You can also look at the script doc/errdecode.pl for examples of usage (this script does a lot of benchmarking).

About

Software for error-tolerant coding of information into DNA sequences using finite-state transducers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published