KR102739945B1 - A method and device for generating a pileup file from compressed domain genomic data - Google Patents
A method and device for generating a pileup file from compressed domain genomic data Download PDFInfo
- Publication number
- KR102739945B1 KR102739945B1 KR1020160025763A KR20160025763A KR102739945B1 KR 102739945 B1 KR102739945 B1 KR 102739945B1 KR 1020160025763 A KR1020160025763 A KR 1020160025763A KR 20160025763 A KR20160025763 A KR 20160025763A KR 102739945 B1 KR102739945 B1 KR 102739945B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- pileup
- segment
- string
- read
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000006243 chemical reaction Methods 0.000 claims abstract description 19
- 238000012217 deletion Methods 0.000 claims description 17
- 230000037430 deletion Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 11
- 238000003780 insertion Methods 0.000 claims description 10
- 230000037431 insertion Effects 0.000 claims description 10
- 238000007906 compression Methods 0.000 abstract description 20
- 230000006835 compression Effects 0.000 abstract description 20
- 238000007481 next generation sequencing Methods 0.000 description 20
- 238000006467 substitution reaction Methods 0.000 description 18
- 230000006837 decompression Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 235000019506 cigar Nutrition 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 239000002773 nucleotide Substances 0.000 description 2
- 125000003729 nucleotide group Chemical group 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000007614 genetic variation Effects 0.000 description 1
- 238000013090 high-throughput technology Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000002864 sequence alignment Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B20/00—ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
Landscapes
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Evolutionary Biology (AREA)
- Biophysics (AREA)
- Medical Informatics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Genetics & Genomics (AREA)
- Molecular Biology (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
Abstract
레퍼런스 기반 압축 파일로부터 파일업 파일(pileup file)을 생성하는 방법 및 장치에 관한 것으로, 압축된 복수의 리드 데이터를 포함하는, 레퍼런스(reference) 기반 압축 파일을 수신하는 단계, 상기 복수의 리드 데이터를 부분적으로 압축 해제(decompress)하여, 상기 복수의 리드 데이터 각각에 연관된 차이 문자열(differential string)을 획득하는 단계 및 복수의 변환 규칙들(conversion rules)에 기초하여, 상기 차이 문자열을 디코딩함으로써, 파일업 파일(pileup file)을 생성하는 단계를 포함하는 파일업 파일을 생성하는 방법이 개시된다.A method and device for generating a pileup file from a reference-based compression file are disclosed, comprising the steps of: receiving a reference-based compression file including a plurality of compressed lead data; partially decompressing the plurality of lead data to obtain a differential string associated with each of the plurality of lead data; and generating a pileup file by decoding the differential string based on a plurality of conversion rules.
Description
다양한 실시예들은, 일반적으로 차세대 시퀀싱(NGS, Next Generation Sequencing)에 관한 것이며, 더욱 상세하게는 압축된 NGS 게노믹 데이터로부터 파일업 파일(pileup file)을 생성하는 메커니즘에 관한 것이다.The various embodiments relate generally to Next Generation Sequencing (NGS), and more specifically to mechanisms for generating pileup files from compressed NGS genomic data.
계산 생물학(computational biology)에 있어서, 차세대 시퀀싱(NGS)은 DNA 또는 RNA를 시퀀싱하기 위한 새롭고, 처리량이 높은 기술로 간주된다. NGS는 개인의 게놈(genome) 또는 개인들의 집단의 게놈을 분석하여, 예를 들어, 인구 샘플들에서 유전 변이에 대한 종합적인 목록을 만드는데 이용될 수 있다. NGS에 기초하는 진단은, 개인에 대한 효과적인 치료를 처방함에 있어, 중요한 영향을 가지고 있다. 그러한 개인화된 진단은 종종 NGS 분석 파이프라인을 통한 개인의 DNA 데이터를 분석하는 것으로부터 획득된 돌연변이 세트들에 기초한다. 개인의 질병을 특성화시키는 이 돌연변이들은 임상의들이 맞춤화된 치료를 수행하는데 도움을 준다. NGS 방법은 전형적으로 시퀀스된 DNA 분자를 증폭시키고, 이러한 복제들을 리드(read, 10개 내지 1000개의 인접한 염기 쌍들)라고 불리우는 더 작은 가닥들(strands)로 나눈다. 이러한 리드들은 차례로 배열되고, 그 결과는 FASTQ 파일에 저장된다(배열되지 않은 NGS 시퀀스 리드 + 퀄리티 데이터는 FASTQ 파일에 저장된다).In computational biology, next-generation sequencing (NGS) is considered a new, high-throughput technology for sequencing DNA or RNA. NGS can be used to analyze the genome of an individual or a population of individuals, for example, to create a comprehensive list of genetic variations in population samples. NGS-based diagnostics have important implications for prescribing effective treatments to individuals. Such personalized diagnostics are often based on sets of mutations obtained from analyzing an individual's DNA data through an NGS analysis pipeline. These mutations, which characterize an individual's disease, help clinicians tailor treatments. NGS methods typically amplify sequenced DNA molecules and break these copies into smaller strands called reads (10 to 1000 contiguous base pairs). These reads are then aligned, and the results are stored in a FASTQ file (unaligned NGS sequence reads + quality data are stored in a FASTQ file).
NGS 시퀀싱을 통하여 획득된 게노믹 데이터를 분석하기 위하여, 리드들은 우선 레퍼런스(게노믹 데이터의 참조 표준이란 의미로서, 각 종을 대표하는 게노믹 데이터로 해석할 수 있음)에 정렬되고, 시퀀스 얼라인먼트/맵(Sequence Alignment Map: SAM) 파일에 저장된다. 각 리드에 대응하여, SAM 파일은 리드 시퀀스, 퀄리티 값들, 리드-레벨 퀄리티 값, 레퍼런스에 대한 얼라인먼트 위치, 및 CIGAR 문자열과 같은 복수의 필드들을 가진다. CIGAR 문자열은 리드와 레퍼런스 사이의 차이의 표현을 포함한다. SAM 파일은 몇 MB로부터 GB까지의 사이즈를 가진다. 게노믹 데이터의 분석은 변이 콜링(variation calling)과 같은 단계들을 요구한다. 변이 콜링(variation calling)은 분석될 게노믹 데이터의 파일업 파일(pileup file)을 요구한다.In order to analyze genomic data acquired through NGS sequencing, reads are first aligned to a reference (a reference standard for genomic data, which can be interpreted as genomic data representing each species) and stored in a Sequence Alignment Map (SAM) file. For each read, the SAM file has multiple fields such as a read sequence, quality values, a read-level quality value, an alignment position with respect to the reference, and a CIGAR string. The CIGAR string contains a representation of the difference between the read and the reference. The SAM file ranges in size from several MB to GB. Analysis of genomic data requires steps such as variation calling. Variation calling requires a pileup file of the genomic data to be analyzed.
일반적으로, 파일업(pileup) 생성과 변이 콜링(variation calling)과 같이 압축된 게노믹 데이터의 처리 또는 분석은 바이너리 얼라인먼트/맵(Binary Alignment Map: BAM) 파일이라고 불리는 이진화된 SAM 파일을 이용하여 수행된다. BAM 파일 사이즈는 몇 MB 또는 GB까지 될 수 있다. SAM 데이터가 압축된 경우, 변이 콜링(variation calling)과 파일업 파일(pileup file)의 생성을 위해, 파일업(pileup)과 변이 콜링(variation calling)을 호출하기 전에, SAM 파일의 압축된 게노믹 데이터는 우선 압축 해제되고, BAM 포맷으로 변환된다. 이에 따라, 많은 양의 메모리 공간과 프로세싱 파워가 소비되고, 게노믹 데이터 분석을 위한 시간이 증가된다.Typically, processing or analyzing compressed genomic data, such as generating pileups and variation calling, is performed using a binarized SAM file, called a Binary Alignment Map (BAM) file. The size of a BAM file can be several MB or GB. If the SAM data is compressed, before calling the pileup and variation calling for generating the pileup file, the compressed genomic data in the SAM file is first decompressed and converted to the BAM format. This consumes a large amount of memory space and processing power, and increases the time for analyzing the genomic data.
레퍼런스에 대한 NGS 리드 정보를 압축한 레퍼런스 기반 압축 파일로부터 파일업 파일을 생성하는 방법 및 장치를 제공함에 있다. 파일업 파일은 레퍼런스 기반 압축 파일에서, 하나 이상의 리드들을 압축 해제함으로써 생성된다. 이때, 압축 해제는 부분적 압축 해제이다.A method and device for generating a pileup file from a reference-based compressed file that compresses NGS read information for a reference are provided. The pileup file is generated by decompressing one or more reads from the reference-based compressed file. In this case, the decompression is partial decompression.
또한, 하나 이상의 리드들을 부분적으로 압축 해제하여, 각 리드에 대응하는 차이 문자열들을 획득하는 방법을 제공함에 있다.In addition, a method is provided for partially decompressing one or more leads to obtain difference strings corresponding to each lead.
또한, 하나 이상의 변환 규칙들을 이용하여, 차이 문자열들을 디코딩함으로써, 파일업 파일(pileup file)을 생성하는 방법을 제공함에 있다.In addition, a method of generating a pileup file by decoding difference strings using one or more conversion rules is provided.
일 실시예에 따른 파일업 파일을 생성하는 방법은, 압축된 복수의 리드 데이터를 포함하는, 레퍼런스(reference) 기반 압축 파일을 수신하는 단계, 상기 복수의 리드 데이터를 부분적으로 압축 해제(decompress)하여, 상기 복수의 리드 데이터 각각에 연관된 차이 문자열(differential string)을 획득하는 단계 및 복수의 변환 규칙들(conversion rules)에 기초하여, 상기 차이 문자열을 디코딩함으로써, 파일업 파일(pileup file)을 생성하는 단계를 포함할 수 있다.A method for generating a pileup file according to one embodiment may include the steps of receiving a reference-based compressed file including a plurality of compressed lead data, partially decompressing the plurality of lead data to obtain a differential string associated with each of the plurality of lead data, and decoding the differential string based on a plurality of conversion rules to generate a pileup file.
일 실시예에 따른 파일업 파일을 생성하는 장치는, 하나 이상의 인스트럭션들을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는, 압축된 복수의 리드 데이터를 포함하는, 레퍼런스(reference) 기반 압축 파일을 수신하고, 상기 복수의 리드 데이터를 부분적으로 압축 해제(decompress)하여, 상기 복수의 리드 데이터 각각에 연관된 차이 문자열(differential string)을 획득하며, 복수의 변환 규칙들(conversion rules)에 기초하여, 상기 차이 문자열을 디코딩함으로써, 파일업 파일(pileup file)을 생성할 수 있다.A device for generating a pileup file according to one embodiment includes a memory storing one or more instructions and a processor executing the one or more instructions stored in the memory, wherein the processor is configured to receive a reference-based compression file including a plurality of compressed read data, partially decompress the plurality of read data to obtain a differential string associated with each of the plurality of read data, and decode the differential string based on a plurality of conversion rules, thereby generating a pileup file.
일 실시예에 따른 컴퓨터로 읽을 수 있는 기록 매체는, 압축된 복수의 리드 데이터를 포함하는, 레퍼런스(reference) 기반 압축 파일을 수신하는 단계, 상기 복수의 리드 데이터를 부분적으로 압축 해제(decompress)하여, 상기 복수의 리드 데이터 각각에 연관된 차이 문자열(differential string)을 획득하는 단계 및 복수의 변환 규칙들(conversion rules)에 기초하여, 상기 차이 문자열을 디코딩함으로써, 파일업 파일(pileup file)을 생성하는 단계를 포함하는 파일업 파일 생성 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체일 수 있다.In one embodiment, a computer-readable recording medium may be a computer-readable recording medium having recorded thereon a program for causing a computer to execute a method for generating a pileup file, the method including the steps of: receiving a reference-based compression file including a plurality of compressed lead data; partially decompressing the plurality of lead data to obtain a differential string associated with each of the plurality of lead data; and decoding the differential string based on a plurality of conversion rules to generate a pileup file.
도 1은 일 실시예에 따른, 레퍼런스 기반 압축 게노믹 데이터를 포함하는 레퍼런스 기반 압축 파일로부터 파일업 파일(파일업 문자열)을 생성하기 위한 장치의 네트워크 실행을 나타내는 도면이다.
도 2는 일 실시예에 따른 파일업 파일을 생성하는 장치의 구성을 나타내는 블록도이다.
도 3은 일 실시예에 따른, 레퍼런스 기반 압축 게노믹 데이터를 포함하는 레퍼런스 기반의 압축 파일로부터 파일업 파일(pileup file)을 생성하는 방법을 나타내는 흐름도이다.
도 4a는 일 실시예에 따른 파일업 문자열(pileup string)의 생성을 위한 리드 데이터의 일 예를 나타낸다.
도 4b 내지 도 4k는 일 실시예에 따른, 변환 규칙들에 기초하여, 리드에 대한 파일업 문자열(pileup string)을 생성하는 방법을 설명하기 위해 참조되는 도면들이다.
도 5는 일 실시예에 따른 레퍼런스 기반 압축 파일로부터 파일업 파일을 생성하는 컴퓨팅 장치를 나타내는 도면이다.FIG. 1 is a diagram illustrating a network execution of a device for generating a pileup file (pileup string) from a reference-based compressed file containing reference-based compressed genomic data according to one embodiment.
FIG. 2 is a block diagram showing the configuration of a device for generating a pileup file according to one embodiment.
FIG. 3 is a flowchart illustrating a method for generating a pileup file from a reference-based compressed file containing reference-based compressed genomic data, according to one embodiment.
FIG. 4a illustrates an example of lead data for generating a pileup string according to one embodiment.
FIGS. 4B to 4K are drawings for reference to explain a method of generating a pileup string for a lead based on transformation rules according to one embodiment.
FIG. 5 is a diagram illustrating a computing device for generating a pileup file from a reference-based compressed file according to one embodiment.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.The terms used in the present invention are selected from the most widely used general terms possible while considering the functions of the present invention, but they may vary depending on the intention of engineers working in the field, precedents, the emergence of new technologies, etc. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meanings thereof will be described in detail in the description of the relevant invention. Therefore, the terms used in the present invention should be defined based on the meanings of the terms and the overall contents of the present invention, rather than simply the names of the terms.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "?부", "?모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When a part of the specification is said to "include" a component, this does not mean that other components are excluded, unless otherwise specifically stated, but rather that other components may be included. In addition, terms such as "? part", "? module", etc. described in the specification mean a unit that processes at least one function or operation, which may be implemented by hardware or software, or a combination of hardware and software.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Below, with reference to the attached drawings, embodiments of the present invention are described in detail so that those skilled in the art can easily implement the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein.
이하의 실시예들에서는, 레퍼런스 기반 압축 파일로부터 파일업 파일(파일업 문자열)을 생성하기 위한 방법 및 장치에 대해서 설명하기로 한다. 레퍼런스 기반 압축파일은, 전형적으로 레퍼런스 기반 NGS(Next generation sequencing) 데이터 압축에 기초하며, 시퀀싱은 주어진 DNA 문자열의 뉴클레오티드 순서를 결정하는 처리를 의미한다. 레퍼런스 기반 압축 파일은 복수의 NGS 리드 데이터(리드들)을 포함한다. NGS 리드 데이터는 참조 서열에 대한 차이 문자열로서 표현된다. 리드 데이터는 증폭된 DNA의 단편들(fragments)이 중첩하여(overlapping) 이어짐으로써, 시퀀싱된다. 시퀀싱 후에, 리드 데이터는 가장 잘 매칭되는 레퍼런스에 대한 위치들로 배열될 수 있다. 차이 문자열은, 리드 데이터가 배열된 지점에서, 참조 서열에 대한 리드의 차이 정보를 제공한다. 차이 문자열은, 리드의 퀄리티 값(퀄리티 벡터)뿐만 아니라 리드의 각 염기와 연관된 퀄리티 값들을 포함하는 각각의 리드에 대한 SAM 파일의 다른 구성 요소들에 따라 엔코딩된다. 리드 데이터는, 레퍼런스 기반 NGS 데이터 압축을 이용하는 레퍼런스 기반 압축 파일에서, 참조 서열과 차이 문자열에 의해 정의될 수 있다.In the following embodiments, a method and apparatus for generating a pileup file (pileup string) from a reference-based compressed file are described. The reference-based compressed file is typically based on reference-based NGS (Next generation sequencing) data compression, where sequencing refers to a process of determining a nucleotide order of a given DNA string. The reference-based compressed file includes a plurality of NGS read data (reads). The NGS read data is expressed as a difference string with respect to a reference sequence. The read data is sequenced by overlapping fragments of amplified DNA. After sequencing, the read data can be arranged to positions with respect to the reference that best matches it. The difference string provides information about the difference of the read with respect to the reference sequence at the point where the read data is arranged. The difference string is encoded according to other components of a SAM file for each read, including quality values associated with each base of the read as well as a quality value (quality vector) of the read. Read data can be defined by reference sequences and difference strings in a reference-based compressed file that utilizes reference-based NGS data compression.
일 실시예에 따른 파일업 파일 생성 방법은, 각 리드 데이터에 대응하는 차이 문자열을 획득하는 동작을 포함한다. 차이 문자열로부터 파일업 파일을 생성하는 동작은, 하나 이상의 변환 규칙들을 이용하여 수행될 수 있다. 또한, 생성된 파일업 파일은 다양한 응용들에서 이용될 수 있다. 예를 들어, 파일업 파일은 변이 콜링(variation calling)에서 이용될 수 있다.A method for generating a pileup file according to one embodiment includes an operation of obtaining a difference string corresponding to each lead data. The operation of generating a pileup file from the difference string can be performed using one or more transformation rules. In addition, the generated pileup file can be used in various applications. For example, the pileup file can be used in variation calling.
기존의 파일업 파일 생성 방법은 SAM 파일에서 압축된 리드 데이터의 재구성 또는 완전한 압축 해제가 요구되었고, 분류된 BAM 형식으로의 변환이 요구되었다. 그러나, 일 실시예에 따른 파일업 파일 생성 방법 및 장치는, 리드 데이터의 완전환 압축 해제 또는 재구성을 요구하지 않는다. 파일업 파일은, 압축된 정보를 압축 해제하여, 레퍼런스 기반 압축 파일로부터 각 리드 데이터에 대한 차이 문자열을 획득함으로써, 생성될 수 있다. 이때, 리드 데이터의 부분 압축 해제를 통하여, 차이 문자열이 획득될 수 있다. 리드 데이터의 부분 압축 해제는, 리드 데이터를 완전히 재구성 또는 압축 해제하는 것보다 파일업 파일을 생성에 있어서, 시간 효율성을 높일 수 있으며, 공간 복잡도를 감소시킬 수 있다.Conventional pileup file generation methods required reconstruction or complete decompression of compressed lead data from a SAM file, and conversion to a classified BAM format. However, a pileup file generation method and device according to one embodiment do not require complete decompression or reconstruction of lead data. A pileup file can be generated by decompressing compressed information to obtain a difference string for each lead data from a reference-based compression file. At this time, the difference string can be obtained through partial decompression of the lead data. Partial decompression of the lead data can increase time efficiency and reduce space complexity in generating a pileup file compared to completely reconstructing or decompressing the lead data.
일 실시예에 따르면, 랜덤 억세스로 전체 게놈을 압축하는 레퍼런스 기반 압축 메커니즘의 사용은 선택적 영역에 대해서만 부분 압축 해제를 제공할 수 있다. 또한, 전체 게놈 데이터가 레퍼런스 기반 압축 파일로부터 억세스될 필요가 있다 하더라도, 동등한 BAM 파일을 사용하는 기존 방법과 비교하였을 때, 더 작은 메모리가 이용될 수 있다. 이는, 효율적인 압축과 리드 데이터의 부분 압축 해제로부터 기인한다.In one embodiment, the use of a reference-based compression mechanism that compresses the entire genome with random access can provide partial decompression for only selective regions. Furthermore, even if the entire genome data needs to be accessed from the reference-based compression file, less memory can be utilized compared to existing methods using equivalent BAM files. This results from efficient compression and partial decompression of the read data.
이하에서는, 도 1 내지 도 5의 도면들을 참조하여, 본 실시예들에 대해서 설명하도록 하겠다. 여기서, 도면들간에 대응되는 구성들에 대해서는 유사한 참조 문자들(reference characters)이 사용될 수 있다.Hereinafter, the present embodiments will be described with reference to the drawings of FIGS. 1 to 5. Here, similar reference characters may be used for corresponding components between the drawings.
도 1은 일 실시예에 따른, 레퍼런스 기반 압축 게노믹 데이터를 포함하는 레퍼런스 기반 압축 파일로부터 파일업 파일(파일업 문자열)을 생성하기 위한 장치(100)의 네트워크 실행을 나타내는 도면이다. 또한, 일 실시예에 따른 장치(102)는 서버(50)에서 일련의 인스트럭션들을 실행하기 위한 어플리케이션으로서 구현될 수 있다. 또한, 장치(102)는, 랩탑 컴퓨터, 데스크탑 컴퓨터, 노트북, 워크 스테이션, 서버, 네트워크 서버, 전자 장치 등과 같은 다양한 종류의 컴퓨팅 장치로서 구현될 수 있다. 또한, 일 실시예에서, 장치(102)는 클라우드 기반 환경에서 실행될 수 있다. 장치(102)는 하나 이상의 사용자 장치들(1061, 1062, 1063,?, 106N, 이하에서는, 총괄하여, 사용자 장치(106)라 한다), 또는 사용자 장치들(106)의 어플리케이션들을 통하여, 복수의 사용자들에 의해 접근될 수 있다. 예를 들어, 사용자 장치들(106)은 휴대용 컴퓨터, 개인 디지털 어시스턴트(assistant), 소형(hand-held) 디바이스, 및 워크스테이션을 포함할 수 있다. 다만, 이에 한정되지 않는다. 또한, 사용자 장치들(106)은 네트워크(104)를 통하여 장치(102)와 통신을 수행할 수 있다.FIG. 1 is a diagram illustrating a network execution of a device (100) for generating a pileup file (pileup string) from a reference-based compression file including reference-based compression genomic data according to one embodiment. In addition, the device (102) according to one embodiment can be implemented as an application for executing a series of instructions in a server (50). In addition, the device (102) can be implemented as various types of computing devices, such as a laptop computer, a desktop computer, a notebook, a workstation, a server, a network server, an electronic device, and the like. In addition, in one embodiment, the device (102) can be executed in a cloud-based environment. The device (102) can be accessed by a plurality of users via one or more user devices (106 1 , 106 2 , 106 3 , ?, 106 N , hereinafter collectively referred to as user devices (106 )), or applications of the user devices (106 ). For example, the user devices (106) may include, but are not limited to, portable computers, personal digital assistants, hand-held devices, and workstations. Additionally, the user devices (106) may communicate with the device (102) via the network (104).
일 실시예에서, 네트워크(104)는 무선 네트워크, 유선 네트워크 또는 그들의 조합일 수 있다. 네트워크(106)는 인트라넷(intranet), 근거리 네트워크(LAN), 광역 네트워크(WAN), 인터넷 등과 같은 다른 종류의 네트워크들 중 하나로 구현될 수 있다.In one embodiment, the network (104) may be a wireless network, a wired network, or a combination thereof. The network (106) may be implemented as one of other types of networks, such as an intranet, a local area network (LAN), a wide area network (WAN), the Internet, etc.
도 2는 일 실시예에 따른 파일업 파일을 생성하는 장치(102)의 구성을 나타내는 블록도이다. 도 2를 참조하면, 장치(102)는 프로세서(202), 및 입출력(I/O) 인터페이스(206)를 포함할 수 있으며, 장치(102)는 프로세서(202)에 의해 실행되는 다양한 모듈들을 저장하는 메모리(204)를 더 포함할 수 있다. 장치(102)는 프로세서(202)가 레퍼런스 기반 압축 파일에 접근하는 것이 허용되도록 구성될 수 있다. 또한, 일 실시예에서, 장치(102)는 I/O 인터페이스(206)을 통하여, 다른 저장 장치로부터 레퍼런스 기반의 압축 파일을 수신할 수 있다. 이때, 레퍼런스 기반 압축 파일은, 차이 문자열로 저장된 복수의 리드 데이터 또는 리드들을 포함한다. 일 실시예에 따른 장치(102)는 레퍼런스 기반의 압축 파일에 포함된 리드 데이터 각각에 연관된 차이 문자열을 생성할 수 있다.FIG. 2 is a block diagram illustrating a configuration of a device (102) for generating a fileup file according to one embodiment. Referring to FIG. 2, the device (102) may include a processor (202) and an input/output (I/O) interface (206), and the device (102) may further include a memory (204) for storing various modules executed by the processor (202). The device (102) may be configured to allow the processor (202) to access a reference-based compression file. In addition, in one embodiment, the device (102) may receive a reference-based compression file from another storage device via the I/O interface (206). At this time, the reference-based compression file includes a plurality of lead data or leads stored as difference strings. The device (102) according to one embodiment may generate a difference string associated with each lead data included in the reference-based compression file.
파일업 파일(pileup file)을 생성하는 장치(102)는 레퍼런스 기반의 압축 파일에 포함되는 복수의 리드 데이터를 부분적으로 압축 해제함으로써, 차이 문자열을 생성할 수 있다. 또한, 장치(102)는 복수의 변환 규칙들에 기초하여, 리드 데이터 각각의 차이 문자열을 디코딩함으로써, 파일업 파일을 생성할 수 있다. 변환 규칙들은 도 3 및 도 4a 내지 도 4k의 도면들을 함께 참조하여 뒤에서 설명하기로 한다. 생성된 파일업 파일은 메모리(204) 또는, 다른 저장 장치에 저장될 수 있으며, 다양한 응용들에서 이용될 수 있다. 예를 들어, 변이 콜링(variation calling)에서 이용될 수 있으나, 이에 한정되지는 않는다.A device (102) for generating a pileup file can generate a difference string by partially decompressing a plurality of lead data included in a reference-based compressed file. In addition, the device (102) can generate a pileup file by decoding a difference string of each lead data based on a plurality of conversion rules. The conversion rules will be described later with reference to the drawings of FIG. 3 and FIGS. 4A to 4K. The generated pileup file can be stored in a memory (204) or another storage device and can be used in various applications. For example, it can be used in variation calling, but is not limited thereto.
도 2에 도시된 파일업 파일을 생성하는 장치(102)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 장치(102)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다. 또한, 장치(102)는 다양한 다른 모듈들 또는 구성 요소들을 포함할 수 있다. 또한, 장치(102)는 하드웨어 또는 소프트웨어 구성 요소들과 함께 근거리 또는 원격으로 상호 작용하여 서로 통신하는 다양한 다른 모듈들 또는 구성요소들을 포함할 수 있다. 예를 들어, 구성 요소는, 컨트롤러 또는 프로세서에서 동작하는 프로세스, 객체, 실행 가능한 프로세스, 실행 쓰레드, 프로그램, 또는 컴퓨터를 포함할 수 있으나, 이에 한정되지 않는다.The block diagram of the device (102) for generating a file-up file illustrated in FIG. 2 is a block diagram for one embodiment. Each component of the block diagram may be integrated, added, or omitted according to the specifications of the device (102) to be actually implemented. That is, two or more components may be combined into one component, or one component may be subdivided into two or more components, as needed. In addition, the functions performed by each block are for describing embodiments, and the specific operations or devices thereof do not limit the scope of the present invention. In addition, the device (102) may include various other modules or components. In addition, the device (102) may include various other modules or components that interact with hardware or software components locally or remotely to communicate with each other. For example, a component may include, but is not limited to, a process, an object, an executable process, an execution thread, a program, or a computer operating on a controller or processor.
도 3은 일 실시예에 따른, 레퍼런스 기반 압축 게노믹 데이터를 포함하는 레퍼런스 기반의 압축 파일로부터 파일업 파일(pileup file)을 생성하는 방법을 나타내는 흐름도이다. 도 3을 참조하면, 일 실시예에 따른 파일업 파일 생성 방법은, 302 단계에서, 입력으로써, 레퍼런스 기반의 압축 파일(압축된 유전 정보)을 수신하는 동작을 포함할 수 있다. 레퍼런스 기반의 압축 파일은 레퍼런스 기반의 압축 메커니즘을 이용하여 저장되는 복수의 리드 데이터를 포함한다. 일 실시예에서, 레퍼런스 기반의 압축 메커니즘은 차이 문자열로써 표현되는 복수의 리드 데이터를 포함하는 NGS 압축 데이터일 수 있다. 일 실시예에 따른 파일업 파일 생성 방법은 단계 304에서, 레퍼런스 기반의 압축 파일에 포함되는 복수의 리드 데이터를 압축 해제하여, 리드 데이터 각각에 연관된 차이 문자열을 생성하는 동작을 포함할 수 있다. 이때, 파일업 파일을 생성하기 위해 완전히 리드들을 압축 해제(decompress)하는 기존 방법과는 달리, 리드 데이터를 부분적으로 압축 해제하여, 차이 문자열을 생성한다. 일 실시예에 따른 파일업 파일 생성 방법은 306단계에서, 하나 이상의 변환 규칙들에 기초하여, 리드 데이터 각각의 차이 문자열을 디코딩함으로써, 파일업 파일을 생성하는 동작을 포함할 수 있다. 변환 규칙들은 파일업 파일을 생성하기 위해 요구될 수 있는 각 리드 데이터에 연관된 차이 문자열의 각 세그먼트의 디코딩을 가능하게 한다. 변환 규칙들에 대해서는 뒤에서 설명하기로 한다. 생성된 파일업 파일(pileup file)은 디코딩된 차이 문자열 각각에 대응되는 복수의 필드들을 포함하는 표준 파일업 파일일 수 있다. 복수의 필드들은 레퍼런스에 대한 리드 데이터의 위치(position) 필드, 레퍼런스(reference) 필드(레퍼런스 리드 데이터), 리드 염기 정보(read base information) 필드(매치 및 미스 매치의 벡터) 및 퀄리티 정보(quality information) 필드(퀄리티 벡터)를 포함할 수 있다. 각 위치에서 벡터의 길이는 대략 SAM 파일의 뎁스(depth)와 대략적으로 동일하다. 퀄리티 벡터(quality vector)는 벡터 필드들에서 문자열에 대응하는 퀄리티 값들을 나타낸다. 특정 리드에 대응하는 파일업 문자열의 예시는 이하, 표 1과 같이 주어진다.FIG. 3 is a flowchart illustrating a method for generating a pileup file from a reference-based compressed file including reference-based compressed genomic data according to one embodiment. Referring to FIG. 3, the method for generating a pileup file according to one embodiment may include, in
(Position)location
(Position)
생성된 파일업 파일은 변이 콜링(variation calling)을 포함하는 다양한 응용들에 이용될 수 있다. 그러나, 이에 한정되지 않는다. The generated pileup file can be used for various applications including, but not limited to, variation calling.
일 실시예에 따른 파일업 파일(pileup file)을 생성하는 장치(102)는 단계 302 내지 306에서의 동작들을 포함하는 파일업 파일 생성 방법을 수행하여, 리드들의 부분 압축 해제에 기초한 파일업 파일을 생성할 수 있다.A device (102) for generating a pileup file according to one embodiment can generate a pileup file based on partial decompression of leads by performing a pileup file generating method including the operations in
일 실시예에 따른 파일업 파일 생성 방법의 다양한 동작들, 행동들, 블록들, 단계들, 및 그와 유사한 것들은 도 3을 참조하여 설명된 순서로, 또는 다른 순서로, 또는 동시에 수행될 수 있다. 또한, 다른 실시예로서, 일부 동작들, 행동들, 블록들, 단계들, 및 그와 유사한 것들은 본 발명의 권리범위를 벗어나지 않는 범위 내에서, 삭제, 추가, 수정, 생략될 수 있다.Various operations, actions, blocks, steps, and the like of the method for creating a pileup file according to one embodiment may be performed in the order described with reference to FIG. 3, or in a different order, or simultaneously. Furthermore, as another embodiment, some operations, actions, blocks, steps, and the like may be deleted, added, modified, or omitted without departing from the scope of the present invention.
도 4a는 일 실시예에 따른 파일업 문자열(pileup string)의 생성을 위한 리드 데이터의 일 예를 나타낸다. 도 4a는 일 실시예에 따른 레퍼런스에 대한 리드 데이터의 배열 상세를 나타낸다. 도 4a는 레퍼런스(402a), 리드(404a), 레퍼런스에 대하여 배열된 리드(406a), 및 CIGAR과 차이 문자열(differential string)(408a)을 포함한다. CIGAR 문자열은 레퍼런스와 리드의 차이를 기존의 SAM 파일 형식으로 저장하기 위해 이용된다. CIGAR은 차이 문자열로 간주될 수 있으나, 레퍼런스에서의 동등한 위치에 대한 리드에서의 치환(substitution) 및 불일치(mismatch)와 같은 변화들의 위치에 대한 정보뿐만 아니라, 그러한 변화들에 대한 구체적인 정보를 포함하지 않는다.FIG. 4a illustrates an example of lead data for generating a pileup string according to one embodiment. FIG. 4a illustrates arrangement details of lead data for a reference according to one embodiment. FIG. 4a includes a reference (402a), a lead (404a), a lead arranged for the reference (406a), and a CIGAR and a differential string (408a). The CIGAR string is used to store the difference between the reference and the lead in a conventional SAM file format. Although the CIGAR may be considered a difference string, it does not contain specific information about the location of changes, such as substitutions and mismatches in the lead for equivalent positions in the reference, as well as information about such changes.
레퍼런스(402a)는 레퍼런스 기반의 압축 파일을 생성하기 위해, 리드 (404a)에 대한 레퍼런스 시퀀스로서 사용된다. 레퍼런스(402a)와 리드(404a) 사이의 차이 정보는, 다른 리드 관련 정보에 부가하여, 차이 문자열(408a)로써, 레퍼런스 기반의 압축 파일에 저장된다. 레퍼런스에 기반한 NGS 데이터 압축에 있어서, 차이 정보가 엔코딩될 수 있으며, 이에 따라, 상당한 메모리 감소의 결과를 야기할 수 있다. 차이(difference)의 위치는 차이 오프셋(differential offset)을 이용하여 엔코딩될 수 있다. 또한, 리드와 레퍼런스 사이의 변화 타입 뒤에 뉴클레오티드 시퀀스가 엔코딩될 수 있다(다만, 삭제 오퍼레이션의 경우는 제외). 엔트로피 코더(예를 들어, 연산 코더)는 상기 파라미터들 각각을 압축하는데 이용될 수 있다. 퀄리티 값들은, 배열되지 않은 NGS 데이터의 압축(예를 들어, FASTQ 파일)에서 이용되는 부호들과 같은 부호들을 압축하는 것과 관련된 방법을 이용함으로써 압축될 수 있다.The reference (402a) is used as a reference sequence for the read (404a) to generate a reference-based compression file. The difference information between the reference (402a) and the read (404a) is stored in the reference-based compression file as a difference string (408a) in addition to other read-related information. In the reference-based NGS data compression, the difference information can be encoded, which can result in significant memory reduction. The location of the difference can be encoded using a differential offset. Additionally, a nucleotide sequence can be encoded after the change type between the read and the reference (except for the case of a delete operation). An entropy coder (e.g., an operation coder) can be used to compress each of the above parameters. The quality values can be compressed using a method related to compressing codes such as those used in the compression of unaligned NGS data (e.g., a FASTQ file).
레퍼런스 시퀀스와 리드 사이의 차이를 나타내는 차이 문자열은 치환 "S", 삽입 "I", 삭제 "D", 및 소프트클리핑(softclipping) "@"을 포함하는 인디케이터들을 포함할 수 있다. 일 실시예에 따른 차이 문자열(408a)은 "0@AAA 0SC 3SA 0IAT 0SCG 0D2"일 수 있다.A difference string indicating the difference between the reference sequence and the read may include indicators including substitution "S", insertion "I", deletion "D", and softclipping "@". A difference string (408a) according to one embodiment may be "0@AAA 0SC 3SA 0IAT 0SCG 0D2".
일 실시예에 따른 파일업 파일을 생성하는 장치(102)는 변환 규칙들을 이용하여, 차이 문자열을 디코딩함으로써 파일업 파일을 생성할 수 있다. 일 실시예에 따른 변환 규칙들은 이하, 표 2를 참조하여, 설명하기로 한다. 파일업 파일(pileup file)에 포함되는 복수의 필드들은 위치(position) 필드(레퍼런스에 대한 상대적인 위치를 나타냄), 레퍼런스(reference) 필드, 리드 염기 정보(read base information) 필드, 및 퀄리티(quality) 정보 필드를 포함할 수 있다.A device (102) for generating a pileup file according to one embodiment can generate a pileup file by decoding a difference string using conversion rules. The conversion rules according to one embodiment will be described below with reference to Table 2. A plurality of fields included in a pileup file can include a position field (indicating a relative position with respect to a reference), a reference field, a read base information field, and a quality information field.
- 리드의 시작 지점 및 시작 지점에 대응하는 레퍼런스 염기 값을 각각 파일업 문자열(pileup string)의 위치 필드와 레퍼런스 필드에 삽입
- 리드의 시작을 나타내는"^"(제1 부호)를 "리드 염기 정보" 필드에 삽입
- 리드의 퀄리티 값을, 퀄리티 값=(리드 퀄리티+기 정의된 값)의 ASCII 값으로 리드 염기 정보 필드에 삽입(일 실시예에서, 상기 기 설정된 값은 33일 수 있음)If the segment to be decoded is the first segment of the difference string,
- Insert the starting point of the lead and the reference base value corresponding to the starting point into the location field and reference field of the pileup string, respectively.
- Insert "^" (the first symbol) indicating the start of the lead into the "Lead base information" field.
- Insert the quality value of the lead into the lead base information field as an ASCII value of quality value = (lead quality + predefined value) (in one embodiment, the predefined value may be 33).
■리드의 처음 또는 리드의 끝에서 인디케이터가 소프트 클리핑을 나타내는 "@"인디케이터인 경우, 소프트클리핑과 그에 대응하는 시퀀스를 무시
■ 인디케이터가 치환을 나타내는"S"이면,
- 차이 문자열로부터 하나 이상의 치환을 확인하고,
- 치환의 위치에서: 치환 염기 값들을 파일업 문자열의 리드 염기 정보 필드에 삽입하고, 치환 염기 값들에 대응하는 퀄리티 값들을 퀄리티 정보 필드에 삽입하며, 레퍼런스 염기 값을 레퍼런스 필드에, 대응하는 레퍼런스 위치를 위치 필드에 삽입
- 내부 상태를 치환(S에 의해 나타나는)으로 결정
- 치환의 개수만큼 위치를 증가시킴
■ 인디케이터가 "I"이면,
- 삽입은 항상 이전 위치에서 캡쳐(capture)됨
- 현재 위치에서 삽입된 염기들의 값은 리드 염기 정보 필드에, 그에 대응하는 퀄리티 값들은 퀄리티 정보 필드에 삽입됨. 염기들의 값 앞에는"+"를 추가함.
- 내부 상태를 "I"로 결정
- 위치 값은 변하지 않음.
■인디케이터가 "D"이면,
다음의 2가지 방법으로 수행될 수 있다.
- 이전 위치에서, 일치(match) 또는 치환(substitution)이 있었던 경우, 이전 위치에"-" 부호를 추가하고, 삭제될 염기들의 개수와 레퍼런스에 기초한 염기의 실제 값들을 "-" 부호 뒤에 삽입함. 삭제가 발생한 위치에 대응하는 리드 염기 정보 필드에 부호"*"를 삽입함. 또한, 해당 위치들에 대응하는 퀄리티 정보 필드에 "!"(ASCII=33: 가장 낮은 퀄리티)를 삽입함. 위치 필드와 레퍼런스 필드에 관련 값들을 삽입함.
- 삽입(insertion) 후에 삭제가 발생한 경우(다른 경우), 삭제의 위치에 대응하는 리드 염기 정보 필드에 부호 "*"를 삽입함. 위치 필드 및 레퍼런스 필드에 관련 값들을 삽입함. 또한, 해당 위치들에 대응하는 퀄리티 정보 필드에 "!"(ASCII=33: 가장 낮은 퀄리티)를 삽입함.
- 내부 상태를 "D"로 결정
- 삭제의 개수만큼 위치를 증가시킴.
■ 결정된 내부 상태로 내부 상태를 변경 또는 유지
■ 위치를 변경
■ 일치(match)는 부호 "."를 리드 염기 정보 필드에 삽입하고, 대응하는 퀄리티 값들을 퀄리티 정보 필드에 삽입. 또한, 위치 필드 및 레퍼런스 필드에 관련 값들을 삽입함.
■ 리드의 끝에서는, 부호 "$"(제2 부호)가 리드 염기 정보 필드의 마지막 엔트리에 삽입됨.■Check the indicator in each segment of the difference string
■If the indicator at the beginning or end of the lead is an "@" indicator indicating soft clipping, the soft clipping and its corresponding sequence are ignored.
■ If the indicator is “S” indicating substitution,
- Check for one or more substitutions from the difference string,
- At the location of the substitution: Insert the substitution base values into the lead base information field of the pileup string, insert the quality values corresponding to the substitution base values into the quality information field, insert the reference base value into the reference field, and insert the corresponding reference location into the location field.
- Determine the internal state by substitution (indicated by S)
- Increase the position by the number of substitutions
■ If the indicator is “I”,
- Insertion always captures the previous position
- The values of the bases inserted at the current location are inserted into the read base information field, and the corresponding quality values are inserted into the quality information field. A "+" is added in front of the base values.
- Determine the internal state as "I"
- The location value does not change.
■If the indicator is “D”,
This can be done in two ways:
- If there was a match or substitution at the previous position, add a "-" sign at the previous position, and insert the number of bases to be deleted and the actual values of the bases based on the reference after the "-" sign. Insert the sign "*" into the read base information field corresponding to the position where deletion occurred. Also, insert "!" (ASCII=33: lowest quality) into the quality information field corresponding to those positions. Insert related values into the position field and the reference field.
- If a deletion occurs after an insertion (other cases), insert the symbol "*" into the lead base information field corresponding to the deletion position. Insert related values into the position field and reference field. In addition, insert "!" (ASCII=33: lowest quality) into the quality information field corresponding to those positions.
- Determine the internal state as "D"
- Increase the position by the number of deletions.
■ Change or maintain internal state to a determined internal state
■ Change location
■ Match inserts the symbol "." into the lead base information field and inserts the corresponding quality values into the quality information field. It also inserts related values into the location field and reference field.
■ At the end of the lead, the sign "$" (second sign) is inserted into the last entry of the lead base information field.
도 4b 내지 도 4k는 일 실시예에 따른, 변환 규칙들에 기초하여, 리드(404a)에 대한 파일업 문자열(pileup string)을 생성하는 방법을 설명하기 위해 참조되는 도면들이다.FIGS. 4b to 4k are drawings referenced to explain a method of generating a pileup string for a lead (404a) based on transformation rules according to one embodiment.
[0039] 도 4b는 도 4b에 도시된 레퍼런스(402a)를 가지고, 리드(404a)에 대한 파일업 문자열(402b)을 생성하기 위한 제1 단계를 나타낸다. 리드(404a)에 대한 차이 문자열(408a)은"0@AAA 0SC 3SA 0IAT 0SCG 0D2 0IAA 0D2"로 나타난다. 1024는 레퍼런스(402a)의 시작 지점으로써, 파일업 파일을 생성하는 장치(102)는 리드 404a의 시작을 나타내는"^"기호를 리드 염기 정보 필드에 삽입하고, 염기 "A"를 파일업 문자열(402b)의 레퍼런스 필드에 삽입한다. 또한, 장치(102)는, 퀄리티 값=(리드의 퀄리티+33)의 ASCII값으로 계산되는 퀄리티 값(0)을 리드 염기 정보 필드에 삽입한다.[0039] FIG. 4b shows a first step for generating a pileup string (402b) for a lead (404a) with a reference (402a) illustrated in FIG. 4b. A difference string (408a) for the lead (404a) is represented as “0@AAA 0SC 3SA 0IAT 0SCG 0D2 0IAA 0D2”. 1024 is a starting point of the reference (402a), and the device (102) for generating the pileup file inserts a “^” symbol indicating the start of the
도 4c는 도 4c에 도시된 레퍼런스(402a)를 가지고, 리드(404a)에 대한 파일업 문자열(402b)을 생성하기 위한 제2 단계를 나타낸다. 차이 문자열(408a)의 세그먼트 "0@AAA"는 레퍼런스(402a)의 초기 위치(1024)로부터 인덱스 0에서의, AAA 염기들의 소프트클리핑"@"을 나타낸다. 표 2의 변환 규칙들에 따르면, 리드의 처음과 끝에서의 소프트클립핑은 무시된다. 또한, 내부 상태는 @로 마킹되고, 레퍼런스에서의 위치는 1024로 유지된다.Fig. 4c shows a second step for generating a pileup string (402b) for a lead (404a) with the reference (402a) shown in Fig. 4c. The segment "0@AAA" of the difference string (408a) indicates soft clipping "@" of AAA bases at
도 4d는 도 4d에 도시된 레퍼런스(402a)에 기초하여, 리드(404a)에 대한 파일업 문자열(402b)을 생성하기 위한 제3 단계를 나타낸다. 차이 문자열 (408a)의 세그먼트 "0SC"는 이전 변화된 위치(1024)에서, 염기 C로의 치환을 나타낸다. 또한, 위치(1024)에 대응하는 퀄리티 정보 필드에는 퀄리티 값이 삽입될 수 있다. 예를 들어, 장치(102)는, 도 4d에 도시된 바와 같이, 염기 C에 대응하는 퀄리티 값(#)을 퀄리티 정보 필드에 삽입할 수 있다. 또한, 레퍼런스에 대한 위치는 1024에서 1(치환된 개수)만큼 증가하여, 1025로 변경될 수 있다.FIG. 4d illustrates a third step for generating a pileup string (402b) for a lead (404a) based on the reference (402a) illustrated in FIG. 4d. The segment "0SC" of the difference string (408a) indicates a substitution of the base C at the previously changed position (1024). In addition, a quality value may be inserted into the quality information field corresponding to the position (1024). For example, the device (102) may insert a quality value (#) corresponding to the base C into the quality information field, as illustrated in FIG. 4d. In addition, the position for the reference may be changed from 1024 to 1025, increasing by 1 (the number of substitutions).
도 4e는, 도 4e에 도시된 레퍼런스(402a)에 기초하여, 리드(404a)에 대한 파일업 문자열(402b)을 생성하기 위한 제4 단계를 나타낸다. 차이 문자열(408a)의 세그먼트 "3SA"에 대하여, 2가지의 서브 단계들이 수행될 수 있다. 제1 서브 단계에서 세그먼트 "3SA"는, 위치 1025, 1026 및 1027(3개의 위치)에서, 레퍼런스에 대한 일치(match)를 나타낸다. 장치(102)는 이에 따라, 위치 1025, 1026 및 1027에 대응하는 리드 염기 정보 필드에 부호 "."를 삽입할 수 있다. 또한, 장치(102)는 위치 1025, 1026 및 1027에 각각 대응하는 퀄리티 정보 필드에, 해당 염기들(T, C, G)에 각각 대응하는 퀄리티 값(=, +, p)을 삽입할 수 있다. 장치(102)는 내부 상태를 M으로 결정하고, 레퍼런스에 대한 위치를 1024에서 1027로 변경시킬 수 있다.FIG. 4e illustrates a fourth step for generating a pileup string (402b) for a lead (404a) based on the reference (402a) illustrated in FIG. 4e. For the segment "3SA" of the difference string (408a), two sub-steps may be performed. In the first sub-step, the segment "3SA" indicates a match to the reference at
또한, 제2 서브 단계에서, 세그먼트 "3SA"는 레퍼런스(402a)에 대한 위치 1028에서 염기 C를 염기 A로 치환하는 것을 나타낸다. 제2 서브 단계에서, 장치(102)는 치환된 염기(예를 들어, 염기 A)의 퀄리티 값(예를 들어, q)을 퀄리티 정보 필드에 삽입할 수 있다. 또한, 장치(102)는 내부 상태를 S로 결정하고, 레퍼런스에 대한 위치를 1028에서 1029로 변경시킬 수 있다.Additionally, in the second sub-step, the segment "3SA" indicates substituting base C with base A at
도 4f는 도 4f에 도시된 레퍼런스(402a)에 기초하여, 리드(404a)에 대한 파일업 문자열(402b)을 생성하기 위한 제5 단계를 나타낸다. 차이 문자열(408a)의 세그먼트 "0IAT"는 위치(1029)에서, 2개의 염기들(A 및 T)의 삽입("I")을 나타낸다. 복수의 변환 규칙들에 따르면, 삽입은 항상 이전 위치에서 캡쳐되기 때문에, 현재 위치(1029)의 이전 위치인 1029에 A와 T가 삽입된다. 이때, 도 4f에 도시된 바와 같이, A와 T앞에 "+"가 추가된다. 또한, 위치 1028에서의 퀄리티 정보는 업데이트되며, 도 4f에 도시된 바와 같이, 염기 A와 T에 각각 대응하는 r과 t가 퀄리티 정보 필드에 추가된다. 또한, 장치(102)는 내부 상태를 "I"로 결정하고, 레퍼런스에 대한 위치는 1029로 유지한다.FIG. 4f illustrates a fifth step for generating a pileup string (402b) for a read (404a) based on the reference (402a) illustrated in FIG. 4f. The segment "0IAT" of the difference string (408a) indicates an insertion ("I") of two bases (A and T) at position (1029). Since the insertion is always captured at a previous position according to multiple transformation rules, A and T are inserted at
도 4g는 도 4g에 도시된 레퍼런스(402a)에 기초하여, 리드(404a)에 대한 파일업 문자열(402b)을 생성하기 위한 제5 단계를 나타낸다. 차이 문자열(408a)의 세그먼트 "0SCG"는 2개의 염기들(C와 G)로의 치환을 나타낸다. 장치(102)는 도 4g에 도시된 바와 같이, 위치 1029에 대응하는 리드 염기 정보 필드에 염기 C로의 치환을 마킹하고, 위치 1030에 대응하는 리드 염기 정보 필드에 염기 G로의 치환을 마킹할 수 있다. 또한, 장치(102)는 각 위치에서의 퀄리티 정보를 업데이트할 수 있으며, 내부 상태를 "S"로 결정할 수 있다. 또한, 장치(102)는 레퍼런스에 대한 위치를 1029에서 치환된 염기의 개수(2)만큼 증가시켜 1031로 변경시킬 수 있다.FIG. 4g illustrates a fifth step for generating a pileup string (402b) for a read (404a) based on the reference (402a) illustrated in FIG. 4g. The segment "0SCG" of the difference string (408a) indicates a substitution with two bases (C and G). The device (102) may mark the substitution with base C in the read base information field corresponding to
도 4h는 도 4h에 도시된 레퍼런스(402a)에 기초하여, 리드(404a)에 대한 파일업 문자열(402b)을 생성하기 위한 제7 단계를 나타낸다. 차이 문자열(408a)의 세그먼트 "0D2"는 위치 1031로부터 거리가 0인 위치에서, 2개의 염기들의 삭제를 나타낸다. 삭제는 2가지 방법으로 마킹될 수 있다. 첫 번째 방법은, 삭제 이전에 "M"(일치) 또는 "S"(치환)이 수행되었던 경우에 이용될 수 있다. 첫 번째 방법의 경우, 삭제되는 염기들의 개수가 n이면, 이전 위치에 대응하는 리드 염기 정보 필드에 -n과 삭제되는 염기 값이 삽입될 수 있다. 또한, 삭제 위치에 대응하는 리드 염기 정보 필드에는 부호 "*"가 마킹되고, 삭제 위치에 대응하는 퀄리티 정보 필드에는 "!"가 삽입될 수 있다. 두 번째 방법은 삭제 이전에 "M"(일치) 또는 "S"(치환)이 수행되었던 경우를 제외한 경우에 이용될 수 있다. 두 번째 방법의 경우, 삭제 위치에 "*"가 마킹되고, 삭제 위치에 대응하는 퀄리티 정보 필드에 "!"가 삽입될 수 있다.FIG. 4h illustrates a seventh step for generating a pileup string (402b) for a read (404a) based on the reference (402a) illustrated in FIG. 4h. The segment "0D2" of the difference string (408a) indicates a deletion of two bases at a position that is 0 distance from
차이 문자열(408a)의 세그먼트 "0D2"의 경우, 이전에 치환 동작이 수행되었으므로, 첫 번째 방법이 이용될 수 있다. 장치(102)는 위치 1031 및 1032에서의 레퍼런스 염기들(여기서는, A와 A)을 확인할 수 있다. 장치(102) 첫 번째 방법에 따라, 이전 위치 1030에 대응하는 리드 염기 정보 필드에 -2AA를 삽입할 수 있다. 또한, 장치(102)는, 위치 1031 및 위치 1032에 대응하는 리드 염기 정보 필드에는 부호 "*"를 삽입하고, 위치 1031 및 위치 1032에 대응하는 퀄리티 정보 필드에는 "!"를 삽입할 수 있다. 또한, 레퍼런스에 대한 위치는, 1031에서 삭제된 염기의 개수(2)만큼 증가하여 1033으로 변경될 수 있으며, 내부 상태는 "D"로 결정될 수 있다.For the segment "0D2" of the difference string (408a), since the substitution operation has been performed previously, the first method can be used. The device (102) can identify the reference bases (here, A and A) at
도 4i는 도 4i에 도시된 레퍼런스(402a)에 기초하여, 리드(404a)에 대한 파일업 문자열(402b)을 생성하기 위한 제8 단계를 나타낸다. 차이 문자열(408a)의 세그먼트 '0IAA'는 위치 1033로부터 거리가 0인 위치에서, 2개의 염기들(A와 A)의 삽입을 나타낸다. 변환 규칙들에 따르면, 삽입은 항상 이전 위치에서 캡쳐되기 때문에, 현재 위치(1033)의 이전 위치인 1032에서, A와 A가 삽입된다. 이때, 도 4i에 도시된 바와 같이, A와 A 앞에 "+"가 추가된다. 또한, 위치 1032에서의 퀄리티 정보는 업데이트되며, 도 4i에 도시된 바와 같이, 염기 A와 A에 각각 대응되는 ^와 -가 퀄리티 정보 필드에 추가된다. 또한, 내부 상태는 "I"로 결정되고, 레퍼런스에 대한 위치는 1033으로 유지된다.FIG. 4i shows the 8th step for generating a pileup string (402b) for a lead (404a) based on the reference (402a) illustrated in FIG. 4i. The segment '0IAA' of the difference string (408a) indicates an insertion of two bases (A and A) at a position whose distance is 0 from the
도 4j는 도 4j에 도시된 레퍼런스(402a)에 기초하여, 리드(404a)에 대한 파일업 문자열(402b)을 생성하기 위한 제9 단계를 나타낸다. 차이 문자열(408a)의 세그먼트'0D2'는 2개의 염기들의 삭제를 나타내며, 장치(102)는 위치 1033 및 1034에서 2개의 염기를 확인할 수 있다. 세그먼트 "0D2"의 경우, 이전에 삽입 동작이 수행되었으므로, 삭제의 두 번째 방법이 이용될 수 있다. 두 번째 방법에 따라, 장치(102)는 위치 1033 및 1034에 대응하는 리드 염기 정보 필드에 부호 "*"를 삽입하고, 위치 1033 및 1034에 대응하는 퀄리티 정보 필드에는 "!"를 삽입할 수 있다. 또한, 장치(102)는 레퍼런스에 대한 위치를 1033에서 삭제된 염기의 개수(2)만큼 증가시켜 1035로 변경시킬 수 있으며, 내부 상태를 "D"로 마킹할 수 있다.FIG. 4j illustrates a ninth step for generating a pileup string (402b) for a lead (404a) based on the reference (402a) illustrated in FIG. 4j. The segment '0D2' of the difference string (408a) represents deletion of two bases, and the device (102) can identify two bases at
도 4k는 도 4k에 도시된 레퍼런스(402a)에 기초하여, 리드(404a)에 대한 파일업 문자열(402b)을 생성하기 위한 제10 단계를 나타낸다. 이때, 레퍼런스의 위치는 1035이고, 차이 문자열에는 처리할 세그먼트가 더 남아있지 않을 수 있다. 그러나, 처리된 리드의 개수는 14개이고, 반면에 알려진 리드의 길이는 16이다. 따라서, 처리되어야 할 나머지 염기의 개수는 2(16-14=2)개가 된다. 이러한 경우, 처리되어야 할 나머지 염기의 개수가 0보다 크면, 장치(102)는 처리되어야 할 나머지 염기에 대하여, "일치" 동작을 수행할 수 있다. 예를 들어, 장치(102)는 남아있는 레퍼런스에 대응하는 염기 정보 필드에 부호 "."를 삽입하고, 레퍼런스 염기에 대응하는 퀄리티 값을 퀄리티 정보 필드에 삽입할 수 있다. 또한, 도 4k에 도시된 바와 같이, 장치(102)는 리드의 끝을 나타내는 부호 "$"를 리드 염기 정보 필드의 마지막 엔트리에 부가할 수 있다.FIG. 4K illustrates a tenth step for generating a pileup string (402b) for a read (404a) based on the reference (402a) illustrated in FIG. 4K. At this time, the position of the reference is 1035, and there may be no more segments left to be processed in the difference string. However, the number of reads processed is 14, whereas the length of the known read is 16. Therefore, the number of remaining bases to be processed becomes 2 (16-14=2). In this case, if the number of remaining bases to be processed is greater than 0, the device (102) may perform a "match" operation on the remaining bases to be processed. For example, the device (102) may insert a symbol "." into a base information field corresponding to the remaining reference, and insert a quality value corresponding to the reference base into the quality information field. Additionally, as illustrated in FIG. 4k, the device (102) may add a symbol “$” indicating the end of a lead to the last entry of the lead base information field.
일 실시예에 따르면, 장치(102)는 도 4b 내지 도 4k에서 설명한 제1 단계 내지 제10 단계를 수행하여, 파일업 문자열(402b)을 생성할 수 있다.According to one embodiment, the device (102) can generate a fileup string (402b) by performing steps 1 through 10 described in FIGS. 4b through 4k.
도 5는 일 실시예에 따른 레퍼런스 기반 압축 파일로부터 파일업 파일을 생성하는 컴퓨팅 장치를 나타내는 도면이다. 도 5를 참조하면, 컴퓨팅 장치(500)는 제어부(504) 및 연산부(506)를 포함하는 처리부(508), 메모리(510), 저장부(512), 네트워크 인터페이스(516) 및 I/O 인터페이스(514)를 포함할 수 있다.FIG. 5 is a diagram illustrating a computing device for generating a fileup file from a reference-based compression file according to one embodiment. Referring to FIG. 5, the computing device (500) may include a processing unit (508) including a control unit (504) and an operation unit (506), a memory (510), a storage unit (512), a network interface (516), and an I/O interface (514).
또한, 처리부(508)는 알고리즘의 인스트럭션들을 처리할 수 있다. 처리부(508)는 처리를 수행하기 위하여, 제어부(504)로부터 명령을 수신할 수 있다. 또한, 인스트럭션들의 실행에 포함된 임의의 논리 및 산술 연산은 연산부(506)에서 수행될 수 있다.In addition, the processing unit (508) can process instructions of the algorithm. The processing unit (508) can receive commands from the control unit (504) to perform processing. In addition, any logical and arithmetic operations included in the execution of the instructions can be performed in the operation unit (506).
일 실시예에 따른 컴퓨팅 장치(500)는 복수의 동종 또는 이종 코어(core), 상이한 종류의 복수의 CPU들, 특별한 미디어 및 기타 가속기(accelerator)를 포함할 수 있다. 처리부(508)는 하나의 칩 또는 복수의 칩들로 구현될 수 있다. 다만, 이에 한정하지 않는다.A computing device (500) according to one embodiment may include a plurality of homogeneous or heterogeneous cores, a plurality of different types of CPUs, special media, and other accelerators. The processing unit (508) may be implemented as one chip or multiple chips. However, the present invention is not limited thereto.
실행에 필요한 인스트럭션들 및 코드들을 포함하는 알고리즘은 메모리(510) 또는 저장부(512), 또는 이들 모두에 저장된다. 실행 시점에, 인스트럭션들은 메모리(510) 또는 저장부(512)로부터 독출될(fetch) 수 있고, 처리부(508)에 의해 실행될 수 있다.An algorithm including instructions and codes required for execution is stored in memory (510) or storage (512), or both. At execution time, the instructions can be fetched from memory (510) or storage (512) and executed by processing unit (508).
임의의 하드웨어 수행장치의 경우, 컴퓨팅 장치(500)는 다양한 다른 장치들과 네트워크 인터페이스(516)를 통해 연결될 수 있고, I/O 인터페이스(514)를 통하여, 사용자로부터 명령을 입력받거나, 사용자에게 컴퓨팅 장치(500)에서의 처리 결과를 제공할 수 있다.In the case of any hardware execution device, the computing device (500) can be connected to various other devices through a network interface (516), and can receive commands from a user or provide the user with processing results from the computing device (500) through an I/O interface (514).
실시예들은, 적어도 하나의 하드웨어 장치에서 동작하고, 구성요소들을 제어하기 위한 네트워크 관리 기능을 수행하는 적어도 하나의 소프트웨어 프로그램으로 구현될 수 있다. 도 1 내지 도 5에 도시된 구성요소들은 블록들을 포함하며, 블록들은 적어도 하나의 하드웨어 장치, 또는, 하드웨어 장치와 소프트웨어 모듈의 조합일 수 있다.The embodiments may be implemented by at least one software program that operates on at least one hardware device and performs network management functions for controlling the components. The components illustrated in FIGS. 1 to 5 include blocks, and the blocks may be at least one hardware device, or a combination of a hardware device and a software module.
한편, 일 실시예에 따른 파일업 파일 생성 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM. CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Meanwhile, the method for creating a pileup file according to one embodiment can be implemented as a computer-readable code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices that store data that can be read by a computer system. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc., and also includes those implemented in the form of a carrier wave, such as transmission via the Internet. In addition, the computer-readable recording medium can be distributed to computer systems connected to a network, so that the code that can be read by a processor can be stored and executed in a distributed manner.
또한, 이상에서는 본 발명의 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.In addition, although the embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and various modifications may be made by a person skilled in the art without departing from the gist of the present invention as claimed in the claims. Furthermore, such modifications should not be individually understood from the technical idea or prospect of the present invention.
Claims (15)
상기 복수의 리드 데이터를 부분적으로 압축 해제(decompress)하여, 상기 복수의 리드 데이터 각각에 연관된 차이 문자열(differential string)을 획득하는 단계; 및
복수의 변환 규칙들(conversion rules)에 기초하여, 상기 차이 문자열을 디코딩함으로써, 파일업 파일(pileup file)을 생성하는 단계;를 포함하고,
상기 복수의 변환 규칙들에 기초하여, 상기 차이 문자열을 디코딩함으로써, 파일업 파일을 생성하는 단계는,
상기 차이 문자열에 포함되는 복수의 세그먼트들 중에, 상기 파일업 파일을 생성하기 위해 처리되는 세그먼트의 위치가 제1 위치인지 판단하는 단계; 및
상기 세그먼트의 위치가 제1 위치라고 판단되는 경우, 상기 파일업 파일의 위치 필드에, 상기 리드 데이터의 시작 위치를 삽입하는 단계;
상기 파일업 파일의 레퍼런스 필드에 상기 시작 위치에 대응하는 레퍼런스의 염기를 삽입하는 단계;
상기 파일업 파일의 리드 염기 정보 필드에, 상기 리드 데이터의 시작을 나타내는 제1 부호(symbol)를 삽입하는 단계; 및
리드 퀄리티에 기 설정된 값을 더한 값의 ASCII값으로, 상기 리드 데이터의 퀄리티 값을 삽입하는 단계를 포함하는 파일업 파일(pileup file) 생성 방법.A step of receiving a reference-based compressed file, comprising a plurality of compressed lead data;
A step of partially decompressing the plurality of lead data to obtain a differential string associated with each of the plurality of lead data; and
A step of generating a pileup file by decoding the difference string based on a plurality of conversion rules;
The step of generating a fileup file by decoding the difference string based on the above plurality of conversion rules is as follows.
A step of determining whether the position of a segment processed to create the fileup file is the first position among a plurality of segments included in the above difference string; and
If the position of the above segment is determined to be the first position, a step of inserting the start position of the lead data into the position field of the pileup file;
A step of inserting a base of a reference corresponding to the start position into a reference field of the above-mentioned pileup file;
A step of inserting a first symbol indicating the start of the lead data into the lead base information field of the above-mentioned file-up file; and
A method for creating a pileup file, comprising the step of inserting a quality value of the lead data as an ASCII value of a value obtained by adding a preset value to the lead quality.
상기 파일업 파일은, 상기 차이 문자열에 대응하는 복수의 필드들을 포함하고,
상기 복수의 필드들은, 위치(position) 필드, 레퍼런스(reference) 필드, 리드 염기 정보(read base information) 필드, 및 퀄리티 정보(quality information) 필드를 포함하는, 방법.In the first paragraph,
The above fileup file includes a plurality of fields corresponding to the difference string,
A method wherein the plurality of fields include a position field, a reference field, a read base information field, and a quality information field.
상기 복수의 변환 규칙들에 기초하여, 상기 차이 문자열을 디코딩함으로써, 파일업 파일을 생성하는 단계는,
상기 세그먼트의 위치가 제1 위치가 아니라고 판단되는 경우,
상기 세그먼트에서, 인디케이터를 확인하는 단계;
상기 세그먼트에서 확인된 상기 인디케이터에 기초하여, 상기 세그먼트를 처리하는 단계; 및
상기 처리된 세그먼트에 대한 내부 상태를 마킹하는 단계;를 포함하는, 방법.In the first paragraph,
The step of generating a fileup file by decoding the difference string based on the above plurality of conversion rules is as follows.
If it is determined that the position of the above segment is not the first position,
In the above segment, a step of checking the indicator;
A step of processing the segment based on the indicator identified in the segment; and
A method comprising: a step of marking an internal state for the processed segment;
상기 복수의 변환 규칙들에 기초하여, 상기 차이 문자열을 디코딩함으로써, 파일업 파일을 생성하는 단계는,
상기 차이 문자열에 포함되는 복수의 세그먼트들이 모두 처리되면, 상기 리드 데이터의 끝(end)을 나타내는 제2 부호(symbol)를, 리드 염기 정보 필드에 삽입하는 단계;를 더 포함하는, 방법.In paragraph 5,
The step of generating a fileup file by decoding the difference string based on the above plurality of conversion rules is as follows.
A method further comprising the step of inserting a second symbol indicating the end of the read data into a read base information field when all of the plurality of segments included in the above difference string are processed.
상기 인디케이터는 소프트 클리핑 인디케이터, 치환 인디케이터, 삭제 인디케이터 및 삽입 인디케이터를 포함하는, 방법.In paragraph 5,
A method, wherein the above indicators include a soft clipping indicator, a replacement indicator, a deletion indicator and an insertion indicator.
하나 이상의 인스트럭션들을 저장하는 메모리; 및
상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
상기 프로세서는,
압축된 복수의 리드 데이터를 포함하는, 레퍼런스(reference) 기반 압축 파일을 수신하고, 상기 복수의 리드 데이터를 부분적으로 압축 해제(decompress)하여, 상기 복수의 리드 데이터 각각에 연관된 차이 문자열(differential string)을 획득하며, 복수의 변환 규칙들(conversion rules)에 기초하여, 상기 차이 문자열을 디코딩함으로써, 파일업 파일(pileup file)을 생성하고,
상기 차이 문자열에 포함되는 복수의 세그먼트들 중에, 상기 파일업 파일을 생성하기 위해 처리되는 세그먼트의 위치가 제1 위치인지 판단하고,
상기 세그먼트의 위치가 제1 위치라고 판단되는 경우, 상기 파일업 파일의 위치 필드에, 상기 리드 데이터의 시작 위치를 삽입하고, 상기 파일업 파일의 레퍼런스 필드에 상기 시작 위치에 대응하는 레퍼런스의 염기를 삽입하고, 상기 파일업 파일의 리드 염기 정보 필드에, 상기 리드 데이터의 시작을 나타내는 제1 부호(symbol)를 삽입하고, 리드 퀄리티에 기 설정된 값을 더한 값의 ASCII값으로, 상기 리드 데이터의 퀄리티 값을 삽입하는, 장치.In a device that creates a file-up file,
Memory for storing one or more instructions; and
A processor comprising: a processor for executing one or more instructions stored in the memory;
The above processor,
A method of receiving a reference-based compressed file including a plurality of compressed lead data, partially decompressing the plurality of lead data to obtain a differential string associated with each of the plurality of lead data, and generating a pileup file by decoding the differential string based on a plurality of conversion rules,
Among the multiple segments included in the above difference string, determine whether the location of the segment processed to create the above fileup file is the first location,
A device for inserting a start position of the read data into a position field of the pileup file, inserting a base of a reference corresponding to the start position into a reference field of the pileup file, inserting a first symbol indicating the start of the read data into a read base information field of the pileup file, and inserting a quality value of the read data as an ASCII value of a value obtained by adding a preset value to the read quality, if the position of the above segment is determined to be a first position.
상기 파일업 파일은, 상기 차이 문자열에 대응하는 복수의 필드들을 포함하고,
상기 복수의 필드들은, 위치(position) 필드, 레퍼런스(reference) 필드, 리드 염기 정보(read base information) 필드, 및 퀄리티 정보(quality information) 필드를 포함하는, 장치.In Article 8,
The above fileup file includes a plurality of fields corresponding to the difference string,
A device wherein the plurality of fields include a position field, a reference field, a read base information field, and a quality information field.
상기 프로세서는,
상기 세그먼트의 위치가 제1 위치가 아니라고 판단되는 경우, 상기 세그먼트에서, 인디케이터를 확인하고, 상기 세그먼트에서 확인된 상기 인디케이터에 기초하여, 상기 세그먼트를 처리하며, 상기 처리된 세그먼트에 대한 내부 상태를 마킹하는, 장치.In Article 8,
The above processor,
A device for determining, when it is determined that the position of the above segment is not the first position, checking an indicator in the above segment, processing the segment based on the indicator checked in the above segment, and marking an internal state for the processed segment.
상기 프로세서는,
상기 차이 문자열에 포함되는 복수의 세그먼트들이 모두 처리되면, 상기 리드 데이터의 끝(end)을 나타내는 제2 부호(symbol)를, 리드 염기 정보 필드에 삽입하는, 장치.In Article 12,
The above processor,
A device that inserts a second symbol indicating the end of the read data into a read base information field when all of the plurality of segments included in the above difference string are processed.
상기 인디케이터는 소프트 클리핑 인디케이터, 치환 인디케이터, 삭제 인디케이터 및 삽입 인디케이터를 포함하는, 장치.In Article 12,
The above indicators include a soft clipping indicator, a replacement indicator, a deletion indicator and an insertion indicator, the device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/158,075 US10394763B2 (en) | 2015-05-19 | 2016-05-18 | Method and device for generating pileup file from compressed genomic data |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN2510CH2015 | 2015-05-19 | ||
IN2510/CHE/2015 | 2015-05-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160136218A KR20160136218A (en) | 2016-11-29 |
KR102739945B1 true KR102739945B1 (en) | 2024-12-06 |
Family
ID=57706394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160025763A Active KR102739945B1 (en) | 2015-05-19 | 2016-03-03 | A method and device for generating a pileup file from compressed domain genomic data |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102739945B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11763918B2 (en) * | 2016-10-11 | 2023-09-19 | Genomsys Sa | Method and apparatus for the access to bioinformatics data structured in access units |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130204851A1 (en) * | 2011-12-05 | 2013-08-08 | Samsung Electronics Co., Ltd. | Method and apparatus for compressing and decompressing genetic information obtained by using next generation sequencing (ngs) |
-
2016
- 2016-03-03 KR KR1020160025763A patent/KR102739945B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130204851A1 (en) * | 2011-12-05 | 2013-08-08 | Samsung Electronics Co., Ltd. | Method and apparatus for compressing and decompressing genetic information obtained by using next generation sequencing (ngs) |
Non-Patent Citations (2)
Title |
---|
Yang Liao 외, featureCounts: an efficient general purpose program for assigning sequence reads to genomic features, Bioinformatics, 2013.11.13., Vol.30, Issue.7, pp.923-930. |
Yang Liao 외, The Subread aligner: fast, accurate and scalable read mapping by seed-and-vote, Nucleic Acids Research, 2013.05.01., Vol.41, Issue.10, pp.1-17. |
Also Published As
Publication number | Publication date |
---|---|
KR20160136218A (en) | 2016-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10394763B2 (en) | Method and device for generating pileup file from compressed genomic data | |
EP2608096B1 (en) | Compression of genomic data file | |
Wandelt et al. | Trends in genome compression | |
KR101922129B1 (en) | Method and apparatus for compressing and decompressing genetic information using next generation sequencing(NGS) | |
Zhang et al. | Light-weight reference-based compression of FASTQ data | |
JP2011501837A (en) | Two-pass hash extraction of text strings | |
US8972200B2 (en) | Compression of genomic data | |
Bonfield | CRAM 3.1: advances in the CRAM file format | |
KR20110129628A (en) | DNA sequence retrieval method and apparatus | |
JP2007508753A5 (en) | ||
Sardaraz et al. | SeqCompress: An algorithm for biological sequence compression | |
Sakib et al. | Improving transmission efficiency of large sequence alignment/map (SAM) files | |
Shi et al. | High efficiency referential genome compression algorithm | |
US11360940B2 (en) | Method and apparatus for biological sequence processing fastq files comprising lossless compression and decompression | |
Kim et al. | MetaCRAM: an integrated pipeline for metagenomic taxonomy identification and compression | |
KR101842420B1 (en) | Information processing apparatus, and data management method | |
EP4046052A1 (en) | Customizable delimited text compression framework | |
Kredens et al. | Vertical lossless genomic data compression tools for assembled genomes: A systematic literature review | |
KR102739945B1 (en) | A method and device for generating a pileup file from compressed domain genomic data | |
Selva et al. | SRComp: short read sequence compression using burstsort and Elias omega coding | |
Dufort y Álvarez et al. | Compression of nanopore FASTQ files | |
Shi et al. | Learning the comparing and converting method of sequence Phred quality score | |
US20170372005A1 (en) | Systems and methods for processing sequence data for variant detection and analysis | |
US20150193462A1 (en) | Control method and control device | |
US20220199202A1 (en) | Method and apparatus for compressing fastq data through character frequency-based sequence reordering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20160303 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20210302 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20160303 Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20240110 Patent event code: PE09021S01D |
|
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20240925 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20241203 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20241204 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration |