WO2024076044A1 - Dna encoding and decoding method and device - Google Patents

Dna encoding and decoding method and device Download PDF

Info

Publication number
WO2024076044A1
WO2024076044A1 PCT/KR2023/014125 KR2023014125W WO2024076044A1 WO 2024076044 A1 WO2024076044 A1 WO 2024076044A1 KR 2023014125 W KR2023014125 W KR 2023014125W WO 2024076044 A1 WO2024076044 A1 WO 2024076044A1
Authority
WO
WIPO (PCT)
Prior art keywords
base
binary data
processor
information
base sequence
Prior art date
Application number
PCT/KR2023/014125
Other languages
French (fr)
Korean (ko)
Inventor
이근우
Original Assignee
이근우
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020220127750A external-priority patent/KR20240048218A/en
Priority claimed from KR1020220129385A external-priority patent/KR20240049911A/en
Priority claimed from KR1020220137061A external-priority patent/KR20240056939A/en
Priority claimed from KR1020220138893A external-priority patent/KR20240058289A/en
Application filed by 이근우 filed Critical 이근우
Publication of WO2024076044A1 publication Critical patent/WO2024076044A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B15/00ICT specially adapted for analysing two-dimensional or three-dimensional molecular structures, e.g. structural or functional relations or structure alignment
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • G16B30/10Sequence alignment; Homology search
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • G16B30/20Sequence assembly
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B40/00ICT specially adapted for biostatistics; ICT specially adapted for bioinformatics-related machine learning or data mining, e.g. knowledge discovery or pattern finding
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics

Definitions

  • the present invention relates to information storage technology based on DNA molecules, and more specifically, to encoding technology for DNA synthesis and decoding technology for data recovery.
  • Magnetic tape which is widely used as a long-term recording medium, has a data storage lifespan of about 10 years, so maintenance and management costs are continuously required.
  • HDD and SSD are representative examples.
  • the lifespan of HDDs is usually 5 years, and if the data access frequency is used less than once per quarter, the lifespan is about 10 years, but it is very vulnerable to shock and has a limit to its maximum capacity.
  • SSDs are resistant to shocks, but their lifespan is relatively shorter than that of HDDs. Recently, the explosive amount of data produced has exceeded the capacity of storage media, causing overload, and the data storage density limit of existing information storage media has been reached, creating a need for new types of storage devices.
  • DNA is used as a storage medium, it is possible to overcome the data storage density, which is a disadvantage of existing storage media, and information can be stored stably for a long period of time even when subjected to physical shock.
  • DNA is contained in cells, the smallest unit of living organisms, and contains all genetic information. All living things grow and move as if programmed, according to the information contained in DNA.
  • the DNA contained in one single cell consists of 3 billion base pairs, and the size of the genetic information decoded is approximately 1TB.
  • one single cell contains two strands of DNA that are 2 nm wide and 3 m long. Therefore, theoretically, DNA, a next-generation biostorage that can store more than EB (10 ⁇ 18), is very suitable as a biomaterial for ultra-intensive information storage. In addition, the storage life is more than 1,000 years, and low-cost storage is expected to be possible.
  • Figure 1 is a conceptual diagram of information storage using DNA base sequences.
  • binary data to be stored is encoded with nucleotides A (adenine), T (thymine), G (guanine), and C (cytosine).
  • DNA is synthesized according to the encoded base sequence, and the synthesized DNA molecule is stored. Afterwards, the stored DNA molecules are selected through retrieval, the nucleotide sequence of the selected DNA molecule is analyzed (Sequencing), and binary data is decoded according to the analyzed nucleotide sequence.
  • the purpose of this specification is to provide a DNA encoding method and device that reduces the possibility of errors when synthesizing and restoring DNA.
  • the purpose of this specification is to provide a method and device for shuffling or restoring binary data with a reduced possibility of error when synthesizing and restoring DNA.
  • the purpose of this specification is to provide a DNA encoding method and device that can improve the structural stability of synthesized DNA.
  • the DNA encoding method according to the present specification to solve the above-described problem includes the steps of: (a) a processor first converting binary data into a base sequence; (b) a step where the processor finds a point where the same base is repeated in the first converted base sequence; and (c) secondary conversion by the processor into a base sequence in which a dummy base is added at a point where the same base is repeated.
  • step (b) may be a step in which the processor searches for a point where a predetermined number of identical bases are repeated.
  • step (b) may be a step in which the processor finds a point where the same base is repeated according to the number set for each base.
  • step (b) includes: (b-1) generating a frequency table for repeated bases in the primary converted base sequence by a processor; (b-2) a step of the processor determining the number of repetitions of the same base requiring addition of a dummy base using the generated frequency table; and (b-3) the processor searches for points where the same base is repeated in the primary converted base sequence according to the number determined in step (b-2).
  • the step (b-2) may be a step in which the processor determines the average value of the frequency as the number of repetitions of the same base that requires the addition of a dummy base.
  • step (b-2) may be a step in which the processor determines the average frequency of each base as the number of repetitions of the same base that requires the addition of a dummy base for each base.
  • step (c) may be a step of secondary conversion by the processor adding a dummy base having at least one predetermined sequence.
  • step (c) may be a step in which the processor performs secondary conversion by adding bases different from the adjacent bases on both sides of the point where the same base is repeated as dummy bases.
  • step (c) may be a step in which the processor performs secondary conversion by adding dummy bases with two or more sequences.
  • the DNA encoding method according to the present specification may be implemented in the form of a computer program written to perform each step of the DNA encoding method on a computer and recorded on a computer-readable recording medium.
  • the DNA encoding device for solving the above-mentioned problems primarily converts binary data into a base sequence, finds a point where the same base is repeated in the first converted base sequence, and detects the repeating point of the same base. It may include a processor that performs secondary conversion into a base sequence with dummy bases added at the points.
  • the processor can find a point where a predetermined number of identical bases are repeated.
  • the processor can find a point where the same base is repeated according to the number set for each base.
  • the processor generates a frequency table for repeated bases in the primary converted base sequence, and uses the generated frequency table to determine the number of repetitions of the same base that requires addition of a dummy base. The point where the same base is repeated in the primary converted base sequence can be found according to the determined number.
  • the processor may determine the average value of the frequency as the number of repetitions of the same base that require the addition of a dummy base.
  • the processor may determine the average frequency for each base as the number of repetitions of the same base that requires the addition of a dummy base for each base.
  • the processor may perform secondary conversion by adding a dummy base having at least one predetermined sequence.
  • the processor may perform secondary conversion by adding bases different from the adjacent bases on both sides of the point where the same base is repeated as dummy bases.
  • the processor can perform secondary conversion by adding dummy bases with two or more sequences.
  • the DNA encoding device includes a DNA encoding device; and a DNA synthesis device that synthesizes DNA according to the nucleotide sequence output from the DNA encoding device.
  • the binary data shuffling method includes the steps of: (a) a processor temporarily converting binary data into a base sequence; (b) a step where the processor determines whether there is a point in the temporarily converted base sequence where the same base is repeated more than a preset number (hereinafter referred to as 'identical repeat sequence'); (c) when the same base repeat sequence exists in step (b), the processor reversely converts the temporarily converted base sequence back into binary data, shuffles the inverted binary data, and then returns to step (a); and (d) when the processor does not exist in the step (b), the temporarily converted base sequence is converted back into binary data, and the converted binary data is stored as binary data to be converted to base sequence.
  • Step may include.
  • step (b) may be a step in which the processor searches for a point where a predetermined number of identical bases are repeated.
  • step (b) may be a step in which the processor searches for a point where the same base is repeated according to the number set for each base.
  • step (c) may be a step in which the processor shuffles binary data using a linear feedback shift register (LFSR) method.
  • LFSR linear feedback shift register
  • step (c) includes: (c-1) storing the number of shuffles each time the processor shuffles binary data; and (c-2) when the processor reaches a preset maximum number of shuffles, moving to step (d).
  • step (a) is a step in which the processor stores a temporarily converted base sequence
  • step (c) is a step in which the processor stores the number of identically repeated bases in the temporarily converted base sequence. Further storing, (c-1) when the processor inverts the binary data and is not the same as the original binary data, mixing the inverse binary data and then returning to step (a); And (c-2) when the processor reversely converts the binary data to the same as the original binary data, sending the base sequence with the smallest number of identically repeated bases among the temporarily converted base sequences to step (d). can do.
  • the binary data shuffling method according to the present specification may be implemented in the form of a computer program written to perform each step of the binary data shuffling method on a computer and recorded on a computer-readable recording medium.
  • a binary data mixing device for solving the above-mentioned problems includes a base sequence conversion unit that converts binary data into a base sequence or reversely converts the base sequence into binary data; A repetitive base analysis unit that determines whether there is a point in the base sequence temporarily converted by the base sequence conversion unit where the same base is repeated more than a preset number (hereinafter referred to as 'identical repeat sequence'); A binary data scram unit that mixes binary data and outputs it; and a control unit that controls the base sequence conversion unit, the repetitive base analysis unit, and the binary data scram unit, wherein the control unit determines that the same base repeat sequence exists in the repetitive base analysis unit, and the temporary conversion After converting the base sequence back into binary data, mixing the back-converted binary data, controlling to convert the mixed binary data back into base sequence, and when there is no identical base repeat sequence in the repeat base analysis unit, It can be controlled to convert the temporarily converted base sequence back into binary data and store the inverted binary data as binary data subject to base sequence conversion.
  • the repetitive base analysis unit can find a point where a predetermined number of identical bases are repeated.
  • a point where the same base is repeated can be found according to the number set for each base in the repeated base analysis.
  • the binary data scram unit can shuffle binary data using a linear feedback shift register (LFSR) method.
  • LFSR linear feedback shift register
  • control unit stores the number of shuffles each time the binary data scram unit shuffles the binary data, and when the preset maximum shuffle number is reached, the temporarily converted nucleotide sequence is converted back into binary data. It can be controlled to inversely convert and store the inversely converted binary data as binary data subject to nucleotide sequence conversion.
  • the control unit stores the base sequence each time it is temporarily converted in the base sequence conversion unit, and calculates the number of identically repeated bases analyzed in the repeat base analysis unit to the temporarily converted base sequence.
  • the inverted binary data is not the same as the original binary data, the inverted binary data is controlled to be mixed, and when the inverted binary data is the same as the original binary data, the number of identically repeated bases is the highest.
  • the adversary can control the temporarily converted base sequence to store the inversely converted binary data as binary data subject to base sequence conversion.
  • the binary data shuffling device includes: a binary data shuffling device; and a DNA synthesis device that converts the binary data output from the binary data mixing device into a base sequence and then synthesizes DNA.
  • the binary data restoration method includes the steps of: (a) receiving and storing analyzed DNA sequence information by a processor; (b) a step of the processor converting the base sequence information into binary data; (c) the processor separating the shuffle count information included in the inverted binary data; and (d) a step of the processor restoring binary data from which the shuffle count information has been separated according to the shuffle count information.
  • the binary data restoration method includes the steps of: (a) receiving and storing analyzed DNA sequence information by a processor; (b) a step of the processor converting the base sequence information into binary data; (c) the processor reading shuffle count information from the storage unit; and (d) a step of the processor restoring the inversely converted binary data according to the shuffle count information.
  • the binary data restoration method according to the present specification may further include removing an error correction code of the inversely converted binary data after step (b).
  • Step (d) of the binary data restoration method according to the present specification may be a step in which the processor restores binary data using a linear feedback shift register (LFSR) method.
  • LFSR linear feedback shift register
  • the binary data restoration method according to the present specification may be implemented in the form of a computer program written to perform each step of the binary data restoration method on a computer and recorded on a computer-readable recording medium.
  • the binary data restoration device for solving the above-described problems includes a base sequence conversion unit that reversely converts the analyzed DNA base sequence information into binary data; a binary data processing unit that separates mixed count information included in the inversely converted binary data; and a binary data disk drive unit that restores binary data from which the shuffle count information has been separated according to the shuffle count information.
  • the binary data restoration device for solving the above-described problems includes a base sequence conversion unit that reversely converts the analyzed DNA base sequence information into binary data; A storage unit that stores information on the number of times each DNA is mixed; and a binary data disk drive unit that restores the inversely converted binary data according to the shuffle count information stored in the storage unit.
  • the base sequence conversion unit of the binary data restoration device can remove the error correction code of the inversely converted binary data.
  • LFSR Linear Feedback Shift Register
  • a binary data recovery device includes: a binary data recovery device; and a base sequence analysis unit that analyzes DNA and outputs base sequence information.
  • the DNA encoding method includes (a) a processor first converting binary data into nucleotide sequence information; and (b) a step of secondary conversion, by the processor, into base sequence information to which dummy base information is added at every preset cycle in the primary converted base sequence information.
  • the dummy base information added in step (b) may be base information that is different from adjacent base information in the first converted base sequence information.
  • the dummy base information added in step (b) may be at least two or more base information.
  • the dummy base information added in step (b) is base information located at both ends of the added dummy base information that is different from the adjacent base information in the first converted base sequence information. You can.
  • the DNA encoding method according to the present specification may further include the step of (c) the processor thirdly converting the secondarily converted base sequence information into base sequence information with protective dummy base information added to both ends.
  • the DNA encoding method according to the present specification may be implemented in the form of a computer program written to perform each step of the DNA encoding method on a computer and recorded on a computer-readable recording medium.
  • the DNA encoding device for solving the above-mentioned problems primarily converts binary data into base sequence information, and adds dummy base information to the first converted base sequence information at preset cycles. It may include a processor that performs secondary conversion.
  • the processor may add dummy base information having base information different from adjacent base information in the primary converted base sequence information.
  • the processor may add dummy base information consisting of at least two or more base information.
  • the processor may add dummy base information in which base information located at both ends of the dummy base information and adjacent base information in the first converted base sequence information have different base information.
  • the processor may further convert the secondary converted base sequence information a third time into base sequence information with protective dummy base information added to both ends.
  • the DNA encoding device includes: a DNA encoding device; and a DNA synthesis device that synthesizes DNA according to the nucleotide sequence output from the DNA encoding device.
  • the possibility of errors when synthesizing and restoring DNA can be reduced. Additionally, the structural stability of synthesized DNA can be improved.
  • Figure 1 is a conceptual diagram of information storage using DNA base sequences.
  • FIG. 2 is a reference diagram for the DNA information storage system according to the present specification.
  • Figure 3 is a flow chart of the DNA encoding method according to the present specification.
  • Figure 4 is an exemplary diagram of a DNA encoding method according to the present specification.
  • Figure 5 is an example of a dummy base that can be added depending on the point where the same base is repeated and the next adjacent base.
  • Figure 6 is a schematic configuration diagram of a binary data shuffling device according to the present specification.
  • Figure 7 is a flowchart of a binary data shuffling method according to an embodiment of the present specification.
  • Figure 8 is a reference diagram for nucleotide sequence conversion of binary data.
  • Figure 9 is a reference diagram to help understand the linear feedback shift register.
  • Figure 10 is a flowchart of a binary data shuffling method according to another embodiment of the present specification.
  • Figure 11 is a flowchart of a binary data shuffling method according to another embodiment of the present specification.
  • Figure 12 is a block diagram schematically showing the configuration of a binary data recovery device according to an embodiment of the present specification.
  • Figure 13 is a block diagram schematically showing the configuration of a binary data recovery device according to another embodiment of the present specification.
  • Figure 14 is a flowchart of a binary data restoration method according to an embodiment of the present specification.
  • Figure 15 is a flowchart of a binary data restoration method according to another embodiment of the present specification.
  • Figure 16 is a flowchart of the DNA encoding method according to the present specification.
  • Figure 17 is an exemplary diagram of a DNA encoding method according to an embodiment of the present specification.
  • Figure 18 is a table of types of dummy bases that can be added according to adjacent bases.
  • Figure 19 is an exemplary diagram of a DNA encoding method according to another embodiment of the present specification.
  • Figure 20 is an exemplary diagram of a DNA encoding method according to another embodiment of the present specification.
  • FIG. 2 is a reference diagram for the DNA information storage system according to the present specification.
  • the DNA information storage system is largely divided into a controller and a DNA molecular unit.
  • the controller receives a request to store information (Write) from the host, it can compress binary data and scramble the compressed data (Scrambler). The reason for shuffling the data is to prevent the same base sequence from being repeated when the binary data is later replaced with the base sequence.
  • An error correction code (ECC) may be added to data that has completed the shuffling process.
  • ECC error correction code
  • the binary data can be converted into corresponding base sequence information (DNA Library).
  • DNA Molecular can synthesize actual DNA molecules according to data converted to base sequence.
  • the DNA Molecular analyzes the base sequence of the DNA molecule.
  • the controller converts the data back into binary data according to the analyzed base sequence and corrects data errors using an error correction code (ECC) (Encoder).
  • ECC error correction code
  • Binary data with errors corrected can be descramblered and decompressed to provide original binary data (information).
  • DNA encoding method of the invention refers to a process of converting binary data into a base sequence in the sequence shown in FIG. 1.
  • DNA encoding is a step that determines in what order the bases will be arranged.
  • the base order determines the forward reading direction from 5' to 3'.
  • a repeated base sequence means that the same bases are arranged repeatedly (consecutively). Therefore, a point where the same base sequence is repeated means a point where the same base sequence is repeatedly arranged a predetermined number of times in the forward direction.
  • the DNA encoding method according to the present specification may be implemented in the form of a computer program written to perform each step described below on a computer and recorded on a computer-readable recording medium.
  • each step can be executed by a processor.
  • Figure 3 is a flow chart of the DNA encoding method according to the present specification.
  • Figure 4 is an exemplary diagram of a DNA encoding method according to the present specification.
  • the processor may first convert binary data into a base sequence.
  • the processor can find a point where the same base is repeated in the first converted base sequence.
  • the processor can secondary convert the sequence into a base sequence in which a dummy base is added to the point where the same base is repeated.
  • 2 bits of data are matched 1:1 with bases, but the DNA encoding method according to the present specification is not limited to the example shown.
  • One base can correspond to 1 bit, 2 bits, 3 bits, or 4 bits, and methods for matching binary data and base sequence can vary.
  • step S200 is a process of finding a point where defects are likely to occur during the synthesis process.
  • the processor can find a point where a predetermined number of identical bases are repeated.
  • the predetermined number can be set in various ways, for example, 4 to 70. Meanwhile, the same standard may be applied to all four bases, but a different standard may be applied to each base. Therefore, the processor may find points where the same base is repeated according to the number set for each base. For example, A may have 5 bases, T may have 6 bases, G may have 7 bases, C may have 5 bases, etc., and so on. Some bases may have the same number.
  • the standard can be determined based on the number of repetitions in the primary converted base sequence.
  • the processor may generate a frequency table (see example frequency table in FIG. 4) for repeated bases in the primary converted base sequence. Additionally, the processor can use the generated frequency table to determine the number of repetitions of the same base that require addition of a dummy base. And the processor can find the point where the same base is repeated in the primary converted base sequence according to the determined number of repetitions of the same base.
  • the Frequency Count Table can be added to the device (DNA Library) that converts binary information into base sequence information in the controller in the DNA information storage system according to the present specification.
  • the processor may determine the average value of the frequency as the number of repetitions of the same base that require the addition of a dummy base. In the example shown in Figure 4, the average value of the frequency is 1.125. Through the rounding operation, whenever the same base is repeated twice, a dummy base can be determined as the position to be added. Additionally, the processor may determine the average value of the frequency for each base as the number of repetitions of the same base that requires the addition of a dummy base for each base.
  • the average of A is 0.5
  • the average of G is 2
  • the average of C is 1.25
  • the average of T is 0.75.
  • step S210 the processor may determine whether the number of repetitions of the same base exceeds the standard set according to the various embodiments described above. If the number of repeats of the same base does not exceed the standard ('NO' in step S210), there is no need to add a dummy base. On the other hand, if the number of repeats of the same base exceeds the standard ('YES' in step S210), the process can proceed to step S300 because the point requires the addition of a dummy base.
  • the processor may perform secondary conversion by adding a dummy base having at least one predetermined sequence.
  • the example shown in Figure 4 shows an example in which A is added as a dummy base sequence when four Gs are repeated.
  • the DNA encoding method according to the present specification is not limited to the example shown in FIG. 4.
  • dummy base 'A' an example of one dummy base 'A' is shown, but the dummy base may be 'G', 'T', or 'C', and the number of dummy bases is not one, but 'AA', There may be two or more such as 'GG', 'TT', 'CC', 'AG', 'GT', 'TC', and 'CA', and their combinations may also vary.
  • the processor can perform secondary conversion by adding bases different from the adjacent bases on both sides of the point where the same base is repeated as dummy bases.
  • Figure 5 is an example of a dummy base that can be added depending on the point where the same base is repeated and the next adjacent base. In the example shown in FIG. 5, an example with one dummy base is shown for simplicity of drawing and convenience of explanation.
  • the processor can perform secondary conversion by adding dummy bases with two or more sequences. In this case, it is also possible to add a dummy base with two or more base sequences combined with different bases from the adjacent bases on both sides of the point where the same base is repeated.
  • binary data means data consisting of 1 and 0.
  • base sequence refers to information consisting of A (adenine), T (thymine), G (guanine), and C (cytosine). In this specification, the base order determines the forward reading direction from 5' to 3'. Additionally, a repeated base sequence means that the same bases are arranged repeatedly (consecutively). Therefore, a point where the same base sequence is repeated means a point where the same base sequence is repeatedly arranged a predetermined number of times in the forward direction.
  • Figure 6 is a schematic configuration diagram of a binary data shuffling device according to the present specification.
  • the binary data mixing device 100 may include a base sequence conversion unit 110, a repetitive base analysis unit 120, a binary data scram unit 130, and a control unit 140.
  • the base sequence conversion unit 110 can convert binary data into a base sequence or reversely convert a base sequence into binary data.
  • the repetitive base analysis unit 120 can determine whether there is a point in the base sequence temporarily converted by the base sequence conversion unit 110 where the same base is repeated more than a preset number (hereinafter referred to as 'same base repeat sequence').
  • the binary data scram unit 130 can mix binary data and then output it.
  • the control unit 140 can control the base sequence conversion unit 110, the repetitive base analysis unit 120, and the binary data scram unit 130.
  • the control unit 140 converts the temporarily converted base sequence back into binary data, mixes the inverted binary data, and then mixes them. You can control the conversion of binary data back to base sequences.
  • the control unit 140 reversely converts the temporarily converted base sequence back into binary data, and converts the inverted binary data into base sequence conversion target. You can control it to be stored as binary data. The operation of the control unit 140 will be explained through the binary data shuffling method according to the present specification.
  • the base sequence conversion unit 110, the repetitive base analysis unit 120, the binary data scram unit 130, and the control unit 140 are used in the technical field to which the present invention belongs to execute the binary data shuffling method to be described below. It may include known processors, application-specific integrated circuits (ASICs), other chipsets, logic circuits, registers, communication modems, data processing devices, etc.
  • ASICs application-specific integrated circuits
  • the control logic to be described below is implemented in software
  • the base sequence conversion unit 110, repetitive base analysis unit 120, binary data scram unit 130, and control unit 140 are implemented as a set of program modules. It can be.
  • the program module may be stored in the memory device and executed by the processor.
  • the binary data shuffling method according to the present specification can be implemented in the form of a computer program written to perform each step described below on a computer and recorded on a computer-readable recording medium.
  • the binary data shuffling method according to the present specification will be described on the assumption that it is executed by a processor.
  • Figure 7 is a flowchart of a binary data shuffling method according to an embodiment of the present specification.
  • step S100 the processor may receive and store initial data.
  • 'original data' refers to original binary data that has not been mixed.
  • the processor may temporarily convert the initial data (binary data) into a base sequence.
  • the reason the base sequence converted in step S110 is called a 'temporary base sequence' is to distinguish it from 'binary data subject to base sequence conversion', which will be explained later.
  • the ‘temporary base sequence’ may not be the base sequence that will be synthesized into actual DNA later.
  • 'binary data subject to base sequence conversion' is data corresponding to the base sequence to be synthesized into actual DNA.
  • Figure 8 is a reference diagram for nucleotide sequence conversion of binary data.
  • 2 bits of data are matched 1:1 with bases, but the method of mixing binary data according to the present specification is not limited to the example shown.
  • One base can correspond to 1 bit, 2 bits, 3 bits, or 4 bits, and methods for matching binary data and base sequence can vary.
  • step S120 the processor may determine whether there is a point in the temporarily converted base sequence where the same base is repeated more than a preset number (hereinafter referred to as 'same base repeat sequence'). As explained earlier, if a specific base is placed repeatedly (consecutively), there is a high possibility that defects will occur during the synthesis process. In other words, step S120 is a process of finding a point where defects are likely to occur during the DNA synthesis process.
  • the processor can find a point where a predetermined number of identical bases are repeated.
  • the predetermined number can be set in various ways, for example, 4 to 70. Meanwhile, the same standard may be applied to all four bases, but a different standard may be applied to each base. Therefore, the processor may find points where the same base is repeated according to the number set for each base. For example, A may have 5 bases, T may have 6 bases, G may have 7 bases, C may have 5 bases, etc., and so on. Some bases may have the same number.
  • step S130 the processor may reversely convert the temporarily converted base sequence back into binary data.
  • step S140 the processor may mix the inversely converted binary data and then transfer the process to step S110. That is, if the number of repeats of the same base in the converted base sequence is more than a preset number, steps S110 to S140 may be repeatedly performed.
  • step S150 the processor may inversely convert the temporarily converted nucleotide sequence back into binary data and store the inversely converted binary data as binary data to which the nucleotide sequence is to be converted. This is because converting the base sequence back into binary data requires additional processing of the binary data in the encoder shown in FIG. 2.
  • the processor may shuffle binary data using a linear feedback shift register (LFSR) method.
  • LFSR linear feedback shift register
  • a linear feedback shift register (LFSR) is a type of shift register and has a structure in which the value entered into the register is calculated as a linear function of the previous state values.
  • the linear function used at this time is mainly exclusive logical sum (XOR).
  • the initial bit value of LFSR is called the seed.
  • LFSR is used in fields such as pseudorandom numbers, pseudorandom noise (PRN), fast digital counters, and blank sequences.
  • PRN pseudorandom noise
  • LFSR which is used in existing pseudorandom numbers, is used as an element to solve the problem of repeated synchronous bases.
  • Figure 9 is a reference diagram to help understand the linear feedback shift register.
  • the tap sequence of LFSR can be expressed as a polynomial congruence equation. This means that the coefficients of the polynomial must be 1 or 0. This is called a feedback polynomial or characteristic polynomial. For example, if the taps are the 16th, 14th, 13th, and 11th bits, the LFSR polynomial is:
  • LFSR includes 'External LFSR' or 'Internal LFSR' depending on the location of the XOR gate, and various methods known to those skilled in the art, such as 'Galois LFSR', can be applied. As LFSR is known to those skilled in the art, further detailed description will be omitted.
  • LFSR LFSR deterministic. Therefore, the sequence of values generated by LFSR is determined by the previous value. Additionally, because the number of values a register can have is finite, this sequence can be repeated at a specific period. Of course, if you choose a good linear function, you can create a long-period, seemingly random sequence. However, if the values output from LSFR are continuously input back into LSFR, there is a possibility that the sequence may be repeated. That is, in some cases, when steps S110 to S140 are repeatedly executed, the initial data may be output again. Therefore, it is necessary to prevent infinite repetition of steps S110 to S140.
  • One way to prevent repeated execution of LSFR is to set the number of executions in advance.
  • Figure 10 is a flowchart of a binary data shuffling method according to another embodiment of the present specification.
  • step S140 the processor may shuffle the binary data and then proceed to step S141.
  • step S141 the processor may store the number of shuffles each time the binary data is shuffled.
  • step S142 it can be determined whether the number of shuffles exceeds the preset maximum number of shuffles (K). If the number of shuffles is less than the maximum number of shuffles (K) (“NO” in step S142), the process can proceed to step S110.
  • steps S110 to S142 can be repeatedly executed until the number of shuffles reaches the maximum number of shuffles (K). On the other hand, if the number of shuffles is greater than the maximum number of shuffles (K) (“YES” in step S142), the process can proceed to step S150. Without performing additional shuffling, the final shuffled binary data is stored as base sequence converted binary data.
  • Another way to prevent repeated execution of LSFR is to find the binary data with the lowest number of base sequence repetitions among the converted binary data.
  • Figure 11 is a flowchart of a binary data shuffling method according to another embodiment of the present specification.
  • step S110 the processor may store the temporarily converted base sequence. That is, each time step S110 is executed after binary data shuffling, the converted temporary data can be stored. And in step S120, the processor may further store the number of identically repeated bases in the temporarily converted base sequence. In other words, it is possible to store more information about the actual number of identically repeated bases in the temporarily converted base sequence.
  • step S130 and S140 are the same as previously described.
  • step S143 following step S140 the processor may determine whether the inversely converted binary data is the same as the original binary data, that is, the original data.
  • step S143 If the inversely converted binary data is not identical to the original binary data (“NO” in step S143), the process may proceed to step S110. Thereafter, the processor may repeatedly execute steps S110 to S143. The repeated execution of steps S110 to S143 may be performed until the number of repeated sequences of the same base in step S120 is less than or equal to the standard number or until the shuffled binary data is identical to the original binary data.
  • step S144 the processor may select a base sequence with the smallest number of identically repeated bases among the temporarily converted base sequences. Then, the processor may inversely convert the base sequence selected in step S150 back into binary data and store the inversely converted binary data as binary data subject to base sequence conversion.
  • the processor may further add information on the number of times the nucleotide sequence has been converted to the binary data to be converted. For example, if there is no identical nucleotide repeat sequence in the initially temporarily converted nucleotide sequence, the shuffle count information may be '0'. In addition, if the number of times steps S120 to S140 are repeated two times until no identical nucleotide repeat sequence exists, the shuffle number information may be '2'. In this way, the binary data subject to base sequence conversion can be added to the binary data based on how many times it has been mixed.
  • the processor may store information on the number of shuffles of the binary data subject to nucleotide sequence conversion in a separate storage device.
  • the previous example is an embodiment in which the information on the number of times of mixing is converted into a base sequence and recorded in the DNA itself, and this other embodiment is an embodiment in which the information on the number of times of mixing is stored in a separate storage device.
  • the binary data to be converted to base sequence is synthesized into an actual DNA molecule according to the base sequence. Therefore, when a read request occurs for information stored as a DNA molecule, a process is required to unmix it and restore it to the original binary data.
  • the role of the binary data restoration method and device according to the present specification is to unravel this mixing and restore the original binary data.
  • the binary data recovery device may be a component of a DNA storage system.
  • the DNA storage system may include a base sequence analysis unit that analyzes (sequencing) DNA and outputs base sequence information. Therefore, the binary data restoration device and method according to the present specification assumes that information on the base sequence of the actual DNA molecule has been analyzed. Afterwards, the important thing in the restoration process is how many times the DNA molecule has been mixed and the restoration must be carried out according to the information on the number of times it has been mixed. As previously explained, the mixing number information may be stored within the DNA molecule or may be stored in a separate storage device.
  • Figure 12 is a block diagram schematically showing the configuration of a binary data recovery device according to an embodiment of the present specification.
  • the binary data recovery device 200 may include a base sequence conversion unit 210, a binary data processing unit 220, and a binary data disk drive unit 230. .
  • the base sequence conversion unit 210 can reversely convert the analyzed DNA base sequence information into binary data.
  • the base sequence conversion unit 210 may be the same or similar to the base sequence conversion unit 110 of the binary data shuffling device 100 described above.
  • the binary data processing unit 220 may separate the mixed count information included in the inversely converted binary data.
  • the binary data recovery device 200 according to an embodiment of the present specification is a device corresponding to an embodiment in which shuffle count information is included in a DNA molecule.
  • the inversely converted binary data includes shuffle count information, and the shuffle count information must be removed to return to the original binary data when unshuffled and restored.
  • the binary data disk drive unit 230 can restore binary data with the shuffle count information separated according to the shuffle count information.
  • Figure 13 is a block diagram schematically showing the configuration of a binary data recovery device according to another embodiment of the present specification.
  • the binary data recovery device 300 may include a base sequence conversion unit 310, a storage unit 320, and a binary data disk drive unit 330.
  • the base sequence conversion unit () can reversely convert the analyzed DNA base sequence information into binary data.
  • the base sequence conversion unit 310 may be the same or similar to the base sequence conversion unit 110 of the binary data shuffling device 100 described above.
  • the storage unit 320 can store information on the number of times each DNA has been mixed.
  • the binary data restoration device 300 according to another embodiment of the present specification is a device corresponding to an embodiment in which shuffle count information is not included in the DNA molecule.
  • the storage unit 320 is shown in this specification as being included in the binary data recovery device 300, the storage unit 320 may exist outside the binary data recovery device 300.
  • the binary data disk drive unit 330 can restore the inversely converted binary data according to the shuffle count information stored in the storage unit 320.
  • the base sequence conversion units 210 and 310 can remove the error correction code of the inversely converted binary data.
  • it can be converted to a base sequence by adding a code for error correction. Therefore, the inverted binary data also needs to have error correction codes removed.
  • the binary data disk drive units 230 and 330 can restore binary data using a linear feedback shift register (LFSR) method. This corresponds to the case where binary data was shuffled using the Linear Feedback Shift Register (LFSR) method.
  • LFSR Linear Feedback Shift Register
  • the Linear Feedback Shift Register (LFSR) can be restored to its original state when executed in reverse, just as when shuffling. Since LSFR is known to those skilled in the art, a detailed description of the algorithm is omitted.
  • the base sequence conversion unit 210, 310, binary data processing unit 220, binary data disk drive unit 230, 330, and storage unit 320 are used to execute the binary data restoration method described below. It may include processors, application-specific integrated circuits (ASICs), other chipsets, logic circuits, registers, communication modems, data processing devices, etc. known in the technical field to which the invention belongs.
  • ASICs application-specific integrated circuits
  • the base sequence conversion unit 210, 310, binary data processing unit 220, and binary data disk unit 230, 330 are implemented as a set of program modules. You can. At this time, the program module may be stored in the memory device and executed by the processor.
  • the binary data restoration method according to the present specification can be implemented in the form of a computer program written to perform each step described below on a computer and recorded on a computer-readable recording medium.
  • the binary data restoration method according to the present specification will be described on the assumption that it is executed by a processor.
  • Figure 14 is a flowchart of a binary data restoration method according to an embodiment of the present specification.
  • the binary data restoration method according to an embodiment of the present specification is a method corresponding to an embodiment in which information on the number of shuffles is included in a DNA molecule.
  • step S210 the processor may receive and store the analyzed DNA sequence information.
  • the processor may reversely convert the base sequence information into binary data.
  • the processor may separate the shuffled count information included in the inversely converted binary data.
  • the processor may restore binary data in which the shuffle count information is separated according to the shuffle count information.
  • Figure 15 is a flowchart of a binary data restoration method according to another embodiment of the present specification.
  • the binary data restoration method according to another embodiment of the present specification is a method corresponding to an embodiment in which information on the number of shuffles is not included in the DNA molecule.
  • step S310 the processor may receive and store the analyzed DNA sequence information.
  • the processor may reversely convert the base sequence information into binary data.
  • the processor can read the shuffle count information from the storage unit.
  • the processor may restore binary data in which the shuffle count information is separated according to the shuffle count information.
  • the processor may remove the error correction code of the inversely converted binary data.
  • the processor may restore binary data using a linear feedback shift register (LFSR) method.
  • LFSR linear feedback shift register
  • Figure 16 is a flowchart of the DNA encoding method according to the present specification.
  • the processor may first convert binary data into nucleotide sequence information.
  • the processor may secondary convert the primary converted nucleotide sequence information into nucleotide sequence information to which dummy nucleotide information is added at preset cycles.
  • the DNA encoding method according to the present specification will be explained through examples of binary data and base sequence information.
  • Figure 17 is an exemplary diagram of a DNA encoding method according to an embodiment of the present specification.
  • 2 bits of data are matched 1:1 with bases, but the DNA encoding method according to the present specification is not limited to the example shown.
  • One base can correspond to 1 bit, 2 bits, 3 bits, or 4 bits, and methods for matching binary data and base information can vary.
  • the base sequence information converted in this way is called ‘primary converted base sequence information’.
  • the dummy base information added in step S200 may be base information that is different from adjacent base information in the first converted base sequence information. It is known that defects may occur if the same base is synthesized repeatedly during the process of synthesizing DNA molecules. According to Poon and MacGregor (198) Biopolymers 45:427-434, when G (guanine) is synthesized repeatedly (continuously) more than 4 times, there is a problem of aggregation in the form of a guanine tetraplex. do. Although the above academic data mentions a problem with G (guanine), it does not rule out that the same or similar problems may occur with A (adenine), T (thymine), and C (cytosine).
  • Figure 17 is a table of types of dummy bases that can be added according to adjacent bases.
  • the added dummy base information may be information of at least two or more bases.
  • Figure 19 is an exemplary diagram of a DNA encoding method according to another embodiment of the present specification.
  • a dummy base consisting of three bases “AGT”, “GTA”, “TAC”, “AGT”, and "ACC” was added.
  • the number of bases constituting the dummy base information can be set in various ways.
  • the base information located at both ends of the added dummy base information may be base information that is different from the adjacent base information in the first converted base sequence information. This is also to prevent the same base from being synthesized repeatedly.
  • the examples shown in Figures 17 and 19 are examples of secondary conversion by adding a dummy base inside the primary converted base sequence.
  • the base located inside the DNA molecule is bonded to other bases on both sides, but the base located at the very end of the DNA molecule is connected to only one side and there is no molecular bond to the other side.
  • the bond at the end may be broken and lost.
  • the base corresponding to the actual information at the end may be damaged, this also needs to be protected.
  • the processor may thirdly convert the secondarily converted base sequence information into base sequence information with protective dummy base information added to both ends.
  • Figure 20 is an exemplary diagram of a DNA encoding method according to another embodiment of the present specification.
  • the processor may include a microprocessor, ASIC (application-specific integrated circuit), other chipsets, logic circuits, registers, communication modems, and data processing devices known in the technical field to which the present invention pertains to execute the above-described calculation and various control logic. It may include etc. Additionally, when the above-described control logic is implemented as software, the processor may be implemented as a set of program modules. At this time, the program module may be stored in the memory device and executed by the processor.
  • ASIC application-specific integrated circuit
  • the above-mentioned computer program is C/C++, C#, JAVA that the processor (CPU) of the computer can read through the device interface of the computer in order for the computer to read the program and execute the methods implemented in the program.
  • these codes may further include memory reference-related codes that indicate at which location (address address) in the computer's internal or external memory additional information or media required for the computer's processor to execute the above functions should be referenced. there is.
  • the code uses the computer's communication module to determine how to communicate with any other remote computer or server. It may further include communication-related codes regarding whether communication should be performed and what information or media should be transmitted and received during communication.
  • the storage medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as a register, cache, or memory.
  • examples of the storage medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc., but are not limited thereto. That is, the program may be stored in various recording media on various servers that the computer can access or on various recording media on the user's computer. Additionally, the medium may be distributed to computer systems connected to a network, and computer-readable code may be stored in a distributed manner.

Landscapes

  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Chemical & Material Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Evolutionary Computation (AREA)
  • Analytical Chemistry (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Biomedical Technology (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Genetics & Genomics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Epidemiology (AREA)
  • Public Health (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

Disclosed herein are a method and device for DNA encoding and decoding, which is designed to reduce the likelihood of errors during DNA synthesis and restoration. A method for DNA encoding according to the specification includes converting binary data into a nucleotide sequence and then adding dummy nucleotides at points in the sequence where the same nucleotide repeats. Another method for DNA encoding according to the specification includes temporarily converting binary data into a nucleotide sequence and, if the same nucleotide repeats more than a predetermined number of times, reverting the temporarily converted nucleotide sequence back into binary data, shuffling the reverted binary data, and then converting same back into a nucleotide sequence. In this case, the nucleotide sequence information can be reverted back into binary data, and the reverted binary data can be restored back to the original binary data based on the number of times the data was shuffled. Another method for DNA encoding according to the specification includes converting binary data into nucleotide sequence information and adding dummy nucleotide information at predetermined intervals within the converted nucleotide sequence information.

Description

DNA 인코딩 및 디코딩 방법 및 장치DNA encoding and decoding method and device
본 발명은 DNA 분자 기반 정보 저장 기술에 관한 것이며, 보다 상세하게는 DNA 합성을 위한 인코딩 및 데이터 복원을 위한 디코딩 기술에 관한 것이다.The present invention relates to information storage technology based on DNA molecules, and more specifically, to encoding technology for DNA synthesis and decoding technology for data recovery.
본 출원은 2022년 10월 06일 대한민국에 출원된 특허출원 제10-2022-0127750호, 2022년 10월 11일 대한민국에 출원된 특허출원 제10-2022-0129385호, 2022년 10월 24일 대한민국에 출원된 특허출원 제10-2022-0137061호 및 2022년 10월 26일 대한민국에 출원된 특허출원 제10-2022-0138893호에 기초한 우선권을 주장하며, 해당 출원의 명세서 및 도면에 개시된 모든 내용은 본 출원에 원용된다.This application is related to Patent Application No. 10-2022-0127750, filed in Korea on October 6, 2022, Patent Application No. 10-2022-0129385, filed in Korea on October 11, 2022, Republic of Korea on October 24, 2022 Priority is claimed based on Patent Application No. 10-2022-0137061 filed in Korea and Patent Application No. 10-2022-0138893 filed in Korea on October 26, 2022, and all contents disclosed in the specification and drawings of the application are It is used in this application.
이 부분에 기술된 내용은 단순히 본 명세서에 기재된 실시예에 대한 배경 정보를 제공할 뿐 반드시 종래 기술을 구성하는 것은 아니다.The content described in this section simply provides background information on the embodiments described in this specification and does not necessarily constitute prior art.
장기 기록매체로서 널리 사용되고 있는 자기 테이프는 데이터 저장 수명이 10년 정도로 제한되어 유지 및 관리비용이 지속적으로 요구된다. 반도체 저장장치의 경우 HDD와 SSD가 대표적이다. HDD 수명은 주로 5년이고, 데이터 접근 빈도수가 분기당 1회 미만에 사용하는 경우 10년 정도 수명을 가지지만, 충격에 매우 취약하다는 점과 최대 용량치에 한계가 있다. SSD의 경우 충격에는 강하지만 수명이 상대적으로 HDD보다 짧다. 최근에는 폭발적으로 생산되는 데이터량이 저장매체의 용량을 초과하여 과부하를 일으키고 있는 실정이고, 기존 정보 저장 매체의 데이터 저장밀도 한계에 도달하고 있는바, 새로운 방식의 저장장치가 필요하게 되었다.Magnetic tape, which is widely used as a long-term recording medium, has a data storage lifespan of about 10 years, so maintenance and management costs are continuously required. In the case of semiconductor storage devices, HDD and SSD are representative examples. The lifespan of HDDs is usually 5 years, and if the data access frequency is used less than once per quarter, the lifespan is about 10 years, but it is very vulnerable to shock and has a limit to its maximum capacity. SSDs are resistant to shocks, but their lifespan is relatively shorter than that of HDDs. Recently, the explosive amount of data produced has exceeded the capacity of storage media, causing overload, and the data storage density limit of existing information storage media has been reached, creating a need for new types of storage devices.
새로운 저장매체를 개발하기 위한 시도 중 DNA를 이용하여 새로운 저장매 체 개발의 시도가 이루어지고 있다. DNA를 저장매체로 이용할 경우, 기존의 저장매체의 단점인 데이터 저장 밀도를 뛰어 넘을 수 있고, 물리적인 충격에도 안정적으로 정보를 장기간 저장할 수 있다.Among attempts to develop new storage media, attempts are being made to develop new storage media using DNA. When DNA is used as a storage medium, it is possible to overcome the data storage density, which is a disadvantage of existing storage media, and information can be stored stably for a long period of time even when subjected to physical shock.
DNA는 잘 알려져 있듯이, 생물체의 가장 작은 단위인 세포 안에 들어 있으며, 모든 유전정보를 담고 있다. DNA가 가지고 있는 정보에 따라 모든 생물체는 마치 프로그램 된 것과 같이 성장하고 움직인다. 인간의 경우, 1개의 단일 세포에 들어 있는 DNA는 30억쌍의 염기 서열로 구성되어 있고, 이를 모두 해독한 유전정보의 크기를 환산한다면 약 1TB정도의 용량이다. 그리고 1개의 단일세포에는 폭이 2nm, 길이가 3m나 되는 두 가닥의 DNA가 들어있다. 따라서 이론적으로 EB(10^18 )이상 저장할 수 있는 차세대 바이오스토리지인 DNA는 초집약적으로 정보를 저장하기 위한 바이오소재로서 매우 적합하다. 또한, 저장 수명도 1,000년 이상이며, 저비용 저장이 가능할 것으로 보인다.As is well known, DNA is contained in cells, the smallest unit of living organisms, and contains all genetic information. All living things grow and move as if programmed, according to the information contained in DNA. In the case of humans, the DNA contained in one single cell consists of 3 billion base pairs, and the size of the genetic information decoded is approximately 1TB. And one single cell contains two strands of DNA that are 2 nm wide and 3 m long. Therefore, theoretically, DNA, a next-generation biostorage that can store more than EB (10^18), is very suitable as a biomaterial for ultra-intensive information storage. In addition, the storage life is more than 1,000 years, and low-cost storage is expected to be possible.
도 1은 DNA 염기 서열을 이용한 정보 저장의 개념도이다.Figure 1 is a conceptual diagram of information storage using DNA base sequences.
도 1을 참조하면, 저장하고자 하는 2진 데이터를 뉴클레오티드 A(adenine), T(thymine), G(guanine), C(cytosine)로 인코딩(Encoding)한다. 인코딩된 염기 서열에 따라 DNA를 합성(Synthesis)하고, 합성된 DNA 분자를 저장(Storage)한다. 이후, 저장된 DNA 분자를 검색(Retrieval)을 통해 선택하고, 선택된 DNA 분자의 염기 서열을 분석(Sequencing))하고, 분석된 염기 순서에 따라 2진 데이터로 디코딩(Decoding)한다.Referring to Figure 1, binary data to be stored is encoded with nucleotides A (adenine), T (thymine), G (guanine), and C (cytosine). DNA is synthesized according to the encoded base sequence, and the synthesized DNA molecule is stored. Afterwards, the stored DNA molecules are selected through retrieval, the nucleotide sequence of the selected DNA molecule is analyzed (Sequencing), and binary data is decoded according to the analyzed nucleotide sequence.
본 명세서는 DNA 합성 및 복원할 때 오류 가능성을 낮춘 DNA 인코딩 방법 및 장치를 제공하는 것을 목적으로 한다.The purpose of this specification is to provide a DNA encoding method and device that reduces the possibility of errors when synthesizing and restoring DNA.
본 명세서는 DNA 합성 및 복원할 때 오류 가능성을 낮춘 이진 데이터 섞거나 복원하는 방법 및 장치를 제공하는 것을 목적으로 한다.The purpose of this specification is to provide a method and device for shuffling or restoring binary data with a reduced possibility of error when synthesizing and restoring DNA.
본 명세서는 합성된 DNA의 구조적 안정성을 향상시킬 수 있는 DNA 인코딩 방법 및 장치를 제공하는 것을 목적으로 한다.The purpose of this specification is to provide a DNA encoding method and device that can improve the structural stability of synthesized DNA.
본 명세서는 상기 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.This specification is not limited to the above-mentioned tasks, and other tasks not mentioned will be clearly understood by those skilled in the art from the description below.
상술한 과제를 해결하기 위한 본 명세서에 따른 DNA 인코딩 방법은, (a) 프로세서가 2진 데이터를 염기 서열로 1차 변환하는 단계; (b) 프로세서가 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 단계; 및 (c) 프로세서가 상기 동일 염기가 반복된 지점에 더미 염기를 추가한 염기 서열로 2차 변환하는 단계;를 포함할 수 있다.The DNA encoding method according to the present specification to solve the above-described problem includes the steps of: (a) a processor first converting binary data into a base sequence; (b) a step where the processor finds a point where the same base is repeated in the first converted base sequence; and (c) secondary conversion by the processor into a base sequence in which a dummy base is added at a point where the same base is repeated.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계는, 프로세서가 미리 정해진 개수의 동일 염기가 반복된 지점을 찾는 단계일 수 있다.According to an embodiment of the present specification, step (b) may be a step in which the processor searches for a point where a predetermined number of identical bases are repeated.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계는, 프로세서가 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾는 단계일 수 있다.According to one embodiment of the present specification, step (b) may be a step in which the processor finds a point where the same base is repeated according to the number set for each base.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계는, (b-1) 프로세서가 1차 변환된 염기 서열 내 반복된 염기에 대한 빈도수 테이블을 생성하는 단계; (b-2) 프로세서가 상기 생성된 빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정하는 단계; 및 (b-3) 프로세서가 상기 (b-2) 단계에서 결정된 개수에 따라 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 단계;를 포함할 수 있다.According to one embodiment of the present specification, step (b) includes: (b-1) generating a frequency table for repeated bases in the primary converted base sequence by a processor; (b-2) a step of the processor determining the number of repetitions of the same base requiring addition of a dummy base using the generated frequency table; and (b-3) the processor searches for points where the same base is repeated in the primary converted base sequence according to the number determined in step (b-2).
본 명세서의 일 실시예에 따르면, 상기 (b-2) 단계는, 프로세서가 빈도수의 평균값을 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정하는 단계일 수 있다.According to an embodiment of the present specification, the step (b-2) may be a step in which the processor determines the average value of the frequency as the number of repetitions of the same base that requires the addition of a dummy base.
본 명세서의 일 실시예에 따르면, 상기 (b-2) 단계는, 프로세서가 각 염기마다 빈도수의 평균값을 각 염기마다 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정하는 단계일 수 있다.According to an embodiment of the present specification, step (b-2) may be a step in which the processor determines the average frequency of each base as the number of repetitions of the same base that requires the addition of a dummy base for each base.
본 명세서의 일 실시예에 따르면, 상기 (c) 단계는, 프로세서가 미리 정해진 적어도 하나 이상의 서열을 가진 더미 염기를 추가하여 2차 변환하는 단계일 수 있다.According to an embodiment of the present specification, step (c) may be a step of secondary conversion by the processor adding a dummy base having at least one predetermined sequence.
본 명세서의 일 실시예에 따르면, 상기 (c) 단계는, 프로세서가 상기 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기를 더미 염기로 추가하여 2차 변환하는 단계일 수 있다.According to one embodiment of the present specification, step (c) may be a step in which the processor performs secondary conversion by adding bases different from the adjacent bases on both sides of the point where the same base is repeated as dummy bases.
본 명세서의 일 실시예에 따르면, 상기 (c) 단계는, 프로세서가 2이상의 서열을 가진 더미 염기를 추가하여 2차 변환하는 단계일 수 있다.According to one embodiment of the present specification, step (c) may be a step in which the processor performs secondary conversion by adding dummy bases with two or more sequences.
본 명세서에 따른 DNA 인코딩 방법은, 컴퓨터에서 DNA 인코딩 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다.The DNA encoding method according to the present specification may be implemented in the form of a computer program written to perform each step of the DNA encoding method on a computer and recorded on a computer-readable recording medium.
상술한 과제를 해결하기 위한 본 명세서에 따른 DNA 인코딩 장치는, 2진 데이터를 염기 서열로 1차 변환하고, 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾고, 상기 동일 염기가 반복된 지점에 더미 염기를 추가한 염기 서열로 2차 변환하는 프로세서;를 포함할 수 있다.The DNA encoding device according to the present specification for solving the above-mentioned problems primarily converts binary data into a base sequence, finds a point where the same base is repeated in the first converted base sequence, and detects the repeating point of the same base. It may include a processor that performs secondary conversion into a base sequence with dummy bases added at the points.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 미리 정해진 개수의 동일 염기가 반복된 지점을 찾을 수 있다.According to an embodiment of the present specification, the processor can find a point where a predetermined number of identical bases are repeated.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾을 수 있다.According to an embodiment of the present specification, the processor can find a point where the same base is repeated according to the number set for each base.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 1차 변환된 염기 서열 내 반복된 염기에 대한 빈도수 테이블을 생성하고, 상기 생성된 빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정하고, 상기 결정된 개수에 따라 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾을 수 있다.According to one embodiment of the present specification, the processor generates a frequency table for repeated bases in the primary converted base sequence, and uses the generated frequency table to determine the number of repetitions of the same base that requires addition of a dummy base. The point where the same base is repeated in the primary converted base sequence can be found according to the determined number.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 빈도수의 평균값을 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정할 수 있다.According to an embodiment of the present specification, the processor may determine the average value of the frequency as the number of repetitions of the same base that require the addition of a dummy base.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 각 염기마다 빈도수의 평균값을 각 염기마다 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정할 수 있다.According to an embodiment of the present specification, the processor may determine the average frequency for each base as the number of repetitions of the same base that requires the addition of a dummy base for each base.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 미리 정해진 적어도 하나 이상의 서열을 가진 더미 염기를 추가하여 2차 변환할 수 있다.According to an embodiment of the present specification, the processor may perform secondary conversion by adding a dummy base having at least one predetermined sequence.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 상기 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기를 더미 염기로 추가하여 2차 변환할 수 있다.According to an embodiment of the present specification, the processor may perform secondary conversion by adding bases different from the adjacent bases on both sides of the point where the same base is repeated as dummy bases.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 2이상의 서열을 가진 더미 염기를 추가하여 2차 변환할 수 있다.According to one embodiment of the present specification, the processor can perform secondary conversion by adding dummy bases with two or more sequences.
본 명세서에 따른 DNA 인코딩 장치는 DNA 인코딩 장치; 및 상기 DNA 인코딩 장치에서 출력된 염기 서열에 따라 DNA를 합성하는 DNA 합성 장치;를 포함하는 DNA 저장 시스템의 일 구성요소가 될 수 있다.The DNA encoding device according to the present specification includes a DNA encoding device; and a DNA synthesis device that synthesizes DNA according to the nucleotide sequence output from the DNA encoding device.
상술한 과제를 해결하기 위한 본 명세서에 따른 이진 데이터 섞는 방법은, (a) 프로세서가 이진 데이터를 염기 서열로 임시 변환하는 단계; (b) 프로세서가 임시 변환된 염기 서열 내 동일 염기가 미리 설정된 개수 이상 반복된 지점(이하 '동일염기반복서열')이 존재하는지 판단하는 단계; (c) 프로세서가 상기 (b) 단계에서 동일염기반복서열이 존재할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 섞은 후 다시 단계 (a)로 이행하는 단계; 및 (d) 프로세서가 상기 (b) 단계에서 동일염기반복서열이 존재하지 않을 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하는 단계;를 포함할 수 있다.The binary data shuffling method according to the present specification to solve the above-described problem includes the steps of: (a) a processor temporarily converting binary data into a base sequence; (b) a step where the processor determines whether there is a point in the temporarily converted base sequence where the same base is repeated more than a preset number (hereinafter referred to as 'identical repeat sequence'); (c) when the same base repeat sequence exists in step (b), the processor reversely converts the temporarily converted base sequence back into binary data, shuffles the inverted binary data, and then returns to step (a); and (d) when the processor does not exist in the step (b), the temporarily converted base sequence is converted back into binary data, and the converted binary data is stored as binary data to be converted to base sequence. Step; may include.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계는 프로세서가 미리 정해진 개수의 동일 염기가 반복된 지점을 찾는 단계일 수 있다.According to an embodiment of the present specification, step (b) may be a step in which the processor searches for a point where a predetermined number of identical bases are repeated.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계는 프로세서가 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾는 단계일 수 있다.According to one embodiment of the present specification, step (b) may be a step in which the processor searches for a point where the same base is repeated according to the number set for each base.
본 명세서의 일 실시예에 따르면, 상기 (c) 단계는 프로세서가 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 섞는 단계일 수 있다.According to an embodiment of the present specification, step (c) may be a step in which the processor shuffles binary data using a linear feedback shift register (LFSR) method.
본 명세서의 일 실시예에 따르면, 상기 (c) 단계는, (c-1) 프로세서가 이진 데이터를 섞을 때마다 섞은 횟수를 저장하는 단계; 및 (c-2) 프로세서가 미리 설정된 최대 섞음 횟수에 도달할 때, (d) 단계로 이행하는 단계;를 포함할 수 있다.According to an embodiment of the present specification, step (c) includes: (c-1) storing the number of shuffles each time the processor shuffles binary data; and (c-2) when the processor reaches a preset maximum number of shuffles, moving to step (d).
본 명세서의 일 실시예에 따르면, 상기 (a) 단계는 프로세서가 임시 변환된 염기 서열을 저장하는 단계이고, 상기 (c) 단계는 프로세서가 동일반복된 염기의 개수를 상기 임시 변환된 염기 서열에 더 저장하고, (c-1) 프로세서가 역변환된 이진 데이터가 최초 이진 데이터와 동일하지 않을 때, 역변환된 이진 데이터를 섞은 후 다시 단계 (a)로 이행하는 단계; 및 (c-2) 프로세서가 역변환된 이진 데이터가 최초 이진 데이터와 동일할 때, 임시 변환된 염기 서열 중 동일반복된 염기의 개수가 가장 적은 염기 서열을 상기 (d) 단계로 보내는 단계;를 포함할 수 있다.According to an embodiment of the present specification, step (a) is a step in which the processor stores a temporarily converted base sequence, and step (c) is a step in which the processor stores the number of identically repeated bases in the temporarily converted base sequence. Further storing, (c-1) when the processor inverts the binary data and is not the same as the original binary data, mixing the inverse binary data and then returning to step (a); And (c-2) when the processor reversely converts the binary data to the same as the original binary data, sending the base sequence with the smallest number of identically repeated bases among the temporarily converted base sequences to step (d). can do.
본 명세서에 따른 이진 데이터 섞는 방법은, 컴퓨터에서이진 데이터 섞는 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다.The binary data shuffling method according to the present specification may be implemented in the form of a computer program written to perform each step of the binary data shuffling method on a computer and recorded on a computer-readable recording medium.
상술한 과제를 해결하기 위한 본 명세서에 따른 이진 데이터 섞는 장치는, 이진 데이터를 염기 서열로 변환 또는 염기 서열을 이진 데이터로 역변환하는 염기서열변환부; 상기 염기서열변환부에서 임시 변환된 염기 서열 내 동일 염기가 미리 설정된 개수 이상 반복된 지점(이하 '동일염기반복서열')이 존재하는지 판단하는 반복염기분석부; 이진 데이터를 섞은 후 출력하는 이진데이터스크램부; 및 상기 염기서열변환부, 반복염기분석부 및 이진데이터스크램부를 제어하는 제어부;를 포함하되, 상기 제어부는, 상기 반복염기분석부에서 동일염기반복서열이 존재한 것으로 판단할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 섞은 후, 섞어진 이진 데이터를 다시 염기 서열로 변환하도록 제어하고, 상기 반복염기분석부에서 동일염기반복서열이 존재하지 않을 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어할 수 있다.A binary data mixing device according to the present specification for solving the above-mentioned problems includes a base sequence conversion unit that converts binary data into a base sequence or reversely converts the base sequence into binary data; A repetitive base analysis unit that determines whether there is a point in the base sequence temporarily converted by the base sequence conversion unit where the same base is repeated more than a preset number (hereinafter referred to as 'identical repeat sequence'); A binary data scram unit that mixes binary data and outputs it; and a control unit that controls the base sequence conversion unit, the repetitive base analysis unit, and the binary data scram unit, wherein the control unit determines that the same base repeat sequence exists in the repetitive base analysis unit, and the temporary conversion After converting the base sequence back into binary data, mixing the back-converted binary data, controlling to convert the mixed binary data back into base sequence, and when there is no identical base repeat sequence in the repeat base analysis unit, It can be controlled to convert the temporarily converted base sequence back into binary data and store the inverted binary data as binary data subject to base sequence conversion.
본 명세서의 일 실시예에 따르면, 상기 반복염기분석부는 미리 정해진 개수의 동일 염기가 반복된 지점을 찾을 수 있다.According to an embodiment of the present specification, the repetitive base analysis unit can find a point where a predetermined number of identical bases are repeated.
본 명세서의 일 실시예에 따르면, 상기 반복염기분석 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾을 수 있다.According to an embodiment of the present specification, a point where the same base is repeated can be found according to the number set for each base in the repeated base analysis.
본 명세서의 일 실시예에 따르면, 상기 이진데이터스크램부는 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 섞을 수 있다.According to an embodiment of the present specification, the binary data scram unit can shuffle binary data using a linear feedback shift register (LFSR) method.
본 명세서의 일 실시예에 따르면, 상기 제어부는 상기 이진데이터스크램부가 이진 데이터를 섞을 때마다 섞은 횟수를 저장하고, 미리 설정된 최대 섞음 횟수에 도달할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어할 수 있다.According to an embodiment of the present specification, the control unit stores the number of shuffles each time the binary data scram unit shuffles the binary data, and when the preset maximum shuffle number is reached, the temporarily converted nucleotide sequence is converted back into binary data. It can be controlled to inversely convert and store the inversely converted binary data as binary data subject to nucleotide sequence conversion.
본 명세서의 일 실시예에 따르면, 상기 제어부는 상기 염기서열변환부에서 임시 변환될 때마다 염기 서열을 저장하고, 상기 반복염기분석부에서 분석된 동일반복된 염기의 개수를 상기 임시 변환된 염기 서열에 더 저장하고, 역변환된 이진 데이터가 최초 이진 데이터와 동일하지 않을 때, 역변환된 이진 데이터를 섞도록 제어하고, 역변환된 이진 데이터가 최초 이진 데이터와 동일할 때, 동일반복된 염기의 개수가 가장 적은 임시 변환된 염기 서열을 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어할 수 있다.According to one embodiment of the present specification, the control unit stores the base sequence each time it is temporarily converted in the base sequence conversion unit, and calculates the number of identically repeated bases analyzed in the repeat base analysis unit to the temporarily converted base sequence. When the inverted binary data is not the same as the original binary data, the inverted binary data is controlled to be mixed, and when the inverted binary data is the same as the original binary data, the number of identically repeated bases is the highest. The adversary can control the temporarily converted base sequence to store the inversely converted binary data as binary data subject to base sequence conversion.
본 명세서에 따른 이진 데이터 섞는 장치는, 이진 데이터 섞는 장치; 및 상기 이진 데이터 섞는 장치에 출력된 이진 데이터에 따라 염기 서열로 변환 후 DNA를 합성하는 DNA 합성 장치;를 포함하는 DNA 저장 시스템의 일 구성요소가 될 수 있다.The binary data shuffling device according to the present specification includes: a binary data shuffling device; and a DNA synthesis device that converts the binary data output from the binary data mixing device into a base sequence and then synthesizes DNA.
상술한 과제를 해결하기 위한 본 명세서에 따른 이진 데이터 복원 방법은, (a) 프로세서가 분석된 DNA 염기서열 정보를 수신 및 저장하는 단계; (b) 프로세서가 염기서열 정보를 이진 데이터로 역변환하는 단계; (c) 프로세서가 역변환된 이진 데이터 내에 포함된 섞인 횟수 정보를 분리하는 단계; 및 (d) 프로세서가 상기 섞인 횟수 정보에 따라 섞인 횟수 정보가 분리된 이진 데이터를 복원하는 단계;를 포함할 수 있다.The binary data restoration method according to the present specification to solve the above-described problem includes the steps of: (a) receiving and storing analyzed DNA sequence information by a processor; (b) a step of the processor converting the base sequence information into binary data; (c) the processor separating the shuffle count information included in the inverted binary data; and (d) a step of the processor restoring binary data from which the shuffle count information has been separated according to the shuffle count information.
상술한 과제를 해결하기 위한 본 명세서에 따른 이진 데이터 복원 방법은, (a) 프로세서가 분석된 DNA 염기서열 정보를 수신 및 저장하는 단계; (b) 프로세서가 염기서열 정보를 이진 데이터로 역변환하는 단계; (c) 프로세서가 저장부에서 섞인 횟수 정보를 읽어 오는 단계; 및 (d) 프로세서가 상기 섞인 횟수 정보에 따라 상기 역변환된 이진 데이터를 복원하는 단계;를 포함할 수 있다.The binary data restoration method according to the present specification to solve the above-described problem includes the steps of: (a) receiving and storing analyzed DNA sequence information by a processor; (b) a step of the processor converting the base sequence information into binary data; (c) the processor reading shuffle count information from the storage unit; and (d) a step of the processor restoring the inversely converted binary data according to the shuffle count information.
본 명세서에 따른 이진 데이터 복원 방법은, 상기 (b) 단계 이후, 역변환된 이진 데이터의 오류 정정 코드를 제거하는 단계;를 더 포함할 수 있다.The binary data restoration method according to the present specification may further include removing an error correction code of the inversely converted binary data after step (b).
본 명세서에 따른 이진 데이터 복원 방법의 상기 (d) 단계는, 프로세서가 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 복원하는 단계일 수 있다.Step (d) of the binary data restoration method according to the present specification may be a step in which the processor restores binary data using a linear feedback shift register (LFSR) method.
본 명세서에 따른 이진 데이터 복원 방법 컴퓨터에서 이진 데이터 복원 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다.The binary data restoration method according to the present specification may be implemented in the form of a computer program written to perform each step of the binary data restoration method on a computer and recorded on a computer-readable recording medium.
상술한 과제를 해결하기 위한 본 명세서에 따른 이진 데이터 복원 장치는, 분석된 DNA 염기서열 정보를 이진 데이터로 역변환하는 염기서열변환부; 역변환된 이진 데이터 내에 포함된 섞인 횟수 정보를 분리하는 이진 데이터 가공부; 및 상기 섞인 횟수 정보에 따라 섞인 횟수 정보가 분리된 이진 데이터를 복원하는 이진데이터디스크램부;를 포함할 수 있다.The binary data restoration device according to the present specification for solving the above-described problems includes a base sequence conversion unit that reversely converts the analyzed DNA base sequence information into binary data; a binary data processing unit that separates mixed count information included in the inversely converted binary data; and a binary data disk drive unit that restores binary data from which the shuffle count information has been separated according to the shuffle count information.
상술한 과제를 해결하기 위한 본 명세서에 따른 이진 데이터 복원 장치는, 분석된 DNA 염기서열 정보를 이진 데이터로 역변환하는 염기서열변환부; DNA 마다 섞인 횟수 정보를 저장하는 저장부; 및 상기 저장부에 저장된 섞인 횟수 정보에 따라 상기 역변환된 이진 데이터를 복원하는 이진데이터디스크램부;를 포함할 수 있다.The binary data restoration device according to the present specification for solving the above-described problems includes a base sequence conversion unit that reversely converts the analyzed DNA base sequence information into binary data; A storage unit that stores information on the number of times each DNA is mixed; and a binary data disk drive unit that restores the inversely converted binary data according to the shuffle count information stored in the storage unit.
본 명세서에 따른 이진 데이터 복원 장치의 상기 염기서열변환부는, 역변환된 이진 데이터의 오류 정정 코드를 제거할 수 있다.The base sequence conversion unit of the binary data restoration device according to the present specification can remove the error correction code of the inversely converted binary data.
본 명세서에 따른 이진 데이터 복원 장치의 상기 이진데이터디스크램부는, The binary data discram unit of the binary data recovery device according to the present specification,
선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 복원할 수 있다.Binary data can be restored using the Linear Feedback Shift Register (LFSR) method.
본 명세서에 따른 이진 데이터 복원 장치는, 이진 데이터 복원 장치; 및 DNA를 분석하여 염기서열 정보를 출력하는 염기서열 분석부;를 포함하는 DNA 저장 시스템의 일 구성요소가 될 수 있다.A binary data recovery device according to the present specification includes: a binary data recovery device; and a base sequence analysis unit that analyzes DNA and outputs base sequence information.
상술한 과제를 해결하기 위한 본 명세서에 따른 DNA 인코딩 방법은, (a) 프로세서가 이진 데이터를 염기 서열 정보로 1차 변환하는 단계; 및 (b) 프로세서가 1차 변환된 염기 서열 정보 내 미리 설정된 주기마다 더미 염기 정보를 추가한 염기 서열 정보로 2차 변환하는 단계;를 포함할 수 있다.The DNA encoding method according to the present specification to solve the above-described problem includes (a) a processor first converting binary data into nucleotide sequence information; and (b) a step of secondary conversion, by the processor, into base sequence information to which dummy base information is added at every preset cycle in the primary converted base sequence information.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계에서 추가된 더미 염기 정보는, 1차 변환된 염기 서열 정보 내 인접한 염기 정보와 다른 염기 정보일 수 있다.According to an embodiment of the present specification, the dummy base information added in step (b) may be base information that is different from adjacent base information in the first converted base sequence information.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계에서 추가된 더미 염기 정보는, 적어도 둘 이상의 염기 정보일 수 있다.According to an embodiment of the present specification, the dummy base information added in step (b) may be at least two or more base information.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계에서 추가된 더미 염기 정보는, 추가된 더미 염기 정보의 양 끝에 위치한 염기 정보는 1차 변환된 염기 서열 정보 내 인접한 염기 정보와 다른 염기 정보일 수 있다.According to an embodiment of the present specification, the dummy base information added in step (b) is base information located at both ends of the added dummy base information that is different from the adjacent base information in the first converted base sequence information. You can.
본 명세서에 따른 DNA 인코딩 방법은, (c) 프로세서가 2차 변환된 염기 서열 정보의 양 끝 단에 보호 더미 염기 정보를 추가한 염기 서열 정보로 3차 변환하는 단계;를 더 포함할 수 있다.The DNA encoding method according to the present specification may further include the step of (c) the processor thirdly converting the secondarily converted base sequence information into base sequence information with protective dummy base information added to both ends.
본 명세서에 따른 DNA 인코딩 방법은, 컴퓨터에서 DNA 인코딩 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다.The DNA encoding method according to the present specification may be implemented in the form of a computer program written to perform each step of the DNA encoding method on a computer and recorded on a computer-readable recording medium.
상술한 과제를 해결하기 위한 본 명세서에 따른 DNA 인코딩 장치는, 이진 데이터를 염기 서열 정보로 1차 변환하고, 1차 변환된 염기 서열 정보 내 미리 설정된 주기마다 더미 염기 정보를 추가한 염기 서열 정보로 2차 변환하는 프로세서;를 포함할 수 있다.The DNA encoding device according to the present specification for solving the above-mentioned problems primarily converts binary data into base sequence information, and adds dummy base information to the first converted base sequence information at preset cycles. It may include a processor that performs secondary conversion.
본 명세서의 일 실시예에 따르면, 상기 프로세서는 1차 변환된 염기 서열 정보 내 인접한 염기 정보와 다른 염기 정보를 가진 더미 염기 정보를 추가할 수 있다.According to an embodiment of the present specification, the processor may add dummy base information having base information different from adjacent base information in the primary converted base sequence information.
본 명세서의 일 실시예에 따르면, 상기 프로세서는 적어도 둘 이상의 염기 정보로 구성된 더미 염기 정보를 추가할 수 있다.According to an embodiment of the present specification, the processor may add dummy base information consisting of at least two or more base information.
본 명세서의 일 실시예에 따르면, 상기 프로세서는 더미 염기 정보의 양 끝에 위치한 염기 정보와 1차 변환된 염기 서열 정보 내 인접한 염기 정보가 서로 다른 염기 정보를 가진 더미 염기 정보를 추가할 수 있다.According to an embodiment of the present specification, the processor may add dummy base information in which base information located at both ends of the dummy base information and adjacent base information in the first converted base sequence information have different base information.
본 명세서의 일 실시예에 따르면, 상기 프로세서는 2차 변환된 염기 서열 정보의 양 끝 단에 보호 더미 염기 정보를 추가한 염기 서열 정보로 3차 더 변환할 수 있다.According to an embodiment of the present specification, the processor may further convert the secondary converted base sequence information a third time into base sequence information with protective dummy base information added to both ends.
본 명세서에 따른 DNA 인코딩 장치는, DNA 인코딩 장치; 및 상기 DNA 인코딩 장치에서 출력된 염기 서열에 따라 DNA를 합성하는 DNA 합성 장치;를 포함하는 DNA 저장 시스템의 일 구성요소가 될 수 있다.The DNA encoding device according to the present specification includes: a DNA encoding device; and a DNA synthesis device that synthesizes DNA according to the nucleotide sequence output from the DNA encoding device.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
본 명세서에 따르면, DNA 합성 및 복원할 때 오류 가능성을 낮출 수 있다. 또한, 합성된 DNA의 구조적 안정성을 향상시킬 수 있다.According to the present specification, the possibility of errors when synthesizing and restoring DNA can be reduced. Additionally, the structural stability of synthesized DNA can be improved.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.
도 1은 DNA 염기 서열을 이용한 정보 저장의 개념도이다.Figure 1 is a conceptual diagram of information storage using DNA base sequences.
도 2는 본 명세서에 따른 DNA 정보 저장 시스템에 대한 참고도이다.Figure 2 is a reference diagram for the DNA information storage system according to the present specification.
도 3은 본 명세서에 따른 DNA 인코딩 방법의 순서도이다.Figure 3 is a flow chart of the DNA encoding method according to the present specification.
도 4는 본 명세서에 따른 DNA 인코딩 방법의 예시도이다.Figure 4 is an exemplary diagram of a DNA encoding method according to the present specification.
도 5는 동일 염기가 반복된 지점과 그 다음 인접한 염기에 따라 추가될 수 있는 더미 염기에 대한 예시이다.Figure 5 is an example of a dummy base that can be added depending on the point where the same base is repeated and the next adjacent base.
도 6은 본 명세서에 따른 이진 데이터 섞는 장치의 개략적인 구성도이다.Figure 6 is a schematic configuration diagram of a binary data shuffling device according to the present specification.
도 7은 본 명세서의 일 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.Figure 7 is a flowchart of a binary data shuffling method according to an embodiment of the present specification.
도 8은 이진데이터의 염기 서열 변환에 대한 참고도이다.Figure 8 is a reference diagram for nucleotide sequence conversion of binary data.
도 9는 선형 되먹임 시프트 레지스터의 이해를 돕기 위한 참고도이다.Figure 9 is a reference diagram to help understand the linear feedback shift register.
도 10은 본 명세서의 다른 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.Figure 10 is a flowchart of a binary data shuffling method according to another embodiment of the present specification.
도 11은 본 명세서의 또 다른 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.Figure 11 is a flowchart of a binary data shuffling method according to another embodiment of the present specification.
도 12는 본 명세서의 일 실시예에 따른 이진 데이터 복원 장치의 구성을 개략적으로 도시한 블록도이다.Figure 12 is a block diagram schematically showing the configuration of a binary data recovery device according to an embodiment of the present specification.
도 13은 본 명세서의 다른 실시예에 따른 이진 데이터 복원 장치의 구성을 개략적으로 도시한 블록도이다.Figure 13 is a block diagram schematically showing the configuration of a binary data recovery device according to another embodiment of the present specification.
도 14는 본 명세서의 일 실시예에 따른 이진 데이터 복원 방법의 흐름도이다.Figure 14 is a flowchart of a binary data restoration method according to an embodiment of the present specification.
도 15는 본 명세서의 다른 실시예에 따른 이진 데이터 복원 방법의 흐름도이다.Figure 15 is a flowchart of a binary data restoration method according to another embodiment of the present specification.
도 16은 본 명세서에 따른 DNA 인코딩 방법의 순서도이다.Figure 16 is a flowchart of the DNA encoding method according to the present specification.
도 17은 본 명세서의 일 실시예에 따른 DNA 인코딩 방법의 예시도이다.Figure 17 is an exemplary diagram of a DNA encoding method according to an embodiment of the present specification.
도 18은 인접 염기에 따른 추가될 수 있는 더미 염기의 종류에 대한 표이다.Figure 18 is a table of types of dummy bases that can be added according to adjacent bases.
도 19는 본 명세서의 다른 실시예에 따른 DNA 인코딩 방법의 예시도이다.Figure 19 is an exemplary diagram of a DNA encoding method according to another embodiment of the present specification.
도 20은 본 명세서의 또 다른 실시예에 따른 DNA 인코딩 방법의 예시도이다.Figure 20 is an exemplary diagram of a DNA encoding method according to another embodiment of the present specification.
본 명세서에 개시된 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 명세서가 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 명세서의 개시가 완전하도록 하고, 본 명세서가 속하는 기술 분야의 통상의 기술자(이하 '당업자')에게 본 명세서의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 명세서의 권리 범위는 청구항의 범주에 의해 정의될 뿐이다. The advantages and features of the invention disclosed in this specification and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the present specification is not limited to the embodiments disclosed below and may be implemented in various different forms, and the present embodiments are merely intended to ensure that the disclosure of the present specification is complete and to provide a general understanding of the technical field to which the present specification pertains. It is provided to fully inform those skilled in the art of the scope of this specification, and the scope of rights of this specification is only defined by the scope of the claims.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 명세서의 권리 범위를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.The terms used in this specification are for describing embodiments and are not intended to limit the scope of this specification. As used herein, singular forms also include plural forms, unless specifically stated otherwise in the context. As used in the specification, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other elements in addition to the mentioned elements.
명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.Like reference numerals refer to like elements throughout the specification, and “and/or” includes each and every combination of one or more of the referenced elements. Although “first”, “second”, etc. are used to describe various components, these components are of course not limited by these terms. These terms are merely used to distinguish one component from another. Therefore, it goes without saying that the first component mentioned below may also be a second component within the technical spirit of the present invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 명세서가 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings commonly understood by those skilled in the art to which this specification pertains. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined.
도 2는 본 명세서에 따른 DNA 정보 저장 시스템에 대한 참고도이다.Figure 2 is a reference diagram for the DNA information storage system according to the present specification.
도 2를 참조하면, DNA 정보 저장 시스템은 크게 제어부(Controller)와 DNA 분자부(DNA Molecular)로 나누어진다. 제어부(Controller)는 호스트(Host)로부터 정보의 저장 요청(Write)을 받으면, 바이너리(Binary) 데이터를 압축(Compression)하고, 압축된 데이터를 섞을 수 있다(Scrambler). 데이터를 섞는 이유는 이후 바이너리 데이터를 염기서열에 치환할 때, 동일한 염기서열이 반복되는 것을 방지하기 위함이다. 섞는 과정이 완료된 데이터는 오류 정정 코드(Error Correction Code, ECC)가 추가될 수 있다. 그 다음으로 바이너리 데이터는 이에 대응하는 염기서열 정보로 변환(DNA Library)될 수 있다. DNA 분자부(DNA Molecular)는 염기서열로 변환된 데이터에 따라 실제 DNA 분자를 합성(Synthesis)할 수 있다.Referring to FIG. 2, the DNA information storage system is largely divided into a controller and a DNA molecular unit. When the controller receives a request to store information (Write) from the host, it can compress binary data and scramble the compressed data (Scrambler). The reason for shuffling the data is to prevent the same base sequence from being repeated when the binary data is later replaced with the base sequence. An error correction code (ECC) may be added to data that has completed the shuffling process. Next, the binary data can be converted into corresponding base sequence information (DNA Library). DNA Molecular can synthesize actual DNA molecules according to data converted to base sequence.
이후, DNA 분자로 저장된 정보를 독출(Read) 요청이 발생하면, DNA 분자부(DNA Molecular)는 DNA 분자의 염기서열을 분석(Sequencing)한다. 제어부(Controller)는 분석된 염기서열에 따라 다시 바이너리 데이터로 변환하고 오류 정정 코드(ECC)를 이용하여 데이터 오류 등을 정정한다(Encoder). 오류 등이 정정된 바이너리 데이터는 섞인 상태를 풀고(Descrambler), 압축을 해제(Decompression)하여, 원 바이너리(Binary) 데이터(정보)를 제공할 수 있다.Afterwards, when a request to read information stored in a DNA molecule occurs, the DNA Molecular analyzes the base sequence of the DNA molecule. The controller converts the data back into binary data according to the analyzed base sequence and corrects data errors using an error correction code (ECC) (Encoder). Binary data with errors corrected can be descramblered and decompressed to provide original binary data (information).
본 명세서가 속한 기술분야에서 DNA를 합성하는 과정에서 동일한 염기가 반복적으로 합성될 경우 불량이 발생할 가능성이 알려져있다. Poon and MacGregor (198) Biopolymers 45:427-434에 따르면, G(guanine)을 4개 이상 반복(연속)적으로 합성되면, 구아닌 테트라플렉스(guanie tetraplex)형태로 응집(aggregation)되는 문제가 있다고 언급합니다. 상기 학술 자료에는 G(guanine)에 대한 문제를 언급하고 있지만, A(adenine), T(thymine), 및 C(cytosine)에 대해서도 동일 또는 유사한 문제가 발생하지 않을 배제하고 있지 않다. 따라서, 본 출원인은 DNA 염기 서열을 이용한 정보 저장에 있어서, DNA 합성 과정에서 불량이 발생할 가능성을 낮출 방법이 필요함을 인지하게 되었다.In the technical field to which this specification pertains, it is known that defects may occur if the same base is repeatedly synthesized during the process of synthesizing DNA. According to Poon and MacGregor (198) Biopolymers 45:427-434, when G (guanine) is synthesized repeatedly (continuously) more than 4 times, there is a problem of aggregation in the form of a guanine tetraplex. do. Although the above academic data mentions a problem with G (guanine), it does not rule out that the same or similar problems may occur with A (adenine), T (thymine), and C (cytosine). Accordingly, the present applicant has recognized the need for a method to reduce the possibility of defects occurring during the DNA synthesis process when storing information using DNA base sequences.
이하, 첨부된 도면을 참조하여 본 명세서에 따른 발명의 DNA 인코딩 방법에 대해서 설명한다. 한편, 본 명세서에 따른 DNA 인코딩 방법은 도 1에 도시된 순서 중 2진 데이터를 염기 서열로 변환하는 과정을 의미한다. 인코딩된 염기 서열에 따라 나중에 실제 DNA 분자로 합성될 수 있다. 따라서, DNA 인코딩은 어떠한 순서로 염기들을 배치할 것인가에 대한 결정하는 단계이다. 본 명세서에서 염기 순서는 5'에서 3'으로 읽는 방향을 정방향을 정한다. 또한, 염기 서열이 반복되는 것은 동일한 염기가 반복(연속)적으로 배치되는 것을 의미한다. 따라서, 동일 염기 서열이 반복된 지점이란, 동일 염기 서열이 정방향으로 소정의 개수만큼 반복 배치된 지점을 의미한다.Hereinafter, the DNA encoding method of the invention according to the present specification will be described with reference to the attached drawings. Meanwhile, the DNA encoding method according to the present specification refers to a process of converting binary data into a base sequence in the sequence shown in FIG. 1. Depending on the encoded base sequence, it can later be synthesized into an actual DNA molecule. Therefore, DNA encoding is a step that determines in what order the bases will be arranged. In this specification, the base order determines the forward reading direction from 5' to 3'. Additionally, a repeated base sequence means that the same bases are arranged repeatedly (consecutively). Therefore, a point where the same base sequence is repeated means a point where the same base sequence is repeatedly arranged a predetermined number of times in the forward direction.
한편, 본 명세서에 따른 DNA 인코딩 방법은 컴퓨터에서 이하 설명될 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다. 본 명세서에 따른 DNA 인코딩 방법이 컴퓨터프로그램의 형태로 구현될 때, 각 단계는 프로세서에 의해 실행될 수 있다.Meanwhile, the DNA encoding method according to the present specification may be implemented in the form of a computer program written to perform each step described below on a computer and recorded on a computer-readable recording medium. When the DNA encoding method according to the present specification is implemented in the form of a computer program, each step can be executed by a processor.
도 3는 본 명세서에 따른 DNA 인코딩 방법의 순서도이다.Figure 3 is a flow chart of the DNA encoding method according to the present specification.
도 4은 본 명세서에 따른 DNA 인코딩 방법의 예시도이다.Figure 4 is an exemplary diagram of a DNA encoding method according to the present specification.
도 3를 참조하면, 먼저 단계 S100에서 프로세서는 2진 데이터를 염기 서열로 1차 변환할 수 있다. 다음 단계 S200에서 프로세서는 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾을 수 있다. 다음 단계 S300에서 프로세서는 상기 동일 염기가 반복된 지점에 더미(Dummy) 염기를 추가한 염기 서열로 2차 변환할 수 있다.Referring to FIG. 3, first, in step S100, the processor may first convert binary data into a base sequence. In the next step S200, the processor can find a point where the same base is repeated in the first converted base sequence. In the next step S300, the processor can secondary convert the sequence into a base sequence in which a dummy base is added to the point where the same base is repeated.
우선 단계 S100에서 2진 데이터를 염기 서열로 1차 변환하는 과정을 보다 자세히 살펴보겠다. 일 예시에 따르면, 프로세서는 2bits의 데이터마다 A(adenine)=00, T(thymine)=01, G(guanine)=10, C(cytosine)=11에 매칭시켜 염기 서열로 1차 변환시킬 수 있다. 도 4에 도시된 예시에서는 2bits의 데이터를 염기와 1:1 매칭시켰지만, 본 명세서에 따른 DNA 인코딩 방법이 도시된 예시에 제한되는 것은 아니다. 하나의 염기가 1bit, 2bits, 3bits, 4bits에 해당할 수 있으며, 2진 데이터와 염기 서열을 매칭시키는 방법은 다양할 수 있다.First, we will look in more detail at the process of first converting binary data to base sequence in step S100. According to one example, the processor can first convert each 2 bits of data into a base sequence by matching A(adenine)=00, T(thymine)=01, G(guanine)=10, and C(cytosine)=11. . In the example shown in FIG. 4, 2 bits of data are matched 1:1 with bases, but the DNA encoding method according to the present specification is not limited to the example shown. One base can correspond to 1 bit, 2 bits, 3 bits, or 4 bits, and methods for matching binary data and base sequence can vary.
단계 S200에서 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 과정을 자세히 살펴보겠다. 앞서 설명하였듯이, 특정 염기가 반복(연속) 배치될 경우 합성 과정에서 불량이 발생할 가능성이 높다. 즉, 단계 S200은 합성 과정에서 불량이 발생할 가능성이 높은 지점을 찾는 과정이다.Let us take a closer look at the process of finding a point where the same base is repeated in the first converted base sequence in step S200. As explained earlier, if a specific base is placed repeatedly (consecutively), there is a high possibility that defects will occur during the synthesis process. In other words, step S200 is a process of finding a point where defects are likely to occur during the synthesis process.
본 명세서의 일 실시예에 따르면, 프로세서는 미리 정해진 개수의 동일 염기가 반복된 지점을 찾을 수 있다. 미리 정해진 개수는, 예를 들어, 4개~70개 등 다양하게 설정될 수 있다. 한편, 4개의 염기에 모두 동일한 기준을 적용할 수도 있지만, 각 염기마다 다른 기준을 적용할 수 있다. 따라서, 프로세서는 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾을 수도 있다. 예를 들어, A는 5개, T는 6개, G는 7개, C는 5개 등 이런 식으로 염기와 염기가 서로 다른 개수를 가질 수 있고, 일부 염기는 같은 개수를 가질 수도 있다.According to one embodiment of the present specification, the processor can find a point where a predetermined number of identical bases are repeated. The predetermined number can be set in various ways, for example, 4 to 70. Meanwhile, the same standard may be applied to all four bases, but a different standard may be applied to each base. Therefore, the processor may find points where the same base is repeated according to the number set for each base. For example, A may have 5 bases, T may have 6 bases, G may have 7 bases, C may have 5 bases, etc., and so on. Some bases may have the same number.
본 명세서의 다른 실시예에 따르면, 1차 변환된 염기 서열 내 반복 횟수에 따라 기준을 결정할 수 있다. 이를 위해, 프로세서는 1차 변환된 염기 서열 내 반복된 염기에 대한 빈도수 테이블(도 4 빈도수 테이블 예시 참조)을 생성할 수 있다. 그리고, 프로세서는 상기 생성된 빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정할 수 있다. 그리고 프로세서는 결정된 동일 염기의 반복 개수에 따라 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾을 수 있다. 참고로, 상기 빈도수 테이블(Frequency Count Table)은 본 명세서에 따른 DNA 정보 저장 시스템 내 제어부(Controller)에서 바이너리 정보를 염기서열 정보로 변환하는 장치(DNA Library)에 추가될 수 있다.According to another embodiment of the present specification, the standard can be determined based on the number of repetitions in the primary converted base sequence. To this end, the processor may generate a frequency table (see example frequency table in FIG. 4) for repeated bases in the primary converted base sequence. Additionally, the processor can use the generated frequency table to determine the number of repetitions of the same base that require addition of a dummy base. And the processor can find the point where the same base is repeated in the primary converted base sequence according to the determined number of repetitions of the same base. For reference, the Frequency Count Table can be added to the device (DNA Library) that converts binary information into base sequence information in the controller in the DNA information storage system according to the present specification.
빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정하는 방법은 다양할 수 있다. 일 예로, 프로세서는 빈도수의 평균값을 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정할 수 있다. 도 4에 도시된 예시에서, 빈수도의 평균값은 1.125이다. 올림 연산을 통해 동일 염기가 2개 반복될 때마다 더미 염기가 추가되어야 할 자리로 결정할 수 있다. 또한, 프로세서는 각 염기마다 빈도수의 평균값을 각 염기마다 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정할 수도 있다. 도 4에 도시된 예시에서 A의 평균은 0.5, G의 평균은 2, C의 평균은 1.25, T의 평균은 0.75이다. 이때, 반복의 의미가 있는 2 미만 값을 제외시켜서, A, C, T가 반복될 경우에는 더미 염기를 추가하지 않고, G가 2이상 반복될 때에만 더미 염기를 추가하는 것으로 결정할 수 있다.There can be various ways to determine the number of repetitions of the same base that require the addition of a dummy base using a frequency table. As an example, the processor may determine the average value of the frequency as the number of repetitions of the same base that require the addition of a dummy base. In the example shown in Figure 4, the average value of the frequency is 1.125. Through the rounding operation, whenever the same base is repeated twice, a dummy base can be determined as the position to be added. Additionally, the processor may determine the average value of the frequency for each base as the number of repetitions of the same base that requires the addition of a dummy base for each base. In the example shown in Figure 4, the average of A is 0.5, the average of G is 2, the average of C is 1.25, and the average of T is 0.75. At this time, by excluding values less than 2, which are significant for repetition, it can be decided not to add a dummy base when A, C, and T are repeated, and to add a dummy base only when G is repeated 2 or more times.
단계 S210에서 프로세서는 동일염기의 반복 개수가 앞서 설명된 다양한 실시예에 따라 설정된 기준을 초과하는지 판단할 수 있다. 만약 동일염기의 반복 개수가 기준을 초과하지 않는다면(단계 S210의 'NO'), 더미 염기의 추가가 필요없다. 반면, 동일염기의 반복 개수가 기준을 초과한다면(단계 S210의 'YES'), 해당 지점은 더미 염기의 추가가 필요한 지점이므로 프로세스는 단계 S300으로 이행할 수 있다.In step S210, the processor may determine whether the number of repetitions of the same base exceeds the standard set according to the various embodiments described above. If the number of repeats of the same base does not exceed the standard ('NO' in step S210), there is no need to add a dummy base. On the other hand, if the number of repeats of the same base exceeds the standard ('YES' in step S210), the process can proceed to step S300 because the point requires the addition of a dummy base.
단계 S300에서 동일 염기가 반복된 지점에 더미(Dummy) 염기를 추가한 염기 서열로 2차 변환하는 과정을 자세히 살펴보겠다. 본 명세서의 일 실시예에 따르면, 프로세서는 미리 정해진 적어도 하나 이상의 서열을 가진 더미 염기를 추가하여 2차 변환할 수 있다. 도 4에 도시된 예시에서는 4개 G가 반복될 때, A를 더미 염기 서열로 추가한 예시가 도시되어 있다. 그러나 본 명세서에 따른 DNA 인코딩 방법이 도 4에 도시된 예시에 제한되는 것이 아니다. 도 4에 도시된 예시에서는 더미 염기가 'A' 하나인 예시가 도시되었지만, 더미 염기는 'G', 'T', 'C'일 수 있으며, 더미 염기의 개수가 하나가 아닌 'AA', 'GG', 'TT', 'CC', 'AG', 'GT', 'TC', 'CA'와 같이 2개 이상일 수도 있으며, 그 조합 역시 다양할 수 있다.We will take a closer look at the process of secondary conversion to a base sequence in which a dummy base is added at the point where the same base is repeated in step S300. According to an embodiment of the present specification, the processor may perform secondary conversion by adding a dummy base having at least one predetermined sequence. The example shown in Figure 4 shows an example in which A is added as a dummy base sequence when four Gs are repeated. However, the DNA encoding method according to the present specification is not limited to the example shown in FIG. 4. In the example shown in Figure 4, an example of one dummy base 'A' is shown, but the dummy base may be 'G', 'T', or 'C', and the number of dummy bases is not one, but 'AA', There may be two or more such as 'GG', 'TT', 'CC', 'AG', 'GT', 'TC', and 'CA', and their combinations may also vary.
한편, 더미 염기가 추가되는 이유는 앞서 설명하였듯이, 동일한 염기가 반복적으로 배치되는 것을 방지하기 위함이다. 바람직하게, 프로세서는 상기 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기를 더미 염기로 추가하여 2차 변환할 수 있다. 도 5는 동일 염기가 반복된 지점과 그 다음 인접한 염기에 따라 추가될 수 있는 더미 염기에 대한 예시이다. 도 5에 도시된 예시에서는 도면의 간소함과 설명의 편의를 위해 더미 염기가 하나인 실시예를 도시하였다. 그러나 앞서 설명하였듯이, 프로세서는 2이상의 서열을 가진 더미 염기를 추가하여 2차 변환할 수 있다. 이 경우에도 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기로 조합된 2이상의 염기 서열을 가진 더미 염기가 추가되는 것 역시 가능하다.Meanwhile, the reason a dummy base is added is to prevent the same base from being placed repeatedly, as explained earlier. Preferably, the processor can perform secondary conversion by adding bases different from the adjacent bases on both sides of the point where the same base is repeated as dummy bases. Figure 5 is an example of a dummy base that can be added depending on the point where the same base is repeated and the next adjacent base. In the example shown in FIG. 5, an example with one dummy base is shown for simplicity of drawing and convenience of explanation. However, as explained previously, the processor can perform secondary conversion by adding dummy bases with two or more sequences. In this case, it is also possible to add a dummy base with two or more base sequences combined with different bases from the adjacent bases on both sides of the point where the same base is repeated.
본 명세서에서 "이진 데이터"란 1과 0으로 이루어진 데이터를 의미한다. 본 명세서에서 "염기 서열"은 A(adenine), T(thymine), G(guanine) 및 C(cytosine)로 이루어진 정보를 의미한다. 본 명세서에서 염기 순서는 5'에서 3'으로 읽는 방향을 정방향을 정한다. 또한, 염기 서열이 반복되는 것은 동일한 염기가 반복(연속)적으로 배치되는 것을 의미한다. 따라서, 동일 염기 서열이 반복된 지점이란, 동일 염기 서열이 정방향으로 소정의 개수만큼 반복 배치된 지점을 의미한다.In this specification, “binary data” means data consisting of 1 and 0. In this specification, “base sequence” refers to information consisting of A (adenine), T (thymine), G (guanine), and C (cytosine). In this specification, the base order determines the forward reading direction from 5' to 3'. Additionally, a repeated base sequence means that the same bases are arranged repeatedly (consecutively). Therefore, a point where the same base sequence is repeated means a point where the same base sequence is repeatedly arranged a predetermined number of times in the forward direction.
도 6은 본 명세서에 따른 이진 데이터 섞는 장치의 개략적인 구성도이다.Figure 6 is a schematic configuration diagram of a binary data shuffling device according to the present specification.
도 6을 참조하면, 본 명세서에 따른 이진 데이터 섞는 장치(100)는 염기서열변환부(110), 반복염기분석부(120), 이진데이터스크램부(130) 및 제어부(140)를 포함할 수 있다. 상기 염기서열변환부(110)는 이진 데이터를 염기 서열로 변환 또는 염기 서열을 이진 데이터로 역변환할 수 있다. 상기 반복염기분석부(120)는 상기 염기서열변환부(110)에서 임시 변환된 염기 서열 내 동일 염기가 미리 설정된 개수 이상 반복된 지점(이하 '동일염기반복서열')이 존재하는지 판단할 수 있다. 상기 이진데이터스크램부(130)는 이진 데이터를 섞은 후 출력할 수 있다. 상기 제어부(140)는 상기 염기서열변환부(110), 반복염기분석부(120) 및 이진데이터스크램부(130)를 제어할 수 있다. 상기 제어부(140)는 상기 반복염기분석부(120)에서 동일염기반복서열이 존재한 것으로 판단할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 섞은 후, 섞어진 이진 데이터를 다시 염기 서열로 변환하도록 제어할 수 있다. 또한, 상기 제어부(140)는 상기 반복염기분석부(120)에서 동일염기반복서열이 존재하지 않을 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어할 수 있다. 상기 제어부(140)의 동작에 대해서는 본 명세서에 따른 이진 데이터 섞는 방법을 통해 설명하겠다.Referring to FIG. 6, the binary data mixing device 100 according to the present specification may include a base sequence conversion unit 110, a repetitive base analysis unit 120, a binary data scram unit 130, and a control unit 140. there is. The base sequence conversion unit 110 can convert binary data into a base sequence or reversely convert a base sequence into binary data. The repetitive base analysis unit 120 can determine whether there is a point in the base sequence temporarily converted by the base sequence conversion unit 110 where the same base is repeated more than a preset number (hereinafter referred to as 'same base repeat sequence'). . The binary data scram unit 130 can mix binary data and then output it. The control unit 140 can control the base sequence conversion unit 110, the repetitive base analysis unit 120, and the binary data scram unit 130. When the repeating base analysis unit 120 determines that an identical base repeating sequence exists, the control unit 140 converts the temporarily converted base sequence back into binary data, mixes the inverted binary data, and then mixes them. You can control the conversion of binary data back to base sequences. In addition, when the same nucleotide repeat sequence does not exist in the repetitive base analysis unit 120, the control unit 140 reversely converts the temporarily converted base sequence back into binary data, and converts the inverted binary data into base sequence conversion target. You can control it to be stored as binary data. The operation of the control unit 140 will be explained through the binary data shuffling method according to the present specification.
한편, 상기 염기서열변환부(110), 반복염기분석부(120), 이진데이터스크램부(130) 및 제어부(140)는 이하에서 설명될 이진 데이터 섞는 방법을 실행하기 위해 본 발명이 속한 기술분야에 알려진 프로세서, ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로, 레지스터, 통신 모뎀, 데이터 처리 장치 등을 포함할 수 있다. 또한, 이하 설명될 제어 로직이 소프트웨어로 구현될 때, 상기 염기서열변환부(110), 반복염기분석부(120), 이진데이터스크램부(130) 및 제어부(140)는 프로그램 모듈의 집합으로 구현될 수 있다. 이 때, 프로그램 모듈은 메모리 장치에 저장되고, 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에 따른 이진 데이터 섞는 방법은 컴퓨터에서 이하 설명될 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다. 이하 본 명세서에 따른 이진 데이터 섞는 방법은 프로세서에 의해 실행되는 것을 전제로 설명하겠다.Meanwhile, the base sequence conversion unit 110, the repetitive base analysis unit 120, the binary data scram unit 130, and the control unit 140 are used in the technical field to which the present invention belongs to execute the binary data shuffling method to be described below. It may include known processors, application-specific integrated circuits (ASICs), other chipsets, logic circuits, registers, communication modems, data processing devices, etc. In addition, when the control logic to be described below is implemented in software, the base sequence conversion unit 110, repetitive base analysis unit 120, binary data scram unit 130, and control unit 140 are implemented as a set of program modules. It can be. At this time, the program module may be stored in the memory device and executed by the processor. Therefore, the binary data shuffling method according to the present specification can be implemented in the form of a computer program written to perform each step described below on a computer and recorded on a computer-readable recording medium. Hereinafter, the binary data shuffling method according to the present specification will be described on the assumption that it is executed by a processor.
도 7은 본 명세서의 일 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.Figure 7 is a flowchart of a binary data shuffling method according to an embodiment of the present specification.
도 7을 참조하면, 먼저 단계 S100에서 프로세서는 최초 데이터를 수신 및 저장할 수 있다. 본 명세서에서 '최초 데이터'란 섞어지지 않은 원본 이진데이터를 의미한다. 다음 단계 S110에서 프로세서는 상기 최초 데이터(이진데이터)를 염기 서열로 임시 변환할 수 있다. 단계 S110에서 변환된 염기 서열을 '임시 염기 서열'이라고 명명한 것은 이후 설명될 '염기 서열 변환 대상 이진 데이터'와 구별하기 위함이다. 상기 '임시 염기 서열'은 이후 실제 DNA로 합성될 염기 서열이 아닐 수 있다. 반면, '염기 서열 변환 대상 이진 데이터'는 실제 DNA로 합성될 염기 서열에 대응하는 데이터이다.Referring to Figure 7, first, in step S100, the processor may receive and store initial data. In this specification, 'original data' refers to original binary data that has not been mixed. In the next step S110, the processor may temporarily convert the initial data (binary data) into a base sequence. The reason the base sequence converted in step S110 is called a 'temporary base sequence' is to distinguish it from 'binary data subject to base sequence conversion', which will be explained later. The ‘temporary base sequence’ may not be the base sequence that will be synthesized into actual DNA later. On the other hand, 'binary data subject to base sequence conversion' is data corresponding to the base sequence to be synthesized into actual DNA.
도 8은 이진데이터의 염기 서열 변환에 대한 참고도이다.Figure 8 is a reference diagram for nucleotide sequence conversion of binary data.
도 8을 참조하면, 프로세서는 2bits의 데이터마다 A(adenine)=00, T(thymine)=01, G(guanine)=10, C(cytosine)=11에 매칭시켜 염기 서열로 1차 변환시킬 수 있다. 도 8에 도시된 예시에서는 2bits의 데이터를 염기와 1:1 매칭시켰지만, 본 명세서에 따른 이진 데이터 섞는 방법이 도시된 예시에 제한되는 것은 아니다. 하나의 염기가 1bit, 2bits, 3bits, 4bits에 해당할 수 있으며, 이진 데이터와 염기 서열을 매칭시키는 방법은 다양할 수 있다.Referring to Figure 8, the processor can first convert each 2 bits of data into a base sequence by matching it to A(adenine)=00, T(thymine)=01, G(guanine)=10, and C(cytosine)=11. there is. In the example shown in FIG. 8, 2 bits of data are matched 1:1 with bases, but the method of mixing binary data according to the present specification is not limited to the example shown. One base can correspond to 1 bit, 2 bits, 3 bits, or 4 bits, and methods for matching binary data and base sequence can vary.
다시 도 7을 참조하면, 단계 S120에서 프로세서는 임시 변환된 염기 서열 내 동일 염기가 미리 설정된 개수 이상 반복된 지점(이하 '동일염기반복서열')이 존재하는지 판단할 수 있다. 앞서 설명하였듯이, 특정 염기가 반복(연속) 배치될 경우 합성 과정에서 불량이 발생할 가능성이 높다. 즉, 단계 S120은 DNA 합성 과정에서 불량이 발생할 가능성이 높은 지점을 찾는 과정이다.Referring again to FIG. 7, in step S120, the processor may determine whether there is a point in the temporarily converted base sequence where the same base is repeated more than a preset number (hereinafter referred to as 'same base repeat sequence'). As explained earlier, if a specific base is placed repeatedly (consecutively), there is a high possibility that defects will occur during the synthesis process. In other words, step S120 is a process of finding a point where defects are likely to occur during the DNA synthesis process.
본 명세서의 일 실시예에 따르면, 프로세서는 미리 정해진 개수의 동일 염기가 반복된 지점을 찾을 수 있다. 미리 정해진 개수는, 예를 들어, 4개~70개 등 다양하게 설정될 수 있다. 한편, 4개의 염기에 모두 동일한 기준을 적용할 수도 있지만, 각 염기마다 다른 기준을 적용할 수 있다. 따라서, 프로세서는 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾을 수도 있다. 예를 들어, A는 5개, T는 6개, G는 7개, C는 5개 등 이런 식으로 염기와 염기가 서로 다른 개수를 가질 수 있고, 일부 염기는 같은 개수를 가질 수도 있다.According to one embodiment of the present specification, the processor can find a point where a predetermined number of identical bases are repeated. The predetermined number can be set in various ways, for example, 4 to 70. Meanwhile, the same standard may be applied to all four bases, but a different standard may be applied to each base. Therefore, the processor may find points where the same base is repeated according to the number set for each base. For example, A may have 5 bases, T may have 6 bases, G may have 7 bases, C may have 5 bases, etc., and so on. Some bases may have the same number.
만약 동일염기반복서열이 존재할 때, 즉 동일염기의 반복 개수가 미리 설정된 개수 이상이라면(단계 S120의 'YES'), 프로세스는 단계 S130으로 이행한다. 단계 S130에서 프로세서는 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환할 수 있다. 그리고 단계 S140에서 프로세서는 역변환된 이진 데이터를 섞은 후 프로세스를 단계 S110으로 이행시킬 수 있다. 즉, 변환된 염기 서열 내 동일염기의 반복 개수가 미리 설정된 개수 이상 존재할 경우, 단계 S110 내지 단계 S140은 반복실행될 수 있다.If an identical base repeat sequence exists, that is, if the number of repeats of the same base is more than a preset number ('YES' in step S120), the process moves to step S130. In step S130, the processor may reversely convert the temporarily converted base sequence back into binary data. And in step S140, the processor may mix the inversely converted binary data and then transfer the process to step S110. That is, if the number of repeats of the same base in the converted base sequence is more than a preset number, steps S110 to S140 may be repeatedly performed.
반면, 동일염기반복서열이 존재하지 않을 때, 즉 동일염기의 반복 개수가 미리 설정된 개수 미만이라면(단계 S120의 'NO'), 프로세스는 단계 S150으로 이행한다. 단계 S150에서 프로세서는 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장할 수 있다. 상기 염기 서열을 다시 이진 데이터로 역변환하는 것은 도 2에 도시된 인코더(Encoder)에서 이진 데이터를 추가 처리할 필요가 있기 때문이다.On the other hand, when the same base repeat sequence does not exist, that is, if the number of repeats of the same base is less than the preset number ('NO' in step S120), the process moves to step S150. In step S150, the processor may inversely convert the temporarily converted nucleotide sequence back into binary data and store the inversely converted binary data as binary data to which the nucleotide sequence is to be converted. This is because converting the base sequence back into binary data requires additional processing of the binary data in the encoder shown in FIG. 2.
상기 단계 S140에서 이진 데이터를 섞는 방법은 다양할 수 있다. 본 명세서의 일 실시예에 따르면, 프로세서는 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 섞을 수 있다. 선형 되먹임 시프트 레지스터(Linear feedback shift register, LFSR)는 시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조를 가지고 있다. 이때 사용되는 선형 함수는 주로 배타적 논리합(XOR)이다. LFSR의 초기 비트 값은 시드(seed)라고 부른다. LFSR는 의사 난수, 의사 난수 잡음(PRN), 빠른 디지털 카운터, 백지화 수열 등의 분야에서 사용된다. 본 명세서에서는 기존 의사 난수 등에 사용되는 LFSR을 동기염기가 반복되는 것을 해결하기 위한 요소로 활용한 것이다.There may be various methods for mixing binary data in step S140. According to an embodiment of the present specification, the processor may shuffle binary data using a linear feedback shift register (LFSR) method. A linear feedback shift register (LFSR) is a type of shift register and has a structure in which the value entered into the register is calculated as a linear function of the previous state values. The linear function used at this time is mainly exclusive logical sum (XOR). The initial bit value of LFSR is called the seed. LFSR is used in fields such as pseudorandom numbers, pseudorandom noise (PRN), fast digital counters, and blank sequences. In this specification, LFSR, which is used in existing pseudorandom numbers, is used as an element to solve the problem of repeated synchronous bases.
도 9는 선형 되먹임 시프트 레지스터의 이해를 돕기 위한 참고도이다.Figure 9 is a reference diagram to help understand the linear feedback shift register.
LFSR의 탭 수열은 다항 합동식으로 나타낼 수 있다. 이 것은 다항식의 계수가 반드시 1이거나 0이어야 하다. 이 것을 되먹임 다항식 또는 특성 다항식이라고 부른다. 예를 들어 탭이 16번째, 14번째, 13번째 및 11번째 비트라면, LFSR 다항식은 아래와 같다.The tap sequence of LFSR can be expressed as a polynomial congruence equation. This means that the coefficients of the polynomial must be 1 or 0. This is called a feedback polynomial or characteristic polynomial. For example, if the taps are the 16th, 14th, 13th, and 11th bits, the LFSR polynomial is:
X11+x13+X14+X16+1X 11 +x 13 +X 14 +X 16 +1
다항식에서 '1'은 탭에 일치되지 않는다. LSFR의 길이는 합성할 DNA의 길이에 따라 설계될 수 있다. 예를 들어, 합성할 DNA strand 길이가 150개인 경우, LSFR 길이는 2n-1 이므로, n=8이면 LFSR 길이를 255까지 가져갈 수 있어서, 8차 다항식을 사용하면 충분히 150개의 DNA strand를 처리할 수 있다. 만약, 합성할 DNA strand 길이가 150개보다 더 길어질 경우, n=10이면 1023개까지 가능한바, DNA strand 길이에 비례하여 LSFR의 다항식의 개수를 증가할 수 있다. LFSR에는 XOR 게이트의 위치에 따라 'External LFSR' 또는 'Internal LFSR'이 있으며, '갈루아 LFSR' 등 당업자에 알려진 다양한 방식이 적용될 수 있다. LFSR에 대해서는 당업자에게 알려진 바 더 이상 상세한 설명은 생략한다.In a polynomial, '1' does not match a tab. The length of LSFR can be designed according to the length of DNA to be synthesized. For example, if the length of the DNA strand to be synthesized is 150, the LSFR length is 2 n -1, so if n = 8, the LFSR length can be taken up to 255, so using an 8th degree polynomial is enough to process 150 DNA strands. You can. If the length of the DNA strand to be synthesized is longer than 150, n = 10, up to 1023, the number of polynomials in LSFR can be increased in proportion to the length of the DNA strand. LFSR includes 'External LFSR' or 'Internal LFSR' depending on the location of the XOR gate, and various methods known to those skilled in the art, such as 'Galois LFSR', can be applied. As LFSR is known to those skilled in the art, further detailed description will be omitted.
한편, LFSR의 동작은 결정론적이다. 따라서, LFSR로 생성되는 값의 수열은 그 이전 값에 의해 결정된다. 또한, 레지스터가 가질 수 있는 값의 개수는 유한하기 때문에, 이 수열은 특정한 주기에 의해 반복될 수 있다. 물론, 선형 함수를 잘 선택한다면 주기가 길고 무작위적으로 보이는 수열을 생성할 수 있다. 그러나 LSFR에서 출력된 값을 다시 LSFR에 계속 입력하면 수열이 반복되어 나올 가능성이 있다. 즉, 경우에 따라 단계 S110 내지 S140을 반복 실행할 경우, 최초 데이터가 다시 출력될 수 있다. 따라서, 단계 S110 내지 S140이 무한 반복되는 것을 방지할 필요가 있다.Meanwhile, the operation of LFSR is deterministic. Therefore, the sequence of values generated by LFSR is determined by the previous value. Additionally, because the number of values a register can have is finite, this sequence can be repeated at a specific period. Of course, if you choose a good linear function, you can create a long-period, seemingly random sequence. However, if the values output from LSFR are continuously input back into LSFR, there is a possibility that the sequence may be repeated. That is, in some cases, when steps S110 to S140 are repeatedly executed, the initial data may be output again. Therefore, it is necessary to prevent infinite repetition of steps S110 to S140.
LSFR의 반복 실행을 방지하기 위한 하나의 방법은 미리 실행 횟수를 설정하는 것이다.One way to prevent repeated execution of LSFR is to set the number of executions in advance.
도 10은 본 명세서의 다른 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.Figure 10 is a flowchart of a binary data shuffling method according to another embodiment of the present specification.
도 10을 참조하면, 단계 S100 내지 단계 S150은 동일하고, 단계 S141과 단계 S142가 추가된 것을 확인할 수 있다. 본 명세서의 다른 실시예에 따르면, 단계 S140에서 프로세서는 이진 데이터를 섞은 이후 단계 S141로 이행할 수 있다. 단계 S141에서 프로세서는 이진 데이터를 섞을 때마다 섞은 횟수를 저장할 수 있다. 그리고 단계 S142에서 섞은 횟수가 미리 설정된 최대 섞음 횟수(K)를 초과하였는지 판단할 수 있다. 만약 섞은 횟수가 최대 섞음 횟수(K)보다 작은 경우(단계 S142의 "NO"), 프로세스는 단계 S110으로 이행할 수 있다. 즉, 섞은 횟수가 최대 섞음 횟수(K)가 되지 전까지는 단계 S110 내지 단계 S142를 반복 실행할 수 있다. 반면, 섞은 횟수가 최대 섞음 횟수(K)보다 큰 경우(단계 S142의 "YES"), 프로세스는 단계 S150으로 이행할 수 있다. 추가 섞음을 진행하지 않고, 마지막으로 섞어진 이진 데이터를 염기 서열 변환 이진 데이터로 저장하는 것이다.Referring to FIG. 10, it can be seen that steps S100 to S150 are the same, and steps S141 and S142 have been added. According to another embodiment of the present specification, in step S140, the processor may shuffle the binary data and then proceed to step S141. In step S141, the processor may store the number of shuffles each time the binary data is shuffled. And in step S142, it can be determined whether the number of shuffles exceeds the preset maximum number of shuffles (K). If the number of shuffles is less than the maximum number of shuffles (K) (“NO” in step S142), the process can proceed to step S110. That is, steps S110 to S142 can be repeatedly executed until the number of shuffles reaches the maximum number of shuffles (K). On the other hand, if the number of shuffles is greater than the maximum number of shuffles (K) (“YES” in step S142), the process can proceed to step S150. Without performing additional shuffling, the final shuffled binary data is stored as base sequence converted binary data.
LSFR의 반복 실행을 방지하기 위한 다른 방법은 변환된 이진 데이터 중 염기 서열의 반복 횟수가 가장 적은 이진 데이터를 찾는 것이다.Another way to prevent repeated execution of LSFR is to find the binary data with the lowest number of base sequence repetitions among the converted binary data.
도 11은 본 명세서의 또 다른 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.Figure 11 is a flowchart of a binary data shuffling method according to another embodiment of the present specification.
도 11을 참조하면, 단계 S143과 단계 S144가 추가된 것을 확인할 수 있다. 먼저 단계 S110에서 프로세서는 임시 변환된 염기 서열을 저장할 수 있다. 즉, 이진 데이터 섞은 후 단계 S110이 실행될 때마다, 변환된 임시 데이터는 저장될 수 있다. 그리고 단계 S120에서 프로세서는 동일반복된 염기의 개수를 상기 임시 변환된 염기 서열에 더 저장할 수 있다. 즉, 임시 변환된 염기 서열 내 동일반복된 염기의 개수가 실제 몇 개인지 정보를 더 저장할 수 있다. 다음 단계 S130 및 S140은 앞서 설명한 것과 동일하다. 단계 S140 다음 단계 S143에서, 프로세서는 역변환된 이진 데이터가 최초 이진 데이터 즉, 최초 데이터와 동일한지 여부를 판단할 수 있다.Referring to FIG. 11, it can be seen that steps S143 and S144 have been added. First, in step S110, the processor may store the temporarily converted base sequence. That is, each time step S110 is executed after binary data shuffling, the converted temporary data can be stored. And in step S120, the processor may further store the number of identically repeated bases in the temporarily converted base sequence. In other words, it is possible to store more information about the actual number of identically repeated bases in the temporarily converted base sequence. The next steps S130 and S140 are the same as previously described. In step S143 following step S140, the processor may determine whether the inversely converted binary data is the same as the original binary data, that is, the original data.
만약 역변환된 이진 데이터가 최초 이진 데이터와 동일하지 않다면(단계 S143의 "NO"), 프로세스는 단계 S110으로 이행할 수 있다. 이후 프로세서는 단계 S110 내지 단계 S143을 반복실행할 수 있다. 상기 단계 S110 내지 단계 S143의 반복 실행은 단계 S120에서 동일염기의 반복 서열이 기준 개수 이하이거나, 섞어진 이진 데이터가 최초 이진 데이터와 동일할 때까지 실행될 수 있다.If the inversely converted binary data is not identical to the original binary data (“NO” in step S143), the process may proceed to step S110. Thereafter, the processor may repeatedly execute steps S110 to S143. The repeated execution of steps S110 to S143 may be performed until the number of repeated sequences of the same base in step S120 is less than or equal to the standard number or until the shuffled binary data is identical to the original binary data.
반면, 역변환된 이진 데이터가 최초 이진 데이터와 동일하다면(단계 S143의 "YES"), 프로세스는 단계 S144로 이행할 수 있다. 단계 S144에서 프로세서는 임시 변환된 염기 서열 중 동일반복된 염기의 개수가 가장 적은 염기 서열을 선택할 수 있다. 그리고 프로세서는 단계 S150에서 선택된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장할 수 있다.On the other hand, if the inversely converted binary data is the same as the original binary data (“YES” in step S143), the process can proceed to step S144. In step S144, the processor may select a base sequence with the smallest number of identically repeated bases among the temporarily converted base sequences. Then, the processor may inversely convert the base sequence selected in step S150 back into binary data and store the inversely converted binary data as binary data subject to base sequence conversion.
한편, 일 실시예에 따르면, 프로세서는 염기 서열 변환 대상 이진 데이터에 섞인 횟수 정보를 더 추가할 수 있다. 예를 들어, 최초로 임시 변환된 염기 서열 내 동일염기반복서열이 존재하지 않는 경우, 상기 섞인 횟수 정보는 '0'이 될 수 있다. 또한, 동일염기반복서열이 존재하지 않을 때까지 단계 S120 내지 S140을 반복 실행한 횟수가 2번이면, 상기 상기 섞인 횟수 정보는 '2'가 될 수 있다. 이처럼 염기 서열 변환 대상 이진 데이터가 몇 번 섞임 과정을 겪었는지 이진 데이터에 추가될 수 있다.Meanwhile, according to one embodiment, the processor may further add information on the number of times the nucleotide sequence has been converted to the binary data to be converted. For example, if there is no identical nucleotide repeat sequence in the initially temporarily converted nucleotide sequence, the shuffle count information may be '0'. In addition, if the number of times steps S120 to S140 are repeated two times until no identical nucleotide repeat sequence exists, the shuffle number information may be '2'. In this way, the binary data subject to base sequence conversion can be added to the binary data based on how many times it has been mixed.
다른 실시예에 따르면, 프로세서는 염기 서열 변환 대상 이진 데이터의 섞인 횟수 정보를 별도의 저장 장치에 저장할 수 있다. 앞선 일 실시예는 섞인 횟수 정보를 염기 서열로 변환하여 DNA 자체에 기록하는 실시예이고, 본 다른 실시예는 별도의 저장 장치에 섞인 횟수 정보를 저장하는 실시예이다.According to another embodiment, the processor may store information on the number of shuffles of the binary data subject to nucleotide sequence conversion in a separate storage device. The previous example is an embodiment in which the information on the number of times of mixing is converted into a base sequence and recorded in the DNA itself, and this other embodiment is an embodiment in which the information on the number of times of mixing is stored in a separate storage device.
이하에서는 DNA 저장 시스템에 저장된 정보를 읽어오는 방법에 대해서 설명한다. 본 명세서에 따른 DNA 저장 시스템은 앞서 설명된 이진 데이터 섞는 방법 및 장치에 따라 최종 결정된 염기 서열 변환 대상 이진 데이터가 염기 서열에 따라 실제 DNA 분자로 합성(Synthesis)된 상태이다. 따라서, DNA 분자로 저장된 정보를 독출(Read) 요청이 발생하면, 섞임을 풀어서 원래 이진 데이터로 복원하는 과정이 필요하다. 바로 이 섞임을 풀고 원래 이진 데이터로 복원하는 것이 본 명세서에 따른 이진 데이터 복원 방법 및 장치의 역할이다.Below, a method of reading information stored in the DNA storage system will be described. In the DNA storage system according to the present specification, the binary data to be converted to base sequence, finally determined according to the binary data mixing method and device described above, is synthesized into an actual DNA molecule according to the base sequence. Therefore, when a read request occurs for information stored as a DNA molecule, a process is required to unmix it and restore it to the original binary data. The role of the binary data restoration method and device according to the present specification is to unravel this mixing and restore the original binary data.
한편, 본 명세서에 따른 이진 데이터 복원 장치는 DNA 저장 시스템의 일 구성요소가 될 수 있다. DNA 저장 시스템은 DNA를 분석(Sequencing)하여 염기서열 정보를 출력하는 염기서열 분석부를 포함할 수 있다. 따라서 본 명세서에 따른 이진 데이터 복원 장치 및 방법은 실제 DNA 분자의 염기 서열이 분석된 정보를 받은 상태인 것을 전제하겠다. 이후, 복원 과정에서 중요한 사항은 섞는 과정을 몇 번 진행한 DNA 분자인지 섞인 횟수 정보에 따라 복원이 진행되어야 한다. 앞서 설명되었듯이, 섞인 횟수 정보는 DNA 분자 내에 포함되어 저장될 수도 있고, 별도의 저장 장치에 저장되어 있을 수도 있다.Meanwhile, the binary data recovery device according to the present specification may be a component of a DNA storage system. The DNA storage system may include a base sequence analysis unit that analyzes (sequencing) DNA and outputs base sequence information. Therefore, the binary data restoration device and method according to the present specification assumes that information on the base sequence of the actual DNA molecule has been analyzed. Afterwards, the important thing in the restoration process is how many times the DNA molecule has been mixed and the restoration must be carried out according to the information on the number of times it has been mixed. As previously explained, the mixing number information may be stored within the DNA molecule or may be stored in a separate storage device.
도 12는 본 명세서의 일 실시예에 따른 이진 데이터 복원 장치의 구성을 개략적으로 도시한 블록도이다.Figure 12 is a block diagram schematically showing the configuration of a binary data recovery device according to an embodiment of the present specification.
도 12를 참조하면, 본 명세서의 일 실시예에 따른 이진 데이터 복원 장치(200)는 염기서열변환부(210), 이진데이터가공부(220) 및 이진데이터디스크램부(230)를 포함할 수 있다. 상기 염기서열변환부(210)는 분석된 DNA 염기서열 정보를 이진 데이터로 역변환할 수 있다. 상기 염기서열변환부(210)는 앞서 설명된 이진 데이터 섞는 장치(100)의 염기서열변환부(110)와 동일 또는 유사할 수 있다. 상기 이진 데이터 가공부(220)는 역변환된 이진 데이터 내에 포함된 섞인 횟수 정보를 분리할 수 있다. 본 명세서의 일 실시예에 따른 이진 데이터 복원 장치(200)는 섞인 횟수 정보가 DNA 분자 내에 포함된 실시예에 대응하는 장치이다. 따라서, 역변환된 이진 데이터는 섞인 횟수 정보를 포함한 상태이며, 상기 섞인 횟수 정보를 제거시켜야만 섞임을 풀어서 복원할 때 원래 이진 데이터로 돌아갈 수 있다. 상기 이진데이터디스크램부(230)는 상기 섞인 횟수 정보에 따라 섞인 횟수 정보가 분리된 이진 데이터를 복원할 수 있다.Referring to FIG. 12, the binary data recovery device 200 according to an embodiment of the present specification may include a base sequence conversion unit 210, a binary data processing unit 220, and a binary data disk drive unit 230. . The base sequence conversion unit 210 can reversely convert the analyzed DNA base sequence information into binary data. The base sequence conversion unit 210 may be the same or similar to the base sequence conversion unit 110 of the binary data shuffling device 100 described above. The binary data processing unit 220 may separate the mixed count information included in the inversely converted binary data. The binary data recovery device 200 according to an embodiment of the present specification is a device corresponding to an embodiment in which shuffle count information is included in a DNA molecule. Therefore, the inversely converted binary data includes shuffle count information, and the shuffle count information must be removed to return to the original binary data when unshuffled and restored. The binary data disk drive unit 230 can restore binary data with the shuffle count information separated according to the shuffle count information.
도 13은 본 명세서의 다른 실시예에 따른 이진 데이터 복원 장치의 구성을 개략적으로 도시한 블록도이다.Figure 13 is a block diagram schematically showing the configuration of a binary data recovery device according to another embodiment of the present specification.
도 13을 참조하면, 본 명세서의 다른 실시예에 따른 이진 데이터 복원 장치(300)는 염기서열변환부(310), 저장부(320) 및 이진데이터디스크램부(330)를 포함할 수 있다. 상기 염기서열변환부()는 분석된 DNA 염기서열 정보를 이진 데이터로 역변환할 수 있다. 상기 염기서열변환부(310)는 앞서 설명된 이진 데이터 섞는 장치(100)의 염기서열변환부(110)와 동일 또는 유사할 수 있다. 상기 저장부(320)는 DNA 마다 섞인 횟수 정보를 저장할 수 있다. 본 명세서의 다른 실시예에 따른 이진 데이터 복원 장치(300)는 섞인 횟수 정보가 DNA 분자 내에 포함되지 않은 실시예에 대응하는 장치이다. 본 명세서에서 상기 저장부(320)가 이진 데이터 복원 장치(300) 내에 포함된 것으로 도시하였지만, 상기 저장부(320)는 이진 데이터 복원 장치(300)의 외부에 존재할 수도 있다. 상기 이진데이터디스크램부(330)는 상기 저장부(320)에 저장된 섞인 횟수 정보에 따라 상기 역변환된 이진 데이터를 복원할 수 있다.Referring to FIG. 13, the binary data recovery device 300 according to another embodiment of the present specification may include a base sequence conversion unit 310, a storage unit 320, and a binary data disk drive unit 330. The base sequence conversion unit () can reversely convert the analyzed DNA base sequence information into binary data. The base sequence conversion unit 310 may be the same or similar to the base sequence conversion unit 110 of the binary data shuffling device 100 described above. The storage unit 320 can store information on the number of times each DNA has been mixed. The binary data restoration device 300 according to another embodiment of the present specification is a device corresponding to an embodiment in which shuffle count information is not included in the DNA molecule. Although the storage unit 320 is shown in this specification as being included in the binary data recovery device 300, the storage unit 320 may exist outside the binary data recovery device 300. The binary data disk drive unit 330 can restore the inversely converted binary data according to the shuffle count information stored in the storage unit 320.
한편, 상기 염기서열변환부(210, 310)는 역변환된 이진 데이터의 오류 정정 코드를 제거할 수 있다. 이진 데이터를 저장할 때 오류 정정을 위한 코드를 추가하여 염기 서열로 변환시킬 수 있다. 따라서 역변환된 이진 데이터 역시 오류 정정 코드를 제거할 필요가 있다.Meanwhile, the base sequence conversion units 210 and 310 can remove the error correction code of the inversely converted binary data. When storing binary data, it can be converted to a base sequence by adding a code for error correction. Therefore, the inverted binary data also needs to have error correction codes removed.
또한, 상기 이진데이터디스크램부(230, 330)는 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 복원할 수 있다. 이 것은 앞서 이진 데이터를 섞을 때, 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 섞은 경우에 해당한다. 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR)는 섞을 때와 마찬가지로 역으로 실행할 경우 원본으로 복원이 가능하다. LSFR은 당업자에게 알려진 바, 상세한 알고리즘의 설명은 생략한다.Additionally, the binary data disk drive units 230 and 330 can restore binary data using a linear feedback shift register (LFSR) method. This corresponds to the case where binary data was shuffled using the Linear Feedback Shift Register (LFSR) method. The Linear Feedback Shift Register (LFSR) can be restored to its original state when executed in reverse, just as when shuffling. Since LSFR is known to those skilled in the art, a detailed description of the algorithm is omitted.
한편, 상기 염기서열변환부(210, 310), 이진데이터가공부(220), 이진데이터디스크램부(230, 330) 및 저장부(320)는 이하에서 설명될 이진 데이터 복원 방법을 실행하기 위해 본 발명이 속한 기술분야에 알려진 프로세서, ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로, 레지스터, 통신 모뎀, 데이터 처리 장치 등을 포함할 수 있다. 또한, 이하 설명될 제어 로직이 소프트웨어로 구현될 때, 상기 염기서열변환부(210, 310), 이진데이터가공부(220), 이진데이터디스크램부(230, 330)는 프로그램 모듈의 집합으로 구현될 수 있다. 이 때, 프로그램 모듈은 메모리 장치에 저장되고, 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에 따른 이진 데이터 복원 방법은 컴퓨터에서 이하 설명될 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다. 이하 본 명세서에 따른 이진 데이터 복원 방법은 프로세서에 의해 실행되는 것을 전제로 설명하겠다.Meanwhile, the base sequence conversion unit 210, 310, binary data processing unit 220, binary data disk drive unit 230, 330, and storage unit 320 are used to execute the binary data restoration method described below. It may include processors, application-specific integrated circuits (ASICs), other chipsets, logic circuits, registers, communication modems, data processing devices, etc. known in the technical field to which the invention belongs. In addition, when the control logic to be described below is implemented in software, the base sequence conversion unit 210, 310, binary data processing unit 220, and binary data disk unit 230, 330 are implemented as a set of program modules. You can. At this time, the program module may be stored in the memory device and executed by the processor. Therefore, the binary data restoration method according to the present specification can be implemented in the form of a computer program written to perform each step described below on a computer and recorded on a computer-readable recording medium. Hereinafter, the binary data restoration method according to the present specification will be described on the assumption that it is executed by a processor.
도 14는 본 명세서의 일 실시예에 따른 이진 데이터 복원 방법의 흐름도이다.Figure 14 is a flowchart of a binary data restoration method according to an embodiment of the present specification.
본 명세서의 일 실시예에 따른 이진 데이터 복원 방법은 도 12에 도시된 실시예와 마찬가지로, 섞인 횟수 정보가 DNA 분자 내에 포함된 실시예에 대응하는 방법이다.The binary data restoration method according to an embodiment of the present specification, like the embodiment shown in FIG. 12, is a method corresponding to an embodiment in which information on the number of shuffles is included in a DNA molecule.
도 14를 참조하면, 먼저 단계 S210에서 프로세서는 분석된 DNA 염기서열 정보를 수신 및 저장할 수 있다. 다음 단계 S210에서 프로세서는 염기서열 정보를 이진 데이터로 역변환할 수 있다. 다음 단계 S220에서 프로세서는 역변환된 이진 데이터 내에 포함된 섞인 횟수 정보를 분리할 수 있다. 그리고 단계 S230에서 프로세서는 상기 섞인 횟수 정보에 따라 섞인 횟수 정보가 분리된 이진 데이터를 복원할 수 있다.Referring to FIG. 14, first, in step S210, the processor may receive and store the analyzed DNA sequence information. In the next step S210, the processor may reversely convert the base sequence information into binary data. In the next step S220, the processor may separate the shuffled count information included in the inversely converted binary data. And in step S230, the processor may restore binary data in which the shuffle count information is separated according to the shuffle count information.
도 15는 본 명세서의 다른 실시예에 따른 이진 데이터 복원 방법의 흐름도이다.Figure 15 is a flowchart of a binary data restoration method according to another embodiment of the present specification.
본 명세서의 다른 실시예에 따른 이진 데이터 복원 방법은 도 13에 도시된 실시예와 마찬가지로, 섞인 횟수 정보가 DNA 분자 내에 포함되지 않은 실시예에 대응하는 방법이다.The binary data restoration method according to another embodiment of the present specification, like the embodiment shown in FIG. 13, is a method corresponding to an embodiment in which information on the number of shuffles is not included in the DNA molecule.
도 15를 참조하면, 먼저 단계 S310에서 프로세서는 분석된 DNA 염기서열 정보를 수신 및 저장할 수 있다. 다음 단계 S310에서 프로세서는 염기서열 정보를 이진 데이터로 역변환할 수 있다. 다음 단계 S320에서 프로세서는 저장부에서 섞인 횟수 정보를 읽어 올 수 있다. 그리고 단계 S330에서 프로세서는 상기 섞인 횟수 정보에 따라 섞인 횟수 정보가 분리된 이진 데이터를 복원할 수 있다.Referring to FIG. 15, first, in step S310, the processor may receive and store the analyzed DNA sequence information. In the next step S310, the processor may reversely convert the base sequence information into binary data. In the next step S320, the processor can read the shuffle count information from the storage unit. And in step S330, the processor may restore binary data in which the shuffle count information is separated according to the shuffle count information.
한편, 단계 S210 또는 S310 이후, 프로세서는 역변환된 이진 데이터의 오류 정정 코드를 제거할 수 있다.Meanwhile, after step S210 or S310, the processor may remove the error correction code of the inversely converted binary data.
또한, 단계 S230 또는 S330에서, 프로세서는 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 복원할 수 있다.Additionally, in step S230 or S330, the processor may restore binary data using a linear feedback shift register (LFSR) method.
도 16은 본 명세서에 따른 DNA 인코딩 방법의 순서도이다.Figure 16 is a flowchart of the DNA encoding method according to the present specification.
도 16을 참조하면, 먼저 단계 S100에서 프로세서는 이진 데이터를 염기 서열 정보로 1차 변환할 수 있다. 다음 단계 S200에서 프로세서는 1차 변환된 염기 서열 정보 내 미리 설정된 주기마다 더미 염기 정보를 추가한 염기 서열 정보로 2차 변환할 수 있다. 이해의 편의를 위해 이진 데이터와 염기 서열 정보의 예시를 통해 본 명세서에 따른 DNA 인코딩 방법을 설명하겠다.Referring to FIG. 16, in step S100, the processor may first convert binary data into nucleotide sequence information. In the next step S200, the processor may secondary convert the primary converted nucleotide sequence information into nucleotide sequence information to which dummy nucleotide information is added at preset cycles. For convenience of understanding, the DNA encoding method according to the present specification will be explained through examples of binary data and base sequence information.
도 17은 본 명세서의 일 실시예에 따른 DNA 인코딩 방법의 예시도이다.Figure 17 is an exemplary diagram of a DNA encoding method according to an embodiment of the present specification.
도 17을 참조하여 우선 단계 S100에서 이진 데이터를 염기 서열 정보로 1차 변환하는 과정을 보다 자세히 살펴보겠다. 일 예시에 따르면, 프로세서는 2bits의 데이터마다 A(adenine)=00, T(thymine)=01, G(guanine)=10, C(cytosine)=11에 매칭시켜 염기 서열 정보로 1차 변환시킬 수 있다. 도 17에 도시된 예시에서는 2bits의 데이터를 염기와 1:1 매칭시켰지만, 본 명세서에 따른 DNA 인코딩 방법이 도시된 예시에 제한되는 것은 아니다. 하나의 염기가 1bit, 2bits, 3bits, 4bits에 해당할 수 있으며, 2진 데이터와 염기 정보를 매칭시키는 방법은 다양할 수 있다. 이렇게 변환된 염기 서열 정보를 '1차 변환된 염기 서열 정보'라고 명명한다.Referring to FIG. 17, we will first look in more detail at the process of first converting binary data into nucleotide sequence information in step S100. According to one example, the processor can first convert 2 bits of data into nucleotide sequence information by matching A(adenine)=00, T(thymine)=01, G(guanine)=10, and C(cytosine)=11. there is. In the example shown in FIG. 17, 2 bits of data are matched 1:1 with bases, but the DNA encoding method according to the present specification is not limited to the example shown. One base can correspond to 1 bit, 2 bits, 3 bits, or 4 bits, and methods for matching binary data and base information can vary. The base sequence information converted in this way is called ‘primary converted base sequence information’.
도 17을 참조하여 다음 단계 S200에서 더미 염기를 추가하는 과정을 보다 자세히 살펴보겠다. 도 17에 도시된 예시에서는 5개의 염기 서열마다 "G(guanine)"이 더미 염기로 추가된 것을 확인할 수 있다. 상기 더미 염기가 추가되는 주기는 다양하게 설정될 수 있다. 주기가 짧을 수록 더미 염기가 많이 추가되어 자외선에 의해 실제 정보를 가진 부분이 파괴될 가능성이 낮아지는바 구조적 안정성이 향상될 수 있다. 반면, 주기가 짧을 수록 전체 DNA 분자 내에서 실제 정보를 가진 부분이 줄어드는 단점이 있다. 따라서, 합성된 DNA 분자가 보관될 환경, 보관 기간 등을 고려하여 적절하게 더미 염기가 추가될 주기를 설정할 수 있다.Referring to FIG. 17, we will look in more detail at the process of adding a dummy base in the next step S200. In the example shown in Figure 17, it can be seen that "G (guanine)" is added as a dummy base in every five base sequences. The cycle in which the dummy base is added can be set in various ways. The shorter the cycle, the more dummy bases are added, lowering the possibility that the part with actual information will be destroyed by ultraviolet rays, thereby improving structural stability. On the other hand, the shorter the cycle, the disadvantage is that the portion containing actual information within the entire DNA molecule decreases. Therefore, the cycle for adding dummy bases can be set appropriately by considering the environment and storage period in which the synthesized DNA molecule will be stored.
한편, 본 명세서의 일 실시예에 따르면, 상기 단계 S200에서 추가된 더미 염기 정보는, 1차 변환된 염기 서열 정보 내 인접한 염기 정보와 다른 염기 정보일 수 있다. DNA 분자를 합성하는 과정에서 동일한 염기가 반복적으로 합성될 경우 불량이 발생할 가능성이 알려져 있다. Poon and MacGregor (198) Biopolymers 45:427-434에 따르면, G(guanine)을 4개 이상 반복(연속)적으로 합성되면, 구아닌 테트라플렉스(guanie tetraplex)형태로 응집(aggregation)되는 문제가 있다고 언급합니다. 상기 학술 자료에는 G(guanine)에 대한 문제를 언급하고 있지만, A(adenine), T(thymine), 및 C(cytosine)에 대해서도 동일 또는 유사한 문제가 발생하지 않을 배제하고 있지 않다. 도 17에 도시된 예시에서 왼쪽부터 첫번째, 세번째, 네번째 더미 염기의 추가인해, DNA 분자 내 G(guanine)이 4개 이상 반복(연속)적으로 배치된 것을 확인할 수 있다. 따라서, DNA 합성 과정에서 불량이 발생할 가능성을 낮추기 위해 인접한 염기 정보에 따라 더미 염기를 변경할 수 있다. 도 18은 인접 염기에 따른 추가될 수 있는 더미 염기의 종류에 대한 표이다.Meanwhile, according to an embodiment of the present specification, the dummy base information added in step S200 may be base information that is different from adjacent base information in the first converted base sequence information. It is known that defects may occur if the same base is synthesized repeatedly during the process of synthesizing DNA molecules. According to Poon and MacGregor (198) Biopolymers 45:427-434, when G (guanine) is synthesized repeatedly (continuously) more than 4 times, there is a problem of aggregation in the form of a guanine tetraplex. do. Although the above academic data mentions a problem with G (guanine), it does not rule out that the same or similar problems may occur with A (adenine), T (thymine), and C (cytosine). In the example shown in Figure 17, it can be seen that four or more G (guanine)s in the DNA molecule are repeatedly (continuously) placed due to the addition of the first, third, and fourth dummy bases from the left. Therefore, in order to reduce the possibility of defects occurring during the DNA synthesis process, the dummy base can be changed according to information on adjacent bases. Figure 18 is a table of types of dummy bases that can be added according to adjacent bases.
또 한편, 도 17에 도시된 예시에는 1개의 염기로 이루어진 더미 염기를 언급하였지만, 본 명세서의 일 실시예에 따르면, 추가된 더미 염기 정보는 적어도 둘 이상의 염기 정보일 수 있다.Meanwhile, in the example shown in FIG. 17, a dummy base consisting of one base is mentioned, but according to an embodiment of the present specification, the added dummy base information may be information of at least two or more bases.
도 19는 본 명세서의 다른 실시예에 따른 DNA 인코딩 방법의 예시도이다.Figure 19 is an exemplary diagram of a DNA encoding method according to another embodiment of the present specification.
도 19를 참조하면, 3개의 염기 "AGT", "GTA", "TAC", "AGT" 및 "ACC"로 이루어진 더미 염기가 추가된 것을 확인할 수 있다. 상기 더미 염기 정보를 이루는 염기의 개수는 다양하게 설정될 수 있다. 또한, 추가된 더미 염기 정보는, 추가된 더미 염기 정보의 양 끝에 위치한 염기 정보는 1차 변환된 염기 서열 정보 내 인접한 염기 정보와 다른 염기 정보일 수 있다. 이 또한, 동일 염기가 반복 합성되는 것을 방지하기 위함이다.Referring to Figure 19, it can be seen that a dummy base consisting of three bases "AGT", "GTA", "TAC", "AGT", and "ACC" was added. The number of bases constituting the dummy base information can be set in various ways. Additionally, as for the added dummy base information, the base information located at both ends of the added dummy base information may be base information that is different from the adjacent base information in the first converted base sequence information. This is also to prevent the same base from being synthesized repeatedly.
또 한편, 도 17 및 도 19에 도시된 예시는 1차 변환된 염기 서열 내부에 더미 염기가 추가되어 2차 변환되는 예시이다. 이처럼 DNA 분자 내부에 위치한 염기는 양 옆에 다른 염기와 결합되지만, DNA 분자 가장 끝에 위치한 염기는 한 쪽만 연결된 상태이고 다른 한쪽은 분자 결합이 없다. 이 경우, 끝 부분에 위치한 염기의 결합이 끊겨서 유실될 가능성이 있다. 이처럼 끝 부분에 실제 정보에 해당하는 염기가 손상될 가능성이 있는바 이 역시 보호할 필요가 있다.On the other hand, the examples shown in Figures 17 and 19 are examples of secondary conversion by adding a dummy base inside the primary converted base sequence. In this way, the base located inside the DNA molecule is bonded to other bases on both sides, but the base located at the very end of the DNA molecule is connected to only one side and there is no molecular bond to the other side. In this case, there is a possibility that the bond at the end may be broken and lost. As there is a possibility that the base corresponding to the actual information at the end may be damaged, this also needs to be protected.
다시 도 16을 참조하면, 단계 S200 이후 단계 S300에서 프로세서는 2차 변환된 염기 서열 정보의 양 끝 단에 보호 더미 염기 정보를 추가한 염기 서열 정보로 3차 변환할 수 있다.Referring again to FIG. 16, in step S300 after step S200, the processor may thirdly convert the secondarily converted base sequence information into base sequence information with protective dummy base information added to both ends.
도 20은 본 명세서의 또 다른 실시예에 따른 DNA 인코딩 방법의 예시도이다.Figure 20 is an exemplary diagram of a DNA encoding method according to another embodiment of the present specification.
도 20을 참조하면, 도 17에 도시된 2차 변환된 염기 서열 정보의 양 끝단에 "AAAAA"로 구성된 보호 더미 염기가 추가된 것을 확인할 수 있다. 이처럼 양 끝단에 추가된 보호 더미 염기는 실제 정보와 무관한 염기이므로, 손실되어도 실제 정보가 손상되는 것을 방지할 수 있다.Referring to Figure 20, it can be seen that a protective dummy base consisting of "AAAAA" has been added to both ends of the secondary converted base sequence information shown in Figure 17. Since the protective dummy bases added to both ends are bases unrelated to the actual information, even if they are lost, the actual information can be prevented from being damaged.
한편, 상기 프로세서는 상술한 산출 및 다양한 제어 로직을 실행하기 위해 본 발명이 속한 기술분야에 알려진 마이크로프로세서, ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로, 레지스터, 통신 모뎀, 데이터 처리 장치 등을 포함할 수 있다. 또한, 상술한 제어 로직이 소프트웨어로 구현될 때, 상기 프로세서는 프로그램 모듈의 집합으로 구현될 수 있다. 이 때, 프로그램 모듈은 메모리 장치에 저장되고, 프로세서에 의해 실행될 수 있다.Meanwhile, the processor may include a microprocessor, ASIC (application-specific integrated circuit), other chipsets, logic circuits, registers, communication modems, and data processing devices known in the technical field to which the present invention pertains to execute the above-described calculation and various control logic. It may include etc. Additionally, when the above-described control logic is implemented as software, the processor may be implemented as a set of program modules. At this time, the program module may be stored in the memory device and executed by the processor.
상기 전술한 컴퓨터프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C/C++, C#, JAVA, Python, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-mentioned computer program is C/C++, C#, JAVA that the processor (CPU) of the computer can read through the device interface of the computer in order for the computer to read the program and execute the methods implemented in the program. , may include code coded in computer languages such as Python and machine language. These codes may include functional codes related to functions that define the necessary functions for executing the methods, and include control codes related to execution procedures necessary for the computer's processor to execute the functions according to predetermined procedures. can do. In addition, these codes may further include memory reference-related codes that indicate at which location (address address) in the computer's internal or external memory additional information or media required for the computer's processor to execute the above functions should be referenced. there is. In addition, if the computer's processor needs to communicate with any other remote computer or server in order to execute the above functions, the code uses the computer's communication module to determine how to communicate with any other remote computer or server. It may further include communication-related codes regarding whether communication should be performed and what information or media should be transmitted and received during communication.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as a register, cache, or memory. Specifically, examples of the storage medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc., but are not limited thereto. That is, the program may be stored in various recording media on various servers that the computer can access or on various recording media on the user's computer. Additionally, the medium may be distributed to computer systems connected to a network, and computer-readable code may be stored in a distributed manner.
이상, 첨부된 도면을 참조로 하여 본 명세서의 실시예를 설명하였지만, 본 명세서가 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present specification have been described above with reference to the attached drawings, those skilled in the art will understand that the present invention can be implemented in other specific forms without changing the technical idea or essential features. You will be able to understand it. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive.

Claims (10)

  1. (a) 프로세서가 2진 데이터를 염기 서열로 1차 변환하는 단계;(a) the processor first converting the binary data into a base sequence;
    (b) 프로세서가 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 단계; 및(b) a step where the processor finds a point where the same base is repeated in the first converted base sequence; and
    (c) 프로세서가 상기 동일 염기가 반복된 지점에 더미 염기를 추가한 염기 서열로 2차 변환하는 단계;를 포함하는 DNA 인코딩 방법.(c) a step of secondary conversion by the processor into a base sequence in which dummy bases are added at points where the same bases are repeated.
  2. 청구항 1에 있어서,In claim 1,
    상기 (b) 단계는,In step (b),
    프로세서가 미리 정해진 개수의 동일 염기가 반복된 지점을 찾는 단계인, DNA 인코딩 방법.DNA encoding method, in which the processor searches for points where a predetermined number of identical bases are repeated.
  3. 청구항 2에 있어서,In claim 2,
    상기 (b) 단계는,In step (b),
    프로세서가 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾는 단계인, DNA 인코딩 방법.A DNA encoding method in which the processor searches for points where the same base is repeated according to the number set for each base.
  4. 청구항 1에 있어서,In claim 1,
    상기 (b) 단계는,In step (b),
    (b-1) 프로세서가 1차 변환된 염기 서열 내 반복된 염기에 대한 빈도수 테이블을 생성하는 단계;(b-1) generating a frequency table for repeated bases in the primary converted base sequence by the processor;
    (b-2) 프로세서가 상기 생성된 빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정하는 단계; 및(b-2) a step of the processor determining the number of repetitions of the same base requiring addition of a dummy base using the generated frequency table; and
    (b-3) 프로세서가 상기 (b-2) 단계에서 결정된 개수에 따라 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 단계;를 포함하는 DNA 인코딩 방법.(b-3) a step where the processor searches for points where the same base is repeated in the primary converted base sequence according to the number determined in step (b-2).
  5. 청구항 4에 있어서,In claim 4,
    상기 (b-2) 단계는,In step (b-2),
    프로세서가 빈도수의 평균값을 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정하는 단계인, DNA 인코딩 방법.A DNA encoding method in which the processor determines the average value of the frequency as the number of repetitions of the same base that requires the addition of a dummy base.
  6. 청구항 5에 있어서,In claim 5,
    상기 (b-2) 단계는,In step (b-2),
    프로세서가 각 염기마다 빈도수의 평균값을 각 염기마다 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정하는 단계인, DNA 인코딩 방법.A DNA encoding method in which the processor determines the average value of the frequency for each base as the number of repetitions of the same base that requires the addition of a dummy base for each base.
  7. 청구항 1에 있어서,In claim 1,
    상기 (c) 단계는,In step (c),
    프로세서가 미리 정해진 적어도 하나 이상의 서열을 가진 더미 염기를 추가하여 2차 변환하는 단계인, DNA 인코딩 방법.A DNA encoding method in which a processor performs secondary conversion by adding dummy bases with at least one predetermined sequence.
  8. 청구항 1에 있어서,In claim 1,
    상기 (c) 단계는,In step (c),
    프로세서가 상기 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기를 더미 염기로 추가하여 2차 변환하는 단계인, DNA 인코딩 방법.A DNA encoding method in which the processor performs secondary conversion by adding bases different from the adjacent bases on both sides of the point where the same base is repeated as dummy bases.
  9. 청구항 8에 있어서,In claim 8,
    상기 (c) 단계는,In step (c),
    프로세서가 2이상의 서열을 가진 더미 염기를 추가하여 2차 변환하는 단계인, DNA 인코딩 방법.A DNA encoding method in which the processor performs secondary conversion by adding dummy bases with two or more sequences.
  10. 컴퓨터에서 청구항 1 내지 청구항 9 중 어느 한 청구항에 따른 DNA 인코딩 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램.A computer program written to perform each step of the DNA encoding method according to any one of claims 1 to 9 on a computer and recorded on a computer-readable recording medium.
PCT/KR2023/014125 2022-10-06 2023-09-19 Dna encoding and decoding method and device WO2024076044A1 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR1020220127750A KR20240048218A (en) 2022-10-06 2022-10-06 Dna encoding method and apparatus for low error possibility
KR10-2022-0127750 2022-10-06
KR10-2022-0129385 2022-10-11
KR1020220129385A KR20240049911A (en) 2022-10-11 2022-10-11 Binary data scramble method for preventing repeating placement fo nucleotide sequence
KR10-2022-0137061 2022-10-24
KR1020220137061A KR20240056939A (en) 2022-10-24 2022-10-24 Decrambling method for scrambled binary data to original binary data
KR1020220138893A KR20240058289A (en) 2022-10-26 2022-10-26 Dna encoding method and apparatus for improving structural stability
KR10-2022-0138893 2022-10-26

Publications (1)

Publication Number Publication Date
WO2024076044A1 true WO2024076044A1 (en) 2024-04-11

Family

ID=90608727

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/014125 WO2024076044A1 (en) 2022-10-06 2023-09-19 Dna encoding and decoding method and device

Country Status (1)

Country Link
WO (1) WO2024076044A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150037824A (en) * 2012-07-19 2015-04-08 프레지던트 앤드 펠로우즈 오브 하바드 칼리지 Methods of storing information using nucleic acids
KR20190116297A (en) * 2017-01-10 2019-10-14 로스웰 바이오테크놀로지스 인코포레이티드 Methods and Systems for DNA Data Storage
KR20190118853A (en) * 2018-04-11 2019-10-21 서울대학교산학협력단 Dna digital data storage device and method, and decoding method of dna digital data storage device
KR20200025430A (en) * 2018-08-30 2020-03-10 한동대학교 산학협력단 Method for storing digital information into DNA molecule and apparatus therefor
KR20200071720A (en) * 2017-07-25 2020-06-19 난징진시루이 사이언스 앤드 테크놀로지 바이올로지 코포레이션 DNA-based data storage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150037824A (en) * 2012-07-19 2015-04-08 프레지던트 앤드 펠로우즈 오브 하바드 칼리지 Methods of storing information using nucleic acids
KR20190116297A (en) * 2017-01-10 2019-10-14 로스웰 바이오테크놀로지스 인코포레이티드 Methods and Systems for DNA Data Storage
KR20200071720A (en) * 2017-07-25 2020-06-19 난징진시루이 사이언스 앤드 테크놀로지 바이올로지 코포레이션 DNA-based data storage
KR20190118853A (en) * 2018-04-11 2019-10-21 서울대학교산학협력단 Dna digital data storage device and method, and decoding method of dna digital data storage device
KR20200025430A (en) * 2018-08-30 2020-03-10 한동대학교 산학협력단 Method for storing digital information into DNA molecule and apparatus therefor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TAEJIN AHN, HAMIN BAN, HYUNSOO PARK: "Storing Digital Information in Long-Read DNA", GENOMICS & INFORMATICS, vol. 16, no. 4, 31 December 2018 (2018-12-31), pages e30, XP055680289, DOI: 10.5808/GI.2018.16.4.e30 *

Similar Documents

Publication Publication Date Title
WO2017209531A1 (en) Apparatus and method for encoding with cyclic redundancy check and polar code
WO2009139574A2 (en) Memory device and method of managing memory data error
WO2014012325A1 (en) Method and device for checking nand flash memory chip
EP0546863A2 (en) Data compression apparatus
KR101531774B1 (en) Decoding encoded data containing integrated data and header protection
CN111352765B (en) Controller and memory system
WO2014137202A1 (en) Error correction processing circuit in memory and error correction processing method
WO2021033981A1 (en) Flexible information-based decoding method of dna storage device, program and apparatus
WO2024076044A1 (en) Dna encoding and decoding method and device
US7770010B2 (en) Dynamically configurable interleaver scheme using at least one dynamically changeable interleaving parameter
JP2589957B2 (en) Coding method and memory system for single sub-block error and single bit error detection
WO2013015548A2 (en) Ldpc encoding/decoding method and device using same
JP4065425B2 (en) Variable length coding packing architecture
US7098818B1 (en) Encoder and decoder using run-length-limited code
WO2020231020A1 (en) Method and apparatus for high-speed decoding of linear code on basis of soft decision
KR20190051245A (en) Device and method for decoding polar code
KR101874537B1 (en) Method and Apparatus for Parallel Decoding of Polar Codes
US20120110416A1 (en) Data storage apparatus with encoder and decoder
KR101543081B1 (en) Encoding and decoding redundant bits to accommodate memory cells having stuck-at faults
WO2014073747A1 (en) Method for reducing power consumption of flash memory and apparatus therefor
JP2007323786A (en) Semiconductor device
WO2020179966A1 (en) Method and apparatus for fast decoding of linear code on basis of soft decision
WO2023018157A1 (en) Dna data encoding and decoding method using low-density parity check code, program, and device
JP5336501B2 (en) Method and encoding system for encoding error control code between bit strings
WO2014046395A1 (en) Encoding/decoding method and apparatus using complementary sparse inverse code

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23875112

Country of ref document: EP

Kind code of ref document: A1