KR20240049911A - 염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법 - Google Patents

염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법 Download PDF

Info

Publication number
KR20240049911A
KR20240049911A KR1020220129385A KR20220129385A KR20240049911A KR 20240049911 A KR20240049911 A KR 20240049911A KR 1020220129385 A KR1020220129385 A KR 1020220129385A KR 20220129385 A KR20220129385 A KR 20220129385A KR 20240049911 A KR20240049911 A KR 20240049911A
Authority
KR
South Korea
Prior art keywords
binary data
base sequence
base
converted
processor
Prior art date
Application number
KR1020220129385A
Other languages
English (en)
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
Application filed by (주)디나스텍 filed Critical (주)디나스텍
Priority to KR1020220129385A priority Critical patent/KR20240049911A/ko
Priority to PCT/KR2023/014125 priority patent/WO2024076044A1/ko
Publication of KR20240049911A publication Critical patent/KR20240049911A/ko

Links

Classifications

    • 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
    • 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

Landscapes

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

Abstract

본 명세서는 DNA 합성 및 복원할 때 오류 가능성을 낮춘 이진 데이터 섞는 방법 및 장치를 제공하는 것을 목적으로 한다. 본 명세서에 따른 이진 데이터 섞는 방법은 이진 데이터를 염기 서열로 임시 변환한 후 동일 염기가 미리 설정된 개수 이상 반복될 경우, 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 섞은 후 다시 염기 서열로 변환한다. 이진 데이터를 섞는 과정과 변환 및 역변환을 반복하면서 동일 염기가 미리 설정된 개수 이상 반복되지 않을 때, 마지막 변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장할 수 있다.

Description

염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법{BINARY DATA SCRAMBLE METHOD FOR PREVENTING REPEATING PLACEMENT FO NUCLEOTIDE SEQUENCE}
본 발명은 DNA 분자 기반 정보 저장 기술에 관한 것이며, 보다 상세하게는 DNA 합성 과정에서 불량이 발생할 가능성을 낮추기 위한 이진 데이터 처리 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 명세서에 기재된 실시예에 대한 배경 정보를 제공할 뿐 반드시 종래 기술을 구성하는 것은 아니다.
장기 기록매체로서 널리 사용되고 있는 자기 테이프는 데이터 저장 수명이 10년 정도로 제한되어 유지 및 관리비용이 지속적으로 요구된다. 반도체 저장장치의 경우 HDD와 SSD가 대표적이다. HDD 수명은 주로 5년이고, 데이터 접근 빈도수가 분기당 1회 미만에 사용하는 경우 10년 정도 수명을 가지지만, 충격에 매우 취약하다는 점과 최대 용량치에 한계가 있다. SSD의 경우 충격에는 강하지만 수명이 상대적으로 HDD보다 짧다. 최근에는 폭발적으로 생산되는 데이터량이 저장매체의 용량을 초과하여 과부하를 일으키고 있는 실정이고, 기존 정보 저장 매체의 데이터 저장밀도 한계에 도달하고 있는바, 새로운 방식의 저장장치가 필요하게 되었다.
새로운 저장매체를 개발하기 위한 시도 중 DNA를 이용하여 새로운 저장매 체 개발의 시도가 이루어지고 있다. DNA를 저장매체로 이용할 경우, 기존의 저장매체의 단점인 데이터 저장 밀도를 뛰어 넘을 수 있고, 물리적인 충격에도 안정적으로 정보를 장기간 저장할 수 있다.
DNA는 잘 알려져 있듯이, 생물체의 가장 작은 단위인 세포 안에 들어 있으며, 모든 유전정보를 담고 있다. DNA가 가지고 있는 정보에 따라 모든 생물체는 마치 프로그램 된 것과 같이 성장하고 움직인다. 인간의 경우, 1개의 단일 세포에 들어 있는 DNA는 30억쌍의 염기 서열로 구성되어 있고, 이를 모두 해독한 유전정보의 크기를 환산한다면 약 1TB정도의 용량이다. 그리고 1개의 단일세포에는 폭이 2nm, 길이가 3m나 되는 두 가닥의 DNA가 들어있다. 따라서 이론적으로 EB(10^18 )이상 저장할 수 있는 차세대 바이오스토리지인 DNA는 초집약적으로 정보를 저장하기 위한 바이오소재로서 매우 적합하다. 또한, 저장 수명도 1,000년 이상이며, 저비용 저장이 가능할 것으로 보인다.
도 1은 DNA 염기 서열을 이용한 정보 저장의 개념도이다.
도 1을 참조하면, 저장하고자 하는 이진 데이터(Binary data)를 뉴클레오티드 A(adenine), T(thymine), G(guanine), C(cytosine)로 인코딩(Encoding)한다. 인코딩된 염기 서열에 따라 DNA를 합성(Synthesis)하고, 합성된 DNA 분자를 저장(Storage)한다. 이후, 저장된 DNA 분자를 검색(Retrieval)을 통해 선택하고, 선택된 DNA 분자의 염기 서열을 분석(Sequencing))하고, 분석된 염기 순서에 따라 이진 데이터로 디코딩(Decoding)한다.
대한민국 공개특허공보 제10-2015-0016572호, 2015.02.12
본 명세서는 DNA 합성 및 복원할 때 오류 가능성을 낮춘 이진 데이터 섞는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 명세서는 상기 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 명세서에 따른 이진 데이터 섞는 방법은, (a) 프로세서가 이진 데이터를 염기 서열로 임시 변환하는 단계; (b) 프로세서가 임시 변환된 염기 서열 내 동일 염기가 미리 설정된 개수 이상 반복된 지점(이하 '동일염기반복서열')이 존재하는지 판단하는 단계; (c) 프로세서가 상기 (b) 단계에서 동일염기반복서열이 존재할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 섞은 후 다시 단계 (a)로 이행하는 단계; 및 (d) 프로세서가 상기 (b) 단계에서 동일염기반복서열이 존재하지 않을 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하는 단계;를 포함할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계는 프로세서가 미리 정해진 개수의 동일 염기가 반복된 지점을 찾는 단계일 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계는 프로세서가 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾는 단계일 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (c) 단계는 프로세서가 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 섞는 단계일 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (c) 단계는, (c-1) 프로세서가 이진 데이터를 섞을 때마다 섞은 횟수를 저장하는 단계; 및 (c-2) 프로세서가 미리 설정된 최대 섞음 횟수에 도달할 때, (d) 단계로 이행하는 단계;를 포함할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (a) 단계는 프로세서가 임시 변환된 염기 서열을 저장하는 단계이고, 상기 (c) 단계는 프로세서가 동일반복된 염기의 개수를 상기 임시 변환된 염기 서열에 더 저장하고, (c-1) 프로세서가 역변환된 이진 데이터가 최초 이진 데이터와 동일하지 않을 때, 역변환된 이진 데이터를 섞은 후 다시 단계 (a)로 이행하는 단계; 및 (c-2) 프로세서가 역변환된 이진 데이터가 최초 이진 데이터와 동일할 때, 임시 변환된 염기 서열 중 동일반복된 염기의 개수가 가장 적은 염기 서열을 상기 (d) 단계로 보내는 단계;를 포함할 수 있다.
본 명세서에 따른 이진 데이터 섞는 방법은, 컴퓨터에서이진 데이터 섞는 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다.
상술한 과제를 해결하기 위한 본 명세서에 따른 이진 데이터 섞는 장치는, 이진 데이터를 염기 서열로 변환 또는 염기 서열을 이진 데이터로 역변환하는 염기서열변환부; 상기 염기서열변환부에서 임시 변환된 염기 서열 내 동일 염기가 미리 설정된 개수 이상 반복된 지점(이하 '동일염기반복서열')이 존재하는지 판단하는 반복염기분석부; 이진 데이터를 섞은 후 출력하는 이진데이터스크램부; 및 상기 염기서열변환부, 반복염기분석부 및 이진데이터스크램부를 제어하는 제어부;를 포함하되, 상기 제어부는, 상기 반복염기분석부에서 동일염기반복서열이 존재한 것으로 판단할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 섞은 후, 섞어진 이진 데이터를 다시 염기 서열로 변환하도록 제어하고, 상기 반복염기분석부에서 동일염기반복서열이 존재하지 않을 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 반복염기분석부는 미리 정해진 개수의 동일 염기가 반복된 지점을 찾을 수 있다.
본 명세서의 일 실시예에 따르면, 상기 반복염기분석 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾을 수 있다.
본 명세서의 일 실시예에 따르면, 상기 이진데이터스크램부는 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 섞을 수 있다.
본 명세서의 일 실시예에 따르면, 상기 제어부는 상기 이진데이터스크램부가 이진 데이터를 섞을 때마다 섞은 횟수를 저장하고, 미리 설정된 최대 섞음 횟수에 도달할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 제어부는 상기 염기서열변환부에서 임시 변환될 때마다 염기 서열을 저장하고, 상기 반복염기분석부에서 분석된 동일반복된 염기의 개수를 상기 임시 변환된 염기 서열에 더 저장하고, 역변환된 이진 데이터가 최초 이진 데이터와 동일하지 않을 때, 역변환된 이진 데이터를 섞도록 제어하고, 역변환된 이진 데이터가 최초 이진 데이터와 동일할 때, 동일반복된 염기의 개수가 가장 적은 임시 변환된 염기 서열을 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어할 수 있다.
본 명세서에 따른 이진 데이터 섞는 장치는, 이진 데이터 섞는 장치; 및 상기 이진 데이터 섞는 장치에 출력된 이진 데이터에 따라 염기 서열로 변환 후 DNA를 합성하는 DNA 합성 장치;를 포함하는 DNA 저장 시스템의 일 구성요소가 될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 명세서에 따르면, DNA 합성 및 복원할 때 오류 가능성을 낮출 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 DNA 염기 서열을 이용한 정보 저장의 개념도이다.
도 2는 본 명세서에 따른 DNA 정보 저장 시스템에 대한 참고도이다.
도 3은 본 명세서에 따른 이진 데이터 섞는 장치의 개략적인 구성도이다.
도 4는 본 명세서의 일 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.
도 5는 이진데이터의 염기 서열 변환에 대한 참고도이다.
도 6은 선형 되먹임 시프트 레지스터의 이해를 돕기 위한 참고도이다.
도 7은 본 명세서의 다른 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.
도 8은 본 명세서의 또 다른 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.
본 명세서에 개시된 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 명세서가 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 명세서의 개시가 완전하도록 하고, 본 명세서가 속하는 기술 분야의 통상의 기술자(이하 '당업자')에게 본 명세서의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 명세서의 권리 범위는 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 명세서의 권리 범위를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 명세서가 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 2는 본 명세서에 따른 DNA 정보 저장 시스템에 대한 참고도이다.
도 2를 참조하면, DNA 정보 저장 시스템은 크게 제어부(Controller)와 DNA 분자부(DNA Molecular)로 나누어 진다. 제어부(Controller)는 호스트(Host)로부터 정보의 저장 요청(Write)을 받으면, 바이너리(Binary) 데이터를 압축(Compression)하고, 압축된 데이터를 섞을 수 있다(Scrambler). 데이터를 섞는 이유는 이후 바이너리 데이터를 염기서열에 치환할 때, 동일한 염기서열이 반복되는 것을 방지하기 위함이다. 섞는 과정이 완료된 데이터는 오류 정정 코드(Error Correction Code, ECC)가 추가될 수 있다. 그 다음으로 바이너리 데이터는 이에 대응하는 염기서열 정보로 변환(DNA Library)될 수 있다. DNA 분자부(DNA Molecular)는 염기서열로 변환된 데이터에 따라 실제 DNA 분자를 합성(Synthesis)할 수 있다.
이후, DNA 분자로 저장된 정보를 독출(Read) 요청이 발생하면, DNA 분자부(DNA Molecular)는 DNA 분자의 염기서열을 분석(Sequencing)한다. 제어부(Controller)는 분석된 염기서열에 따라 다시 바이너리 데이터로 변환하고 오류 정정 코드(ECC)를 이용하여 데이터 오류 등을 정정한다(Encoder). 오류 등이 정정된 바이너리 데이터는 섞인 상태를 풀고(Descrambler), 압축을 해제(Decompression)하여, 원래 바이너리(Binary) 데이터(정보)를 제공할 수 있다.
본 명세서가 속한 기술분야에서 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 합성 과정에서 불량이 발생할 가능성을 낮출 방법이 필요함을 인지하게 되었다.
이하, 첨부된 도면을 참조하여 본 명세서에 따른 이진 데이터 섞는 방법 및 장치에 대해서 설명한다. 본 명세서에 따른 이진 데이터 섞는 장치는 상기 이진 데이터 섞는 장치에 출력된 이진 데이터에 따라 염기 서열로 변환 후 DNA를 합성하는 DNA 합성 장치를 포함하는 DNA 저장 시스템의 일 구성요소가 될 수 있다. 이때, 본 명세서에 따른 이진 데이터 섞는 방법 및 장치는 도 2에 도시된 "Scrambler"에 대응할 수 있다. 최종 결정된 이진 데이터는 이후 염기 서열로 변환되고, 변환된 염기 서열에 따라 실제 DNA 분자로 합성될 수 있다.
본 명세서에서 "이진 데이터"란 1과 0으로 이루어진 데이터를 의미한다. 본 명세서에서 "염기 서열"은 A(adenine), T(thymine), G(guanine) 및 C(cytosine)로 이루어진 정보를 의미한다. 본 명세서에서 염기 순서는 5'에서 3'으로 읽는 방향을 정방향을 정한다. 또한, 염기 서열이 반복되는 것은 동일한 염기가 반복(연속)적으로 배치되는 것을 의미한다. 따라서, 동일 염기 서열이 반복된 지점이란, 동일 염기 서열이 정방향으로 소정의 개수만큼 반복 배치된 지점을 의미한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
도 3은 본 명세서에 따른 이진 데이터 섞는 장치의 개략적인 구성도이다.
도 3을 참조하면, 본 명세서에 따른 이진 데이터 섞는 장치(100)는 염기서열변환부(110), 반복염기분석부(120), 이진데이터스크램부(130) 및 제어부(140)를 포함할 수 있다. 상기 염기서열변환부(110)는 이진 데이터를 염기 서열로 변환 또는 염기 서열을 이진 데이터로 역변환할 수 있다. 상기 반복염기분석부(120)는 상기 염기서열변환부(110)에서 임시 변환된 염기 서열 내 동일 염기가 미리 설정된 개수 이상 반복된 지점(이하 '동일염기반복서열')이 존재하는지 판단할 수 있다. 상기 이진데이터스크램부(130)는 이진 데이터를 섞은 후 출력할 수 있다. 상기 제어부(140)는 상기 염기서열변환부(110), 반복염기분석부(120) 및 이진데이터스크램부(130)를 제어할 수 있다. 상기 제어부(140)는 상기 반복염기분석부(120)에서 동일염기반복서열이 존재한 것으로 판단할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 섞은 후, 섞어진 이진 데이터를 다시 염기 서열로 변환하도록 제어할 수 있다. 또한, 상기 제어부(140)는 상기 반복염기분석부(120)에서 동일염기반복서열이 존재하지 않을 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어할 수 있다. 상기 제어부(140)의 동작에 대해서는 본 명세서에 따른 이진 데이터 섞는 방법을 통해 설명하겠다.
한편, 상기 염기서열변환부(110), 반복염기분석부(120), 이진데이터스크램부(130) 및 제어부(140)는 이하에서 설명될 이진 데이터 섞는 방법을 실행하기 위해 본 발명이 속한 기술분야에 알려진 프로세서, ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로, 레지스터, 통신 모뎀, 데이터 처리 장치 등을 포함할 수 있다. 또한, 이하 설명될 제어 로직이 소프트웨어로 구현될 때, 상기 염기서열변환부(110), 반복염기분석부(120), 이진데이터스크램부(130) 및 제어부(140)는 프로그램 모듈의 집합으로 구현될 수 있다. 이 때, 프로그램 모듈은 메모리 장치에 저장되고, 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에 따른 이진 데이터 섞는 방법은 컴퓨터에서 이하 설명될 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다. 이하 본 명세서에 따른 이진 데이터 섞는 방법은 프로세서에 의해 실행되는 것을 전제로 설명하겠다.
도 4는 본 명세서의 일 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.
도 4를 참조하면, 먼저 단계 S100에서 프로세서는 최초 데이터를 수신 및 저장할 수 있다. 본 명세서에서 '최초 데이터'란 섞어지지 않은 원본 이진데이터를 의미한다. 다음 단계 S110에서 프로세서는 상기 최초 데이터(이진데이터)를 염기 서열로 임시 변환할 수 있다. 단계 S110에서 변환된 염기 서열을 '임시 염기 서열'이라고 명명한 것은 이후 설명될 '염기 서열 변환 대상 이진 데이터'와 구별하기 위함이다. 상기 '임시 염기 서열'은 이후 실제 DNA로 합성될 염기 서열이 아닐 수 있다. 반면, '염기 서열 변환 대상 이진 데이터'는 실제 DNA로 합성될 염기 서열에 대응하는 데이터이다.
도 5는 이진데이터의 염기 서열 변환에 대한 참고도이다.
도 5를 참조하면, 프로세서는 2bits의 데이터마다 A(adenine)=00, T(thymine)=01, G(guanine)=10, C(cytosine)=11에 매칭시켜 염기 서열로 1차 변환시킬 수 있다. 도 5에 도시된 예시에서는 2bits의 데이터를 염기와 1:1 매칭시켰지만, 본 명세서에 따른 이진 데이터 섞는 방법이 도시된 예시에 제한되는 것은 아니다. 하나의 염기가 1bit, 2bits, 3bits, 4bits에 해당할 수 있으며, 이진 데이터와 염기 서열을 매칭시키는 방법은 다양할 수 있다.
다시 도 4를 참조하면, 단계 S120에서 프로세서는 임시 변환된 염기 서열 내 동일 염기가 미리 설정된 개수 이상 반복된 지점(이하 '동일염기반복서열')이 존재하는지 판단할 수 있다. 앞서 설명하였듯이, 특정 염기가 반복(연속) 배치될 경우 합성 과정에서 불량이 발생할 가능성이 높다. 즉, 단계 S120은 DNA 합성 과정에서 불량이 발생할 가능성이 높은 지점을 찾는 과정이다.
본 명세서의 일 실시예에 따르면, 프로세서는 미리 정해진 개수의 동일 염기가 반복된 지점을 찾을 수 있다. 미리 정해진 개수는, 예를 들어, 4개~70개 등 다양하게 설정될 수 있다. 한편, 4개의 염기에 모두 동일한 기준을 적용할 수도 있지만, 각 염기마다 다른 기준을 적용할 수 있다. 따라서, 프로세서는 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾을 수도 있다. 예를 들어, A는 5개, T는 6개, G는 7개, C는 5개 등 이런 식으로 염기와 염기가 서로 다른 개수를 가질 수 있고, 일부 염기는 같은 개수를 가질 수도 있다.
만약 동일염기반복서열이 존재할 때, 즉 동일염기의 반복 개수가 미리 설정된 개수 이상이라면(단계 S120의 'YES'), 프로세스는 단계 S130으로 이행한다. 단계 S130에서 프로세서는 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환할 수 있다. 그리고 단계 S140에서 프로세서는 역변환된 이진 데이터를 섞은 후 프로세스를 단계 S110으로 이행시킬 수 있다. 즉, 변환된 염기 서열 내 동일염기의 반복 개수가 미리 설정된 개수 이상 존재할 경우, 단계 S110 내지 단계 S140은 반복실행될 수 있다.
반면, 동일염기반복서열이 존재하지 않을 때, 즉 동일염기의 반복 개수가 미리 설정된 개수 미만이라면(단계 S120의 'NO'), 프로세스는 단계 S150으로 이행한다. 단계 S150에서 프로세서는 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장할 수 있다. 상기 염기 서열을 다시 이진 데이터로 역변환하는 것은 도 2에 도시된 인코더(Encoder)에서 이진 데이터를 추가 처리할 필요가 있기 때문이다.
상기 단계 S140에서 이진 데이터를 섞는 방법은 다양할 수 있다. 본 명세서의 일 실시예에 따르면, 프로세서는 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 섞을 수 있다. 선형 되먹임 시프트 레지스터(Linear feedback shift register, LFSR)는 시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조를 가지고 있다. 이때 사용되는 선형 함수는 주로 배타적 논리합(XOR)이다. LFSR의 초기 비트 값은 시드(seed)라고 부른다. LFSR는 의사 난수, 의사 난수 잡음(PRN), 빠른 디지털 카운터, 백지화 수열 등의 분야에서 사용된다. 본 명세서에서는 기존 의사 난수 등에 사용되는 LFSR을 동기염기가 반복되는 것을 해결하기 위한 요소로 활용한 것이다.
도 6은 선형 되먹임 시프트 레지스터의 이해를 돕기 위한 참고도이다.
LFSR의 탭 수열은 다항 합동식으로 나타낼 수 있다. 이 것은 다항식의 계수가 반드시 1이거나 0이어야 하다. 이 것을 되먹임 다항식 또는 특성 다항식이라고 부른다. 예를 들어 탭이 16번째, 14번째, 13번째 및 11번째 비트라면, LFSR 다항식은 아래와 같다.
X11+x13+X14+X16+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에 대해서는 당업자에게 알려진 바 더 이상 상세한 설명은 생략한다.
한편, LFSR의 동작은 결정론적이다. 따라서, LFSR로 생성되는 값의 수열은 그 이전 값에 의해 결정된다. 또한, 레지스터가 가질 수 있는 값의 개수는 유한하기 때문에, 이 수열은 특정한 주기에 의해 반복될 수 있다. 물론, 선형 함수를 잘 선택한다면 주기가 길고 무작위적으로 보이는 수열을 생성할 수 있다. 그러나 LSFR에서 출력된 값을 다시 LSFR에 계속 입력하면 수열이 반복되어 나올 가능성이 있다. 즉, 경우에 따라 단계 S110 내지 S140을 반복 실행할 경우, 최초 데이터가 다시 출력될 수 있다. 따라서, 단계 S110 내지 S140이 무한 반복되는 것을 방지할 필요가 있다.
LSFR의 반복 실행을 방지하기 위한 하나의 방법은 미리 실행 횟수를 설정하는 것이다.
도 7은 본 명세서의 다른 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.
도 7을 참조하면, 단계 S100 내지 단계 S150은 동일하고, 단계 S141과 단계 S142가 추가된 것을 확인할 수 있다. 본 명세서의 다른 실시예에 따르면, 단계 S140에서 프로세서는 이진 데이터를 섞은 이후 단계 S141로 이행할 수 있다. 단계 S141에서 프로세서는 이진 데이터를 섞을 때마다 섞은 횟수를 저장할 수 있다. 그리고 단계 S142에서 섞은 횟수가 미리 설정된 최대 섞음 횟수(K)를 초과하였는지 판단할 수 있다. 만약 섞은 횟수가 최대 섞음 횟수(K)보다 작은 경우(단계 S142의 "NO"), 프로세스는 단계 S110으로 이행할 수 있다. 즉, 섞은 횟수가 최대 섞음 횟수(K)가 되지 전까지는 단계 S110 내지 단계 S142를 반복 실행할 수 있다. 반면, 섞은 횟수가 최대 섞음 횟수(K)보다 큰 경우(단계 S142의 "YES"), 프로세스는 단계 S150으로 이행할 수 있다. 추가 섞음을 진행하지 않고, 마지막으로 섞어진 이진 데이터를 염기 서열 변환 이진 데이터로 저장하는 것이다.
LSFR의 반복 실행을 방지하기 위한 다른 방법은 변환된 이진 데이터 중 염기 서열의 반복 횟수가 가장 적은 이진 데이터를 찾는 것이다.
도 8은 본 명세서의 또 다른 실시예에 따른 이진 데이터 섞는 방법의 흐름도이다.
도 8을 참조하면, 단계 S143과 단계 S144가 추가된 것을 확인할 수 있다. 먼저 단계 S110에서 프로세서는 임시 변환된 염기 서열을 저장할 수 있다. 즉, 이진 데이터 섞은 후 단계 S110이 실행될 때마다, 변환된 임시 데이터는 저장될 수 있다. 그리고 단계 S120에서 프로세서는 동일반복된 염기의 개수를 상기 임시 변환된 염기 서열에 더 저장할 수 있다. 즉, 임시 변환된 염기 서열 내 동일반복된 염기의 개수가 실제 몇 개인지 정보를 더 저장할 수 있다. 다음 단계 S130 및 S140은 앞서 설명한 것과 동일하다. 단계 S140 다음 단계 S143에서, 프로세서는 역변환된 이진 데이터가 최초 이진 데이터 즉, 최초 데이터와 동일한지 여부를 판단할 수 있다.
만약 역변환된 이진 데이터가 최초 이진 데이터와 동일하지 않다면(단계 S143의 "NO"), 프로세스는 단계 S110으로 이행할 수 있다. 이후 프로세서는 단계 S110 내지 단계 S143을 반복실행할 수 있다. 상기 단계 S110 내지 단계 S143의 반복 실행은 단계 S120에서 동일염기의 반복 서열이 기준 개수 이하이거나, 섞어진 이진 데이터가 최초 이진 데이터와 동일할 때까지 실행될 수 있다.
반면, 역변환된 이진 데이터가 최초 이진 데이터와 동일하다면(단계 S143의 "YES"), 프로세스는 단계 S144로 이행할 수 있다. 단계 S144에서 프로세서는 임시 변환된 염기 서열 중 동일반복된 염기의 개수가 가장 적은 염기 서열을 선택할 수 있다. 그리고 프로세서는 단계 S150에서 선택된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장할 수 있다.
상기 설명한 컴퓨터프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C/C++, C#, JAVA, Python, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 명세서의 실시예를 설명하였지만, 본 명세서가 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100 : 이진 데이터 섞는 장치
110 : 염기서열변환부
120 : 반복염기분석부
130 : 이진데이터스크램부
140 : 제어부

Claims (14)

  1. (a) 프로세서가 이진 데이터를 염기 서열로 임시 변환하는 단계;
    (b) 프로세서가 임시 변환된 염기 서열 내 동일 염기가 미리 설정된 개수 이상 반복된 지점(이하 '동일염기반복서열')이 존재하는지 판단하는 단계;
    (c) 프로세서가 상기 (b) 단계에서 동일염기반복서열이 존재할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 섞은 후 다시 단계 (a)로 이행하는 단계; 및
    (d) 프로세서가 상기 (b) 단계에서 동일염기반복서열이 존재하지 않을 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하는 단계;를 포함하는 이진 데이터 섞는 방법.
  2. 청구항 1에 있어서,
    상기 (b) 단계는,
    프로세서가 미리 정해진 개수의 동일 염기가 반복된 지점을 찾는 단계인, 이진 데이터 섞는 방법.
  3. 청구항 2에 있어서,
    상기 (b) 단계는,
    프로세서가 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾는 단계인, 이진 데이터 섞는 방법.
  4. 청구항 1에 있어서,
    상기 (c) 단계는,
    프로세서가 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 섞는 단계인, 이진 데이터 섞는 방법.
  5. 청구항 4에 있어서,
    상기 (c) 단계는,
    (c-1) 프로세서가 이진 데이터를 섞을 때마다 섞은 횟수를 저장하는 단계; 및
    (c-2) 프로세서가 미리 설정된 최대 섞음 횟수에 도달할 때, (d) 단계로 이행하는 단계;를 포함하는, 이진 데이터 섞는 방법.
  6. 청구항 4에 있어서,
    상기 (a) 단계는, 프로세서가 임시 변환된 염기 서열을 저장하는 단계이고,
    상기 (c) 단계는, 프로세서가 동일반복된 염기의 개수를 상기 임시 변환된 염기 서열에 더 저장하고,
    (c-1) 프로세서가 역변환된 이진 데이터가 최초 이진 데이터와 동일하지 않을 때, 역변환된 이진 데이터를 섞은 후 다시 단계 (a)로 이행하는 단계; 및
    (c-2) 프로세서가 역변환된 이진 데이터가 최초 이진 데이터와 동일할 때, 임시 변환된 염기 서열 중 동일반복된 염기의 개수가 가장 적은 염기 서열을 상기 (d) 단계로 보내는 단계;를 포함하는, 이진 데이터 섞는 방법.
  7. 컴퓨터에서 청구항 1 내지 청구항 6 중 어느 한 청구항에 따른 이진 데이터 섞는 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램.
  8. 이진 데이터를 염기 서열로 변환 또는 염기 서열을 이진 데이터로 역변환하는 염기서열변환부;
    상기 염기서열변환부에서 임시 변환된 염기 서열 내 동일 염기가 미리 설정된 개수 이상 반복된 지점(이하 '동일염기반복서열')이 존재하는지 판단하는 반복염기분석부;
    이진 데이터를 섞은 후 출력하는 이진데이터스크램부; 및
    상기 염기서열변환부, 반복염기분석부 및 이진데이터스크램부를 제어하는 제어부;를 포함하되,
    상기 제어부는,
    상기 반복염기분석부에서 동일염기반복서열이 존재한 것으로 판단할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 섞은 후, 섞어진 이진 데이터를 다시 염기 서열로 변환하도록 제어하고,
    상기 반복염기분석부에서 동일염기반복서열이 존재하지 않을 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어하는, 이진 데이터 섞는 장치.
  9. 청구항 8에 있어서,
    상기 반복염기분석부는 미리 정해진 개수의 동일 염기가 반복된 지점을 찾는, 이진 데이터 섞는 장치.
  10. 청구항 9에 있어서,
    상기 반복염기분석 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾는, 이진 데이터 섞는 장치.
  11. 청구항 8에 있어서,
    상기 이진데이터스크램부는 선형 되먹임 시프트 레지스터(Linear Feedback Shift Register, LFSR) 방식을 이용하여 이진 데이터를 섞는, 이진 데이터 섞는 장치.
  12. 청구항 11에 있어서,
    상기 제어부는,
    상기 이진데이터스크램부가 이진 데이터를 섞을 때마다 섞은 횟수를 저장하고,
    미리 설정된 최대 섞음 횟수에 도달할 때, 상기 임시 변환된 염기 서열을 다시 이진 데이터로 역변환하고, 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어하는, 이진 데이터 섞는 장치.
  13. 청구항 11에 있어서,
    상기 제어부는,
    상기 염기서열변환부에서 임시 변환될 때마다 염기 서열을 저장하고,
    상기 반복염기분석부에서 분석된 동일반복된 염기의 개수를 상기 임시 변환된 염기 서열에 더 저장하고,
    역변환된 이진 데이터가 최초 이진 데이터와 동일하지 않을 때, 역변환된 이진 데이터를 섞도록 제어하고,
    역변환된 이진 데이터가 최초 이진 데이터와 동일할 때, 동일반복된 염기의 개수가 가장 적은 임시 변환된 염기 서열을 역변환된 이진 데이터를 염기 서열 변환 대상 이진 데이터로 저장하도록 제어하는, 이진 데이터 섞는 장치.
  14. 청구항 8 내지 청구항 13 중 어느 한 청구항에 따른 이진 데이터 섞는 장치; 및
    상기 이진 데이터 섞는 장치에 출력된 이진 데이터에 따라 염기 서열로 변환 후 DNA를 합성하는 DNA 합성 장치;를 포함하는 DNA 저장 시스템.
KR1020220129385A 2022-10-06 2022-10-11 염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법 KR20240049911A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220129385A KR20240049911A (ko) 2022-10-11 2022-10-11 염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법
PCT/KR2023/014125 WO2024076044A1 (ko) 2022-10-06 2023-09-19 Dna 인코딩 및 디코딩 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220129385A KR20240049911A (ko) 2022-10-11 2022-10-11 염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법

Publications (1)

Publication Number Publication Date
KR20240049911A true KR20240049911A (ko) 2024-04-18

Family

ID=90844432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220129385A KR20240049911A (ko) 2022-10-06 2022-10-11 염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법

Country Status (1)

Country Link
KR (1) KR20240049911A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150016572A (ko) 2012-06-01 2015-02-12 유럽피안 몰레큘러 바이올로지 래보러토리 Dna 디지털 정보의 고-용량 저장

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150016572A (ko) 2012-06-01 2015-02-12 유럽피안 몰레큘러 바이올로지 래보러토리 Dna 디지털 정보의 고-용량 저장

Similar Documents

Publication Publication Date Title
EP1506621B1 (en) Decoding of chain reaction codes through inactivation of recovered symbols
JP5764235B2 (ja) メモリ・アクセス方法およびシステム
KR101438072B1 (ko) 소거 없는 플래시 메모리의 다중 프로그래밍
JP5723967B2 (ja) ソリッド・ステート・ストレージ・デバイスのsレベル・ストレージに入力データを記録するための方法、エンコーダ装置、およびソリッド・ステート・ストレージ・デバイス
KR101386489B1 (ko) 메모리 장치 및 멀티 비트 프로그래밍 방법
JP2013524609A5 (ko)
US8423867B2 (en) Advanced data encoding with reduced erasure count for solid state drives
JP2014078945A (ja) 縮退故障を有するメモリセルに対応するためのデータ符号化及び復号化
KR102426047B1 (ko) 폴라 부호 복호화 장치 및 방법
US9998149B2 (en) Constant hamming weight coding
US9639421B2 (en) Operating method of flash memory system
US8429508B2 (en) Data storage apparatus with encoder and decoder
KR20160004338A (ko) 조기 디코딩 종료 검출을 갖는 디코더
CN112951313A (zh) 用于纠错的存储控制器、包括其的存储设备及其操作方法
KR20240049911A (ko) 염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법
CN1048607C (zh) 数字信息中纠错和纠正删除的方法及适于实现此方法的装置
KR101320684B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
KR101650123B1 (ko) 페이지-기반 반복 복호 구조를 갖는 메모리 시스템 및 그것의 페이지-기반 반복 복호 방법
KR101543081B1 (ko) 고착 고장을 갖는 메모리 셀을 수용하기 위한 리던던트 비트의 인코딩 및 디코딩
KR20240056939A (ko) 섞인 이진 데이터를 원래 이진 데이터로 복원하는 방법
KR20240048218A (ko) 불량 가능성이 낮은 dna 인코딩 방법 및 장치
US8600766B2 (en) Method and apparatus for encoding and decoding data with altered bit sequence
US10951238B1 (en) Memory system and method for controlling non-volatile memory
KR20240058289A (ko) 구조적 안정성을 향상시키기 위한 dna 인코딩 방법 및 장치
JP5336501B2 (ja) ビット列間のエラー制御コードをエンコードする方法およびエンコードシステム