KR20190113971A - 다중 게놈 디스크립터를 이용한 생명정보학 데이터의 압축 표현 방법 및 장치 - Google Patents

다중 게놈 디스크립터를 이용한 생명정보학 데이터의 압축 표현 방법 및 장치 Download PDF

Info

Publication number
KR20190113971A
KR20190113971A KR1020197026877A KR20197026877A KR20190113971A KR 20190113971 A KR20190113971 A KR 20190113971A KR 1020197026877 A KR1020197026877 A KR 1020197026877A KR 20197026877 A KR20197026877 A KR 20197026877A KR 20190113971 A KR20190113971 A KR 20190113971A
Authority
KR
South Korea
Prior art keywords
class
data
read
genomic
reads
Prior art date
Application number
KR1020197026877A
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
Priority claimed from PCT/US2017/017842 external-priority patent/WO2018071055A1/en
Application filed by 게놈시스 에스에이 filed Critical 게놈시스 에스에이
Publication of KR20190113971A publication Critical patent/KR20190113971A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • 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
    • G16B50/50Compression of genetic data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • 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
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • G16B20/20Allele or variant detection, e.g. single nucleotide polymorphism [SNP] detection
    • 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
    • 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
    • G16B45/00ICT specially adapted for bioinformatics-related data visualisation, e.g. displaying of maps or networks
    • 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
    • G16B50/10Ontologies; Annotations
    • 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
    • G16B50/30Data warehousing; Computing architectures
    • 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
    • G16B99/00Subject matter not provided for in other groups of this subclass
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/88Medical equipments

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Public Health (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Epidemiology (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Pure & Applied Mathematics (AREA)
  • Signal Processing (AREA)
  • Mathematical Optimization (AREA)
  • Genetics & Genomics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Human Computer Interaction (AREA)

Abstract

게놈 시퀀싱 기기에 의해 생성된 게놈 서열 데이터의 압축 방법 및 장치. 서열 리드는 이미 존재하거나 또는 제작된 참조 서열에 대해서 이들을 정렬함으로써 코딩되는데, 코딩 프로세스는 리드를 데이터 클래스로 분류한 후에, 각 클래스를 복수의 디스크립터 블록의 관점에서 코딩하는 것으로 구성된다. 특정한 소스 모델(source model)과 엔트로피 코더(entropy coder)는 데이터가 분할된 각각의 데이터 클래스 및 각각의 연관된 디스크립터 블록에 이용된다.

Description

다중 게놈 디스크립터를 이용한 생명정보학 데이터의 압축 표현 방법 및 장치
관련출원의 상호 참조
본 출원은 2017년 2월 14일자 특허 출원 PCT/US2017/017842와 2017년 7월 11일자 특허 출원 PCT/US2017/041591을 우선권으로 주장한다.
기술분야
본 개시는 공지된 선행 기술 표현방법으로는 이용할 수 없는 새로운 기능을 제공함으로써 사용된 저장 공간(utilized storage space)을 감소시키고, 액세스 성능(access performance)을 개선시키는, 게놈 시퀀싱 데이터의 신규한 표현방법을 제공한다.
게놈 시퀀싱 데이터의 적절한 표현은 시퀀싱 데이터 및 메타 데이터(metadata)를 처리함으로써, 다양한 목적으로 수행된 게놈 변이체 호출(genome variants calling) 및 모든 다른 분석을 비롯한 효율적인 게놈 분석 응용프로그램(genomic analysis application)을 가능하게 하는 것에 핵심적이다.
인간 게놈 시퀀싱은 고-처리량 저비용 시퀀싱 기술(high-throughput low cost sequencing technology)의 출현으로 인해, 그 비용을 감당할 수 있게 되었다. 이러한 기회는 암의 진단 및 치료로부터 유전병의 식별, 항체의 식별을 위한 병원체 감시(pathogen surveillance)로부터 새로운 백신, 약물 및 개인화된 치료의 커스텀화(customization)의 고안에 이르는, 몇몇 분야들에서 새로운 지평을 열었다.
병원, 게놈 데이터 분석 공급업체, 생명정보학자(bioinformaticians) 및 방대한 생물학적 데이터 저장 센터들은 게놈 의학(genomic medicine)을 전 세계적인 규모로 조정을 가능하게 할, 비용이 감당 가능하고, 빠르며, 신뢰할 수 있고, 상호 연결된(interconnected) 게놈 정보 처리 해결방안을 찾고 있다. 시퀀싱 처리의 장애물 중 하나가 데이터 저장 장치(data storage)가 되고 있기 때문에, 게놈 시퀀싱 데이터를 압축된 형태로 표현하는 방법이 점점 더 연구되고 있다.
시퀀싱 데이터의 가장 많이 이용되고 있는 게놈 정보 표현은 FASTQ 및 SAM 형식의 압축(zipping)에 기초한다. 통상적으로 이용되는 파일 형식 (비-정렬된 데이터에 대한 FASTQ 및 정렬된 데이터에 대한 SAM)을 압축하는 것이 목적이다. 이러한 파일들은 보통 텍스트 문자(plain text character)로 구성되어 있으며, 상기 언급한 대로, LZ (첫번째 버전을 공개한 저자들인, Lempel 및 Ziv로부터 유래됨) 체계 (주지된 zip, gzip 등)와 같은 범용(general purpose)의 접근법을 이용하여 압축된다. gzip과 같은 범용 압축기(general purpose compressor)를 이용하는 경우에, 압축의 결과는 대개 이진 데이터 (binary data)의 단일 블랍 (single blob) 이다. 특히, 고-처리량 시퀀싱의 경우와 같이, 데이터의 볼륨(volume)이 극도로 방대할 때, 이러한 모놀리식 형식(monolithic form)의 정보는 아카이브(archive), 전송 및 정교화(elaborate)를 상당히 어렵게 한다. BAM 형식은 좋지 않은 압축 성능을 특징으로하는데, 이는 SAM 파일이 전달하는 게놈 정보 자체를 추출하기보다는, 비효율적이고 불필요한 SAM 형식의 압축에 초점을 맞추고 있고, 각각의 데이터 소스 (게놈 데이터 자체)의 특정한 성질을 활용하기보다는, gzip과 같은 범용 텍스트 압축 알고리즘의 채택으로 인한 것이다.
BAM 보다 덜 이용되고 있으나, 보다 효율적인 게놈 데이터 압축에 대한 더욱 정교한 접근법은 CRAM이다. CRAM은 참조(reference)에 대한 차등 인코딩(differential encoding)의 채택을 위한 더욱 효율적인 압축을 제공하나[이는 데이터 소스 중복(data source redundancy)을 부분적으로 활용함], 증분 업데이트 (incremental update), 압축된 데이터의 특정한 클래스에 대한 선택적 액세스(selective access) 및 스트리밍 지원과 같은 특징들이 여전히 결여되어 있다.
이러한 접근법들은 압축되면 좋지 못한 압축률 (compression ratio)과 탐색(navigate) 및 조작(manipulate)하기 어려운 데이터 구조를 생성한다. 방대하고 리지드(rigid)한 데이터 구조를 다뤄야 하는 필요성으로 인해, 다운스트림 분석(Downstream analysis)은 단순한 운용(simple operation)을 수행하거나, 또는 게놈 데이터 세트의 선택된 영역에 액세스할 때조차도 매우 느릴 수 있다. CRAM은 CRAM 레코드(record)의 개념(concept)에 의존한다. 각 CRAM 레코드는 이의 복원(reconstruction)에 필요한 모든 요소(element)를 코딩함으로써, 단일 매핑되거나 또는 매핑되지 않은 리드(read)를 표현한다.
CRAM은 본 문서에 기술된 본 발명에 의해 해결 및 극복되는, 다음의 문제점과 한계점을 제시한다:
1. CRAM은 데이터 인덱싱 (data indexing)과 특정한 특징을 공유하는 데이터 부분 집합(data subset)에 랜덤 액세스하는 것을 지원하지 않는다. 데이터 인덱싱은 설명서의 범위에 포함되지 않고 (CRAM 설명서 v 3.0의 섹션 12를 참고), 별도의 파일로서 시행된다. 역으로, 본 문서에 기술된 본 발명의 접근법은 인코딩 프로세스(encoding process)와 통합된 데이터 인덱싱법 및 인코딩된(즉, 압축된) 비트 스트림(bit stream)에 내장된(embedding) 인덱스를 이용한다.
2. CRAM은 임의의 유형의 매핑된 리드 [완전히 매칭된 리드, 치환만 있는 리드, 삽입 또는 결실이 있는 리드(또한, "인델(indel)"로도 지칭됨)]를 포함할 수 있는 코어 데이터 블록(core data block)에 의해 빌딩된다. 참조 서열에 대한 매핑의 결과에 따라서, 데이터 분류 및 리드를 클래스로 그룹화하는(grouping) 개념이 존재하지 않는다. 이는, 특정한 특징을 갖는 리드만 탐색된 경우에서도, 모든 데이터가 검사되어야 할 필요가 있다는 것을 의미한다. 이러한 한계점은 본 발명에 의해, 코딩 전에 데이터를 클래스로 분류 및 분할(partitioning)함으로써 해결된다.
3. CRAM은 각 리드를 "CRAM 레코드"로 캡슐화(encapsulating)하는 개념에 기초한다. 이는, 리드가 특정한 생물학적 특징(예, 치환은 있으나, "인델"은 없는 리드, 또는 완전히 매핑된 리드)이 탐색되는 것을 특징으로 하는 경우에, 각각의 완전한 "레코드"를 검사해야 할 필요가 있음을 의미한다.
역으로, 본 발명에서는, 분리된 정보 블록(information block)에 별도로 코딩된 데이터 클래스의 개념이 존재하고, 각 리드를 캡슐화하는 레코드의 개념은 존재하지 않는다. 이는, 각 리드(들)(의 블록)를 디코딩해서 이의 특징을 검사할 필요 없이, 특정한 생물학적 특징(예, 치환은 있으나, "인델"은 없는 리드, 또는 완전히 매핑된 리드)을 갖는 리드의 세트에 대한 더욱 효율적인 액세스를 가능하게 한다.
4. CRAM 레코드에서, 각 CRAM 레코드는 임의의 상이한 유형의 데이터를 포함할 수 있기 때문에, 컨텍스트(context)의 개념이 존재하지 않음에 따라, 각 레코드 필드(record field)는 특정한 플래그(flag)와 연관되어 있고, 각 플래그는 항상 동일한 의미를 가져야 한다. 이 코딩 메커니즘은 불필요한 정보를 도입하고, 엔트로피 코딩(entropy coding)에 기초한 효율적인 컨텍스트의 사용(usage)을 막는다.
대신, 본 발명에서는, 데이터를 나타내는 플래그의 개념이 존재하지 않는데, 이는 데이터가 속하는 정보 "블록"에 의해 이것이 본질적으로 정의되기 때문이다. 이는 더욱 효율적인 압축을 야기하는, 사용될 기호의 크게 감소된 수와 정보 소스 엔트로피(information source entropy)의 결과적인 감소를 시사한다. 상이한 "블록들"의 이용이 인코더(encoder)가 컨텍스트에 따라서 상이한 의미를 갖는 각 블록에 걸쳐 동일한 기호를 재사용할 수 있도록 하므로, 이러한 개선이 가능하다. CRAM에서는, 컨텍스트의 개념이 존재하지 않고, 각 CRAM 레코드가 임의의 유형의 데이터를 포함할 수 있음에 따라, 각 플래그는 항상 동일한 의미를 가져야 한다.
5. CRAM 치환에서, 삽입 및 결실은 정보 소스 알파벳의 크기를 증가시키고, 더 높은 소스 엔트로피(source entropy)를 수득하는 옵션인, 상이한 디스크립터를 이용함으로써 표현된다. 역으로, 개시된 본 발명의 접근법은 단일 알파벳 및 치환, 삽입 및 결실에 대한 인코딩을 이용한다. 이는 인코딩 및 디코딩 프로세스를 더 간소화하고, 코딩이 높은 압축 성능을 특징으로 하는 비트 스트림(bitstream)을 수득하는 더 낮은 엔트로피 소스 모델을 생성한다.
본 발명은 코딩될 불필요한 정보가 최소화되고, 선택적 액세스 및 증분 업데이트 지원과 같은 특징들이 압축된 도메인에서 바로 가능하도록, 시퀀싱 데이터를 분류 및 분할함으로써, 게놈 서열을 압축하는 것을 목표로 한다.
제시된 접근법의 측면들 중 하나는 상이한 블록에 구조화되고 별도로 인코딩되는, 메타 데이터 및 데이터의 클래스의 정의이다. 기존의 방법에 대한 이러한 접근법의 더욱 관련 있는 개선점은 다음에 있다:
1. 메타 데이터 또는 데이터의 각 클래스에 대한 효율적인 소스 모델을 제공함으로써 구성된, 정보 소스 엔트로피의 감소로 인한, 압축 성능의 증가.
2. 임의의 추가의 프로세싱을 목적으로, 압축된 데이터 및 메타 데이터의 일부에 대한 선택적 액세스를 직접 압축된 도메인에서 수행하는 것이 가능함.
3. 시퀀싱 리드의 특정한 세트와 연관된, 새로운 시퀀싱 데이터 및/또는 메타 데이터 및/또는 새로운 분석 결과를 갖는, 압축된 데이터 및 메타 데이터를 증분적으로(즉, 디코딩과 재-인코딩할 필요가 없음) 업데이트하는 것이 가능함.
아래 청구 범위의 구성은 하기를 제공함으로써, 기존 선행 기술 해결방안의 문제점을 해결한다.
게놈 서열 데이터를 인코딩하는 방법으로서, 상기 게놈 서열 데이터는 뉴클레오티드 서열의 리드(read)를 포함하고, 상기 방법은,
상기 리드를 하나 이상의 참조 서열(reference sequence)에 대해 정렬시켜, 정렬된 리드를 생성하는 단계;
상기 정렬된 리드를 상기 하나 이상의 참조 서열과의 지정된 매칭 규칙(matching rule)에 따라 분류시켜, 정렬된 리드의 클래스를 생성하는 단계; 및
상기 분류된 정렬된 리드를 복수의 디스크립터의 블록(block of descriptor)으로서 인코딩하는 단계;를 포함하며,
상기 분류된 정렬된 리드를 복수의 디스크립터의 블록으로서 인코딩하는 단계는 상기 정렬된 리드의 클래스에 따라서 상기 디스크립터를 선택하는 단계, 및 상기 디스크립터의 블록을 헤더 정보와 함께 구조화시켜서 연속적인 액세스 유닛(successive access unit)을 생성하는 단계를 포함한다.
다른 측면에서, 코딩하는 방법은 하기 단계를 더 포함한다:
상기 지정된 매칭 규칙을 충족시키지 않는 상기 리드를 매핑되지 않은 리드(unmapped read)의 클래스로 더 분류하는 단계;
적어도 일부의 매핑되지 않은 리드를 이용하여 참조 서열의 세트를 제작하는 단계;
상기 매핑되지 않은 리드의 클래스를 제작된 참조 서열의 세트에 대해 정렬하는 단계;
상기 분류된 정렬된 리드를 복수의 디스크립터의 블록으로서 인코딩하는 단계;
상기 제작된 참조 서열의 세트를 인코딩하는 단계; 및
상기 디스크립터의 블록 및 상기 인코딩된 참조 서열을 헤더 정보와 함께 구조화하여 연속적인 액세스 유닛을 생성하는 단계.
다른 측면에서, 코딩하는 방법은 참조 서열에서 임의의 미스매치가 존재하지 않는 게놈 리드를 제1 "클래스 P"로서 식별하는 단계를 더 포함한다.
다른 측면에서, 코딩하는 방법은 시퀀싱 기기가 임의의 "염기"를 호출(calling)할 수 없었던 위치에서만 미스매치가 발견되는 경우에, 게놈 리드를 제2 "클래스 N"으로서 식별하는 단계를 더 포함하고, 이 때 각 리드에서 미스매치의 수가 주어진 임계치를 초과하지 않는다.
다른 측면에서, 코딩하는 방법은 시퀀싱 기기가 임의의 "염기"를 호출할 수 없었던 - "n 형" 미스매치라고 명명함 - 위치 및/또는 시퀀싱 기기가 참조 서열과 상이한 "염기"를 호출했던 - "s 형" 미스매치라고 명명함 - 위치에서 미스매치가 발견되는 경우에, 게놈 리드를 제3 "클래스 M"으로 식별하는 단계를 더 포함하고, 이 때 미스매치의 수가 "n 형"의 미스매치 및 "s 형"의 미스매치의 수에 대한 주어진 임계치, 및 "n 형"과 "s 형" 미스매치의 수에 대해서 계산되는 주어진 함수 (f(n,s))로부터 획득된 임계치를 초과하지 않는다.
다른 측면에서, 코딩하는 방법은 게놈 리드가 "클래스 M"의 동일한 유형의 미스매치 및 이에 추가하여 "삽입" ("i 형"), "결실" ("d 형") 및 "소프트 클립" ("c 형") 유형 중 적어도 하나의 미스매치를 가능하게 가질 수 있는 경우에 게놈 리드를 제4 "클래스 I"로서 식별하는 단계를 더 포함하고, 이 때 각 유형에 대한 미스매치의 수가 대응하는 주어진 임계치 및 "n 형", "s 형", "i 형", "d 형" 및 "c 형" 미스매치의 수에 대해서 계산되는 주어진 함수 (w(n,s,i,d,c))에 의해 제공되는 임계치를 초과하지 않는다.
다른 측면에서, 코딩하는 방법은 게놈 리드를 이전에 정의된 클래스 P, N, M, I에서 임의의 분류를 발견하지 못한 모든 리드를 포함하는, 제5 "클래스 U"로서 식별하는 단계를 더 포함한다.
다른 측면에서, 코딩하는 방법은 인코딩될 게놈 서열의 리드가 페어링되는 것을 더 포함한다.
다른 측면에서, 코딩하는 방법은 상기 분류하는 단계가 게놈 리드를, 한 리드는 클래스 P, N, M 또는 I에 속하고, 다른 리드는 "클래스 U"에 속하는 모든 리드 페어를 포함하는, 제6 "클래스 HM"으로서 식별하는 단계를 더 포함하는 것을 더 포함한다.
다른 측면에서, 코딩하는 방법은 하기 단계를 더 포함한다:
두 메이트 리드가 동일한 클래스 (각각의 P, N, M, I, U)로 분류되는지에 대해서 식별한 다음에, 페어를 동일한 식별된 클래스로 할당하는 단계;
두 메이트 리드가 상이한 클래스로 분류되는지에 대해서 식별한 다음에, 두 메이트 리드 중 어느 것도 "클래스 U"에 속하지 않는 경우에, 리드의 페어를 하기 식 1에 따라서 정의되는, 가장 높은 우선권을 갖는 클래스로 할당하는 단계:
식 1
P < N < M < I
상기 식 1에서, "클래스 P"는 가장 낮은 우선권을 가지고, "클래스 I"는 가장 높은 우선권을 가짐; 및
두 메이트 리드 중 하나의 리드만 "클래스 U"에 속하는 것으로 분류됐는지에 대해서 식별하고, 리드의 페어를 "클래스 HM" 서열에 속하는 것으로서 분류하는 단계.
다른 측면에서, 코딩하는 방법은 리드의 클래스 N은 "n 형" 미스매치의 수에 의해, 클래스 N에 대해서 정의된 임계치의 벡터 (292)에 따라서 둘 이상의 서브 클래스 (296)로 더 분할되고; 리드의 클래스 M은 함수 f(n,s)에 의해, 클래스 M에 대해서 정의된 임계치의 벡터 (293)에 따라서 둘 이상의 서브 클래스 (297)로 더 분할되며; 리드의 클래스 I는 함수 w(n,s,i,d,c)에 의해, 클래스 I에 대해서 정의된 임계치의 벡터 (294) 따라서 둘 이상의 서브 클래스 (298)로 더 분할되는 것을 더 포함한다.
다른 측면에서, 코딩하는 방법은 하기 단계를 더 포함한다:
두 메이트 리드가 동일한 서브 클래스로 분류되는지에 대해서 식별한 다음에, 페어를 동일한 서브-클래스로 할당하는 단계;
두 메이트 리드가 상이한 클래스의 서브-클래스로 분류되는지에 대해서 식별한 다음에, 하기 식 2에 따라, 페어를 더 높은 우선권의 클래스에 속하는 서브 클래스로 할당하는 단계:
식 2
N < M < I
상기 식 2에서, N은 가장 낮은 우선권을 가지고, I는 가장 높은 우선권을 가짐; 및
두 메이트 리드가 클래스 N 또는 M 또는 I인, 동일한 클래스로 분류되나, 상이한 서브-클래스로 분류되는지에 대해서 식별한 다음에, 하기 식 3에 따라, 페어를 가장 높은 우선권을 갖는 서브-클래스에 할당하는 단계:
식 3
N 1 < N 2 < ... < N k
M 1 < M 2 < ... < M j
I 1 < I 2 < ... < I h
상기 식 3에서, 가장 높은 인덱스는 가장 높은 우선권을 가짐.
다른 측면에서, 각 리드의 매핑 위치에 대한 정보는 "pos" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 각 리드의 스트랜디드니스 (즉, 리드가 시퀀싱되어 나온, DNA 가닥)에 대한 정보는 rcomp 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 페어드-엔드 리드의 페어링 정보는 "pair" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 리드가 적절한 페어로 매핑되는 경우, 리드가 플랫폼/벤더 품질 확인(platform/vendor quality check)을 통과하지 못하는 경우, 리드가 PCR 복제물 (PCR duplicate) 또는 광학적 복제물 (optical duplicate)인 경우, 또는 리드가 추가 정렬(supplementary alignment)인 경우와 같은, 추가의 정렬 정보는 "flags" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 알려지지 않은 염기(unknown base)에 대한 정보는 "nmis" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 치환 위치에 대한 정보는 "snpp" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 치환 유형에 대한 정보는 특정한 "snpt" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 치환, 삽입 또는 결실 유형의 미스매치 위치에 대한 정보는 "indp" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 치환, 삽입 또는 결실과 같은 미스매치의 유형에 대한 정보는 "indt" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 매핑된 리드의 클리핑된 염기에 대한 정보는 "indc" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 매핑되지 않은 리드에 대한 정보는 "ureads" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 인코딩에 이용된 참조 서열의 유형에 대한 정보는 "rtype" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 매핑된 리드의 다중 정렬에 대한 정보는 "mmap" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 동일한 리드의 다중 정렬 및 스플라이싱된 정렬에 대한 정보는 "msar" 디스크립터 블록 및 "mmap" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 리드 정렬 점수에 대한 정보는 "mscore" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 리드가 속하는 그룹에 대한 정보는 특정 "rgroup" 디스크립터 블록에 의해 인코딩된다.
다른 측면에서, 코딩하는 방법은 다음을 더 포함한다: 상기 디스크립터의 블록이 정렬된 리드의 각 클래스 및 서브-클래스에 대한 하나의 섹션을 포함하는 "마스터 인덱스 테이블(master index table)"을 포함하고, 상기 섹션은 데이터의 각 클래스 또는 서브-클래스의 각 액세스 유닛의 첫번째 리드의 상기 하나 이상의 참조 서열상의 매핑 위치를 포함하며; 상기 "마스터 인덱스 테이블(master index table)" 및 상기 액세스 유닛 데이터를 조인트 코딩(joint coding)한다.
다른 측면에서, 코딩하는 방법은 상기 디스크립터의 블록이 이용된 참조의 유형(이미-존재하거나 또는 제작됨), 및 참조 서열에 대해서 매칭하지 않는 리드의 세그먼트와 관련된 정보를 더 포함하는 것을 더 포함한다.
다른 측면에서, 코딩하는 방법은 상기 참조 서열이 치환, 삽입, 결실 및 클리핑을 적용함으로써, 상이한 참조 서열로 먼저 변환된 다음에, 상기 분류된 정렬된 리드를 복수의 디스크립터의 블록으로서 인코딩하는 단계가 변환된 참조 서열을 참조(referring)하는 것을 더 포함한다.
다른 측면에서, 코딩하는 방법은 동일한 변환이 데이터의 모든 클래스에 대한 참조 서열에 적용되는 것을 더 포함한다.
다른 측면에서, 코딩하는 방법은 상이한 변환이 데이터의 각 클래스 당 참조 서열에 적용되는 것을 더 포함한다.
다른 측면에서, 코딩하는 방법은 참조 서열 변환이 디스크립터의 블록으로서 인코딩되고, 헤더 정보와 함께 구조화되어, 연속적인 액세스 유닛을 생성하는 것을 더 포함한다.
다른 측면에서, 코딩하는 방법은 상기 분류된 정렬된 리드 및 관련된 참조 서열 변환을 복수의 디스크립터의 블록으로서 인코딩하는 단계는 특정한 소스 모델 및 특정한 엔트로피 코더를 각각의 디스크립터 블록과 연관시키는(associating) 단계를 포함하는 것을 더 포함한다.
다른 측면에서, 코딩하는 방법은 상기 엔트로피 코더가 컨텍스트 적응 산술 코더(context adaptive arithmetic coder), 가변 길이 코더(variable length coder) 또는 골룸 코더(golomb coder) 중 하나인 것을 더 포함한다.
본 발명은 하기 단계를 포함하는, 인코딩된 게놈 데이터를 디코딩하는 방법을 더 제공한다:
헤더 정보를 이용하여, 상기 인코딩된 게놈 데이터를 포함하는 액세스 유닛을 파싱하여(parsing), 복수의 디스크립터의 블록을 추출하는 단계; 및
상기 복수의 디스크립터의 블록을 디코딩하여, 하나 이상의 참조 서열에 대한 이들의 분류를 정의하는 특정한 매칭 규칙에 따라 리드를 추출하는 단계.
다른 측면에서, 디코딩하는 방법은 매핑되지 않은 게놈 리드를 디코딩하는 단계를 더 포함한다.
다른 측면에서, 디코딩하는 방법은 분류된 게놈 리드를 디코딩하는 단계를 더 포함한다.
다른 측면에서, 디코딩하는 방법은 리드의 각 클래스에 대한 하나의 섹션 및 연관된 관련 매핑 위치(relevant mapping position)를 포함하는 마스터 인덱스 테이블을 디코딩하는 단계를 더 포함한다.
다른 측면에서, 디코딩하는 방법은 이용된 참조의 유형 - 이미-존재하는 참조 서열, 변환된 참조 서열 또는 제작된 참조 서열 - 에 관련된 정보를 디코딩하는 단계를 더 포함한다.
다른 측면에서, 디코딩하는 방법은 이미-존재하는 참조 서열에 적용될 하나 이상의 변환에 관련된 정보를 디코딩하는 단계를 더 포함한다.
다른 측면에서, 디코딩하는 방법은 페어링되는 게놈 리드를 더 포함한다.
다른 측면에서, 디코딩하는 방법은 상기 게놈 데이터가 엔트로피 디코딩되는 경우를 더 포함한다.
본 발명은 게놈 서열 데이터(209)를 압축하는 게놈 인코더(2010)를 더 제공한다. 상기 게놈 서열 데이터(209)는 뉴클레오티드 서열의 리드를 포함하고, 상기 상기 게놈 인코더 (2010)는 하기를 포함한다:
상기 리드를 하나 이상의 참조 서열에 대해 정렬하여, 정렬된 리드를 생성하도록 구성된, 얼라이너 유닛(201);
제작된 참조 서열을 생성하도록 구성된, 제작된-참조 생성부 유닛(202);
하나 이상의 이미-존재하는 참조 서열 또는 제작된 참조 서열과의 지정된 매칭 규칙에 따라서 상기 정렬된 리드를 분류하여, 정렬된 리드의 클래스 (208)를 생성하도록 구성된, 데이터 분류 유닛 (204);
상기 분류된 정렬된 리드를 디스크립터의 블록으로서, 상기 정렬된 리드의 클래스에 따라서 상기 디스크립터를 선택함으로써, 인코딩하도록 구성된, 하나 이상의 블록 인코딩 유닛 (205-207); 및
압축된 게놈 데이터 및 메타 데이터를 다중화하는 다중화기(2016).
다른 측면에서, 게놈 인코더는 이미 존재하는 참조 및 데이터 클래스 (208)를 변환된 데이터 클래스 (2018)로 변환하도록 구성된, 참조 서열 전환 유닛 (2019)을 더 포함한다.
다른 측면에서, 게놈 인코더는 데이터 클래스 N, M 및 I의 서브-클래스를 생성하는 임계치의 벡터로 구성된, 데이터 클래스 N, M 및 I의 인코더를 포함하는 데이터 분류 유닛(204)을 더 포함한다.
다른 측면에서, 게놈 인코더는 참조 변환 유닛(2019)이 데이터의 모든 클래스 및 서브-클래스에 동일한 참조 변환 (300)을 적용하는 구성을 더 포함한다.
다른 측면에서, 게놈 인코더는 참조 변환 유닛 (2019)이 상이한 참조 변환(301, 302, 303)을 데이터의 상이한 클래스 및 서브-클래스에 적용하는 구성을 더 포함한다.
다른 측면에서, 게놈 인코더는 이전에 언급된 코딩 방법의 모든 측면을 구현하는 데 적합한 구성을 더 포함한다.
본 발명은 압축된 게놈 스트림(211)을 압축 해제하는(decompressing) 게놈 디코더(218)를 더 제공하며, 상기 게놈 디코더 (218)는 하기를 포함한다:
압축된 게놈 데이터 및 메타 데이터를 역다중화하는, 역다중화기 (210);
상기 압축된 게놈 스트림을 디스크립터의 게놈 블록(215)으로 파싱하도록 구성된, 파싱 수단(212-214);
게놈 블록을 뉴클레오티드 서열의 분류된 리드(2111)로 디코딩하도록 구성된, 하나 이상의 블록 디코더(216-217); 및
상기 뉴클레오티드 서열의 분류된 리드를 하나 이상의 참조 서열에 대해서 선택적으로 디코딩하여, 뉴클레오티드 서열의 압축된 리드를 생성하도록 구성된, 게놈 데이터 클래스 디코더 (219).
다른 측면에서, 게놈 디코더는 참조 변환 디스크립터 (2112)를 디코딩하고, 게놈 데이터 클래스 디코더(219)에 의해 이용될 변환된 참조(2114)를 생성하도록 구성된, 참조 변환 디코더 (2113)를 더 포함한다.
다른 측면에서, 게놈 디코더는 하나 이상의 참조 서열이 압축된 게놈 스트림 (211)에 저장되는 것을 더 포함한다.
다른 측면에서, 게놈 디코더는 하나 이상의 참조 서열이 아웃 오브 밴드 메커니즘(out of band mechanism)을 통해 디코더에 제공된느 것을 더 포함한다.
다른 측면에서, 게놈 디코더는 하나 이상의 참조 서열이 디코더에서 빌딩되는 것을 더 포함한다.
다른 측면에서, 게놈 디코더는 하나 이상의 참조 서열이 참조 변환 디코더 (2113)에 의해 디코더에서 변환되는 것을 더 포함한다.
본 발명은 실행되는 경우에, 적어도 하나의 프로세서가 이전에 언급된 코딩하는 방법의 모든 측면을 수행하도록 야기하는 명령어를 포함하는 컴퓨터 판독 가능한 매체를 더 제공한다.
본 발명은 실행되는 경우에, 적어도 하나의 프로세서가 이전에 언급된 디코딩하는 방법의 모든 측면을 수행하도록 야기하는 명령어를 포함하는 컴퓨터 판독 가능한 매체를 더 제공한다.
본 발명은 이전에 언급된 코딩하는 방법의 모든 측면의 수행에 따라서 인코딩된 게놈을 저장하는 서포트 데이터(support data)를 더 제공한다.
도 1은 매핑된 리드 페어의 위치가 첫번째 매핑된 리드의 절대 위치와 상이한 "pos" 블록에서 어떻게 인코딩되는지에 대해서 나타낸다.
도 2는 페어를 이루는 두 리드가 두 DNA 가닥으로부터 어떻게 유래되는지에 대해서 나타낸다.
도 3은 가닥 1이 참조로서 이용되는 경우에, 리드 2의 역상보(reverse complement)가 어떻게 인코딩되는지에 대해서 나타낸다.
도 4는 리드 페어를 구성하는 리드의 가능한 조합 4개와 "rcomp" 블록에서 각각의 코딩을 나타낸다.
도 5는 3쌍의 리드 페어에 대해서 일정한 리드 길이인 경우에, 페어링 거리를 어떻게 계산하는지에 대해서 나타낸다.
도 6은 "pair" 블록에서 인코딩된 페어링 에러가 어떻게 디코더로 하여금 인코딩된 "MPPPD"를 이용하여 올바른 리드 페어링을 복원을 할 수 있도록 하는지에 대해서 나타낸다.
도 7은 리드가 이의 메이트와 상이한 참조 서열에 대해서 매핑되는 경우에, 페어링 거리의 인코딩을 나타낸다. 이 경우에, 추가의 디스크립터가 페어링 거리에 추가된다. 하나는 시그널링 플래그(signaling flag)이고, 두번째는 참조 식별자이며, 그 다음이 페어링 거리이다.
도 8은 "nmis" 블록에서 "n 형" 미스매치의 인코딩을 나타낸다.
도 9는 참조 서열에 대한 치환을 표현하는, 매핑된 리드 페어를 나타낸다.
도 10은 치환의 위치를 절댓값 또는 차등값(differential value)으로서 어떻게 계산하는지에 대해서 나타낸다.
도 11은 IUPAC 코드가 이용되지 않는 경우에, 치환 유형을 인코딩하는 기호를 어떻게 계산하는지에 대해서 나타낸다. 기호는 리드에 존재하는 분자와 이 위치에서 참조 서열상에 존재하는 분자 사이의 거리 - 원형 치환 벡터(a circular substitution vector)에서 - 를 표현한다.
도 12는 "snpt" 블록으로의 치환을 어떻게 인코딩하는지에 대해서 나타낸다.
도 13은 IUPAC 다의성 코드 (IUPAC ambiguity code)가 이용되는 경우에, 치환 코드를 어떻게 계산하는지에 대해서 나타낸다.
도 14는 IUPAC 코드가 이용되는 경우에, "snpt" 블록이 어떻게 인코딩되는지에 대해서 나타낸다.
도 15는 클래스 I의 리드에 대해서, 이용된 치환 벡터가 기호 A, C, G, T, N의 삽입을 위한 특정한 코드의 추가가 있는, 클래스 M에 대해서 어떻게 동일한지를 나타낸다.
도 16은 IUPAC 다의성 코드인 경우에, 미스매치 및 인델을 인코딩하는 일부 예시를 나타낸다. 치환 벡터는 이 경우에 훨씬 더 길어서, 가능한 계산된 기호는 다섯 개의 기호인 경우보다 더 많다.
도 17은 각각의 블록이 단일 유형의 미스매치 또는 삽입의 위치를 포함하는, 미스매치 및 인델에 대한 상이한 소스 모델을 나타낸다. 이 경우에, 미스매치 또는 인델 유형에 대해서 인코딩된 기호는 존재하지 않는다.
도 18은 미스매치 및 인델 인코딩의 예시를 나타낸다. 주어진 유형의 미스매치 또는 인델이 리드에 존재하지 않는 경우에, 0이 대응하는 블록에서 인코딩된다. 0은 각 블록에서 리드 구분자(read separator) 및 종결자의 역할을 한다.
도 19는 참조 서열에서 변경이 어떻게 M 리드를 P 리드로 변환할 수 있는지에 대해서 나타낸다. 이 작업(operation)은 특히, 고 커버리지 데이터(high coverage data)에서, 데이터 구조의 정보 엔트로피를 감소시킬 수 있다.
도 20은 본 발명의 한 양태에 따른 게놈 인코더 (2010)를 나타낸다.
도 21은 본 발명의 한 양태에 따른 게놈 디코더 (218)를 나타낸다.
도 22는 리드를 클러스터링(clustering)하고, 각 클러스터로부터 얻은 세그먼트를 조립함으로써(assembling) "내부" 참조가 어떻게 제작될 수 있는지에 대해서 나타낸다.
도 23은 특정한 정렬(예, 사전식 순서)이 리드에 적용된 경우에, 참조를 제작하는 전략이 어떻게 가장 최근의 리드를 저장하는 것에 있는지에 대해서 나타낸다.
도 24는 대응하는 블록에 저장되거나 또는 이 블록에서 운반되는 6개의 디스크립터를 이용하여, "매핑되지 않은" 리드 (클래스 U)의 클래스에 속하는 리드가 어떻게 코딩될 수 있는지에 대해서 나타낸다.
도 25는 부호화된 pos 디스크립터가 제작된 참조상의 리드의 매핑 위치의 코딩에 이용된, 클래스 U에 속하는 리드의 대안적인 코딩이 어떤지에 대해서 나타낸다.
도 26은 참조 변환(reference transformation)이 리드로부터 미스매치를 제거하는 데 어떻게 적용될 수 있는지에 대해서 나타낸다. 몇몇 경우들에서, 변환이 적용되기 전에, 참조 변환이 새로운 미스매치를 생성할 수 있거나, 또는 참조를 참조하는(referring) 경우에 발견된 미스매치의 유형을 변경할 수 있다.
도 27은 모든 미스매치 또는 미스매치의 부분 집합이 제거되는 경우에 속하는 클래스 리드를 참조 변환(reference transformation)이 어떻게 변경할 수 있는지에 대해서 나타낸다 (즉, 변환이 적용되기 전에 클래스 M에 속하는 리드가 참조의 변환이 적용된 후에는 클래스 P에 할당됨).
도 28은 매핑되지 않은 리드와 더 긴 컨티그를 조림함으로써, 하프 매핑된 리드 페어 (클래스 HM)가 참조 서열의 알려지지 않은 영역을 채우는 데 어떻게 이용될 수 있는지에 대해서 나타낸다.
도 29는 클래스 N, M 및 I의 데이터의 인코더가 임계치의 벡터로 어떻게 구성되고, N, M 및 I 데이터 클래스의 별도의 서브 클래스를 어떻게 생성하는지에 대해서 나타낸다.
도 30은 모든 데이터의 클래스가 동일한, 변환된 참조를 재-인코딩에 어떻게 이용할 수 있는지, 또는 상이한 변환이 각 클래스 N, M 및 I, 또는 이들의 임의의 조합에 어떻게 이용될 수 있는지에 대해서 나타낸다.
도 31은 게놈 데이터 세트 헤더의 구조를 나타낸다.
도 32는 각각의 행(row)이 몇몇 데이터 클래스 P, N, M, I, U, HM의 게놈 구간 및 메타 데이터와 주석(annotation)에 대한 추가의 포인터(pointer)를 포함하는, 마스터 인텍스 테이블의 포괄적인 구조(generic structure)를 나타낸다. 열(column)은 인코딩된 게놈 데이터에 관련된 참조 서열상의 특정한 위치를 참조한다.
도 33은 클래스 P의 리드에 관련된 게놈 구간을 포함하는 MIT의 한 행(row)의 예시를 나타낸다. 상이한 참조 서열에 관련된 게놈 영역은 특정한 플래그 (이 예시에서는, 'S')에 의해 분리된다.
도 34는 로컬 인덱스 테이블(Local Index Table, LIT)의 포괄적인 구조, 및 이것이 저장되거나 또는 전송된 데이터 중, 인코딩된 게놈 정보의 물리적인 위치(physical location)에 대한 포인터의 저장에 어떻게 이용되는지에 대해서 나타낸다.
도 35는 블록 페이로드에서 7번 액세스 유닛 및 8번 액세스 유닛에 이용된 LIT의 예시를 나타낸다.
도 36은 게놈 블록 헤더에 포함된 MIT 및 LIT의 몇몇 행(row)들 중에서, 기능적인 관계(functional relationship)를 나타낸다.
도 37은 액세스 유닛이 상이한 클래스에 속하는 데이터를 포함하는 상이한 게놈 스트림(genomic stream)이 지니는 게놈 데이터의 몇몇 블록들로 어떻게 구성되는지에 대해서 나타낸다. 각 블록은 데이터 전송 유닛으로서 이용된 데이터 패킷(data packet)으로 더 구성된다.
도 38은 액세스 유닛이 동질적인 데이터(homogeneous data)의 하나 이상의 블록에 속하는 헤더 및 다중화된 블록으로 어떻게 구성되는지에 대해서 나타낸다. 각 블록은 게놈 정보의 실제 디스크립터를 포함하는 하나 이상의 패킷으로 구성될 수 있다.
도 39는 스플라이싱(splicing)이 없는 다중 정렬(multiple alignment)을 나타낸다. 가장 왼쪽의 리드는 N개의 정렬을 갖는다. N은 디코딩될 mmap의 제1 값이고, 제1 리드의 정렬의 수를 시그널링한다. 다음 mmap 디스크립터의 N 값은 디코딩되고, 제2 리드의 정렬의 수인, P의 계산에 이용된다.
도 40은 pos, pair, 및 mmap 디스크립터가 어떻게 이용되서 스플라이싱이 없는 다중 정렬을 인코딩하는지에 대해서 나타낸다. 가장 왼쪽의 리드는 N개의 정렬을 갖는다.
도 41은 스플라이싱이 존재하는 다중 정렬을 나타낸다.
도 42는 스플라이싱이 존재하는 다중 정렬의 표현에 대한 pos, pair, mmap 및 msar 디스크립터의 이용을 나타낸다.
본 발명에서 언급된 게놈 서열 또는 프로테오믹스 서열(proteomic sequence)은, 예를 들어, 뉴클레오티드 서열, 데옥시리보핵산(Deoxyribonucleic acid, DNA) 서열, 리보핵산 (Ribonucleic acid, RNA) 서열, 및 아미노산 서열을 포함하나, 이에 한정되는 것은 아니다. 본원의 기술(description)이 뉴클레오티드 서열의 형태인 게놈 정보에 대해서 상당히 자세하나, 압축방법 및 시스템이 다른 게놈 또는 프로테오믹스 서열에 대해서도, 몇몇 변형을 수반할 수 있으나, 실시될 수 있다는 것이 이해될 것이며, 이는 통상의 기술자에 의해 이해될 것이다.
게놈 시퀀싱 정보는 고 처리량 시퀀싱 (High Throughput Sequencing, HTS) 기기에 의해, 정의된 용어로부터 비롯된 문자의 스트링(string of letters)으로 표현되는, 뉴클레오티드("염기"라고도 알려져 있음) 서열의 형태로 생성된다. 가장 작은 용어는 DNA에 존재하는 4가지 유형의 뉴클레오티드, 즉, 아데닌, 시토신, 구아닌, 및 티민을 표현하는 다섯 개의 기호: {A, C, G, T, N}에 의해 표현된다. RNA에서, 티민은 우라실(U)로 대체된다. N은 시퀀싱 기기가 임의의 염기를 호출할 수 없어서, 위치의 실제 본질이 정해지지 않는다는 것을 나타낸다. 시퀀싱 기기에 의해 IUPAC 다의성 코드(IUPAC ambiguity code)가 채택되는 경우, 기호로 이용되는 알파벳은 (A, C, G, T, U, W, S, M, K, R, Y, B, D, H, V, N 또는 -)이다.
시퀀싱 기기에 의해 생성된 뉴클레오티드 서열은 "리드(read)"라고 한다. 서열 리드(sequence read)는 길이가 수십 내지 수천 개인 뉴클레오티드 일 수 있다. 일부 기술(technology)은 서열 리드를 " 페어 (pair)" - 한 리드는 한 DNA 가닥으로부터 비롯되고, 두번째는 다른 가닥으로부터 비롯되는 - 로 생성한다. 게놈 시퀀싱에서, 용어 " 커버리지 (coverage)""참조 서열"에 대한 서열 데이터의 반복(redundancy) 수준을 표현하는 데 이용된다. 정렬된 게놈 시퀀싱 데이터의 평균 커버리지는 참조 게놈의 각 위치에 있는 각 염기가 정렬된 데이터에 존재하는, 평균 횟수이다. 예를 들어, 인간 게놈 (길이가 32억 개인, 염기)에 대해서 30x의 커버리지에 도달하기 위해서는, 평균적으로 참조 내 각 위치가 30회 "커버"되도록, 시퀀싱 기기는 총 30 x 32억 개의 염기를 생성할 것이다.
본 개시의 전반에 걸쳐, 참조 서열(reference sequence)은 시퀀싱 기기에 의해 생성된 뉴클레오티드 서열이 정렬/매핑되는, 임의의 서열이다. 서열의 한 예시는 실제로, 과학자가 종의 유전자 세트의 대표적인 예시로 조립한 서열인, "참조 게놈(reference genome)"일 수 있다. 예를 들어, 게놈 참조 컨소시엄 인간 게놈 (빌드 37) [Genome Reference Consortium human genome) (build 37)]인, GRCh37은 뉴욕주, 버팔로 소재의 13명의 익명의 자원자로부터 유래된다. 그러나, 참조 서열은 또한 이들의 추가 프로세싱을 고려하여, 단지 리드의 압축률(compressibility)을 개선시키기 위해 착안 및 제작된 합성 서열로 이루어질 수 있다. 이는 <"클래스 U" 및 "클래스 HM"의 매핑되지 않은 리드에 대한 "내부" 참조의 제작 및 클래스 U에 대한 디스크립터"> 섹션에서 더 상세히 기술되고, 도 22 및 도 23에서 묘사된다.
시퀀싱 디바이스는 다음과 같이 에러를 서열 리드에 도입할 수 있다:
1. 임의의 특정한 염기의 호출(calling)에 있어서, 신뢰성(confidence)의 부족으로 인해 염기 호출 (base call)의 생략을 결정. 이는 알려지지 않은 염기(unknown base)라고 하고, "N"으로 표지된다 ("n 형" 미스매치로 나타냄);
2. 시퀀싱된 샘플에 실제로 존재하는 핵산을 잘못된 기호를 사용하여 표현(즉, 다른 핵산을 표현함). 이는 대개 "치환 에러"라고 한다 ("s 형" 미스매치로 나타냄);
3. 임의의 실제로 존재하는 핵산을 참조하지 않는, 추가의 기호를 한 서열 리드에 삽입. 이는 대개 "삽입 에러"라고 한다 ("i 형" 미스매치로 나타냄);
4. 시퀀싱된 샘플에 실제로 존재하는 핵산을 표현하는 기호가 한 서열 리드로부터 결실됨. 이는 대개 "결실 에러"라고 한다 ("d 형" 미스매치로 나타냄);
5. 본래 서열(originating sequence)의 실재(reality)를 반영하지 않는 단일 단편에 하나 이상의 단편을 재조합. 이는 대개 얼라이너 결정(aligners decision)이 염기를 클리핑(clipping)하도록 야기한다 ("c 형" 미스 매칭으로 나타냄).
용어 "커버리지(coverage)"는 문헌에서 참조 게놈 또는 이의 일부가 입수 가능한 서열 리드에 의해 커버될 수 있는 정도를 정량화하는 데 이용된다. 커버리지는:
·참조 게놈의 일부분이 임의의 입수 가능한 서열 리드에 의해 매핑되지 않는 경우에, 부분적 (1X 미만)이라고 할 수 있고;
·참조 게놈의 모든 뉴클레오티드가 서열 리드에 존재하는 하나의 기호 및 단 하나의 기호 의해 매핑되는 경우에, 단일 (1X)이라고 할 수 있으며;
·참조 게놈의 각 뉴클레오티드가 여러 번 매핑되는 경우에, 다중(2X, 3X, NX)이라고 한다.
본 발명은 관련 정보가 효율적으로 액세스 가능하고(accessible), 전송 가능하며(transportable), 반복 정보의 가중치가 감소되는, 게놈 정보 표현 형식의 정의를 목표로 한다.
개시된 본 발명의 주요한 혁신적 측면은 다음과 같다:
1. 참조 서열에 대한 정렬 결과에 따라서, 서열 리드가 데이터 클래스로 분류 및 분할된다(partitioning). 이러한 분류 및 분할은 선택적 액세스가 정렬 결과 및 매칭 정확성 (matching accuracy)에 관련된 기준에 따라서 데이터를 인코딩할 수 있게 한다.
2. 분류된 서열 리드 및 연관된 메타 데이터는 디스크립터의 동질적인 블록(homogeneous block)에 의해 표현되어 낮은 정보 엔트로피를 특징으로 하는 별개의 정보 소스(information source)를 획득한다.
3. 각 클래스의 통계적 특징에 적용된 별개의 소스 모델(source model)로 각각의 별도의 정보 소스를 모델링하는 것이 가능함, 및 각각의 별도로 액세스 가능한 데이터 유닛 (액세스 유닛)에 대한 각 디스크립터 블록 내에서 및 리드의 각 클래스 내에서 소스 모델을 변경하는 것이 가능함. 각 소스 모델의 통계적 특성에 따라, 적절한 변환(transformation), 이진화(binarization) 및 컨텍스트 적응 확률 모델(context adaptive probability model), 및 연관된 엔트로피 코더의 채택.
4. 모든 정보가 필요한 경우가 아니라면, 모든 디스크립터 블록의 디코딩을 필요로 하지 않는, 시퀀싱 데이터와 연관된 메타 데이터에 선택적 액세스를 가능하게 하는, 디스크립터 블록 사이에서 대응(correspondence)과 종속(dependency)의 정의.
5. 디스크립터 블록 정보 소스의 엔트로피를 감소시키기 위한, "이미-존재하는" (또한, "외부"라고도 함)참조 서열에 대한 또는 "이미-존재하는" 참조 서열에 적절한 변환을 적용시킴으로써 획득된 "변환된" 참조 서열에 대한 각 서열 데이터 클래스 및 연관된 메타 데이터 블록의 코딩. 상기 디스크립터는 상이한 데이터 클래스로 분할된 리드를 표현한다. "이미-존재하는" 참조 서열 또는 "변환된" "이미-존재하는" 참조 서열에 대한, 대응하는 디스크립터를 이용한 리드의 임의의 인코딩 후에, 다양한 미스매치의 발생은 참조 서열로의 적절한 변환의 정의에 이용되어, 낮은 엔트로피를 가진 최종의 코딩된 표현을 찾을 수 있고, 더 높은 압축 효율을 달성할 수 있다.
6. 제약조건(constraints)의 세트를 충족시키지 않는, 이미-존재하는 참조 서열에 대한 매칭 정확도(degree of matching accuracy)를 나타내는 리드의 클래스를 인코딩하는 데 이용되는 하나 이상의 참조 서열 (또한, 본원에서 "외부" 참조 서열이라고도 하는 "이미-존재하는" 참조 서열과 구별하기 위해, "내부" 서열로 나타냄)의 제작. 이러한 제약조건은 "내부" 참조 서열에 대해 정렬된 리드의 클래스를 압축된 형태로 표현하는 코딩 비용(coding cost) 및 "내부" 참조 서열 자체를 표현하는 비용이 정렬되지 않은 축어적 (verbatim) 리드의 클래스를 암호화하는 것 또는 변환을 수반하거나 수반하지 않는 "외부" 참조 서열을 이용하는 것보다 더 낮은 것을 목적으로 설정된다.
다음에서, 각각의 상기 측면이 더 상술될 것이다.
매칭 규칙에 따른 서열 리드의 분류
하나 이상의 "이미-존재하는" 참조 서열에 대한 정렬의 매칭 결과에 따라, 시퀀싱 기기에 의해 생성된 서열 리드는 개시된 본 발명에 의해 6개의 상이한 "클래스"로 분류된다.
참조 서열에 대해 DNA 뉴클레오티드 서열을 정렬하는 경우에, 다음의 경우가 식별될 수 있다:
1. 참조 서열 내 영역이 임의의 에러 없이 서열 리드와 매칭되는 것으로 판명된다 (즉, 완전한 매핑). 이러한 뉴클레오티드 서열은 "완전히 매칭한 리드"로 언급되거나 또는 "클래스 P"로 나타낸다.
2. 참조 서열 내 영역이 리드를 생성하는 시퀀싱 기기가 임의의 염기 (또는 뉴클레오티드)를 호출(calling)할 수 없는, 위치의 수에 의해서만 결정되는 미스매치의 유형과 수를 갖는 서열 리드와 매칭되는 것으로 판명된다. 이러한 유형의 미스매치는 "N"으로 나타내는데, 이 문자는 정의되지 않은 뉴클레오티드 염기를 나타내는 데 이용된다. 본 문서에서, 이 유형의 미스매치는 "n 형" 미스매치로 지칭된다. 이러한 서열은 "클래스 N" 리드에 속한다. 리드가 "클래스 N"에 속하는 것으로 분류되는 경우에, 매칭 부정확도(degree of matching inaccuracy)를 소정의 상한(upper bound)으로 한정하고, 유효한 매칭(valid matching)으로 고려되는 것과 그렇지 않은 것 사이에서 경계(boundary)를 설정하는 것이 유용하다. 그러므로, 클래스 N으로 할당된 리드는 또한 리드가 포함할 수 있는 정의되지 않은 염기(즉, "N"으로 호출되는 염기)의 최대 수를 정의하는, 임계 (MAXN)를 설정함으로써 제한된다. 이러한 분류는 압축된 데이터에 선택적 데이터 검색의 적용에 대해서 유용한 기준을 구성하는, 대응하는 참조 서열에 참조되는 경우에, 클래스 N에 속하는 모든 리드가 공유하는, 요구되는 최소 매칭 정확성 (또는 미스매치의 최대 정도)을 내재적으로 정의한다.
3. 참조 서열 내 영역이 리드를 생성하는 시퀀싱 기기가 임의의 뉴클레오티드 염기를 호출할 수 없는, 위치의 수에 의해 결정되는 미스매치의 유형과 이의 수(number) - 존재하는 경우에 (즉, "n 형" 미스 매칭) - 뿐만 아니라, 참조에 존재하는 염기와 상이한 염기가 호출됐었던 미스매치의 수를 갖는 서열 리드와 매칭하는 것으로 판명된다. "치환"으로 나타낸 이러한 유형의 미스매치는 단일 뉴클레오티드 변이 (Single Nucleotide Variation, SNV) 또는 단일 뉴클레오티드 다형성 (Single Nucleotide Polymorphism, SNP)이라고도 한다. 본 문서에서, 이 유형의 미스매치는 "s 형" 미스매치라고도 나타낸다. 그러면, 서열 리드는 "M 미스 매칭 리드"로서 참조되고, "클래스 M"에 할당된다. "클래스 N"의 경우와 같이, "클래스 M"에 속하는 모든 리드에 대해서도, 매칭 부정확도를 주어진 상한으로 한정하고, 유효한 매칭(valid matching)으로 고려되는 것과 그렇지 않은 것 사이에 경계를 설정하는 것이 유용하다. 그러므로, 클래스 M으로 할당된 리드는 또한 임계의 세트 - 존재하는 경우에, 하나는 "n 형" 미스매치의 수 "n"에 대한 것(MAXN) 이고, 다른 하나는 치환의 수 "s"에 대한 것(MAXS)임 - 를 정의함으로써 제한된다. 제3 제약조건은 두 수 "n"과 "s"의 임의의 함수인 f(n,s)에 의해 정의된 임계이다. 이러한 제3 제약조건은 임의의 의미 있는 선택적 액세스 기준에 따라, 미스 매칭 부정확성의 상한을 갖는 클래스의 생성을 가능하게 한다. 예를 들어, f(n,s)는 "클래스 M"에 속하는 리드에 대해 허용된 최대 매칭 부정확성 수준에 경계를 설정하는 (n+s)1/2 또는 (n+s) 또는 임의의 선형 또는 비-선형 수식일 수 있으나, 이에 한정되는 것은 아니다. 이러한 경계는 한 유형 또는 다른 유형에 적용된 단순 임계 (simple threshold)를 넘어서, "n 형" 미스매치의 수와 "s 형" 미스매치(치환)의 수의 임의의 가능한 조합에 대한 추가의 경계를 설정하는 것을 가능하게 하기 때문에, 다양한 목적으로 서열 리드를 분석하는 경우에, 목적하는 선택적 데이터 검색을 압축된 데이터에 대해 적용하는 것에 대한 매우 유용한 기준을 구성한다.
4. 제4 클래스는 "삽입", "결실" [인델(indel)로도 알려짐] 및 "클리핑된-" 중에서, 임의의 유형의 적어도 하나의 미스매치뿐만 아니라, 존재하는 경우에, 클래스 N 또는 M에 속하는 임의의 미스매치 유형을 표현하는 시퀀싱 리드로 구성된다. 이러한 서열은 "I 미스 매칭 리드"로 나타내고, "클래스 I"에 할당된다. 삽입은 참조에 존재하지 않지만, 리드 서열에는 존재하는 하나 이상의 뉴클레오티드의 추가 서열로 구성된다. 본 문서에서, 이 유형의 미스매치는 "i 형" 미스매치로 나타낸다. 문헌에서, 삽입된 서열이 서열의 가장자리(edge)에 존재하는 경우에, 이는 "소프트 클리핑된-"으로 또한 나타낸다 (즉, 뉴클레오티드가 참조와 매칭하는 것은 아니나, 버려지는 "하드 클리핑된" 뉴클레오티드와는 반대로, 정렬된 리드에서 유지된다). 본 문서에서, 이 유형의 미스매치는 "c 형" 미스매치로 나타낸다. 뉴클레오티드를 유지하는 것 또는 버리는 것(discarding)은 얼라이너 단계(aligner stage)에 의해 내려지는 결정이지, 리드 - 이들이 시퀀싱 기기 또는 다음 정렬 단계에 의해 결정됨에 따라 - 를 수신하고(receiving) 프로세싱하는 본 발명에 개시된 리드의 분류기 (classifier)에 의한 결정은 아니다. 결실은 참조 서열에 대한 리드 내 "공백" (없어진 뉴클레오티드)이다. 본 개시에서, 이 유형의 미스매치는 "d 형" 미스매치로 나타낸다. 클래스 "N"과 클래스 "M"의 경우와 같이, 매칭 부정확성에 한계를 정의하는 것이 가능하며, 적합하다. "클래스 I"에 대한 제약조건 세트의 정의는 "클래스 M"에 이용된 동일한 원칙에 기초하며, 표 1에서, 이 표의 마지막 행에서 보고된다. 클래스 I 데이터에 허용될 수 있는 미스매치의 각 유형에 대한 임계외에, 미스매치 "n", "s", "d", "i" 및 "c"의 수에 대한 임의의 함수인 w(n,s,d,i,c)에 의해 결정된 임계에 의해서, 추가의 제약조건이 정의된다. 이러한 추가 제약조건은 임의의 의미 있는 사용자 정의된 선택적 액세스 기준(user defined selective access criterion)에 따라, 매칭 부정확성의 상한을 갖는 클래스의 생성을 가능하게 한다. 예를 들어, w(n,s,d,i,c)는 "클래스 I"에 속하는 리드에 대해 허용된 최대 매칭 부정확성 수준에 대한 경계를 설정하는 (n+s+d+i+c)1/5 또는 (n+s+d+i+c) 또는 임의의 선형 또는 비-선형 수식일 수 있으나, 이에 한정되는 것은 아니다. 각 유형의 허용할 수 있는 미스매치에 적용된 단순 임계 (simple threshold)를 넘어서, "클래스 I" 리드에서 허용할 수 있는 미스매치의 수의 임의의 가능한 조합에 추가의 경계를 설정하는 것을 가능하게 하기 때문에, 서열 리드를 다양한 목적으로 분석하는 경우에, 이러한 경계는 목적하는 선택적 데이터 검색을 압축된 데이터에 적용하는 것에 대한 매우 유용한 기준을 구성한다.
5. 제5 클래스는 참조 서열을 참조하는 경우에, 각 데이터 클래스에 대해서 유효한 것으로 고려된 임의의 매핑을 찾지 못한 모든 리드(즉, 표 1에 지정된, 최대 매칭 부정확성에 대한 상한을 정의하는 매칭 규칙의 세트를 충족시키지 못함)를 포함한다. 참조 서열을 참조하고, "클래스 U"에 속하는 것으로 분류되는 경우에, 이러한 서열은 "매핑되지 않음"이라고 한다.
미스 매칭 규칙에 따른 리드 페어의 분류
이전의 섹션에서 지정된 분류는 단일 서열 리드와 관련 있다. 리드를 페어 - 두 리드가 가변적 길이(variable length)의 알려지지 않은 서열에 의해 분리되는 것으로 알려져 있는 - 로 생성하는 시퀀싱 기술 (즉, Illumina Inc.)의 경우에, 전체 페어의 분류를 단일 데이터 클래스로 여기는 것이 적절하다. 다른 리드와 커플링(coupling)되는 리드는 이의 "메이트"라고 한다.
두 페어링된 리드(paired read) 모두가 동일한 클래스에 속하는 경우에, 전체 페어의 클래스로의 할당은 다음과 같다: 전체 페어는 임의의 클래스 (즉, P, N, M, I, U)에 대해서 동일한 클래스에 할당된다. 두 리드가 상이한 클래스에 속하나, 이들 중 어떠한 리드도 "클래스 U"에는 속하지 않는 경우라면, 전체 페어는 하기 식 1에 따라 정의된, 가장 높은 우선권(priority)을 갖는 클래스에 할당된다:
[식 1]
P < N < M < I
상기 식 1에서, "클래스 P"는 가장 낮은 우선권을 갖고, "클래스 I"는 가장 높은 우선권을 갖는다.
리드 중 단 하나만 "클래스 U"에 속하고, 이의 메이트가 클래스 P, N, M, I 중 임의의 클래스에 속하는 경우에, 제6 클래스는 "Half Mapped (하프 매핑됨)"를 의미하는 "클래스 HM"으로 정의된다.
리드의 이러한 특정한 클래스의 정의는 이것이 참조 게놈에 존재하는 갭(gap) 또는 알려지지 않은 영역(거의 알려지지 않은 또는 알려지지 않은 영역이라고도 함)을 결정하는 시도에 이용된다는 사실 때문이다. 이러한 영역은 알려진 영역에 매핑될 수 있는 페어 리드를 이용하여, 페어를 가장자리(edge)에 매핑함으로써 복원된다. 그러면, 매핑되지 않은 메이트는 알려지지 않은 영역의 소위 "컨티그"의 빌딩에 이용되는데, 이는 도 16에 제시된다. 그러므로, 이러한 유형의 리드 페어에 대해서만 선택적 액세스를 제공하는 것은 연관된 연산 부하(computation burden)를 대단히 감소시키며, 전체적으로 조사되는 것을 필요로 하는, 선행기술의 해결방안을 이용하는 것보다 많은 양의 데이터 세트에 의해 비롯된 이러한 데이터의 훨씬 효율적인 프로세싱을 가능하게 한다.
아래의 표는 각 리드가 속하는 데이터의 클래스를 정의하기 위해 리드에 적용된 매칭 규칙을 요약한 것이다. 이 규칙은 미스매치의 유형(n, s, d, i 및 c 형 미스매치)의 존재 또는 부재의 관점에서, 하기 표의 처음의 다섯 열에 정의되어 있다. 여섯 번째 열은 각 미스매치 유형에 대한 최대 임계 및 가능한 미스매치 유형의 임의의 함수인 f(n,s) 및 w(n,s,d,i,c)의 관점에서 규칙을 제공한다.
[표 1. 미스매치의 유형 및 본 개시에서 정의된 데이터 클래스로 분류되기 위해 각 서열 리드가 충족시켜야 하는 제약조건의 세트]
Figure pct00001
상이한 매칭 정확도를 갖는 서브 클래스로의 서열 리드 데이터 클래스 N, M 및 I의 매칭 규칙 분할 (matching rules partition)
이전의 섹션에서 정의된 N, M 및 I형의 데이터 클래스는 임의의 수의, 별개의 서브 클래스 - 상이한 매칭 정확도를 갖는 - 로 더 분해(decomposing)될 수 있다. 더 섬세한 입도(granularity)와, 그 결과로서, 각 데이터 클래스에 대한 훨씬 더 효율적인 선택적 액세스의 제공에 있어서, 이러한 옵션은 중요한 기술적 이점이다. 한정하는 것은 아닌 예시로서, 클래스 N을 k개의 서브 클래스(서브-클래스 N1, ... , 서브-클래스 Nk)로 분할하기 위해, 벡터를 MAXN1 < MAXN2 < ... < MAXN(k-1) < MAXN인 조건을 갖는, 대응하는 성분(component)인 MAXN1, MAXN2, ... , MAXN(k-1), MAXN(k)으로 정의하는 것과, 벡터의 각 요소(element)에 대해서 평가되는 경우에, 각 리드를 표 1에 지정된 제약조건을 충족하는 가장 낮은 랭킹의 서브-클래스에 할당하는 것이 필요하다. 이는 데이터 분류 유닛 (291)이 클래스 P, N, M, I, U, HM 인코더와 주석(annotation) 및 메타 데이터에 대한 인코더를 포함하는, 도 29에 제시된다. 클래스 N 인코더는 임계치의 벡터인, N 데이터의 k개의 서브클래스(296)를 생성하는 MAXN1 내지 MAXNk (292)로 구성된다.
M 형 및 I 형의 클래스인 경우에, MAXM 및 MAXTOT 각각에 대해 동일한 특성을 가진 벡터를 정의함으로써, 동일한 원리가 적용되고, 함수 f(n,s) 및 w(n,s,d,I,c)가 제약조건을 충족하는 경우인지에 대해서 확인하기 위한 임계치로서, 각 벡터 성분을 이용한다. N 형의 서브-클래스의 경우와 같이, 제약조건이 충족되는 가장 낮은 서브-클래스에 할당이 주어진다. 각 클래스 유형에 대한 서브-클래스의 수는 독립적이고, 세부 분할(subdivision)들의 임의의 조합이 허용될 수 있다. 이는 클래스 M 인코더(293)와 클래스 I 인코더(294)가 임계치의 벡터인 MAXM1 내지 MAXMj 및 MAXTOT1 내지 MAXTOTh로 각각 구성되어 있는, 도 29에 제시된다. 두 인코더는 M 데이터의 j개의 서브클래스(297) 및 I 데이터의 h개의 서브클래스(298)를 각각 생성한다.
한 페어를 이루는 두 리드가 동일한 서브-클래스로 분류되는 경우에, 이 페어는 동일한 서브-클래스에 속한다.
한 페어를 이루는 두 리드가 상이한 클래스의 서브-클래스로 분류되는 경우라면, 이 페어는 하기 식 2에 따라서 더 높은 우선권을 갖는 클래스의 서브-클래스에 속한다:
[식 2]
N < M < I
상기 식 2에서, N은 가장 낮은 우선권을 갖고, I는 가장 높은 우선권을 갖는다.
두 리드가 클래스 N 또는 M 또는 I 중 하나의 상이한 서브-클래스에 속하는 경우라면, 이 페어는 하기 식 3에 따라서 가장 높은 우선권을 갖는 서브-클래스에 속한다:
[식 3]
N 1 < N 2 < ... < N k
M 1 < M 2 < ... < M j
I 1 < I 2 < ... < I h
상기 식 3에서, 가장 높은 인덱스는 가장 높은 우선권을 갖는다.
"외부" 참조 서열의 변환
클래스 N, M 및 I로 분류된 리드에 대해 발견된 미스매치는 리드 표현을 더 효율적으로 압축하는 데 이용될 "변환된" 참조의 생성에 이용될 수 있다.
클래스 N, M 또는 I에 속하는 것으로 분류된 리드 [RS0로 나타낸 "이미-존재하는" (즉, "외부") 참조 서열에 대한]는 "변환된" 참조 서열과 실제 미스매치의 발생에 따라서, "변환된" 참조 서열 RS1에 대해서 코딩될 수 있다. 예를 들어, 참조 서열 RSn에 대한 미스매치를 포함하는 클래스 M에 readM in이 속하는 경우(클래스 M의 i번째 리드로 나타냄)라면, "변환" 후에 readM in = readP i(n+1)은 A(Refn)=Refn +1로 획득될 수 있으며, 이 식에서 A는 참조 서열 RSn으로부터 참조 서열 RSn + 1로의 변환이다.
도 19는 참조 서열 1 (RS1)에 대해서 미스매치를 포함하는 리드 (클래스 M에 속하는)가 미스매치 위치에 대응하는 염기를 변경시킴으로써, RS1으로부터 획득된 참조 서열 2 (RS2)에 대해서 완전히 매칭되는 리드로 어떻게 변환될 수 있는가에 대한 예시를 나타낸다. 이들은 여전히 분류되어 있고, 이들은 동일한 데이터 클래스 액세스 유닛에 속한 다른 리드와 함께 코딩되나, 이 코딩은 클래스 P에 필요한 디스크립터와 디스크립터 값만 이용하여 수행된다. 이 변환은 하기의 식 4와 같이 나타낼 수 있다:
[식 4]
RS 2 = A(RS 1 )
RS1에 적용되는 경우에 RS2를 생성하는 변환 A의 표현뿐만 아니라, 리드 대(versus) RS2의 표현이 클래스 M의 리드 대 RS1의 표현보다 더 낮은 엔트로피에 대응되는 경우에, 데이터 표현의 더 높은 압축이 달성되기 때문에, 변환 A의 표현 및 리드 대 RS2의 대응하는 표현을 전송하는 것이 유리하다.
압축된 비트 스트림에서 전송을 위한 변환 A의 코딩은 아래의 표에서 정의된 대로, 두 개의 추가적인 디스크립터의 정의를 필요로 한다.
Figure pct00002
도 26은 참조 변환이 매핑된 리드에 대해서 코딩될 미스매치의 수의 감소에 어떻게 적용되는지에 대한 예시를 나타낸다.
변환이 참조에 적용된 일부 경우에서, 하기가 관찰되어야 한다:
· 변환을 적용하기 전에, 참조를 참조하는 경우에 존재하지 않았던 리드의 표현에 미스매치가 도입될 수 있음.
· 미스매치의 유형을 변경할 수 있음. 리드가 G 대신에 A를 포함할 수 있는 반면, 모든 다른 리드는 G 대신에 C를 포함하나, 미스매치는 동일한 위치에서 유지함.
· 상이한 데이터 클래스와 각 데이터 클래스의 데이터의 부분 집합이 동일한 "변환된" 참조 서열, 또는 동일한 이미-존재하는 참조 서열에 상이한 변환을 적용시킴으로써 획득된 참조 서열을 참조할 수 있음.
도 27은 참조 변환이 적용되고, "변환된" 참조를 이용하여 리드가 표현된 후에, 적절한 디스크립터의 세트(예, 클래스 P의 디스크립터를 클래스 M으로부터의 리드의 코딩에 이용)에 의해, 리드가 어떻게 데이터 클래스로부터의 코딩의 유형을 다른 것으로 변경할 수 있는지에 대한 예시를 더 나타낸다. 이는, 예를 들어, 변환이 리드에 실제로 존재하는 염기 중 리드의 미스매치에 대응하는 모든 염기를 변경함으로써, 클래스 M에 속하는 리드 (본래의 "변환되지" 않은 참조 서열을 참조하는 경우)를 클래스 P의 가상의 리드(virtual read) ("변환된" 참조를 참조하는 경우)로 가상적으로 변환하는(virtually transforming) 경우에 발생한다. 데이터의 각 클래스에 이용된 디스크립터의 세트의 정의는 다음 섹션에서 제공된다.
도 30은 데이터의 상이한 클래스가 동일한 "변환된" 참조 R1 = A0(R0) (300)을 어떻게 이용하여 리드를 재-인코딩(re-encoding)할 수 있는지, 또는 상이한 변환 AN (301), AM (302), AI (303)가 데이터의 각 클래스에 어떻게 별도로 적용되어 상이한 참조 게놈 RN, RM, RI를 생성할 수 있는지에 대해서 나타낸다.
디스크립터의 블록으로 서열을 표현하는 데 필요한 정보의 정의
리드의 분류가 클래스의 정의로 완료되면, 추가의 프로세싱은 리드 서열이 주어진 참조 서열에 매핑됨으로써 표현되는 경우에, 이의 복원을 가능하게 하는 나머지 정보를 표현하는 별개의 디스크립터의 세트를 정의하는 것에 있다. 이러한 디스크립터의 데이터 구조는 디코딩 엔진(decoding engine)에 의해 이용될, 메타 데이터와 글로벌 파라미터(global parameter)의 저장(storage)을 필요로 한다. 이러한 데이터는 아래의 표에서 기술되는 게놈 데이터 세트 헤더( Genomic Dataset Header) 로 구조화된다. 데이터 세트는 단일 게놈 시퀀싱 실행(run)과 모든 다음의 분석에 관련된 게놈 정보의 복원에 필요한 요소를 코딩하는 앙상블(ensemble)로서 정의된다. 동일한 게놈 샘플이 2회의 별개의 실행(run)으로 시퀀싱 되는 경우에, 획득된 데이터는 두 개의 별개의 데이터 세트에서 인코딩될 것이다.
[표 1 - 게놈 데이터 세트 헤더 구조]
Figure pct00003
Figure pct00004
Figure pct00005
주어진 참조 서열에 참조된, 서열 리드 (즉, DNA 세그먼트)는 하기에 의해 완전히 표현될 수 있다:
· 참조 서열상의 시작 위치 (pos).
· 리드가 참조 서열에 대해서 역상보적인 것으로 고려되어야 하는지에 대해서 시그널링하는 플래그 (rcomp).
· 페어드 엔드인 경우에, 메이트 페어에 대한 거리 (pair).
· 가변적 길이 리드를 생성하는 시퀀싱 기술인 경우에, 리드 길이의 값(len). 일정한 리드 길이인 경우에, 각 리드에 연관된 리드 길이는 자명하게 생략될 수 있고, 메인 파일 헤더 (main file header)에 저장될 수 있다.
· 각각의 미스매치에 대해서:
Figure pct00006
미스매치 위치 (클래스 N에 대해서 nmis, 클래스 M에 대해서 snpp, 및 클래스 I에 대해서 indp)
Figure pct00007
미스매치 유형(클래스 N에는 존재하지 않고, 클래스 M에서 snpt , 클래스 I에서 indt)
· 다음과 같은 서열 리드의 특정한 특징을 나타내는 플래그
Figure pct00008
시퀀싱에서 다중 세그먼트를 갖는 주형
Figure pct00009
얼라이너에 따라서 적절하게 정렬된 각각의 세그먼트
Figure pct00010
매핑되지 않은 세그먼트
Figure pct00011
매핑되지 않은 주형에서 다음 세그먼트
Figure pct00012
처음 또는 마지막 세그먼트의 시그널화(signalization)
Figure pct00013
품질 관리 실패
Figure pct00014
PCR 또는 광학적 복제물
Figure pct00015
이차 정렬
Figure pct00016
추가 정렬
· 존재하는 경우에, 소프트 클리핑된 뉴클레오티드 스트링 (클래스 I에서 indc)
· 입수 가능한 경우에, 정렬 및 압축에 이용된 참조(예, 클래스 U에 대한 "내부" 참조)를 나타내는 플래그 (디스크립터 rtype)
· 클래스 U의 경우, 디스크립터 indc는 지정된 매칭 정확성 제약조건의 세트로 "내부" 참조와 매칭되지 않는 리드의 일부(통상적으로, 가장자리)를 식별한다.
· 디스크립터 ureads는 이미-존재하는 참조 서열 (즉, 실제 참조 게놈과 같은, "외부") 또는 "내부" 참조 서열인, 임의의 입수 가능한 참조에 매핑될 수 없는 축어적 리드(verbatim read)의 인코딩에 이용된다.
분류는 게놈 서열 리드를 단일 의미(univocally)로 표현하는 데 이용될 수 있는 디스크립터(descriptor)의 그룹을 생성한다. 아래의 표는 "외부" (즉, "이미-존재하는")서열 또는 "내부" (즉, "제작된")참조로 정렬된 리드의 각 클래스에 필요한 디스크립터를 요약한 것이다.
[표 2 - 데이터의 클래스 당 정의된 디스크립터 블록]
Figure pct00017
클래스 P에 속하는 리드는 특성화되고, 위치, 역상보 정보(reverse complement information) 및 메이트 사이의 오프셋(offset) - 이들이 메이티드 페어(mated pair), 일부 플래그 및 리드 길이를 수득하는, 시퀀싱 기술에 의해 수득된 경우 - 에 의해서만 완전히 복원될 수 있다.
다음 섹션은 이들 디스크립터들이 클래스 P, N, M 및 I에 대해서 어떻게 정의되는 지에 대해서 더 상술하며, 클래스 U는 다음 섹션에서 기술된다.
클래스 HM은 리드 페어에만 적용되고, 이는 한 리드는 클래스 P, N, M 또는 I에 속하고, 다른 리드는 클래스 U에 속하는 특정한 경우이다.
위치 디스크립터
위치 (pos) 블록에서, 첫번째 인코딩된 리드의 매핑 위치만 참조 서열상의 절댓값으로서 저장된다. 모든 다른 위치 디스크립터는 이전이 위치에 대해서 차이점을 표현하는 값을 추정한다. 리드 위치 디스크립터의 서열에 의해 정의된 정보 소스(information source)의 이러한 모델링은 일반적으로, 특히, 고 커버리지 결과(high coverage result)를 생성하는 시퀀싱 프로세스에 대한 감소된 엔트로피를 특징으로한다.
예를 들어, 도 1은 첫번째 정렬의 시작 위치를 참조 서열상의 위치 "10000"으로서 기술한 후에, 어떻게 위치 10180에서 시작하는 두번째 리드의 위치가 "180"으로서 기술되는지에 대해서 나타낸다. 고 커버리지 (> 50x)의 경우에는, 위치 벡터의 디스크립터 대부분은 0 및 1과 같은 낮은 값 및 다른 작은 정수의 매우 높은 발생(occurrence)을 나타낸다.
도 1은 3쌍의 리드 페어의 위치가 pos 블록에서 어떻게 기술되는가에 대해서 나타낸다.
역상보 디스크립터 (Reverse complement descriptor)
시퀀싱 기술에 의해 생성된 리드 페어의 각 리드는 시퀀싱된 유기체 샘플의 양쪽 게놈 가닥으로부터 비롯될 수 있다. 그러나, 두 가닥 중 단 한 가닥만 참조 서열로서 이용된다. 도 2는 리드 페어에서, 한 리드 (리드 1)가 어떻게 한 가닥으로부터 비롯될 수 있고, 다른 리드 (리드 2)가 어떻게 다른 가닥으로부터 비롯될 수 있는지에 대해서 나타낸다.
가닥 1이 참조 서열로서 이용되는 경우에, 리드 2는 가닥 1상에서, 대응하는 단편의 역상보로서 인코딩될 수 있다. 이는 도 3에 나타낸다.
커플링된 리드(coupled read)인 경우에, 직접적이고 역상보적인 메이트 페어(direct and reverse complement mate pair)의 가능한 조합은 4가지이다. 이는 도 4에 나타낸다. rcomp 블록은 4가지 가능한 조합을 인코딩한다. 동일한 인코딩이 클래스 N, M, P 및 I에 속하는 리드의 역상보 정보에 이용된다. 상이한 데이터 클래스에 선택적 액세스가 가능하게 하기 위해, 4가지 클래스에 속하는 리드의 역상보 정보는 표 2에서 서술된 상이한 블록에서 인코딩된다.
페어링 정보 디스크립터
페어링 디스크립터(pairing descriptor)는 pair 블록에 저장된다. 이용된 시퀀싱 기술이 리드 바이 페어(read by pair)를 생성하는 경우에, 이러한 블록은 본래의 리드 페어의 복원에 필요한 정보를 인코딩하는 디스크립터를 저장한다. 본 발명의 개시의 데이터에서, 시퀀싱 데이터의 대부분이 페어드 리드를 생성하는 기술을 이용함으로써 생성된 것이나, 이는 모든 기술에 대한 경우는 아니다. 이 사실은, 고려된 게놈 데이터의 시퀀싱 기술이 페어드 리드 정보를 생성하지 않는 경우에, 이 블록의 존재가 모든 시퀀싱 데이터 정보의 복원에 필요한 것이 아닌 이유이다.
정의:
· 메이트 페어 (mate pair): 리드 페어에서, 다른 리드와 연관된 리드 (예, 일전의 예시에서, 리드 2는 리드 1의 메이트 페어이다)
· 페어링 거리(paring distance): 제2 리드의 한 위치(예, 제2 리드의 첫번째 뉴클레오티드)로부터 제1 리드 내 한 위치[페어링 앵커(pairing anchor), 예, 제1 리드의 마지막 뉴클레오티드]를 분리하는, 참조 서열상의 뉴클레오티드 위치의 수.
· 최확 페어링 거리( most probable pairing distance, MPPD ): 이는 뉴클레오티드 위치의 수로 표현된, 최확 페어링 거리이다.
· 위치 페어링 거리 ( position pairing distance, PPD ): PPD는 한 리드를 특정한 위치 디스크립터 블록에 존재하는 이의 각각의 메이트로부터 분리하는 리드의 수의 관점에서, 페어링 거리를 표현하는 방식이다.
· 최확 위치 페어링 거리 ( most probable position pairing distance, MPPPD): 한 리드를 특정한 디스크립터 블록에 존재하는 이의 메이트 페어로부터 분리하는 리드의 최확 수(most probable number)이다.
· 위치 페어링 오류 ( position pairing error, PPE ): MPPD 또는 MPPPD와 메이트의 실제 위치 사이의 차이로서 정의된다.
· 페어링 앵커( pairing anchor): 뉴클레오티드 위치의 수 또는 리드 위치의 수의 관점에서, 메이트 페어의 거리를 계산하기 위해, 참조로서 이용된 페어 내 제1 리드 내 마지막 뉴클레오티드의 위치.
도 5는 리드 페어중에서 페어링 거리가 어떻게 계산되는지에 대해서 나타낸다.
pair 디스크립터 블록은 정의된 디코딩 페어링 거리(decoding pairing distance)에 대해서, 페어의 제1 리드의 메이트 페어에 도달하기 위해 스킵될 리드의 수로서 계산되는 페어링 오류의 벡터이다.
도 6은 페어링 오류가 어떻게 절댓값과 차등 벡터 (differential vector) (커버리지가 높을수록, 낮은 엔트로피를 특징으로 함)로서 계산되는지에 대한 예시를 나타낸다.
동일한 디스크립터가 클래스 N, M, P 및 I에 속하는 리드의 페어링 정보에 이용된다. 상이한 데이터 클래스에 선택적 액세스가 가능하게 하기 위해서, 4가지 클래스에 속하는 리드의 페어링 정보는 표 8 (클래스 N), 도 10, 12 및 14 (클래스 M), 및 도 15 및 16 (클래스 I)에서 서술되는 상이한 블록에서 인코딩된다.
상이한 참조 서열에 대해서 매핑된 리드인 경우의 페어링 정보
참조 서열에 대한 매핑 서열 리드의 프로세스에서, 하나의 참조 서열(예, 염색체 1)에 대해 매핑된 페어에서 제1 리드를 갖고, 상이한 참조 서열 (예, 염색체 4)에 대해서 제2 리드를 갖는 것은 통상적이지 않다. 이 경우에, 상기 기술된 페어링 정보는 리드 중 하나를 매핑하는 데 이용된 참조 서열에 관련된 추가의 정보에 의해 통합되어야 한다. 이는 하기를 코딩함으로써 달성된다:
1. 페어가 두 개의 상이한 서열에 매핑된 것을 나타내는 보존된 값(플래그) (상이한 값이 리드 1 또는 리드 2가 현재 인코딩되지 않은 서열에 대해서 매핑되는지에 대해서 나타냄)
2. 표 1에 기술된, 메인 헤더 구조에서 인코딩된 참조 식별자를 참조하는 고유 참조 식별자
3. 세 번째 요소는 항목 2에서 식별되고, 마지막 인코딩된 위치에 대한 오프셋(offset)으로 표현되는, 참조에 대한 매핑 정보를 포함한다.
도 7은 이 시나리오의 예시를 제공한다.
도 7에서, 리드 4가 현재 인코딩된 참조 서열에 대해서 매핑되지 않기 때문에, 게놈 인코더는 pair 블록에서 추가의 디스크립터를 크래프팅(crafting)함으로써, 이 정보를 시그널링한다. 아래에 나타낸 예시에서, 현재 인코딩된 참조는 1번인 반면에, 페어 2의 리드 4는 4번 참조 서열에 대해서 매핑된다. 이 정보는 3개의 구성요소를 이용하여 인코딩된다:
1) 하나의 특정한, 보존된 값은 페어링 거리로서 인코딩된다 (이 경우에, 0xffffff임).
2) 두 번째 디스크립터는 메인 헤더에 리스팅(listing)된 reference ID를 제공한다 (이 경우에, 4임).
3) 세 번째 요소는 관련된 참조에 대한 매핑 정보를 포함한다 (170).
클래스 N 리드에 대한 미스매치 디스크립터
클래스 N은 "n 형" 미스매치만 존재하고, A, C, G 또는 T 염기의 위치에서 N이 호출된 염기 (called base)로서 발견되는 모든 리드를 포함한다. 리드의 모든 다른 염기들은 참조 서열에 완벽히 매칭된다.
도 8은:
리드 1에서 "N"의 위치가 어떻게 하기로서 인코딩되는지에 대해서 나타내고:
· 리드 1 내 절대 위치(absolute position) 또는
· 동일한 리드 내 이전의 "N"에 대한 차등 위치(differential position)
리드 2에서 "N"의 위치가 어떻게 하기로서 인코딩되는지에 대해서 나타낸다:
· 리드 2 내 절대 위치 + 리드 1 길이 또는
· 이전의 N에 대한 차등 위치
nmis 블록에서, 각각의 리드 페어의 코딩은 특정한 "구분자" 기호에 의해 종결된다.
치환 (미스매치 또는 SNP), 삽입 및 결실을 코딩하는 디스크립터
치환은 동일한 위치에서 참조 서열에 존재하는 염기에 대한, 상이한 뉴클레오티드 염기의 매핑된 리드 내 존재로서 정의된다.
도 9는 매핑된 리드 페어에서 치환의 예시를 나타낸다. 각각의 치환은 "위치" (snpp 블록) 및 "유형" (snpt 블록)으로서 인코딩된다. 치환, 삽입 또는 결실의 통계적인 발생(statistical occurrence)에 따라서, 연관된 디스크립터의 상이한 소스 모델이 정의될 수 있고, 생성된 기호가 연관된 블록에 코딩되었다.
소스 모델 1: 위치 및 유형으로서 치환
치환 위치 디스크립터
치환 위치는 nmis 블록의 값과 같이 계산된다. 즉,
리드 1에서, 치환은 하기로서 인코딩된다:
· 리드 1 내 절대 위치 또는
· 동일한 리드에서 이전의 치환에 대한 차등 위치
리드 2에서, 치환은 하기로서 인코딩된다:
· 리드 2 내 절대 위치 + 리드 1 길이 또는
· 이전의 치환에 대한 차등 위치
도 10은 치환(이 치환에서, 주어진 매핑 위치에서, 리드 내 기호가 참조 서열 내 기호와 상이함)이 하기로서 어떻게 인코딩되는지에 대해서 나타낸다:
1. 하기에 대한 미스매치의 위치
· 리드의 시작 (beginning) 또는
· 이전의 미스매치 (차등 인코딩)
2. 도 10에 기술된 바와 같이 계산된 코드로서 표현된 미스매치의 유형
snpp 블록에서, 각각의 리드 페어의 코딩은 특정한 "구분자" 기호에 의해 종결된다.
치환 유형 디스크립터
클래스 M (및 다음 섹션에서 기술되는 I)에 대해서, 미스매치는 인덱스에 의해 (오른쪽으로부터 왼쪽으로 이동하며) 참조에 존재하는 실제 기호로부터 리드에 존재하는 대응하는 치환 기호{A, C, G, T, N, Z}로 코딩된다. 예를 들어, 정렬된 리드가 참조 내 동일한 위치에 존재하는 T 대신에 C를 나타내는 경우에, 미스매치 인덱스는 "4"로 표시될 것이다. 디코딩 프로세스는 인코딩된 디스크립터, 참조 서열상의 주어진 위치의 뉴클레오티드를 리딩(reading)하고, 왼쪽으로부터 오른쪽으로 이동하여 디코딩된 기호를 검색한다(retrieving). 예를 들어, G가 참조에 존재하는 위치에 수신된 "2"는 "N"으로서 디코딩될 것이다. 도 11은 모든 가능한 치환 및 각각의 인코딩 기호를 나타낸다. 자명하게 상이한 컨텍스트 적응 확률 모델(Obviously different and context adaptive probability model)은 각각의 데이터 클래스에 대한 각각의 치환 유형의 통계적 특성에 따라서 각각의 치환 인덱스에 할당되어, 디스크립터의 엔트로피를 최소화할 수 있다.
IUPAC 다의성 코드를 채택하는 경우에, 치환 메커니즘은 정확히 같을 것이나, 치환 벡터는 S = {A, C, G, T, N, Z, M, R, W, S, Y, K, V, H, D, B}로서 확장된다.
도 12는 snpt 블록에서 치환 유형을 인코딩하는 예시를 제공한다.
IUPAC 다의성 코드가 채택되는 경우에, 치환 인코딩의 예시가 도 13에 제공된다. 치환 인덱스의 추가 예시가 도 14에 제공된다.
삽입 및 결실의 인코딩
클래스 I에 대해서, 미스매치 및 결실은 인덱스에 의해 (오른쪽으로부터 왼쪽으로 이동하며) 참조에 존재하는 실제 기호로부터 리드에 존재하는 대응하는 치환 기호{A, C, G, T, N, Z}로 코딩된다. 예를 들어, 정렬된 리드가 참조 서열 내 동일한 위치에 존재하는 T 대신에 C를 나타내는 경우에, 미스매치 인덱스는 "4"일 것이다. "A"가 참조에 존재하는 결실을 리드가 나타내는 경우에, 코딩된 기호는 "5"일 것이다. 디코딩 프로세스는 코딩된 디스크립터, 참조상의 주어진 위치에서의 뉴클레오티드를 리딩하고, 왼쪽으로부터 오른쪽으로 이동하여 디코딩된 기호를 검색한다. 예를 들어, G가 참조에 존재하는 위치에 수신된 "3"은 "Z"로서 디코딩될 것이다.
삽입은 삽입된 A에 대해서 6, 삽입된 C에 대해서 7, 삽입된 G에 대해서 8, 삽입된 T에 대해서 9, 및 삽입된 N에 대해서 10으로서 코딩된다.
도 15는 클래스 I의 리드 페어에서, 치환, 삽입 및 결실을 어떻게 인코딩하는지에 대한 예시를 나타낸다. IUPAC 다의성 코드의 전체 세트를 지원하기 위해, 치환 벡터 S= {A, C, G, T, N, Z}는 미스매치에 대한 이전의 문단에 기술된 S = {A, C, G, T, N, Z, M, R, W, S, Y, K, V, H, D, B}으로 대체될 것이다. 이 경우, 삽입 코드는 치환 벡터가 16개의 요소를 갖는 경우에, 상이한 값, 즉, 16, 17, 18, 19, 20을 가질 필요가 있다. 메커니즘은 도 16에서 도시된다.
소스 모델 2: 인델 및 치환 유형 당 하나의 블록
일부 데이터 통계(data statistics)에 대해서, 이전의 섹션에 기술된 것과 상이한 코딩 모델이 치환 및 인델에 대해서 발달할 수 있고, 이는 더 낮은 엔트로피를 갖는 소스로 야기한다. 이러한 코딩 모델은 미스매치에만, 및 미스매치와 인델에 대한 상기 기술된 기법에 대한 대안이다.
이 경우에, 결실에 대한 하나의 블록 및 삽입에 대한 4개보다 많은 블록뿐만 아니라, 각각의 가능한 치환 기호(IUPAC 코드를 이용하지 않는 경우에 5개, IUPAC 코드를 이용하는 경우에 16개)에 대해서 하나의 데이터 블록이 정의된다. 설명의 편의를 위해, 다음의 기술은 지원되는 IUPAC 코드가 존재하지 않는 경우에 초점을 맞출 것이나, 이는 모델의 적용에 대한 한정으로서 간주되어서는 안된다.
도 17은 각 블록이 단일 유형의 미스매치 또는 삽입의 위치를 어떻게 포함하는지에 대해서 나타낸다. 미스매치 또는 삽입 - 이의 유형이 인코딩된 리드 페어에 존재하는 - 이 존재하지 않는 경우에, 0은 대응하는 블록에서 인코딩된다. 디코더가 이 섹션에 기술된 블록에 대한 디코딩 프로세스를 시작하게 하기 위해, 각 액세스 유닛의 헤더는 디코딩될 첫번째 블록을 시그널링하는 플래그를 포함한다. 도 18의 예시에서, 디코딩될 첫번재 요소는 C 블록 내 위치 2이다. 주어진 유형의 미스매치 또는 인델이 리드 페어에 존재하지 않는 경우에, 0이 대응하는 블록에 추가된다. 디코딩 측(decoding side)에서, 각 블록에 대한 디코딩 포인터(decoding pointer)가 0의 값을 포인팅하는 경우에, 디코딩 프로세스는 다음 리드 페어로 이동한다.
추가 시그널링 플래그의 인코딩
상기에 소개된 각 데이터 클래스 (P, M, N, I)는 인코딩된 리드의 본질에 대한 추가의 정보를 인코딩하는 것을 필요로 할 수 있다. 이 정보는, 예를 들어, 시퀀싱 실험 [예, 한 리드의 복제(duplication)의 확률을 나타냄]에 관련될 수 있거나, 또는 리드 매핑의 일부 특징(페어를 이루는 제1 또는 제2)을 표현할 수 있다. 본 발명의 맥락에서, 이 정보는 각각의 데이터 클래스에 대한 별도의 블록에서 인코딩된다. 이러한 접근법의 주요 이점은 필요할 경우에만, 그리고 요구되는 참조 서열 영역에서만 이 정보에 선택적으로 액세스하는 것이 가능하다는 것이다. 이러한 플래그의 이용의 다른 예시는 다음과 같다:
· 페어링된 리드
· 적절한 페어로 매핑된 리드
· 매핑되지 않은 리드 또는 메이트
· 역방향 가닥(reverse strand)으로부터 비롯된 리드 또는 메이트
· 페어를 이루는 제1 /제2
· 1차 정렬이 아님
· 플랫폼/벤더 품질 확인(platform/vendor quality check)을 통과하지 못한 리드
· 리드가 PCR 복제물 또는 광학적 복제물임
· 추가 정렬 (supplementary alignment)
"클래스 U" 및 "클래스 HM "의 매핑되지 않은 리드에 대한 "내부" 참조의 제작 및 클래스 U에 대한 디스크립터
"클래스 HM"의 매핑되지 않은 페어 또는 클래스 U에 속하는 리드인 경우에, 이들은 클래스 P, N, M, 또는 I 중 임의의 클래스에 속하기 위한, 지정된 매칭 정확성 제약조건의 세트를 충족시키는, 임의의 "외부" 참조 서열에 매핑될 수 없으므로, 하나 이상의 "내부" 참조 서열이 "제작"되고, 이들 데이터 클래스에 속하는 리드의 압축된 표현에 이용된다.
몇몇 접근법들은 예를 들어, 다음과 같은 적절한 "내부" 참조를 제작하는 것이 가능하나, 이에 한정되는 것은 아니다:
· 적어도 최소 크기의 공통의 인접한 게놈 서열(시그니처)을 공유하는 리드를 포함하는, 클러스터로 매핑되지 않은 리드의 분할. 각 클러스터는 이의 시그니처에 의해 고유하게 식별될 수 있으며, 이를 도 22에 나타냈다.
· 임의의 의미 있는 순서(예, 사전식 순서)로 리드의 정렬(sorting), 및 마지막 N 리드를 N+1의 인코딩을 위한 "내부" 참조로 이용. 이 방법은 도 23에 나타냈다.
· 이른바, "디-노보 어셈블리 (de-novo assembly)"를 클래스 U의 리드의 부분 집합에 대해서 수행하여, 지정된 매칭 정확성 제약조건 또는 새로운 제약조건 세트에 따라서, 상기 클래스에 속하는 리드의 전부 또는 관련 부분-집합을 정렬 및 인코딩할 수 있도록 함.
코딩되는 리드가 지정된 매칭 정확성 제약조건의 세트를 충족하는 "내부" 참조에 대해서 매핑될 수 있는 경우에, 압축 후에 리드의 복원에 필요한 정보는 다음의 유형일 수 있는 디스크립터를 이용하여 코딩된다:
1. 내부 참조에서의 리드 수의 관점에서, 내부 참조상의 매칭 부분의 시작 위치 (pos 블록). 이 위치는 이전에 인코딩된 리드에 대한 절댓값 또는 차등값으로서 인코딩될 수 있다.
2. 내부 참조에서의 대응하는 리드의 시작으로부터, 시작 위치의 오프셋 (pair 블록). 예를 들어, 일정한 리드 길이인 경우에, 실제 위치는 "pos * 길이 + pair"이다.
3. 미스매치 위치 (snpp 블록) 및 유형 (snpt 블록)으로서 코딩된 미스매치를 가능하게 표현함.
4. 내부 참조와 매칭하지 않는(또는 매칭되나, 정의된 임계치를 초과하는 미스매치의 수를 갖는) 리드의 이들 부분 [통상적으로, 페어에 의해 식별된 가장자리(edge)]은 indc 블록에서 인코딩된다. 패딩 작업(padding operation)이 내부 참조의 일부의 가장자리에 수행되어, indc 블록에서 인코딩된 미스매치의 엔트로피를 감소시키는 데 이용될 수 있으며, 이는 도 24에 나타냈다. 가장 적합한 패딩 전략은 프로세싱되는 게놈 데이터의 통계적인 특성에 따라서 인코더에 의해 선택될 수 있다. 가능한 패딩 전략은 다음을 포함한다:
a. 패딩을 이용하지 않음
b. 현재 인코딩된 데이터에서 이의 빈도에 따라서 선택된, 일정한 패딩 패턴(constant padding pattern)
c. 마지막 N 인코딩된 리드의 관점에서 정의된, 현재 컨텍스트의 통계적인 특성에 따른 가변 패딩 패턴
패딩 전략의 특정한 유형은 indc 블록 헤더에서 특정한 값에 의해 시그널링될 것이다.
5. 리드가 자가-생성된(self-generated) 내부, 외부 참조를 이용하거나, 또는 참조를 이용하지 않고 인코딩되었는지에 대해서 나타내는 플래그 (rtype 블록)
6. 축어적으로(verbatim) 인코딩된 리드 (ureads)
도 24는 이러한 코딩 절차의 예시를 제공한다.
도 25는 pos + pair 디스크립터가 부호화된 pos에 의해 대체되는, 내부 참조에 대해서 매핑되지 않은 리드의 대안적인 인코딩을 나타낸다. 이 경우에, pos는 리드 n-1의 가장 왼쪽 뉴클레오티드 위치에 대해서, 리드 n의 가장 왼쪽의 뉴클레오티드 위치의 거리를 - 참조 서열상의 위치의 관점에서 - 표현할 것이다.
가변 길이를 표현하는 클래스 U의 리드인 경우에, 추가 디스크립터 rlen이 각 리드 길이의 저장에 이용된다.
이 코딩 접근법은 리드가 2개 이상의 참조 위치에 대해서 나뉠 수 있도록, 리드 당 N 시작 위치를 지원하도록 확장될 수 있다. 이는 특히, 대개 시퀀싱 방법론에서 루프(loop)에 의해 생성된 반복된 패턴을 표현하는 매우 긴 리드 (50K+ 염기)를 생산하는 시퀀싱 기술(예, Pacific Bioscience)에 의해 생성된 리드의 인코딩에 유용할 수 있다. 동일한 접근법은 또한, 거의 중첩되지 않았거나, 또는 중첩되지 않은 게놈의 두 개의 별개의 부분을 정렬하는 리드로서 정의된, 키메라 서열 리드(chimeric sequence read)의 인코딩에 이용될 수 있다.
상기 기술된 접근법은 분명히 단순 클래스 U를 넘어서 적용될 수 있고, 리드 위치에 관련된 디스크립터를 포함하는 임의의 블록(pos 블록)에 적용될 수 있다.
정렬 점수 디스크립터
mscore 디스크립터는 정렬 당 점수를 제공한다. 본 발명의 맥락에서, 이는 게놈 서열 리드 얼라이너에 의해 생성된 리드 당 매핑/정렬 점수를 표현하는 데 이용된다.
점수는 지수부(exponent part)와 소수부(fractional part)를 이용하여 표현된다. 지수부와 소수부의 표현에 이용된 비트의 수는 구성 파라미터로서 전송된다. 예시로서, 표 2는 이것이 IEEE RFC 754에서, 11-비트의 지수부 및 52-비트 소수부에 어떻게 지정되는지에 대해서 나타내나, 이에 한정되는 것은 아니다.
각 정렬의 점수는 하기에 의해 표현될 수 있다:
· 하나의 부호 비트 (S)
· 지수부(E)에 대한 11 비트
· 가수(mantissa)(M)에 대한 53 비트
[표 2. 정렬 점수는 64-비트 배정밀도 부동 소수점 값(64-bit double precision floating point value)으로 표현될 수 있다]
Figure pct00018
점수의 계산에 이용될 염기 [기수(radix)]가 10이므로, 점수는 하기 식 5와 같이 계산된다:
[식 5]
점수 = -1 s x 10 E x M
리드 그룹
시퀀싱 프로세스 동안에, 상이한 유형의 시퀀싱된 리드가 생산될 수 있다. 예시로서, 유형은 상이한 시퀀싱된 샘플, 상이한 실험, 시퀀싱 기기의 상이한 구성에 관련될 수 있으나, 이에 한정되는 것은 아니다. 시퀀싱 및 정렬 후에, 이 정보는 본 발명에 따라서 rgroup이라고 명명된 전용 디스크립터(dedicated descriptor)에 의해 보존된다. rgroup은 각각의 인코딩된 리드에 연관된 레이블(label)이고, 디코딩 후에, 디코딩 장치가 디코딩된 리드를 그룹에 분할하는 것을 가능하게 한다.
다중 정렬에 대한 디스크립터
다음 디스크립터들은 다중 정렬의 지원에 대해서 지정된다. 스플라이싱된 리드가 존재하는 경우에, 본 발명은 글로벌 플래그 (global flag)인, spliced_reads_flag가 1에 설정되도록 정의한다.
mmap 디스크립터
mmap 디스크립터는 페어의 가장 왼쪽의 리드 또는 리드가 얼마나 많은 위치에서 정렬되었는지에 대해서 시그널링하는 데 이용된다. 다중 정렬을 포함하는 게놈 레코드는 하나의 다중-바이트(multi-byte) mmap 디스크립터와 연관된다. mmap 디스크립터의 처음 두 바이트는 부호화되지 않은 정수 N - 리드를 단일 세그먼트로서 참조하거나 (인코딩된 데이터 세트에 스플라이싱이 존재하지 않는 경우), 또는 대신에, 리드가 몇몇 가능한 정렬들에 대해서 스플라이싱된 모든 세그먼트를 참조하는(데이터 세트에 스플라이싱이 존재하는 경우) - 을 표현한다. N의 값은 얼마나 많은 pos 디스크립터의 값이 이 레코드 내 주형에 대해서 코딩되었는지를 말한다. N에 이어서 하나 이상의 부호화되지 않은 정수 Mi가 존재하며, 이는 아래에 기술되어 있다.
다중 정렬 스트랜디드니스 (Multiple alignments strandedness )
본 발명에 기술된 rcomp 디스크립터는 본 발명에서 지정된 신택스를 이용하여 각 리드 정렬의 스트랜디드니스를 지정하는 데 이용된다.
다중 정렬의 점수
다중 정렬인 경우에, 본 발명에 지정된 하나의 mscore는 각 정렬에 할당된다.
스플라이싱이 없는 다중 정렬
액세스 유닛에 스플라이싱이 존재하지 않는 경우에, spliced_reads_flag는 설정되지 않는다.
페어드-엔드 시퀀싱에서, mmap 디스크립터는 16-비트의 부호화되지 않은 정수 N에 이어서, 하나 이상의 8-비트의 부호화되지 않은 정수 Mi으로 구성되는데, i는 값을 1 내지 완전한 제1 (본원에서, 가장 왼쪽의) 리드 정렬의 수로 추정한다. 스플라이싱되거나 또는 그렇지 않은, 각각의 제1 리드 정렬에 대해서, Mi는 얼마나 많은 세그먼트가 제2 리드의 정렬에 이용되는지 (이 경우에, 스플라이싱이 없으면, 이는 정렬의 수와 동일함), 그런 다음에 pair 디스크립터의 얼마나 많은 값이 제1 리드의 이 정렬에 대해 코딩되는지에 대해서 시그널링 하는데 이용된다.
Mi의 값은 제2 리드의 정렬의 수를 나타내는,
Figure pct00019
의 계산에 이용될 것이다.
Figure pct00020
의 특정 값은 가장 왼쪽 리드의 i번째 정렬이 이미 가장 왼쪽 리드의 k번째 정렬과 페어링된 가장 오른쪽 리드의 정렬과 페어링되는 것을 나타내는데, 여기서, k < i이다 (그러면, 상기 방정식에 부합하는, 검출된 새로운 정렬이 존재하지 않음).
예시로서, 가장 간단한 경우에서:
1. 가장 왼쪽의 리드에 대한 단일 정렬과 가장 오른쪽에 대한 2개의 대안적인 정렬이 존재한다면, N은 1일 것이고, M1은 2일 것이다.
2. 2개의 대안적인 정렬이 가장 왼쪽의 리드에 대해서 검출되나, 가장 오른쪽에 대해서는 하나만 검출된다면, N은 2일 것이고, M1은 1일 것이며, M2는 0일 것이다.
Mi가 0인 경우에, pair의 연관된 값은 기존의 제2 리드 정렬에 연관될 것이고; 그렇지 않다면, 신택스 오류가 발생할 것이며, 정렬이 중단된 것(broken)으로 고려된다.
예시: 제1 리드가 두 개의 매핑 위치를 가지며, 제2 리드가 단 하나의 매핑 위치만을 가진다면, 일전에 서술한 대로 N은 2이고, M1은 1이며, M2는 0이다. 이것이 전체 주형에 대한, 다른 대안적인 2차 매핑 전이라면, N은 3일 것이고, M3은 1일 것이다.
도 39는 스플라이싱이 없는 다중 정렬인 경우에, N, P 및 Mi의 의미를 도시하며, 도 40은 pos, pairmmap 디스크립터가 어떻게 다중 정렬 정보의 인코딩에 이용되는 지를 나타낸다.
도 40에 대하여, 다음을 적용한다:
· 가장 오른쪽의 리드는
Figure pct00021
개의 정렬을 갖는다.
· 이미 가장 왼쪽 리드의 k번째 정렬과 페어링된 가장 오른쪽 리드의 정렬과 가장 왼쪽 리드의 i번째 정렬이 페어링되는 경우에(k < i), M i 의 일부 값들은 = 0일 수 있다.
· pair 디스크립터의 하나의 보존된 값이 존재하여 다른 AU 범위에 속하는 단일 정렬을 시그널링할 수 있다. 존재하는 경우에, 이는 항상 현재 레코드에 대한 첫번째 pair 디스크립터이다.
스플라이싱이 존재하는 다중 정렬
데이터 세트가 스플라이싱된 리드와 인코딩되는 경우에, msar 디스크립터는 스트랜디드니스와 스플라이싱 길이의 표현을 가능하게 한다.
mmapmsar 디스크립터를 디코딩한 후에, 디코더는 얼마나 많은 리드 또는 리드 페어가 인코딩되어 다중 매핑을 표현하였고, 얼마나 많은 세그먼트가 각 리드 또는 리드 페어 매핑을 구성하는지를 알고 있다. 이는 도 41과 도 42에 나타냈다.
도 41과 관련하여, 다음을 적용한다:
· 가장 왼쪽의 리드는 N번의 스플라이싱이 있는 N1 정렬을 갖는다 (N1≤N).
· N은 가장 왼쪽의 리드의 모든 정렬에 존재하는 스플라이싱의 수를 나타내고, 이는 mmap 디스크립터의 제1 값으로서 인코딩된다.
· 가장 왼쪽 리드는
Figure pct00022
개의 스플라이싱을 갖는데, 이 식에서 M i 는 가장 왼쪽 리드의 i번째 정렬을 갖는 페어에 연관된 가장 오른쪽 리드의 스플라이싱의 수이다(1 ≤ i ≤ N1). 달리 말하면, P는 가장 오른쪽 리드의 스플라이싱의 수를 나타내며, mmap 디스크립터의 제1 값에 따라, N 값을 이용하여 계산된다.
· N1과 N2는 제1 리드와 제2 리드의 정렬의 수를 나타내고, msar 디스크립터의 N + P 값을 이용하여 계산된다.
도 42와 관련하여, 다음을 적용한다:
· 가장 왼쪽은 N번의 스플라이싱이 있는 N1 정렬을 갖는다 (N1 ≤ N). N1 = N이고 N2 = P인 경우에, 존재할 수 있는 스플라이싱은 없다.
· 가장 오른쪽 리드가
Figure pct00023
개의 스플라이싱 tj (1 ≤ j ≤ P) 및 N2 (N2 ≤ P) 정렬을 갖는다.
· pair 디스크립터의 수는 NP = Max(N1, P) + M0로 계산될 수 있고, 이 식에서:
Figure pct00024
M0는 값이 0인 Mi의 수이다.
Figure pct00025
하나의 특정한 pair 디스크립터가 다른 AU에서 정렬의 존재를 나타내는 경우에, NP는 1씩 증가되어야 한다.
정렬 점수
mscore 디스크립터는 정렬의 매핑 점수(mapping score)의 시그널링을 허용한다. 싱글-엔드 시퀀싱(single-end sequencing)에서, 이는 주형 당 N1 값을 가질 것이고; 페어드-엔드 시퀀싱(paired-end sequencing)에서, 이는 전체 주형의 각 정렬에 대한 값을 가질 것이다 (가능한, 제1 리드의 상이한 정렬의 수 + 추가의 제2 리드 정렬의 수, 즉, Mi - 1 > 0인 경우).
[식 6]
점수의 수 = MAX(N 1 , N 2 ) + M 0
상기 식 6에서, M0는 Mi = 0의 전체 수를 나타낸다.
각 정렬에 관련된 점수의 수는 본 명세서에 정의된, 인코딩 파라미터 as_depth에 의해 시그널링된다.
본 발명에서, 한 개보다 많은 점수 값이 각 정렬과 연관될 수 있다. 정렬의 수는 구성 파라미터 as_depth에 의해 시그널링된다.
스플라이싱이 없는 다중 정렬에 대한 디스크립터
[표 3. 스플라이싱이 없는 다중 정렬인 경우에 , 하나의 게놈 레코드에서 다중 정렬의 표현에 필요한 디스크립터의 수의 연산]
Figure pct00026
Figure pct00027
스플라이싱이 존재하는 다중 정렬에 대한 디스크립터
표 4는 스플라이싱이 존재하는 다중 정렬인 경우에, 하나의 게놈 레코드에서 다중 정렬을 표현하는 데 필요한 디스크립터의 수의 연산을 나타낸다.
[표 4. 다중 정렬 및 연관된 점수의 표현에 이용되는 디스크립터 ]
Figure pct00028
상이한 서열에 대한 다중 정렬
정렬 프로세스가 일차 매핑이 위치한 참조 서열보다 다른 참조 서열에 대한 대안적인 매핑을 찾는 것이 발생할 수 있다.
고유하게 정렬된 리드 페어에 대해서, 예를 들어, 다른 염색체상에 존재하는 메이트와의 키메라 정렬 (chimeric alignment)이 존재하는 경우에, pair 디스크립터는 절대 리드 위치(absolute read position)의 표현에 이용될 것이다. pair 디스크립터는 동일한 주형에 대한 추가의 정렬을 포함하는 다음 레코드의 위치 및 참조의 시그널링에 이용될 것이다. 마지막 레코드 (예, 대안적인 매핑이 3개의 상이한 AU에서 코딩되는 경우에, 3번째)는 첫번째 레코드의 위치와 참조를 포함할 것이다.
페어에서 가장 왼쪽의 리드에 대한 하나 이상의 정렬이 현재의 인코딩된 AU에 관련된 것과 상이한 참조 서열상에 존재하는 경우에, 보존된 값이 pair 디스크립터에 이용된다. 보존된 값은 다음 AU에 포함된 모든 것들 중 가장 왼쪽 정렬의 참조 서열 식별자 및 위치 앞에 존재한다 (즉, 그 레코드에 대한 pos 디스크립터의 첫번째 디코딩된 값).
삽입, 결실, 매핑되지 않은 부분이 존재하는 다중 정렬
대안적인 이차 매핑이 서열이 정렬된 참조 영역의 연속(contiguity)을 보존하지 않는 경우에, 실제 서열 (및 치환 또는 인델과 같은 미스매치에 관련된 디스크립터)이 일차 정렬에 대해서만 코딩되기 때문에, 얼라이너에 의해 생성된 정확한 매핑을 복원하는 것이 불가능할 수 있다. 이들이 인델 및/또는 소프트 클립을 포함하는 경우에, msar 디스크립터는 이차 정렬이 참조 서열에 대해서 어떻게 매핑할 것인지에 대해서 표현하는 데 이용될 것이다. msar이 이차 정렬에 대해서 특정한 기호 "*"로 표현되는 경우에, 디코더는 일차 정렬과 이차 정렬 매핑 위치로부터 이차 정렬을 복원할 것이다.
msar 디스크립터
msar (Multiple Segments Alignment Record) 디스크립터는 스플라이싱된 리드 및 인델 또는 소프트 클립을 포함하는 대안적인 이차 정렬을 지원한다.
msar은 다음에 대한 정보를 운반하도록 의도된다:
· 매핑된 세그먼트 길이
· 이차 정렬 및/또는 스플라이싱된 리드에 대한 상이한 매핑 연속성(mapping contiguity) (즉, 삽입, 결실 또는 클리핑된 염기의 존재)
아래에 기술된 확장된 시가 스트링 (CIGAR string)의 신택스뿐만 아니라, 표 5에서 기술되는 추가 기호가 msar에 이용된다.
[표 5. 표 6에서 기술되는 신택스 외에, msar 디스크립터에 이용되는 특정한 기호]
Figure pct00029
확장된 시가 신택스 (cigar syntax)
이 섹션은 확장된 시가 (extended CIGAR, E-CIGAR) 신택스를 서열 및 관련 미스매치, 인델, 클리핑된 염기 및 다중 정렬 및 스플라이싱된 리드에 대한 정보에 연관될 스트링에 지정한다.
본 발명에서 기술된 편집 작업(edit operation)이 표 6에서 열거된다.
[표 6. MPEG-G E-CIGAR 스트링의 신택스 ]
Figure pct00030
Figure pct00031
소스 모델, 엔트로피 코더 및 코딩 모드 (coding mode)
본 발명에 개시된, 게놈 데이터 구조의 각 데이터 클래스, 서브-클래스 및 연관된 디스크립터 블록에 대해서, 상이한 코딩 알고리즘이 각 블록 및 이의 통계적인 특성에 의해 전달되는, 데이터 또는 메타 데이터의 특정한 특징에 따라 채택될 수 있다. "코딩 알고리즘"은 특정한 "엔트로피 코더"와 디스크립터 블록의 특정한 "소스 모델"의 연관(association)으로서 의도되어야 한다. 특정한 "소스 모델"은 지정 및 선택되어, 소스 엔트로피 (source entropy)를 최소화하는 관점에서, 데이터의 가장 효율적인 코딩을 획득할 수 있다. 엔트로피 코더의 선택은 코딩 효율 고려사항 및/또는 확률 분포 특징 및 연관된 구현 쟁점(implementation issue)에 의할 수 있다. "코딩 모드"라고도 하는, 특정한 "코딩 알고리즘"의 각각의 선택은 전체 데이터 세트에 대한 데이터 클래스 또는 서브-클래스에 연관된 전제 "디스크립터 블록"에 적용될 수 있거나, 또는 상이한 "코딩 모드"가 액세스 유닛으로 분할된 디스크립터의 각 부분에 적용될 수 있다.
코딩 모드에 연관된, 각각의 "소스 모델"은 하기를 특징으로 한다:
· 각 소스에 의해 발행된 디스크립터의 정의 (즉, 표 2에서 정의된, 리드 위치, 리드 페어링 정보, 참조 서열에 대한 미스매치와 같은 데이터의 클래스를 표현하는 데 이용된 디스크립터의 세트)
· 연관된 확률 모델의 정의
· 연관된 엔트로피 코더의 정의
추가 이점
정의된 데이터 클래스 및 서브-클래스로의 서열 데이터의 분류는 단일의, 별도의 데이터 소스 (예, 거리, 위치 등)에 의한 디스크립터의 소스를 모델링하는 것을 특징으로 하는 더 낮은 정보 소스 엔트로피를 이용하는 효율적인 코딩 모드의 구현(implementation)을 허용한다.
본 발명의 다른 이점은 관심 있는 데이터의 유형의 부분 집합에만 액세스 하는 것이 가능한 것이다. 예를 들어, 유전체학(genomics)에서 가장 중요한 응용 중 하나는 참조 (SNV) 또는 집단 (SNP)에 대한 게놈 샘플의 차이점을 발견하는 것에 있다. 오늘날, 이러한 유형의 분석은 완전한 서열 리드의 프로세싱을 필요로 하는 반면, 본 발명에 의해 개시된 데이터 표현을 채택함으로써, 미스매치는 단지 한 개 내지 세 개의 데이터 클래스로 이미 분리된다 (또한, "n 형" 및 "i 형" 미스매치의 고려에 있어서, 관심사에 따라 다름).
추가 이점은 새로운 참조 서열이 공개되는 경우거나, 또는 재-매핑(re-mapping)이 이미 매핑된 데이터에 대해서 수행되는(예, 상이한 매핑 알고리즘을 이용하여), 새로운 정렬을 획득하는 경우에, 특정한 "외부" 참조 서열 내지 다른, 상이한 "외부" 참조 서열에 대해서 압축된 데이터 및 메타 데이터로부터 효율적인 트랜스 코딩(transcoding)을 수행하는 것이 가능한 것이다.
도 20은 본 발명의 원리에 따른 인코딩 장치 (207)를 나타낸다. 인코딩 장치 (207)는 인풋으로서, 예를 들어, 게놈 시퀀싱 장치 (200)에 의해 생성된, 로 서열(raw sequence) 데이터 (209)를 수신한다. Illumina사의 HiSeq 2500 또는 Thermo-Fisher사의 Ion Torrent 디바이스와 같은, 게놈 시퀀싱 장치(200)가 당해 분야에 공지되어 있다. 로 서열 데이터 (209)는 참조 서열 (2020)에 대해서 리드를 정렬함으로써, 서열을 인코딩에 대해 준비시키는, 얼라이너 유닛 (201)으로 입력된다. 대안적으로는, 전용 모듈 (202)이 이 문서의, <"클래스 U" 및 "클래스 HM"의 매핑되지 않은 리드에 대한 "내부" 참조의 제작> 섹션에서 기술된 상이한 전략을 이용함으로써, 참조 서열을 입수 가능한 리드로부터 생성하는 데 이용될 수 있다. 참조 생성부(202)에 의해 프로세싱된 후에, 리드는 획득된 더 긴 서열에 대해서 매핑될 수 있다. 그런 다음에, 정렬된 서열은 데이터 분류 모듈 (204)에 의해 분류된다. 그런 다음에, 참조 변환의 추가 단계가 참조에 적용되어, 데이터 분류 유닛 (204)에 의해 생성된 데이터의 엔트로피를 감소시킨다. 이는 외부 참조(2020)를 변환된 데이터 클래스(2018) 및 참조 변환 디스크립터(2021)를 생성하는 참조 변환 유닛(2019)으로 프로세싱하는 것을 함축한다(implying). 그런 다음에, 변환된 데이터 클래스(2018)는 참조 변환 디스크립터 (2021)와 함께, 블록 인코더 (205-207)로 입력된다. 그런 다음에, 게놈 블록(2011)은 블록에 의해 운반되는 데이터 또는 메타 데이터의 통계적인 특성에 따라서, 블록을 인코딩하는 산술 인코더(arithmetic encoder) (2012-2014)로 입력된다. 그 결과는 게놈 스트림(2015)이다.
도 21은 본 개시의 원리에 따른 디코딩 장치 (218)를 나타낸다. 디코딩 장치(218)는 다중화된 게놈 비트 스트림 (2110)을 네트워크 또는 저장 소자(storage element)로부터 수신한다. 다중화된 게놈 비트 스트림(2110)은 역다중화기(210)로 입력되어, 별도의 스트림(211)을 생성한 다음에, 이 스트림은 엔트로피 디코더 (212-214)로 입력되어, 게놈 블록(215) 및 참조 변환 디스크립터 (2112)를 생성한다. 추출된 게놈 블록은 블록 디코더(216-217)로 입력되서 블록을 데이터의 클래스로 추가로 디코딩하고, 참조 변환 디스크립터는 참조 변환 유닛(2113)으로 입력된다. 클래스 디코더 (219)는 게놈 디스크립터(2111) 및 변환된 참조(2114)를 추가로 프로세싱하고, 그 결과를 병합(merging)하여 압축되지 않은 서열의 리드를 생성한 다음에, 당해 분야에 공지된 형식, 예를 들어, 텍스트 파일 또는 zip 압축된 파일, 또는 FASTQ 또는 SAM/BAM 파일에 추가로 저장될 수 있다.
클래스 디코더(219)는 하나 이상의 게놈 스트림에 의해 운반되는 본래의 참조 서열에 대한 정보 및 인코딩된 비트 스트림에서 운반되는 참조 변환 디스크립터(2112)를 레버리징함으로써(leveraging) 본래의 게놈 서열을 복원하는 것이 가능하다. 참조 서열이 게놈 스트림에 의해 전송되지 않는 경우에, 이들은 디코딩 측에서 입수 가능해야 하고, 클래스 디코더에 의해 액세스 가능해야 한다.
본원에 개시된 본 발명의 기법은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에서 시행될 수 있다. 소프트웨어에서 시행되는 경우에, 이들은 컴퓨터 매체에 저장될 수 있고, 하드웨어 프로세싱 유닛에 의해 실행될 수 있다. 하드웨어 프로세싱 유닛은 하나 이상의 프로세서, 디지털 시그널 프로세서, 범용 마이크로 프로세서(general purpose microprocessor), 주문형 반도체 (application specific integrated circuit) 또는 다른 이산 논리 회로(discrete logic circuitry)를 포함할 수 있다.
본 개시의 기법은 핸드폰, 데스크탑 컴퓨터, 서버, 태블릿 및 비슷한 디바이스를 비롯한, 다양한 디바이스 또는 장치에서 시행될 수 있다.
파일 형식: 마스터 인덱스 테이블을 이용한, 게놈 데이터의 영역에 대한 선택적 액세스
정렬된 데이터의 특정 영역에 선택적 액세스를 지원하기 위해, 본 문서에 기술된 데이터 구조는 마스터 인덱스 테이블 (Master Index Table, MIT)이라고 하는 인덱싱 툴(indexing tool)을 구현한다. 이는 특정한 리드가 연관된 참조 서열에 매핑된, 유전자 자리 (locus)를 포함하는 다-차원 배열(multi-dimensional array)이다. 비-순차적 액세스(non-sequential access)가 각각의 액세스 유닛에 지원되도록, MIT에 포함된 값은 각 pos 블록에서 제1 리드의 매핑 위치이다. MIT는 데이터의 각 클래스(P, N, M, I, U 및 HM) 당, 및 각 참조 서열 당 하나의 섹션을 포함한다. MIT는 인코딩된 데이터의 게놈 데이터 세트 헤더에 포함된다. 도 31은 게놈 데이터 세트 헤더의 구조를 나타내고, 도 32는 MIT의 포괄적인 가시적 표현(generic visual representation)을 나타내며, 도 33은 인코딩된 리드의 클래스 P에 대한 MIT의 예시를 나타낸다.
도 33에서 묘사된 MIT에 포함된 값은 압축된 도메인 중 관심 있는 영역 (및 대응하는 AU)에 직접적으로 액세스하는 데 이용된다.
예를 들어, 도 33에 대해서, 참조 2 상의 위치 150,000과 250,000 사이에 포함된 영역에 액세스하는 것이 필요한 경우에, 디코딩 응용 프로그램(decoding application)은 MIT에서 두 번째 참조로 스킵(skip)할 것이고, k1 < 150,000 및 k2 > 250,000가 되도록, 두 개의 값 k1과 k2를 탐색할 것이다. k1과 k2가 2인 경우에, MIT로부터 리드를 인덱싱한다. 도 33의 예시에서, 이는 MIT의 두번째 벡터의 3번째 및 4번째 위치를 야기할 것이다. 그런 다음에, 이들 반환 값(returned value)이 디코딩 응용 프로그램에 의해 이용되어, 다음 섹션에서 기술되는 pos 블록 로컬 인덱스 테이블로부터 적절한 데이터의 위치를 페칭(fetching)한다.
상기 기술된 게놈 데이터의 4개의 클래스에 속하는 데이터를 포함하는 블록에 대한 포인터와 함께, MIT는 이의 라이프 사이클 동안에 게놈 데이터에 추가된, 추가의 메타 데이터 및/또는 주석의 인덱스로서 이용될 수 있다.
로컬 인덱스 테이블 (local index table)
각각의 게놈 데이터 블록 앞에 로컬 헤더(local header) 로서 참조되는 데이터 구조가 위치한다. 로컬 헤더는 블록의 고유 식별자, 각 참조 서열 당 액세스 유닛 계수기의 벡터, 로컬 인덱스 테이블 (Local Index Table, LIT)을 포함하고, 선택적으로는, 일부 블록 특이적 메타 데이터(block specific metadata)를 포함한다. LIT는 블록 페이로드에서 각 액세스 유닛에 속하는 데이터의 물리적인 위치에 대한 포인터의 벡터이다. 도 34는 LIT가 비-순차적인 방식으로 인코딩된 데이터의 특정한 영역에 액세스하는 데 이용된, 포괄적인 블록 헤더 및 페이로드를 묘사한다.
이전의 예시에서, 2번 참조 서열에 대해서 정렬된 리드의 영역 150,000 내지 250,000에 액세스하기 위해, 디코딩 응용 프로그램은 MIT로부터 위치 3과 위치 4를 검색했다. 이들 값은 디코딩 프로세스에 의해 이용되어 LIT의 대응하는 섹션의 3번째 및 4번째 요소에 액세스할 것이다. 도 35에 나타낸 예시에서, 블록 헤더에 포함된 전체 액세스 유닛 계수기는 참조 1에 관련된, AU에 관련된 LIT 인덱스의 스킵에 이용된다 (예시에서, 5). 그러므로, 인코딩된 스트림에서 요청된 AU의 물리적 위치를 포함하는 인덱스는 다음과 같이 계산된다:
요청된 AU에 속하는 데이터 블록의 위치 = 스킵될 참조 1의 AU에 속하는 데이터 블록 + MIT를 이용하여 검색된 위치, 즉,
첫번째 블록 위치: 5 + 3 = 8
마지막 블록 위치: 5 + 4 = 9
로컬 인덱스 테이블이라고 하는 인덱싱 메커니즘을 이용하여 검색된 데이터의 블록은 요청된 액세스 유닛의 일부이다.
도 36은 MIT 테이블에 포함된 블록이 데이터의 각 클래스 또는 서브-클래스 당 LIT의 블록에 어떻게 대응하는지에 대해서 나타낸다.
도 37은 MIT 및 LIT를 이용하여 검색된 데이터 블록이 어떻게 하나 이상의 액세스 유닛 - 다음 섹션에서 정의된 - 을 구성하는지에 대해서 나타낸다.
본 발명의 양태에서, LIT는 MIT의 서브 구조로서 통합될 수 있다. 이러한 접근법의 이점은 압축된 파일의 순차적인 파싱(sequential parsing)인 경우에, 인덱싱된 데이터에 대한 액세스의 속도이다. LIT가 파일 헤더에서 MIT에 통합된 경우에, 디코딩 디바이스는 선택적 액세스인 경우에, 요청된 압축된 정보를 검색하기 위해서 데이터의 작은 부분만 파싱(parsing)할 필요가 있을 것이다. MIT와 LIT에 포함된 인덱싱 정보가 첫 번째 데이터 블록 중에서 전달될 것이므로, 전체 데이터 전송이 완료되기 전에, 수신 디바이스(receiving device)가 정렬 및 선택적 액세스와 같은 작업을 수행할 수 있도록 할 때, 네트워크상에서의 스트리밍인 경우에, 통상의 기술자에게 다른 이점은 분명하다.
액세스 유닛
데이터 클래스에 분류되고, 압축되거나 또는 압축되지 않은 블록에 구조화되는 게놈 데이터는 상이한 액세스 유닛으로 조직화된다.
게놈 시퀀싱 기기 및/또는 게놈 프로세싱 디바이스 또는 분석 응용프로그램에 의해 생성된 주석 데이터 및/또는 DNA/RNA의 서열 (예, 가상 참조(virtual reference)) 및/또는 관련 메타 데이터 및/또는 뉴클레오티드 서열을 복원하는, 게놈 데이터의 섹션(압축되거나 또는 압축되지 않은 형태)으로서, 게놈 액세스 유닛(AU)이 정의된다. 액세스 유닛의 예시는 도 37에서 제공된다.
액세스 유닛은 글로벌하게 입수 가능한 데이터(globally available data)만 이용함으로써 (예, 디코더 구성) 또는 다른 액세스 유닛에 포함된 정보를 이용함으로써, 다른 액세스 유닛으로부터 독립적으로 디코딩될 수 있는 데이터의 블록이다.
액세스 유닛은 하기에 의해 차등화된다:
· 이들이 운반하는 게놈 데이터 및 데이터 세트의 본질 및 이들이 액세스될 수 있는 방식을 특성화하는, 유형(type).
· 고유한 순서(unique oreder)를 동일한 유형에 속하는 액세스 유닛에 제공하는, 순서(order).
임의의 유형의 액세스 유닛은 상이한 "카테고리"로 더 분류될 수 있다.
이하에서, 게놈 액세스 유닛의 상이한 유형의 정의의 비-완전 목록(non-exhaustive list)이 이어진다:
1) 유형 0의 액세스 유닛은 액세스될, 또는 디코딩 및 액세스될 다른 액세스 유닛으로부터 비롯된 임의의 정보를 참조할 필요가 없다. 이들이 포함하는 데이터 또는 데이터 세트에 의해 운반된 전체 정보는 디코딩 디바이스 또는 프로세싱 응용 프로그램에 의해 독립적으로 리딩 및 프로세싱될 수 있다.
2) 유형 1의 액세스 유닛은 유형 0의 액세스 유닛에 의해 운반되는 데이터를 참조하는 데이터를 포함한다. 유형 1의 액세스 유닛에 포함된 데이터의 리딩 또는 디코딩 및 프로세싱은 유형 0의 하나 이상의 액세스 유닛에 대한 액세스를 갖는 것을 필요로 한다. 유형 1의 액세스 유닛은 "클래스 P"의 서열 리드에 관련된 게놈 데이터를 인코딩한다.
3) 유형 2의 액세스 유닛은 유형 0의 액세스 유닛에 의해 운반되는 데이터를 참조하는 데이터를 포함한다. 유형 2의 액세스 유닛에 포함된 데이터의 리딩 또는 디코딩 및 프로세싱은 유형 0의 하나 이상의 액세스 유닛에 대한 액세스를 갖는 것을 필요로 한다. 유형 2의 액세스 유닛은 "클래스 N"의 서열 리드에 관련된 게놈 데이터를 인코딩한다.
4) 유형 3의 액세스 유닛은 유형 0의 액세스 유닛에 의해 운반되는 데이터를 참조하는 데이터를 포함한다. 유형 3의 액세스 유닛에 포함된 데이터의 리딩 또는 디코딩 및 프로세싱은 유형 0의 하나 이상의 액세스 유닛에 대한 액세스를 갖는 것을 필요로 한다. 유형 3의 액세스 유닛은 "클래스 M"의 서열 리드에 관련된 게놈 데이터를 인코딩한다.
5) 유형 4의 액세스 유닛은 유형 0의 액세스 유닛에 의해 운반되는 데이터를 참조하는 데이터를 포함한다. 유형 4의 액세스 유닛에 포함된 데이터의 리딩 또는 디코딩 및 프로세싱은 유형 0의 하나 이상의 액세스 유닛에 대한 액세스를 갖는 것을 필요로 한다. 유형 4의 액세스 유닛은 "클래스 I"의 서열 리드에 관련된 게놈 데이터를 인코딩한다.
6) 유형 5의 액세스 유닛은 임의의 입수 가능한 참조 서열에 매핑될 수 없고 ("클래스 U"), 내부적으로 제작된 참조 서열을 이용하여 인코딩된 리드를 포함한다. 유형 5의 액세스 유닛은 유형 0의 액세스 유닛에 의해 운반된 데이터를 참조하는 데이터를 포함한다. 유형 5의 액세스 유닛에 포함된 데이터의 리딩 또는 디코딩 및 프로세싱은 유형 0의 하나 이상의 액세스 유닛에 대한 액세스를 갖는 것을 필요로 한다.
7) 유형 6의 액세스 유닛은 한 리드가 4개의 클래스 P, N, M, I 중 임의의 클래스에 속할 수 있고, 다른 리드는 임의의 입수 가능한 참조 서열에 대해서 매핑될 수 없는 리드 페어("클래스 HM")를 포함한다. 유형 6의 액세스 유닛은 유형 0의 액세스 유닛에 의해 운반되는 데이터를 참조하는 데이터를 포함한다. 유형 6의 액세스 유닛에 포함된 데이터의 리딩 또는 디코딩 및 프로세싱은 유형 0의 하나 이상의 액세스 유닛에 대한 액세스를 갖는 것을 필요로 한다.
8) 유형 7의 액세스 유닛은 유형 1의 액세스 유닛에 포함된 데이터 또는 데이터 세트와 연관된 주석 데이터 및/또는 메타 데이터(예, 품질 점수)를 포함한다. 유형 7의 액세스 유닛은 상이한 블록에 분류 및 레이블링(labelling)될 수 있다.
9) 유형 8의 액세스 유닛은 주석 데이터로서 분류된 데이터 또는 데이터 세트를 포함한다. 유형 8의 액세스 유닛은 블록에 분류 및 레이블링될 수 있다.
10) 추가 유형의 액세스 유닛은 본원에 기술된 구조 및 메커니즘을 확장할 수 있다. 예시로서, 게놈 변이체 호출, 구조 및 기능 분석의 결과가 새로운 유형의 액세스 유닛에서 인코딩될 수 있으나, 이에 한정되는 것은 아니다. 본원에 기술된 액세스 유닛에서의 데이터 조직화(data organization)는 임의의 유형의 데이터가 액세스 유닛에서 캡슐화되는 것을 막지 않으며, 이는 인코딩된 데이터의 본질에 대해서 완전히 투과적인(transparent) 메커니즘이다.
유형 0의 액세스 유닛은 정렬되나(예, 넘버링됨), 이들은 정렬된 방식으로 저장되고/되거나 전송될 필요가 없다 [기술적 이점: 병렬 프로세싱(parallel processing)/ 병렬 스트리밍 (parallel streaming), 다중화].
유형 1, 2, 3, 4, 5 및 6의 액세스 유닛은 정렬될 필요가 없고, 정렬된 방식으로 저장되고/되거나 전송될 필요가 없다 (기술적 이점: 병렬 프로세싱/ 병렬 스트리밍).
도 37은 액세스 유닛이 동질적인 데이터의 하나 이상의 블록 및 헤더로 어떻게 구성되었는지에 대해서 나타낸다. 각 블록은 하나 이상의 블록으로 구성될 수 있다. 각 블록은 몇몇 패킷(packet)들을 포함하고, 이 패킷들은 상기에서 소개된 리드 위치, 페어링 정보, 역상보 정보, 미스매치 위치 및 유형들을 표현하기 위한, 구조화된 일련의 디스크립터이다.
각 액세스 유닛은 각 블록에서 상이한 수의 패킷을 가질 수 있으나, 액세스 유닛 내에서, 모든 블록은 동일한 수의 패킷을 가진다.
각 데이터 패킷은 3개의 식별자 X Y Z의 조합에 의해 식별될 수 있으며, 이들에 대한 설명은 다음과 같다:
· X는 이것이 속하는 액세스 유닛을 식별한다.
· Y는 이것이 속하는 블록 (즉, 이것이 캡슐화하는 데이터의 유형)을 식별한다.
· Z는 동일한 블록 내 다른 패킷에 대한 패킷 순서를 표현하는 식별자이다.
도 38은 액세스 유닛 및 패킷 레이블링(packets labelling)의 예시를 나타내며, 여기서, AU_T_N 는 액세스 유닛 유형에 따른, 순서의 개념을 함축할 수 있거나, 또는 함축할 수 없는 식별자 N을 갖는 유형 T의 액세스 유닛이다. 식별자는 한 유형의 액세스 유닛과 운반된 게놈 데이터를 완전히 디코딩하는데 필요한 다른 유형의 액세스 유닛을 고유하게 연관시키는 데 이용된다.
임의의 유형의 액세스 유닛은 상이한 시퀀싱 프로세스에 따라서 상이한 "카테고리"에 더 분류 및 레이블링될 수 있다. 예를 들어, 분류 및 레이블링은 하기의 경우에 발생할 수 있으나, 이에 한정되는 것은 아니다:
1. 상이한 시간에 동일한 유기체를 시퀀싱하는 경우 [액세스 유닛은 "시간의 제약을 받는" 함축 ("temporal" connotation)을 갖는 게놈 정보를 포함한다],
2. 동일한 유기체의 상이한 본질의 유기 샘플을 시퀀싱 하는 경우(예, 인간 샘플에 대한 피부, 혈액, 머리카락). 이들은 "생물학적" 함축을 갖는 액세스 유닛이다.

Claims (66)

  1. 게놈 서열 데이터를 인코딩하는 방법으로서, 상기 게놈 서열 데이터는 뉴클레오티드 서열의 리드(read)를 포함하고, 상기 방법은,
    상기 리드를 하나 이상의 참조 서열(reference sequence)에 대해 정렬시켜, 정렬된 리드를 생성하는 단계;
    상기 정렬된 리드를 상기 하나 이상의 참조 서열과의 지정된 매칭 규칙(matching rule)에 따라 분류시켜, 정렬된 리드의 클래스를 생성하는 단계; 및
    상기 분류된 정렬된 리드를 복수의 디스크립터의 블록(block of descriptor)으로서 인코딩하는 단계;를 포함하며,
    상기 분류된 정렬된 리드를 복수의 디스크립터의 블록으로서 인코딩하는 단계는 상기 정렬된 리드의 클래스에 따라서 상기 디스크립터를 선택하는 단계, 및 상기 디스크립터의 블록을 헤더 정보와 함께 구조화시켜서 연속적인 액세스 유닛(successive access unit)을 생성하는 단계를 포함하는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  2. 제1항에 있어서,
    하기 단계를 더 포함하는 것인, 게놈 서열 데이터를 인코딩하는 방법:
    상기 지정된 매칭 규칙을 충족시키지 않는 상기 리드를 매핑되지 않은 리드(unmapped read)의 클래스로 더 분류하는 단계;
    적어도 일부의 매핑되지 않은 리드를 이용하여 참조 서열의 세트를 제작하는 단계;
    상기 매핑되지 않은 리드의 클래스를 제작된 참조 서열의 세트에 대해 정렬하는 단계;
    상기 분류된 정렬된 리드를 복수의 디스크립터의 블록으로서 인코딩하는 단계;
    상기 제작된 참조 서열의 세트를 인코딩하는 단계; 및
    상기 디스크립터의 블록 및 상기 인코딩된 참조 서열을 헤더 정보와 함께 구조화하여 연속적인 액세스 유닛을 생성하는 단계.
  3. 제2항에 있어서,
    상기 분류하는 단계는 매핑에 이용된 참조 서열에 대해서, 매핑된 리드에 존재하는 미스매치가 없는 경우에, 참조 서열에서 임의의 미스매치가 존재하지 않는 게놈 리드를 제1 "클래스 P"로서 식별하는 단계를 포함하는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  4. 제3항에 있어서,
    상기 분류하는 단계는 시퀀싱 기기가 임의의 "염기"를 호출(calling)할 수 없었던 위치에서만 미스매치가 발견되는 경우에, 게놈 리드를 제2 "클래스 N"으로서 식별하는 단계를 더 포함하고, 이 때 각 리드에서 미스매치의 수가 주어진 임계치를 초과하지 않는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  5. 제4항에 있어서,
    상기 분류하는 단계는 시퀀싱 기기가 임의의 "염기"를 호출할 수 없었던 - "n 형" 미스매치라고 명명함 - 위치 및/또는 시퀀싱 기기가 참조 서열과 상이한 "염기"를 호출했던 - "s 형" 미스매치라고 명명함 - 위치에서 미스매치가 발견되는 경우에, 게놈 리드를 제3 "클래스 M"으로 식별하는 단계를 더 포함하고, 이 때 미스매치의 수가 "n 형"의 미스매치 및 "s 형"의 미스매치의 수에 대한 주어진 임계치 및 주어진 함수 (f(n,s))로부터 획득된 임계치를 초과하지 않는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  6. 제5항에 있어서,
    상기 분류하는 단계는, 게놈 리드가 "클래스 M"의 동일한 유형의 미스매치 및 이에 추가하여 "삽입" ("i 형"), "결실" ("d 형") 및 "소프트 클립" ("c 형") 유형 중 적어도 하나의 미스매치를 가능하게 가질 수 있는 경우에 게놈 리드를 제4 "클래스 I"로서 식별하는 단계를 더 포함하고, 이 때 각 유형에 대한 미스매치의 수는 대응하는 주어진 임계치 및 주어진 함수 (w(n,s,i,d,c))에 의해 제공되는 임계치를 초과하지 않는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  7. 제6항에 있어서,
    상기 분류하는 단계는 게놈 리드를 클래스 P, N, M, I에서 임의의 분류를 발견하지 못한 모든 리드를 포함하는, 제5 "클래스 U"로서 식별하는 단계를 더 포함하는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  8. 제7항에 있어서,
    인코딩될 게놈 서열의 리드가 페어링되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  9. 제8항에 있어서,
    상기 분류하는 단계는 게놈 리드를, 한 리드는 클래스 P, N, M 또는 I에 속하고, 다른 리드는 "클래스 U"에 속하는 모든 리드 페어를 포함하는, 제6 "클래스 HM"으로서 식별하는 단계를 더 포함하는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  10. 제9항에 있어서,
    하기 단계를 더 포함하는 것인, 게놈 서열 데이터를 인코딩하는 방법:
    두 메이트 리드가 동일한 클래스 (각각의 P, N, M, I, U)로 분류되는지에 대해서 식별한 다음에, 페어를 동일한 식별된 클래스로 할당하는 단계;
    두 메이트 리드가 상이한 클래스로 분류되는지에 대해서 식별한 다음에, 두 메이트 리드 중 어느 것도 "클래스 U"에 속하지 않는 경우에, 리드의 페어를 하기 식 1에 따라서 정의되는, 가장 높은 우선권을 갖는 클래스로 할당하는 단계:
    식 1
    P < N < M < I
    상기 식 1에서, "클래스 P"는 가장 낮은 우선권을 가지고, "클래스 I"는 가장 높은 우선권을 가짐; 및
    두 메이트 리드 중 하나의 리드만 "클래스 U"에 속하는 것으로 분류됐는지에 대해서 식별하고, 리드의 페어를 "클래스 HM" 서열에 속하는 것으로서 분류하는 단계.
  11. 제11항에 있어서,
    리드의 클래스 N은 "n 형" 미스매치의 수에 의해, 클래스 N에 대해서 정의된 임계치의 벡터 (292)에 따라서 둘 이상의 서브 클래스 (296)로 더 분할되고; 리드의 클래스 M은 함수 f(n,s)에 의해, 클래스 M에 대해서 정의된 임계치의 벡터 (293)에 따라서 둘 이상의 서브 클래스 (297)로 더 분할되며; 리드의 클래스 I는 함수 w(n,s,i,d,c)에 의해, 클래스 I에 대해서 정의된 임계치의 벡터 (294) 따라서 둘 이상의 서브 클래스 (298)로 더 분할되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  12. 제11항에 있어서,
    하기 단계를 더 포함하는 것인, 게놈 서열 데이터를 인코딩하는 방법:
    두 메이트 리드가 동일한 서브 클래스로 분류되는지에 대해서 식별한 다음에, 페어를 동일한 서브-클래스로 할당하는 단계;
    두 메이트 리드가 상이한 클래스의 서브-클래스로 분류되는지에 대해서 식별한 다음에, 하기 식 2에 따라, 페어를 더 높은 우선권의 클래스에 속하는 서브 클래스로 할당하는 단계:
    식 2
    N < M < I
    상기 식 2에서, N은 가장 낮은 우선권을 가지고, I는 가장 높은 우선권을 가짐; 및
    두 메이트 리드가 클래스 N 또는 M 또는 I인, 동일한 클래스로 분류되나, 상이한 서브-클래스로 분류되는지에 대해서 식별한 다음에, 하기 식 3에 따라, 페어를 가장 높은 우선권을 갖는 서브-클래스에 할당하는 단계:
    식 3
    N 1 < N 2 < ... < N k
    M 1 < M 2 < ... < M j
    I 1 < I 2 < ... < I h
    상기 식 3에서, 가장 높은 인덱스는 가장 높은 우선권을 가짐.
  13. 제12항에 있어서,
    각 리드의 매핑 위치에 대한 정보는 "pos" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  14. 제13항에 있어서,
    각 리드의 스트랜디드니스 (즉, 리드가 시퀀싱되어 나온, DNA 가닥)에 대한 정보는 rcomp 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  15. 제14항에 있어서,
    페어드-엔드 리드의 페어링 정보는 "pair" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  16. 제15항에 있어서,
    리드가 적절한 페어로 매핑되는 경우, 리드가 플랫폼/벤더 품질 확인(platform/vendor quality check)을 통과하지 못하는 경우, 리드가 PCR 복제물 (PCR duplicate) 또는 광학적 복제물 (optical duplicate)인 경우, 또는 리드가 추가 정렬(supplementary alignment)인 경우와 같은, 추가의 정렬 정보는 "flags" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  17. 제16항에 있어서,
    알려지지 않은 염기(unknown base)에 대한 정보는 "nmis" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  18. 제17항에 있어서,
    치환 위치에 대한 정보는 "snpp" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  19. 제18항에 있어서,
    치환 유형에 대한 정보는 특정한 "snpt" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  20. 제19항에 있어서,
    치환, 삽입 또는 결실 유형의 미스매치 위치에 대한 정보는 "indp" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  21. 제20항에 있어서,
    치환, 삽입 또는 결실과 같은 미스매치의 유형에 대한 정보는 "indt" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  22. 제21항에 있어서,
    매핑된 리드의 클리핑된 염기에 대한 정보는 "indc" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  23. 제22항에 있어서,
    매핑되지 않은 리드에 대한 정보는 "ureads" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  24. 제23항에 있어서,
    인코딩에 이용된 참조 서열의 유형에 대한 정보는 "rtype" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  25. 제24항에 있어서,
    매핑된 리드의 다중 정렬에 대한 정보는 "mmap" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  26. 제25항에 있어서,
    동일한 리드의 다중 정렬 및 스플라이싱된 정렬에 대한 정보는 "msar" 디스크립터 블록 및 "mmap" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  27. 제26항에 있어서,
    리드 정렬 점수에 대한 정보는 "mscore" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  28. 제27항에 있어서,
    리드가 속하는 그룹에 대한 정보는 "rgroup" 디스크립터 블록에 의해 인코딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  29. 제28항에 있어서,
    클래스 P의 액세스 유닛은 "pos", "rcomp" 및 "flags" 유형의 디스크립터의 블록을 이용하여 빌딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  30. 제29항에 있어서,
    상기 클래스 P의 액세스 유닛은 "pair" 디스크립터의 블록을 이용하여 페어드-엔드의 페어링 정보(pairing information)를 인코딩하는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  31. 제30항에 있어서,
    클래스 N의 액세스 유닛은 클래스 P의 액세스 유닛의 동일한 디스크립터의 블록뿐만 아니라, 알려지지 않은 염기의 위치에 대한 정보에 대한 "nmis" 디스크립터 블록을 이용하여 빌딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  32. 제30항에 있어서,
    클래스 M의 액세스 유닛은 클래스 P의 액세스 유닛의 동일한 디스크립터의 블록뿐만 아니라, 치환의 위치 및 유형에 대한 정보에 대한 "snpp" 및 "snpt" 디스크립터의 블록을 이용하여 빌딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  33. 제30항에 있어서,
    클래스 I의 액세스 유닛은 클래스 P의 동일한 디스크립터의 블록뿐만 아니라, 치환, 삽입, 결실 및 클리핑된 염기의 위치 및 유형에 대한 정보에 대한 "indp", "indt" 및 "indc" 디스크립터의 블록을 이용하여 빌딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  34. 제33항에 있어서,
    클래스 HM의 액세스 유닛은 매핑된 리드에 대한 클래스 I의 액세스 유닛의 동일한 디스크립터의 블록을 이용하고, 매핑되지 않은 리드에 대한 "ureads" 디스크립터의 블록을 이용하여 빌딩되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  35. 제33항에 있어서,
    다중 정렬에 대한 정보는 "mmap" 및 "msar" 디스크립터의 블록을 이용하여 전달되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  36. 제35항에 있어서,
    스플라이싱된 정렬에 대한 정보는 하기를 포함하는 확장된 시가 스트링 (extended cigar string)을 이용하여 전달되는 것인, 게놈 서열 데이터를 인코딩하는 방법:
    · 매칭 염기를 나타내는 기호 =;
    · 삽입을 나타내는 기호 +;
    · 결실을 나타내는 기호 -;
    · 정방향 가닥상의 스플라이스를 나타내는 기호 /;
    · 역방향 가닥상의 스플라이스를 나타내는 기호 %;
    · 무방향 스플라이스(undirected splice)를 나타내는 기호 *;
    · 치환을 나타내는 DNA에 대한 IUPAC 코드로부터의 원문 문자 (textual character);
    · n개의 소프트 클리핑된 염기를 나타내는 기호 (n), n은 정수임; 및
    · n개의 하드 플리핑된 염기를 나타내는 기호 [n], n은 정수임.
  37. 제36항에 있어서,
    상기 디스크립터의 블록은 정렬된 리드의 각 클래스 및 서브-클래스에 대한 하나의 섹션을 포함하는 "마스터 인덱스 테이블(master index table)"을 포함하고, 상기 섹션은 데이터의 각 클래스 또는 서브-클래스의 각 액세스 유닛의 첫번째 리드의 상기 하나 이상의 참조 서열상의 매핑 위치를 포함하며; 상기 "마스터 인덱스 테이블(master index table)"과 상기 액세스 유닛 데이터를 조인트 코딩(joint coding)하는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  38. 제37항에 있어서,
    상기 디스크립터의 블록은 이용된 참조의 유형(이미-존재하거나 또는 제작됨), 및 참조 서열에 대해서 매핑되지 않은 리드의 세그먼트에 대한 정보를 더 포함하는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  39. 제38항에 있어서,
    상기 참조 서열은 치환, 삽입, 결실 및 클리핑을 적용함으로써, 상이한 참조 서열로 먼저 변환된 다음에, 상기 분류된 정렬된 리드를 복수의 디스크립터의 블록으로서 인코딩하는 단계가 변환된 참조 서열을 참조(referring)하는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  40. 제39항에 있어서,
    동일한 변환이 데이터의 모든 클래스에 이용된 참조 서열에 적용되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  41. 제40항에 있어서,
    상이한 변환이 데이터의 각 클래스에 이용된 참조 서열에 적용되는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  42. 제41항에 있어서,
    참조 서열 변환은 디스크립터의 블록으로서 인코딩되고, 헤더 정보와 함께 구조화되어, 연속적인 액세스 유닛을 생성하는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  43. 제42항에 있어서,
    상기 분류된 정렬된 리드 및 관련된 참조 서열 변환을 복수의 디스크립터의 블록으로서 인코딩하는 단계는 특정한 소스 모델 및 특정한 엔트로피 코더를 각각의 디스크립터 블록과 연관시키는(associating) 단계를 포함하는 것인, 게놈 서열 데이터를 인코딩하는 방법.
  44. 제43항에 있어서,
    상기 엔트로피 코더는 컨텍스트 적응 산술 코더(context adaptive arithmetic coder), 가변 길이 코더(variable length coder) 또는 골룸 코더(golomb coder) 중 하나인, 게놈 서열 데이터를 인코딩하는 방법,
  45. 하기 단계를 포함하는, 인코딩된 게놈 데이터를 디코딩하는 방법:
    헤더 정보를 이용하여, 상기 인코딩된 게놈 데이터를 포함하는 액세스 유닛을 파싱하여(parsing), 복수의 디스크립터의 블록을 추출하는 단계; 및
    상기 복수의 디스크립터의 블록을 디코딩하여, 하나 이상의 참조 서열에 대한 이들의 분류를 정의하는 특정한 매칭 규칙에 따라 리드를 추출하는 단계.
  46. 제45항에 있어서,
    리드의 각 클래스에 대한 하나의 섹션 및 연관된 관련 매핑 위치(relevant mapping position)를 포함하는 마스터 인덱스 테이블을 디코딩하는 단계를 더 포함하는 것인, 인코딩된 게놈 데이터를 디코딩하는 방법.
  47. 제46항에 있어서,
    이용된 참조의 유형 - 이미-존재하는 참조 서열, 변환된 참조 서열 또는 제작된 참조 서열 - 에 관련된 정보를 디코딩하는 단계를 더 포함하는 것인, 인코딩된 게놈 데이터를 디코딩하는 방법.
  48. 제47항에 있어서,
    이미-존재하는 참조 서열에 적용될 하나 이상의 변환에 관련된 정보를 디코딩하는 단계를 더 포함하는 것인, 인코딩된 게놈 데이터를 디코딩하는 방법.
  49. 제48항에 있어서,
    상기 디스크립터의 블록은 엔트로피 디코딩(entropy decoding)되는 것인, 인코딩된 게놈 데이터를 디코딩하는 방법.
  50. 제49항에 있어서,
    클래스 P 리드는 "pos", "rcomp", "flags" 및 "rlen" 유형의 디스크립터의 블록을 디코딩함으로써 획득되고,
    클래스 N 리드는 "pos", "rcomp", "flags", "rlen" 및 "nmis" 유형의 디스크립터의 블록을 디코딩함으로써 획득되며,
    클래스 M 리드는 "pos", "rcomp", "flags", "rlen", "snpp" 및 "snpt" 유형의 디스크립터의 블록을 디코딩함으로써 획득되고,
    클래스 I 리드는 "pos", "rcomp", "flags", "rlen", "indp", "indt" 및 "indc" 유형의 디스크립터의 블록을 디코딩함으로써 획득되며,
    클래스 U 리드는 "pos", "rcomp", "flags", "rlen", "snpp", "snpt", "indc", "ureads" 및 "rtype" 유형의 디스크립터의 블록을 디코딩함으로서 획득되는 것인, 인코딩된 게놈 데이터를 디코딩하는 방법.
  51. 제50항에 있어서,
    클래스 P, N, M 및 I는 "pair" 유형의 디스크립터의 블록을 또한 디코딩함으로써 획득되고,
    클래스 HM은 "pos", "rcomp", "flags", "rlen", "indp", "indt", "indc", 및 "ureads" 유형의 디스크립터의 블록을 디코딩함으로써 획득되는 것인, 인코딩된 게놈 데이터를 디코딩하는 방법.
  52. 게놈 서열 데이터(209)를 압축하는 게놈 인코더(2010)로서, 상기 게놈 서열 데이터(209)는 뉴클레오티드 서열의 리드를 포함하고, 상기 게놈 인코더 (2010)는 하기를 포함하는 것인, 게놈 인코더:
    상기 리드를 하나 이상의 참조 서열에 대해 정렬하여, 정렬된 리드를 생성하도록 구성된, 얼라이너 유닛(201);
    제작된 참조 서열을 생성하도록 구성된, 제작된-참조 생성부 유닛(202);
    하나 이상의 이미-존재하는 참조 서열 또는 제작된 참조 서열과의 지정된 매칭 규칙에 따라서 상기 정렬된 리드를 분류하여, 정렬된 리드의 클래스 (208)를 생성하도록 구성된, 데이터 분류 유닛 (204);
    상기 분류된 정렬된 리드를 디스크립터의 블록으로서, 상기 정렬된 리드의 클래스에 따라서 상기 디스크립터를 선택함으로써, 인코딩하도록 구성된, 하나 이상의 블록 인코딩 유닛 (205-207); 및
    압축된 게놈 데이터 및 메타 데이터를 다중화하는 다중화기(2016).
  53. 제52항에 있어서,
    이미 존재하는 참조 및 데이터 클래스 (208)를 변환된 데이터 클래스 (2018)로 변환하도록 구성된, 참조 서열 전환 유닛 (2019)을 더 포함하는 것인, 게놈 인코더.
  54. 제53항에 있어서,
    데이터 분류 유닛(204)은 데이터 클래스 N, M 및 I의 서브-클래스를 생성하는 임계치의 벡터로 구성된, 데이터 클래스 N, M 및 I의 인코더를 포함하는 것인, 게놈 인코더.
  55. 제54항에 있어서,
    참조 변환 유닛(2019)은 데이터의 모든 클래스 및 서브-클래스에 동일한 참조 변환 (300)을 적용하는 것인, 게놈 인코더.
  56. 제54항에 있어서,
    참조 변환 유닛 (2019)은 상이한 참조 변환(301, 302, 303)을 데이터의 상이한 클래스 및 서브-클래스에 적용하는 것인, 게놈 인코더.
  57. 제54항에 있어서,
    제12항에 기재된 코딩하는 방법의 실행에 적합한 코딩 수단을 더 포함하는, 게놈 인코더.
  58. 압축된 게놈 스트림(211)을 압축 해제하는(decompressing) 게놈 디코더(218)로서, 상기 게놈 디코더(218)는 하기를 포함하는 것인, 게놈 디코더:
    압축된 게놈 데이터 및 메타 데이터를 역다중화하는, 역다중화기 (210);
    상기 압축된 게놈 스트림을 디스크립터의 게놈 블록(215)으로 파싱하도록 구성된, 파싱 수단(212-214);
    디스크립터의 게놈 블록을 뉴클레오티드 서열의 분류된 리드(2111)로 디코딩하도록 구성된, 하나 이상의 디스크립터의 블록 디코더(216-217); 및
    상기 뉴클레오티드 서열의 분류된 리드를 하나 이상의 참조 서열에 대해서 선택적으로 디코딩하여, 뉴클레오티드 서열의 압축된 리드를 생성하도록 구성된, 게놈 데이터 클래스 디코더 (219).
  59. 제58항에 있어서,
    참조 변환 디스크립터 (2112)를 디코딩하고, 게놈 데이터 클래스 디코더(219)에 의해 이용될 변환된 참조(2114)를 생성하도록 구성된, 참조 변환 디코더 (2113)를 더 포함하는 것인, 게놈 디코더.
  60. 제59항에 있어서,
    하나 이상의 참조 서열은 압축된 게놈 스트림 (211)에 저장되는 것인, 게놈 디코더.
  61. 제59항에 있어서,
    하나 이상의 참조 서열은 아웃 오브 밴드 메커니즘(out of band mechanism)을 통해 디코더에 제공되는 것인, 게놈 디코더.
  62. 제59항에 있어서,
    하나 이상의 참조 서열은 디코더에서 빌딩되는 것인, 게놈 디코더.
  63. 제59항에 있어서,
    하나 이상의 참조 서열은 참조 변환 디코더 (2113)에 의해 디코더에서 변환되는 것인, 게놈 디코더.
  64. 실행되는 경우에, 적어도 하나의 프로세서가 제12항에 기재된 인코딩하는 방법을 수행하도록 야기하는 명령어를 포함하는, 컴퓨터 판독 가능한 매체.
  65. 실행되는 경우에, 적어도 하나의 프로세서가 제59항에 기재된 디코딩하는 방법을 수행하도록 야기하는 명령어를 포함하는, 컴퓨터 판독 가능한 매체.
  66. 제12항에 기재된 방법에 따라서 인코딩된 게놈을 저장하는, 서포트 데이터.
KR1020197026877A 2017-02-14 2018-02-14 다중 게놈 디스크립터를 이용한 생명정보학 데이터의 압축 표현 방법 및 장치 KR20190113971A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
PCT/US2017/017842 WO2018071055A1 (en) 2016-10-11 2017-02-14 Method and apparatus for the compact representation of bioinformatics data
USPCT/US2017/017842 2017-02-14
PCT/US2017/041591 WO2018071080A2 (en) 2016-10-11 2017-07-11 Method and systems for the representation and processing of bioinformatics data using reference sequences
USPCT/US2017/041591 2017-07-11
PCT/US2018/018092 WO2018152143A1 (en) 2017-02-14 2018-02-14 Method and apparatus for the compact representation of bioinformatics data using multiple genomic descriptors

Publications (1)

Publication Number Publication Date
KR20190113971A true KR20190113971A (ko) 2019-10-08

Family

ID=68609803

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197026877A KR20190113971A (ko) 2017-02-14 2018-02-14 다중 게놈 디스크립터를 이용한 생명정보학 데이터의 압축 표현 방법 및 장치

Country Status (10)

Country Link
EP (1) EP3583500A4 (ko)
KR (1) KR20190113971A (ko)
AU (1) AU2018221458B2 (ko)
CA (1) CA3052824A1 (ko)
EA (1) EA201991908A1 (ko)
IL (1) IL268651A (ko)
MX (1) MX2019009680A (ko)
SG (1) SG11201907418YA (ko)
WO (1) WO2018152143A1 (ko)
ZA (1) ZA201905921B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220089211A (ko) * 2020-12-21 2022-06-28 부산대학교 산학협력단 문자 빈도 기반 서열 재정렬을 통한 fastq 데이터 압축 방법 및 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110189830B (zh) * 2019-05-24 2021-06-08 杭州火树科技有限公司 基于机器学习的电子病历词库训练方法
EP3896698A1 (en) 2020-04-15 2021-10-20 Genomsys SA Method and system for the efficient data compression in mpeg-g

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002303234A1 (en) * 2001-04-02 2002-10-15 Cytoprint, Inc. Methods and apparatus for discovering, identifying and comparing biological activity mechanisms
US7698067B2 (en) * 2002-02-12 2010-04-13 International Business Machines Corporation Sequence pattern descriptors for transmembrane structural details
US7809765B2 (en) * 2007-08-24 2010-10-05 General Electric Company Sequence identification and analysis
KR101922129B1 (ko) * 2011-12-05 2018-11-26 삼성전자주식회사 차세대 시퀀싱을 이용하여 획득된 유전 정보를 압축 및 압축해제하는 방법 및 장치
US9679104B2 (en) * 2013-01-17 2017-06-13 Edico Genome, Corp. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
CN103336916B (zh) * 2013-07-05 2016-04-06 中国科学院数学与系统科学研究院 一种测序序列映射方法及系统
US10902937B2 (en) * 2014-02-12 2021-01-26 International Business Machines Corporation Lossless compression of DNA sequences

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220089211A (ko) * 2020-12-21 2022-06-28 부산대학교 산학협력단 문자 빈도 기반 서열 재정렬을 통한 fastq 데이터 압축 방법 및 장치

Also Published As

Publication number Publication date
WO2018152143A1 (en) 2018-08-23
EA201991908A1 (ru) 2020-01-21
AU2018221458B2 (en) 2022-12-08
IL268651A (en) 2019-10-31
ZA201905921B (en) 2021-05-26
SG11201907418YA (en) 2019-09-27
EP3583500A1 (en) 2019-12-25
NZ757185A (en) 2021-05-28
AU2018221458A1 (en) 2019-10-03
CA3052824A1 (en) 2018-08-23
EP3583500A4 (en) 2020-12-16
MX2019009680A (es) 2019-10-09

Similar Documents

Publication Publication Date Title
CN110678929B (zh) 用于高效压缩基因组序列读段的方法和系统
CN110088839B (zh) 用于生物信息学信息表示的有效数据结构
KR20190113969A (ko) 게놈 서열 리드의 효율적인 압축 방법 및 시스템
CN110168652B (zh) 用于存储和访问生物信息学数据的方法和系统
JP7362481B2 (ja) ゲノムシーケンスデータをコード化する方法、コード化されたゲノムデータをデコード化する方法、ゲノムシーケンスデータをコード化するためのゲノムエンコーダ、ゲノムデータをデコードするためのゲノムデコーダ、及びコンピュータ読み取り可能な記録媒体
KR20190113971A (ko) 다중 게놈 디스크립터를 이용한 생명정보학 데이터의 압축 표현 방법 및 장치
CN110178183B (zh) 用于传输生物信息学数据的方法和系统
KR20190071741A (ko) 생물 정보학 데이터의 간략 표현 방법 및 장치
JP7324145B2 (ja) ゲノムシーケンスリードの効率的圧縮のための方法及びシステム
CN110663022B (zh) 使用基因组描述符紧凑表示生物信息学数据的方法和设备
NZ757185B2 (en) Method and apparatus for the compact representation of bioinformatics data using multiple genomic descriptors
EA043338B1 (ru) Способ и устройство для компактного представления биоинформационных данных с помощью нескольких геномных дескрипторов
EA040022B1 (ru) Способ и устройство для компактного представления данных биоинформатики

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal