KR20230107349A - 자동-구성가능 데이터 압축 프레임워크를 위한 시스템 및 방법 - Google Patents

자동-구성가능 데이터 압축 프레임워크를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20230107349A
KR20230107349A KR1020237020674A KR20237020674A KR20230107349A KR 20230107349 A KR20230107349 A KR 20230107349A KR 1020237020674 A KR1020237020674 A KR 1020237020674A KR 20237020674 A KR20237020674 A KR 20237020674A KR 20230107349 A KR20230107349 A KR 20230107349A
Authority
KR
South Korea
Prior art keywords
compression
attribute
data file
file
data
Prior art date
Application number
KR1020237020674A
Other languages
English (en)
Inventor
이 힘 청
Original Assignee
코닌클리케 필립스 엔.브이.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 코닌클리케 필립스 엔.브이. filed Critical 코닌클리케 필립스 엔.브이.
Publication of KR20230107349A publication Critical patent/KR20230107349A/ko

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
    • 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/6064Selection of Compressor
    • H03M7/607Selection between different types of compressors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/6064Selection of Compressor
    • H03M7/6082Selection strategies
    • H03M7/6088Selection strategies according to the data type

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Genetics & Genomics (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • Biophysics (AREA)
  • Medical Informatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

데이터 파일을 압축 및 압축해제하기 위한 방법(100)으로서, 방법은 (i) 복수의 상이한 속성들을 포함하는 압축을 위한 데이터 파일을 수신하는 단계(120); (ii) 복수의 상이한 속성들 중 제1 속성을 식별하는 단계(130); (iii) 복수의 압축 유형들 및/또는 구성들을 선택하는 단계(140); (iv) 선택된 복수의 압축 유형들 및/또는 구성들 각각을 사용하여 식별된 제1 속성에 대한 수신된 데이터 파일로부터의 데이터의 적어도 일부를 압축하는 단계(150); (v) 선택된 복수의 압축 유형들 및/또는 구성들 중 어느 것이 압축에 가장 적합한지를 결정하는 단계(160); (vi) 선택된 복수의 압축 유형들 및/또는 구성들의 식별을 포함하는 압축 파라미터 데이터 구조를 생성하는 단계(170); (vii) 제1 속성에 대한 수신된 데이터 파일로부터의 데이터를 압축하여 압축된 데이터 파일을 생성하는 단계(180); 및 (viii) 압축 파라미터 데이터 구조 및 압축된 데이터 파일을 저장하는 단계(190)를 포함한다.

Description

자동-구성가능 데이터 압축 프레임워크를 위한 시스템 및 방법
본 개시내용은 대체적으로, 파일 압축/압축해제 시스템을 사용하여 데이터 파일을 압축하기 위한 방법들 및 시스템들에 관한 것이다.
많은 데이터 파일들의 계속 성장하는 크기를 고려하여, 효율적인 파일 압축 방법들 및 시스템들이 점점 더 중요해지고 있다. 예를 들어, 단일 게놈 데이터 파일은, 다수의 샘플들의 게놈들에 걸친 수백만 또는 수십억 개의 위치들에 대한 서열분석 결과(sequencing result)들을, 주석들 및 다른 데이터 속성들과 함께 포함할 수 있다. 예를 들어, VCF(Variant Call Format) 파일은, 데이터 속성들을 포함하는 수백만 개의 행들 및 수많은 열들을 갖는 유전자 서열 변이를 포함할 수 있다. 이러한 데이터 파일들은 장기간 저장되어야 하며, 크기가 때로는 수백 또는 수천 기가바이트로 매우 클 것이다.
데이터 파일의 압축은 전형적으로 하나 이상의 데이터 압축기들을 포함한다. 데이터 파일에 직접 적용될 수 있는 수많은 범용 압축기들이 있지만, 그들은 데이터 중복성의 효과적인 제거를 위해 데이터세트 내의 개별 필드들의 데이터의 유사성 또는 예측성을 완전히 활용하지 않기 때문에 그들의 압축 성능들은 일반적으로 최적이 아니다. 따라서, 압축비(compression ratio)를 개선하기 위한 하나의 접근법은, 먼저 데이터세트를 별개의 특성들을 갖는 필드들로 분할하고, 이어서 필드의 특정 데이터 모델을 최대한 이용할 수 있는 압축기로 필드들 각각을 개별적으로 압축하는 것이다. 그러나, 이는 대체적으로, 데이터 필드들 및 그들의 연관된 압축기들이 각각의 그리고 모든 파일 유형에 대해 미리결정되고, 압축 및 압축해제를 위해 사용되는 소프트웨어에서 이에 따라 인코딩 및 디코딩 프로세스들이 하드코딩될 것을 요구한다. 그러한 접근법의 엄격성은 신생 데이터 유형들을 수용하거나 새로운 알고리즘들을 채택하는 것을 어렵게 만든다.
데이터 파일들의 효율적이고 적응가능한 압축 및 압축해제를 위한 방법들 및 시스템들에 대한 지속적인 필요성이 존재한다. 본 개시내용은 압축 성능에 기초한 데이터 압축기들의 자동화된 식별 및/또는 구성을 사용하여 데이터 파일을 압축하기 위한 본 발명의 방법들 및 시스템들에 관한 것이다. 파일 압축/압축해제 시스템은 복수의 상이한 샘플들 각각에 대해 복수의 상이한 속성들을 포함하는 압축을 위한 데이터 파일을 수신한다. 시스템은, 복수의 상이한 속성들 중 제1 속성을 식별하고, 제1 속성에 기초하여 미리결정된 복수의 압축 유형들 및 구성들로부터 복수의 상이한 압축 유형들 및/또는 압축 구성들을 선택한다. 시스템은, 개별적으로, 선택된 복수의 압축 유형들 및/또는 압축 구성들 각각을 사용하여 식별된 제1 속성에 대한 수신된 게놈 데이터 파일로부터의 데이터를 압축하고, 선택된 복수의 압축 유형들 및/또는 압축 구성들 중 어느 것이 압축에 가장 적합한지를 결정한다. 이어서, 시스템은, 선택된 복수의 압축 유형들 및/또는 압축 구성들 중, 식별된 제1 속성의 압축에 가장 적합한 압축 유형 및/또는 압축 구성의 식별(identification)을 포함하는 압축 파라미터 데이터 구조를 생성하고, 식별된 압축 유형 및/또는 압축 구성을 사용하여, 제1 속성에 대한 수신된 게놈 데이터 파일로부터의 데이터를 압축하여 압축된 게놈 데이터 파일을 생성한다. 이어서, 압축 파라미터 데이터 구조 및 압축된 게놈 데이터 파일은 저장되고, 압축해제를 위해 사용될 수 있다.
대체적으로, 일 태양에서, 파일 압축/압축해제 시스템을 사용하여 게놈 데이터 파일을 압축/압축해제하기 위한 방법이 제공된다. 방법은, (i) 복수의 상이한 속성들을 포함하는 압축을 위한 데이터 파일을 수신하는 단계; (ii) 복수의 상이한 속성들 중 제1 속성을 식별하고, 식별된 제1 속성의 사양(specification)을 속성 파라미터 데이터 구조에 저장하는 단계; (iii) 식별된 제1 속성에 기초하여, 미리결정된 복수의 압축 유형들 및/또는 압축 구성들로부터 복수의 압축 유형들 및/또는 압축 구성들을 선택하는 단계; (iv) 개별적으로, 선택된 복수의 압축 유형들 및/또는 압축 구성들 각각을 사용하여 식별된 제1 속성에 대한 수신된 데이터 파일로부터의 데이터의 적어도 일부를 압축하는 단계로서, 각각의 개별 압축에 대해 하나 이상의 메트릭들이 측정되는, 상기 데이터의 적어도 일부를 압축하는 단계; (v) 개별 압축들 각각의 하나 이상의 메트릭들에 기초하여, 선택된 복수의 압축 유형들 및/또는 압축 구성들 중 어느 것이 압축에 가장 적합한지를 결정하는 단계; (vi) 선택된 복수의 압축 유형들 및/또는 압축 구성들 중, 식별된 제1 속성의 압축에 가장 적합한 압축 유형 및/또는 압축 구성의 식별을 포함하는 압축 파라미터 데이터 구조를 생성하는 단계; (vii) 식별된 압축 유형을 사용하여, 제1 속성에 대한 수신된 데이터 파일로부터의 데이터를 압축하여 압축된 데이터 파일을 생성하는 단계; 및 (viii) 속성 파라미터 데이터 구조, 압축 파라미터 데이터 구조 및 압축된 데이터 파일을 저장하는 단계로서, 저장된 압축 파라미터 데이터 구조는 압축된 데이터 파일의 압축해제를 위해 검색 및 사용되도록 구성되는, 상기 속성 파라미터 데이터 구조, 압축 파라미터 데이터 구조 및 압축된 데이터 파일을 저장하는 단계를 포함한다.
일 실시예에 따르면, 방법은 복수의 상이한 속성들 중 적어도 제2 속성에 대해 식별, 선택, 압축, 및 결정 단계들을 반복하는 단계를 추가로 포함하고, 압축 파라미터 데이터 구조는 선택된 복수의 압축 유형들 및/또는 압축 구성들 중, 식별된 제2 속성의 압축에 가장 적합한 압축 유형 및/또는 압축 구성의 사양을 포함한다.
일 실시예에 따르면, 방법은 저장된 압축된 데이터 파일을 압축해제하는 단계를 추가로 포함하고, 압축해제는 압축 파라미터 데이터 구조를 컨설팅하여 제1 속성에 대한 압축해제 유형을 식별하는 것을 포함한다.
일 실시예에 따르면, 선택된 복수의 압축 유형들 및/또는 압축 구성들 각각은, 식별된 제1 속성에 대한 수신된 데이터 파일로부터의 데이터를 압축하는 것이 가능하기 때문에 선택된다.
일 실시예에 따르면, 데이터 파일은 게놈 데이터 파일이다.
일 실시예에 따르면, 하나 이상의 메트릭들은 상기 압축에 대한 압축비 및 프로세싱 시간 중 하나 이상을 포함한다.
일 실시예에 따르면, 압축 유형은, 대응하는 압축이 복수의 선택된 압축 유형들 및/또는 압축 구성들 중 다른 것에 비해 더 높은 압축비 및/또는 더 빠른 프로세싱 시간을 포함하는 경우에 가장 적합하다.
일 실시예에 따르면, 방법은, 사용자 인터페이스를 통해, 생성된 압축 파라미터 데이터 구조 및/또는 압축된 데이터 파일에 관한 정보를 제공하는 단계를 추가로 포함한다.
일 실시예에 따르면, 방법은, 사용자 인터페이스를 통해, 사용자가 속성을 압축하기 위해 적용될 압축기 유형 및/또는 구성을 선택할 수 있도록 하는, 식별된 압축 유형들 및/또는 압축 구성들 중 하나 이상에 관한 정보를 사용자에게 제공하는 단계를 추가로 포함한다.
제2 태양에 따르면, 데이터 파일을 압축/압축해제하기 위한 시스템이 제공된다. 시스템은, 복수의 상이한 속성들을 포함하는 압축을 위한 데이터 파일; 및 프로세서를 포함하고, 프로세서는, (i) 복수의 상이한 속성들 중 제1 속성을 식별하고, 식별된 제1 속성의 사양을 속성 파라미터 데이터 구조에 저장하도록; (ii) 식별된 제1 속성에 기초하여, 미리결정된 복수의 압축 유형들 및/또는 압축 구성들로부터 복수의 압축 유형들 및/또는 압축 구성들을 선택하도록; (iii) 개별적으로, 선택된 복수의 압축 유형들 및/또는 압축 구성들 각각을 사용하여 식별된 제1 속성에 대한 수신된 데이터 파일로부터의 데이터의 적어도 일부를 압축하는 것으로서, 각각의 개별 압축에 대해 하나 이상의 메트릭들이 측정되는, 상기 데이터의 적어도 일부를 압축하도록; (iv) 개별 압축들 각각의 하나 이상의 메트릭들에 기초하여, 선택된 복수의 압축 유형들 및/또는 압축 구성들 중 어느 것이 압축에 가장 적합한지를 결정하도록; (v) 선택된 복수의 압축 유형들 및/또는 압축 구성들 중, 식별된 제1 속성의 압축에 가장 적합한 압축 유형 및/또는 압축 구성의 식별을 포함하는 압축 파라미터 데이터 구조를 생성하도록; (vi) 식별된 압축 유형을 사용하여, 제1 속성에 대한 수신된 데이터 파일로부터의 데이터를 압축하여 압축된 데이터 파일을 생성하도록; 그리고 (vii) 속성 파라미터 데이터 구조, 압축 파라미터 데이터 구조 및 압축된 데이터 파일을 저장하는 것으로서, 저장된 압축 파라미터 데이터 구조는 압축된 데이터 파일의 압축해제를 위해 검색 및 사용되도록 구성되는, 상기 속성 파라미터 데이터 구조, 압축 파라미터 데이터 구조 및 압축된 데이터 파일을 저장하도록 구성된다.
일 실시예에 따르면, 시스템은, 생성된 압축 파라미터 데이터 구조 및/또는 압축된 데이터 파일에 관한 정보를 제공하도록 구성된 사용자 인터페이스를 포함한다.
다양한 구현예들에서, 프로세서 또는 제어기는 하나 이상의 저장 매체들(대체적으로, 본 명세서에서 "메모리", 예를 들어, RAM, PROM, EPROM, 및 EEPROM과 같은 휘발성 및 비휘발성 컴퓨터 메모리, 플로피 디스크들, 콤팩트 디스크들, 광학 디스크들, 자기 테이프 등으로 지칭됨)과 연관될 수 있다. 일부 구현예들에서, 저장 매체들은, 하나 이상의 프로세서들 및/또는 제어기들 상에서 실행될 때, 본 명세서에 논의된 기능들 중 적어도 일부를 수행하는 하나 이상의 프로그램들로 인코딩될 수 있다. 다양한 저장 매체들은 프로세서 또는 제어기 내에 고정될 수 있거나 운반가능할 수 있어서, 그에 저장된 하나 이상의 프로그램들이 본 명세서에 논의된 바와 같은 다양한 태양들을 구현하도록 프로세서 또는 제어기 내에 로딩될 수 있게 할 수 있다. 용어들 "프로그램" 또는 "컴퓨터 프로그램"은 본 명세서에서 하나 이상의 프로세서들 또는 제어기들을 프로그래밍하는 데 채용될 수 있는 임의의 유형의 컴퓨터 코드(예컨대, 소프트웨어 또는 마이크로코드)를 지칭하기 위해 총칭적인 의미로 사용된다.
아래에서 더욱 상세히 논의되는 전술한 개념들 및 추가의 개념들의 모든 조합들이 (그러한 개념들이 서로 불일치하지 않는다면) 본 명세서에 개시되는 본 발명의 요지의 일부인 것으로 고려된다는 것이 이해되어야 한다. 특히, 본 개시내용의 마지막에 언급되는 청구된 요지의 모든 조합들이 본 명세서에 개시되는 본 발명의 요지의 일부인 것으로 고려된다. 또한, 참고로 포함된 임의의 개시내용에서 또한 나타날 수 있는 본 명세서에 명시적으로 채용된 용어에, 본 명세서에 개시된 특정 개념들과 가장 일치하는 의미가 부여되어야 한다는 것이 이해되어야 한다.
다양한 실시예들의 이들 및 다른 태양들이 이하에 기술되는 실시예(들)로부터 명백하고 그러한 실시예(들)를 참조하여 설명될 것이다.
도면에서, 유사한 도면 부호는 대체적으로 상이한 도면 전체에 걸쳐 동일한 부분을 지칭한다. 또한, 도면들은 반드시 축척대로 도시된 것은 아니며, 대신에 대체적으로 다양한 실시예들의 원리들을 예시하는 데 중점을 둔다.
도 1은 일 실시예에 따른, 파일 압축/압축해제 시스템을 사용하여 게놈 데이터 파일을 압축하기 위한 방법의 흐름도이다.
도 2는 일 실시예에 따른, 파일 압축/압축해제 시스템의 개략도이다.
도 3은 일 실시예에 따른, 데이터 파일의 개략도이다.
본 개시내용은 데이터 파일들의 효율적이고 적응가능한 압축을 위한 시스템 및 방법의 다양한 실시예들을 기술한다. 본 출원인은 압축 성능에 기초한 데이터 압축기들의 자동화된 식별 및/또는 구성을 채용하는 데이터 파일 압축 방법 및 시스템을 제공하는 것이 유익할 것이라는 것을 인식하고 이해하였다. 데이터 파일 압축/압축해제 시스템은 복수의 상이한 게놈 샘플들 각각에 대해 복수의 상이한 속성들(또는 데이터 필드들)을 포함하는 압축을 위한 게놈 데이터 파일을 수신한다. 시스템은, 복수의 상이한 속성들 중 제1 속성을 식별하고, 그 속성에 기초하여, 미리결정된 복수의 압축 유형들 및 압축 구성들로부터 복수의 압축 유형들 및/또는 압축 구성들을 선택하며, 여기서 선택된 복수의 압축 유형들 및/또는 압축 구성들 각각은 식별된 제1 속성에 대한 수신된 게놈 데이터 파일로부터의 데이터를 압축하는 것이 가능하다. 데이터 파일 압축 시스템은, 개별적으로, 선택된 복수의 압축 유형들 및/또는 압축 구성들 각각을 사용하여 식별된 제1 속성에 대한 수신된 게놈 데이터 파일로부터의 데이터의 적어도 일부를 압축하며, 여기서 각각의 개별 압축에 대해 하나 이상의 메트릭들이 측정되고, 하나 이상의 메트릭들은 상기 압축에 대한 압축비 및 프로세싱 시간 중 하나 이상을 포함한다. 개별 압축들 각각의 하나 이상의 메트릭들에 기초하여, 시스템은 선택된 복수의 압축 유형들 및/또는 압축 구성들 중 어느 것이 압축에 가장 적합한지를 결정한다. 일 실시예에 따르면, 압축 유형은, 대응하는 압축이 복수의 선택된 압축 유형들 및/또는 압축 구성들 중 다른 것에 비해 더 높은 압축비 및/또는 더 빠른 프로세싱 시간을 포함하는 경우에 가장 적합하다. 이어서, 시스템은, 선택된 복수의 압축 유형들 및/또는 압축 구성들 중, 식별된 제1 속성의 압축에 가장 적합한 압축 유형 및/또는 압축 구성의 식별 및/또는 그에 대한 프로세싱 명령어들을 포함하는 압축 파라미터 데이터 구조를 생성하고, 제1 속성에 대한 수신된 게놈 데이터 파일로부터 압축하여 압축된 게놈 데이터 파일을 생성한다. 압축 파라미터 데이터 구조 및 압축된 게놈 데이터 파일은 저장되며, 여기서 저장된 압축 파라미터 데이터 구조는 압축된 게놈 데이터 파일의 압축해제를 위해 검색 및 사용되도록 구성된다.
일 실시예에 따르면, 본 명세서에 기술되거나 달리 구상된 신규한 방법들 및 시스템들은 데이터 필드들에 대한 압축기들의, 그들의 성능들에 기초한 자동 구성을 위한 프레임워크를 제공하고, 압축기들이 명시적으로 특정되고 압축된 데이터와 함께 저장되는 것을 가능하게 한다. 속성 데이터에 액세스하기 위해, 디코더는 속성과 연관된 압축기 구성에서 특정된 프로세싱 단계들 및 파라미터들에 기초하여 압축해제 및 역 변환 알고리즘들을 실행할 수 있다. 본 명세서에 기술되거나 달리 구상된 신규한 방법들 및 시스템들은 수많은 이점들을 제공한다. 예를 들어, 방법들 및 시스템들은 파일에 대한 압축기 구성들을 맞춤화하기 위한 유연성을 제공하고, 새로운 변환 및 압축 알고리즘들의 채택을 용이하게 한다. 둘째로, 방법들 및 시스템들은 압축기 구성들을 식별하고 제공함으로써 임의의 새로운 파일 유형들을 수용한다. 프로세싱 명령어들이 압축기 구성들에 포함되고 소프트웨어에 하드코딩되지 않기 때문에, 디코더는 코드들을 수정할 필요 없이도 파일을 쉽게 프로세싱할 수 있다. 셋째로, 압축기 설정들의 자동-구성은 사용자 지식 또는 경험을 요구하지 않고도 압축 성능을 개선하는 데 도움이 된다. 방법들 및 시스템들은 많은 다른 이점들을 또한 제공한다.
일 실시예에 따르면, 압축기 구성 프레임워크 시스템은 다음의 구성요소들 중 하나 이상을 포함한다: (i) 데이터 변환 및 압축 단계들의 시퀀스 및 그들의 디폴트 파라미터들로 구성된 압축 프로세스와 같은, 압축기를 특정하기 위한 균일한 데이터 인터페이스; (ii) 데이터 속성을 특정하고 이를 맞춤화된 파라미터들을 갖는 압축기에 연관시키기 위한 균일한 데이터 인터페이스; (iii) 연관된 압축기 구성에서 특정된 프로세싱 단계들에 기초하여 속성 데이터를 인코딩하기 위한 알고리즘; (iv) 연관된 압축기 구성에서 특정된 프로세싱 단계들에 기초하여 속성 데이터를 디코딩하기 위한 알고리즘; 및 (v) 성능에 기초한 압축기 구성들의 자동 결정을 위한 메커니즘.
도 1을 참조하면, 일 실시예에서, 파일 압축/압축해제 시스템을 사용하여 게놈 데이터 파일을 압축하기 위한 방법(100)의 흐름도가 있다. 도면들과 관련하여 기술된 방법들은 단지 예들로서 제공되며, 본 개시내용의 범주를 제한하지 않는 것으로 이해되어야 한다. 파일 압축/압축해제 시스템은 본 명세서에 기술되거나 달리 구상된 시스템들 중 임의의 것일 수 있다. 파일 압축/압축해제 시스템은 단일 시스템 또는 다수의 상이한 시스템들일 수 있다.
방법의 단계(110)에서, 파일 압축/압축해제 시스템(200)이 제공된다. 예를 들어, 도 2에 도시된 바와 같은 파일 압축/압축해제 시스템(200)의 일 실시예를 참조하면, 시스템은 하나 이상의 시스템 버스들(212)을 통해 상호연결되는 프로세서(220), 메모리(230), 사용자 인터페이스(240), 통신 인터페이스(250), 및 저장소(260) 중 하나 이상을 포함한다. 도 2는, 어떤 면에서, 추상적 개념(abstraction)을 구성하고, 시스템(200)의 구성요소들의 실제 조직은 예시된 것과는 상이하고 그보다 더 복잡할 수 있다는 것이 이해될 것이다. 추가적으로, 파일 압축/압축해제 시스템(200)은 본 명세서에 기술되거나 달리 구상된 시스템들 중 임의의 것일 수 있다. 파일 압축/압축해제 시스템(200)의 다른 요소들 및 구성요소들이 본 명세서의 다른 곳에서 개시되고/되거나 구상된다.
일 실시예에 따르면, 파일 압축/압축해제 시스템(200)은 파일 데이터베이스(270)를 포함하거나 또는 이와 직접 또는 간접적으로 통신한다. 파일 데이터베이스는, 다른 가능한 데이터 중에서도, 파일 압축/압축해제 시스템(200)을 사용하여 압축될 수 있거나, 또는 압축되었던 하나 이상의 파일들을 포함한다. 일 실시예에 따르면, 하나 이상의 파일들은 게놈 파일들을 포함하고, 이때 게놈 파일은 잠재적으로 많은 상이한 게놈 샘플들에 대해, 데이터 속성들을 포함하는 수백만 개의 행들 및 수많은 열들을 갖는 유전자 서열 변이를 포함한다. 파일 데이터베이스는 본 명세서에 기술되거나 달리 구상된 데이터베이스들 및 시스템들을 포함하지만 이에 제한되지 않는 임의의 그러한 데이터베이스일 수 있다.
일 실시예에 따르면, 파일 압축/압축해제 시스템(200)은 압축 및 압축해제 알고리즘 데이터베이스(280)를 포함하거나 또는 이와 직접 또는 간접적으로 통신한다. 압축 및 압축해제 알고리즘 데이터베이스는 상이한 압축 알고리즘들 및 압축해제 알고리즘들의 라이브러리를 포함한다. 이러한 압축 및 압축해제 알고리즘들은 데이터 파일 시스템에 의해 데이터 파일들을 압축하고 압축해제하는 데 활용될 수 있다. 새로운 압축 알고리즘들 및 압축해제 알고리즘들은 언제든지 데이터베이스에 추가될 수 있다. 압축 및 압축해제 알고리즘 데이터베이스는 본 명세서에 기술되거나 달리 구상된 데이터베이스들 및 시스템들을 포함하지만 이에 제한되지 않는 임의의 그러한 데이터베이스일 수 있다.
방법의 단계(120)에서, 파일 압축/압축해제 시스템은 복수의 상이한 샘플들 각각에 대한 복수의 상이한 속성들을 포함하는 압축을 위한 압축되지 않은 데이터 파일을 수신한다. 게놈 데이터 파일들의 경우, 예로서, 게놈 데이터 파일은 복수의 상이한 게놈 샘플들 각각에 대한 복수의 상이한 속성들을 포함한다. 데이터 파일은, 그 자체가 로컬 또는 원격 데이터베이스일 수 있는 파일 데이터베이스(270)를 포함하지만 이에 제한되지 않는 임의의 소스로부터 로컬로 또는 원격으로 수신될 수 있다.
방법의 단계(130)에서, 파일 데이터 시스템은 데이터 파일 내의 복수의 상이한 속성들 중에서 제1 속성을 식별한다. 속성은 데이터 파일로부터의 임의의 정보일 수 있다. 도 3을 참조하면, 데이터 파일의 하나의 비제한적인 예에서, 각각의 열이 속성인 복수의 열들(310)을 포함하는 게놈 데이터 파일의 일부분(300)이 있다. 파일 데이터 시스템은 데이터 파일 내에서 알려진 속성들을 인식하도록 구성될 수 있거나, 또는 데이터 파일 내에서 새로운 또는 인식되지 않은 속성들을 예측하거나 추정하거나 또는 달리 결정하도록 구성될 수 있다. 따라서, 파일 데이터 시스템은 매우 다양한 상이한 방법들을 사용하여 데이터 파일 내의 복수의 상이한 속성들 중에서 제1 속성을 식별하도록 구성될 수 있다. 일 실시예에 따르면, 속성을 식별한 후, 시스템은 (본 명세서에 기술된 속성 파라미터 세트와 같은) 속성 파라미터 데이터 구조에서 속성을 특정한다.
단계(140)에서, 데이터 파일 압축/압축해제 시스템은 미리결정된 복수의 압축 유형들, 알고리즘들, 및 구성들로부터 복수의 압축 유형들 또는 알고리즘들("압축기") 및/또는 압축 구성들을 선택한다. 압축기 또는 압축 구성은 예를 들어, 압축 알고리즘들의 시퀀스 및 압축 알고리즘들과 연관된 파라미터(들)를 포함할 수 있다. 압축 유형들, 알고리즘들, 및 압축 구성들은, 그 자체가 로컬 또는 원격 데이터베이스일 수 있는 압축 및 압축해제 알고리즘 데이터베이스(280)를 포함하지만 이에 제한되지 않는 임의의 소스로부터 로컬로 또는 원격으로 선택될 수 있다. 일 실시예에 따르면, 복수의 압축 유형들, 알고리즘들, 및 압축 구성들 중 하나 이상은 식별된 속성에 적어도 부분적으로 기초하여 미리결정된 복수의 압축 유형들, 알고리즘들, 및 압축 구성들로부터 선택된다. 예를 들어, 압축기 또는 구성은 식별된 제1 속성에 대한 수신된 데이터 파일로부터의 데이터를 압축하는 압축기의 능력에 기초하여 선택될 수 있다. 따라서, 시스템은 제1 속성 데이터를 압축할 수 있는 압축기들 또는 구성들을 우선적으로 식별할 수 있고/있거나 제1 속성 데이터를 압축할 수 없는 압축기들을 우선적으로 배제할 수 있다.
단계(150)에서, 파일 데이터 시스템은 식별된 압축기들을 사용하여 데이터를 압축한다. 일 실시예에 따르면, 파일 압축/압축해제 시스템은 제1 속성 데이터를 개별적으로 압축한다. 복수의 압축기들에 의한 이러한 개별 압축은 순차적으로 또는 동시에 수행될 수 있다. 일 실시예에 따르면, 각각의 압축기는 제1 속성 데이터의 서브세트만을 압축하고, 여기서 서브세트는, 복수의 압축기들 사이의 압축 메트릭들의 보다 객관적인 비교를 허용하기 위해 각각의 압축기에 대해 동일한 서브세트이다. 다른 실시예에 따르면, 각각의 압축기는 모든 제1 속성 데이터를 압축한다.
실시예에 따르면, 파일 압축/압축해제 시스템은 각각의 압축기에 의한 각각의 개별 압축에 대해 하나 이상의 압축 메트릭들을 측정하거나 또는 달리 획득하거나 식별한다. 이는 복수의 압축기들 사이의 압축 성능의 객관적인 비교, 및 제1 속성 데이터에 대한 선호된 압축기의 선택을 가능하게 한다. 일 실시예에 따르면, 압축 메트릭들은 압축비, 프로세싱 시간, 압축 정확도, 및/또는 임의의 다른 압축 메트릭일 수 있다.
방법의 단계(160)에서, 파일 압축/압축해제 시스템은, 측정된 또는 획득된 메트릭들을 사용하여, 선택된 복수의 압축 유형들, 알고리즘들, 또는 압축 구성들 중 어느 것이 압축에 가장 적합한지를 결정한다. 따라서, 파일 압축/압축해제 시스템은 각각의 개별 압축기에 대응하는 메트릭들을 비교하거나, 순위매김하거나, 또는 달리 활용하고, 선호된 압축기를 선택한다. 예를 들어, 압축기 또는 구성은, 압축 또는 구성이 복수의 선택된 압축 유형들 또는 구성들 중 다른 것에 비해 더 높거나 최상의 압축비 및/또는 더 빠른 프로세싱 시간을 포함하는 경우에 압축에 가장 적합하거나 선호될 수 있다. 제1 실시예에 따르면, 파일 압축/압축해제 시스템은 최상의 압축비를 갖는 압축기를 선택하도록 구성된다. 제2 실시예에 따르면, 파일 압축/압축해제 시스템은 가장 빠른 압축 또는 프로세싱 시간을 갖는 압축기를 선택하도록 구성된다. 제3 실시예에 따르면, 파일 압축/압축해제 시스템은 압축비 및 압축 또는 프로세싱 시간의 최상의 조합을 갖는 압축기를 선택하도록 구성된다. 이러한 구성들은 다른 옵션들 중에서도, 시스템의 사용자에 의해 결정될 수 있거나, 학습될 수 있거나, 사전프로그래밍될 수 있다.
일 실시예에 따르면, 파일 압축/압축해제 시스템은 하나 이상의 추가적인 속성들에 대해 이러한 식별, 선택, 압축, 및 결정 단계들을 반복한다. 예를 들어, 시스템은 데이터 파일 내에서 발견되는 일부 또는 모든 속성들에 대해 선호된 압축기를 식별하도록 구성될 수 있다.
방법의 단계(170)에서, 파일 압축/압축해제 시스템은 압축 파라미터 데이터 파일과 같은 압축 파라미터 데이터 구조를 생성한다. 일 실시예에 따르면, 생성된 압축 파라미터 데이터 구조는 적어도 제1 식별된 속성에 대한 선택된 압축기 및/또는 압축 구성들의 식별 및/또는 그에 대한 사양(들), 및 선택적으로, 데이터 파일 내의 복수의 속성들에 대해 선택되는(예를 들어, 다수의 속성들에 대한 압축기의 사용을 특정함) 압축기(들) 및/또는 압축 구성(들)의 식별을 포함한다. 압축 파라미터 데이터 파일은 압축기 설정들 및 다른 정보를 포함하여, 압축기를 활용하는 데 필요한 임의의 정보를 포함할 수 있다.
방법의 단계(180)에서, 파일 압축/압축해제 시스템은 식별된 압축기(들) 및/또는 압축 구성(들)을 사용하여, 수신된 데이터 파일로부터의 데이터를 압축하여 압축된 데이터 파일을 생성한다. 따라서, 이는 제1 속성 데이터, 다수의 속성들에 대한 데이터, 또는 파일 내의 모든 속성들에 대한 데이터의 압축을 포함할 수 있다. 일단 시스템이 압축된 데이터 파일을 생성하면, 파일은, 압축된 파일을 전송 또는 달리 송신하거나 또는 사용하는 것과 같이, 즉시 활용될 수 있거나, 또는 압축된 파일은 방법의 추가 단계들에서의 사용을 위해 로컬 또는 원격 저장소에 저장될 수 있다. 다른 많은 옵션들이 가능하다.
본 방법의 단계(190)에서, 생성된 압축 파라미터 데이터 구조는 저장된 파일이 압축된 데이터 파일의 압축해제를 위해 검색 및 사용될 수 있도록 저장된다. 압축 파라미터 데이터 구조는 파일 압축/압축해제 시스템(200)의 구성요소일 수 있거나 그렇지 않으면 이와 통신할 수 있는 원격 또는 로컬 데이터베이스에 저장될 수 있다. 예를 들어, 압축 파라미터 데이터 구조는 압축된 데이터 파일과 함께 저장되거나, 또는 압축된 데이터 파일에 대한 참조 또는 그로부터의 참조와 함께 저장될 수 있다.
도 2를 참조하면, 일 실시예에서, 파일 압축/압축해제 시스템(200)의 개략도가 있다. 시스템(200)은 본 명세서에 기술되거나 달리 구상된 시스템들 중 임의의 것일 수 있고, 본 명세서에 기술되거나 달리 구상된 구성요소들 중 임의의 것을 포함할 수 있다. 도 2는, 어떤 면에서, 추상적 개념을 구성하고, 시스템(200)의 구성요소들의 실제 조직은 예시된 것과는 상이하고 그보다 더 복잡할 수 있다는 것이 이해될 것이다.
일 실시예에 따르면, 시스템(200)은 메모리(230) 또는 저장소(260)에 저장된 명령어들을 실행하거나, 또는 그렇지 않으면 예를 들어, 방법의 하나 이상의 단계들을 수행하기 위해 데이터를 프로세싱할 수 있는 프로세서(220)를 포함한다. 프로세서(220)는 하나 또는 다수의 모듈들로 형성될 수 있다. 프로세서(220)는 마이크로프로세서, 마이크로제어기, 다수의 마이크로제어기들, 회로부, 필드 프로그래밍가능 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 단일 프로세서, 또는 복수의 프로세서들을 포함하지만 이에 제한되지 않는 임의의 적합한 형태를 취할 수 있다.
메모리(230)는 비휘발성 메모리 및/또는 RAM을 포함하여, 임의의 적합한 형태를 취할 수 있다. 메모리(230)는 예를 들어, L1, L2, 또는 L3 캐시 또는 시스템 메모리와 같은 다양한 메모리들을 포함할 수 있다. 이와 같이, 메모리(230)는 정적 랜덤 액세스 메모리(SRAM), 동적 RAM(DRAM), 플래시 메모리, 판독 전용 메모리(ROM), 또는 다른 유사한 메모리 디바이스들을 포함할 수 있다. 메모리는, 다른 것들 중에서도, 운영 체제를 저장할 수 있다. RAM은 데이터의 임시 저장을 위해 프로세서에 의해 사용된다. 일 실시예에 따르면, 운영 체제는, 프로세서에 의해 실행될 때, 시스템(200)의 하나 이상의 구성요소들의 동작을 제어하는 코드를 포함할 수 있다. 프로세서가 본 명세서에 기술된 기능들 중 하나 이상을 하드웨어에서 구현하는 실시예들에서는, 다른 실시예들에서 그러한 기능에 대응하는 것으로 기술된 소프트웨어가 생략될 수 있다는 것이 명백할 것이다.
사용자 인터페이스(240)는 사용자와의 통신을 가능하게 하기 위한 하나 이상의 디바이스들을 포함할 수 있다. 사용자 인터페이스는 정보가 전달 및/또는 수신될 수 있게 하는 임의의 디바이스 또는 시스템일 수 있고, 사용자 커맨드들을 수신하기 위한 디스플레이, 마우스, 및/또는 키보드를 포함할 수 있다. 일부 실시예들에서, 사용자 인터페이스(240)는 통신 인터페이스(250)를 통해 원격 단말기에 제시될 수 있는 커맨드 라인 인터페이스 또는 그래픽 사용자 인터페이스를 포함할 수 있다. 사용자 인터페이스는 시스템의 하나 이상의 다른 구성요소들과 함께 위치될 수 있거나, 또는 시스템으로부터 원격에 위치하고 유선 및/또는 무선 통신 네트워크를 통해 통신할 수 있다.
통신 인터페이스(250)는 다른 하드웨어 디바이스들과의 통신을 가능하게 하기 위한 하나 이상의 디바이스들을 포함할 수 있다. 예를 들어, 통신 인터페이스(250)는 이더넷 프로토콜에 따라 통신하도록 구성된 네트워크 인터페이스 카드(NIC)를 포함할 수 있다. 추가적으로, 통신 인터페이스(250)는 TCP/IP 프로토콜들에 따른 통신을 위한 TCP/IP 스택을 구현할 수 있다. 통신 인터페이스(250)에 대한 다양한 대안적인 또는 추가적인 하드웨어 또는 구성들이 명백할 것이다.
저장소(260)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체들, 광학 저장 매체들, 플래시 메모리 디바이스들, 또는 유사한 저장 매체들과 같은 하나 이상의 기계 판독가능 저장 매체들을 포함할 수 있다. 다양한 실시예들에서, 저장소(260)는 프로세서(220) 또는 프로세서(220)가 동작할 수 있는 데이터에 의한 실행을 위한 명령어들을 저장할 수 있다. 예를 들어, 저장소(260)는 시스템(200)의 다양한 동작들을 제어하기 위한 운영 체제(261)를 저장할 수 있다.
저장소(260)에 저장된 것으로 기술된 다양한 정보는 추가적으로 또는 대안적으로 메모리(230)에 저장될 수 있다는 것이 명백할 것이다. 이와 관련하여, 메모리(230)는 또한 저장 디바이스를 구성하는 것으로 간주될 수 있고, 저장소(260)는 메모리로 간주될 수 있다. 다양한 다른 배열들이 명백할 것이다. 추가로, 메모리(230) 및 저장소(260)는 둘 모두 비일시적 기계 판독가능 매체들인 것으로 간주될 수 있다. 본 명세서에 사용되는 바와 같이, 용어 비일시적은 일시적 신호들을 배제하지만, 휘발성 메모리 및 비휘발성 메모리 둘 모두를 포함하여, 모든 형태들의 저장소를 포함하는 것으로 이해될 것이다.
시스템(200)은 기술된 구성요소를 각각 하나씩 포함하는 것으로 도시되지만, 다양한 구성요소들은 다양한 실시예들에서 중복될 수 있다. 예를 들어, 프로세서(220)는 다수의 마이크로프로세서들을 포함할 수 있으며, 다수의 마이크로프로세서들은 본 명세서에 기술된 방법들을 독립적으로 실행하도록 구성되거나, 본 명세서에 기술된 방법들의 단계들 또는 서브루틴들을 수행하도록 구성되어, 다수의 프로세서들이 본 명세서에 기술된 기능을 달성하기 위해 협력하도록 한다. 추가로, 시스템(200)의 하나 이상의 구성요소들이 클라우드 컴퓨팅 시스템에서 구현되는 경우, 다양한 하드웨어 구성요소들은 별도의 물리적 시스템들에 속할 수 있다. 예를 들어, 프로세서(220)는 제1 서버에 제1 프로세서를 그리고 제2 서버에 제2 프로세서를 포함할 수 있다. 많은 다른 변형들 및 구성들이 가능하다.
일 실시예에 따르면, 파일 압축/압축해제 시스템(200)은 파일 데이터베이스(270)를 포함하거나 또는 이와 직접 또는 간접적으로 통신한다. 파일 데이터베이스는, 다른 가능한 데이터 중에서도, 파일 압축/압축해제 시스템(200)을 사용하여 압축될 수 있거나, 또는 압축되었던 하나 이상의 파일들을 포함한다. 일 실시예에 따르면, 하나 이상의 파일들은 게놈 파일들을 포함하고, 이때 게놈 파일은 잠재적으로 많은 상이한 게놈 샘플들에 대해, 데이터 속성들을 포함하는 수백만 개의 행들 및 수많은 열들을 갖는 유전자 서열 변이를 포함한다.
일 실시예에 따르면, 파일 압축/압축해제 시스템(200)은 압축 및 압축해제 알고리즘 데이터베이스(280)를 포함하거나 또는 이와 직접 또는 간접적으로 통신한다. 압축 및 압축해제 알고리즘 데이터베이스는 상이한 압축 알고리즘들 및 압축해제 알고리즘들의 라이브러리를 포함한다. 이러한 압축 및 압축해제 알고리즘들은 데이터 파일 시스템에 의해 데이터 파일들을 압축하고 압축해제하는 데 활용될 수 있다. 새로운 압축 알고리즘들 및 압축해제 알고리즘들은 언제든지 데이터베이스에 추가될 수 있다.
일 실시예에 따르면, 시스템(200)의 저장소(260)는 본 명세서에 기술되거나 달리 구상된 방법들의 하나 이상의 기능들 또는 단계들을 수행하기 위해 하나 이상의 알고리즘들, 모듈들, 및/또는 명령어들을 저장할 수 있다. 예를 들어, 저장소(260)는, 다른 명령어들 또는 데이터 중에서도, 속성 식별 명령어들(262), 압축기 포뮬레이션(formulation) 명령어들(263), 압축기 선택 명령어들(264), 저장 명령어들(265), 및/또는 보고 명령어들(266)을 포함할 수 있다.
일 실시예에 따르면, 속성 식별 명령어들(262)은 시스템에 의해 수신된 데이터 파일 내의 복수의 상이한 속성들 중에서 일정 속성을 식별하도록 시스템에 지시한다. 속성은 데이터 파일로부터의 임의의 정보일 수 있다. 파일 데이터 시스템은 데이터 파일 내에서 알려진 속성들을 인식하도록 구성될 수 있거나, 또는 데이터 파일 내에서 새로운 또는 인식되지 않은 속성들을 예측하거나 추정하거나 달리 결정하도록 구성될 수 있다. 따라서, 파일 데이터 시스템은 매우 다양한 상이한 방법들을 사용하여 데이터 파일 내의 복수의 상이한 속성들 중에서 제1 속성을 식별하도록 구성될 수 있다.
일 실시예에 따르면, 압축기 포뮬레이션 명령어들(263)은 미리결정된 복수의 압축 유형들, 알고리즘들, 및/또는 압축 구성(들)으로부터 복수의 압축기들을 선택하도록 시스템에 지시한다. 압축 유형들, 알고리즘들, 및/또는 압축 구성(들)은 압축 및 압축해제 알고리즘 데이터베이스(280)를 포함하지만 이에 제한되지 않는 임의의 소스로부터 로컬로 또는 원격으로 선택될 수 있다. 압축기 포뮬레이션 명령어들(263)은 또한, 개별적으로 식별된 압축기들 및/또는 압축 구성(들)을 사용하여 속성 데이터의 일부 또는 전부를 압축하도록 시스템에 지시한다. 복수의 압축기들에 의한 이러한 개별 압축은 순차적으로 또는 동시에 수행될 수 있다. 일 실시예에 따르면, 각각의 압축기는 제1 속성 데이터의 서브세트만을 압축하고, 여기서 서브세트는, 복수의 압축기들 사이의 압축 메트릭들의 보다 객관적인 비교를 허용하기 위해 각각의 압축기에 대해 동일한 서브세트이다. 다른 실시예에 따르면, 각각의 압축기는 모든 제1 속성 데이터를 압축한다.
실시예에 따르면, 압축기 포뮬레이션 명령어들(263)은 또한, 각각의 압축기에 의한 각각의 개별 압축에 대해 하나 이상의 압축 메트릭들을 측정하거나 또는 달리 획득하거나 식별하도록 시스템에 지시한다. 이는 복수의 압축기들 및/또는 압축 구성(들) 사이의 압축 성능의 객관적인 비교, 및 제1 속성 데이터에 대한 선호된 압축기 및/또는 압축 구성의 선택을 가능하게 한다. 일 실시예에 따르면, 압축 메트릭들은 압축비, 프로세싱 시간, 압축 정확도, 및/또는 임의의 다른 압축 메트릭일 수 있다.
일 실시예에 따르면, 압축기 선택 명령어들(264)은, 측정된 또는 획득된 메트릭들을 사용하여, 선택된 복수의 압축 유형들, 알고리즘들, 및/또는 압축 구성(들) 중 어느 것이 압축에 가장 적합한지를 결정하도록 시스템에 지시한다. 파일 압축/압축해제 시스템은 각각의 개별 압축기 및/또는 압축 구성에 대응하는 메트릭들을 비교하거나, 순위매김하거나, 또는 달리 활용할 수 있고, 선호된 압축기 및/또는 압축 구성을 선택한다. 예를 들어, 압축기 및 연관된 구성들은, 압축이 복수의 선택된 압축 유형들 중 다른 것에 비해 더 높거나 최상의 압축비 및/또는 더 빠른 프로세싱 시간을 포함하는 경우에 압축에 가장 적합하거나 선호될 수 있다. 일 실시예에 따르면, 상이한 압축기 구성들 및 대응하는 메트릭들은 속성에 대해 적용될 압축기의 수동 선택을 용이하게 하기 위해 사용자 인터페이스를 통해 사용자에게 제시될 수 있다.
일 실시예에 따르면, 저장 명령어들(265)은 압축 파라미터 데이터 파일과 같은 압축 파라미터 데이터 구조를 생성하도록 시스템에 지시한다. 일 실시예에 따르면, 생성된 압축 파라미터 데이터 구조는 적어도 제1 식별된 속성에 대한 선택된 압축기 및/또는 압축 구성(들)의 식별 및/또는 그에 대한 사양을 포함한다. 압축 파라미터 데이터 파일은 압축기 설정들 및 다른 정보를 포함하여, 압축기를 활용하는 데 필요한 임의의 정보를 포함할 수 있다. 저장 명령어들(265)은 또한, 저장된 파일이 압축된 데이터 파일의 압축해제를 위해 검색 및 사용될 수 있도록 생성된 압축 파라미터 데이터 구조를 저장하도록 시스템에 지시할 수 있다. 압축 파라미터 데이터 구조는 파일 압축/압축해제 시스템(200)의 구성요소일 수 있거나 그렇지 않으면 이와 통신할 수 있는 원격 또는 로컬 데이터베이스에 저장될 수 있다. 예를 들어, 압축 파라미터 데이터 구조는 압축된 데이터 파일과 함께 저장되거나, 또는 압축된 데이터 파일에 대한 참조 또는 그로부터의 참조와 함께 저장될 수 있다.
일 실시예에 따르면, 보고 명령어들(266)은 시스템의 사용자 인터페이스(240)를 통해 압축, 데이터 파일, 및/또는 압축기들에 관한 정보를 제공하도록 시스템에 지시한다. 제공된 정보는 본 명세서에 기술되거나 달리 구상된 임의의 정보일 수 있다. 시스템은 시각적 디스플레이, 가청 통지(audible notification), 텍스트 메시지, 이메일, 페이지, 또는 임의의 다른 통지 방법을 포함하지만 이에 제한되지 않는 임의의 메커니즘을 통해 사용자에게 정보를 제공할 수 있다.
압축기를 특정하기 위한 균일한 인터페이스
일 실시예에 따르면, 파일 압축/압축해제 시스템은 압축기 파라미터 세트(Compressor Parameter Set)를 포함한다. 압축기 파라미터 세트는 속성 데이터의 인코딩 및 디코딩에 필요한, 모든 명령어들 및 디폴트 파라미터들을 포함하는 압축기 구성을 포함하는 데이터 구조이고, 압축된 데이터와 함께 저장되어야 한다. 각각의 압축기 구성은 그의 속성과의 연관성을 특정하기 위해 사용될 고유 ID, 및 하기의 요소들 중 하나 이상으로 각각 구성되는 압축기 단계들의 시퀀스를 가지고 있다:
(i) 압축기 단계의 고유 ID.
(ii) 단계에서 적용될 알고리즘의 유형 및 ID. 일 실시예에 따르면, 2개의 광범위한 유형들의 알고리즘들: 변환 및 압축이 있으며, 이는 데이터 표현의 포맷을 변경하고, 확률적 모델링에 의해 고정 길이 심볼들을 압축된 비트 스트림들로 변환하는 것을 수반한다. 알고리즘 ID는 특정 유형의 알려진 알고리즘을 참조하는 미리정의된 코드이다. 데이터를 프로세싱하기 위해, 참조되는 모든 알고리즘들은 설치되어 인코더 또는 디코더가 액세스가능하게 되어야 한다.
(iii) 알고리즘에 대한 디폴트 파라미터들의 리스트. 각각의 파라미터는 파라미터 명칭, 데이터 유형, 파라미터 내의 값들의 수 및 파라미터 값(들)으로 구성된다.
(iv) 알고리즘에 대한 입력 변수들의 수 및 입력 변수 명칭들. 변수 명칭들은 단지 하나의 압축기 단계로부터 다른 압축기 단계로 전달될 데이터 객체들을 참조하기 위해서만 사용됨에 유의한다. 알고리즘에 대해, 인식되는 것은 입력 변수 명칭들의 순서에 의해 특정된 바와 같은, 입력 데이터 객체들의 순서이다. 제1 단계의 경우, 입력 데이터는 원시 속성 값들이어야 하기 때문에, 입력 변수 명칭을 특정할 필요가 없고, 입력 변수들의 수는 0으로 설정될 수 있다. 제2 단계로부터 계속, 각각의 입력 변수 명칭은 이전 단계들에서의 출력 변수 명칭과 매칭되어야 한다.
(v) 알고리즘에 의해 생성된 데이터 객체들의 순서화된 리스트를 보유하기 위한 출력 변수들의 수, 및 각각의 출력 변수의 상태 및 명칭. 출력 변수가 어떠한 추가 프로세싱도 요구하지 않으면, 그의 상태는 완전하고, 그의 변수 명칭은 생략될 수 있는데, 그 이유는 데이터 객체가 압축기의 출력 버퍼로 바로 가야 하기 때문이다. 출력 변수가 후속 단계에 의해 프로세싱되어야 한다면, 변수 상태는 불완전하고 변수 명칭은 특정되어야 한다.
(vi) 알고리즘을 실행하기 위해 필요한 값들을 갖는 종속성 속성들의 수. 종속성 속성들의 ID들은 연관된 속성의 구성에서 제공되어야 한다.
표 1을 참조하면, 전술한 바와 같은 압축기 구성의 주요 요소들을 캡처하는 예시적인 압축기 파라미터 세트의 신택스가 있으며, 시맨틱들에 대한 설명들은 표의 다음에 제공된다. 개별 필드들의 명칭, 순서화 및 데이터 유형은 기능에 대한 어떠한 영향도 없이 변경될 수 있음에 유의한다. 데이터 유형의 표기와 관련하여, u(n)는 n비트들을 사용하는 무부호 정수를 나타내고; u(v)는 다른 신택스 요소들의 값에 의존하는 비트들의 수를 갖는 무부호 정수를 나타내고; f(n)는 n비트들을 사용하는 고정 패턴 비트 스트링을 나타내고; st(v)는 가변 길이를 갖는 널-종료(null-terminated) 스트링을 나타낸다.
[표 1]
Figure pct00001
일 실시예에 따르면, 하기의 압축기 파라미터 세트 시맨틱들이 있다:
compressor_ID는 주석 테이블 내의 압축기의 고유 식별자이다. 값 0은 압축 없음을 위해 예비됨에 유의한다.
n_compressor_steps는 이러한 압축기 구성에서의 프로세싱 단계들의 총 수이다. 각각의 압축기 단계 i에 대해, 하기의 필드들이 특정된다: (i) compressor_step_ID[i]는 압축기 단계의 식별자이다; (ii) algorithm_ID[i]는 이 단계에서 적용될 알고리즘의 식별자이다. 각각의 알고리즘 유형은 그 자신의 ID 맵을 가져야 한다; (iii) use_default_pars[i]는, 1로 설정된 경우, 알고리즘의 디폴트 파라미터들이 사용되고 따라서 파라미터들을 변경할 필요가 없음을 나타내는 플래그이다.
n_in_vars[i]는 알고리즘에 대한 입력 변수들의 수이다. 제1 단계(i == 0)의 경우, 그의 값은 0으로 설정되어야 하는데, 그 이유는 입력이 원시 속성 값들이어야 하기 때문이다.
알고리즘에 대한 각각의 입력 변수 j에 대해, 하기의 필드들이 특정된다: (i) in_var_ID[i][j]는 알고리즘에 알려진 입력 변수의 미리정의된 ID이고; (ii) prev_step_ID[i][j], prev_out_var_ID[i][j]는 각각, 이전 압축기 단계의 ID, 및 in_var_ID[i][j]에 의해 특정된 입력 변수를 통해 현재 알고리즘으로 전달될 데이터를 포함하는 대응하는 출력 변수의 ID이다.
n_completed_out_vars[i]는 어떠한 추가 프로세싱도 요구하지 않고 압축기의 출력 버퍼로 바로 갈 수 있는 알고리즘의 완전한 출력 변수들의 수이다.
completed_out_var_ID[i][j]는 완전하고 어떠한 추가 프로세싱도 요구하지 않는 알고리즘에 알려진 출력 변수의 미리정의된 ID를 특정한다.
nesting_zero_bit는 데이터 구조의 바이트 정렬을 보장하기 위해 필요에 따라 삽입되는 0으로 설정된 하나의 비트이다.
일 실시예에 따르면, 알고리즘 파라미터들은 algorithm_ID에 의해 참조된 알고리즘의 파라미터 설정들을 특정하기 위한 데이터 구조이다. 표 2를 참조하면, 예시적인 알고리즘 파라미터들에 대한 신택스의 표가 있다.
[표 2]
Figure pct00002
일 실시예에 따르면, 하기의 알고리즘 파라미터 시맨틱들이 있다:
n_pars는 algorithm_ID에 의해 참조된 알고리즘을 실행하기 위해 수정될 필요가 있는 파라미터들의 수이다. 그의 값은 알고리즘에서 정의된 파라미터들의 수보다 크지 않아야 한다.
수정되는 각각의 파라미터 i에 대해, 하기의 필드들이 요구된다: (i) par_ID[i]는 알고리즘에서 정의된 파라미터들 중 하나의 ID이고; (ii) par_type[i]는 파라미터의 데이터 유형 ID이고; (iii) par_num_array_dims[i]는 파라미터의 치수들의 수이며, 그것이 스칼라 값인 경우 0이다; (iv) par_array_dims[i][]는 어레이 치수의 크기를 각각 특정하는 요소들을 포함한다. 그것은 attribute_num_array_dims = 0인 경우 생략된다; (v) par_val[i][][][]는 파라미터 값(들)을 포함한다. 그의 치수들의 수는 (par_array_dims + 1)과 동일하며 임의의 가외의 치수들은 생략될 수 있다.
데이터 속성 및 연관된 압축기 구성을 특정하기 위한 균일한 인터페이스
일 실시예에 따르면, 파일 압축/압축해제 시스템은 속성 파라미터 세트(Attribute Parameter Set)를 포함한다. 속성 파라미터 세트는 일부 기본 정보 및 그의 프로세싱을 위한 압축기 설정들을 포함하여, 속성의 구성을 포함하는 데이터 구조이다. 하기는 주요 요소들이다; (i) 속성의 고유 ID 및 명칭; (ii) 데이터 유형 정보, 및 속성의 디폴트 및 누락 값들; (iii) 속성의 프로세싱을 위한 압축기의 ID, 그것은 압축기 파라미터 세트들에서 정의된 압축기 ID들 중 하나이어야 한다; (iv) 압축기 단계들의 선택된 파라미터들에 대한 수정들; 및 (v) 일부 압축기 단계들에 의한 프로세싱을 위해 필요한 데이터를 갖는 종속성 변수들(속성들 또는 디스크립터들)의 ID들.
표 3을 참조하면, 전술한 바와 같은 속성 구성의 주요 요소들을 캡처하는 예시적인 속성 파라미터 세트의 신택스가 있으며, 시맨틱들에 대한 설명은 표의 다음에 제공된다. 개별 필드들의 명칭, 순서화 및 데이터 유형은 기능에 대한 어떠한 영향도 없이 변경될 수 있음에 유의한다. 데이터 유형 표기는 표 1과 동일하다. 속성 파라미터 세트는 그들의 파라미터들, 그룹화, 순서화 및 연관된 압축기들을 포함하여, 추가적인 속성들의 정의들을 포함한다.
[표 3]
Figure pct00003
일 실시예에 따르면, 하기의 속성 파라미터 세트 시맨틱들이 있다:
attribute_ID는 주석 파라미터 세트 내에서 고유한 속성의 식별자이다.
attribute_name_len은 속성 명칭의 길이이다.
attribute_name은 길이 attribute_name_len을 갖는 속성의 명칭이다.
attribute_type은 속성의 데이터 유형을 특정한다.
attribute_num_array_dims는, 속성 엔트리의 어레이 치수들의 수를 특정하며, 그것이 스칼라 값인 경우 0이다.
attribute_array_dims[]는 어레이 치수의 크기를 각각 특정하는 요소들을 포함한다. 그것은 attribute_num_array_dims = 0인 경우 생략된다.
attribute_default_value는 속성의 디폴트 값이다(즉, 그것은 디폴트와 동일한 대부분의 값들이 배제될 때 희소 인코딩을 위해 사용될 수 있다).
attribute_missing_value는 디코딩 프로세스 이후의 출력에서 널 값 대신에 사용될 속성의 누락 값(missing value)이다.
compressor_ID는 현재 속성의 프로세싱에 사용되는 compressor_parameter_set에서 정의된 바와 같은 compressor_ID이다.
n_steps_with_dependencies는 종속성 변수들을 수반하는 compressor_ID에 의해 참조된 압축기에서의 단계들의 수이다.
특정될 필요가 있는 종속성 변수(들)를 갖는 각각의 압축기 단계 i에 대해; (i) compressor_step_ID[i]는 압축기 단계의 ID이고; (ii) n_dependencies[i]는 압축기 단계의 알고리즘에 의해 요구되는 종속성 변수들의 수이다.
알고리즘의 각각의 종속성 변수 j에 대해; (i) dependency_var_ID[i][j]는 알고리즘에 알려진 종속성 변수의 미리정의된 ID이고; (ii) dependency_is_attribute[i][j]는, 1로 설정된 경우, 종속성 데이터가 속성에 저장됨을 나타내는 플래그이고; 그렇지 않으면, 종속성 데이터는 디스크립터로서 저장되며; (iii) dependency_ID[i][j]는 종속성 데이터를 포함하는 속성 또는 디스크립터의 ID를 특정한다. ID의 길이는 속성에 대해 16비트들이고, 디스크립터들에 대해 8비트들임에 유의한다.
nesting_zero_bit는 데이터 구조의 바이트 정렬을 보장하기 위해 필요에 따라 삽입되는 0으로 설정된 하나의 비트이다.
압축기 구성에 기초한 인코딩 알고리즘
일 실시예에 따르면, 원시 속성 데이터의 인코딩은 연관된 압축기 구성에서 정의된 압축기 단계들의 순차적 실행에 의해 행해진다. 인코딩 알고리즘은 하기와 같이 개략된다:
1. 프로세싱되는 속성 및 그의 연관된 압축기의 구성들(파라미터 세트들)을 검색한다.
2. 속성 구성에서의 속성 특정 파라미터 값들로 압축기 구성으로부터의 디폴트 파라미터 값들을 오버라이딩함으로써 속성에 맞춤화된 압축기 설정들을 획득한다.
3. 각각의 압축기 단계를 처음부터 마지막까지 순차적으로 실행한다. 각각의 압축기 단계 i에 대해:
a. 알고리즘 ID를 사용하여 변환/압축 알고리즘을 룩업한다.
b. 알고리즘 ID를 찾을 수 없는 경우, 보안 송신 채널을 통해 인증된 소프트웨어 저장소로부터 대응하는 알고리즘을 다운로드하고 설치할 권한을 사용자에게 프롬프트한다.
c. 단계에 대해 정의된 임의의 종속성 변수들이 있는 경우, dependency_is_attribute[i][] 및 dependency_ID[i][]에 의해 특정된 대응하는 속성들 또는 디스크립터들로부터 종속성 변수들의 디코딩된 데이터를 획득한다.
d. 단계와 연관된 종속성 변수들의 데이터 객체들 및 파라미터 값들을 사용하여 입력 변수들의 데이터 객체들에 대해 변환/압축 알고리즘을 적용한다. 그것이 제1 단계인 경우, 원시 속성 데이터는 프로세싱되는 유일한 입력 데이터 객체이다. 생성된 출력들은 데이터 객체들 및 그들의 대응하는 변수 ID들의 리스트로 구성된다.
e. 출력 변수가 완전한 것으로 특정되면, 그의 데이터 객체는 압축기의 출력 버퍼에 배치되어야 한다. 그렇지 않으면, 그것은 그의 단계 및 변수 ID들을 통해 추가 프로세싱을 위한 후속 단계에 의해 룩업되도록 데이터 맵에 저장되어야 한다. 각각의 인코딩된 데이터 블록/객체는 그의 데이터 유형 및 어레이 형태를 보존하기 위해, 본 명세서에서 특정된 바와 같이 typed_data 구조를 사용하여 저장됨에 유의한다.
[표 4]
Figure pct00004
f. 마지막 단계에 대해, 인코딩된 블록들의 연접(concatenation)인 출력 버퍼의 콘텐츠를 반환한다.
연관된 압축기 구성에 기초한 상기 속성 데이터 인코딩 알고리즘의 의사 코드들이 일 실시예에 따라 표 5에 제공된다.
[표 5]
Figure pct00005
Figure pct00006
압축기 구성에 기초한 디코딩 알고리즘
일 실시예에 따르면, 파일 압축/압축해제 시스템은 속성 디코딩 프로세스를 포함한다. 압축된 속성 데이터의 디코딩은 마지막 단계에서 시작하여 제1 단계까지 알고리즘들의 단계별 역 동작들을 수행함으로써 연관된 압축기 구성에서 정의된 압축기 단계들의 반전을 수반한다. 디코딩 알고리즘은 하기와 같이 개략된다:
1. 프로세싱되는 속성 및 그의 연관된 압축기의 구성들(파라미터 세트들)을 검색한다.
2. 압축된 속성 스트림으로부터, 압축기 단계에서 정의된 완전한 출력 변수에 각각 대응하는 하나 또는 다수의 인코딩된 블록들을 추출한다. 각각의 인코딩된 블록은 그의 데이터 유형 및 어레이 형태를 보존하기 위해, 표 4에서 특정된 바와 같이 typed_data 구조를 사용하여 저장된다.
3. 마지막 단계에서 시작하여 제1 단계에 도달할 때까지, 역순으로 각각의 압축기 단계의 역 동작을 수행한다. 각각의 압축기 단계 i에 대해:
a. 현재 단계의 모든 입력 변수 데이터를, 상기 단계 2에서의 인코딩된 블록들로부터 또는 그의 업스트림 디코딩 단계의 출력 변수(들)로부터 수집한다.
b. 현재 단계에 대해 정의된 임의의 종속성 변수들이 있는 경우, dependency_is_attribute[i][] 및 dependency_ID[i][]에 의해 특정된 대응하는 속성들 또는 디스크립터들로부터 종속성 변수들의 디코딩된 데이터를 획득한다.
c. 압축기 파라미터 세트로부터, 현재 단계에 대한 디폴트 파라미터 설정들에 대한 임의의 변경들을 검색한다.
d. 연관된 파라미터 설정들 및 임의의 종속성 변수 데이터를 사용하여 입력 변수 데이터에 대해 현재 단계에 대해 특정된 알고리즘의 역 동작을 적용한다.
e. 제1 단계에 도달하지 않은 경우, 룩업을 위한 키로서 단계 ID 및 변수 ID의 쌍을 사용하여 후속 디코딩 단계들에 의해 추가로 프로세싱될 출력 변수 데이터를 저장한다.
f. 제1 단계에 도달한 경우, 임의의 누락 값들을 채우고, 역 동작의 출력 변수 데이터를 압축기에 의해 디코딩된 속성 데이터로서 반환한다.
연관된 압축기 구성에 기초한 속성 디코딩 프로세스의 단계들은 이하의 표에 제공된다. attribute_stream의 초기 값은 그의 인덱스들에 의해 참조되는 타일 내의 인코딩된 속성 데이터임에 유의한다. 코드들 내에서 선언되거나 또는 초기화되지 않은 다른 변수들은 속성과 연관된 압축기 ID에 의해 참조된 압축기 파라미터 세트에서 정의된다.
[표 6]
Figure pct00007
Figure pct00008
압축기 구성들의 자동 결정을 위한 메커니즘
알려진 그리고 일반적인 파일 유형들의 경우, 압축기 구성들은 데이터 압축 전문가들의 그룹에 의해 미리정의되고 커뮤니티에 의한 사용을 위해 채택될 수 있지만, 새로운 또는 배타적인 파일 유형들을 처리할 때, 또는 알려진 유형의 파일이 계획되지 않은 속성들의 포함을 허용할 때와 같은, 압축기 구성들이 특정되어야 하는 때들이 있다. 하나의 가능한 방식은, 어쩌면 상이한 옵션들 및 설명들을 제공하는 그래픽 툴의 도움으로, 사용자가 압축기 구성들을 수동으로 특정하게 하는 것이다. 그러나, 이러한 접근법은 데이터 압축에 대한 많은 사용자 지식 및 경험을 요구하며, 종종 최적이 아닌 구성들을 초래한다.
따라서, 성능에 기초한 압축기 구성들의 자동 결정을 위한 메커니즘이 제공된다. 시스템은 선택을 위해 이용가능한, 이용가능한 변환 및 압축 알고리즘들의 리스트, 및 각각이 알려진 경우, 알고리즘이 처리할 수 있는 데이터의 유형들 및 알고리즘들 사이의 가능한 연결들을 포함할 수 있다. 메커니즘은 하기와 같이 작동할 수 있다. 파일 내의 각각의 속성에 대해:
1. 이용가능한 알고리즘들 및 추가적인 제약들, 예컨대, 압축기 단계들의 최대 허용된 수 및 단계들의 시퀀스에서의 사이클들의 금지에 대한 지식으로, 속성에 대한 모든 가능한 압축기 구성들을 식별한다.
2. 압축비 및 프로세싱 시간과 같은 메트릭들로 각각의 압축기 구성의 성능을 평가한다. 그것은 압축되는 파일로부터의 데이터의 서브세트에 대해, 또는 특정 파일 유형에 대한 압축기 구성 템플릿을 구축하기 위한 훈련 파일에 대해 행해질 수 있다. 프로세스를 가속화하기 위해, 평가들은 병렬로 실행될 수 있다.
3. 모든 구성들 중에서도 처음 사분위수에 속하는 가장 높은 압축비 및 프로세싱 시간을 갖는 것과 같은 성능 기준에 기초하여 속성에 대한 최상의 압축기 구성을 선택한다.
각각의 속성에 대한 최상의 압축기 구성을 선택한 후:
4. 파일의 프로세싱에 필요한 모든 명령어들 및 파라미터들을 포함하는 압축기 파라미터 세트 데이터 구조들 및 속성을 생성한다.
5. 생성된 속성 및 압축기 구성들이 동일한 유형의 다른 파일들에 적용되도록 의도된 경우, 그들의 데이터 구조들은 저장소에 저장되고, 파일 유형 또는 파일 확장에 의한 장래의 사용을 위해 룩업될 수 있다.
6. 파일을 압축하기 위해, 인코더는 생성된 구성들을 사용하여 각각의 속성에 대해 전술한 인코딩 알고리즘을 적용하고, 압축된 속성 데이터와 함께 구성 데이터 구조들을 저장할 수 있다.
7. 압축된 파일을 디코딩하기 위해, 디코더는 파일과 함께 오는 구성 데이터를 사용하여 각각의 속성에 대해 전술한 디코딩 알고리즘을 적용할 수 있다.
예 1 - 희소 발현 데이터를 위한 압축기 구성
다음은 희소 단일-세포 RNA 발현 데이터의 압축을 위해 속성 및 압축기 구성들을 적용하는 비제한적인 예이다. 2개의 압축기 구성들이 평가되었다.
[표 7]
Figure pct00009
표 7에 요약된 압축기 구성 1의 경우, 발현 값들의 입력 행렬은 먼저, 0이 아닌 값들을 갖는 세포들만을 등록하는 3개의 출력 변수들: row_idx, col_idx 및 value를 생성하는 희소 변환을 거친다. 이어서, BSC 압축이 단계 1로부터의 출력 변수들 각각에 대해 독립적으로 적용되어, 압축기 단계들에서 정의되는 바와 같은 순서로 연접된 3개의 데이터 블록들로 구성된 인코딩된 데이터 스트림을 초래한다.
[표 8]
Figure pct00010
표 8에 요약된 압축 구성 2의 경우, 제1 구성과 같이, 발현 값들의 입력 행렬은 먼저, 3개의 출력 변수들: row_idx, col_idx 및 value를 생성하는 희소 변환을 거친다. 델타 변환이 row_idx에 적용되어, 변수 row_idx_delta에 저장된 델타 값들을 생성하고, 이는 후에 BSC 알고리즘에 의해 압축된다. RLE(Run Length Encoding)가 col_idx에 적용되어, 2개의 출력 변수들: col_idx_val 및 col_idx_count를 생성하고, 이는 후에 BSC에 의해 독립적으로 압축된다. 단계 1로부터의 값 변수의 데이터는 BSC에 의해 직접 압축된다. 이는, 압축기 단계들에서 정의된 바와 같이 연접된 4개의 데이터 블록들로 구성된 인코딩된 데이터 스트림을 초래한다.
성능을 평가하기 위해, 2개의 압축기 구성들은, 압축 전에 크기가 152 MB인 마켓 행렬 포맷의 파일에 저장된 단일-세포 RNA 발현 데이터에 적용되었다. Gzip 및 BSC에 의한 직접 압축 후, 파일 크기는 각각 47 MB 및 42 MB가 되었다.
표 9는 인코딩 알고리즘을 사용하여 압축기 구성들 1 및 2를 적용한 후의 다양한 데이터 크기들을 요약한다. BSC에 의한 직접 압축 후 42 MB의 파일 크기를 참조하면, 압축기 구성들 1 및 2의 압축비들은 각각 5.19 및 3.68이다. 압축기 구성 1은 압축비의 관점에서 더 나은 성능을 갖기 때문에, 대체적으로 희소 발현 데이터의 압축에 대해 사용하기 위해 선택되어야 한다.
[표 9]
Figure pct00011
예는 방법이 (BSC에 의한 직접 압축과 같은) 선행 기술의 방법들에 비해 압축된 데이터 파일의 크기를 상당히 감소시킨다는 것을 입증한다. 이는 파일 압축/압축해제 시스템의 기능 및 효율을 개선하고, 컴퓨터 시스템 또는 데이터베이스의 저장 능력들을 혁신한다. 추가로, 하나 이상의 속성들 각각에 대해 수백만 또는 수십억 개의 데이터 포인트들을 포함하는 파일을 다룰 때, 압축은 수백만 또는 수십억 개의 계산들을 포함하는데, 이는 인간이 펜과 연필이 있더라도 수행할 수 없을 정도로 대단한 것이다.
본 명세서에서 정의되고 사용되는 바와 같은 모든 정의들은 사전적 정의들, 참고로 포함되는 문헌들에서의 정의들, 및/또는 정의된 용어들의 통상의 의미들에 우선하는 것으로 이해되어야 한다.
상세한 설명 및 청구범위에서 본 명세서에 사용되는 바와 같은 단수 형태(부정 관사 "a" 및 "an")는 명백히 반대로 지시되지 않는 한, "적어도 하나"를 의미하는 것으로 이해되어야 한다.
상세한 설명 및 청구범위에서 본 명세서에 사용되는 바와 같은 어구 "및/또는"은 그와 같이 결합된 요소들, 즉 일부 경우에 결합하여 존재하고 다른 경우에 분리하여 존재하는 요소들 중 "어느 하나 또는 둘 모두"를 의미하는 것으로 이해되어야 한다. "및/또는"으로 열거되는 다수의 요소들은 동일한 방식으로, 즉 그와 같이 결합된 요소들 중 "하나 이상"으로 해석되어야 한다. "및/또는" 절에 의해 구체적으로 식별되는 요소들 이외의 다른 요소들이 구체적으로 식별되는 그들 요소들과 관련되든 관련되지 않든 간에, 선택적으로 존재할 수 있다.
상세한 설명 및 청구범위에서 본 명세서에 사용되는 바와 같이, "또는"은 위에서 정의된 바와 같은 "및/또는"과 동일한 의미를 갖는 것으로 이해되어야 한다. 예를 들어, 리스트 내의 항목들을 분리할 때, "또는" 또는 "및/또는"은 포괄적인 것으로, 즉 다수의 요소들 또는 요소들의 리스트 중 적어도 하나를 포함하지만, 또한 그 중 하나 초과 및 선택적으로 추가의 열거되지 않은 항목들을 포함하는 것으로 해석될 것이다. 단지 명백히 반대로 지시되는 용어, 예컨대 "~ 중 단지 하나" 또는 "~ 중 정확히 하나", 또는 청구범위에 사용될 때 "~로 이루어지는"은 다수의 요소들 또는 요소들의 리스트 중 정확히 하나의 요소를 포함하는 것을 지칭할 것이다. 일반적으로, 본 명세서에 사용되는 바와 같은 용어 "또는"은 단지 배타적인 용어, 예컨대 "어느 하나", "~ 중 하나", "~ 중 단지 하나", 또는 "~ 중 정확히 하나"가 선행할 때 배타적인 양자택일(즉, "하나 또는 다른 하나, 그러나 둘 모두는 아님")을 지시하는 것으로 해석될 것이다.
상세한 설명 및 청구범위에서 본 명세서에 사용되는 바와 같이, 하나 이상의 요소들의 리스트와 관련하여 어구 "적어도 하나"는 요소들의 리스트 내의 요소들 중 임의의 하나 이상으로부터 선택되는 적어도 하나의 요소를 의미하는 것으로 이해되어야 하지만, 반드시 요소들의 리스트 내에 구체적으로 열거되는 각각의 그리고 모든 요소 중 적어도 하나를 포함하는 것은 아니며, 요소들의 리스트 내의 요소들의 임의의 조합들을 배제하는 것은 아니다. 이러한 정의는 또한 어구 "적어도 하나"가 지칭하는 요소들의 리스트 내의 구체적으로 식별되는 요소들 이외의 요소들이 구체적으로 식별되는 그들 요소들과 관련되든 관련되지 않든 간에, 선택적으로 존재할 수 있는 것을 허용한다.
또한, 명백히 반대로 지시되지 않는 한, 하나 초과의 단계 또는 동작을 포함하는 본 명세서에 청구되는 임의의 방법들에서, 방법의 단계들 또는 동작들의 순서가 반드시 방법의 단계들 또는 동작들이 언급되는 순서로 제한되는 것은 아니라는 것이 이해되어야 한다.
위의 명세서에서뿐만 아니라 청구범위에서, "포함하는", "구비하는", "가지고 있는", "갖는", "함유하는", "수반하는", "보유하는", "~로 구성된" 등과 같은 모든 전이 어구들은 개방형(open-ended)인 것으로, 즉 "~을 포함하지만 이에 제한되지 않는"을 의미하는 것으로 이해되어야 한다. 단지 전이 어구 "~로 이루어지는" 및 "~로 본질적으로 이루어지는"이 각각 폐쇄형 또는 반-폐쇄형 전이 어구일 것이다.
몇몇 본 발명의 실시예가 본 명세서에 기술되고 예시되었지만, 당업자는 본 명세서에 기술되는 기능을 수행하고/하거나 결과들 및/또는 이점들 중 하나 이상을 획득하기 위한 다양한 다른 수단 및/또는 구조들을 용이하게 구상할 것이고, 각각의 그러한 변형들 및/또는 수정들은 본 명세서에 기술되는 본 발명의 실시예들의 범주 내에 있는 것으로 여겨진다. 보다 일반적으로, 당업자는 본 명세서에 기술되는 모든 파라미터들, 치수들, 재료들, 및 구성들이 예시적인 것으로 의도됨을, 그리고 실제 파라미터들, 치수들, 재료들, 및/또는 구성들이 본 발명의 교시들이 사용되는 특정 응용 또는 응용들에 좌우될 것임을 용이하게 이해할 것이다. 당업자는 단지 통상적인 실험을 사용하여, 본 명세서에 기술되는 본 발명의 특정 실시예에 대한 많은 등가물을 인식하거나 확인할 수 있을 것이다. 따라서, 전술한 실시예가 단지 예로서 제시되는 것, 및 첨부된 청구범위 및 그에 대한 등가물의 범주 내에서, 본 발명의 실시예가 구체적으로 기술되고 청구되는 것과는 달리 실시될 수 있다는 것이 이해되어야 한다. 본 발명의 실시예는 본 명세서에 기술되는 각각의 개별 특징부, 시스템, 물품, 재료, 키트, 및/또는 방법에 관한 것이다. 또한, 2개 이상의 그러한 특징부들, 시스템들, 물품들, 재료들, 키트들, 및/또는 방법들의 임의의 조합이, 그러한 특징부들, 시스템들, 물품들, 재료들, 키트들, 및/또는 방법들이 서로 불일치하지 않는 경우, 본 개시내용의 본 발명의 범주 내에 포함된다.

Claims (15)

  1. 파일 압축/압축해제 시스템을 사용하여 데이터 파일을 압축/압축해제하기 위한 방법(100)으로서,
    복수의 상이한 속성들을 포함하는 압축을 위한 데이터 파일을 수신하는 단계(120);
    상기 복수의 상이한 속성들 중 제1 속성을 식별하고, 상기 식별된 제1 속성의 사양(specification)을 속성 파라미터 데이터 구조에 저장하는 단계(130);
    상기 식별된 제1 속성에 기초하여, 미리결정된 복수의 압축 유형들 및 압축 구성들로부터 복수의 압축 유형들 및/또는 압축 구성들을 선택하는 단계(140);
    개별적으로, 상기 선택된 복수의 압축 유형들 및/또는 압축 구성들 각각을 사용하여 상기 식별된 제1 속성에 대한 상기 수신된 데이터 파일로부터의 데이터의 적어도 일부를 압축하는 단계(150)로서, 각각의 개별 압축에 대해 하나 이상의 메트릭들이 측정되는, 상기 데이터의 적어도 일부를 압축하는 단계(150);
    상기 개별 압축들 각각의 상기 하나 이상의 메트릭들에 기초하여, 상기 선택된 복수의 압축 유형들 및/또는 압축 구성들 중 어느 것이 압축에 가장 적합한지를 결정하는 단계(160);
    상기 선택된 복수의 압축 유형들 및/또는 압축 구성들 중, 상기 식별된 제1 속성의 압축에 가장 적합한 압축 유형 및/또는 압축 구성의 식별(identification)을 포함하는 압축 파라미터 데이터 구조를 생성하는 단계(170);
    상기 식별된 압축 유형을 사용하여, 상기 제1 속성에 대한 상기 수신된 데이터 파일로부터의 데이터를 압축하여 압축된 데이터 파일을 생성하는 단계(180); 및
    상기 속성 파라미터 데이터 구조, 상기 압축 파라미터 데이터 구조, 및 상기 압축된 데이터 파일을 저장하는 단계(190)로서, 상기 저장된 압축 파라미터 데이터 구조는 상기 압축된 데이터 파일의 압축해제를 위해 검색 및 사용되도록 구성되는, 상기 속성 파라미터 데이터 구조, 상기 압축 파라미터 데이터 구조, 및 상기 압축된 데이터 파일을 저장하는 단계(190)를 포함하는, 방법(100).
  2. 제1항에 있어서,
    상기 복수의 상이한 속성들 중 적어도 제2 속성에 대해 상기 식별, 선택, 압축, 및 결정 단계들을 반복하는 단계를 추가로 포함하고, 상기 압축 파라미터 데이터 구조는 상기 선택된 복수의 압축 유형들 및/또는 압축 구성들 중, 상기 식별된 제2 속성의 압축에 가장 적합한 압축 유형 및/또는 압축 구성의 사양을 포함하는, 방법.
  3. 제1항에 있어서, 상기 저장된 압축된 데이터 파일을 압축해제하는 단계를 추가로 포함하고, 압축해제는 상기 압축 파라미터 데이터 구조를 컨설팅하여 상기 제1 속성에 대한 압축해제 유형을 식별하는 것을 포함하는, 방법.
  4. 제1항에 있어서, 상기 선택된 복수의 압축 유형들 및/또는 압축 구성들 각각은, 상기 식별된 제1 속성에 대한 상기 수신된 데이터 파일로부터의 상기 데이터를 압축하는 것이 가능하기 때문에 선택되는, 방법.
  5. 제1항에 있어서, 상기 데이터 파일은 게놈 데이터 파일인, 방법.
  6. 제1항에 있어서, 상기 하나 이상의 메트릭들은 상기 압축에 대한 압축비 및 프로세싱 시간 중 하나 이상을 포함하는, 방법.
  7. 제1항에 있어서, 압축 유형은, 대응하는 압축이 상기 복수의 선택된 압축 유형들 및/또는 압축 구성들 중 다른 것에 비해 더 높은 압축비 및/또는 더 빠른 프로세싱 시간을 포함하는 경우에 가장 적합한, 방법.
  8. 제1항에 있어서, 사용자 인터페이스를 통해, 상기 생성된 압축 파라미터 데이터 구조 및/또는 상기 압축된 데이터 파일에 관한 정보를 제공하는 단계를 추가로 포함하는, 방법.
  9. 제1항에 있어서, 사용자 인터페이스를 통해, 상기 사용자가 속성을 압축하기 위해 적용될 압축기 유형 및/또는 구성을 선택할 수 있도록 하는, 상기 식별된 압축 유형들 및/또는 압축 구성들 중 하나 이상에 관한 정보를 사용자에게 제공하는 단계를 추가로 포함하는, 방법.
  10. 데이터 파일을 압축/압축해제하기 위한 시스템(200)으로서,
    복수의 상이한 속성들을 포함하는 압축을 위한 데이터 파일; 및
    프로세서(220)를 포함하고, 상기 프로세서(220)는, (i) 상기 복수의 상이한 속성들 중 제1 속성을 식별하고, 상기 식별된 제1 속성의 사양을 속성 파라미터 데이터 구조에 저장하도록; (ii) 상기 식별된 제1 속성에 기초하여, 미리결정된 복수의 압축 유형들 및/또는 압축 구성들로부터 복수의 압축 유형들 및/또는 압축 구성들을 선택하도록; (iii) 개별적으로, 상기 선택된 복수의 압축 유형들 및/또는 압축 구성들 각각을 사용하여 상기 식별된 제1 속성에 대한 상기 수신된 데이터 파일로부터의 데이터의 적어도 일부를 압축하는 것으로서, 각각의 개별 압축에 대해 하나 이상의 메트릭들이 측정되는, 상기 데이터의 적어도 일부를 압축하도록; (iv) 상기 개별 압축들 각각의 상기 하나 이상의 메트릭들에 기초하여, 상기 선택된 복수의 압축 유형들 및/또는 압축 구성들 중 어느 것이 압축에 가장 적합한지를 결정하도록; (v) 상기 선택된 복수의 압축 유형들 및/또는 압축 구성들 중, 상기 식별된 제1 속성의 압축에 가장 적합한 압축 유형 및/또는 압축 구성의 식별을 포함하는 압축 파라미터 데이터 구조를 생성하도록; (vi) 상기 식별된 압축 유형을 사용하여, 상기 제1 속성에 대한 상기 수신된 데이터 파일로부터의 데이터를 압축하여 압축된 데이터 파일을 생성하도록; 그리고 (vii) 상기 속성 파라미터 데이터 구조, 상기 압축 파라미터 데이터 구조, 및 상기 압축된 데이터 파일을 저장하는 것으로서, 상기 저장된 압축 파라미터 데이터 구조는 상기 압축된 데이터 파일의 압축해제를 위해 검색 및 사용되도록 구성되는, 상기 속성 파라미터 데이터 구조, 상기 압축 파라미터 데이터 구조, 및 상기 압축된 데이터 파일을 저장하도록 구성되는, 시스템(200).
  11. 제10항에 있어서, 상기 프로세서는 상기 복수의 상이한 속성들 중 적어도 제2 속성에 대해 상기 식별, 선택, 압축, 및 결정 단계들을 반복하도록 구성되고, 상기 압축 파라미터 데이터 구조는 상기 선택된 복수의 압축 유형들 및/또는 압축 구성들 중, 상기 식별된 제2 속성의 압축에 가장 적합한 압축 유형 및/또는 압축 구성의 식별을 포함하는, 시스템.
  12. 제10항에 있어서, 상기 프로세서는 상기 저장된 압축된 데이터 파일을 압축해제하도록 구성되고, 압축해제는 상기 압축 파라미터 데이터 구조를 컨설팅하여 상기 제1 속성에 대한 압축해제 유형을 식별하는 것을 포함하는, 시스템.
  13. 제10항에 있어서, 상기 선택된 복수의 압축 유형들 및/또는 압축 구성들 각각은, 상기 식별된 제1 속성에 대한 상기 수신된 데이터 파일로부터의 상기 데이터를 압축하는 것이 가능하기 때문에 선택되는, 시스템.
  14. 제10항에 있어서, 상기 하나 이상의 메트릭들은 상기 압축에 대한 압축비 및 프로세싱 시간 중 하나 이상을 포함하는, 시스템.
  15. 제10항에 있어서, 상기 시스템은 상기 생성된 압축 파라미터 데이터 구조 및/또는 상기 압축된 데이터 파일에 관한 정보를 제공하도록 구성된 사용자 인터페이스(240)를 포함하는, 시스템.
KR1020237020674A 2020-11-20 2021-11-11 자동-구성가능 데이터 압축 프레임워크를 위한 시스템 및 방법 KR20230107349A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063116203P 2020-11-20 2020-11-20
US63/116,203 2020-11-20
US202163226791P 2021-07-29 2021-07-29
US63/226,791 2021-07-29
PCT/EP2021/081320 WO2022106289A1 (en) 2020-11-20 2021-11-11 System and method for auto-configurable data compression framework

Publications (1)

Publication Number Publication Date
KR20230107349A true KR20230107349A (ko) 2023-07-14

Family

ID=78709427

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237020674A KR20230107349A (ko) 2020-11-20 2021-11-11 자동-구성가능 데이터 압축 프레임워크를 위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US20240013864A1 (ko)
EP (1) EP4248565A1 (ko)
JP (1) JP2023551154A (ko)
KR (1) KR20230107349A (ko)
AU (1) AU2021382348A1 (ko)
IL (1) IL302962A (ko)
WO (1) WO2022106289A1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2381579A1 (en) * 2010-04-20 2011-10-26 Itron Metering Solutions UK Ltd Method for compressing/decompressing data
WO2017113124A1 (zh) * 2015-12-29 2017-07-06 华为技术有限公司 一种服务器以及服务器压缩数据的方法
CN108306650A (zh) * 2018-01-16 2018-07-20 厦门极元科技有限公司 基因测序数据的压缩方法

Also Published As

Publication number Publication date
WO2022106289A1 (en) 2022-05-27
IL302962A (en) 2023-07-01
JP2023551154A (ja) 2023-12-07
EP4248565A1 (en) 2023-09-27
US20240013864A1 (en) 2024-01-11
AU2021382348A1 (en) 2023-07-06

Similar Documents

Publication Publication Date Title
Chikhi et al. On the representation of de Bruijn graphs
CA2371375C (en) Bitwise adaptive encoding using prefix prediction
US9454552B2 (en) Entropy coding and decoding using polar codes
CN103995887A (zh) 位图索引压缩方法和位图索引解压方法
US8692696B2 (en) Generating a code alphabet of symbols to generate codewords for words used with a program
US11551785B2 (en) Gene sequencing data compression preprocessing, compression and decompression method, system, and computer-readable medium
US20200294629A1 (en) Gene sequencing data compression method and decompression method, system and computer-readable medium
US20120150877A1 (en) Efficient database compression
Maruyama et al. Fully online grammar compression in constant space
CN110489606B (zh) 一种分组Hilbert编码和解码方法
KR20140038441A (ko) 압축 매치 열거 기법
WO2023015831A1 (zh) 一种哈夫曼校正编码方法、系统及相关组件
Jahaan et al. A comparative study and survey on existing dna compression techniques.
KR20230107349A (ko) 자동-구성가능 데이터 압축 프레임워크를 위한 시스템 및 방법
CN108829872B (zh) 无损压缩文件的快速处理方法、设备、系统及存储介质
Selva et al. SRComp: short read sequence compression using burstsort and Elias omega coding
Bannai et al. Converting SLP to LZ78 in almost Linear Time
CN116472675A (zh) 用于能自动配置数据压缩框架的系统和方法
WO2007108395A1 (ja) 可変長符号の復号装置および復号方法
CN108829930A (zh) 三维数字化工艺设计mbd模型的轻量化方法
CN1964496A (zh) 编码器及自适应算术编码的实现方法及装置
US7209926B2 (en) Methods and apparatus for lexicographically sorting cyclic data
CN104679775A (zh) 一种基于Huffman表的数据处理方法
US8786471B1 (en) Lossless data compression with variable width codes
Gupta et al. An efficient compressor for biological sequences