{ "info": { "author": "Allan Inocencio de Souza Costa", "author_email": "allaninocencio@yahoo.com.br", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "DNA\n===\n\n.. image:: https://travis-ci.org/allanino/DNA.svg?branch=master\n :target: https://travis-ci.org/allanino/DNA/builds\n\n.. image:: https://landscape.io/github/allanino/DNA/master/landscape.png\n :target: https://landscape.io/github/allanino/DNA/master\n\n.. image:: https://img.shields.io/pypi/v/file2dna.svg\n :target: https://pypi.python.org/pypi/file2dna/\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/l/file2dna.svg\n :target: https://pypi.python.org/pypi/file2dna\n :alt: License\n\n|\n\nThis is a Python script to encode/decode arbitrary computer files into\nDNA sequences. It is a straight implementation of a method published in\n`this`_ Nature\u2019s paper. The details of the method can be found in the\n`Supplementary Information`_ report. Another version of report can be \n`found here`_. The source code organization follows the article steps and \nnomenclature, so it should be easy to understand. \n\nHow to use\n----------\n\nInstall it using pip:\n\n.. code-block:: console\n\n $ sudo pip install file2dna\n\nThe installed script will be called ``dna`` and accepts four types of operations passed as arguments together\nwith the file name:\n\n.. code-block:: console\n\n $ dna -h\n usage: dna [-h] [-e | -s | -d | -j] file\n\n positional arguments:\n file File to be encoded/decoded.\n\n optional arguments:\n -h, --help show this help message and exit\n -e encode file and save it as .dna\n -s encode file and save it as .splitted.zip\n -d decode .dna file and save as .decoded\n -j decode .splitted.zip file and save it as .decoded\n\nAs an example, we can decode one the `files`_ encoded by the authors of\nthe paper. Suppose you have cloned this repo with its examples folder:\n\n.. code-block:: console\n\n $ dna -d examples/DNA_versions/wssnt10.txt.dna\n\nTo see the decoded file:\n\n.. code-block:: console\n\n $ cat examples/DNA_versions/wssnt10.txt.decoded\n\nAdditional information about this work\n----------\n\n`Nick Goldman talking about DNA Hard Drivers at the WEF2015`_\n\n`Goldman group DNA storage`_\n\n`Emily Leprous talking about DNA storage`_\n\n`Towards practical, high-capacity, low-maintenance information storage in synthesized DNA`_\n\nAdditional information about DNA storage in general\n----------\n\n`Hidding messages in DNA microdots`_\n\n`An improved Huffman coding method for archiving text, images, and music characters in DNA`_\n\n`Bacterial based storage and encryption device`_\n\n`The Xenotext Experiment`_\n\n`If You Were a Secret Message, Where in the Human Genome Would You Hide?`_\n\n`Store digital files for eons in silica-encased DNA`_\n\n.. _this: http://www.nature.com/nature/journal/v494/n7435/full/nature11875.html\n.. _Supplementary Information: http://www.nature.com/nature/journal/v494/n7435/extref/nature11875-s2.pdf\n.. _files: http://www.ebi.ac.uk/goldman-srv/DNA-storage/orig_files/\n.. _found here: http://www.ebi.ac.uk/sites/ebi.ac.uk/files/groups/goldman/file2features_2.0.pdf\n.. _Goldman group DNA storage: http://www.ebi.ac.uk/research/goldman/dna-storage\n.. _Emily Leprous talking about DNA storage: https://vimeo.com/119612296\n.. _Nick Goldman talking about DNA Hard Drivers at the WEF2015: https://www.youtube.com/watch?v=tBvd7OSDGgQ\n.. _Hidding messages in DNA microdots: http://www.researchgate.net/profile/Carter_Bancroft/publication/12921709_Hiding_messages_in_DNA_microdots/links/0922b4f2ac1d18eb73000000.pdf\n.. _An improved Huffman coding method for archiving text, images, and music characters in DNA: http://www.biotechniques.com/multimedia/archive/00055/Supplementary_Materi_55848a.pdf\n.. _Towards practical, high-capacity, low-maintenance information storage in synthesized DNA: http://courses.cs.vt.edu/cs2104/Spring13Onufriev/LectureNotes/DNA.storage.pdf\n.. _Bacterial based storage and encryption device: http://2010.igem.org/files/presentation/Hong_Kong-CUHK.pdf\n.. _The Xenotext Experiment: http://triplehelixblog.com/2014/01/the-xenotext-experiment/\n.. _If You Were a Secret Message, Where in the Human Genome Would You Hide?: http://nautil.us/blog/-if-you-were-a-secret-message-where-in-the-human-genome-would-you-hide\n.. _Store digital files for eons in silica-encased DNA: http://hackaday.com/2015/02/21/store-digital-files-for-eons-in-silica-encased-dna", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/allanino/DNA", "keywords": "dna encoding decoding file", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "file2dna", "package_url": "https://pypi.org/project/file2dna/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/file2dna/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/allanino/DNA" }, "release_url": "https://pypi.org/project/file2dna/0.4/", "requires_dist": null, "requires_python": null, "summary": "A script to encode/decode arbitrary computer files into DNA sequences.", "version": "0.4" }, "last_serial": 1522105, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "0dbad9de60471cb1f17c3d0933b1aafd", "sha256": "64d8826491146312a1ae4e19baa1dc2453c86cb7968da459b4ac34879b447a2d" }, "downloads": -1, "filename": "file2dna-0.1.tar.gz", "has_sig": false, "md5_digest": "0dbad9de60471cb1f17c3d0933b1aafd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4853, "upload_time": "2014-09-04T21:05:23", "url": "https://files.pythonhosted.org/packages/6a/fb/d246004d2e5dd1208bacb2c12e123f4e80191bd1c5851681ef494fae3b92/file2dna-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "bde7dd20c55b362943b95bdddbf33e9a", "sha256": "69941e97b3f75806e5c59601027583d5733585fa8fd17e7620de637cc8f07d45" }, "downloads": -1, "filename": "file2dna-0.2.tar.gz", "has_sig": false, "md5_digest": "bde7dd20c55b362943b95bdddbf33e9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5005, "upload_time": "2014-09-04T21:08:45", "url": "https://files.pythonhosted.org/packages/11/de/77eb4d4e51d3f3e7219fba2915505b39eeb048bff55a0d4bb2d5aaf74440/file2dna-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "2641a89e066c5a8bbd8092699d112e44", "sha256": "2b34be3bcf08f3cd39ac18e9ec8fa90c1a2b782f9be9ce041d4b5343a8407a07" }, "downloads": -1, "filename": "file2dna-0.3.tar.gz", "has_sig": false, "md5_digest": "2641a89e066c5a8bbd8092699d112e44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5182, "upload_time": "2014-09-04T22:30:17", "url": "https://files.pythonhosted.org/packages/fa/98/b92ae0ce941a81d5d61ce2eec136ac423b93670db138500708208f9f0a93/file2dna-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "ee5e9535bbcf72b2ccd186ca36fb1627", "sha256": "c61fe12e2ce09dfffd7cef76c5511be3c973de78d3f0771de806d299821b0e51" }, "downloads": -1, "filename": "file2dna-0.4.tar.gz", "has_sig": false, "md5_digest": "ee5e9535bbcf72b2ccd186ca36fb1627", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7581, "upload_time": "2015-04-26T22:48:54", "url": "https://files.pythonhosted.org/packages/53/86/a6c33dcced05b456c9b7adc3094e07b1826e2809208b5c64198615e2d382/file2dna-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ee5e9535bbcf72b2ccd186ca36fb1627", "sha256": "c61fe12e2ce09dfffd7cef76c5511be3c973de78d3f0771de806d299821b0e51" }, "downloads": -1, "filename": "file2dna-0.4.tar.gz", "has_sig": false, "md5_digest": "ee5e9535bbcf72b2ccd186ca36fb1627", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7581, "upload_time": "2015-04-26T22:48:54", "url": "https://files.pythonhosted.org/packages/53/86/a6c33dcced05b456c9b7adc3094e07b1826e2809208b5c64198615e2d382/file2dna-0.4.tar.gz" } ] }