KR101969848B1 - 유전자 데이터를 압축하는 방법 및 장치 - Google Patents
유전자 데이터를 압축하는 방법 및 장치 Download PDFInfo
- Publication number
- KR101969848B1 KR101969848B1 KR1020120056228A KR20120056228A KR101969848B1 KR 101969848 B1 KR101969848 B1 KR 101969848B1 KR 1020120056228 A KR1020120056228 A KR 1020120056228A KR 20120056228 A KR20120056228 A KR 20120056228A KR 101969848 B1 KR101969848 B1 KR 101969848B1
- Authority
- KR
- South Korea
- Prior art keywords
- text
- encoding
- fields
- quality
- parsing
- Prior art date
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
텍스트 기반 포맷의 시퀀스 데이터를 압축하는 방법은 시퀀스 데이터의 텍스트를 파싱하고, 파싱된 필드들 각각에 대한 압축 이득이 가장 높은 부호화 알고리즘들을 식별하고, 식별된 부호화 알고리즘들을 이용하여 시퀀스 데이터를 부호화함으로써 시퀀스 데이터가 압축된 비트 스트림을 생성한다.
Description
바이오인포매틱스(bio-informatics) 분야에 관련된 것으로서, 보다 상세하게는 차세대 시퀀싱 (NGS) 데이터로부터 획득된 FASTQ 파일 포맷의 유전자 데이터를 압축하는 방법 및 장치에 관한 것이다.
DNA 시퀀싱 기술의 계속적인 발전과 함께, 방대한 양의 DNA 리드 서열(DNA read sequences)이 생성되고 있다. 차세대 시퀀싱(Next Generation Sequencing, NGS) 기기들은 퀄리티 스코어(quality scores)와 같은 다양한 주석들(annotations)과, 리드 식별자(read identifiers), 기기 명칭(instrument names), 플로우셀 경로(flowcell lanes) 등과 같은 다른 메타 정보(meta-information)가 포함된, 방대한 양의 게놈 데이터(genomic data)를 생성한다. 차세대 시퀀싱(NGS)에 의해 획득된 NGS 파일 내의 리드(reads)의 개수는 시퀀싱된 종 및 현재 기술 수준에 따라 수억에서 수십억 개의 범위일 수 있고, 이에 따라 수 메가바이트(MB)에서 수 기가바이트(GB)로 파일 크기가 증가한다. 끊임없이 증가하는 처리량은 시퀀싱 데이터의 저장 및 관리에 대한 과제를 제시하고, 시퀀싱 데이터를 효과적으로 부호화하기 위한 효율적인 압축 기술(compression utility)의 사용이 필요하도록 한다.
높은 처리량의 시퀀싱 기술들의 출현과 함께, 게놈 데이터의 양도 주목할만하게 증가한다. 그리고, 차세대 시퀀싱(NGS) 기기에 의해 생성된 막대한 양의 시퀀싱 데이터의 저장 및 관리에 관련된 간접 비용(cost overhead)도 증가한다. 이러한 막대한 데이터의 저장, 관리 및 전송은 관련된 간접 비용을 최소화하기 위하여 효율적인 압축 기술의 사용을 채택한다. 이와 같은 기기에 의해 출력된 파일은 수 메가바이트(MB)에서 수 기가바이트(GB)의 크기의 범위를 갖는다. 나아가서, 이와 같은 파일은 또한 다양한 주석들을 포함하고, DNA 서열 및 이러한 파일 포맷들에 대해 잘 동작하지 않는 bzip 및 gzip과 같은 일반적인 목적의 텍스트 압축 유틸리티(text compression utilities)도 포함한다.
FASTQ 포맷은 보통 뉴클레오티드 서열과 같은 생물학적 서열과, 그에 대응되는 퀄리티 스코어를 저장하는 텍스트 기반 포맷(text-based format)이다. 전형적으로, NGS 데이터는 FASTQ 파일 포맷으로 저장되고, 시퀀싱된 리드 데이터(read data)의 저장을 위한 사실상 표준으로 되어왔다. 이 정보는 드 노보 시퀀싱(de novo sequencing), 어셈블리 어플리케이션(assembly applications) 뿐만 아니라, 리시퀀싱 어플리케이션(re-sequencing applications)과 같은 다양한 어플리케이션들에서 과학자들에 의해 사용되었다. 그러므로, 사용되는 압축 기술은 필수적인 정보들이 모두 보존될 수 있도록 무손실로(lossless) 또는 근접 무손실로(nearly lossless)이어야 한다.
비록, DNA 서열의 압축을 위한 많은 방법들이 존재한다 할지라도, 그 데이터는 NGS 데이터 포맷과는 다른 방식을 이용한다. 몇몇의 압축 방법들은 오직 리드(reads)와의 차이점을 부호화하기 위해 참조 서열(reference sequences)을 이용한다. 그러나, 많은 경우들, 특히 새로운 종 또는 개체를 시퀀싱할 경우 참조 서열은 이용 가능하지 않을 수도 있다. 또한, 모든 리드(reads)가 참조 게놈(reference genome)에 정렬되지 않으므로, 부호화되어야 할 많은 데이터들이 남게 된다.
현재 존재하는 방법들은 NGS 기기에 의해 생성된 막대한 양의 시퀀싱 데이터의 저장 및 관리와 관련된 간접 비용의 문제에 대해서는 설명하고 있지 않는다는 점이, 앞서 설명한 이유들로부터 명백하다. 또한, 현재 방법들은 적절한 부호화 기술에 의하여 FASTQ 파일 포맷의 NGS 데이터를 압축하는 효율적인 메카니즘들을 채용하고 있지 않는다.
차세대 시퀀싱(next generation sequencing, NGS) 데이터와 같은 유전자 데이터를 압축하는 방법 및 장치를 제공하는 데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
일 측면에 따르면, 텍스트 기반 포맷의 시퀀스 데이터를 압축하는 방법은 상기 시퀀스 데이터의 텍스트를 상기 텍스트에 포함된 정보에 따라 복수의 필드들로 파싱(parsing)하는 단계; 상기 파싱된 필드들 각각에 포함된 심볼에 대한 통계량을 획득하는 단계; 상기 획득된 통계량에 기초하여, 상기 파싱된 필드들 각각에 대한 압축 이득이 가장 높은 부호화 알고리즘들을 식별하는 단계; 및 상기 파싱된 필드들 각각에 대하여 상기 식별된 부호화 알고리즘들을 이용하여 상기 시퀀스 데이터를 부호화함으로써 상기 시퀀스 데이터가 압축된 비트 스트림을 생성하는 단계를 포함한다.
다른 일 측면에 따르면, 시퀀스 데이터를 압축하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
또 다른 일 측면에 따르면, 텍스트 기반 포맷의 시퀀스 데이터를 압축하는 장치는 상기 시퀀스 데이터의 텍스트를 상기 텍스트에 포함된 정보에 따라 복수의 필드들로 파싱(parsing)하는 파싱부; 상기 파싱된 필드들 각각에 포함된 심볼에 대한 통계량을 획득하는 통계량 획득부; 상기 획득된 통계량에 기초하여, 상기 파싱된 필드들 각각에 대한 압축 이득이 가장 높은 부호화 알고리즘들을 식별하는 부호화 알고리즘 식별부; 및 상기 파싱된 필드들 각각에 대하여 상기 식별된 부호화 알고리즘들을 이용하여 상기 시퀀스 데이터를 부호화함으로써 상기 시퀀스 데이터가 압축된 비트 스트림을 생성하는 압축부를 포함한다.
상기된 바에 따르면, 차세대 시퀀싱(NGS)을 이용하여 획득된 텍스트 기반 포맷의 시퀀스 데이터, 예를 들어 FASTQ 포맷의 데이터인 경우, 종래보다 높은 압축 이득으로 대용량의 시퀀스 데이터를 효율적으로 압축할 수 있다.
도 1은 본 발명의 일 실시예에 따라, NGS 데이터를 저장하는 FASTQ 파일 포맷을 도시한 도면이다.
도 2a는 본 발명의 일 실시예에 따라, 입력된 FASTQ 파일을 압축하는 압축부(compressor)의 기능을 도시한 도면이다.
도 2b는 본 발명의 일 실시예에 따라, 통계량을 계산하고, 텍스트 정보 및 퀄리티 스코어의 다양한 표시(representations)에 해당하는 각각의 서브 필드(sub-field)에 대한 효율적인 방법들을 식별하는 제 1 패스를 도시한 도면이다.
도 2c는 본 발명의 일 실시예에 따라, 효율적 방법들을 이용한 압축 과정을 포함하는 제 2 패스를 도시한 도면이다.
도 2d는 본 발명의 일 실시예에 따라, 복원(decompression) 기능을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따라, FASTQ 파일의 서로 다른 데이터 필드들과 관련된 부호화 단계들을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따라, 타이틀 라인들의 서로 다른 필드들을 도시한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 퀄리티 스코어를 부호화하는 방법을 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따라, DNA 시퀀스를 부호화하는 과정을 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른, 시퀀스 데이터 압축 장치의 구성도이다.
도 8은 본 발명의 일 실시예에 따른, 시퀀스 데이터를 압축하는 방법에 관한 흐름도이다.
도 2a는 본 발명의 일 실시예에 따라, 입력된 FASTQ 파일을 압축하는 압축부(compressor)의 기능을 도시한 도면이다.
도 2b는 본 발명의 일 실시예에 따라, 통계량을 계산하고, 텍스트 정보 및 퀄리티 스코어의 다양한 표시(representations)에 해당하는 각각의 서브 필드(sub-field)에 대한 효율적인 방법들을 식별하는 제 1 패스를 도시한 도면이다.
도 2c는 본 발명의 일 실시예에 따라, 효율적 방법들을 이용한 압축 과정을 포함하는 제 2 패스를 도시한 도면이다.
도 2d는 본 발명의 일 실시예에 따라, 복원(decompression) 기능을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따라, FASTQ 파일의 서로 다른 데이터 필드들과 관련된 부호화 단계들을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따라, 타이틀 라인들의 서로 다른 필드들을 도시한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 퀄리티 스코어를 부호화하는 방법을 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따라, DNA 시퀀스를 부호화하는 과정을 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른, 시퀀스 데이터 압축 장치의 구성도이다.
도 8은 본 발명의 일 실시예에 따른, 시퀀스 데이터를 압축하는 방법에 관한 흐름도이다.
이하에서는 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 하지만, 이하에서 설명할 실시예들 및 도면들은 본 발명의 설명의 편의를 위한 것일 뿐, 본 발명은 이에 한정되지 않음을 당해 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 이하에서는 본 실시예의 특징이 흐려지는 것을 방지하기 위하여 본 실시예에 관련된 구성요소들(components)만을 기술하기로 한다. 다만, 이와 같은 구성요소들 외에 다른 범용적인 구성요소들이 포함될 수 있음을 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
이하의 실시예들은 FASTQ 파일 포맷의 차세대 시퀀싱(next generation sequencing, 이하 'NGS'라 함) 데이터 또는 게놈 데이터(genomic data)를 효율적으로 압축하는 방법 및 시스템에 관한다. 그러나, 이 방법은, DNA 서열 압축 방법들에 적용되는 어떠한 적절한 텍스트 기반 포맷들(text based formats)에 대해서도 적용될 수 있다. 이 방법은 타이틀 정보(title information), 시퀀스 테이터(sequence data) 및 퀄리티 데이터(quality data)와 같은 FASTQ 파일 내의 다양한 필드들을 식별하고, 이들을 구별한다. 본 방법은 2 패스(two-pass) 방법으로 서로 독립적으로 이와 같은 필드들 모두를 처리하는 알고리즘을 제안한다. 제 1 패스(first pass)에서, 필드들의 각각의 서브 섹션(sub-section)을 위한 효율적 부호화 방법을 결정하기 위한 통계량(statistics)이 관찰된다. 그리고 나서, 제 2 패스(second pass)에서, 각각의 필드들이 부호화된다.
이하에서는 도 1 내지 6의 도면들을 참고하여 바람직한 실시예들에 대해 설명하도록 하겠다. 여기서, 도면들간에 대응되는 구성들에 대해서는 유사한 참조 문자들(reference characters)이 사용될 수 있다.
도 1은 본 발명의 일 실시예에 따라, NGS 데이터를 저장하는 FASTQ 파일 포맷을 도시한 도면이다. 도 1을 참고하면, 하나의 FASTQ 파일은 복수의 리드들(reads)에 대한, 관련된 텍스트 및 퀄리티 정보로 구성된다. FASTQ 파일 포맷은 각각의 시퀀스 리드(sequence read)당, 타이틀(Title), DNA 시퀀스(DNA Sequence), 플러스 정보(Plus information) 및 퀄리티 정보(Quality information)의 4 라인들로 구성된다. 그러나, 포맷의 비공식 규격(no formal standardization)도 존재할 수 있다. 포맷 설명(Format description) 및 FASTQ 포맷의 변형들(variants)은 당해 기술분야에서 통상의 지식을 가진 자에게 자명하다. 나아가서, 타이틀 라인의 필드들의 개수는 한정되지 않고, 시퀀스 식별자(sequence identifier) 다음에 어떠한 길이의 옵션적인 설명(description)을 포함할 수 있다.
도 2a는 본 발명의 일 실시예에 따라, 입력된 FASTQ 파일을 압축하는 압축부(compressor)의 기능을 도시한 도면이다. FASTQ 파일의 구성의 통계량들을 획득하는(collect statistics, 201) 제 1 패스(pass 1)에서, 입력된 FASTQ 파일은 압축부로 입력된다. 그리고, 제 2 패스(pass 2)에서, 식별된 메카니즘들 중 효율적인 방법/메커니즘을 이용하여 FASTQ 파일을 압축한다(compress using efficient method, 202). 이후에, 압축된 비트 스트림은 원본 FASTQ 파일을 검색하는 복원부(decompressor)로 전송된다.
도 2b는 본 발명의 일 실시예에 따라, 통계량을 계산하고, 텍스트 정보 및 퀄리티 스코어의 다양한 표시(representations)에 해당하는 각각의 서브 필드(sub-field)에 대한 효율적인 방법들을 식별하는 제 1 패스를 도시한 도면이다. 도 2b를 참고하면, FASTQ 파일은 FASTQ 파서(FASTQ parser, 203)에 입력되고, FASTQ 파일은 타이틀 라인, 퀄리티 값(quality values)과 같은 구성들로 나누어진다. 204 단계에서, 타이틀 라인에서 텍스트 필드(text fields)를 식별한다. 본 실시예에서, 텍스트 필드는 불변 필드(constant fields), 가변 영숫자 필드(variable alpha-numeric fields) 및 가변 숫자 필드(variable numeric fields) 등으로 나누어진다. 나아가서, 205 단계에서, 타이틀 라인 필드 및 퀄리티 값의 통계량을 획득한다. 206 단계에서, 복수의 메커니즘들 중에서 텍스트 필드 및 퀄리티 값을 부호화하는 보다 효율적인 방법들이 식별된다. 마지막으로, 효율적인 부호화를 위하여, 부호화하는 가장 효율적인 방법이 제 2 패스에서 채택된다.
본 실시예에서, 본 방법은 파일 내 타이틀 라인의 주기적인 검사에 기반하여, 파일 내 타이틀 정보 구조에서의 불일치부분(inconsistencies)을 검출하고, 이 불일치부분 발생시 타이틀 라인을 효율적으로 표시한다.
본 실시예에서, NGS 데이터를 효율적으로 압축하는데 사용되는 다양한 필드들을 빠르게 식별하기 위한 타이틀 라인 정보에 기반하여 파싱(parsing)하고자, 본 방법은 SoLiD, Illumina, 454, Helicos 등과 같은, 높은 처리량의 NGS 데이터의 출처(origin)를 식별한다.
본 실시예에 따르면, 제 1 패스의 일부 과정에서, 텍스트 및 퀄리티 정보에 대응되는 각각의 필드들의 통계량이 수렴될 때까지 계산된다. 이 통계량은 FASTQ 파일의 각각의 필드들에 대해 효율적인 부호화 방법을 결정하는데 사용된다.
도 2c는 본 발명의 일 실시예에 따라, 효율적 방법들을 이용한 압축 과정을 포함하는 제 2 패스를 도시한 도면이다. FASTQ 파일은 입력되고, FASTQ 파서(203)는 FASTQ 파일을 텍스트 필드, DNA 시퀀스 및 퀄리티 값으로 나눈다. 그리고 나서, 텍스트 데이터(206), 시퀀스 데이터(207) 및 퀄리티 데이터(208)를 위한 각각의 인코더들(encoders)은 제 1 패스에서 식별된 효율적 방법들에 기초하여 정보를 부호화한다. 부호화된 비트 스트림들은 머징부(merger, 209)로 입력되고, 머징부(209)는 단일화되도록 압축된 비트 스트림을 출력한다.
도 2d는 본 발명의 일 실시예에 따라, 복원(decompression) 기능을 도시한 도면이다. 도 2d를 참고하면, 압축된 비트 스트림이 입력으로 이용된다. 비트 스트림 파서(bit stream parser, 210)는 비트 스트림을 분리시키고(split), 텍스트 데이터(206), 시퀀스 데이터(207) 및 퀄리티 데이터(208)에 대한 각각의 디코더들(decoders)은 복원된 필드들(decompressed fields)을 출력한다. 다음에, 필드들은 머징부(211)에서 합쳐지고, 원본 FASTQ 파일은 시스템에 의해 출력된다. 본 실시예에서, 설명하는 부호화 기술은 무손실(lossless)이고, FASTQ 파일의 리드들의 순서를 보존한다.
도 3은 본 발명의 일 실시예에 따라, FASTQ 파일의 서로 다른 데이터 필드들과 관련된 부호화 단계들을 도시한 도면이다. 도 3을 참고하면, 301 단계에서, 입력된 FASTQ 파일(301)이 입력된다. 그리고, FASTQ 파서(FASTQ parser, 203)는 입력된 FASTQ 파일(301)을 텍스트 데이터(206), 시퀀스 데이터(207) 및 퀄리티 데이터(208)로 파싱한다. 텍스트 데이터는 '@'로 시작하는 타이틀 라인 및 '+'로 시작하는 세 번째 라인을 포함한다. 텍스트 필드는 서로 다른 FASTQ 포맷들에서 다양하게 변한다. 전형적으로, 주어진 FASTQ 파일에서 타이틀 라인은 모든 타이틀 라인들 대부분에 걸쳐 반복되는 어떤 서브 문자열들(sub-strings)과 많은 불필요한 중복(redundancy)을 포함한다. 302 단계에서, 타이틀 라인에서 상이한 필드들을 식별하고, 타이틀 라인이 반복 필드(repeating fields) 및 가변 필드(variable fields)의 연속(concatenation)인 것으로 간주하고, 상기 반복 필드를 헤더(header)의 일부로서 단 1회 저장한다. 303 단계에서, 가변 필드를 위한 복수의 방법들 중에서 효율적인 부호화 방법을 식별한다. 304 단계에서, 식별된 효율적 방법을 이용하여 타이틀을 부호화한다.
나아가서, 4개의 뉴클레오티드 염기들에 대응되는 심볼들 A, C, G 및 T로 구성된 DNA 시퀀스 리드 데이터(207)가 이용된다. 그러나, A/C/G/T 염기 어느 것일 수도 있는 미지의 염기를 나타내는 심볼 N 및 IUB(International Union of Biochemistry) 명명법에 따라 불완전하게 구체화된 염기들을 나타내는 다른 심볼들의 발생들도 드물게 있을 수 있다. 305 단계에서, 시퀀스 데이터의 블록들에 대해 지향 반복부위(direct repeats), 회문 반복부위(palindromic repeats) 및 역 반복부위(reverse repeats)를 발견하고, 이는 리드 각각에 대해 수행된다. 회문 서열(palindromic sequence)은 한 가닥에 대해 5'부터 3'으로 읽는 것 또는 이중 나선을 형성하는 상보 가닥에 대해 5'부터 3'으로 읽는 것이 동일한 핵산 서열(DNA 또는 RNA)이다. 예를 들어, DNA 시퀀스 'ACCTAGGT'는 회문 서열이다. 왜냐하면, 이 시퀀스의 상보 시퀀스는 'TGGATCCA'로서, DNA 시퀀스 'ACCTAGGT'와 뉴클레오티드의 순서가 역순이기 때문이다. 본 방법은 DNA 시퀀스에서 회문 반복부위를 식별한다. 나아가서, 다이나믹 딕셔너리(dynamic dictionary)는 식별된 리드들로 유지되고, FIFO(First In, First Out) 방식으로 정기적으로 갱신된다. 이 다이나믹 딕셔너리는 상기와 같은 반복부위를 발견하는데 사용된다. 본 방법은 보다 큰 시퀀스를 형성하도록 리드들을 연결시키거나 또는 그들을 하나하나 리드 길이(read length)와 동일한 문자 크기로 간주함으로써, 시퀀스 리드 데이터를 이용하여 다이나믹 딕셔너리를 갱신한다. 다이나믹 딕셔너리는 정확 반복부위(exact repeats) 및 부정확 반복부위(inexact repeats) 및 역 반복부위에 일치하는 것을 발견하는데 사용될 수 있으나, 이에 한정되지 않는다.
나아가서, 306 단계에서, 이러한 반복부위들 각각의 부호화에 대응되는 엔트로피(entropies)를 추정함으로써, 복수의 방법들 중에서 부호화의 효율적 방법을 발견한다. 반복부위의 유형은 부호화된 반복의 길이(length of the repeat), 딕셔너리 주소(dictionary address) 및 불일치부분들(mismatches)가 존재한다면, 이들에 뒤이어 신호화된다(signaled). 또한, 불일치부분들(mismatches)의 비대칭 분포(skewed distribution)가 효율적 압축을 달성시키기 위해 사용된다. 본 실시예에서, 발견된 반복 서열(repeat sequence)이 없거나 또는 이 방법들에 대해 계산된 엔트로피가 1차 마르코프 부호화(order-1 Markov encoding)의 엔트로피보다 높다면, DNA 시퀀스를 부호화하기 위해서는 후자가 사용된다.
307 단계에서, 리드 데이터의 각각의 서브 파트(sub-part)를 압축하기 위해 사용된, 부호화 메커니즘의 유형을 나타내는 산술 부호화(arithmetic coding)와 같은 엔트로피 부호화(entropy coding)를 사용하나, 이에 한정되지 않는다. 또한, 본 방법은 반복부위인 것으로 부호화된 블록들에서 불일치부분들(mismatches)의 개수를 효율적으로 나타내기 위해 산술 부호화를 이용한다.
본 방법은 입력된 FASTQ 파일의 퀄리티 데이터(208)를 이용한다. 퀄리티 스코어는 염기 콜 방법들(base calling methods)에 의해 출력된 뉴클레오티드 염기를 정확하게 식별하는데 있어서의 오차의 확률을 나타낸다. PHRED는 DNA 시퀀스 추적을 위한 염기 콜 프로그램(base-calling program)이다. PHRED는 DNA 시퀀스 크로마토그램(DNA sequence chromatogram) 파일들을 읽고, 퀄리티 스코어("Phred scores")를 각각의 염기 콜(base call)에 정렬시켜 염기들을 콜(call)하기 위한 피크들을 분석한다. PHRED 퀄리티 스코어는 퀄리티 스코어를 나타내기 위한 사실상 표준(de facto standard)이고, Sanger FASTQ, Illumina 1.3+ FASTQ 및 SAM (Sequence Alignment Map)과 같은 다른 NGS 포맷들에서 마찬가지로 사용된다. 다른 유형의 퀄리티 스코어는 Solexa FASTQ 포맷에서 사용된다. 이와 같은 두 유형의 퀄리티 스코어들 및 그들 사이의 변환은 다음의 수학식들에 의해 정의된다.
퀄리티 값(QV) 스코어는 염기 콜 기기(base caller)의 정확성에 대한 염기마다의 추정치(per-base estimate)이다. 이러한 퀄리티 스코어의 범위는 FASTQ 파일의 종류(variant)에 의존하여 변하나, 최대 94이다. PHRED 종류(variant)에서 퀄리티 값은 ASCII 값 33부터 126 사이로 매핑되고, 다른 종류들(variants)은 PHRED와 비교하여 보다 작은 범위로 매핑된다.
308 단계에서, 심볼 통계량들(symbol statistics)을 모은다. 309 단계에서, 퀄리티 스코어의 서로 다른 표현들에 대한 엔트로피를 계산하고, 심볼 통계량에 기초하여 효율적인 방법/메커니즘을 획득한다. 상기 심볼 통계량을 효율적인 코드화 방법을 이용하여 개별적으로 가공하여 압축된 비트 스트림을 생성시킨다. 310 단계에서, 식별된 효율적 방법을 이용하여 퀄리티 값을 부호화한다. 퀄리티 스코어를 위한 가능한 표현들은 이하에서 설명된다.
퀄리티 시퀀스가 x(n)으로 표현된다고 가정하면, 차이 신호(difference signal)는 아래와 같이 표현된다.
또한, x(-1)는 ASCII 33에 대응되는 심볼과 동일하게, 33인 것으로 추정된다. 본 실시예에서, 퀄리티 값은 산술 부호화, 허프만 부호화(Huffman coding) 등과 같은 적절한 엔트로피 부호화 메커니즘들에 의해 부호화될 수 있으나, 이에 한정되지 않는다.
그리고 나서, 본 방법은 퀄리티 스코어를 퀄리티 값(Qi)의 연속 및 상응하는 런 길이(run length, RLi)로 표현한다. 런 길이는 문자열에서 심볼이 k번 반복된다면 k-1이 사용된다. 그리고, 이것들은 별개의 심볼들로 간주되고, 적응적 산술 부호화(adaptive arithmetic coding, AAC)를 이용하여 부호화된다.
다음으로, 본 방법은 심볼로서 <Qi, RLi> 쌍을 사용하고, 이는 가능한 심볼의 총합(QRANGE * Read LengthMAX)을 제공한다. 더욱이, 본 방법은 최대 횟수로 발생하는 퀄리티 값을 식별한다. 본 실시예에서, 퀄리티 값은 Qmax로 표현된다. 그리고, 본 방법은 퀄리티 스트림을 오프셋(offset), 퀄리티 스코어 및 그것의 런 길이의 세 요소들의 연속(concatenation)인 것으로 표현한다. 퀄리티 값이 최대 발생 값이 아닌 경우 상기 오프셋은 0으로 설정되고, 그렇지 않으면 런 길이로 설정된다. 그러므로, 최대로 발생한 퀄리티 값은 단 1회 저장될 필요가 있다.
다른 실시예에 따르면, 본 방법은 최대 횟수만큼 발생한 퀄리티 값을 식별한다. 다음에, 퀄리티 스트림은 오프셋 및 투플(tuple) <quality score, its run length>로 만들어진 복합 심볼(composite symbol)의 두 요소들의 연속(concatenation)과 같은 신규한 방식으로 표현된다. 퀄리티 값이 최대 발생 값이 아닌 경우 상기 오프셋은 0으로 설정되고, 그렇지 않으면 런 길이로 설정된다. 그러므로, 최대로 발생한 퀄리티 값은 단 1회 저장될 필요가 있다.
상기 표 1은 앞서 설명된 방법들 모두에서의(6 종류) 퀄리티 스트림을 나타낸다. 첫번째 차이점은 최소의 퀄리티 스코어로 계산된다(Qmin = 33). 제안된 방법은 우선, 앞서 설명된 방법들에서의 퀄리티 스트림을 부호화하기 위한 통계량들을 획득하고, 추정된 압축 이득들(compression gains)을 갖는 통계량을 이용하여 부호화한다.
도 4는 본 발명의 일 실시예에 따라, 타이틀 라인들의 서로 다른 필드들을 도시한 블록도이다.
한편, 표 2는 불변 필드, 가변 필드 및 구분 문자(delimiters)의 연속으로 표현된 타이틀 라인을 나타낸다. 주어진 파일에서 타이틀 라인은 모든 타이틀 라인 대부분에서 반복하는 어떤 서브 문자열과 많은 중복을 포함한다. 제안된 방법은 타이틀 라인을 반복 필드(repeating fields) 및 비반복 필드(non-repeating fields)의 연속인 것으로 간주한다.
표 2에 설명된 반복 필드들은 그들의 컴팩트한 표현(compact representation)으로 헤더 정보의 일부로서 단 1회 저장된다. 비반복 필드들은 숫자 필드(numeric fields) 및 영숫자 필드(alpha-numeric fields)로 더 분류된다. 비반복 영숫자 필드(non-repeating alpha-numeric fields)는 'A-Z' 및 '0-9'의 심볼들을 이용한 적응적 산술 부호화를 이용하여 부호화된다. 비반복 숫자 필드들에 대해, 상기 제안된 방법은, 직접 부호화되는 경우, 심볼로서 숫자들을 처리하는 산술 코드화를 사용하거나, 또는 차분값(differential value)을 계산하고 이 차분값들을 산술 부호기(arithmetic coder)용 심볼로서 사용하여, 엔트로피를 추정한다. 낮은 엔트로피 값을 야기하는 방법은 숫자 필드를 부호화하는데 사용된다.
헤더는 각각의 필드의 성격(반복부위 또는 비반복부위) 및 유형(숫자 또는 영숫자를 포함한다. 자연스럽게, 불변 필드는 영숫자로 표시된다. 제안된 방법은 또한 타이틀 라인에서 메이트 페어(mate pair) 정보의 존재를 식별한다. 만약 발견된다면, 이 정보는 '1' 및 '2'를 유일한 가능한 심볼로서 이용하여 효율적으로 부호화된다. 많은 FASTQ 파일들은 표 2에 나타난 것과 같이 'length' 필드를 포함하고, 퀄리티 데이터의 길이와 동일한, 상응하는 DNA 시퀀스의 길이가 수반된다. 타이틀 라인에 'length' 필드가 존재한다면, 제안된 방법은 동일한 것을 나타내는 적절한 플래그를 설정한 이 필드의 부호화를 폐기한다(discard). 디코더 말단에서, 이것은 시퀀스를 최초로 복호화함으로써 재구성된다.
제안된 방법은 또한 타이틀 라인의 포맷에 관한 한 어느 불일치부분들(inconsistencies)이 존재하는지를 검출할 수 있다. 그와 같은 경우, 상기 언급된 과정은 일치 지점까지 계속되고, 나머지 타이틀 라인은 적응적 산술 부호화를 이용하여 부호화되며, 전체 인쇄가능한 ASCII 범위를 심볼 세트로서 취한다. 그리고 나서, 이 방법은 플러스(+)로 시작하는 세번째 라인이 타이틀 라인의 반복인지를 검사한다. 아니라면, 상기 내용을 표시하기 위해 플래그가 전송된다. 이 라인이 심볼 '+'만을 포함하는 경우, 이를 신호하는 플래그가 설정되며, 그렇지 않은 경우, 이 라인들에 대해서도 타이틀 라인과 관련된 유사한 방법들이 적용된다.
도 5는 본 발명의 일 실시예에 따른 퀄리티 스코어를 부호화하는 방법을 나타내는 흐름도이다. 도 5의 참조 번호 500를 참고하면, 501 단계에서, FASTQ로부터 파싱된 퀄리티 값을 획득한다. 502 단계에서, 식별된 효율적 방법을 이용하여 파싱된 퀄리티 스코어(501)를 표현한다. 나아가서, 503 단계에서, 적응적 산술 부호화를 이용하여 심볼들을 부호화한다.
대부분의 FASTQ 파일들에서, N과 같은 모호 심볼(ambiguous symbols)은 가장 낮은 퀄리티 스코어 QMIN 가 동반된다. 이와 같은 경우, 제안된 방법은 시퀀스 스트림에서 모호 심볼들에 대응되는 모든 퀄리티 값들을 제거함으로써 퀄리티 스트림을 줄인다. 본 실시예에서, 본 방법은 입력된 파일들 내의 모호 심볼의 발생 및 관련 퀄리티 스코어를 식별한다. 모호 심볼이 대부분의 경우에서 가장 낮은, 동일한 퀄리티 스코어에 항상 해당된다면, 그 값은 단 1회 부호화된다.
모호 심볼들에 대응되는 많은 퀄리티 값들을 갖는 파일들에 있어서, 제안된 방법은 근접 무손실 압축의 옵션을 사용하고, 가장 낮은 퀄리티 스코어 QMIN은 모든 모호 염기들에 할당된다. 그러나, 무손실 압축에 있어서, 앞서 설명한 것과 같이 퀄리티 스트림을 줄이지 않는 동일한 방법이 수행된다.
도 6은 본 발명의 일 실시예에 따라, DNA 시퀀스를 부호화하는 과정을 도시한 도면이다. 도 6을 참고하면, 601 단계에서, DNA 시퀀스의 입력 블록은 예를 들어 ATCTGGCT를 획득한다. 602 단계에서, 이미 처리된 리드들 및 FIFO 방식으로 정기적으로 갱신된 리드들을 포함하는 다이나믹 딕셔너리를 이용한다. 해쉬 테이블(hash table)은 인덱싱(indexing) 및 반복부위의 빠른 발견을 위하여 사용된다. 해쉬 테이블은 리드들이 딕셔너리에 추가되거나 제거될 경우에 갱신된다. 새로운 리드가 부호화될 때마다, 그것은 B1, B2, ..., Bn의 블록들로 구분된다. 블록 길이는 주어진 파일에서 불변하는 것으로 선택되고, 최초의 패스(initial pass)에서 결정된 최소의 리드 길이에 기초하여 결정된다. 큰 블록 길이는 반복부위를 발견할 확률을 감소시킬 것이나, 반면에 작은 블록 길이는 발견된 반복부위의 증가된 개수 및 많은 오버헤드 정보를 야기한다. 본 방법은 딕셔너리에서 입력된 블록의 지향 반복부위 및 회문 반복부위에 근사한(approximate) 것들을 검색하는데, 최대의 NMMmax는 반복부위에 불일치하도록 허용된다. 블록 길이 및 NMMmax는 또한 사용자에 의해 입력될 수 있다. 만약 주어진 블록이 반복부위로 부호화된다면, 반복부위의 유형은 부호화된 반복부위의 길이, 딕셔너리 주소 및 불일치부분(mismatches)에 뒤이어 적절한 플래그를 보냄으로써 신호화된다. 만약 반복부위가 불일치부분 nm의 개수에 부정확하다면 (≤NMMmax), 비트마스크(bitmask)가 이러한 불일치부분들(mismatches)의 위치를 마킹하기 위해 사용된다. 비트마스크는 '0' 및 '1'과 같은 심볼들로의 적응적 산술 부호화를 이용하여 압축된 형태로 저장된다. 지향 반복부위 또는 회문 반복부위와 같은 주어진 블록의 부호화에 대응되는 비트 스트림의 크기는 우선적으로 추정된다. 게다가, 본 방법은 또한 뉴클레오티드 염기들에 대한 전이 확률(transition probabilities)를 유지한다. 블록을 압축하는데 만약 1차 마르코프 부호화(order-1 Markov encoding)가 사용되었다면, 이것들은 비트 스트림 크기(size)를 추정하는데 사용된다. 마르코프 부호화는 블록에서 반복이 발견되지 않은 경우, 반복부위 부호화보다 나은 압축이 주어지는 경우, 또는 모든 블록들이 압축된 후 나머지 하나의 리드를 압축하기 위한 경우에 사용된다. 603 단계에서, 각각의 방법에서의 부호화를 위하여 추정된 크기들(sizes)을 비교한다. 그리고 나서, 604 단계에서, 이전 단계로부터 식별된 효율적 방법을 이용하여 부호화한다.
본 실시예에서, 다이나믹 딕셔너리는 압축된 파일에 저장되지 않고, 블록 단위에 기초하여 리드들을 복호화하기 위하여 복원부(decompressor)의 말단에서 재구성된다. 리드 길이는 이러한 블록들을 함께 집어넣고 리드를 재구성하기 위해 사용된다.
도 7은 본 발명의 일 실시예에 따른, 시퀀스 데이터 압축 장치(700)의 구성도이다. 도 7을 참고하면, 시퀀스 데이터 압축 장치(700)는 데이터 수신부(701), 파싱부(702), 통계량 획득부(703), 부호화 알고리즘 식별부(704) 및 압축부(705)를 포함한다. 나아가서, 도 7에 도시된 시퀀스 데이터 압축 장치(700)는 본 실시예의 특징이 흐려지는 것을 방지하기 위하여 본 실시예에 관련된 구성요소들만이 도시되어 있다. 하지만, 도 7에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있다.
도 7에 도시된 시퀀스 데이터 압축 장치(700)의 파싱부(702), 통계량 획득부(703), 부호화 알고리즘 식별부(704) 및 압축부(705)는 일반적으로 사용되는 프로세서로 구현될 수 있다. 즉, 이와 같은 프로세서는 다수의 논리 게이트들의 어레이로 구현될 수 있고, 범용적인 마이크로프로세서와 이 마이크로프로세서에서 실행될 수 있는 프로그램이 저장된 메모리의 조합으로 구현될 수도 있다. 또한, 다른 형태의 하드웨어로 구현될 수도 있음을 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 7의 시퀀스 데이터 압축 장치(700)에서 처리되는 데이터 및 시퀀스 데이터 압축 장치(700)의 동작 및 기능은 앞서 기재된 설명들에 기초한 것으로써, 이하 생략된 내용이라 하더라도 앞서 기재된 설명들이 시퀀스 데이터 압축 장치(700)에 적용될 수 있음을 당해 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
데이터 수신부(701)는 텍스트 기반 포맷의 시퀀스 데이터, 예를 들어 FASTQ 파일 포맷의 시퀀스 데이터를 수신한다. 이와 같은 시퀀스 데이터는 차세대 시퀀싱(NGS)을 이용하여 획득된 데이터에 해당될 수 있다.
파싱부(702)는 시퀀스 데이터의 텍스트를 텍스트에 포함된 정보에 따라 복수의 필드들로 파싱(parsing)한다. 만약, 시퀀스 데이터가 FASTQ 파일 포맷인 경우, 파싱부(702)는 타이틀 라인, DNA 시퀀스 리드 및 퀄리티 값 중 적어도 하나의 필드들로 파싱한다.
통계량 획득부(703)는 파싱된 필드들 각각에 포함된 문자들이 나타내는 심볼에 대한 통계량을 획득한다. 여기서, 통계량 획득부(703)는 파싱된, 타이틀 라인, DNA 시퀀스 리드 및 퀄리티 값 각각의 필드의 서브 섹션들에 대하여 통계량을 획득한다.
부호화 알고리즘 식별부(704)는 획득된 통계량에 기초하여, 파싱된 필드들 각각에 대한 압축 이득이 가장 높은 부호화 알고리즘들을 식별한다. 즉, 부호화 알고리즘 식별부(704)는 타이틀 라인에 대한 부호화 알고리즘, DNA 시퀀스 리드에 대한 부호화 알고리즘 및 퀄리티 값에 대한 부호화 알고리즘 각각을 식별한다.
압축부(705)는 파싱된 필드들 각각에 대하여 식별된 부호화 알고리즘들을 이용하여 시퀀스 데이터를 부호화함으로써 시퀀스 데이터가 압축된 비트 스트림을 생성한다. 여기서, 압축부(705)는 도 2c의 머징부(209)와 같은 구성요소를 이용하여, 타이틀 라인, DNA 시퀀스 리드 및 퀄리티 값 각각의 부호화 결과를 머징(merging)함으로써, 단일화된 비트 스트림을 생성할 수 있다.
도 8은 본 발명의 일 실시예에 따른, 시퀀스 데이터를 압축하는 방법에 관한 흐름도이다. 도 8을 참고하면, 본 실시예에 따른 시퀀스 데이터를 압축하는 방법은 도 7의 시퀀스 데이터 압축 장치(700)에서 시계열적으로 처리되는 단계들로 구성되고, 도 1 내지 6에 대해 설명된 내용들도 마찬가지로 적용될 수 있다. 따라서, 이하 생략된 내용이라 하더라도 도 1 내지 7에 관하여 이상에서 기술된 내용은 본 실시예에 따른 시퀀스 데이터를 압축하는 방법에도 적용된다.
801 단계에서, 파싱부(702)는 시퀀스 데이터의 텍스트를 텍스트에 포함된 정보에 따라 복수의 필드들로 파싱(parsing)한다.
802 단계에서, 통계량 획득부(703)는 파싱된 필드들 각각에 포함된 문자들이 나타내는 심볼에 대한 통계량을 획득한다.
803 단계에서, 부호화 알고리즘 식별부(704)는 획득된 통계량에 기초하여, 파싱된 필드들 각각에 대한 압축 이득이 가장 높은 부호화 알고리즘들을 식별한다.
804 단계에서, 압축부(705)는 파싱된 필드들 각각에 대하여 식별된 부호화 알고리즘들을 이용하여 시퀀스 데이터를 부호화함으로써 시퀀스 데이터가 압축된 비트 스트림을 생성한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
700: 시퀀스 데이터 압축 장치 701: 데이터 수신부
702: 파싱부 703: 통계량 획득부
704: 부호화 알고리즘 식별부 705: 압축부
702: 파싱부 703: 통계량 획득부
704: 부호화 알고리즘 식별부 705: 압축부
Claims (30)
- 텍스트 기반 포맷의 시퀀스 데이터를 압축하는 방법에 있어서,
상기 시퀀스 데이터의 텍스트를 상기 텍스트에 포함된 정보에 따라 복수의 필드들로 파싱(parsing)하는 단계;
상기 파싱된 필드들 각각에 포함된 심볼에 대한 통계량을 획득하는 단계;
상기 획득된 통계량에 기초하여, 상기 파싱된 필드들 각각에 대한 압축 이득이 가장 높은 부호화 알고리즘들을 식별하는 단계; 및
상기 식별된 부호화 알고리즘들을 이용하여 상기 시퀀스 데이터의 상기 파싱된 필드들 각각을 부호화함으로써 상기 시퀀스 데이터가 압축된 비트 스트림을 생성하는 단계를 포함하고,
상기 파싱된 필드들은 상기 텍스트에 포함된 타이틀 라인, DNA 시퀀스 리드(DNA sequence read) 및 퀄리티 값(quality values) 중 적어도 하나를 포함하고,
상기 식별하는 단계는 부호화의 가능 확률(possible probabilities)에 따라 상기 시퀀스 데이터의 상기 필드들을 부호화하는 최적 방식을 결정함으로써 상기 부호화 알고리즘을 식별하고,
상기 생성하는 단계는 산술 부호화(arithmetic encoding), 마르코프 부호화(Markov encoding) 및 허프만 부호화(Huffman encoding) 중 적어도 하나를 이용하여 상기 시퀀스 데이터를 부호화함으로써 상기 압축된 비트 스트림을 생성하고,
상기 획득하는 단계는 상기 텍스트에 포함된 퀄리티 스트림을 줄이기 위하여 상기 파싱된 텍스트에 포함된 퀄리티 스코어에서 모호 심볼들에 대응하는 퀄리티 값들을 제거하고 상기 파싱된 필드들 각각에 포함된 심볼에 대한 상기 통계량을 획득하고,
상기 모호 심볼들에 대응하는 상기 퀄리티 값들에 대해서는 가장 낮은 퀄리티 값이 할당되고,
상기 생성하는 단계는 상기 할당된 결과를 이용하여 상기 압축된 비트 스트림을 생성하는, 방법. - 삭제
- 삭제
- 제 1 항에 있어서,
상기 파싱하는 단계는
상기 텍스트에 포함된 상기 타이틀 라인에서 불변 필드(constant fields), 가변 필드(variable fields) 및 구분 문자(delimiters)가 식별되도록 상기 타이틀 라인을 더 파싱하는 방법. - 제 4 항에 있어서,
상기 가변 필드는
숫자(numeric) 가변 필드 및 영숫자(alphanumeric) 가변 필드를 식별하기 위해 더 파싱되는 방법. - 제 5 항에 있어서,
상기 식별하는 단계는
상기 숫자 가변 필드에 대한 엔트로피 계산을 이용함으로써 상기 부호화 알고리즘을 식별하는 방법. - 제 1 항에 있어서,
상기 텍스트 기반 포맷은 FASTQ 포맷인 방법. - 제 1 항에 있어서,
상기 파싱 전, 상기 텍스트 기반 포맷의 상기 시퀀스 데이터에 대하여 차세대 시퀀싱(NGS) 데이터의 출처(origin)를 결정하는 단계를 더 포함하는 방법. - 제 1 항에 있어서,
상기 텍스트에 포함된 DNA 시퀀스 리드의 길이를 나타내는 길이(length) 필드를 검사하는 단계를 더 포함하고,
상기 획득하는 단계는 상기 길이 필드가 존재한다면, 상기 길이 필드에 대한 값을 폐기하고(discarding) 상기 통계량을 획득하는 방법. - 삭제
- 제 1 항에 있어서,
상기 획득하는 단계는
상기 텍스트에 포함된 타이틀 라인에서 불일치부분(inconsistencies)을 검사함으로써 상기 통계량을 획득하는 방법. - 제 1 항에 있어서,
상기 획득하는 단계는
상기 텍스트에서 최대 빈도수의 퀄리티 값(Qmax)을 식별함으로써 상기 통계량을 획득하는 방법. - 제 12 항에 있어서,
상기 텍스트에 포함된, 각각의 리드에 대한 상기 퀄리티 스트림은 오프셋, 퀄리티 심볼, 런 길이로 표현된 것인 방법. - 제 12 항에 있어서,
상기 퀄리티 스트림에서 상기 퀄리티 값은
오프셋 및 <퀄리티 심볼(quality symbol), 런 길이(run length)>로 표현된 것인 방법. - 제 1 항에 있어서,
상기 생성하는 단계는 상기 모호 심볼들의 발생빈도를 1회 부호화함으로써 상기 압축된 비트 스트림을 생성하는 방법. - 삭제
- 제 1 항에 있어서,
상기 생성하는 단계는
무손실 압축 및 근접 무손실 압축 중 적어도 하나를 이용하여 상기 압축된 비트 스트림을 생성하는 방법. - 제 1 항에 있어서,
상기 파싱하는 단계는
상기 텍스트에 포함된 DNA 시퀀스 리드에서 반복부위 및 비반복부위가 식별되도록 상기 DNA 시퀀스 리드를 더 파싱하는 방법. - 제 1 항, 제 4 항 내지 제 9 항, 제 11 항 내지 제 15 항, 제 17 항 내지 제 18 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
- 텍스트 기반 포맷의 시퀀스 데이터를 압축하는 장치에 있어서,
상기 시퀀스 데이터의 텍스트를 상기 텍스트에 포함된 정보에 따라 복수의 필드들로 파싱(parsing)하는 파싱부;
상기 파싱된 필드들 각각에 포함된 심볼에 대한 통계량을 획득하는 통계량 획득부;
상기 획득된 통계량에 기초하여, 상기 파싱된 필드들 각각에 대한 압축 이득이 가장 높은 부호화 알고리즘들을 식별하는 부호화 알고리즘 식별부; 및
상기 식별된 부호화 알고리즘들을 이용하여 상기 시퀀스 데이터의 상기 파싱된 필드들 각각을 부호화함으로써 상기 시퀀스 데이터가 압축된 비트 스트림을 생성하는 압축부를 포함하고,
상기 파싱된 필드들은 상기 텍스트에 포함된 타이틀 라인, DNA 시퀀스 리드(DNA sequence read) 및 퀄리티 값(quality values) 중 적어도 하나를 포함하고,
상기 부호화 알고리즘 식별부는 부호화의 가능 확률(possible probabilities)에 따라 상기 시퀀스 데이터의 상기 필드들을 부호화하는 최적 방식을 결정함으로써 상기 부호화 알고리즘을 식별하고,
상기 압축부는 산술 부호화(arithmetic encoding), 마르코프 부호화(Markov encoding) 및 허프만 부호화(Huffman encoding) 중 적어도 하나를 이용하여 상기 시퀀스 데이터를 부호화함으로써 상기 압축된 비트 스트림을 생성하고,
상기 통계량 획득부는 상기 텍스트에 포함된 퀄리티 스트림을 줄이기 위하여 상기 파싱된 텍스트에 포함된 퀄리티 스코어에서 모호 심볼들에 대응하는 퀄리티 값들을 제거하고 상기 파싱된 필드들 각각에 포함된 심볼에 대한 상기 통계량을 획득하고,
상기 모호 심볼들에 대응하는 상기 퀄리티 값들에 대해서는 가장 낮은 퀄리티 값이 할당되고,
상기 압축부는 상기 할당된 결과를 이용하여 상기 압축된 비트 스트림을 생성하는, 장치. - 삭제
- 제 20 항에 있어서,
상기 파싱부는
상기 텍스트에 포함된 상기 타이틀 라인에서 불변 필드(constant fields), 가변 필드(variable fields) 및 구분 문자(delimiters)가 식별되도록 상기 타이틀 라인을 더 파싱하는 장치. - 제 20 항에 있어서,
상기 파싱부는
상기 텍스트에 포함된 타이틀 라인에서 불변 필드(constant fields), 가변 필드(variable fields) 및 구분 문자(delimiters)가 식별되도록 상기 타이틀 라인을 더 파싱하고,
상기 가변 필드를 숫자(numeric) 가변 필드 및 영숫자(alphanumeric) 가변 필드를 식별하기 위해 더 파싱하는 장치. - 제 23 항에 있어서,
상기 부호화 알고리즘 식별부는
상기 숫자 가변 필드에 대한 엔트로피 계산을 이용함으로써 상기 부호화 알고리즘을 식별하는 장치. - 제 20 항에 있어서,
상기 통계량 획득부는
상기 텍스트에서 최대 빈도수의 퀄리티 값(Qmax)을 식별함으로써 상기 통계량을 획득하는 장치. - 제 25 항에 있어서,
상기 텍스트에 포함된, 각각의 리드에 대한 상기 퀄리티 스트림은 오프셋, 퀄리티 심볼, 런 길이로 표현되고,
상기 퀄리티 스트림에서 상기 퀄리티 값은 오프셋 및 <퀄리티 심볼(quality symbol), 런 길이(run length)>로 표현된 것인 장치. - 제 20 항에 있어서,
상기 압축부는 상기 모호 심볼들의 발생빈도를 1회 부호화함으로써 상기 압축된 비트 스트림을 생성하는 장치. - 삭제
- 제 20 항에 있어서,
상기 압축부는
무손실 압축 및 근접 무손실 압축 중 적어도 하나를 이용하여 상기 압축된 비트 스트림을 생성하는 장치. - 제 20 항에 있어서,
상기 파싱부는
상기 텍스트에 포함된 DNA 시퀀스 리드에서 반복부위 및 비반복부위가 식별되도록 상기 DNA 시퀀스 리드를 더 파싱하는 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/492,505 US10090857B2 (en) | 2010-04-26 | 2012-06-08 | Method and apparatus for compressing genetic data |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN1982/CHE/2011(PS) | 2011-06-10 | ||
IN1982CH2011 | 2011-06-10 | ||
IN1982/CHE/2011(CS) | 2012-04-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120137235A KR20120137235A (ko) | 2012-12-20 |
KR101969848B1 true KR101969848B1 (ko) | 2019-04-17 |
Family
ID=47915646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120056228A KR101969848B1 (ko) | 2010-04-26 | 2012-05-25 | 유전자 데이터를 압축하는 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101969848B1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657627B (zh) * | 2013-11-18 | 2017-12-05 | 广州中国科学院软件应用技术研究所 | Fastq格式读段开头的寻找和判断方法以及系统 |
KR101582391B1 (ko) * | 2013-12-30 | 2016-01-06 | 강원대학교산학협력단 | 2진법을 이용한 유전자 서열 기반 대용량 데이터 병합 압축장치 및 그 압축방법 |
KR101717898B1 (ko) | 2015-09-11 | 2017-03-20 | 홍성무 | 직불(直火)구이의 석쇠장치 |
CN105205174B (zh) * | 2015-10-14 | 2019-10-11 | 北京百度网讯科技有限公司 | 用于分布式系统的文件处理方法和装置 |
KR102265523B1 (ko) * | 2019-03-28 | 2021-06-15 | 에스케이텔레콤 주식회사 | 유전체 데이터 압축장치 및 그 장치의 동작 방법 |
CN112086134A (zh) * | 2019-06-15 | 2020-12-15 | 广州明领基因科技有限公司 | 一种基因大数据分析与计算平台 |
KR102247812B1 (ko) * | 2020-12-08 | 2021-05-04 | (주)셀레브레인 | 특정 유전자가 삽입된 줄기세포치료제의 유전자 삽입부위 분석 시스템 및 분석 방법 |
KR102497634B1 (ko) * | 2020-12-21 | 2023-02-08 | 부산대학교 산학협력단 | 문자 빈도 기반 서열 재정렬을 통한 fastq 데이터 압축 방법 및 장치 |
KR102328214B1 (ko) * | 2021-05-17 | 2021-11-19 | (주)제이엘케이 | 의료 데이터의 전처리를 통한 의료 데이터베이스 구축 시스템 및 동작 방법 |
CN117316301B (zh) * | 2023-11-22 | 2024-03-05 | 北华大学 | 一种基因检测数据智能压缩处理方法 |
-
2012
- 2012-05-25 KR KR1020120056228A patent/KR101969848B1/ko active IP Right Grant
Non-Patent Citations (2)
Title |
---|
Cao, Minh Duc, et al. "A simple statistical algorithm for biological sequence compression." Data Compression Conference, 2007. DCC'07. IEEE, (2007.04.10.) 1부.* |
Deorowicz, Sebastian and Szymon Grabowski. "Compression of DNA sequence reads in FASTQ format." Bioinformatics vol.27. no.6 pp.860-862. (2011.01.19.) 1부.* |
Also Published As
Publication number | Publication date |
---|---|
KR20120137235A (ko) | 2012-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101969848B1 (ko) | 유전자 데이터를 압축하는 방법 및 장치 | |
US10090857B2 (en) | Method and apparatus for compressing genetic data | |
CN110603595B (zh) | 用于从压缩的基因组序列读段重建基因组参考序列的方法和系统 | |
US8972201B2 (en) | Compression of genomic data file | |
EP2595076B1 (en) | Compression of genomic data | |
Bhola et al. | No-reference compression of genomic data stored in fastq format | |
EP3583249B1 (en) | Method and systems for the reconstruction of genomic reference sequences from compressed genomic sequence reads | |
WO2019080670A1 (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
JP2020509474A (ja) | 圧縮されたゲノムシーケンスリードからゲノムリファレンスシーケンスを再構築するための方法とシステム | |
CN110021368B (zh) | 比对型基因测序数据压缩方法、系统及计算机可读介质 | |
KR20190113971A (ko) | 다중 게놈 디스크립터를 이용한 생명정보학 데이터의 압축 표현 방법 및 장치 | |
Cánovas et al. | Practical compression for multi-alignment genomic files | |
Voges et al. | Predictive coding of aligned next-generation sequencing data | |
AU2017399715A1 (en) | Method and systems for the reconstruction of genomic reference sequences from compressed genomic sequence reads | |
WO2018151788A1 (en) | Method and systems for the efficient compression of genomic sequence reads | |
CN110663022B (zh) | 使用基因组描述符紧凑表示生物信息学数据的方法和设备 | |
CN110915140A (zh) | 用于编码和解码数据结构的质量值的方法 | |
US20240194296A1 (en) | Method for the Compression of Genome Sequence Data | |
Kuruppu | Compression of large DNA databases. | |
Mistereggen | Compression of Short Read data sets | |
JP2014229926A (ja) | データ変換方法、データ逆変換方法、装置、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |