# An Intelligent Optimization Algorithm for Constructing a DNA Storage Code: NOL-HHO
###### Abstract
proposed a DNA fountain code storage strategy, successfully storing \(2.4\times 10^{6}\) bits of bytes in a DNA oligonucleotide sequence, which was perfectly decoded [PERSON] et al. (2018). [PERSON] et al. (2018) demonstrated, for the first time, a method for implementing a portable random-access platform using a nanopore sequencer in practice, which reduced errors in sequencing and enabled random access of any part of the encoded data. Soon after, [PERSON] et al. [PERSON] et al. (2018) proposed a new family of codes called asymmetric Lee distance (ALD) codes to correct errors and give an upper bound on the size of the code under this metric. In order to avoid the appearance of long homopolymers in DNA storage, [PERSON] et al. proposed a sequence replacement method for k-constrained q-ary data, which produced a significant improvement in coding redundancy M. [PERSON] et al. (2018) used more than 13 million DNA oligonucleotides to encode and store 35 different files (more than 200 MB of data) and used a random-access method to recover each file individually without errors. Later, [PERSON] et al. [PERSON] et al. (2018) introduce the notion of weakly mutually uncorrelated (WMU) sequences and presented a variety of constructs for WMU codes in real-world storage applications. [PERSON] et al. [PERSON] et al. (2018) proposed a coding method for converting a binary sequence into a DNA basic sequence that satisfied the run-length constraint and the GC-content constraint properties, and this system achieved a rate of 1.9 bits per DNA base with low encoding/decoding complexity and limited error propagation. [PERSON] et al. [PERSON] et al. (2018) developed new ways of storing DNA using electronic biomixing systems. In the same year, [PERSON] et al. [PERSON] et al. (2018) used experimental data to quantitatively and qualitatively understand DNA storage channels to help guide the design of future DNA data storage systems. Subsequently, [PERSON] et al. [PERSON] et al. (2018) used altruistic algorithms based on three constraints to construct a DNA code set in storage that significantly improved the lower-bound results. [PERSON] et al. [PERSON] et al. (2018) proposed a new content-balanced run-length limited code that satisfied both the maximum homopolymer operating limit and the equilibrium GC-content limit, ensuring local and global stability. Shortly after this, [PERSON] et al. [PERSON] et al. (2018) developed an automated end-to-end DNA data storage device and demonstrated a 5 byte automatic write, store and read cycle that could be extended as new technologies emerge. Another paper [28] conducted a preliminary study of DNA storage in representative living organisms, such as E. coli, yeast, and Arabidopsis, and finally found that digital information can be stored and stably transmitted on DNA using these living organisms. Recently, [PERSON] et al. [29] summarized the mainstream technologies and challenges facing in the field of DNA storage, which is of great significance for future research. [PERSON] et al. [30] monitored the long-term storage of DNA using ddPCR. [PERSON] et al. [31] encoded data using fewer synthesis cycles, and this grouped encoded 6.4 MB of data into composite DNA, reducing the number of synthesis cycles used per unit of data by 20%. Immediately afterward, [PERSON] et al. [2] proposed a hybrid coding scheme consisting of an improved variable-length run-length limited (VL-RLL) code and an optimized prototype low-density parity-check (LDPC) code, and used an improved external information transmission algorithm (EXIT), which showed that the proposed hybrid coding scheme stored 1.98 bits per nucleotide (bits/nt), with only a 1% gap from the upper boundary (2 bits/nt). The reason why DNA coding sequences as \"information\" in storage cannot be randomly selected is that DNA molecules can produce undesired false positives and false negatives during hybridization. Therefore, it is necessary to add correlation constraints (called constraint coding) to optimize the coding sequence to enhance the robustness of any sequence.