(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-07
(54)【発明の名称】自動構成可能なデータ圧縮フレームワークのためのシステム及び方法
(51)【国際特許分類】
G06F 16/17 20190101AFI20231130BHJP
【FI】
G06F16/17 100
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023530194
(86)(22)【出願日】2021-11-11
(85)【翻訳文提出日】2023-05-18
(86)【国際出願番号】 EP2021081320
(87)【国際公開番号】W WO2022106289
(87)【国際公開日】2022-05-27
(32)【優先日】2020-11-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-07-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】590000248
【氏名又は名称】コーニンクレッカ フィリップス エヌ ヴェ
【氏名又は名称原語表記】Koninklijke Philips N.V.
【住所又は居所原語表記】High Tech Campus 52, 5656 AG Eindhoven,Netherlands
(74)【代理人】
【識別番号】110001690
【氏名又は名称】弁理士法人M&Sパートナーズ
(72)【発明者】
【氏名】チャン イー ヒム
(57)【要約】
データファイルを圧縮し、展開するための方法(100)であって、(i)複数の異なる属性を含む圧縮のためのデータファイルを受信すること(120)と、(ii)複数の異なる属性の第1の属性を識別すること(130)と、(iii)複数の圧縮タイプ及び/又は構成を選択すること(140)と、(iv)選択された複数の圧縮タイプ及び/又は構成の各々を使用して、識別された第1の属性のための受信されたデータファイルからのデータの少なくとも一部を圧縮すること(150)と、(v)選択された複数の圧縮タイプ及び/又は構成のうちのいずれが圧縮のために最も好適であるかを決定すること(160)と、(vi)選択された複数の圧縮タイプ及び/又は構成の識別を含む圧縮パラメータデータ構造を生成すること(170)と、(vii)圧縮されたデータファイルを生成するために、第1の属性のための受信されたデータファイルからのデータを圧縮すること(180)と、(viii)圧縮パラメータデータ構造と圧縮されたデータファイルとを記憶すること(190)とを含む、データファイルを圧縮し、展開するための方法(100)。
【特許請求の範囲】
【請求項1】
ファイル圧縮/展開システムを使用してデータファイルを圧縮/展開するための方法であって、前記方法は、
複数の異なる属性を含む、圧縮のためのデータファイルを受信するステップと、
前記複数の異なる属性のうちの第1の属性を識別し、前記識別された第1の属性の仕様を属性パラメータデータ構造に記憶するステップと、
前記識別された第1の属性に基づいて、事前決定された複数の圧縮タイプと圧縮構成とから複数の圧縮タイプ及び/又は圧縮構成を選択するステップと、
前記選択された複数の圧縮タイプ及び/又は圧縮構成の各々を使用して、前記識別された第1の属性のための前記受信されたデータファイルからの前記データの少なくとも一部を個別に圧縮するステップであって、1つ又は複数のメトリクスが各個別の圧縮について測定される、ステップと、
前記個別の圧縮の各々の前記1つ又は複数のメトリクスに基づいて、前記選択された複数の圧縮タイプ及び/又は圧縮構成のうちのいずれが圧縮のために最も好適であるかを決定するステップと、
前記選択された複数の圧縮タイプ及び/又は圧縮構成のうちの、前記識別された第1の属性の圧縮のために最も好適な圧縮タイプ及び/又は圧縮構成の識別を有する、圧縮パラメータデータ構造を生成するステップと、
圧縮されたデータファイルを生成するために、前記識別された圧縮タイプを使用して、前記第1の属性のための前記受信されたデータファイルからの前記データを圧縮するステップと、
前記属性パラメータデータ構造と前記圧縮パラメータデータ構造と前記圧縮されたデータファイルとを記憶するステップであって、前記記憶された圧縮パラメータデータ構造が、前記圧縮されたデータファイルの展開のために取り出され、使用されるように構成された、ステップと
を有する、データファイルの圧縮/展開のための方法。
【請求項2】
前記複数の異なる属性のうちの少なくとも第2の属性のために、前記識別するステップ、前記選択するステップ、前記圧縮するステップ、及び、前記決定するステップを繰り返すステップをさらに有し、前記圧縮パラメータデータ構造が、前記選択された複数の圧縮タイプ及び/又は圧縮構成のうちの、前記識別された第2の属性の圧縮のために最も好適な圧縮タイプ及び/又は圧縮構成の仕様を含む、請求項1に記載の方法。
【請求項3】
前記記憶された圧縮されたデータファイルを展開するステップをさらに有し、前記展開するステップが、前記第1の属性のための展開タイプを識別するために前記圧縮パラメータデータ構造を調べるステップを有する、請求項1に記載の方法。
【請求項4】
前記識別された第1の属性のための前記受信されたデータファイルからの前記データを圧縮することが可能であるので、前記選択された複数の圧縮タイプ及び/又は圧縮構成の各々が選択される、請求項1に記載の方法。
【請求項5】
前記データファイルがゲノムデータファイルである、請求項1に記載の方法。
【請求項6】
前記1つ又は複数のメトリクスが前記圧縮のための圧縮比と処理時間とのうちの1つ又は複数を含む、請求項1に記載の方法。
【請求項7】
前記対応する圧縮が前記複数の選択された圧縮タイプ及び/又は圧縮構成のうちの他の圧縮タイプ及び/又は圧縮構成に対してより高い圧縮比及び/又はより速い処理時間を有するときの圧縮タイプが最も好適である、請求項1に記載の方法。
【請求項8】
ユーザインターフェースを介して、前記生成された圧縮パラメータデータ構造及び/又は前記圧縮されたデータファイルについての情報を与えるステップをさらに有する、請求項1に記載の方法。
【請求項9】
ユーザが、属性を圧縮するために適用されるべき圧縮器タイプ及び/又は構成を選択することができるように、前記識別された圧縮タイプ及び/又は圧縮構成のうちの1つ又は複数についての情報を、ユーザインターフェースを介して前記ユーザに与えるステップをさらに有する、請求項1に記載の方法。
【請求項10】
複数の異なる属性を含む、圧縮のためのデータファイルと、
プロセッサと
を含む、データファイルを圧縮/展開するためのシステムであって、前記プロセッサは、
(i)前記複数の異なる属性のうちの第1の属性を識別し、前記識別された第1の属性の仕様を属性パラメータデータ構造に記憶することと、
(ii)前記識別された第1の属性に基づいて、事前決定された複数の圧縮タイプ及び/又は圧縮構成から複数の圧縮タイプ及び/又は圧縮構成を選択することと、
(iii)前記選択された複数の圧縮タイプ及び/又は圧縮構成の各々を使用して、前記識別された第1の属性のための前記受信されたデータファイルからの前記データの少なくとも一部を個別に圧縮することであって、1つ又は複数のメトリクスが各個別の圧縮について測定される、前記データの少なくとも一部を個別に圧縮することと、
(iv)前記個別の圧縮の各々の1つ又は複数のメトリクスに基づいて、前記選択された複数の圧縮タイプ及び/又は圧縮構成のうちのいずれが圧縮のために最も好適であるかを決定することと、
(v)前記選択された複数の圧縮タイプ及び/又は圧縮構成のうちの、前記識別された第1の属性の圧縮のために最も好適な圧縮タイプ及び/又は圧縮構成の識別を有する、圧縮パラメータデータ構造を生成することと、
(vi)圧縮されたデータファイルを生成するために、前記識別された圧縮タイプを使用して、前記第1の属性のための前記受信されたデータファイルからの前記データを圧縮することと、
(vii)前記属性パラメータデータ構造と前記圧縮パラメータデータ構造と前記圧縮されたデータファイルとを記憶することであって、前記記憶された圧縮パラメータデータ構造が、前記圧縮されたデータファイルの展開のために取り出され、使用されるように構成された、記憶することと
を行うように構成された、データファイルを圧縮/展開するためのシステム。
【請求項11】
前記プロセッサが、前記複数の異なる属性のうちの少なくとも第2の属性のために、前記識別することと、前記選択することと、前記圧縮することと、前記決定することとを繰り返すように構成され、前記圧縮パラメータデータ構造が、前記選択された複数の圧縮タイプ及び/又は圧縮構成のうちの、前記識別された第2の属性の圧縮のために最も好適な圧縮タイプ及び/又は圧縮構成の識別を含む、請求項10に記載のシステム。
【請求項12】
前記プロセッサが、前記記憶された圧縮されたデータファイルを展開するように構成され、展開することが、前記第1の属性のための展開タイプを識別するために前記圧縮パラメータデータ構造を調べることを有する、請求項10に記載のシステム。
【請求項13】
前記識別された第1の属性のための前記受信されたデータファイルからの前記データを圧縮することが可能であるので、前記選択された複数の圧縮タイプ及び/又は圧縮構成の各々が選択される、請求項10に記載のシステム。
【請求項14】
前記1つ又は複数のメトリクスが前記圧縮のための圧縮比と処理時間とのうちの1つ又は複数を含む、請求項10に記載のシステム。
【請求項15】
前記システムが、前記生成された圧縮パラメータデータ構造及び/又は前記圧縮されたデータファイルについての情報を与えるように構成されたユーザインターフェースを含む、請求項10に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本開示は、一般に、ファイル圧縮/展開システムを使用してデータファイルを圧縮するための方法及びシステムを対象とする。
【背景技術】
【0002】
[0002] 多くのデータファイルのサイズが増大し続けていることを考えると、効率的なファイル圧縮方法及びシステムはますます重要である。単一のゲノムデータファイルは、例えば、注釈及び他のデータ属性とともに、多数のサンプルのゲノムにわたる数百万又は何十億ものロケーションについての配列決定結果を含み得る。バリアントコールフォーマット(VCF)ファイルは、例えば、データ属性を含む何百万もの行と多数の列とをもつ遺伝子配列変異を含み得る。これらのデータファイルは、長期間にわたって記憶されなければならず、100ギガバイト又は1000ギガバイトの極めて大きいサイズになることがある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
[0003] データファイルの圧縮は一般に1つ又は複数のデータ圧縮器を含む。データファイルに直接適用され得る多数の一般的な圧縮器があるが、それらは、データ冗長性の効果的な削除のために、データセット内の個々のフィールドのデータの類似性又は予測可能性を十分に活用しないので、それらの圧縮性能は、通常、準最適である。圧縮比を改善するための1つの手法は、したがって、最初に、データセットを、別個の特性をもつフィールドに分割し、次いで、フィールドの特定のデータモデルを最大限に利用することができる圧縮器を用いて、フィールドの各々を個別に圧縮することである。しかしながら、これは、一般に、データフィールドとそれらの関連する圧縮器とが1つ1つのファイルタイプについて事前定義され、符号化及び復号プロセスが、圧縮及び展開のために使用されるソフトウェアにおいて相応してハードコーディングされることを必要とする。そのような手法の柔軟性のなさは、出現するデータタイプに適応すること、又は新しいアルゴリズムを採用することを困難にする。
【課題を解決するための手段】
【0004】
[0004] データファイルの効率的で適応可能な圧縮及び展開のための方法及びシステムの継続的な必要がある。本開示は、圧縮性能に基づいてデータ圧縮器の自動化された識別及び/又は構成を使用してデータファイルを圧縮するための発明的方法及びシステムを対象とする。ファイル圧縮/展開システムは、複数の異なるサンプルの各々についての複数の異なる属性を含む、圧縮のためのデータファイルを受信する。本システムは、複数の異なる属性のうちの第1の属性を識別し、第1の属性に基づいて、事前定義された複数の圧縮タイプ及び構成から、複数の異なる圧縮タイプ及び/又は圧縮構成を選択する。本システムは、選択された複数の圧縮タイプ及び/又は圧縮構成の各々を使用して、識別された第1の属性のための受信されたゲノムデータファイルからのデータを個別に圧縮し、選択された複数の圧縮タイプ及び/又は圧縮構成のうちのいずれが圧縮のために最も好適であるかを決定する。次いで、本システムは、選択された複数の圧縮タイプ及び/又は圧縮構成のうちの、識別された第1の属性の圧縮のために最も好適な圧縮タイプ及び/又は圧縮構成の識別を有する圧縮パラメータデータ構造を生成し、圧縮されたゲノムデータファイルを生成するために、識別された圧縮タイプ及び/又は圧縮構成を使用して、第1の属性のための受信されたゲノムデータファイルからのデータを圧縮する。圧縮パラメータデータ構造及び圧縮されたゲノムデータファイルは、次いで、記憶され、展開のために使用され得る。
【0005】
[0005] 一般に、一態様では、ファイル圧縮/展開システムを使用してゲノムデータファイルを圧縮/展開するための方法が提供される。本方法は、(i)データファイルが複数の異なる属性を含む、圧縮のためのデータファイルを受信することと、(ii)複数の異なる属性のうちの第1の属性を識別し、識別された第1の属性の仕様を属性パラメータデータ構造に記憶することと、(iii)識別された第1の属性に基づいて、事前定義された複数の圧縮タイプ及び/又は圧縮構成から複数の圧縮タイプ及び/又は圧縮構成を選択することと、(iv)選択された複数の圧縮タイプ及び/又は圧縮構成の各々を使用して、識別された第1の属性のための受信されたデータファイルからのデータの少なくとも一部を個別に圧縮することであって、1つ又は複数のメトリクスが各個別の圧縮について測定される、圧縮することと、(v)個別の圧縮の各々の1つ又は複数のメトリクスに基づいて、選択された複数の圧縮タイプ及び/又は圧縮構成のうちのいずれが圧縮のために最も好適であるかを決定することと、(vi)選択された複数の圧縮タイプ及び/又は圧縮構成のうちの、識別された第1の属性の圧縮のために最も好適な圧縮タイプ及び/又は圧縮構成の識別を有する、圧縮パラメータデータ構造を生成することと、(vii)圧縮されたデータファイルを生成するために、識別された圧縮タイプを使用して、第1の属性のための受信されたデータファイルからのデータを圧縮することと、(viii)属性パラメータデータ構造と圧縮パラメータデータ構造と圧縮されたデータファイルとを記憶することであって、記憶された圧縮パラメータデータ構造が、圧縮されたデータファイルの展開のために取り出され、使用されるように構成された、記憶することとを含む。
【0006】
[0006] 一実施形態によれば、本方法は、さらに、複数の異なる属性のうちの少なくとも第2の属性のために、識別するステップ、選択するステップ、圧縮するステップ、及び、決定するステップを繰り返すことを含み、圧縮パラメータデータ構造が、選択された複数の圧縮タイプ及び/又は圧縮構成のうちの、識別された第2の属性の圧縮のために最も好適な圧縮タイプ及び/又は圧縮構成の仕様を含む。
【0007】
[0007] 一実施形態によれば、本方法は、記憶された圧縮されたファイルを展開することをさらに含み、展開することは、第1の属性のための展開タイプを識別するために圧縮パラメータデータ構造を調べることを有する。
【0008】
[0008] 一実施形態によれば、選択された複数の圧縮タイプ及び/又は圧縮構成の各々は、それが、識別された第1の属性のための受信されたデータファイルからのデータを圧縮することが可能であるので選択される。
【0009】
[0009] 一実施形態によれば、データファイルはゲノムデータファイルである。
【0010】
[0010] 一実施形態によれば、1つ又は複数のメトリクスは前記圧縮のための圧縮比と処理時間とのうちの1つ又は複数を含む。
【0011】
[0011] 一実施形態によれば、対応する圧縮が複数の選択された圧縮タイプ及び/又は圧縮構成のうちの他の圧縮タイプ及び/又は圧縮構成に対してより高い圧縮比及び/又はより速い処理時間を有するときに、圧縮タイプは最も好適である。
【0012】
[0012] 一実施形態によれば、本方法は、ユーザインターフェースを介して、生成された圧縮パラメータデータ構造及び/又は圧縮されたデータファイルについての情報を与えることをさらに含む。
【0013】
[0013] 一実施形態によれば、本方法は、ユーザが、属性を圧縮するために適用されるべき圧縮器タイプ及び/又は構成を選択することができるように、識別された圧縮タイプ及び/又は圧縮構成のうちの1つ又は複数についての情報を、ユーザインターフェースを介してユーザに与えることをさらに含む。
【0014】
[0014] 第2の態様は、データファイルを圧縮/展開するためのシステムである。本システムは、複数の異なる属性を含む、圧縮のためのデータファイルと、プロセッサとを含み、プロセッサは、(i)複数の異なる属性のうちの第1の属性を識別し、識別された第1の属性の仕様を属性パラメータデータ構造に記憶することと、(ii)識別された第1の属性に基づいて、事前定義された複数の圧縮タイプ及び/又は圧縮設定から複数の圧縮タイプ及び/又は圧縮設定を選択することと、(iii)選択された複数の圧縮タイプ及び/又は圧縮設定の各々を使用して、識別された第1の属性のための受信されたデータファイルからのデータの少なくとも一部を個別に圧縮することであって、1つ又は複数のメトリクスが各個別の圧縮について測定される、圧縮することと、(iv)個別の圧縮の各々の1つ又は複数のメトリクスに基づいて、選択された複数の圧縮タイプ及び/又は圧縮設定のうちのいずれが圧縮のために最も好適であるかを決定することと、(v)選択された複数の圧縮タイプ及び/又は圧縮設定のうちの、識別された第1の属性の圧縮のために最も好適な圧縮タイプ及び/又は圧縮設定の識別を有する、圧縮パラメータデータ構造を生成することと、(vi)圧縮されたデータファイルを生成するために、識別された圧縮タイプを使用して、第1の属性のための受信されたデータファイルからのデータを圧縮することと、(vii)属性パラメータデータ構造と圧縮パラメータデータ構造と圧縮されたデータファイルとを記憶することであって、記憶された圧縮パラメータデータ構造が、圧縮されたデータファイルの展開のために取り出され、使用されるように構成された、記憶することとを行うように構成される。
【0015】
[0015] 一実施形態によれば、システムは、生成された圧縮パラメータデータ構造及び/又は圧縮されたデータファイルについての情報を与えるように構成されたユーザインターフェースを含む。
【0016】
[0016] 様々な実装形態では、プロセッサ又はコントローラは、(本明細書で一般的に「メモリ」と呼ぶ、例えば、RAM、PROM、EPROM、及びEEPROM、フロッピーディスク、コンパクトディスク、光ディスク、磁気テープなど、揮発性及び不揮発性コンピュータメモリ)1つ又は複数の記憶媒体に関連付けられ得る。いくつかの実装形態では、記憶媒体は、1つ又は複数のプロセッサ及び/又はコントローラ上で実行されたときに、本明細書で説明した機能のうちの少なくともいくつかを実行する1つ又は複数のプログラムを用いて符号化され得る。本明細書で説明する様々な態様を実装するように、その上に記憶された1つ又は複数のプログラムをプロセッサ又はコントローラにロードすることができるように、様々な記憶媒体がプロセッサ又はコントローラ内に固定され得るか、又は移送可能であり得る。「プログラム」又は「コンピュータプログラム」という用語は、本明細書では、1つ又は複数のプロセッサ又はコントローラをプログラムするために採用することができる任意のタイプのコンピュータコード(例えば、ソフトウェア又はマイクロコード)を指すために、一般的な意味で使用する。
【0017】
[0017] 上記の概念、及び以下でより詳細に説明する追加の概念のすべての組合せは、(そのような概念が相互に矛盾しない限り)本明細書で開示する発明的主題の一部であるとして企図されることを理解されたい。特に、本開示の最後に現れるクレームされる主題のすべての組合せは、本明細書で開示する発明的主題の一部であるとして企図される。また、参照により組み込まれるどの開示にも現れ得る本明細書で明示的に採用される用語は、本明細書で開示する特定の概念に最も一致する意味を与えられるべきであることを理解されたい。
【0018】
[0018] 様々な実施形態のこれら及び他の態様は、以下で説明する実施形態から明らかになり、以下で説明する実施形態を参照すれば解明されるであろう。
【0019】
[0019] 図面において、異なるビュー全体にわたって同様の参照符号は一般に同じ部分を指す。また、図面は必ずしも一定の縮尺でなく、むしろ、一般に、様々な実施形態の原理を示すことに強調が置かれる。
【図面の簡単な説明】
【0020】
【
図1】[0020] 一実施形態による、ファイル圧縮/展開システムを使用してゲノムデータファイルを圧縮するための方法のフローチャートである。
【
図2】[0021] 一実施形態による、ファイル圧縮/展開システムの概略表現である。
【
図3】[0022] 一実施形態による、データファイルの概略表現である。
【発明を実施するための形態】
【0021】
[0023] 本開示では、データファイルの効率的で適応可能な圧縮のためのシステム及び方法の様々な実施形態について説明する。出願人は、圧縮性能に基づいて、データ圧縮器の自動化された識別及び/又は構成を採用するデータファイル圧縮方法及びシステムを提供することが有益であろうことを認識し、理解している。データファイル圧縮/展開システムは、圧縮のためのゲノムデータファイルを受信し、ゲノムデータファイルは、複数の異なるゲノムサンプルの各々についての複数の異なる属性(又はデータフィールド)を含む。本システムは、複数の異なる属性のうちの第1の属性を識別し、その属性に基づいて、事前定義された複数の圧縮タイプと圧縮構成とから複数の圧縮タイプ及び/又は圧縮構成を選択し、選択された複数の圧縮タイプ及び/又は圧縮構成の各々は、識別された第1の属性のための受信されたゲノムデータファイルからのデータを圧縮することが可能である。データファイル圧縮システムは、選択された複数の圧縮タイプ及び/又は圧縮構成の各々を使用して、識別された第1の属性のための受信されたゲノムデータファイルからのデータの少なくとも一部を個別に圧縮し、1つ又は複数のメトリクスが各個別の圧縮について測定され、1つ又は複数のメトリクスは前記圧縮のための圧縮比と処理時間とのうちの1つ又は複数を含む。個別の圧縮の各々の1つ又は複数のメトリクスに基づいて、本システムは、選択された複数の圧縮タイプ及び/又は圧縮構成のうちのいずれが圧縮のために最も好適であるかを決定する。一実施形態によれば、対応する圧縮が複数の選択された圧縮タイプ及び/又は圧縮構成のうちの他の圧縮タイプ及び/又は圧縮構成に対してより高い圧縮比及び/又はより速い処理時間を有するときの圧縮タイプが最も好適である。本システムは、次いで、選択された複数の圧縮タイプ及び/又は圧縮構成のうちの、識別された第1の属性の圧縮のために最も好適な圧縮タイプ及び/又は圧縮構成の識別、及び/又はそれらの圧縮タイプ及び/又は圧縮構成のための処理命令を含む圧縮パラメータデータ構造を生成し、圧縮されたゲノムデータファイルを生成するために、第1の属性のための受信されたゲノムデータファイルからのデータを圧縮する。圧縮パラメータデータ構造及び圧縮されたゲノムデータファイルは、記憶され、ここで、記憶された圧縮パラメータデータ構造は、圧縮されたゲノムデータファイルの展開のために取り出され、使用されるように構成される。
【0022】
[0024] 一実施形態によれば、本明細書で説明又はさもなければ想定する新規の方法及びシステムは、圧縮器の性能に基づいて、データフィールドのための圧縮器の自動構成のためのフレームワークを与え、圧縮器を明示的に指定し、圧縮されたデータとともに記憶することを可能にする。属性データにアクセスするために、デコーダは、属性に関連付けられた圧縮器構成において指定された処理ステップ及びパラメータに基づいて、展開及び逆変換アルゴリズムを実行することができる。本明細書で説明又はさもなければ想定する新規の方法及びシステムは多数の利点を与える。例えば、本方法及びシステムは、ファイルのための圧縮器構成をカスタマイズするためのフレキシビリティを与え、新しい変換及び圧縮アルゴリズムの採用を容易にする。第2に、本方法及びシステムは、圧縮器構成を識別し、与えることによって任意の新しいファイルタイプに適応する。処理命令は圧縮器構成に含まれており、ソフトウェアにおいてハードコーディングされていないので、デコーダは、コードの修正の必要なしにファイルを容易に処理することができる。第3に、圧縮器設定の自動構成は、ユーザ知識又は経験を必要とすることなしに圧縮性能を改善することを助ける。本方法及びシステムは多くの他の利点をも与える。
【0023】
[0025] 一実施形態によれば、圧縮器構成フレームワークシステムは、以下の構成要素、すなわち、(i)データ変換のシーケンスと、圧縮ステップと、それらのデフォルトパラメータとからなる圧縮プロセスなど、圧縮器を指定するためのユニフォームデータインターフェースと、(ii)データ属性を指定し、カスタマイズされたパラメータを用いてデータ属性を圧縮器に関連付けるためのユニフォームデータインターフェースと、(iii)関連付けられた圧縮器構成において指定された処理ステップに基づいて属性データを符号化するためのアルゴリズムと、(iv)関連付けられた圧縮器構成において指定された処理ステップに基づいて属性データを復号するためのアルゴリズムと、(v)性能に基づく圧縮器構成の自動決定のための機構とのうちの1つ又は複数を含む。
【0024】
[0026]
図1を参照すると、一実施形態は、ファイル圧縮/展開システムを使用してゲノムデータファイルを圧縮するための方法100のフローチャートである。図に関して説明する方法は、単に例として与えられ、本開示の範囲を限定しないと理解されるべきである。ファイル圧縮/展開システムは、本明細書で説明又はさもなければ想定するシステムのいずれかであり得る。ファイル圧縮/展開システムは単一のシステム又は複数の異なるシステムであり得る。
【0025】
[0027] 本方法のステップ110において、ファイル圧縮/展開システム200が与えられる。
図2に示されているファイル圧縮/展開システム200の実施形態を参照すると、例えば、本システムは、1つ又は複数のシステムバス212を介して相互接続された、プロセッサ220と、メモリ230と、ユーザインターフェース240と、通信インターフェース250と、ストレージ260とのうちの1つ又は複数を含む。
図2は、いくつかの点で、アブストラクションを構成していること、及びシステム200の構成要素の実際の編成は異なり、示されているよりも複雑であり得ることが理解されよう。さらに、ファイル圧縮/展開システム200は、本明細書で説明又はさもなければ想定するシステムのいずれかであり得る。ファイル圧縮/展開システム200の他の要素及び構成要素は本明細書の他の場所で開示及び/又は想定される。
【0026】
[0028] 一実施形態によれば、ファイル圧縮/展開システム200は、ファイルデータベース270を含むか、又はファイルデータベース270と直接的又は間接的に通信している。ファイルデータベースは、可能なデータの中でも、ファイル圧縮/展開システム200を使用して圧縮され得るか、又は圧縮された、1つ又は複数のファイルを含む。一実施形態によれば、1つ又は複数のファイルはゲノムファイルを含み、ゲノムファイルは、潜在的に多くの異なるゲノムサンプルのための、データ属性を含む何百万もの行と多数の列とをもつ遺伝子配列変異を含む。ファイルデータベースは、限定はしないが、本明細書で説明又はさもなければ想定するデータベース及びシステムを含む、何らかのそのようなデータベースであり得る。
【0027】
[0029] 一実施形態によれば、ファイル圧縮/展開システム200は、圧縮及び展開アルゴリズムデータベース280を含むか、又は圧縮及び展開アルゴリズムデータベース280と直接的又は間接的に通信している。圧縮及び展開アルゴリズムデータベースは、異なる圧縮アルゴリズムと展開アルゴリズムとのライブラリを含む。これらの圧縮及び展開アルゴリズムは、データファイルシステムによってデータファイルを圧縮及び展開するために利用され得る。データベースに新しい圧縮アルゴリズム及び展開アルゴリズムをいつでも追加することができる。圧縮及び展開アルゴリズムデータベースは、限定はしないが、本明細書で説明又はさもなければ想定するデータベース及びシステムを含む、何らかのそのようなデータベースであり得る。
【0028】
[0030] 本方法のステップ120において、ファイル圧縮/展開システムは、圧縮のための圧縮されていないデータファイルを受信し、データファイルは、複数の異なるサンプルの各々についての複数の異なる属性を含む。例として、ゲノムデータファイルの場合、ゲノムデータファイルは、複数の異なるゲノムサンプルの各々についての複数の異なる属性を含む。データファイルは、限定はしないが、それ自体がローカル又はリモートデータベースであり得る、ファイルデータベース270を含む、任意のソースからローカル又はリモートで受信され得る。
【0029】
[0031] 方法のステップ130において、ファイルデータシステムは、データファイル中の複数の異なる属性のうちの第1の属性を識別する。属性はデータファイルからの任意の情報であり得る。
図3を参照すると、データファイルの非限定的な一例では、各列が属性である、複数の列310を含むゲノムデータファイルの部分300である。ファイルデータシステムは、データファイル内の知られている属性を認識するように構成され得るか、又は、データファイル内の新しい又は認識されていない属性を予測又は推定又はさもなければ決定するように構成され得る。したがって、ファイルデータシステムは、多種多様な異なる方法を使用してデータファイル中の複数の異なる属性のうちの第1の属性を識別するように構成され得る。一実施形態によれば、属性を識別した後に、本システムは、(本明細書で説明する属性パラメータセットなど)属性パラメータデータ構造において属性を指定する。
【0030】
[0032] ステップ140において、データファイル圧縮/展開システムは、事前定義された複数の圧縮タイプとアルゴリズムと構成とから複数の圧縮タイプ又はアルゴリズム(「圧縮器」)及び/又は圧縮構成を選択する。圧縮器又は圧縮構成は、例えば、圧縮アルゴリズムのシーケンスと、圧縮アルゴリズムに関連付けられたパラメータとを含み得る。圧縮タイプ、アルゴリズム、及び圧縮構成は、限定はしないが、それ自体がローカル又はリモートデータベースであり得る、圧縮及び展開アルゴリズムデータベース280を含む、任意のソースからローカル又はリモートで選択され得る。一実施形態によれば、複数の圧縮タイプとアルゴリズムと圧縮構成とのうちの1つ又は複数は、識別された属性に少なくとも部分的に基づいて、事前定義された複数の圧縮タイプとアルゴリズムと圧縮構成とから選択される。例えば、圧縮器又は構成は、識別された第1の属性のための受信されたデータファイルからのデータを圧縮する圧縮器の能力に基づいて選択され得る。したがって、本システムは、第1の属性データを圧縮することが可能な圧縮器又は構成を優先的に識別し得、及び/又は第1の属性データを圧縮することが不可能な圧縮器を優先的に除外し得る。
【0031】
[0033] ステップ150において、ファイルデータシステムは、識別された圧縮器を使用してデータを圧縮する。一実施形態によれば、ファイル圧縮/展開システムは第1の属性データを個別に圧縮する。複数の圧縮器によるこの個別の圧縮は連続的に又は同時に実行され得る。一実施形態によれば、各圧縮器は第1の属性データのサブセットのみを圧縮し、サブセットは、複数の圧縮器の中での圧縮メトリクスのより客観的な比較を可能にするために各圧縮器について同等のサブセットである。別の実施形態によれば、各圧縮器はすべての第1の属性データを圧縮する。
【0032】
[0034] 実施形態によれば、ファイル圧縮/展開システムは、各圧縮器による各個別の圧縮についての1つ又は複数の圧縮メトリクスを測定又はさもなければ取得又は識別する。これにより、複数の圧縮器の中での圧縮性能の客観的な比較と、第1の属性データのための好ましい圧縮器の選択とが可能になる。一実施形態によれば、圧縮メトリクスは、圧縮比、処理時間、圧縮精度、及び/又は任意の他の圧縮メトリックであり得る。
【0033】
[0035] 方法のステップ160において、ファイル圧縮/展開システムは、測定された又は取得されたメトリクスを使用して、選択された複数の圧縮タイプ、アルゴリズム、又は圧縮構成のいずれが圧縮のために最も好適であるかを決定する。したがって、ファイル圧縮/展開システムは、各個別の圧縮器に対応するメトリクスを比較、ランク付け、又はさもなければ利用し、好ましい圧縮器を選択する。例えば、圧縮又は構成が、複数の選択された圧縮タイプ又は構成のうちの他の圧縮タイプ及び/又は圧縮構成に対して、より高い又は最良の圧縮比及び/又はより速い処理時間を有するとき、圧縮器又は構成は、圧縮のために最も好適に又は好ましくなり得る。第1の実施形態によれば、ファイル圧縮/展開システムは、最良の圧縮比をもつ圧縮器を選択するように構成される。第2の実施形態によれば、ファイル圧縮/展開システムは、最も速い圧縮又は処理時間をもつ圧縮器を選択するように構成される。第3の実施形態によれば、ファイル圧縮/展開システムは、圧縮比と圧縮又は処理時間との最良の組合せをもつ圧縮器を選択するように構成される。これらの構成は、オプションの中でも、事前プログラムされ得るか、学習され得るか、又はシステムのユーザによって決定され得る。
【0034】
[0036] 一実施形態によれば、ファイル圧縮/展開システムは、1つ又は複数の追加の属性のために、識別するステップ、選択するステップ、圧縮するステップ、及び、決定するステップを繰り返す。例えば、本システムは、データファイル内で見つけられた一部の又は全部の属性のための好ましい圧縮器を識別するように構成され得る。
【0035】
[0037] 本方法のステップ170において、ファイル圧縮/展開システムは、圧縮パラメータデータファイルなど、圧縮パラメータデータ構造を生成する。一実施形態によれば、生成された圧縮パラメータデータ構造は、少なくとも第1の識別された属性のための選択された圧縮器及び/又は圧縮構成の識別、及び/又はそのような圧縮器及び/又は圧縮構成のための仕様、及び、随意に、データファイル中の複数の属性のために選択された圧縮器及び/又は圧縮構成の識別(例えば、複数の属性のための圧縮器の使用を指定すること)を含む。圧縮パラメータデータファイルは、圧縮器設定及び他の情報を含む、圧縮器を利用するために必要な任意の情報を含むことができる。
【0036】
[0038] 方法のステップ180において、ファイル圧縮/展開システムは、識別された圧縮器及び/又は圧縮構成を使用して、圧縮されたファイルを生成するために、受信されたデータファイルからのデータを圧縮する。したがって、これは、第1の属性データか、複数の属性についてのデータか、又はファイル中のすべての属性についてのデータの圧縮を含むことができる。システムが圧縮されたファイルを生成すると、圧縮されたファイルを送る又はさもなければ送信する又は使用するなど、ファイルはすぐに利用され得るか、又は圧縮されたファイルは、本方法のさらなるステップにおいて使用するためにローカル又はリモートストレージに記憶され得る。多くの他のオプションが可能である。
【0037】
[0039] 方法のステップ190において、生成された圧縮パラメータデータ構造は、記憶されたファイルを圧縮されたデータファイルの展開のために取り出し、使用することができるように記憶される。圧縮パラメータデータ構造は、ファイル圧縮/展開システム200の構成要素であるか、又はさもなければファイル圧縮/展開システム200と通信し得る、リモート又はローカルデータベースに記憶され得る。例えば、圧縮パラメータデータ構造は、圧縮されたデータファイルと一緒に記憶されるか、又は圧縮されたデータファイルへの又は圧縮されたデータファイルからの参照とともに記憶され得る。
【0038】
[0040]
図2を参照すると、一実施形態では、ファイル圧縮/展開システム200の概略表現である。システム200は、本明細書で説明又はさもなければ想定するシステムのいずれかであり得、本明細書で説明又はさもなければ想定する構成要素のいずれかを備え得る。
図2は、いくつかの点で、アブストラクションを構成していること、及びシステム200の構成要素の実際の編成は異なり、示されているよりも複雑であり得ることが理解されよう。
【0039】
[0041] 一実施形態によれば、システム200は、メモリ230又はストレージ260に記憶された命令を実行すること、又はさもなければ、例えば、方法の1つ又は複数のステップを実行するためにデータを処理することが可能な、プロセッサ220を含む。プロセッサ220は1つ又は複数のモジュールから形成され得る。プロセッサ220は、限定はしないが、マイクロプロセッサ、マイクロコントローラ、複数のマイクロコントローラ、回路、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、シングルプロセッサ、又は複数のプロセッサを含む、任意の好適な形態を取り得る。
【0040】
[0042] メモリ230は、不揮発性メモリ及び/又はRAMを含む、任意の好適な形態を取ることができる。メモリ230は、例えばL1、L2、又はL3キャッシュ又はシステムメモリなど、様々なメモリを含み得る。したがって、メモリ230は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックRAM(DRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、又は他の同様のメモリデバイスを含み得る。メモリは、とりわけ、オペレーティングシステムを記憶することができる。RAMはデータの一時的記憶のためにプロセッサによって使用される。一実施形態によれば、オペレーティングシステムは、プロセッサによって実行されたときに、システム200の1つ又は複数の構成要素の動作を制御するコードを含み得る。プロセッサが本明細書で説明する機能のうちの1つ又は複数をハードウェアにおいて実装する実施形態では、他の実施形態におけるそのような機能に対応するとして説明したソフトウェアは省略され得ることは明らかであろう。
【0041】
[0043] ユーザインターフェース240は、ユーザとの通信を可能にするための1つ又は複数のデバイスを含み得る。ユーザインターフェースは、情報を伝達及び/又は受信することを可能にする任意のデバイス又はシステムであり得、ユーザコマンドを受信するためのディスプレイ、マウス、及び/又はキーボードを含み得る。いくつかの実施形態では、ユーザインターフェース240は、通信インターフェース250を介してリモート端末に提示され得るコマンドラインインターフェース又はグラフィカルユーザインターフェースを含み得る。ユーザインターフェースは、システムの1つ又は複数の他の構成要素とともに位置し得るか、又は、システムからリモートに位置し、ワイヤード及び/又はワイヤレス通信ネットワークを介して通信し得る。
【0042】
[0044] 通信インターフェース250は、他のハードウェアデバイスとの通信を可能にするための1つ又は複数のデバイスを含み得る。例えば、通信インターフェース250は、イーサネットプロトコルに従って通信するように構成されたネットワークインターフェースカード(NIC)を含み得る。さらに、通信インターフェース250はTCP/IPプロトコルに従った通信のためのTCP/IPスタックを実装し得る。通信インターフェース250のための様々な代替又は追加のハードウェア又は構成が明らかになろう。
【0043】
[0045] ストレージ260は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、又は同様の記憶媒体など、1つ又は複数の機械可読記憶媒体を含み得る。様々な実施形態では、ストレージ260は、プロセッサ220による実行のための命令、又はプロセッサ220がそれに対して動作し得るデータを記憶し得る。例えば、ストレージ260は、システム200の様々な動作を制御するためのオペレーティングシステム261を記憶し得る。
【0044】
[0046] ストレージ260に記憶されるとして説明される様々な情報が追加又は代替としてメモリ230に記憶され得ることが明らかになろう。この点で、メモリ230は記憶デバイスを構成するとも考えられ得、ストレージ260はメモリと考えられ得る。様々な他の配置が明らかになろう。さらに、メモリ230とストレージ260は両方とも非一時的機械可読媒体であると考えられ得る。本明細書で使用する際、非一時的という用語は、一時的信号を除外するが、揮発性メモリと不揮発性メモリの両方を含む、すべての形態のストレージを含むことが理解されよう。
【0045】
[0047] システム200は、各説明された構成要素のうちの1つを含むとして示されているが、様々な構成要素は様々な実施形態において重複し得る。例えば、プロセッサ220は、本明細書で説明する方法を単独で実行するように構成された、又は本明細書で説明する機能を達成するために複数のプロセッサが協働するように、本明細書で説明する方法のステップ又はサブルーチンを実行するように構成された、複数のマイクロプロセッサを含み得る。さらに、システム200の1つ又は複数の構成要素がクラウドコンピューティングシステムにおいて実装される場合、様々なハードウェア構成要素は別個の物理的システムに属し得る。例えば、プロセッサ220は、第1のサーバ中の第1のプロセッサと、第2のサーバ中の第2のプロセッサとを含み得る。多くの他の変形形態及び構成が可能である。
【0046】
[0048] 一実施形態によれば、ファイル圧縮/展開システム200は、ファイルデータベース270を含むか、又はファイルデータベース270と直接的又は間接的に通信している。ファイルデータベースは、可能なデータの中でも、ファイル圧縮/展開システム200を使用して圧縮され得るか、又は圧縮された、1つ又は複数のファイルを含む。一実施形態によれば、1つ又は複数のファイルは、ゲノムファイルを含み、ゲノムファイルは、潜在的に多くの異なるゲノムサンプルのための、データ属性を含む、何百万もの行と多数の列とをもつ遺伝子配列変異を含む。
【0047】
[0049] 一実施形態によれば、ファイル圧縮/展開システム200は、圧縮及び展開アルゴリズムデータベース280を含むか、又は圧縮及び展開アルゴリズムデータベース280と直接的又は間接的に通信している。圧縮及び展開アルゴリズムデータベースは、異なる圧縮アルゴリズムと展開アルゴリズムとのライブラリを含む。これらの圧縮アルゴリズム及び展開アルゴリズムは、データファイルシステムによってデータファイルを圧縮及び展開するために利用され得る。新しい圧縮アルゴリズム及び展開アルゴリズムをいつでもデータベースに追加することができる。
【0048】
[0050] 一実施形態によれば、システム200のストレージ260は、本明細書で説明又はさもなければ想定する方法の1つ又は複数の機能又はステップを実行するための1つ又は複数のアルゴリズム、モジュール、及び/又は命令を記憶し得る。例えば、ストレージ260は、他の命令又はデータの中でも、属性識別命令262、圧縮器フォーミュレーション命令263、圧縮器選択命令264、記憶命令265、及び/又は報告命令266を備え得る。
【0049】
[0051] 一実施形態によれば、属性識別命令262は、システムによって受信されるデータファイル中の複数の異なる属性のうちの1つの属性を識別するようにシステムに指令する。属性はデータファイルからの任意の情報であり得る。ファイルデータシステムは、データファイル内の知られている属性を認識するように構成され得るか、又はデータファイル内の新しい又は認識されていない属性を予測又は推定又はさもなければ決定するように構成され得る。したがって、ファイルデータシステムは、多種多様な異なる方法を使用してデータファイル中の複数の異なる属性のうちの第1の属性を識別するように構成され得る。
【0050】
[0052] 一実施形態によれば、圧縮器構築命令263は、事前定義された複数の圧縮タイプ、アルゴリズム、及び/又は圧縮構成から複数の圧縮器を選択するようにシステムに指令する。圧縮タイプ、アルゴリズム、及び/又は圧縮構成は、限定はしないが、圧縮及び展開アルゴリズムデータベース280を含む任意のソースから、ローカル又はリモートで選択され得る。圧縮器構築命令263はまた、識別された圧縮器及び/又は圧縮構成を使用して属性データの一部又は全部を個別に圧縮するようにシステムに指令する。複数の圧縮器によるこの個別の圧縮は連続的に又は同時に実行され得る。一実施形態によれば、各圧縮器は第1の属性データのサブセットのみを圧縮し、サブセットは、複数の圧縮器の中での圧縮メトリクスのより客観的な比較を可能にするために各圧縮器について同等のサブセットである。別の実施形態によれば、各圧縮器はすべての第1の属性データを圧縮する。
【0051】
[0053] 実施形態によれば、圧縮器構築命令263はまた、各圧縮器による各個別の圧縮について1つ又は複数の圧縮メトリクスを測定又はさもなければ取得又は識別するようにシステムに指令する。これにより、複数の圧縮器及び/又は圧縮構成の中での圧縮性能の客観的な比較と、第1の属性データのための好ましい圧縮器及び/又は圧縮構成の選択とが可能になる。一実施形態によれば、圧縮メトリクスは、圧縮比、処理時間、圧縮精度、及び/又は任意の他の圧縮メトリックであり得る。
【0052】
[0054] 一実施形態によれば、圧縮器選択命令264は、測定又は取得されたメトリクスを使用して、選択された複数の圧縮タイプ、アルゴリズム、及び/又は圧縮構成のいずれが圧縮のために最も好適であるかを決定するようにシステムに指令する。ファイル圧縮/展開システムは、各個別の圧縮器及び/又は圧縮構成に対応するメトリクスを比較、ランク付け、又はさもなければ利用することができ、好ましい圧縮器及び/又は圧縮構成を選択する。例えば、圧縮が複数の選択された圧縮タイプのうちの他の圧縮タイプに対してより高い又は最良の圧縮比及び/又はより速い処理時間を含むとき、圧縮器及び関連する構成は圧縮のために最も好適又は好ましいものであり得る。一実施形態によれば、属性に適用されるべき圧縮器のマニュアル選択を促進するために、異なる圧縮器構成及び対応するメトリクスを、ユーザインターフェースを介してユーザに提示することができる。
【0053】
[0055] 一実施形態によれば、記憶命令265は、圧縮パラメータデータファイルなど、圧縮パラメータデータ構造を生成するようにシステムに指令する。一実施形態によれば、生成された圧縮パラメータデータ構造は、少なくとも第1の識別された属性のための選択された圧縮器及び/又は圧縮構成の識別、及び/又はそのような圧縮器及び/又は圧縮構成のための仕様を含む。圧縮パラメータデータファイルは、圧縮器設定及び他の情報を含む、圧縮器を利用するために必要な任意の情報を含むことができる。記憶命令265はまた、記憶されたファイルを圧縮されたデータファイルの展開のために取り出し、使用することができるように、生成された圧縮パラメータデータ構造を記憶するようにシステムに指令することができる。圧縮パラメータデータ構造は、ファイル圧縮/展開システム200の構成要素であるか、又はさもなければファイル圧縮/展開システム200と通信し得るし、リモート又はローカルデータベースに記憶され得る。例えば、圧縮パラメータデータ構造は、圧縮されたデータファイルと一緒に記憶され得るか、又は圧縮されたデータファイルへの又は圧縮されたデータファイルからの参照とともに記憶される。
【0054】
[0056] 一実施形態によれば、報告命令266は、システムのユーザインターフェース240を介して、圧縮、データファイル、及び/又は圧縮器についての情報を与えるようにシステムに指令する。与えられる情報は、本明細書で説明又はさもなければ想定する何らかの情報であり得る。本システムは、限定はしないが、視覚表示、可聴通知、テキストメッセージ、電子メール、ページ、又は任意の他の通知方法を含む、任意の機構を介してその情報をユーザに与え得る。
【0055】
[0057] 圧縮器を指定するためのユニフォームインターフェース
[0058] 一実施形態によれば、ファイル圧縮/展開システムは圧縮器パラメータセットを含む。圧縮器パラメータセットは、属性データの符号化と復号とのために必要とされるすべての命令とデフォルトパラメータとを含む、圧縮器構成を含んでいるデータ構造であり、圧縮されたデータとともに記憶されるべきである。各圧縮器構成は、属性との各圧縮器構成の関連を指定するために使用されるべき一意のIDと、それぞれ以下の要素のうちの1つ又は複数からなる圧縮器ステップのシーケンスとを搬送する。
【0056】
[0059] (i)圧縮器ステップの一意のID。
【0057】
[0060] (ii)ステップにおいて適用されるべきアルゴリズムのタイプ及びID。一実施形態によれば、データ表現のフォーマットを変更することと、確率モデリングによって固定長シンボルを圧縮されたビットストリームに変換することとを伴う、2つの広義のタイプのアルゴリズム、すなわち、変換と圧縮とがある。アルゴリズムIDは、指定されたタイプの知られているアルゴリズムを参照する事前定義されたコードである。データを処理するために、参照されているすべてのアルゴリズムがインストールされ、エンコーダ又はデコーダにアクセス可能にされなければならない。
【0058】
[0061] (iii)アルゴリズムへのデフォルトパラメータのリスト。各パラメータは、パラメータ名と、データタイプと、パラメータ中の値の数と、パラメータ値とから構成される。
【0059】
[0062] (iv)アルゴリズムへの入力変数の数及び入力変数名。変数名は、1つの圧縮器ステップから別の圧縮器ステップに渡されるべきデータオブジェクトを参照するためにのみ使用されることに留意されたい。アルゴリズムに対して、それは、認識された、入力変数名の順序によって指定された、入力データオブジェクトの順序である。第1のステップの場合、入力データは未加工属性値でなければならないので、入力変数名を指定する必要がなく、入力変数の数を0に設定することができる。第2のステップ以降、各入力変数名は前のステップにおける出力変数名と一致しなければならない。
【0060】
[0063] (v)アルゴリズムによって生成されたデータオブジェクトの順序付けされたリストを保持するための出力変数の数、並びに各出力変数の状態及び名前。出力変数がさらなる処理を必要としない場合、それの状態は完了であり、データオブジェクトは圧縮器の出力バッファに直接進むべきであるので、それの変数名を省略することができる。出力変数が後続のステップによって処理される必要がある場合、変数状態は不完了であり、変数名を指定しなければならない。
【0061】
[0064] (vi)アルゴリズムを実行するためにそれの値が必要とされる依存性属性の数。依存性属性のIDは、関連付けられた属性の構成中に与えられるべきである。
【0062】
[0065] 表1を参照すると、上記で説明した圧縮器構成の重要な要素をキャプチャする、圧縮器パラメータセットの例示的なシンタックスであり、表の後にはセマンティクスについての説明が与えられている。個々のフィールドの名前、順序付け及びデータタイプは機能への影響なしに変更することができることに留意されたい。データタイプの表記法に関して、u(n)は、nビットを使用する符号なし整数を示し、u(v)は、他のシンタックス要素の値に応じたビットの数をもつ符号なし整数を示し、f(n)は、nビットを使用する固定パターンビットストリングを示し、st(v)は、変数長をもつヌル終端されたストリングを示す。
【0063】
[0066] 表1.圧縮器パラメータセットシンタックス
【表1】
【0064】
[0067] 一実施形態によれば、以下の圧縮器パラメータセットセマンティクスである。
【0065】
[0068] compressor_IDは注釈テーブル内の圧縮器の一意識別子である。値0は圧縮なしのために確保されることに留意されたい。
【0066】
[0069] n_compressor_stepsはこの圧縮器構成における処理ステップの総数である。各圧縮器ステップiについて、以下のフィールドが指定される。(i)compressor_step_ID[i]は圧縮器ステップの識別子である。(ii)algorithm_ID[i]は、このステップにおいて適用されるべきアルゴリズムの識別子である。各アルゴリズムタイプはそれ自体のIDマップを有するべきである。(iii)use_default_pars[i]はフラグであり、1に設定された場合、アルゴリズムのデフォルトパラメータが使用されることを示し、したがってパラメータに対する変更は不要である。
【0067】
[0070] n_in_vars[i]はアルゴリズムのための入力変数の数である。第1のステップ(i==0)の場合、入力は未加工属性値でなければならないので、それの値を0に設定するべきである。
【0068】
[0071] アルゴリズムのための各入力変数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である。
【0069】
[0072] n_completed_out_vars[i]は、さらなる処理を必要とせず、圧縮器の出力バッファに直接進むことができる、アルゴリズムの完了した出力変数の数である。
【0070】
[0073] completed_out_var_ID[i][j]は、完了であり、さらなる処理を必要としない、アルゴリズムに知られている出力変数の事前定義されたIDを指定する。
【0071】
[0074] nesting_zero_bitは、データ構造のバイトアラインメントを保証するために必要に応じて挿入される、0に設定された1ビットである。
【0072】
[0075] 一実施形態によれば、アルゴリズムパラメータは、algorithm_IDによって参照されるアルゴリズムのパラメータ設定を指定するためのデータ構造である。表2を参照すると、アルゴリズムパラメータのための例示的なシンタックスの表である。
【0073】
[0076] 表2.アルゴリズムパラメータシンタックス
【表2】
【0074】
[0077] 一実施形態によれば、以下のアルゴリズムパラメータセマンティクスである。
【0075】
[0078] n_parsは、algorithm_IDによって参照されるアルゴリズムを実行するために修正される必要があるパラメータの数である。それの値は、アルゴリズムにおいて定義されたパラメータの数よりも大きくなってはならない。
【0076】
[0079] 修正されている各パラメータiについて、以下のフィールドが必要とされる。(i)par_ID[i]は、アルゴリズムにおいて定義されるパラメータのうちの1つの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)に等しく、余分な次元を省略することができる。
【0077】
[0080] データ属性と関連する圧縮器構成とを指定するためのユニフォームインターフェース
[0081] 一実施形態によれば、ファイル圧縮/展開システムは属性パラメータセットを含む。属性パラメータセットは、何らかの基本情報とそれの処理のための圧縮器構成とを含む、属性の構成を含んでいるデータ構造である。以下は重要な要素である。(i)属性の一意のID及び名前、(ii)データタイプ情報、並びに属性のデフォルト値及び欠損値、(iii)属性の処理のための圧縮器のID、それは、圧縮器パラメータセットにおいて定義された圧縮器IDのうちの1つでなければならない。(iv)圧縮器ステップの選択されたパラメータへの修正、及び(v)それのデータがいくつかの圧縮器ステップによる処理のために必要とされる、依存性変数(属性又はデスクリプタ)のID。
【0078】
[0082] 表3を参照すると、上記で説明した属性構成の重要な要素をキャプチャする、属性パラメータセットの例示的シンタックスであり、表の後にはセマンティクスについての説明が与えられている。個々のフィールドの名前、順序付け及びデータタイプは機能への影響なしに変更することができることに留意されたい。データタイプ表記法は表1と同じである。属性パラメータセットは、それらのパラメータと、グループ化と、順序付けと、関連する圧縮器とを含む、追加の属性の定義を含んでいる。
【0079】
[0083] 表3.属性パラメータセットシンタックス
【表3】
【0080】
[0084] 一実施形態によれば、以下の属性パラメータセットセマンティクスである。
【0081】
[0085] attribute_IDは、注釈パラメータセット内で一意の、属性の識別子である。
【0082】
[0086] attribute_name_lenは属性名の長さである。
【0083】
[0087] attribute_nameは、長さattribute_name_lenをもつ属性の名前である。
【0084】
[0088] attribute_typeは属性のデータタイプを指定する。
【0085】
[0089] attribute_num_array_dimsは属性エントリの配列次元の数を指定し、それがスカラー値である場合、0である。
【0086】
[0090] attribute_array_dims[]は、それぞれ配列次元のサイズを指定する要素を含んでいる。それは、attribute_num_array_dims=0である場合に省略される。
【0087】
[0091] attribute_default_valueは属性のデフォルト値である(すなわち、デフォルトに等しい大部分の値が除外されるとき、それをスパース符号化のために使用することができる)。
【0088】
[0092] attribute_missing_valueは、復号プロセスの後に出力においてヌル値の代わりに使用されるべき属性の欠損値である。
【0089】
[0093] compressor_IDは、現在の属性の処理のために使用されたcompressor_parameter_setにおいて定義されるcompressor_IDである。
【0090】
[0094] n_steps_with_dependenciesは、依存性変数を伴うcompressor_IDによって参照される、圧縮器におけるステップの数である。
【0091】
[0095] 指定される必要がある依存性変数をもつ各圧縮器ステップiについて、(i)compressor_step_ID[i]は圧縮器ステップのIDであり、(ii)n_dependencies[i]は、圧縮器ステップのアルゴリズムによって必要とされる依存性変数の数である。
【0092】
[0096] アルゴリズムの各依存性変数jについて、(i)dependency_var_ID[i][j]は、アルゴリズムに知られている依存性変数の事前定義されたIDであり、(ii)dependency_is_attribute[i][j]はフラグであり、1に設定された場合、依存性データは属性に記憶されることを示し、他の場合、依存性データはデスクリプタとして記憶され、(iii)dependency_ID[i][j]は、依存性データを含んでいる属性又はデスクリプタのIDを指定する。IDの長さは、属性の場合は16ビットであり、デスクリプタの場合は8ビットであることに留意されたい。
【0093】
[0097] nesting_zero_bitは、データ構造のバイトアラインメントを保証するために必要に応じて挿入される、0に設定された1ビットである。
【0094】
[0098] 圧縮器構成に基づく符号化アルゴリズム
[0099] 一実施形態によれば、未加工属性データの符号化は、関連する圧縮器構成において定義された圧縮器ステップの逐次実行によって行われる。符号化アルゴリズムは以下のように概説される。
【0095】
[00100] 1.処理されている属性とそれの関連する圧縮器との構成(パラメータセット)を取り出す。
【0096】
[00101] 2.属性構成における属性固有のパラメータ値を用いて圧縮器構成からのデフォルトパラメータ値をオーバーライドすることによって、属性のためにカスタマイズされた圧縮器構成を得る。
【0097】
[00102] 3.各圧縮器ステップを最初から最後まで連続的に実行する。各圧縮器ステップiについて、
a.アルゴリズムIDを使用して変換/圧縮アルゴリズムをルックアップする。
b.アルゴリズムIDを見つけることができない場合、安全な伝送チャネルを通して、認証されたソフトウェアリポジトリから対応するアルゴリズムをダウンロードし、インストールする許可をユーザに促す。
c.ステップについて定義された依存性変数がある場合、dependency_is_attribute[i][]とdependency_ID[i][]とによって指定された、対応する属性又はデスクリプタからの依存性変数の復号されたデータを得る。
d.ステップに関連付けられたパラメータ値と依存性変数のデータオブジェクトとを使用して、入力変数のデータオブジェクトに変換/圧縮アルゴリズムを適用する。それが第1のステップである場合、未加工属性データは処理されている唯一の入力データオブジェクトである。生成された出力は、データオブジェクトとそれらの対応する変数IDとのリストからなる。
e.出力変数が完了したとして指定される場合は、それのデータオブジェクトを圧縮器の出力バッファ中に配置するべきである。他の場合は、さらなる処理のために後続のステップによって、それのステップと変数IDとを通してルックアップされるように、そのデータオブジェクトをデータマップに記憶するべきである。各符号化されたデータブロック/オブジェクトは、それのデータタイプと配列形態とを保存するために、本明細書で指定するように、typed_data構造を使用して記憶されることに留意されたい。
【0098】
[00103] 表4.タイプされたデータシンタックス
【表4】
f.最後のステップの場合、符号化されたブロックの連接である、出力バッファのコンテンツを戻す。
【0099】
[00104] 一実施形態による、関連する圧縮器構成に基づく上記の属性データ符号化アルゴリズムの擬似コードが表5に与えられている。
【0100】
[00105] 表5.属性データ符号化アルゴリズムの擬似コード
【表5】
【0101】
[00106] 圧縮器構成に基づく復号アルゴリズム
[00107] 一実施形態によれば、ファイル圧縮/展開システムは属性復号プロセスを含む。圧縮された属性データの復号は、最後のステップから開始し第1のステップまでアルゴリズムの段階的な逆演算によって、関連する圧縮器構成において定義された圧縮器ステップの逆を伴う。復号アルゴリズムは以下のように概説される。
【0102】
[00108] 1.処理されている属性とそれの関連する圧縮器との構成(パラメータセット)を取り出す。
【0103】
[00109] 2.圧縮された属性ストリームから、それぞれ圧縮器ステップにおいて定義された完了した出力変数に対応する、1つ又は複数の符号化されたブロックを抽出する。各符号化されたブロックは、それのデータタイプと配列形態とを保存するために、表4において指定されたtyped_data構造を使用して記憶される。
【0104】
[00110] 3.最後のステップから開始し第1のステップに到達するまで、各圧縮器ステップの逆演算を逆順に実行する。各圧縮器ステップiについて、
a.上記ステップ2における符号化されたブロック、又はそれのアップストリーム復号ステップの出力変数のいずれかから、現在のステップのすべての入力変数データを収集する。
b.現在のステップについて定義された依存性変数がある場合、dependency_is_attribute[i][]とdependency_ID[i][]とによって指定された、対応する属性又はデスクリプタからの依存性変数の復号されたデータを得る。
c.圧縮器パラメータセットから、現在のステップについてのデフォルトパラメータ設定に対する変化を取り出す。
d.関連するパラメータ設定と任意の依存性変数データとを使用して、現在のステップについて指定されたアルゴリズムの逆演算を入力変数データに適用する。
e.それが第1のステップに到達していない場合、ルックアップのためのキーとしてステップIDと変数IDとのペアを使用して、後続の復号ステップによってさらに処理されるべき出力変数データを記憶する。
f.それが第1のステップに到達している場合、欠損値を埋め、圧縮器によって復号された属性データとして逆演算の出力変数データを戻す。
【0105】
[00111] 関連する圧縮器構成に基づく属性復号プロセスのステップが以下の表に与えられている。attribute_streamの初期値は、それのインデックスによって参照されるタイル中の符号化された属性データであることに留意されたい。コード内で宣言又は初期化されない他の変数は、属性に関連付けられた圧縮器IDによって参照される圧縮器パラメータセットにおいて定義される。
【0106】
【0107】
[00113] 圧縮器構成の自動決定のための機構
[00114] 知られている普及したファイルタイプの場合、圧縮器構成をデータ圧縮エキスパートのグループがあらかじめ定義し、コミュニティによる使用のために採用することができるが、圧縮器構成を指定する必要があるとき、例えば、新しい又は排他的ファイルタイプを処理するとき、又は知られているタイプのファイルが予定外の属性の包含を可能にするときがある。1つの可能な方法は、場合によっては、異なるオプションと説明とを提供するグラフツールの助けを借りて、ユーザに圧縮器構成を手動で指定させることである。この手法は、しかしながら、データ圧縮に関する多くのユーザ知識及び経験を必要とし、しばしば準最適な構成を生じる。
【0108】
[00115] したがって、性能に基づく圧縮器構成の自動決定のための機構が提供される。本システムは、選択のために利用可能な、利用可能な変換及び圧縮アルゴリズムのリストを含むことができ、各々について、アルゴリズムが処理することができるデータのタイプと、アルゴリズム間の可能な接続とが知られている。機構は以下のように働くことができる。ファイル中の各属性について、
[00116] 1.利用可能なアルゴリズムと、圧縮器ステップの最大許容数、及びステップのシーケンスにおける循環の禁止など、追加の制約とがわかっていれば、属性のためのすべての可能な圧縮器構成を識別する。
[00117] 2.圧縮比及び処理時間などのメトリクスを用いて各圧縮器構成の性能を評価する。それは、圧縮されているファイルからのデータのサブセットに対して、又は特定のファイルタイプのための圧縮器構成テンプレートを構築するためのトレーニングファイルに対して行われ得る。プロセスをスピードアップするために、評価を並列に実行することができる。
[00118] 3.最も高い圧縮比と、すべての構成の中で最初の4分の1に入る処理時間とをもつ圧縮器構成など、性能基準に基づいて属性のための最良の圧縮器構成を選択する。
[00119] 各属性について最良の圧縮器構成を選択した後に、
[00120] 4.ファイルの処理のために必要とされるすべての命令とパラメータとを含んでいる属性と圧縮器パラメータセットデータ構造を生成する。
[00121] 5.生成された属性及び圧縮器構成が同じタイプの他のファイルに適用されるものである場合、それらのデータ構造をリポジトリに記憶し、ファイルタイプ又はファイル拡張子による将来における使用のためにルックアップすることができる。
[00122] 6.ファイルを圧縮するために、エンコーダは、生成された構成を使用して、各属性に上述の符号化アルゴリズムを適用し、圧縮された属性データとともに構成データ構造を記憶することができる。
[00123] 7.圧縮されたファイルを復号するために、デコーダは、ファイルに付随する構成データを使用して、各属性に上述の復号アルゴリズムを適用することができる。
【0109】
[00124] 実施例1-スパース表現データのための圧縮器構成
[00125] 以下は、スパースシングルセルRNA表現データの圧縮のための属性及び圧縮器構成を適用する非限定的な例である。2つの圧縮器構成を評価した。
【0110】
[00126] 表7-シングルセル表現データの圧縮のための圧縮器構成1
【表7】
【0111】
[00127] 表7に要約された圧縮器構成1の場合、表現値の入力行列は、最初に、非0値をもつセルのみを登録する、3つの出力変数、すなわち、row_idxとcol_idxとvalueとを生成するスパース変換を受ける。次いで、ステップ1からの出力変数の各々にBSC圧縮が単独で適用され、その結果、圧縮器ステップにおいてそれらが定義された順序で連接された3つのデータブロックからなる符号化されたデータストリームが生じる。
【0112】
[00128] 表8-シングルセル表現データの圧縮のための圧縮器構成2
【表8】
【0113】
[00129] 表8に要約された圧縮構成2の場合、第1の構成のように、表現値の入力行列は、最初に、3つの出力変数、すなわち、row_idxとcol_idxとvalueとを生成するスパース変換を受ける。変数row_idx_deltaに記憶されるデルタ値を生成するために、デルタ変換がrow_idxに適用され、デルタ値は、次いでBSCアルゴリズムによって圧縮される。2つの出力変数、すなわち、col_idx_valとcol_idx_countとを生成するために、ランレングス符号化(RLE)がcol_idxに適用され、col_idx_val及びcol_idx_countは、次いでBSCによって単独で圧縮される。ステップ1からのvalue変数中のデータはBSCによって直接圧縮される。これにより、圧縮器ステップにおいてそれらが定義されたように連接された4つのデータブロックからなる符号化されたデータストリームが生じる。
【0114】
[00130] 性能を評価するために、圧縮前に152MBのサイズをもつ、Market Matrixフォーマットのファイルに記憶されたシングルセルRNA表現データに2つの圧縮器構成を適用した。Gzip及びBSCによる直接圧縮の後に、ファイルサイズはそれぞれ47MB及び42MBになった。
【0115】
[00131] 表9は、符号化アルゴリズムを使用して圧縮器構成1及び2を適用した後の様々なデータサイズを要約している。BSCによる直接圧縮の後の42MBのファイルサイズに関して、圧縮器構成1及び2の圧縮比はそれぞれ5.19及び3.68である。圧縮器構成1は圧縮比に関してより良い性能を有するので、圧縮器構成は、一般にスパース表現データの圧縮に使用するために選択されるべきである。
【0116】
[00132] 表9-圧縮器構成1及び2についての圧縮データサイズ
【表9】
【0117】
[00133] 本実施例は、本方法が、(BSCによる直接圧縮など)従来技術の方法に対して、圧縮されたデータファイルのサイズを著しく低減することを証明する。これは、ファイル圧縮/展開システムの機能及び効率を改善し、コンピュータシステム又はデータベースの記憶能力に革命を起こす。さらに、1つ又は複数の属性の各々について数百万個又は何十億個ものデータ点を含むファイルを処理するとき、圧縮は、人間の心がペンと鉛筆とを用いても実行する能力を備えていないことである、数百万又は何十億もの計算を含む。
【0118】
[00134] 本明細書で定義し、使用するすべての定義は、辞書定義、参照により組み込まれる文書における定義、及び/又は定義された用語の通常の意味を統制することを理解されるべきである。
【0119】
[00135] 明細書及び特許請求の範囲において本明細書で使用される、単数形の要素は、明らかに反対に示されていない限り、「少なくとも1つ」を意味することを理解されるべきである。
【0120】
[00136] 明細書及び特許請求の範囲において本明細書で使用される、「及び/又は」というフレーズは、そのように結合された要素、すなわち、ある場合には接続的に存在する要素、及び他の場合には離接的に存在する要素の、「いずれか又は両方」を意味することを理解されるべきである。「及び/又は」を用いて記載される複数の要素は、同様に、すなわち、そのように結合された要素のうちの「1つ又は複数」と解釈されるべきである。「及び/又は」節によって明確に識別される要素以外の他の要素は、明確に識別されるそれらの要素に関係があってもなくても、随意に存在し得る。
【0121】
[00137] 明細書及び特許請求の範囲において本明細書で使用する際、「又は」は、上記で定義した「及び/又は」と同じ意味を有することを理解されるべきである。例えば、リスト中の項目を分離するとき、「又は」又は「及び/又は」は包括的であるとして解釈される、すなわち、いくつかの要素又は要素のリスト、及び、随意に、追加の記載されていないいくつかの項目又はそのような項目のリストの少なくとも1つを含むが、それらのうちの2つ以上をも含むとして解釈されるものとする。「のうちのただ1つ」又は「のうちの厳密に1つ」、又は、特許請求の範囲において使用されるとき、「からなる」など、明らかに反対に示されている用語のみが、いくつかの要素又は要素のリストのうちの厳密に1つの要素を含むことを指す。一般に、本明細書で使用する「又は」という用語は、「いずれか」、「のうちの1つ」、「のうちのただ1つ」又は「のうちの厳密に1つ」など、排他性の用語が後続するときに、排他的な代替を示す(すなわち「一方又は他方であるが、両方ではない」)としてのみ解釈されるものとする。
【0122】
[00138] 明細書及び特許請求の範囲において本明細書で使用する際、「少なくとも1つの」というフレーズは、1つ又は複数の要素のリストに関して、要素のリスト中の要素のうちのいずれか1つ又は複数から選択される少なくとも1つの要素を意味するが、必ずしも要素のリスト内に明確に記載されたありとあらゆる要素のうちの少なくとも1つを含み、要素のリスト中の要素の任意の組合せを除外しないとは限らないことを理解されるべきである。この定義はまた、要素が、「少なくとも1つの」というフレーズがそれを指す、要素のリスト内で明確に識別される要素以外に、明確に識別されるそれらの要素に関係があってもなくても、随意に、存在し得ることを可能にする。
【0123】
[00139] また、明らかに反対に示されていない限り、2つ以上のステップ又は行為を含む、本明細書でクレームされるいかなる方法においても、ステップの順序又は方法の行為は、必ずしもステップ又は方法の行為が具陳されている順序に限定されるとは限らないことを理解されるべきである。
【0124】
[00140] 特許請求の範囲において、並びに上記の明細書において、「有する」、「含む」、「搬送する」、「有している」、「含んでいる」、「伴う」、「保持する」、「から構成される」などのすべての移行句はオープンエンドである、すなわち、限定はしないが…を含む、を意味することが理解されるべきである。「からなる」及び「本質的に…からなる」という移行句のみは、それぞれクローズド又はセミクローズド移行句である。
【0125】
[00141] いくつかの発明的実施形態について本明細書で説明し、図示したが、当業者は、本明細書で説明する機能を実行するための、及び/又は本明細書で説明する結果及び/又は本明細書で説明する利点のうちの1つ又は複数を得るための、様々な他の手段及び/又は構造を容易に想定するであろう、及び、そのような変更及び/又は改変の各々は、本明細書で説明した発明的実施形態の範囲内であると考えられる。より一般的には、当業者は、本明細書で説明するすべてのパラメータ、寸法、材料、及び構成は例示的なものであること、及び実際のパラメータ、寸法、材料、及び/又は構成は、発明的教示がそれのために使用される特定の適用例又は複数の適用例に依存することを容易に理解するであろう。当業者は、ルーチン実験を使用するだけで、本明細書で説明した特定の発明的実施形態の多くの等価物を認識するか、又は確認することが可能であろう。したがって、上記の実施形態は単に例として提示されること、及び、添付の特許請求の範囲及びそれの等価物の範囲内で、具体的に説明し、クレームされるもの以外の発明的実施形態が実施され得ることが理解されるべきである。本開示の発明的実施形態は、本明細書で説明する各個々の特徴、システム、物品、材料、キット、及び/又は方法を対象とする。さらに、2つ又はそれ以上のそのような特徴、システム、物品、材料、キット、及び/又は方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、及び/又は方法が相互に矛盾しない場合、本開示の発明的範囲内に含まれる。
【国際調査報告】