Skip to content

Commit 2e4f3c6

Browse files
committed
push joss
1 parent 0b0aec2 commit 2e4f3c6

File tree

5 files changed

+191
-0
lines changed

5 files changed

+191
-0
lines changed

.github/workflows/draft-pdf.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Draft PDF
2+
on: [push]
3+
4+
jobs:
5+
paper:
6+
runs-on: ubuntu-latest
7+
name: Paper Draft
8+
steps:
9+
- name: Checkout
10+
uses: actions/checkout@v4
11+
- name: Build draft PDF
12+
uses: openjournals/openjournals-draft-action@master
13+
with:
14+
journal: joss
15+
# This should be the path to the paper within your repo.
16+
paper-path: paper.md
17+
- name: Upload
18+
uses: actions/upload-artifact@v4
19+
with:
20+
name: paper
21+
# This is the output path where Pandoc will write the compiled
22+
# PDF. Note, this should be the same directory as the input
23+
# paper.md
24+
path: paper.pdf

bicgr.png

52.6 KB
Loading

chaoscoder.jpg

49 KB
Loading

paper.bib

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
2+
@article{yin_encoding_2018,
3+
title = {Encoding and {Decoding} {DNA} {Sequences} by {Integer} {Chaos} {Game} {Representation}},
4+
volume = {26},
5+
url = {https://www.liebertpub.com/doi/abs/10.1089/cmb.2018.0173},
6+
doi = {10.1089/cmb.2018.0173},
7+
abstract = {DNA sequences are fundamental for encoding genetic information. The genetic information may be understood not only from symbolic sequences but also from the hidden signals inside the sequences. The symbolic sequences need to be transformed into numerical sequences so the hidden signals can be revealed by signal processing techniques. All current transformation methods encode DNA sequences into numerical values of the same length. These representations have limitations in the applications of genomic signal compression, encryption, and steganography. We propose a novel integer chaos game representation (inter-CGR or iCGR) of DNA sequences and a lossless encoding method DNA sequences by the iCGR. In the iCGR method, a DNA sequence is represented by the iterated function of the nucleotides and their positions in the sequence. Then the DNA sequence can be uniquely encoded and recovered using three integers from iCGR. One integer is the sequence length and the other two integers represent the accumulated distributions of nucleotides in the sequence. The integer encoding scheme can compress a DNA sequence by 2 bits per nucleotide. The integer representation of DNA sequences provides a prospective tool for sequence analysis and operations.},
8+
number = {2},
9+
urldate = {2020-05-19},
10+
journal = {Journal of Computational Biology},
11+
author = {Yin, Changchuan},
12+
month = dec,
13+
year = {2018},
14+
note = {Publisher: Mary Ann Liebert, Inc., publishers},
15+
pages = {143--151},
16+
}
17+
18+
@article{jeffrey_chaos_1990,
19+
title = {Chaos game representation of gene structure},
20+
volume = {18},
21+
issn = {0305-1048},
22+
doi = {10.1093/nar/18.8.2163},
23+
abstract = {This paper presents a new method for representing DNA sequences. It permits the representation and investigation of patterns in sequences, visually revealing previously unknown structures. Based on a technique from chaotic dynamics, the method produces a picture of a gene sequence which displays both local and global patterns. The pictures have a complex structure which varies depending on the sequence. The method is termed Chaos Game Representation (CGR). CGR raises a new set of questions about the structure of DNA sequences, and is a new tool for investigating gene structure.},
24+
language = {eng},
25+
number = {8},
26+
journal = {Nucleic Acids Research},
27+
author = {Jeffrey, H. J.},
28+
month = apr,
29+
year = {1990},
30+
pmid = {2336393},
31+
pmcid = {PMC330698},
32+
pages = {2163--2170},
33+
}
34+
35+
36+
@article{greener_guide_2022,
37+
title = {A guide to machine learning for biologists},
38+
volume = {23},
39+
issn = {1471-0080},
40+
doi = {10.1038/s41580-021-00407-0},
41+
abstract = {The expanding scale and inherent complexity of biological data have encouraged a growing use of machine learning in biology to build informative and predictive models of the underlying biological processes. All machine learning techniques fit models to data; however, the specific methods are quite varied and can at first glance seem bewildering. In this Review, we aim to provide readers with a gentle introduction to a few key machine learning techniques, including the most recently developed and widely used techniques involving deep neural networks. We describe how different techniques may be suited to specific types of biological data, and also discuss some best practices and points to consider when one is embarking on experiments involving machine learning. Some emerging directions in machine learning methodology are also discussed.},
42+
language = {eng},
43+
number = {1},
44+
journal = {Nature Reviews. Molecular Cell Biology},
45+
author = {Greener, Joe G. and Kandathil, Shaun M. and Moffat, Lewis and Jones, David T.},
46+
month = jan,
47+
year = {2022},
48+
pmid = {34518686},
49+
keywords = {Animals, Biology, Deep Learning, Humans, Machine Learning, Neural Networks, Computer},
50+
pages = {40--55},
51+
}
52+
53+
54+
@article{wang_image_2004,
55+
title = {Image quality assessment: from error visibility to structural similarity},
56+
volume = {13},
57+
issn = {1941-0042},
58+
shorttitle = {Image quality assessment},
59+
url = {https://ieeexplore.ieee.org/abstract/document/1284395},
60+
doi = {10.1109/TIP.2003.819861},
61+
abstract = {Objective methods for assessing perceptual image quality traditionally attempted to quantify the visibility of errors (differences) between a distorted image and a reference image using a variety of known properties of the human visual system. Under the assumption that human visual perception is highly adapted for extracting structural information from a scene, we introduce an alternative complementary framework for quality assessment based on the degradation of structural information. As a specific example of this concept, we develop a structural similarity index and demonstrate its promise through a set of intuitive examples, as well as comparison to both subjective ratings and state-of-the-art objective methods on a database of images compressed with JPEG and JPEG2000. A MATLAB implementation of the proposed algorithm is available online at http://www.cns.nyu.edu//spl sim/lcv/ssim/.},
62+
number = {4},
63+
urldate = {2025-07-17},
64+
journal = {IEEE Transactions on Image Processing},
65+
author = {Wang, Zhou and Bovik, A.C. and Sheikh, H.R. and Simoncelli, E.P.},
66+
month = apr,
67+
year = {2004},
68+
keywords = {Data mining, Degradation, Humans, Image quality, Indexes, Layout, Quality assessment, Transform coding, Visual perception, Visual system},
69+
pages = {600--612},
70+
file = {Snapshot:/home/ediman/Zotero/storage/NAMTQ9IJ/1284395.html:text/html},
71+
}
72+
73+
@article{almeida_analysis_2001,
74+
title = {Analysis of genomic sequences by {Chaos} {Game} {Representation}},
75+
volume = {17},
76+
issn = {1367-4803},
77+
doi = {10.1093/bioinformatics/17.5.429},
78+
abstract = {MOTIVATION: Chaos Game Representation (CGR) is an iterative mapping technique that processes sequences of units, such as nucleotides in a DNA sequence or amino acids in a protein, in order to find the coordinates for their position in a continuous space. This distribution of positions has two properties: it is unique, and the source sequence can be recovered from the coordinates such that distance between positions measures similarity between the corresponding sequences. The possibility of using the latter property to identify succession schemes have been entirely overlooked in previous studies which raises the possibility that CGR may be upgraded from a mere representation technique to a sequence modeling tool.
79+
RESULTS: The distribution of positions in the CGR plane were shown to be a generalization of Markov chain probability tables that accommodates non-integer orders. Therefore, Markov models are particular cases of CGR models rather than the reverse, as currently accepted. In addition, the CGR generalization has both practical (computational efficiency) and fundamental (scale independence) advantages. These results are illustrated by using Escherichia coli K-12 as a test data-set, in particular, the genes thrA, thrB and thrC of the threonine operon.},
80+
language = {eng},
81+
number = {5},
82+
journal = {Bioinformatics (Oxford, England)},
83+
author = {Almeida, J. S. and Carriço, J. A. and Maretzek, A. and Noble, P. A. and Fletcher, M.},
84+
month = may,
85+
year = {2001},
86+
pmid = {11331237},
87+
keywords = {Algorithms, Genome, Sequence Alignment, Escherichia coli, Base Sequence, Sequence Analysis, DNA, DNA, Bacterial, Genome, Bacterial, Game Theory, Nonlinear Dynamics, Threonine},
88+
pages = {429--437},
89+
file = {Full Text:/home/ediman/Zotero/storage/VESM4PR8/Almeida et al. - 2001 - Analysis of genomic sequences by Chaos Game Representation.pdf:application/pdf},
90+
}
91+
92+
93+
@article{chicco_ten_2017,
94+
title = {Ten quick tips for machine learning in computational biology},
95+
volume = {10},
96+
issn = {1756-0381},
97+
url = {https://biodatamining.biomedcentral.com/articles/10.1186/s13040-017-0155-3},
98+
doi = {10.1186/s13040-017-0155-3},
99+
abstract = {Machine learning has become a pivotal tool for many projects in computational biology, bioinformatics, and health informatics. Nevertheless, beginners and biomedical researchers often do not have enough experience to run a data mining project effectively, and therefore can follow incorrect practices, that may lead to common mistakes or over-optimistic results. With this review, we present ten quick tips to take advantage of machine learning in any computational biology context, by avoiding some common errors that we observed hundreds of times in multiple bioinformatics projects. We believe our ten suggestions can strongly help any machine learning practitioner to carry on a successful project in computational biology and related sciences.},
100+
language = {en},
101+
number = {1},
102+
urldate = {2020-10-14},
103+
journal = {BioData Mining},
104+
author = {Chicco, Davide},
105+
month = dec,
106+
year = {2017},
107+
pages = {35},
108+
file = {Chicco - 2017 - Ten quick tips for machine learning in computation.pdf:/home/ediman/Zotero/storage/TLEC5K7L/Chicco - 2017 - Ten quick tips for machine learning in computation.pdf:application/pdf;Chicco - 2017 - Ten quick tips for machine learning in computation.pdf:/home/ediman/Zotero/storage/XD5SCMV9/Chicco - 2017 - Ten quick tips for machine learning in computation.pdf:application/pdf},
109+
}

paper.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
title: 'chaoscoder: block-based integer chaos game representation encoding, decoding and analysis of DNA sequences'
3+
tags:
4+
- Rust
5+
- DNA sequence analysis
6+
- integer Chaos game representation
7+
authors:
8+
- name: Anicet E. T. Ebou
9+
orcid: 0000-0003-4005-177X
10+
affiliation: 1
11+
- name: Dominique K. Koua
12+
orcid: 0000-0002-9078-8844
13+
affiliation: 1
14+
affiliations:
15+
- name: Equipe Bioinformatique et Biostatistique, Laboratoire de Microbiologie, Biotechnologie et Bioinformatique, Institut National Polytechnique Félix Houphouët-Boigny, BP 1093 Yamoussoukro, Côte d'Ivoire
16+
index: 1
17+
date: "17 July 2025"
18+
bibliography: paper.bib
19+
---
20+
21+
# Summary
22+
23+
Computational analysis of DNA sequences underpins numerous bioinformatics applications, including sequence classification, genome comparison, mutation detection, and evolutionary studies. These tasks often require transforming symbolic nucleotide sequences (A, T, C, G) into numerical representations suitable for mathematical processing or machine learning [@greener_guide_2022]. Chaos Game Representation (CGR) is a well-established method that encodes DNA sequences as points in a 2D space, revealing motifs and structural patterns [@jeffrey_chaos_1990]. However, traditional CGR depends on floating-point arithmetic, leading to rounding errors and imprecision, especially when applied to long sequences or tasks that require exact sequence reconstruction. `chaoscoder` implements the Integer Chaos Game Representation (iCGR), a variant that operates entirely in integer space to provide lossless encoding and decoding [@yin_encoding_2018]. To address the exponential scaling limitation of iCGR, the software introduces a block-based variant that divides sequences into overlapping segments, enabling scalable and parallelizable encoding of genome-length sequences. The software provides a command-line interface for encoding, decoding, visualizing CGRs, and comparing sequence structure via image-based SSIM (Structural Similarity Index Measure) [@wang_image_2004]. It supports standardized storage of encoded data in a custom `.bicgr` file format, designed for efficient downstream use.
24+
25+
# Statement of need
26+
27+
The exponential growth of genomic datasets necessitates robust, scalable, and reversible methods for DNA sequence encoding that can support downstream computational workflows. Among existing approaches, CGR has been widely adopted for its ability to visualize and analyze nucleotide composition in a geometric framework [@almeida_analysis_2001]. However, CGR suffers from inherent limitations: it relies on floating-point arithmetic, which introduces precision errors, lacks scalability to large sequences, and is not reversible, making exact sequence reconstruction impossible. The Integer Chaos Game Representation introduced by Yin *et al.* [@yin_encoding_2018], addresses these shortcomings by providing a mathematically rigorous and fully reversible encoding scheme based on integer arithmetic. Despite its theoretical advantages, iCGR remains underutilized due to the absence of a comprehensive, open-source implementation suitable for genome-scale applications. Apart from the illustrative prototype provided by the original authors, no available software supports full encoding, decoding, and standardized storage of iCGR coordinates in a format adapted to large-scale, reproducible workflows.
28+
This software fills that gap by offering a modular, high-performance implementation of iCGR. It introduces a block-based strategy capable of handling arbitrarily long sequences through segmented and overlapping encoding, ensuring both scalability and reversibility. `chaoscoder` includes efficient utilities for encoding, decoding, and storing sequences in a structured format that is suitable for integration into bioinformatics pipelines [@chicco_ten_2017].
29+
30+
# Implementation
31+
32+
## Encoding and decoding DNA sequences by integer CGR
33+
34+
`chaoscoder` provides a CLI to encode and decode DNA sequences using the iCGR algorithm proposed by Yin [@yin_encoding_2018]. For sequences shorter than 100 nucleotides, the classic iCGR approach is used, mapping each base to integer coordinates without rounding errors.
35+
36+
## Block-based encoding
37+
38+
Due to the exponential nature of coordinate growth in iCGR, encoding long sequences (e.g., full genomes) directly is computationally infeasible. To mitigate this, `chaoscoder` implements a block-based iCGR approach. Sequences are partitioned into fixed-size, overlapping segments (e.g., 50–100 nt), each of which is independently encoded using the iCGR algorithm (Figure 1).
39+
40+
![Workflow of block-based iCGR encoding](chaoscoder.jpg)
41+
42+
The result is a scalable encoding strategy that maintains the reversibility and precision of iCGR while enabling genome-scale processing.
43+
44+
## The `.bicgr` file format
45+
46+
The block-based integer Chaos Game Representation (.bicgr) format is a custom tab-separated file structure (Figure 2).
47+
48+
![Example of a .bicgr file](bicgr.png)
49+
50+
It includes the sequence ID (mandatory), the sequence description (optional), the overlap parameter used during encoding and the iCGR tri-integer coordinates (`x`, `y`, and `n`) for each block, listed in 5' to 3' orientation. This structure ensures consistent, interpretable, and easily parsable output for integration into downstream pipelines.
51+
52+
## Other features
53+
54+
`chaoscoder` offers additional functionalities to support exploratory and comparative genomics. First, the software can generate 2D CGR images for encoded sequences. Second, users can compute Structural Similarity Index (SSIM) between CGR images to compare sequence patterns without alignment. Finally, encoding and decoding tasks are multithreaded to improve performance on large datasets.
55+
`chaoscoder` is written in Rust and distributed via GitHub at [https://github.com/Ebedthan/chaoscoder](https://github.com/Ebedthan/chaoscoder).
56+
57+
58+
# References

0 commit comments

Comments
 (0)