KR20240048218A - 불량 가능성이 낮은 dna 인코딩 방법 및 장치 - Google Patents
불량 가능성이 낮은 dna 인코딩 방법 및 장치 Download PDFInfo
- Publication number
- KR20240048218A KR20240048218A KR1020220127750A KR20220127750A KR20240048218A KR 20240048218 A KR20240048218 A KR 20240048218A KR 1020220127750 A KR1020220127750 A KR 1020220127750A KR 20220127750 A KR20220127750 A KR 20220127750A KR 20240048218 A KR20240048218 A KR 20240048218A
- Authority
- KR
- South Korea
- Prior art keywords
- base
- processor
- dna encoding
- repeated
- bases
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000006243 chemical reaction Methods 0.000 claims abstract description 22
- 239000002773 nucleotide Substances 0.000 claims description 6
- 125000003729 nucleotide group Chemical group 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000006820 DNA synthesis Effects 0.000 claims description 4
- 230000002194 synthesizing effect Effects 0.000 abstract description 4
- 108020004414 DNA Proteins 0.000 description 51
- UYTPUPDQBNUYGX-UHFFFAOYSA-N guanine Chemical compound O=C1NC(N)=NC2=C1N=CN2 UYTPUPDQBNUYGX-UHFFFAOYSA-N 0.000 description 10
- OPTASPLRGRRNAP-UHFFFAOYSA-N cytosine Chemical compound NC=1C=CNC(=O)N=1 OPTASPLRGRRNAP-UHFFFAOYSA-N 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- RWQNBRDOKXIBIV-UHFFFAOYSA-N thymine Chemical compound CC1=CNC(=O)NC1=O RWQNBRDOKXIBIV-UHFFFAOYSA-N 0.000 description 6
- 102000053602 DNA Human genes 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 229930024421 Adenine Natural products 0.000 description 3
- GFFGJBXGBJISGV-UHFFFAOYSA-N Adenine Chemical compound NC1=NC=NC2=C1N=CN2 GFFGJBXGBJISGV-UHFFFAOYSA-N 0.000 description 3
- 229960000643 adenine Drugs 0.000 description 3
- 229940104302 cytosine Drugs 0.000 description 3
- 230000035939 shock Effects 0.000 description 3
- 229940113082 thymine Drugs 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 240000005589 Calophyllum inophyllum Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 239000012620 biological material Substances 0.000 description 1
- 229920001222 biopolymer Polymers 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- IWVCMVBTMGNXQD-PXOLEDIWSA-N oxytetracycline Chemical compound C1=CC=C2[C@](O)(C)[C@H]3[C@H](O)[C@H]4[C@H](N(C)C)C(O)=C(C(N)=O)C(=O)[C@@]4(O)C(O)=C3C(=O)C2=C1O IWVCMVBTMGNXQD-PXOLEDIWSA-N 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/123—DNA computing
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B30/00—ICT specially adapted for sequence analysis involving nucleotides or amino acids
- G16B30/10—Sequence alignment; Homology search
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Biotechnology (AREA)
- Medical Informatics (AREA)
- Genetics & Genomics (AREA)
- Bioethics (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
본 명세서는 DNA 합성 및 복원할 때 오류 가능성을 낮춘 DNA 인코딩 방법 및 장치를 개시한다. 본 명세서에 따른 DNA 인코딩 방법은, (a) 프로세서가 2진 데이터를 염기 서열로 1차 변환하는 단계; (b) 프로세서가 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 단계; 및 (c) 프로세서가 상기 동일 염기가 반복된 지점에 더미 염기를 추가한 염기 서열로 2차 변환하는 단계;를 포함할 수 있다.
Description
본 발명은 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을 참조하면, 저장하고자 하는 2진 데이터를 뉴클레오티드 A(adenine), T(thymine), G(guanine), C(cytosine)로 인코딩(Encoding)한다. 인코딩된 염기 서열에 따라 DNA를 합성(Synthesis)하고, 합성된 DNA 분자를 저장(Storage)한다. 이후, 저장된 DNA 분자를 검색(Retrieval)을 통해 선택하고, 선택된 DNA 분자의 염기 서열을 분석(Sequencing))하고, 분석된 염기 순서에 따라 2진 데이터로 디코딩(Decoding)한다.
본 명세서는 DNA 합성 및 복원할 때 오류 가능성을 낮춘 DNA 인코딩 방법 및 장치를 제공하는 것을 목적으로 한다.
본 명세서는 상기 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 명세서에 따른 DNA 인코딩 방법은, (a) 프로세서가 2진 데이터를 염기 서열로 1차 변환하는 단계; (b) 프로세서가 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 단계; 및 (c) 프로세서가 상기 동일 염기가 반복된 지점에 더미 염기를 추가한 염기 서열로 2차 변환하는 단계;를 포함할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계는, 프로세서가 미리 정해진 개수의 동일 염기가 반복된 지점을 찾는 단계일 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계는, 프로세서가 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾는 단계일 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (b) 단계는, (b-1) 프로세서가 1차 변환된 염기 서열 내 반복된 염기에 대한 빈도수 테이블을 생성하는 단계; (b-2) 프로세서가 상기 생성된 빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정하는 단계; 및 (b-3) 프로세서가 상기 (b-2) 단계에서 결정된 개수에 따라 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 단계;를 포함할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (b-2) 단계는, 프로세서가 빈도수의 평균값을 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정하는 단계일 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (b-2) 단계는, 프로세서가 각 염기마다 빈도수의 평균값을 각 염기마다 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정하는 단계일 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (c) 단계는, 프로세서가 미리 정해진 적어도 하나 이상의 서열을 가진 더미 염기를 추가하여 2차 변환하는 단계일 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (c) 단계는, 프로세서가 상기 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기를 더미 염기로 추가하여 2차 변환하는 단계일 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (c) 단계는, 프로세서가 2이상의 서열을 가진 더미 염기를 추가하여 2차 변환하는 단계일 수 있다.
본 명세서에 따른 DNA 인코딩 방법은, 컴퓨터에서 DNA 인코딩 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다.
상술한 과제를 해결하기 위한 본 명세서에 따른 DNA 인코딩 장치는, 2진 데이터를 염기 서열로 1차 변환하고, 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾고, 상기 동일 염기가 반복된 지점에 더미 염기를 추가한 염기 서열로 2차 변환하는 프로세서;를 포함할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 미리 정해진 개수의 동일 염기가 반복된 지점을 찾을 수 있다.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾을 수 있다.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 1차 변환된 염기 서열 내 반복된 염기에 대한 빈도수 테이블을 생성하고, 상기 생성된 빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정하고, 상기 결정된 개수에 따라 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾을 수 있다.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 빈도수의 평균값을 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 각 염기마다 빈도수의 평균값을 각 염기마다 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 미리 정해진 적어도 하나 이상의 서열을 가진 더미 염기를 추가하여 2차 변환할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 상기 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기를 더미 염기로 추가하여 2차 변환할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 프로세서는, 2이상의 서열을 가진 더미 염기를 추가하여 2차 변환할 수 있다.
본 명세서에 따른 DNA 인코딩 장치는 DNA 인코딩 장치; 및 상기 DNA 인코딩 장치에서 출력된 염기 서열에 따라 DNA를 합성하는 DNA 합성 장치;를 포함하는 DNA 저장 시스템의 일 구성요소가 될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 명세서에 따르면, DNA 합성 및 복원할 때 오류 가능성을 낮출 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 DNA 염기 서열을 이용한 정보 저장의 개념도이다.
도 2는 본 명세서에 따른 DNA 정보 저장 시스템에 대한 참고도이다.
도 3은 본 명세서에 따른 DNA 인코딩 방법의 순서도이다.
도 4는 본 명세서에 따른 DNA 인코딩 방법의 예시도이다.
도 5는 동일 염기가 반복된 지점과 그 다음 인접한 염기에 따라 추가될 수 있는 더미 염기에 대한 예시이다.
도 2는 본 명세서에 따른 DNA 정보 저장 시스템에 대한 참고도이다.
도 3은 본 명세서에 따른 DNA 인코딩 방법의 순서도이다.
도 4는 본 명세서에 따른 DNA 인코딩 방법의 예시도이다.
도 5는 동일 염기가 반복된 지점과 그 다음 인접한 염기에 따라 추가될 수 있는 더미 염기에 대한 예시이다.
본 명세서에 개시된 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 명세서가 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 명세서의 개시가 완전하도록 하고, 본 명세서가 속하는 기술 분야의 통상의 기술자(이하 '당업자')에게 본 명세서의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 명세서의 권리 범위는 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 명세서의 권리 범위를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(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 인코딩 방법은 도 1에 도시된 순서 중 2진 데이터를 염기 서열로 변환하는 과정을 의미한다. 인코딩된 염기 서열에 따라 나중에 실제 DNA 분자로 합성될 수 있다. 따라서, DNA 인코딩은 어떠한 순서로 염기들을 배치할 것인가에 대한 결정하는 단계이다. 본 명세서에서 염기 순서는 5'에서 3'으로 읽는 방향을 정방향을 정한다. 또한, 염기 서열이 반복되는 것은 동일한 염기가 반복(연속)적으로 배치되는 것을 의미한다. 따라서, 동일 염기 서열이 반복된 지점이란, 동일 염기 서열이 정방향으로 소정의 개수만큼 반복 배치된 지점을 의미한다.
한편, 본 명세서에 따른 DNA 인코딩 방법은 컴퓨터에서 이하 설명될 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다. 본 명세서에 따른 DNA 인코딩 방법이 컴퓨터프로그램의 형태로 구현될 때, 각 단계는 프로세서에 의해 실행될 수 있다.
도 3는 본 명세서에 따른 DNA 인코딩 방법의 순서도이다.
도 4은 본 명세서에 따른 DNA 인코딩 방법의 예시도이다.
도 3를 참조하면, 먼저 단계 S100에서 프로세서는 2진 데이터를 염기 서열로 1차 변환할 수 있다. 다음 단계 S200에서 프로세서는 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾을 수 있다. 다음 단계 S300에서 프로세서는 상기 동일 염기가 반복된 지점에 더미(Dummy) 염기를 추가한 염기 서열로 2차 변환할 수 있다.
우선 단계 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진 데이터와 염기 서열을 매칭시키는 방법은 다양할 수 있다.
단계 S200에서 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 과정을 자세히 살펴보겠다. 앞서 설명하였듯이, 특정 염기가 반복(연속) 배치될 경우 합성 과정에서 불량이 발생할 가능성이 높다. 즉, 단계 S200은 합성 과정에서 불량이 발생할 가능성이 높은 지점을 찾는 과정이다.
본 명세서의 일 실시예에 따르면, 프로세서는 미리 정해진 개수의 동일 염기가 반복된 지점을 찾을 수 있다. 미리 정해진 개수는, 예를 들어, 4개~70개 등 다양하게 설정될 수 있다. 한편, 4개의 염기에 모두 동일한 기준을 적용할 수도 있지만, 각 염기마다 다른 기준을 적용할 수 있다. 따라서, 프로세서는 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾을 수도 있다. 예를 들어, A는 5개, T는 6개, G는 7개, C는 5개 등 이런 식으로 염기와 염기가 서로 다른 개수를 가질 수 있고, 일부 염기는 같은 개수를 가질 수도 있다.
본 명세서의 다른 실시예에 따르면, 1차 변환된 염기 서열 내 반복 횟수에 따라 기준을 결정할 수 있다. 이를 위해, 프로세서는 1차 변환된 염기 서열 내 반복된 염기에 대한 빈도수 테이블(도 4 빈도수 테이블 예시 참조)을 생성할 수 있다. 그리고, 프로세서는 상기 생성된 빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정할 수 있다. 그리고 프로세서는 결정된 동일 염기의 반복 개수에 따라 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾을 수 있다. 참고로, 상기 빈도수 테이블(Frequency Count Table)은 본 명세서에 따른 DNA 정보 저장 시스템 내 제어부(Controller)에서 바이너리 정보를 염기서열 정보로 변환하는 장치(DNA Library)에 추가될 수 있다.
빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정하는 방법은 다양할 수 있다. 일 예로, 프로세서는 빈도수의 평균값을 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정할 수 있다. 도 4에 도시된 예시에서, 빈수도의 평균값은 1.125이다. 올림 연산을 통해 동일 염기가 2개 반복될 때마다 더미 염기가 추가되어야 할 자리로 결정할 수 있다. 또한, 프로세서는 각 염기마다 빈도수의 평균값을 각 염기마다 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정할 수도 있다. 도 4에 도시된 예시에서 A의 평균은 0.5, G의 평균은 2, C의 평균은 1.25, T의 평균은 0.75이다. 이때, 반복의 의미가 있는 2 미만 값을 제외시켜서, A, C, T가 반복될 경우에는 더미 염기를 추가하지 않고, G가 2이상 반복될 때에만 더미 염기를 추가하는 것으로 결정할 수 있다.
단계 S210에서 프로세서는 동일염기의 반복 개수가 앞서 설명된 다양한 실시예에 따라 설정된 기준을 초과하는지 판단할 수 있다. 만약 동일염기의 반복 개수가 기준을 초과하지 않는다면(단계 S210의 'NO'), 더미 염기의 추가가 필요없다. 반면, 동일염기의 반복 개수가 기준을 초과한다면(단계 S210의 'YES'), 해당 지점은 더미 염기의 추가가 필요한 지점이므로 프로세스는 단계 S300으로 이행할 수 있다.
단계 S300에서 동일 염기가 반복된 지점에 더미(Dummy) 염기를 추가한 염기 서열로 2차 변환하는 과정을 자세히 살펴보겠다. 본 명세서의 일 실시예에 따르면, 프로세서는 미리 정해진 적어도 하나 이상의 서열을 가진 더미 염기를 추가하여 2차 변환할 수 있다. 도 4에 도시된 예시에서는 4개 G가 반복될 때, A를 더미 염기 서열로 추가한 예시가 도시되어 있다. 그러나 본 명세서에 따른 DNA 인코딩 방법이 도 4에 도시된 예시에 제한되는 것이 아니다. 도 4에 도시된 예시에서는 더미 염기가 'A' 하나인 예시가 도시되었지만, 더미 염기는 'G', 'T', 'C'일 수 있으며, 더미 염기의 개수가 하나가 아닌 'AA', 'GG', 'TT', 'CC', 'AG', 'GT', 'TC', 'CA'와 같이 2개 이상일 수도 있으며, 그 조합 역시 다양할 수 있다.
한편, 더미 염기가 추가되는 이유는 앞서 설명하였듯이, 동일한 염기가 반복적으로 배치되는 것을 방지하기 위함이다. 바람직하게, 프로세서는 상기 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기를 더미 염기로 추가하여 2차 변환할 수 있다. 도 5는 동일 염기가 반복된 지점과 그 다음 인접한 염기에 따라 추가될 수 있는 더미 염기에 대한 예시이다. 도 5에 도시된 예시에서는 도면의 간소함과 설명의 편의를 위해 더미 염기가 하나인 실시예를 도시하였다. 그러나 앞서 설명하였듯이, 프로세서는 2이상의 서열을 가진 더미 염기를 추가하여 2차 변환할 수 있다. 이 경우에도 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기로 조합된 2이상의 염기 서열을 가진 더미 염기가 추가되는 것 역시 가능하다.
한편, 상기 프로세서는 상술한 산출 및 다양한 제어 로직을 실행하기 위해 본 발명이 속한 기술분야에 알려진 마이크로프로세서, ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로, 레지스터, 통신 모뎀, 데이터 처리 장치 등을 포함할 수 있다. 또한, 상술한 제어 로직이 소프트웨어로 구현될 때, 상기 프로세서는 프로그램 모듈의 집합으로 구현될 수 있다. 이 때, 프로그램 모듈은 메모리 장치에 저장되고, 프로세서에 의해 실행될 수 있다.
상기 전술한 컴퓨터프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C/C++, C#, JAVA, Python, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 명세서의 실시예를 설명하였지만, 본 명세서가 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
Claims (20)
- (a) 프로세서가 2진 데이터를 염기 서열로 1차 변환하는 단계;
(b) 프로세서가 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 단계; 및
(c) 프로세서가 상기 동일 염기가 반복된 지점에 더미 염기를 추가한 염기 서열로 2차 변환하는 단계;를 포함하는 DNA 인코딩 방법. - 청구항 1에 있어서,
상기 (b) 단계는,
프로세서가 미리 정해진 개수의 동일 염기가 반복된 지점을 찾는 단계인, DNA 인코딩 방법. - 청구항 2에 있어서,
상기 (b) 단계는,
프로세서가 각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾는 단계인, DNA 인코딩 방법. - 청구항 1에 있어서,
상기 (b) 단계는,
(b-1) 프로세서가 1차 변환된 염기 서열 내 반복된 염기에 대한 빈도수 테이블을 생성하는 단계;
(b-2) 프로세서가 상기 생성된 빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정하는 단계; 및
(b-3) 프로세서가 상기 (b-2) 단계에서 결정된 개수에 따라 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 단계;를 포함하는 DNA 인코딩 방법. - 청구항 4에 있어서,
상기 (b-2) 단계는,
프로세서가 빈도수의 평균값을 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정하는 단계인, DNA 인코딩 방법. - 청구항 5에 있어서,
상기 (b-2) 단계는,
프로세서가 각 염기마다 빈도수의 평균값을 각 염기마다 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정하는 단계인, DNA 인코딩 방법. - 청구항 1에 있어서,
상기 (c) 단계는,
프로세서가 미리 정해진 적어도 하나 이상의 서열을 가진 더미 염기를 추가하여 2차 변환하는 단계인, DNA 인코딩 방법. - 청구항 1에 있어서,
상기 (c) 단계는,
프로세서가 상기 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기를 더미 염기로 추가하여 2차 변환하는 단계인, DNA 인코딩 방법. - 청구항 8에 있어서,
상기 (c) 단계는,
프로세서가 2이상의 서열을 가진 더미 염기를 추가하여 2차 변환하는 단계인, DNA 인코딩 방법. - 컴퓨터에서 청구항 1 내지 청구항 9 중 어느 한 청구항에 따른 DNA 인코딩 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램.
- 2진 데이터를 염기 서열로 1차 변환하고, 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾고, 상기 동일 염기가 반복된 지점에 더미 염기를 추가한 염기 서열로 2차 변환하는 프로세서;를 포함하는 DNA 인코딩 장치.
- 청구항 11에 있어서,
상기 프로세서는,
미리 정해진 개수의 동일 염기가 반복된 지점을 찾는 것을 특징으로 하는 DNA 인코딩 장치. - 청구항 12에 있어서,
상기 프로세서는,
각 염기마다 설정된 개수에 따라 동일 염기가 반복된 지점을 찾는 것을 특징으로 하는 DNA 인코딩 장치. - 청구항 11에 있어서,
상기 프로세서는,
1차 변환된 염기 서열 내 반복된 염기에 대한 빈도수 테이블을 생성하고, 상기 생성된 빈도수 테이블을 이용하여 더미 염기 추가가 필요한 동일 염기의 반복 개수를 결정하고, 상기 결정된 개수에 따라 1차 변환된 염기 서열 내 동일 염기가 반복된 지점을 찾는 것을 특징으로 하는 DNA 인코딩 장치. - 청구항 14에 있어서,
상기 프로세서는,
빈도수의 평균값을 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정하는 것을 특징으로 하는 DNA 인코딩 장치. - 청구항 15에 있어서,
상기 프로세서는,
각 염기마다 빈도수의 평균값을 각 염기마다 더미 염기 추가가 필요한 동일 염기의 반복 개수로 결정하는 것을 특징으로 하는 DNA 인코딩 장치. - 청구항 11에 있어서,
상기 프로세서는,
미리 정해진 적어도 하나 이상의 서열을 가진 더미 염기를 추가하여 2차 변환하는 것을 특징으로 하는 DNA 인코딩 장치. - 청구항 11에 있어서,
상기 프로세서는,
상기 동일 염기가 반복된 지점의 양쪽 인접한 염기와 다른 염기를 더미 염기로 추가하여 2차 변환하는 것을 특징으로 하는 DNA 인코딩 장치. - 청구항 18에 있어서,
상기 프로세서는,
2이상의 서열을 가진 더미 염기를 추가하여 2차 변환하는 것을 특징으로 하는 DNA 인코딩 장치. - 청구항 11 내지 청구항 19 중 어느 한 청구항에 따른 DNA 인코딩 장치; 및
상기 DNA 인코딩 장치에서 출력된 염기 서열에 따라 DNA를 합성하는 DNA 합성 장치;를 포함하는 DNA 저장 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220127750A KR20240048218A (ko) | 2022-10-06 | 2022-10-06 | 불량 가능성이 낮은 dna 인코딩 방법 및 장치 |
PCT/KR2023/014125 WO2024076044A1 (ko) | 2022-10-06 | 2023-09-19 | Dna 인코딩 및 디코딩 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220127750A KR20240048218A (ko) | 2022-10-06 | 2022-10-06 | 불량 가능성이 낮은 dna 인코딩 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240048218A true KR20240048218A (ko) | 2024-04-15 |
Family
ID=90715855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220127750A KR20240048218A (ko) | 2022-10-06 | 2022-10-06 | 불량 가능성이 낮은 dna 인코딩 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240048218A (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150016572A (ko) | 2012-06-01 | 2015-02-12 | 유럽피안 몰레큘러 바이올로지 래보러토리 | Dna 디지털 정보의 고-용량 저장 |
-
2022
- 2022-10-06 KR KR1020220127750A patent/KR20240048218A/ko unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150016572A (ko) | 2012-06-01 | 2015-02-12 | 유럽피안 몰레큘러 바이올로지 래보러토리 | Dna 디지털 정보의 고-용량 저장 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8769374B2 (en) | Multi-write endurance and error control coding of non-volatile memories | |
JP5764235B2 (ja) | メモリ・アクセス方法およびシステム | |
JP5723967B2 (ja) | ソリッド・ステート・ストレージ・デバイスのsレベル・ストレージに入力データを記録するための方法、エンコーダ装置、およびソリッド・ステート・ストレージ・デバイス | |
JP4224022B2 (ja) | イナクティブ化によって連鎖反応符号を復号化するためのシステムおよび処理 | |
US8935589B2 (en) | Controller and data access method for flash memories | |
KR101386489B1 (ko) | 메모리 장치 및 멀티 비트 프로그래밍 방법 | |
JP2008165805A (ja) | フラッシュメモリ装置のecc制御器及びそれを含むメモリシステム | |
JP2013524609A5 (ko) | ||
US8832525B2 (en) | Memory controller with low density parity check code decoding capability and relevant memory controlling method | |
KR102628009B1 (ko) | 부분 페이지 압축을 위한 메모리 시스템 | |
US10693503B2 (en) | Polar code decoding apparatus and method | |
CN112100982A (zh) | Dna存储方法、系统和存储介质 | |
US8429508B2 (en) | Data storage apparatus with encoder and decoder | |
US20160179616A1 (en) | Operating method of flash memory system | |
KR20240048218A (ko) | 불량 가능성이 낮은 dna 인코딩 방법 및 장치 | |
US10970166B2 (en) | Memory system and method of controlling non-volatile memory | |
KR102414620B1 (ko) | 메모리 장치의 동작 방법 및 메모리 장치를 동작시키는 메모리 컨트롤러 | |
KR20240058289A (ko) | 구조적 안정성을 향상시키기 위한 dna 인코딩 방법 및 장치 | |
CN111243670A (zh) | 一种满足生物约束的dna信息存储编码方法 | |
KR101543081B1 (ko) | 고착 고장을 갖는 메모리 셀을 수용하기 위한 리던던트 비트의 인코딩 및 디코딩 | |
KR20240049911A (ko) | 염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법 | |
US10951238B1 (en) | Memory system and method for controlling non-volatile memory | |
KR20240056939A (ko) | 섞인 이진 데이터를 원래 이진 데이터로 복원하는 방법 | |
US8600766B2 (en) | Method and apparatus for encoding and decoding data with altered bit sequence | |
JP6437428B2 (ja) | 不揮発性半導体メモリのコントローラ |