A comprehensive, user-friendly platform for encoding, encrypting, preparing, and decoding digital data using synthetic DNA sequences. Built with Streamlit for accessible deployment and research collaboration.
| Feature | Description | Status |
|---|---|---|
| Multi-format Encoding | Convert text, images, audio, video, PDF to DNA | ✅ |
| Chaos Encryption | Secure with Logistic/Hénon/Lorenz chaos systems | ✅ |
| NGS Fragment Generation | Prepare sequences for DNA synthesis | ✅ |
| Quality Verification | Compare original and reconstructed data | ✅ |
| Cloud Deployment | One-click deployment to Streamlit Cloud | ✅ |
# 1. Clone repository
git clone https://github.com/username/dna-storage-platform.git
cd dna-storage-platform
# 2. Create virtual environment
python -m venv venv
# 3. Activate environment
# On Windows:
venv\Scripts\activate
# On Mac/Linux:
source venv/bin/activate
# 4. Install dependencies
pip install -r requirements.txt
# 5. Install FFmpeg (required for audio/video)
# On Ubuntu/Debian:
sudo apt-get install ffmpeg
# On Mac:
brew install ffmpeg
# On Windows:
# Download from https://ffmpeg.org/download.html
# 6. Run application
streamlit run app.pyFor Streamlit Cloud deployment, ensure you have these files in your repository root:
-
packages.txt- System-level dependencies:ffmpeg -
requirements.txt- Python dependencies:streamlit>=1.28.0 brotli>=1.0.9 Pillow>=10.0.0 numpy>=1.24.0 pandas>=2.0.0 scikit-image>=0.21.0 PyPDF2>=3.0.0
packages.txt file is required for audio and video compression to work on Streamlit Cloud. Without it, FFmpeg will not be available and audio/video features will be disabled.
dna_storage/
├── app.py # Main Streamlit application
├── dna_codec.py # DNA encoding/decoding logic
├── compression.py # Compression algorithms (with FFmpeg checks)
├── randomization.py # Henon chaos map implementation
├── comparison.py # Quality metrics calculation
├── requirements.txt # Python dependencies
├── packages.txt # System dependencies (for Streamlit Cloud)
└── README.md # This file
- Encode: Upload file → Select compression → Encode to DNA
- Randomize: Load DNA → Select chaos system → Enter primers → Randomize
- NGS Prep: Load DNA → Set fragment length → Generate fragments
- Decode: Load randomized DNA → Enter primers → Decode to file
- Compare: Load original and decoded → Verify integrity
If you see "FFmpeg not available" errors:
- Ensure
packages.txtexists in your repository root - The file should contain only:
ffmpeg - Redeploy your app after adding the file
If FFmpeg is not found locally:
- Ubuntu/Debian:
sudo apt-get install ffmpeg - macOS:
brew install ffmpeg - Windows: Download from ffmpeg.org and add to PATH
MIT License
DNA Data Storage Platform v2.0