Giter VIP home page Giter VIP logo

mt_dna_as_storage's Introduction

Master Thesis: Coding for DNA as a Storage

The repository is dedicated to the master thesis. This version of a repository is not accurate and a mere draft. Some scribbles of software are assembled and simulated. Here is full thesis for a @download.

Description

The empirical analysis was conducted on toy-parametered example - where parameters were assumed to be proportional to real- world parameters. A thesis serves as a comprehensive guide for communication specialists or bioinformaticians on basics of DNA as a storage. This repository serves as a scribble of the ideas put together and a simulation based on randomly generated data. Data is generated by a code itself and fed to the simulator - WorkflowHelper.

Getting Started

Installing

Just download zip or clone to local directory and try to run workflow.py or tests.py depending on the version, using python3. If it asks for dependencies simply install them or if you do not want to overcrowd your PC with the third party stuff, simply use @venv.

Documentation

In course of the thesis, extensive simulation of DNA as storage system was developed. It is worth mentioning that mentioned below codes were developed by author of thesis. In chapter four, we briefly introduced the way codes are organized. The appendix covers the functionality of methods and attributes in the listings format and provides documentation of codes attached to the thesis.

ecc package

There are two classes in error control codes package: Encoder and Detector (since the Channel involves biological facets, it is located in helpers package). Each of those classes has corresponding methods that serve a specific purpose designed for tasks from error control codes. There are more files but they are scribbles.

bioinformatics package

There are two classes in bioinformatics package: Synthesizer and Sequencer. Each of those classes has corresponding methods that serve a specific purpose in bioinformatics. There are more files but they are scribbles.

interfaces

There are four files in interfaces package: Channel, mapper.py, math_helpers.py and F_Four. Channel and F_Four are classes; math helper.py and mapper are simply a collection of methods. Channel contains methods that simulate errors that occur during sequencing and distorts reads correspondingly. F_Four is a class aimed to simulate F4 by overriding standard operators (plus, minus, multiply, divide, and equals). The file mapper.py is a python script that contains two methods to map A,C,T,G < โˆ’ > 0,1,2,3. The file math_helpers contains methods necessary for performing sophisticated mathematical operations.

workflowmanager.py

WorkflowManager is a python class aimed to collect the system and execute operations by collecting all the components together. The class has eight methods that correspond to steps from DNA as a storage schema.

Author

M.Sc. Fikrat Talibli

If any interest appears in cleaner code, subsequent versions used in thesis or possible collaboration please do not hesitate to contact me.

Version History

  • 0.1
    • Initial Release

mt_dna_as_storage's People

Contributors

feeka avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.