Skip to content

Ebedthan/chaoscoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧬 chaoscoder

DNA sequence encoding, decoding, and analysis using (Integer) Chaos Game Representation

CI codecov License: MIT

🌟 Overview

chaoscoder is a high-performance Rust tool for transforming DNA sequences into visual or numerical formats using Chaos Game Representation (CGR) and its improved version, Integer Chaos Game Representation (iCGR). It is the first user-oriented implementation of iCGR, supporting encoding, decoding, visualization, and comparison workflows.

✨ Features

  • iCGR Encoding/Decoding of DNA sequences using a robust, lossless integer-based method
  • Efficient block-based encoding for long sequences (100 bp windows)
  • CGR image generation from DNA sequences
  • Similarity analysis using the DSSIM algorithm for comparing CGR images

🚀 Installation

🛠️ From Source (via Cargo)

You’ll need a Rust toolchain (stable channel).

git clone https://github.com/Ebedthan/chaoscoder.git
cd chaoscoder
cargo build --release

📁 Prebuilt Binaries

Download binaries for your platform from the releases page:

🛠️ Usage

Here are the main commands available

# Encode a FASTA sequence to iCGR format
chaoscoder encode seq.fa

# Decode an iCGR file back to the original sequence
chaoscoder decode seq.bicgr

# Generate a CGR image from a DNA sequence
chaoscoder draw seq.fa

# Compare CGR images in a folder using DSSIM
chaoscoder compare images_dir

For full details, do chaoscoder -h.

📦 Requirements

Rust ≥ 1.82.0 (minimum supported version) Optional: fontconfig and pkg-config (for CGR rendering, may require system dependencies)

Minimum Rust version policy

This crate's minimum supported rustc version is 1.82.0.

🐛 Bugs & Feedback

Found a bug? Have a feature request? Open an issue on the GitHub Issue Tracker.

📄 License

This project is licensed under the MIT License. See LICENSE-MIT (or http://opensource.org/licenses/MIT) for details.

About

block-based integer chaos game representation for DNA sequences

Topics

Resources

License

Stars

Watchers

Forks

Languages