KR102396789B1 - Method of compression and transmision for fastq genome data - Google Patents

Method of compression and transmision for fastq genome data Download PDF

Info

Publication number
KR102396789B1
KR102396789B1 KR1020190143734A KR20190143734A KR102396789B1 KR 102396789 B1 KR102396789 B1 KR 102396789B1 KR 1020190143734 A KR1020190143734 A KR 1020190143734A KR 20190143734 A KR20190143734 A KR 20190143734A KR 102396789 B1 KR102396789 B1 KR 102396789B1
Authority
KR
South Korea
Prior art keywords
compression
data
sequence data
cores
line
Prior art date
Application number
KR1020190143734A
Other languages
Korean (ko)
Other versions
KR20210056822A (en
Inventor
김회율
김동우
오성열
김영준
이진영
Original Assignee
주식회사 셀젠텍
연세대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 셀젠텍, 연세대학교 산학협력단 filed Critical 주식회사 셀젠텍
Priority to KR1020190143734A priority Critical patent/KR102396789B1/en
Publication of KR20210056822A publication Critical patent/KR20210056822A/en
Application granted granted Critical
Publication of KR102396789B1 publication Critical patent/KR102396789B1/en

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/50Compression of genetic data
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • G16B30/10Sequence alignment; Homology search
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • G16B30/20Sequence assembly
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6023Parallelization
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound

Landscapes

  • Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biotechnology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Analytical Chemistry (AREA)
  • Chemical & Material Sciences (AREA)
  • Genetics & Genomics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명의 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축 방법은, M개의 코어중 하나의 코어인 제 1 코어가 첫번째 시퀀스 데이터의 첫번째 라인에서 고정 헤더 데이터를 압축결과 저장소에 저장하는 단계; 상기 제 1 코어가 나머지 M-1(M은 4이상의 자연수)개의 코어(이하 '기타 코어들'이라 한다) 각각에 대하여 N(N은 2이상의 자연수)개씩의 시퀀스 데이터를 분배하고 기타 코어들에서 각각 압축되도록 하여, 한번에 N*(M-1)개의 시퀀스 데이터에 대한 압축을 병렬 처리하고 상기 압축결과 저장소에 저장되도록 하는 단계;를 포함하되, 상기한 기타 코어들의 각각에서 실행되는 압축은, 각 시퀀스 데이터에 대하여, 첫번째 라인의 고정헤더를 제거하는 과정; 두번째 라인을 부호화하는 과정; 세번째 라인의 식별자를 저장하는 과정; 네번째 라인을 반복길이 부호화하는 과정;으로 구성되는 처리 과정을 상기 N개의 시퀀스 데이터에 대하여 반복하는 제 1 단계 압축과, 상기 N개의 시퀀스 데이터에 대한 상기 제1 단계 압축의 결과에 대하여, 무손실 압축 알고리즘에 의해 압축하는 제 2 단계 압축;을 실행하는 것을 특징으로 한다.A method of compressing genome data for compressing genome data in FASTQ format according to the present invention comprises: storing, by a first core, which is one of M cores, fixed header data in a first line of first sequence data in a compression result storage; The first core distributes N (N is a natural number greater than or equal to 2) sequence data to each of the remaining M-1 (M is a natural number greater than or equal to 4) cores (hereinafter referred to as 'other cores'), and By allowing each of the compressions, parallel processing of compression of N * (M-1) sequence data at a time and storing in the compression result storage; Including, the compression executed in each of the other cores, each removing the fixed header of the first line from the sequence data; encoding the second line; storing the identifier of the third line; A lossless compression algorithm for a result of first-stage compression repeating a process consisting of repeating length encoding of the fourth line for the N sequence data, and the first-stage compression for the N sequence data It is characterized by executing the second stage compression of compression by

Description

FASTQ 포맷의 유전체 데이터를 위한 유전체 데이터의 압축 및 전송 방법{METHOD OF COMPRESSION AND TRANSMISION FOR FASTQ GENOME DATA}Compression and transmission method of genome data for genome data in FASTQ format

본 발명은 FASTQ 포맷의 유전체 데이터를 압축하여 저장하거나 압축하여 전송하는 유전체 데이터의 압축 및 전송 방법에 관한 것이다.The present invention relates to a method for compressing and transmitting genome data that compresses and stores or compresses and transmits genome data in FASTQ format.

유전자는 세포의 기능을 담당하는 최소의 단위, 즉 한 단백질을 전사(translation)하는 최소한의 염기(base) 단위를 말한다. 여기서 염기는 문장을 이루는 글자에 해당하며 A(Adenosine), T(Thymine), G(Guanine), C(Cytosine) 네 종류가 있다.A gene refers to the smallest unit responsible for cell functions, that is, the smallest base unit for translating a protein. Here, the base corresponds to the letter forming the sentence, and there are four types: A (Adenosine), T (Thymine), G (Guanine), and C (Cytosine).

유전자를 이루는 염기 ATGC의 결합 순서를 알아내는 기술을 DNA 시퀀싱이라고 한다. HGP(Human Genome Project)에서 사용한 생어 시퀀싱(Sanger Sequencing)이 일반적이었으나, 현재는 NGS(Next Generation Sequencing)가 일반적이며, Single Molecule 시퀀싱, Nanopore 시퀀싱 등 3세대 시퀀싱 방법론들도 제안되고 있다.DNA sequencing is a technique to find out the sequence of binding of ATGC bases that make up a gene. Sanger sequencing used in the Human Genome Project (HGP) was common, but now NGS (Next Generation Sequencing) is common, and third-generation sequencing methodologies such as Single Molecule Sequencing and Nanopore Sequencing are also being proposed.

개인 유전정보 분석 종류에는 WGS(Whole Genome Sequencing; 전장 유전체 분석), WES(Whole Exome Sequencing; 전장 엑솜 분석) 등이 있는데 WGS의 경우 1명의 유전체 데이터가 130GB에 달할 정도로 크기가 매우 크다. 이러한 데이터는 대부분 FASTQ 포맷으로 저장되는데 아스키코드(ASCII)로 이루어진 텍스트 기반 포맷이다.Types of personal genetic information analysis include Whole Genome Sequencing (WGS) and Whole Exome Sequencing (WES). Most of these data are stored in FASTQ format, which is a text-based format composed of ASCII code.

사람 1명의 유전체 데이터가 130GB에 이르기 때문에 데이터 저장이나 전송 부분에 있어서 압축 기술이 필수적으로 필요하다. 이에 따라 유전체 데이터를 위한 다양한 압축방식들이 제안되고 있으나, 유전체 데이터의 특성과 최근의 컴퓨팅 환경에 최적화되어 있지 않아서 압축(압축해제)에 많은 시간이 소요되는 문제가 있다.Since the genome data of one person reaches 130 GB, compression technology is essential for data storage or transmission. Accordingly, various compression methods for the genome data have been proposed, but there is a problem that compression (decompression) takes a lot of time because it is not optimized for the characteristics of the genome data and the recent computing environment.

또한, 유전체 데이터를 전송하여 이용할 필요성이 있는데, 단순 전송하는 과정이나 압축후 전송하여 압축해제하는 과정에 많은 시간이 소요되는 문제가 있다.In addition, there is a need to transmit and use the genome data, but there is a problem in that a simple transmission process or a process of decompressing the transmission after compression takes a lot of time.

이상 종래 기술의 문제점 및 과제에 대하여 설명하였으나, 이러한 문제점 및 과제에 대한 인식은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 자명한 것은 아니다.Although the problems and problems of the prior art have been described above, recognition of these problems and problems is not obvious to those of ordinary skill in the art of the present invention.

대한민국 공개특허 10-2002-0040406, 2002년 05월 30일 공개, "유전자 코드에 의한 정보압축 및 저장 방법"Republic of Korea Patent Publication No. 10-2002-0040406, published on May 30, 2002, "Information compression and storage method by genetic code"

본 발명의 목적은 유전체 데이터의 특성과 최근의 컴퓨팅 환경에 보다 최적화된, FASTQ 포맷의 유전체 데이터 압축 방법 및 압축 전송 방법을 제공하기 위한 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method for compressing genome data in FASTQ format and a compressed transmission method that are more optimized for the characteristics of genome data and recent computing environments.

또한 본 발명의 다른 목적은 압축 및 전송에 소요되는 시간을 보다 절감할 수 있는, FASTQ 포맷의 유전체 데이터 압축 방법 및 압축 전송 방법을 제공하기 위한 것이다.Another object of the present invention is to provide a FASTQ format genomic data compression method and compression transmission method, which can further reduce the time required for compression and transmission.

본 발명의 일 양상은, M개의 코어로 구성되는 프로세서에서 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축 방법으로서,An aspect of the present invention is a method of compressing genome data for compressing genome data in FASTQ format in a processor consisting of M cores,

M개의 코어중 하나의 코어인 제 1 코어가 첫번째 시퀀스 데이터의 제1 라인에서 고정 헤더 데이터를 압축결과 저장소에 저장하는 단계; 상기 제 1 코어가 나머지 M-1(M은 4이상의 자연수)개의 코어(이하 '기타 코어들'이라 한다) 각각에 대하여 N(N은 2이상의 자연수)개씩의 시퀀스 데이터를 분배하고 기타 코어들에서 각각 압축되도록 하여, 한번에 N*(M-1)개의 시퀀스 데이터에 대한 압축을 병렬 처리하고 상기 압축결과 저장소에 저장되도록 하는 단계;를 포함하되,storing, by a first core, which is one of the M cores, fixed header data in a first line of the first sequence data in a compression result storage; The first core distributes N (N is a natural number greater than or equal to 2) sequence data to each of the remaining M-1 (M is a natural number greater than or equal to 4) cores (hereinafter referred to as 'other cores'), and Containing; including a; so that each is compressed, parallel processing of compression of N*(M-1) sequence data at a time and storing the compression result in the storage;

상기한 기타 코어들의 각각에서 실행되는 압축은, 각 시퀀스 데이터에 대하여, 첫번째 라인의 고정헤더를 제거하는 과정; 두번째 라인을 부호화하는 과정; 세번째 라인의 식별자를 저장하는 과정; 네번째 라인을 반복길이 부호화하는 과정;으로 구성되는 처리 과정을 상기 N개의 시퀀스 데이터에 대하여 반복하는 제 1 단계 압축과, 상기 N개의 시퀀스 데이터에 대한 상기 제1 단계 압축의 결과에 대하여, 무손실 압축 알고리즘에 의해 압축하는 제 2 단계 압축;을 실행하는 것을 특징으로 한다.The compression performed in each of the other cores includes: removing a fixed header of the first line for each sequence data; encoding the second line; storing the identifier of the third line; A lossless compression algorithm for a result of first-stage compression repeating a process consisting of repeating length encoding of the fourth line for the N sequence data, and the first-stage compression for the N sequence data It is characterized by executing the second stage compression of compression by

상기한 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축 방법에 있어서, 상기 제 2 단계 압축에서는 7z 압축 알고리즘이 적용될 수 있다.In the genome data compression method for compressing the genome data in the FASTQ format, a 7z compression algorithm may be applied in the second step compression.

상기한 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축 방법에 있어서, 상기 제 2 라인의 부호화는, 사전 설정되는 맵핑 테이블에 의해 A,T,G,C의 문자를 2bit 코드로 맵핑함으로써 실행될 수 있다.In the genome data compression method for compressing the genome data in the FASTQ format, the encoding of the second line may be performed by mapping the characters of A, T, G, and C to a 2-bit code using a preset mapping table. there is.

본 발명의 다른 양상은, M개의 코어로 구성되는 프로세서를 구비한 송신처에서 FASTQ 포맷의 유전체 데이터를 압축하여 수신처로 전송하는 유전체 데이터의 압축전송 방법으로서, 상기 송신처에서의 압축은, M개의 코어중 하나의 코어인 제 1 코어가 나머지 M-1(M은 4이상의 자연수)개의 코어(이하 '기타 코어들'이라 한다) 각각에 대하여 N(N은 2이상의 자연수)개씩의 시퀀스 데이터를 분배하고 상기 기타 코어들에서 압축되도록 하여, 한번에 N*(M-1)개의 시퀀스 데이터에 대한 압축을 병렬 처리하는 단계;를 포함하되,Another aspect of the present invention is a compression transmission method for genome data in which a transmitter having a processor consisting of M cores compresses genome data in FASTQ format and transmits it to a destination. The first core, which is one core, distributes N (N is a natural number greater than or equal to 2) sequence data to each of the remaining M-1 (M is a natural number greater than or equal to 4) cores (hereinafter referred to as 'other cores'), and Containing, including; in parallel processing of compression of N * (M-1) sequence data at a time to be compressed by other cores;

상기한 기타 코어들의 각각에서 실행되는 압축은, 각 시퀀스 데이터에 대하여, 첫번째 라인의 고정헤더를 제거하는 과정; 두번째 라인을 부호화하는 과정; 세번째 라인의 식별자를 저장하는 과정; 네번째 라인을 반복길이 부호화하는 과정;으로 구성되는 처리 과정을 상기 N개의 시퀀스 데이터에 대하여 반복하는 제 1 단계 압축을 포함하여 실행되도록 하는 것을 특징으로 한다.The compression performed in each of the other cores includes: removing a fixed header of the first line for each sequence data; encoding the second line; storing the identifier of the third line; It is characterized in that the process consisting of a process of repeating length encoding of the fourth line is executed including the first step compression of repeating the N sequence data.

상기한 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축전송 방법에 있어서, 상기한 기타 코어들의 각각에서 실행되는 압축은, 상기 N개의 시퀀스 데이터에 대한 상기 제 1 단계 압축의 결과에 대하여, 무손실 압축 알고리즘에 의해 압축하는 제 2 단계 압축;을 선택적으로 실행할 수 있다.In the compression transmission method of the genome data for compressing the genome data of the FASTQ format, the compression performed in each of the other cores is lossless compression with respect to the result of the first stage compression of the N sequence data. Second-stage compression of compression by an algorithm; may optionally be performed.

상기한 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축전송 방법에 있어서, 상기 제 1 코어가 첫번째 시퀀스 데이터의 첫번째 라인에서 고정 헤더 데이터를 수신처로 전송하는 단계; 상기 송신처에서 유전체 데이터중 S(S는 1이상의 자연수)개의 시퀀스 데이터에 대하여 상기 제 1 단계 압축을 실행하여 상기 수신처로 전송하고 상기 수신처에서 압축해제를 실행하며, 상기 제 2 단계 압축을 실행하여 상기 수신처로 전송하고 상기 수신처에서 상기 제 2 단계 압축에 대응하는 압축해제를 실행하되, 하나 이상의 무손실 압축 알고리즘별로 실행하는 속도 측정용 압축 및 전송을 실행하는 단계; 상기 송신처의 제 1 코어가 상기 속도 측정용 압축 및 전송의 결과에 따라, 상기 S개의 시퀀스 데이터를 제외한 나머지 시퀀스 데이터(이하 '메인 시퀀스 데이터'라고 한다)에 대하여 적용할 상기 제 2 단계 압축의 실시 여부와 상기 제 2 단계 압축에 적용할 무손실 알고리즘을 결정함으로써 메인 시퀀스 데이터에 대한 압축 방식을 결정하는 단계; 상기 메인 시퀀스 데이터에 대하여 상기 결정된 압축 방식에 따라 상기 나머지 코어들에 의해 압축이 실행되도록 하며 압축된 결과가 상기 수신처로 전송되도록 할 수 있다.In the genome data compression transmission method for compressing the FASTQ format genome data, the method comprising: transmitting, by the first core, fixed header data in a first line of first sequence data to a destination; S (S is a natural number greater than or equal to 1) sequence data of S (S is a natural number greater than or equal to 1) sequence data at the sending destination is transmitted to the destination, decompressed in the destination, and the second stage of compression is performed to performing compression and transmission for speed measurement performed by transmission to a destination and decompression corresponding to the second stage compression at the destination, but for each one or more lossless compression algorithms; Execution of the second stage of compression to be applied by the first core of the sender to the remaining sequence data (hereinafter referred to as 'main sequence data') except for the S sequence data according to the result of the compression and transmission for speed measurement determining a compression method for the main sequence data by determining whether or not and a lossless algorithm to be applied to the second step compression; The main sequence data may be compressed by the remaining cores according to the determined compression method, and the compressed result may be transmitted to the destination.

상기한 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축전송 방법에 있어서, 상기한 메인 시퀀스 데이터에 대한 압축 방식의 결정은, 상기 속도 측정용 압축 및 전송의 결과를 이용하여, 상기 제 1 단계 압축을 실시하고 상기 제 2 단계 압축을 실시하지 않는 압축 전송 형태와, 상기 제 1 단계 압축을 실시하고 적어도 하나 이상의 후보가 되는 무손실 압축 알고리즘에 따라 상기 제 2 단계 압축을 실시하는 압축전송 형태의 각각에 대하여, 상기 송신처 및 수신처에서 압축, 전송 및 압축해제에 소요되는 총 예상 소요시간을 계산하고 총 예상 소요시간이 가장 작은 압축전송 형태를 상기 메인 시퀀스 데이터에 대한 압축 방식으로 결정할 수 있다.In the compression transmission method of the genome data for compressing the genome data in the FASTQ format, the compression method for the main sequence data is determined using the speed measurement compression and transmission results, and the first step compression is performed. In each of the compressed transmission form in which the second stage compression is not performed and the compressed transmission form in which the second stage compression is performed according to at least one lossless compression algorithm that performs the first stage compression and becomes at least one candidate. In contrast, the total estimated time required for compression, transmission, and decompression may be calculated at the sender and the receiver, and a compression transmission type having the smallest expected total time may be determined as the compression method for the main sequence data.

본 발명의 유전체 데이터 압축 방법에 따르면, 대용량인 유전체 데이터를 효과적으로 압축하여 스토리지에 저장하는 공간을 적게 차지하게 하고, 전송 시 고속으로 전송할 수 있게 한다. 특히 최근 NGS를 비롯한 유전체 데이터 분석 기술이 실제 활용되고 있는 바, 본 발명은 이에 대한 기반 기술로 이용될 수 있다.According to the genome data compression method of the present invention, it is possible to effectively compress large-capacity genome data to occupy less space for storage in storage, and to transmit at high speed during transmission. In particular, since genomic data analysis technology including NGS has been actually used recently, the present invention can be used as a base technology for this.

또한, 본 발명의 유전체 데이터 압축 방법에 따르면, 멀티 코어 프로세싱(병렬 컴퓨팅)의 적용이 용이하도록 된 알고리즘 구조이므로, 고압축율을 구현할 뿐만 아니라 압축에 소요되는 시간을 대폭 절약할 수 있는 효과가 있다.In addition, according to the genome data compression method of the present invention, since the algorithm structure is made easy to apply multi-core processing (parallel computing), there is an effect that not only implements a high compression rate but also significantly reduces the time required for compression.

또한, 본 발명의 유전체 데이터 압축 전송 방법에 따르면, 총 예상 시간의 측정 및 계산이 용이하도록 하고 나아가 미리 예측된 총 소요시간이 나머지 시퀀스 데이터에 적용될 때의 실제 소요시간과 매우 근사한 결과를 가져올 수 있게 하며, 기존 상용의 무손실 압축 알고리즘에 대한 추가 적용 또는 비적용을 쉽게 구현할 수 있게 하며, 최적의 무손실 압축 알고리즘을 선택하는 것을 손쉽게 한다.In addition, according to the genomic data compression transmission method of the present invention, it is possible to easily measure and calculate the total expected time and to bring a result very close to the actual required time when the total estimated time is applied to the rest of the sequence data. In addition, it makes it easy to implement additional application or non-application to the existing commercial lossless compression algorithm, and it makes it easy to select an optimal lossless compression algorithm.

도 1은 FASTQ 포맷의 시퀀스 데이터 구조를 보여주는 도면이다.
도 2 및 도 3은 본 발명의 제 1 실시예에 따라 멀티코어 프로세서를 가진 서버 또는 PC에서 실행되는 유전체 데이터의 압축 방법으로서, 도 2는 어느 한 코어에서 실행되는 과정을 도시한 것이고 도 3은 나머지 코어에서 실행되는 과정을 도시한 것이다.
도 4는 본 발명의 제 2 실시예에 따라 M개의 코어로 구성되는 프로세서를 구비한 송신처에서 FASTQ 포맷의 유전체 데이터를 압축하여 수신처로 전송하는 유전체 데이터의 압축전송 방법을 도시한 플로우차트이다.
도 5는 병렬 처리없이, 예를 들면 컴퓨터의 단일 코어에서 유전체 데이터를 압축하는 실험예에 따른 실험결과 데이터를 보여준다.
1 is a diagram illustrating a sequence data structure in a FASTQ format.
2 and 3 are a method of compressing genome data executed in a server or PC having a multi-core processor according to the first embodiment of the present invention, and FIG. 2 shows a process executed in one core, and FIG. It shows the process executed on the remaining cores.
4 is a flowchart illustrating a compressed transmission method of genome data in which a transmitter having a processor configured with M cores compresses genome data in FASTQ format and transmits the compressed genome data to a destination according to the second embodiment of the present invention.
5 shows experimental result data according to an experimental example of compressing genome data in, for example, a single core of a computer without parallel processing.

첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 명칭 및 도면 부호를 사용한다.With reference to the accompanying drawings, the embodiments of the present invention will be described in detail so that those of ordinary skill in the art to which the present invention pertains can easily implement them. However, the present invention may be embodied in several different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar names and reference numerals are used for similar parts throughout the specification.

도 1은 FASTQ 포맷의 시퀀스 데이터 구조를 보여주는 도면이다.1 is a diagram illustrating a sequence data structure in a FASTQ format.

각 시퀀스 데이터에서 첫번째 라인(Line 1)은 고정 헤더 데이터와 변경 헤더 데이터를 포함하며, 예를 들어 첫번째 라인은 "@HWUSI-EAS100R:6:73:941:1973#0/1"와 같이 표현될 수 있다.In each sequence data, the first line (Line 1) includes fixed header data and change header data. For example, the first line can be expressed as "@HWUSI-EAS100R:6:73:941:1973#0/1". can

'HWUSI-EAS100R'는 the unique instrument name을 표시하고, '6'은 flowcell lane, '73'은 tile number within the flowcell lane, '941'는 'x'-coordinate of the cluster within the tile, '1973'은 'y'-coordinate of the cluster within the tile, '#0'는 index number for a multiplexed sample (0 for no indexing), '/1'은 the member of a pair(/1 or /2; paired-end or mate-pair reads only)을 표시한다.'HWUSI-EAS100R' indicates the unique instrument name, '6' is flowcell lane, '73' is tile number within the flowcell lane, '941' is 'x'-coordinate of the cluster within the tile, '1973 ' is 'y'-coordinate of the cluster within the tile, '#0' is index number for a multiplexed sample (0 for no indexing), '/1' is the member of a pair(/1 or /2; paired -end or mate-pair reads only).

시퀀스 데이터의 두번째 라인(Line 2)은 실제 시퀀스 데이터(원시 시퀀스 데이터)로서 A, T, G, C 4가지 종류가 반복되는 텍스트 데이터이다. 예를 들면 두번째 라인은 "GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT"와 같이 표현될 수 있다.The second line (Line 2) of the sequence data is the actual sequence data (original sequence data), and is text data in which four types of A, T, G, and C are repeated. For example, the second line can be expressed as "GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT".

세번째 라인(Line 3)은 1byte의 식별자로서 '+'이며, 네 번째 라인(Line 4)은 시퀀스 데이터의 QV(quality value) 정로서, 예를 들면, "!''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65"와 같이 표현된다.The third line (Line 3) is '+' as an identifier of 1 byte, and the fourth line (Line 4) is the QV (quality value) of sequence data, for example, "!''*((((** *+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>>CCCCCC65".

본 발명은 FASTQ 포맷의 유전체 데이터 파일을 압축하여 저장하거나 압축하여 전송하는 방법에 관한 것으로서, 이러한 압축 방법은 서버, 워크스테이션 또는 PC 등에서 실행될 수 있으며, 나아가 멀티 코어를 가진 마이크로 프로세서를 구비한 서버, 워크스테이션 또는 PC 등에서 실행될 수 있다. 또한, 압축된 유전체 데이터 파일은 인터넷과 같은 통신망을 통하여 이들 사이에서 전송될 수 있다.The present invention relates to a method for compressing and storing or compressing and transmitting a genome data file in FASTQ format, and this compression method can be executed on a server, workstation, or PC, and furthermore, a server having a microprocessor having a multi-core, It can be run on a workstation or PC, etc. In addition, the compressed genome data file may be transmitted between them via a communication network such as the Internet.

도 2 및 도 3은 본 발명의 제 1 실시예에 따라 멀티코어 프로세서를 가진 서버 또는 PC에서 실행되는 유전체 데이터의 압축 방법으로서, 도 2는 어느 한 코어에서 실행되는 과정을 도시한 것이고 도 3은 나머지 코어에서 실행되는 과정을 도시한 것이다.2 and 3 are a method for compressing genome data executed in a server or PC having a multi-core processor according to the first embodiment of the present invention, and FIG. 2 shows a process executed in one core, and FIG. 3 is It shows the process executed on the remaining cores.

예를 들어, M개의 코어로 구성되는 프로세서로써, FASTQ 포맷의 유전체 데이터를 압축하기 위하여, M개의 코어중 하나의 코어(이하, '제 1 코어'라고도 한다)에서는 도 2에 도시된 과정을 실행하고 제 1 코어를 제외한 나머지 M-1(M은 4이상의 자연수)개의 코어(이하 '기타 코어들'이라고도 한다)는 도 3에 도시된 과정을 실행하며, 이하에서는 본 발명의 실시예를 설명하기 위한 사항에 집중하기 위해 기타 부수적인 사항의 설명은 생략될 수 있다.For example, as a processor consisting of M cores, in order to compress the genome data in FASTQ format, one of the M cores (hereinafter, also referred to as a 'first core') executes the process shown in FIG. 2 and the remaining M-1 (M is a natural number greater than or equal to 4) cores (hereinafter also referred to as 'other cores') excluding the first core execute the process shown in FIG. In order to focus on the matters for the purpose, the description of other ancillary matters may be omitted.

먼저, 제 1 코어는 수많은 시퀀스 데이터에서 첫번째 시퀀스 데이터의 제 1 라인(Line 1)에서 고정 헤더 데이터를 압축결과 저장소에 저장한다(S11). 그리고 제 1 코어는 기타 코어들에 대하여 각 코어마다 N개(N은 2이상의 자연수)의 시퀀스 데이터를 분배하는 데(S12), 이와 유사하게 각 코어가 순서대로 N개씩의 시퀀스 데이터를 리드하는 것도 이와 균등한 것으로 본다. 이와 같이 기타 코어들에게 분배(분할)된 N개의 시퀀스 데이터는 도 3에 도시된 바와 같은 압축과정을 실행한다. 제 1 코어는 나머지 M-1개의 코어 각각에 대하여 N개씩의 시퀀스 데이터를 분배하고 기타 코어들에서 각각 압축되도록 한다.First, the first core stores fixed header data in the first line (Line 1) of the first sequence data in a number of sequence data in the compression result storage (S11). In addition, the first core distributes N pieces of sequence data (N is a natural number greater than or equal to 2) to each core to the other cores (S12). Similarly, each core sequentially reads N pieces of sequence data. regarded as equivalent to this. The N sequence data distributed (divided) to the other cores in this way is compressed as shown in FIG. 3 . The first core distributes N pieces of sequence data to each of the remaining M-1 cores and compresses each of the other cores.

이에 따라 프로세서는 한번에 N*(M-1)개의 시퀀스 데이터에 대한 압축을 병렬 처리하며, 기타 코어들에서 압축된 결과는 압축결과 저장소에 저장되도록 한다(S13). 제 1 코어 또는 각 기타 코어들은 압축된 결과를 압축결과 저장소에 저장되도록 하며, 결국 압축된 N*(M-1)개의 시퀀스 데이터가 저장된다(S13).Accordingly, the processor parallelly processes compression of N*(M-1) sequence data at a time, and the compressed results of other cores are stored in the compression result storage (S13). The first core or each other core stores the compressed result in the compression result storage, and eventually N*(M-1) compressed sequence data is stored (S13).

도 3을 참조하면서, 기타 코어들의 각각에서 실행되는 압축 과정을 구체적으로 살펴보면, 각 시퀀스 데이터에 대하여, 첫번째 라인(Line 1)의 데이터에 있어서 고정 헤더 데이터를 제거하며(S21, S31), 변동 헤더 데이터는 그대로 남겨둔다. 추후 압축해제시에는 제 1 코어가 저장한 첫번째 시퀀스 데이터의 고정 헤더 데이터를 이용하여 각 시퀀스 데이터의 고정 헤더 데이터를 복구한다.Referring to FIG. 3 , specifically looking at the compression process executed in each of the other cores, for each sequence data, fixed header data is removed from the data of the first line (Line 1) (S21, S31), and the variable header The data is left as is. During decompression later, the fixed header data of each sequence data is restored using the fixed header data of the first sequence data stored by the first core.

두번째 라인(Line 2)의 원시 시퀀스 데이터(또는 원시 시퀀스 문자열(Raw Sequence Letters)라고도 한다)에 대해서는 부호화(S22,S32)를 수행하는 데, 사전 설정되는 맵핑 테이블에 의해 A,T,G,C의 문자를 2bit 코드로 맵핑함으로써 실행된다. 따라서 1 Byte(8 bit) 데이터는 2 bit 데이터가 된다. 맵핑 테이블은 A,T,G,C의 문자에 대하여 대응하는 2bit 코드를 정의하는 테이블이되며, 추후 압축해제시에는 맵핑 테이블을 이용하여 2 bit 코드에 대응하는 문자로 복구한다. 세번째 라인의 식별자는 그대로 남겨서 저장하며(S23,S33), 네번째 라인의 QV 데이터는 반복길이 부호화(Run Length Encoding) 기법을 적용해서(S24,S34) 압축한다.Encoding (S22, S32) is performed on the raw sequence data (also called Raw Sequence Letters) of the second line (Line 2), A, T, G, C according to a preset mapping table. It is executed by mapping the characters of Therefore, 1 byte (8 bit) data becomes 2 bit data. The mapping table becomes a table defining the 2-bit codes corresponding to the characters of A, T, G, and C, and when decompressing later, the mapping table is used to restore the characters corresponding to the 2-bit codes. The identifier of the third line is left and stored (S23, S33), and the QV data of the fourth line is compressed by applying the Run Length Encoding technique (S24, S34).

그리고 이와 같이 하나의 시퀀스 데이터에 대한 과정을 반복하여 N개의 시퀀스 데이터에 대하여 압축하는 데, 예를 들어, N개의 시퀀스에 대한 처리가 완료되었는지를 판단하여(S25,S35), 아니면 다음 첫번째 라인 부터 네번째 라인까지의 처리를 수행하고 처리가 완료되었으면 제 1 단계 압축을 마치게 되고 제 2 단계 압축을 실행하게 된다.And in this way, the process for one sequence data is repeated to compress the N sequence data. For example, it is determined whether the processing for the N sequences is completed (S25, S35), or from the next first line When the processing up to the fourth line is performed and the processing is completed, the first stage compression is finished and the second stage compression is executed.

N개의 시퀀스 데이터에 대한 제1 단계 압축의 결과 데이터에 대하여, 무손실 압축 알고리즘을 적용함으로써 제 2 단계 압축을 실행한다(S26). 제 2 단계 압축에서는 7z(7zip) 압축 알고리즘이 적용된다.The second-stage compression is performed by applying a lossless compression algorithm to the result data of the first-stage compression for N sequence data (S26). In the second stage of compression, a 7z (7zip) compression algorithm is applied.

상기의 과정들은 M-1개의 코어에서 각각 실행되며, 각 코어들로부터의 압축 결과 데이터는 압축 결과 저장소에 저장된다. 이와 같은 방식으로 기타 코어들로의 분배 및 압축을 반복하며, 제 1 코어는 전체 유전체 데이터 파일에 대한 압축이 완료되었는지를 판단하고(S14), 완료되지 않았으면 단계 S12 내지 단계 S14를 반복하여 유전체 데이터 파일의 모든 시퀀스 데이터에 대하여 실행되도록 한다.The above processes are respectively executed in M-1 cores, and the compression result data from each core is stored in the compression result storage. In this way, distribution and compression to other cores are repeated, and the first core determines whether compression of the entire genome data file is complete (S14), and if not, repeats steps S12 to S14 to repeat the dielectric It is executed for all sequence data in the data file.

도 5는 병렬 처리없이, 예를 들면 컴퓨터의 단일 코어에서 유전체 데이터를 압축하는 실험예에 따른 실험결과 데이터를 보여준다.5 shows experimental result data according to an experimental example of compressing genome data in, for example, a single core of a computer without parallel processing.

도 5에서 첫번째 컬럼의 압축방법 cfc는 각 시퀀스 데이터에 대하여 상기한 제 1 단계 압축(단계 S21 내지 단계 S24)만을 반복수행하여 유전체 데이터의 전체를 압축한 예이고, 압축방법 7z는 동일 예의 유전체 데이터에 대해 7z 압축 알고리즘만을 적용하여 압축한 예이며, 압축방법 7z[cfc]는 cfc 압축방법을 통해 얻은 결과가 있는 것을 전제로 이러한 결과에 대하여 제 2 단계 압축(7z 압축 알고리즘)을 수행한 예이고, 압축방법 cfc+7z는 제 1 단계 압축과 제 2 단계 압축을 모두 수행한 결과를 표시한 예이다.The compression method cfc of the first column in FIG. 5 is an example in which the entire genome data is compressed by repeating only the first step compression (steps S21 to S24) for each sequence data, and the compression method 7z is the genome data of the same example is an example of compression by applying only the 7z compression algorithm to , the compression method cfc+7z is an example of displaying the results of both the first-stage compression and the second-stage compression.

도시된 바와 같이, 7z만을 이용하여 압축하는 경우는 cfc 압축방법(제 1 단계 압축 방법만을 이용하는 방식)에 비하여 압축률은 좋지만, 압축시간이 약 7시간으로서 cfc의 35분에 비하여 소요시간이 많이 걸린다. 바꾸어 말하면 cfc 압축방법은 압축시간이 현존하는 최고수준의 압축률과 속도를 가진 7z에 비해서도 압축시간이 대폭 절약되어서 절대적 우위를 가지나, 압축후 크기에 있어서 대략 3배에 육박하는 크기를 가져서 저장 공간이나 전송량의 관점에서 약점을 가진다.As shown, in the case of compression using only 7z, the compression rate is good compared to the cfc compression method (a method using only the first-stage compression method), but the compression time is about 7 hours, which takes a lot of time compared to 35 minutes of cfc. . In other words, the cfc compression method has an absolute advantage in that the compression time is greatly saved compared to 7z, which has the highest compression rate and speed, but it has a size that is close to three times the size after compression, so that the storage space or It has weaknesses in terms of transmission volume.

한편, 본 발명의 실시예에 적용된 제 1 단계 압축 및 제 2 단계 압축을 결합한 cfc+7z 압축방법은 cfc 압축방법에 비해서는 시간이 많이 걸리나, 7z 압축방법에 비해서는 압축 시간을 절약하는데, 특히, 7z 압축방법에 비해서 압축 시간과 압축률의 모두에서 더 좋은 장점이 있다.On the other hand, the cfc+7z compression method combining the first-stage compression and the second-stage compression applied to the embodiment of the present invention takes a lot of time compared to the cfc compression method, but saves the compression time compared to the 7z compression method. , compared to the 7z compression method, it has better advantages in both compression time and compression rate.

나아가, 단일 코어를 이용한 상기한 실험예의 cfc+7z 압축방법은 압축시간에 있어서 대폭적인 단축이 어려웠던 과제가 그대로 남아 있으나, 상기한 도 2 및 도 3과 같이 본 발명의 일 실시예에 따른 압축방법은 멀티 코어 프로세싱의 적용이 용이하도록 설계된 알고리즘이므로, 멀티 코어 프로세싱을 수행하면 실행 시간이 대략 1/(M-1)에 근접할 정도로 줄어들며, 예를 들어 8 코어 프로세서를 이용하면 대략 1/7의 압축 시간으로 절약될 수 있다. 기존 유전체 데이터의 압축방법에 비하여 본 발명의 일 실시예에 따른 유전체 데이터의 압축방법은 멀티코어 프레세싱에 매우 용이하게 적용될 수 있는 장점이 있다.Furthermore, in the cfc+7z compression method of the above-described experimental example using a single core, the problem that it was difficult to significantly shorten the compression time remains as it is, but as shown in FIGS. 2 and 3 above, the compression method according to an embodiment of the present invention is an algorithm designed to facilitate the application of multi-core processing, so when multi-core processing is performed, the execution time is reduced to approximately 1/(M-1), for example, when using an 8-core processor, it is approximately 1/7 Compression time can be saved. Compared to the existing dielectric data compression method, the dielectric data compression method according to an embodiment of the present invention has the advantage that it can be very easily applied to multi-core processing.

도 4는 본 발명의 제 2 실시예에 따라 M개의 코어로 구성되는 프로세서를 구비한 송신처에서 FASTQ 포맷의 유전체 데이터를 압축하여 수신처로 전송하는 유전체 데이터의 압축전송 방법을 도시한 플로우차트이다.4 is a flowchart illustrating a compressed transmission method of genome data in which a transmitter having a processor configured with M cores compresses genome data in FASTQ format and transmits the compressed genome data to a destination according to the second embodiment of the present invention.

송신처는 유전체 데이터를 압축하여 수신처로 전송하며 수신처에서는 유전체 데이터를 수신하여 압축해제한다. 송신처 및 수신처는 서버, 워크스테이션 또는 PC일 수 있다.The transmitter compresses the genome data and transmits it to the destination, and the destination receives and decompresses the genome data. The sending and receiving destinations may be servers, workstations or PCs.

송신처는, 예를들어 송신처에 있는 프로세서(그 중 제 1 코어)의 제어로, 유전체 데이터에서 첫번째 시퀀스 데이터의 첫번째 라인에서 고정 헤더 데이터를 수신처로 전송하도록 하며(S41), 이러한 과정은 단계 S42 내지 S45 중 어느 한 과정의 전후로 이동되어도 된다.The sender transmits, for example, the fixed header data in the first line of the first sequence data in the genome data to the receiver under the control of the processor (the first core among them) at the sender (S41), and this process is performed in steps S42 to You may move before and after any one process in S45.

그리고, 송신처에서는 유전체 데이터중 S(S는 1이상의 자연수)개의 시퀀스 데이터에 대하여 상기한 제 1 단계 압축을 실행하여 수신처로 전송하고 수신처에서 압축해제를 실행하며, 제 1 단계 압축 결과 데이터에 대해 상기한 제 2 단계 압축을 실행하여 수신처로 전송하고 수신처에서 제 2 단계 압축에 대응하는 압축해제를 실행하되, 하나 이상, 복수의 무손실 압축 알고리즘별로 실행함으로써, 속도 측정용 압축 및 전송과 소요시간 측정을 실행한다(S42). 즉, 제 1 단계 압축 만을 실행한 결과, 무손실 압축 알고리즘별로 제 2 단계 압축까지 실행한 결과를 전송하여 각각에 대하여 걸리는 전체 시간을 측정한다. 예를 들어, 송신처는 자체적으로 압축 및 전송에 걸리는 시간을 측정할 수 있으며, 수신처가 측정한 압축해제 시간을 보고받을 수 있다. 예를 들어, 복수의 무손실 압축 알고리즘은 ZIP, RAR, 7z, GZ, BZ2, ALZ, EGG, Raw, LHA, ARJ, ACE 등의 전부 또는 일부를 포함하는 집합일 수 있다.In addition, the sender executes the above-described first-stage compression on S (S is a natural number greater than or equal to 1) sequence data among the genome data, transmits it to the destination, and performs decompression at the destination, and the first-stage compression result data is A second-stage compression is executed to transmit to the destination, and decompression corresponding to the second-stage compression is performed at the destination, but by executing one or more lossless compression algorithms for each of a plurality of lossless compression algorithms, compression and transmission for speed measurement and measurement of required time are performed. Execute (S42). That is, as a result of executing only the first stage of compression, the result of executing the second stage of compression for each lossless compression algorithm is transmitted, and the total time taken for each is measured. For example, the sender can measure the compression and transmission time by itself, and the receiver can report the measured decompression time. For example, the plurality of lossless compression algorithms may be a set including all or part of ZIP, RAR, 7z, GZ, BZ2, ALZ, EGG, Raw, LHA, ARJ, ACE, and the like.

상기한 속도 측정용 압축 및 전송의 결과에 따라, 측정용을 겸했던 S개의 시퀀스 데이터를 제외한 나머지 시퀀스 데이터(이하 '메인 시퀀스 데이터'라고 한다)에 대하여 적용할 제 2 단계 압축의 실시 여부와 제 2 단계 압축에 적용할 무손실 알고리즘을 결정함으로써 메인 시퀀스 데이터에 대한 압축 방식을 결정한다.According to the result of the compression and transmission for speed measurement, whether the second-stage compression to be applied to the remaining sequence data (hereinafter referred to as 'main sequence data') except for the S sequence data used for measurement is performed and the second The compression method for the main sequence data is determined by determining the lossless algorithm to be applied to the two-step compression.

송신처, 예를 들면 송신처의 제 1 코어는, 상기한 속도 측정용 압축 및 전송의 결과를 이용하여, 도 3을 통해 설명되었던 제 1 단계 압축을 실시하고 상기한 제 2 단계 압축을 실시하지 않는 압축 전송 형태와, 제 1 단계 압축을 실시하고 적어도 하나 이상의 후보가 되는 무손실 압축 알고리즘에 따라 제 2 단계 압축을 실시하는 압축전송 형태의 각각에 대하여, 송신처 및 수신처에서 압축, 전송 및 압축해제에 소요되는 총 예상 소요시간을 계산하고(S43) 총 예상 소요시간이 가장 작은 압축전송 형태를 메인 시퀀스 데이터에 대한 압축 방식으로 결정한다(S44).A transmission destination, for example, a first core of the transmission destination, performs the first-stage compression described with reference to FIG. 3 and does not perform the above-described second-stage compression, using the results of the compression and transmission for speed measurement described above. For each of the transmission format and the compression transmission format in which the first-step compression is performed and the second-step compression is performed according to at least one or more candidate lossless compression algorithms, A total expected required time is calculated (S43), and a compressed transmission form having the smallest total expected required time is determined as a compression method for the main sequence data (S44).

그리고, 메인 시퀀스 데이터에 대하여 결정된 압축 방식에 따라 나머지 코어들에 의해 도 3에서 도시된 바와 같이 압축이 실행되도록 하며 압축된 결과가 수신처로 전송되도록 한다.Then, according to the compression method determined for the main sequence data, compression is performed by the remaining cores as shown in FIG. 3 , and the compressed result is transmitted to the destination.

송신처에서의 압축은, M개의 코어중 하나의 코어인 제 1 코어가 나머지 M-1(M은 4이상의 자연수)개의 코어(이하 '기타 코어들'이라 한다) 각각에 대하여 N(N은 2이상의 자연수)개씩의 시퀀스 데이터를 분배하고 기타 코어들에서 압축되도록 하여, 한번에 N*(M-1)개의 시퀀스 데이터에 대한 압축을 병렬 처리하는 단계를 수행한다. 이때 기타 코어들의 각각에서 실행되는 압축은, 도 3의 설명에서와 같이, 각 시퀀스 데이터에 대하여, 첫번째 라인의 고정헤더를 제거하고(S21,S31), 변동헤더를 저장하거나 그대로 두는 과정, 두번째 라인을 부호화하는 과정(S22, S23), 세번째 라인의 식별자를 그대로 두거나 저장하는 과정(S23, S33), 네번째 라인을 반복길이 부호화하는 과정(S24, S34)을 포함하여 구성되는 처리 과정을 가지며, 이러한 과정을 N개의 시퀀스 데이터에 대하여 반복하는 제 1 단계 압축을 포함하여 실행된다.In the compression at the transmission destination, the first core, which is one of the M cores, is N (N is 2 or more) for each of the remaining M-1 (M is a natural number greater than or equal to 4) cores (hereinafter referred to as 'other cores'). A step of parallel processing of compression of N*(M-1) sequence data at a time is performed by distributing each sequence data and allowing other cores to compress the sequence data. At this time, the compression performed in each of the other cores, as in the description of FIG. 3 , for each sequence data, removes the fixed header of the first line (S21, S31), stores the variable header or leaves it as it is, the second line It has a process consisting of encoding (S22, S23), leaving or storing the identifier of the third line (S23, S33), and repeating length encoding of the fourth line (S24, S34). The process is performed including a first stage compression that repeats for N sequence data.

그리고, 상기 N개의 시퀀스 데이터에 대한 상기 제 1 단계 압축의 결과에 대하여, 결정된 무손실 압축 알고리즘에 의해 압축하는 제 2 단계 압축을 선택적으로 실행한다.Then, on the result of the first-stage compression for the N sequence data, a second-stage compression of compression according to the determined lossless compression algorithm is selectively performed.

본 발명의 제 2 실시예에 따르면 제 2 단계 압축은 상황에 따라 선택적으로(다이내믹하게) 실행된다. 예를 들어, 통신을 통한 전송 속도가 낮은 환경이나 상황에서는 제 2 단계 압축까지 수행되는 것으로 하여 단계 S44에서 압축 방식 결정이 이루어질 수 있다. 전송 속도가 낮은 경우에는 압축을 보다 많이 하여 전송함으로써 전체 소요 시간을 단축할 수 있다. 그러나, 전송 속도가 일정 수준 이상이 되면 제 2 단계 압축 및 압축 해제에 걸리는 시간 증가가 이러한 전송 시간 단축보다 더 길게 될 것이므로 제 1 단계 압축만을 실행하는 것으로 결정될 수도 있다. 본 발명의 실시예에 따르면 이러한 결정은 자동으로 수행된다. According to the second embodiment of the present invention, the second stage of compression is performed selectively (dynamically) according to circumstances. For example, in an environment or situation in which a transmission speed through communication is low, a compression method may be determined in step S44 by assuming that up to the second step compression is performed. When the transmission speed is low, the overall time required can be shortened by performing more compression and transmission. However, if the transmission rate is higher than a certain level, the increase in the time required for compression and decompression of the second stage will be longer than the reduction of the transmission time, so it may be decided to execute only the first stage compression. According to an embodiment of the present invention, this determination is performed automatically.

본 발명에 따른 유전체 데이터의 압축 전송 방법은 이와 같은 총 예상 시간의 측정 및 계산이 용이하도록 하고 나아가 미리 예측된 총 소요시간이 나머지 시퀀스 데이터에 적용될 때의 실제 총 소요시간과 매우 근사한 결과를 가져올 수 있게 한다. 나아가, 본 발명에 따른 유전체 데이터의 압축 전송 방법은 기존 상용의 무손실 압축 알고리즘에 대한 추가 적용 또는 비적용을 쉽게 구현할 수 있게 하며, 최적의 무손실 압축 알고리즘을 선택하는 것을 손쉽게 한다.The compression transmission method of genome data according to the present invention makes it easy to measure and calculate such a total expected time, and furthermore, it can bring a result very close to the actual total time required when the total required time predicted in advance is applied to the rest of the sequence data. let there be Furthermore, the method for compressing and transmitting genome data according to the present invention makes it easy to implement additional application or non-application to an existing commercial lossless compression algorithm, and to select an optimal lossless compression algorithm.

Claims (7)

M개의 코어로 구성되는 프로세서에서 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축 방법으로서,
M개의 코어중 하나의 코어인 제 1 코어가 첫번째 시퀀스 데이터의 첫번째 라인에서 고정 헤더 데이터를 압축결과 저장소에 저장하는 단계;
상기 제 1 코어가 나머지 M-1(M은 4이상의 자연수)개의 코어(이하 '기타 코어들'이라 한다) 각각에 대하여 N(N은 2이상의 자연수)개씩의 시퀀스 데이터를 분배하고 기타 코어들에서 각각 압축되도록 하여, 한번에 N*(M-1)개의 시퀀스 데이터에 대한 압축을 병렬 처리하고 상기 압축결과 저장소에 저장되도록 하는 단계;를 포함하되,
상기한 기타 코어들의 각각에서 실행되는 압축은,
각 시퀀스 데이터에 대하여, 첫번째 라인의 고정헤더를 제거하는 과정; 두번째 라인을 부호화하는 과정; 세번째 라인의 식별자를 저장하는 과정; 네번째 라인을 반복길이 부호화하는 과정;으로 구성되는 처리 과정을 상기 N개의 시퀀스 데이터에 대하여 반복하는 제 1 단계 압축과,
상기 N개의 시퀀스 데이터에 대한 상기 제1 단계 압축의 결과에 대하여, 무손실 압축 알고리즘에 의해 압축하는 제 2 단계 압축;을 실행하는,
것을 특징으로 하는 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축 방법.
A method of compressing genome data for compressing genome data in FASTQ format in a processor composed of M cores,
storing, by a first core, which is one of the M cores, fixed header data in a first line of first sequence data in a compression result storage;
The first core distributes N (N is a natural number greater than or equal to 2) sequence data to each of the remaining M-1 (M is a natural number greater than or equal to 4) cores (hereinafter referred to as 'other cores'), and Containing; including a; so that each is compressed, parallel processing of compression of N * (M-1) sequence data at a time and storing the compression result in the storage;
Compression performed on each of the above other cores,
removing the fixed header of the first line for each sequence data; encoding the second line; storing the identifier of the third line; A first step compression of repeating the process consisting of repeating length encoding of the fourth line for the N sequence data;
Executing a second-stage compression of compressing the N sequence data by a lossless compression algorithm with respect to the result of the first-stage compression.
A method of compressing genome data for compressing genome data in FASTQ format, characterized in that.
청구항 1에 있어서,
상기 제 2 단계 압축에서는 7z 압축 알고리즘이 적용되는 것을 특징으로 하는 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축 방법.
The method according to claim 1,
In the second step compression, a method of compressing genome data for compressing genome data in FASTQ format, characterized in that a 7z compression algorithm is applied.
청구항 1에 있어서,
상기 두번째 라인의 부호화는,
사전 설정되는 맵핑 테이블에 의해 A,T,G,C의 문자를 2bit 코드로 맵핑함으로써 실행되는,
것을 특징으로 하는 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축 방법.
The method according to claim 1,
The encoding of the second line is,
Executed by mapping the characters of A, T, G, C to a 2-bit code by a preset mapping table,
A method of compressing genome data for compressing genome data in FASTQ format, characterized in that.
삭제delete M개의 코어로 구성되는 프로세서를 구비한 송신처에서 FASTQ 포맷의 유전체 데이터를 압축하여 수신처로 전송하는 유전체 데이터의 압축전송 방법으로서,
상기 송신처에서의 압축은,
M개의 코어중 하나의 코어인 제 1 코어가 나머지 M-1(M은 4이상의 자연수)개의 코어(이하 '기타 코어들'이라 한다) 각각에 대하여 N(N은 2이상의 자연수)개씩의 시퀀스 데이터를 분배하고 상기 기타 코어들에서 압축되도록 하여, 한번에 N*(M-1)개의 시퀀스 데이터에 대한 압축을 병렬 처리하는 단계;를 포함하되,
상기한 기타 코어들의 각각에서 실행되는 압축은,
각 시퀀스 데이터에 대하여, 첫번째 라인의 고정헤더를 제거하는 과정; 두번째 라인을 부호화하는 과정; 세번째 라인의 식별자를 저장하는 과정; 네번째 라인을 반복길이 부호화하는 과정;으로 구성되는 처리 과정을 상기 N개의 시퀀스 데이터에 대하여 반복하는 제 1 단계 압축을 포함하여 실행되도록 하며,
상기한 기타 코어들의 각각에서 실행되는 압축은,
상기 N개의 시퀀스 데이터에 대한 상기 제 1 단계 압축의 결과에 대하여, 무손실 압축 알고리즘에 의해 압축하는 제 2 단계 압축;을 선택적으로 실행하는,
것을 특징으로 하는 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축전송 방법.
A method for compressing genome data in which a transmitter having a processor composed of M cores compresses genome data in FASTQ format and transmits it to a destination, comprising:
Compression at the sender is
N (N is a natural number greater than or equal to 2) sequence data for each of the remaining M-1 (M is a natural number greater than or equal to 4) cores (hereinafter referred to as 'other cores'), which is one of the M cores. By distributing and compressing the other cores, parallel processing of compression of N * (M-1) sequence data at a time; including;
Compression performed on each of the above other cores,
removing the fixed header of the first line for each sequence data; encoding the second line; storing the identifier of the third line; A process consisting of repeating length encoding of the fourth line is executed including the first step compression of repeating the N sequence data,
Compression performed on each of the above other cores,
Optionally executing a second-stage compression of compression by a lossless compression algorithm on the result of the first-stage compression for the N sequence data,
A compression transmission method of genome data for compressing genome data in FASTQ format, characterized in that.
청구항 5에 있어서,
상기 제 1 코어가 첫번째 시퀀스 데이터의 첫번째 라인에서 고정 헤더 데이터를 수신처로 전송하는 단계;
상기 송신처에서 유전체 데이터중 S(S는 1이상의 자연수)개의 시퀀스 데이터에 대하여 상기 제 1 단계 압축을 실행하여 상기 수신처로 전송하고 상기 수신처에서 압축해제를 실행하며, 상기 제 2 단계 압축을 실행하여 상기 수신처로 전송하고 상기 수신처에서 상기 제 2 단계 압축에 대응하는 압축해제를 실행하되, 하나 이상의 무손실 압축 알고리즘별로 실행하는 속도 측정용 압축 및 전송을 실행하는 단계;
상기 송신처의 제 1 코어가 상기 속도 측정용 압축 및 전송의 결과에 따라, 상기 S개의 시퀀스 데이터를 제외한 나머지 시퀀스 데이터(이하 '메인 시퀀스 데이터'라고 한다)에 대하여 적용할 상기 제 2 단계 압축의 실시 여부와 상기 제 2 단계 압축에 적용할 무손실 알고리즘을 결정함으로써 메인 시퀀스 데이터에 대한 압축 방식을 결정하는 단계;
상기 메인 시퀀스 데이터에 대하여 상기 결정된 압축 방식에 따라 상기 나머지 코어들에 의해 압축이 실행되도록 하며 압축된 결과가 상기 수신처로 전송되도록 하는,
것을 특징으로 하는 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축 방법.
6. The method of claim 5,
transmitting, by the first core, fixed header data in a first line of first sequence data to a destination;
At the sender, S (S is a natural number greater than or equal to 1) sequence data among the genome data is transmitted to the destination by performing the first-stage compression, and decompressed by the destination, and the second-stage compression is performed to performing compression and transmission for speed measurement performed by transmission to a destination and decompression corresponding to the second stage compression at the destination, but for each one or more lossless compression algorithms;
Execution of the second-stage compression to be applied by the first core of the sender to the remaining sequence data (hereinafter referred to as 'main sequence data') except for the S sequence data according to the result of compression and transmission for speed measurement determining a compression method for the main sequence data by determining whether or not and a lossless algorithm to be applied to the second step compression;
Compression is performed by the remaining cores according to the determined compression method on the main sequence data, and the compressed result is transmitted to the destination.
A method of compressing genome data for compressing genome data in FASTQ format, characterized in that.
청구항 6에 있어서,
상기한 메인 시퀀스 데이터에 대한 압축 방식의 결정은,
상기 속도 측정용 압축 및 전송의 결과를 이용하여, 상기 제 1 단계 압축을 실시하고 상기 제 2 단계 압축을 실시하지 않는 압축 전송 형태와, 상기 제 1 단계 압축을 실시하고 적어도 하나 이상의 후보가 되는 무손실 압축 알고리즘에 따라 상기 제 2 단계 압축을 실시하는 압축전송 형태의 각각에 대하여,
상기 송신처 및 수신처에서 압축, 전송 및 압축해제에 소요되는 총 예상 소요시간을 계산하고 총 예상 소요시간이 가장 작은 압축전송 형태를 상기 메인 시퀀스 데이터에 대한 압축 방식으로 결정하는,
것을 특징으로 하는 FASTQ 포맷의 유전체 데이터를 압축하는 유전체 데이터의 압축 방법.
7. The method of claim 6,
Determination of the compression method for the main sequence data is,
A compression transmission form in which the first-stage compression is performed and the second-stage compression is not performed by using the results of the compression and transmission for measuring the speed, and at least one or more candidates are lossless after the first-stage compression is performed For each of the compression transmission types in which the second-stage compression is performed according to the compression algorithm,
calculating a total estimated time required for compression, transmission, and decompression at the sender and receiver, and determining a compressed transmission form with the smallest total expected time as a compression method for the main sequence data;
A method of compressing genome data for compressing genome data in FASTQ format, characterized in that.
KR1020190143734A 2019-11-11 2019-11-11 Method of compression and transmision for fastq genome data KR102396789B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190143734A KR102396789B1 (en) 2019-11-11 2019-11-11 Method of compression and transmision for fastq genome data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190143734A KR102396789B1 (en) 2019-11-11 2019-11-11 Method of compression and transmision for fastq genome data

Publications (2)

Publication Number Publication Date
KR20210056822A KR20210056822A (en) 2021-05-20
KR102396789B1 true KR102396789B1 (en) 2022-05-11

Family

ID=76142980

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190143734A KR102396789B1 (en) 2019-11-11 2019-11-11 Method of compression and transmision for fastq genome data

Country Status (1)

Country Link
KR (1) KR102396789B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020040406A (en) 2000-11-24 2002-05-30 김응수 A method of compressing and storing data based on genetic code
KR102219745B1 (en) * 2016-08-31 2021-02-23 후아웨이 테크놀러지 컴퍼니 리미티드 Method and apparatus for processing biological sequence data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Y. Xing 외, "GTZ: a fast compression and cloud transmission tool optimized for FASTQ files", BMC Bioinformatics 18(Suppl 16), 2017.*

Also Published As

Publication number Publication date
KR20210056822A (en) 2021-05-20

Similar Documents

Publication Publication Date Title
EP2608096B1 (en) Compression of genomic data file
CN110603595B (en) Methods and systems for reconstructing genomic reference sequences from compressed genomic sequence reads
US8812243B2 (en) Transmission and compression of genetic data
US20200211677A1 (en) Dna-based data storage and retrieval
Ochoa et al. QualComp: a new lossy compressor for quality scores based on rate distortion theory
US10560552B2 (en) Compression and transmission of genomic information
EP3311318B1 (en) Method for compressing genomic data
EP2595076B1 (en) Compression of genomic data
CN103995988A (en) High-throughput DNA sequencing mass fraction lossless compression system and method
US20110288785A1 (en) Compression of genomic base and annotation data
KR102396789B1 (en) Method of compression and transmision for fastq genome data
KR102339723B1 (en) Method, program, and appratus of decoding based on soft information of a dna storage device
JP2020509474A (en) Methods and systems for reconstructing genomic reference sequences from compressed genomic sequence reads
US20240134825A1 (en) Fastq/fasta compression systems and methods
US11775172B1 (en) Genome data compression and transmission method for FASTQ-formatted genome data
US11823774B2 (en) Compression/decompression method and apparatus for genomic variant call data
US20200058379A1 (en) Systems and Methods for Compressing Genetic Sequencing Data and Uses Thereof
JP2005286371A (en) Data compression method and program, and data restoring method and device
CN110915140A (en) Method for encoding and decoding a quality value of a data structure
US20240194296A1 (en) Method for the Compression of Genome Sequence Data
Beal et al. Compressing genome resequencing data via the maximal longest factor
Mehta et al. DNA compression using referential compression algorithm
He et al. A Novel Compression Algorithm for High-Throughput DNA Sequence Based on Huffman Coding Method
Voges Compression of DNA sequencing data
Venugopal et al. Probabilistic Approach for DNA Compression

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right