Skip to content

Repository files navigation

DNA2oiia 🧬🎵🐱

Python 3.10+ License: MIT CI Binder Open In Colab

Convert DNA/RNA sequences into sound using "oiia" phonetics. Each base maps to a sound: A=o, T/U=ii, C=a, G=e.

Try it in your browser

DNA2Oiia Demo

Table of Contents

Installation

pip install dna2oiia

Optional extras:

pip install dna2oiia[mp3]        # MP3 export (requires pydub + ffmpeg)
pip install dna2oiia[tui]        # Interactive terminal UI
pip install dna2oiia[streamlit]  # Streamlit web app

CLI Usage

dna2oiia -s ATCGGATTA -o my_dna          # Convert sequence to WAV
dna2oiia -f example.fasta -o output      # Convert FASTA file
echo "ATCGATCG" | dna2oiia --play        # Pipe from stdin and play
dna2oiia -s ATCGATCG --play              # Play audio directly
dna2oiia -s ATCGATCG --speed 2.0         # Double speed
dna2oiia -s ATCG --repeat 4              # Repeat 4 times
dna2oiia -s ATCGGATTA --reverse-complement  # Reverse complement
dna2oiia -s ATCGATCG --visualize         # Colored base-to-sound mapping
dna2oiia -s ATCGGATTA --format mp3       # MP3 output (requires pydub)

Try famous sequences included in the repo:

dna2oiia -f examples/data/famous_sequences.fasta --play --visualize

Python API

from dna2oiia import dna_to_oiia, process_fasta, reverse_complement, validate_dna_sequence

# Single sequence
dna_to_oiia({"example": "ATCGGATTA"}, "output")  # Creates output.wav

# FASTA file
sequences = process_fasta("example.fasta")
dna_to_oiia(sequences, "output")

# Stream to buffer
import io
buf = io.BytesIO()
dna_to_oiia({"seq": "ATCGGATTA"}, output_buffer=buf)

# Speed, repeat, reverse complement
dna_to_oiia({"fast": "ATCGATCG"}, "out", speed=2.0, repeat=3)
rc = reverse_complement("ATCG")  # "CGAT"

Interactive TUI

pip install dna2oiia[tui]
dna2oiia-tui          # or: dna2oiia --tui

Keyboard shortcuts: F5 Play | F6 Save WAV | F7 Reverse complement | Q Quit

Features: paste sequences or load FASTA files, live colored visualization, adjustable speed and repeat.

Streamlit Web App

pip install dna2oiia[streamlit]
streamlit run st_dna2oiia.py

Or try it in your browser.

Acknowledgments

Inspired by a conversation with IOB friends Nathan and Ibukun during a hackathon. The "oiia" sound is sourced from this YouTube video under fair use. Developed with AI assistance.

License

MIT License. Contributions welcome!

About

A Python package that converts DNA sequences into sound using oiia phonetics

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages