(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-15
(54)【発明の名称】質スコア圧縮
(51)【国際特許分類】
G16B 50/50 20190101AFI20231108BHJP
【FI】
G16B50/50
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022575435
(86)(22)【出願日】2021-11-05
(85)【翻訳文提出日】2022-12-07
(86)【国際出願番号】 US2021058364
(87)【国際公開番号】W WO2022099097
(87)【国際公開日】2022-05-12
(32)【優先日】2020-11-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】500358711
【氏名又は名称】イルミナ インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ギヨーム・アレクサンドル・パスカル・リツク
(57)【要約】
核酸配列データを圧縮するための方法、システム、及びコンピュータプログラム。方法は、(i)読み取り配列と、(ii)複数の質スコアと、を表す核酸配列データを取得することと、読み取り配列が少なくとも1つのN塩基を含むかどうかを決定することと、読み取り配列が少なくとも1つのN塩基を含まないという決定に基づいて、第1のコード化プロセスを使用して、(xマイナス1)進法の数を使用して読み取り配列の質スコアの各々をコード化することによって、第1のコード化データセットを生成することであって、xが、核酸配列決定デバイスによって使用される異なる質スコアの数を表す整数である、生成することと、第2のコード化プロセスを使用して、第1のコード化データセットをコード化し、それによって、圧縮されるべきデータを圧縮することと、を含むことができる。
【特許請求の範囲】
【請求項1】
核酸配列データを圧縮するための方法であって、前記方法が、
1つ以上のコンピュータによって、
(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、
(ii)複数の質スコアであって、前記複数の質スコアの各質スコアは、前記読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく生成された尤度を示す、複数の質スコアと、を表す、核酸配列データを取得することと、
1つ以上のコンピュータによって、前記読み取り配列が少なくとも1つの「N」塩基を含むかどうかを決定することと、
前記読み取り配列が少なくとも1つの「N」塩基を含まないという決定に基づいて、1つ以上のコンピュータによって、第1のコード化プロセスを使用して、(xマイナス1)進法の数を使用して前記読み取り配列の前記質スコアの各々をコード化することによって、第1のコード化データセットを生成することであって、xが、前記核酸配列決定デバイスによって使用される異なる質スコアの数を表す整数である、生成することと、
1つ以上のコンピュータによって、第2のコード化プロセスを使用して、前記第1のコード化データセットをコード化し、それによって、圧縮されるべき前記データを圧縮することと、を含む、方法。
【請求項2】
xが、3に等しい、請求項1に記載の方法。
【請求項3】
前記第1のコード化プロセスが、1つ以上のコンピュータによって、前記読み取り配列の前記複数の質スコアのうちの5個の質スコアの各セットを、3進法の数として前記5個の質スコアのセットの各質スコアを表すことによって、単一のバイトにコード化することを含む、請求項2に記載の方法。
【請求項4】
前記読み取り配列が少なくとも1つの「N」塩基を含むという決定に基づいて、1つ以上のコンピュータによって、第3のコード化プロセスを使用して、前記読み取り配列の4個の質スコアの各セットをメモリの単一のバイトにコード化することによって、第2のコード化データセットを生成することと、
1つ以上のコンピュータによって、第4のコード化プロセスを使用して、前記第2のコード化データをコード化することと、を更に含む、請求項1に記載の方法。
【請求項5】
前記第2のコード化プロセスと前記第4のコード化プロセスが、同じである、請求項4に記載の方法。
【請求項6】
取得された前記データが、FASTQファイルを含む、請求項1に記載の方法。
【請求項7】
前記第1のコード化データセットが、前記複数の質スコアの圧縮バージョンである、請求項1に記載の方法。
【請求項8】
前記第2のコード化プロセスが、圧縮プロセスである、請求項1に記載の方法。
【請求項9】
前記圧縮プロセスが、範囲エンコーダの部分的マッチングによる予測(PPMD)の実装を含む、請求項8に記載の方法。
【請求項10】
前記第1のコード化データセットの所与の値について、前記所与の値が、前記第1のコード化データセット内の前記所与の値の位置に対して4ビットコンテキストに従って圧縮される、請求項9に記載の方法。
【請求項11】
核酸配列データを圧縮するためのシステムであって、前記システムが、
1つ以上のデータ処理装置と、
命令を記憶した1つ以上のコンピュータ可読記憶デバイスであって、前記命令が、前記1つ以上のデータ処理装置によって実行されると、前記1つ以上のデータ処理装置に動作を実施させ、前記動作が、
1つ以上のコンピュータによって、
(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、
(ii)複数の質スコアであって、前記複数の質スコアの各質スコアは、前記読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく生成された尤度を示す、複数の質スコアと、を表す核酸配列データを取得することと、
前記1つ以上のコンピュータによって、前記読み取り配列が少なくとも1つの「N」塩基を含むかどうかを決定することと、
前記読み取り配列が少なくとも1つの「N」塩基を含まないという決定に基づいて、前記1つ以上のコンピュータによって、第1のコード化プロセスを使用して、(xマイナス1)進法の数を使用して前記読み取り配列の前記質スコアの各々をコード化することによって、第1のコード化データセットを生成することであって、xが、前記核酸配列決定デバイスによって使用される異なる質スコアの数を表す整数である、生成することと、
前記1つ以上のコンピュータによって、第2のコード化プロセスを使用して、前記第1のコード化データセットをコード化し、それによって、圧縮されるべき前記データを圧縮することと、を含む、1つ以上のコンピュータ可読記憶デバイスと、を備える、システム。
【請求項12】
xが、3に等しい、請求項11に記載のシステム。
【請求項13】
前記第1のコード化プロセスが、前記1つ以上のコンピュータによって、前記読み取り配列の前記複数の質スコアのうちの5個の質スコアの各セットを、3進法の数として前記5個の質スコアのセットの各質スコアを表すことによって、単一のバイトにコード化することを含む、請求項12に記載のシステム。
【請求項14】
前記動作が、
前記読み取り配列が少なくとも1つの「N」塩基を含むという決定に基づいて、前記1つ以上のコンピュータによって、第3のコード化プロセスを使用して、前記読み取り配列の4個の質スコアの各セットをメモリの単一のバイトにコード化することによって、第2のコード化データセットを生成することと、
前記1つ以上のコンピュータによって、第4のコード化プロセスを使用して、前記第2のコード化データをコード化することと、を更に含む、請求項11に記載のシステム。
【請求項15】
前記第2のコード化プロセスと前記第4のコード化プロセスが、同じである、請求項14に記載のシステム。
【請求項16】
取得された前記データが、FASTQファイルを含む、請求項11に記載のシステム。
【請求項17】
前記第1のコード化データセットが、前記複数の質スコアの圧縮バージョンである、請求項11に記載のシステム。
【請求項18】
前記第2のコード化プロセスが、圧縮プロセスである、請求項11に記載のシステム。
【請求項19】
前記圧縮プロセスが、範囲エンコーダの部分的マッチングによる予測(PPMD)の実装を含む、請求項18に記載のシステム。
【請求項20】
前記第1のコード化データセットの所与の値について、前記所与の値が、前記第1のコード化データセット内の前記所与の値の位置に対して4ビットコンテキストに従って圧縮される、請求項19に記載のシステム。
【請求項21】
命令を記憶したコンピュータ可読記憶デバイスであって、前記命令が、データ処理装置によって実行されると、前記データ処理装置に動作を実施させ、前記動作が、
核酸配列データを取得することであって、前記核酸配列データが、
(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、
(ii)複数の質スコアであって、前記複数の質スコアの各質スコアは、前記読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく生成された尤度を示す、複数の質スコアと、を表す、取得することと、
1つ以上のコンピュータによって、前記読み取り配列が少なくとも1つの「N」塩基を含むかどうかを決定することと、
前記読み取り配列が少なくとも1つの「N」塩基を含まないという決定に基づいて、第1のコード化プロセスを使用して、(xマイナス1)進法の数を使用して前記読み取り配列の前記質スコアの各々をコード化することによって、第1のコード化データセットを生成することであって、xが、前記核酸配列決定デバイスによって使用される異なる質スコアの数を表す整数である、生成することと、
第2のコード化プロセスを使用して、前記第1のコード化データセットをコード化し、それによって、圧縮されるべき前記データを圧縮することと、を含む、コンピュータ可読記憶デバイス。
【請求項22】
xが、3に等しい、請求項21に記載のコンピュータ可読記憶デバイス。
【請求項23】
前記第1のコード化プロセスが、前記読み取り配列の前記複数の質スコアのうちの5個の質スコアの各セットを、3進法の数として前記5個の質スコアのセットの各質スコアを表すことによって、単一のバイトにコード化することを含む、請求項22に記載のコンピュータ可読記憶デバイス。
【請求項24】
前記動作が、
前記読み取り配列が少なくとも1つの「N」塩基を含むという決定に基づいて、第3のコード化プロセスを使用して、前記読み取り配列の4個の質スコアの各セットをメモリの単一のバイトにコード化することによって、第2のコード化データセットを生成することと、
第4のコード化プロセスを使用して、前記第2のコード化データをコード化することと、を更に含む、請求項21に記載のコンピュータ可読記憶デバイス。
【請求項25】
前記第2のコード化プロセスと前記第4のコード化プロセスが、同じである、請求項24に記載のコンピュータ可読記憶デバイス。
【請求項26】
取得された前記データが、FASTQファイルを含む、請求項21に記載のコンピュータ可読記憶デバイス。
【請求項27】
前記第1のコード化データセットが、前記複数の質スコアの圧縮バージョンである、請求項21に記載のコンピュータ可読記憶デバイス。
【請求項28】
前記第2のコード化プロセスが、圧縮プロセスである、請求項21に記載のコンピュータ可読記憶デバイス。
【請求項29】
前記圧縮プロセスが、範囲エンコーダの部分的マッチングによる予測(PPMD)の実装を含む、請求項28に記載のコンピュータ可読記憶デバイス。
【請求項30】
前記第1のコード化データセットの所与の値について、前記所与の値が、前記第1のコード化データセット内の前記所与の値の位置に対して4ビットコンテキストに従って圧縮される、請求項29に記載のコンピュータ可読記憶デバイス。
【請求項31】
核酸配列データを圧縮するための方法であって、前記方法が、
1つ以上のコンピュータによって、
(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、
(ii)複数の質スコアであって、前記複数の質スコアの各質スコアは、前記読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく生成された尤度を示す、複数の質スコアと、を表す核酸配列データを取得することと、
1つ以上のコンピュータによって、前記複数の質スコアにおける各質スコアグループの発生頻度を決定することであって、各質スコアグループが、前記複数の質スコアのうちの質スコアのサブセットを含む、決定することと、
前記複数の質スコアの第1のサブセットにおける各特定の質スコアについて、
1つ以上のコンピュータによって、前記質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであると決定すること、及び
前記質スコアが前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであるという決定に基づいて、1つ以上のコンピュータによって、かつ所定のグループマッピングを使用して、低減された配列内の単一のエントリとして使用される第1のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第1のデータが、前記特定の質スコアグループを表す、生成すること、を行うことと、
1つ以上のコンピュータによって、前記特定の質スコアグループの各々について生成された前記第1のデータを集約することによって前記低減された配列を生成することと、を含む、方法。
【請求項32】
取得された前記データが、FASTQファイルを含む、請求項31に記載の方法。
【請求項33】
前記複数の質スコアにおける各質スコアが、前記質スコアのASCII値を表すデータである、請求項31に記載の方法。
【請求項34】
前記複数の質スコアの第2のサブセットにおける各特定の質スコアについて、
1つ以上のコンピュータによって、前記質スコアの前記配列の前記第2のサブセットにおける前記特定の質スコアが、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではないと決定することと、
1つ以上のコンピュータによって、かつ所定の単一のマッピングを使用して、低減された配列内の単一のエントリとして使用される第2のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第2のデータが、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアを表し、前記所定の単一のマッピングが、複数の単一の質スコアの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、生成することと、を更に含む、請求項31に記載の方法。
【請求項35】
1つ以上のコンピュータによって、前記低減された配列を生成することが、
1つ以上のコンピュータによって、前記特定の質スコアグループの各々について生成された前記第1のデータを集約することと、
1つ以上のコンピュータによって、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアの各々について生成された前記第2のデータを集約することと、を含む、請求項34に記載の方法。
【請求項36】
1つ以上のコンピュータによって、前記複数の質スコアにおける複数の質スコアグループを識別することを更に含む、請求項31に記載の方法。
【請求項37】
前記所定のグループマッピングが、複数の異なる質スコアグループの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、請求項31に記載の方法。
【請求項38】
核酸配列データを圧縮するためのシステムであって、前記システムが、
1つ以上のデータ処理装置と、
命令を記憶した1つ以上のコンピュータ可読記憶デバイスであって、前記命令が、前記1つ以上のデータ処理装置によって実行されると、前記1つ以上のデータ処理装置に動作を実施させ、前記動作が、
1つ以上のコンピュータによって、
(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、
(ii)複数の質スコアであって、前記複数の質スコアの各質スコアは、前記読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく生成された尤度を示す、複数の質スコアと、を表す核酸配列データを取得することと、
前記1つ以上のコンピュータによって、前記複数の質スコアにおける各質スコアグループの発生頻度を決定することであって、各質スコアグループが、前記複数の質スコアのうちの質スコアのサブセットを含む、決定することと、
前記複数の質スコアの第1のサブセットにおける各特定の質スコアについて、
前記1つ以上のコンピュータによって、前記質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであると決定すること、
前記質スコアが前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであるという決定に基づいて、前記1つ以上のコンピュータによって、かつ所定のグループマッピングを使用して、低減された配列内の単一のエントリとして使用される第1のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第1のデータが、前記特定の質スコアグループを表す、生成すること、を行うことと、
前記1つ以上のコンピュータによって、前記特定の質スコアグループの各々について生成された前記第1のデータを集約することによって前記低減された配列を生成することと、を含む、1つ以上のコンピュータ可読記憶デバイスと、を備える、システム。
【請求項39】
取得された前記データが、FASTQファイルを含む、請求項38に記載のシステム。
【請求項40】
前記複数の質スコアにおける各質スコアが、前記質スコアのASCII値を表すデータである、請求項38に記載のシステム。
【請求項41】
前記動作が、
前記複数の質スコアの第2のサブセットにおける各特定の質スコアについて、
前記1つ以上のコンピュータによって、前記質スコアの前記配列の前記第2のサブセットにおける前記特定の質スコアが、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではないと決定することと、
前記1つ以上のコンピュータによって、かつ所定の単一のマッピングを使用して、低減された配列内の単一のエントリとして使用される第2のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第2のデータが、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアを表し、前記所定の単一のマッピングが、複数の単一の質スコアの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、生成することと、を更に含む、請求項38に記載のシステム。
【請求項42】
前記1つ以上のコンピュータによって、前記低減された配列を生成することが、
前記1つ以上のコンピュータによって、前記特定の質スコアグループの各々について生成された前記第1のデータを集約することと、
前記1つ以上のコンピュータによって、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアの各々について生成された前記第2のデータを集約することと、を含む、請求項41に記載のシステム。
【請求項43】
前記1つ以上のコンピュータによって、前記複数の質スコアにおける複数の質スコアグループを識別することを更に含む、請求項38に記載のシステム。
【請求項44】
前記所定のグループマッピングが、複数の異なる質スコアグループの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、請求項38に記載のシステム。
【請求項45】
命令を記憶したコンピュータ可読記憶デバイスであって、前記命令が、データ処理装置によって実行されると、前記データ処理装置に動作を実施させ、前記動作が、
核酸配列データを取得することであって、前記核酸配列データが、
(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、
(ii)複数の質スコアであって、前記複数の質スコアの各質スコアは、前記読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく生成された尤度を示す、複数の質スコアと、を表す、取得することと、
前記複数の質スコアにおける各質スコアグループの発生頻度を決定することであって、各質スコアグループが、前記複数の質スコアのうちの質スコアのサブセットを含む、決定することと、
前記複数の質スコアの第1のサブセットにおける各特定の質スコアについて、
前記質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであると決定すること、
前記質スコアが前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであるという決定に基づいて、所定のグループマッピングを使用して、低減された配列内の単一のエントリとして使用される第1のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第1のデータが、前記特定の質スコアグループを表す、生成すること、を行うことと、
前記特定の質スコアグループの各々について生成された前記第1のデータを集約することによって前記低減された配列を生成することと、を含む、コンピュータ可読記憶デバイス。
【請求項46】
取得された前記データが、FASTQファイルを含む、請求項45に記載のコンピュータ可読記憶デバイス。
【請求項47】
前記複数の質スコアにおける各質スコアが、前記質スコアのASCII値を表すデータである、請求項45に記載のコンピュータ可読記憶デバイス。
【請求項48】
前記動作が、
前記複数の質スコアの第2のサブセットにおける各特定の質スコアについて、
前記質スコアの前記配列の前記第2のサブセットにおける前記特定の質スコアが、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではないと決定することと、
所定の単一のマッピングを使用して、低減された配列内の単一のエントリとして使用される第2のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第2のデータが、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアを表し、前記所定の単一のマッピングが、複数の単一の質スコアの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、生成することと、を更に含む、請求項45に記載のコンピュータ可読記憶デバイス。
【請求項49】
前記低減された配列を生成することが、
前記特定の質スコアグループの各々について生成された前記第1のデータを集約することと、
前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアの各々について生成された前記第2のデータを集約することと、を含む、請求項48に記載のコンピュータ可読記憶デバイス。
【請求項50】
前記動作が、前記複数の質スコアにおける複数の質スコアグループを識別することを更に含む、請求項45に記載のコンピュータ可読記憶デバイス。
【請求項51】
前記所定のグループマッピングが、複数の異なる質スコアグループの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、請求項45に記載のコンピュータ可読記憶デバイス。
【請求項52】
核酸配列データを圧縮するための方法であって、前記方法が、
1つ以上のコンピュータによって、
(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、
(ii)複数の質スコアであって、前記複数の質スコアの各質スコアは、前記読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく識別された尤度を示す、複数の質スコアと、を表す核酸配列データを取得することと、
1つ以上のコンピュータによって、前記複数の質スコアにおける各質スコアグループの発生頻度を決定することであって、各質スコアグループが、前記複数の質スコアのうちの質スコアのサブセットを含む、決定することと、
前記複数の質スコアの第1のサブセット内の各特定の質スコアについて、1つ以上のコンピュータによって、前記複数の質スコアの前記第1のサブセットにおける前記特定の質スコアが、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではないと決定すること、及び
1つ以上のコンピュータによって、かつ所定の単一のマッピングを使用して、低減された配列内の単一のエントリとして使用される第1のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第1のデータが、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアを表す、生成すること、を行うことと、
1つ以上のコンピュータによって、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアの各々につい生成されたて前記第1のデータを集約することによって前記低減された配列を生成することと、を含む、方法。
【請求項53】
取得された前記データが、FASTQファイルを含む、請求項52に記載の方法。
【請求項54】
前記複数の質スコアにおける各質スコアが、前記質スコアのASCII値を表すデータである、請求項52に記載の方法。
【請求項55】
前記方法が、
前記複数の質スコアの第2のサブセットにおける各特定の質スコアについて、
1つ以上のコンピュータによって、前記質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであると決定することと、
前記質スコアが前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであるという決定に基づいて、1つ以上のコンピュータによって、かつ所定のグループマッピングを使用して、低減された配列内の単一のエントリとして使用される第2のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第2のデータが、前記特定の質スコアグループを表し、前記所定のグループマッピングが、複数の異なる質スコアグループの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、生成することと、を更に含む、請求項52に記載の方法。
【請求項56】
1つ以上のコンピュータによって、前記低減された配列を生成することが、
1つ以上のコンピュータによって、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアの各々について生成された前記第1のデータを集約することと、
1つ以上のコンピュータによって、前記特定の質スコアグループの各々について生成された前記第2のデータを集約することと、を含む、請求項55に記載の方法。
【請求項57】
前記方法が、
1つ以上のコンピュータによって、前記複数の質スコアにおける複数の質スコアグループを識別することを更に含む、請求項52に記載の方法。
【請求項58】
前記所定の単一のマッピングが、複数の単一の質スコアの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、請求項52に記載の方法。
【請求項59】
核酸配列データを圧縮するためのシステムであって、前記システムが、
1つ以上のデータ処理装置と、
命令を記憶した1つ以上のコンピュータ可読記憶デバイスであって、前記命令が、前記1つ以上のデータ処理装置によって実行されると、前記1つ以上のデータ処理装置に動作を実施させ、前記動作が、
1つ以上のコンピュータによって、
(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、
(ii)複数の質スコアであって、前記複数の質スコアの各質スコアは、前記読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく識別された尤度を示す、複数の質スコアと、を表す核酸配列データを取得することと、
前記1つ以上のコンピュータによって、前記複数の質スコアにおける各質スコアグループの発生頻度を決定することであって、各質スコアグループが、前記複数の質スコアのうちの質スコアのサブセットを含む、決定することと、
前記複数の質スコアの第1のサブセットにおける各特定の質スコアについて、
前記1つ以上のコンピュータによって、前記複数の質スコアの前記第1のサブセットにおける前記特定の質スコアが、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではないと決定すること、及び
前記1つ以上のコンピュータによって、かつ所定の単一のマッピングを使用して、低減された配列内の単一のエントリとして使用される第1のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第1のデータが、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアを表す、生成すること、を行うことと、
前記1つ以上のコンピュータによって、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアの各々について生成された前記第1のデータを集約することによって前記低減された配列を生成することと、を含む、1つ以上のコンピュータ可読記憶デバイスと、を備える、システム。
【請求項60】
取得された前記データが、FASTQファイルを含む、請求項59に記載のシステム。
【請求項61】
前記複数の質スコアにおける各質スコアが、前記質スコアのASCII値を表すデータである、請求項59に記載のシステム。
【請求項62】
前記動作が、
前記複数の質スコアの第2のサブセットにおける各特定の質スコアについて、
前記1つ以上のコンピュータによって、前記質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであると決定することと、
前記質スコアが前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであるという決定に基づいて、前記1つ以上のコンピュータによって、かつ所定のグループマッピングを使用して、低減された配列内の単一のエントリとして使用される第2のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第2のデータが、前記特定の質スコアグループを表し、前記所定のグループマッピングが、複数の異なる質スコアグループの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、生成することと、を更に含む、請求項59に記載のシステム。
【請求項63】
前記1つ以上のコンピュータによって、前記低減された配列を生成することが、
前記1つ以上のコンピュータによって、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアの各々について生成された前記第1のデータを集約することと、
前記1つ以上のコンピュータによって、前記特定の質スコアグループの各々について生成された前記第2のデータを集約することと、を含む、請求項62に記載のシステム。
【請求項64】
前記システムが、
前記1つ以上のコンピュータによって、前記複数の質スコアにおける複数の質スコアグループを識別することを更に含む、請求項59に記載のシステム。
【請求項65】
前記所定の単一のマッピングが、複数の単一の質スコアの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、請求項59に記載のシステム。
【請求項66】
命令を記憶したコンピュータ可読記憶デバイスであって、前記命令が、データ処理装置によって実行されると、前記データ処理装置に動作を実施させ、前記動作が、
核酸配列データを取得することであって、前記核酸配列データが、
(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、
(ii)複数の質スコアであって、前記複数の質スコアの各質スコアは、前記読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく識別された尤度を示す、複数の質スコアと、を表す、取得することと、
前記複数の質スコアにおける各質スコアグループの発生頻度を決定することであって、各質スコアグループが、前記複数の質スコアのうちの質スコアのサブセットを含む、決定することと、
前記複数の質スコアの第1のサブセットにおける各特定の質スコアについて、
前記複数の質スコアの前記第1のサブセットにおける前記特定の質スコアが、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではないと決定すること、及び
1つ以上のコンピュータによって、かつ所定の単一のマッピングを使用して、低減された配列内の単一のエントリとして使用される第1のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第1のデータが、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアを表す、生成すること、を行うことと、
1つ以上のコンピュータによって、前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアの各々について生成された前記第1のデータを集約することによって前記低減された配列を生成することと、を含む、コンピュータ可読記憶デバイス。
【請求項67】
取得された前記データが、FASTQファイルを含む、請求項66に記載のコンピュータ可読記憶デバイス。
【請求項68】
前記複数の質スコアにおける各質スコアが、前記質スコアのASCII値を表すデータである、請求項66に記載のコンピュータ可読記憶デバイス。
【請求項69】
前記動作が、
前記複数の質スコアの第2のサブセットにおける各特定の質スコアについて、
前記質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであると決定することと、
前記質スコアが前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであるという決定に基づいて、所定のグループマッピングを使用して、低減された配列内の単一のエントリとして使用される第2のデータを生成することであって、前記低減された配列内の前記単一のエントリとして使用される前記第2のデータが、前記特定の質スコアグループを表し、前記所定のグループマッピングが、複数の異なる質スコアグループの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、生成することと、を更に含む、請求項66に記載のコンピュータ可読記憶デバイス。
【請求項70】
前記低減された配列を生成することが、
前記所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない前記質スコアの各々につい生成されたて前記第1のデータを集約することと、
前記特定の質スコアグループの各々について生成された前記第2のデータを集約することと、を含む、請求項69に記載のコンピュータ可読記憶デバイス。
【請求項71】
前記動作が、
前記複数の質スコアにおける複数の質スコアグループを識別することを更に含む、請求項66に記載のコンピュータ可読記憶デバイス。
【請求項72】
前記所定の単一のマッピングが、複数の単一の質スコアの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、請求項66に記載のコンピュータ可読記憶デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2020年11月5日に出願された米国特許出願第63/110,308号の利益を主張し、その全内容は参照により本明細書に組み込まれる。
(技術分野)
本発明は、質スコア圧縮に関する。
【背景技術】
【0002】
場合によっては、ゲノム配列決定は、ゲノムデータのヌクレオチド又は他の成分部分を識別する方法を記載する。コンピュータを使用して、ゲノムデータの1つ以上のセットを分析し、ヌクレオチドなどの成分部分の集合体を、所与の参照ゲノム内のそれらのそれぞれの位置に相関させることができる。このようにして、コンピュータは、分子マーカーの集合体を参照ゲノム上に「マッピング」することができる。
【発明の概要】
【課題を解決するための手段】
【0003】
一般に、本開示は、ゲノムデータに基づいて配列決定エンジンによって生成された質スコアの圧縮のための方法、システム、及びコンピュータプログラムに関する。一実装形態では、ゲノムデータに基づいて配列決定エンジンによって生成された質スコアは、最初に、質スコアのセットを表すデータ項目の配列内の単一のデータ項目に1個以上の質スコアをグループ化することによって圧縮され得る。次いで、データ項目の配列を、最終的な圧縮形態に更に圧縮又はコード化することができる。
【0004】
本開示の1つの革新的な態様によると、核酸配列データを圧縮するための方法が開示される。一態様では、方法は、1つ以上のコンピュータによって、(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、(ii)複数の質スコアであって、複数の質スコアの各質スコアは、読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく生成された尤度を示す、複数の質スコアと、を表す、核酸配列データを取得することと、1つ以上のコンピュータによって、読み取り配列が少なくとも1つの「N」塩基を含むかどうかを決定することと、読み取り配列が少なくとも1つの「N」塩基を含まないという決定に基づいて、1つ以上のコンピュータによって、第1のコード化プロセスを使用して、(xマイナス1)進法の数を使用して読み取り配列の質スコアの各々をコード化することによって、第1のコード化データセットを生成することであって、xが、核酸配列決定デバイスによって使用される異なる質スコアの数を表す整数である、生成することと、1つ以上のコンピュータによって、第2のコード化プロセスを使用して、第1のコード化データセットをコード化し、それによって、圧縮されるべきデータを圧縮することと、を含むことができる。
【0005】
他のバージョンは、コンピュータ可読記憶デバイス上に符号化された命令によって定義される方法のアクションを実行するための、対応するシステム、装置、及びコンピュータプログラムを含む。
【0006】
これらの及び他のバージョンは、任意選択で、以下の特徴のうちの1つ以上を含んでもよい。例えば、一部の実装形態では、xは3に等しい。
【0007】
一部の実装形態では、第1のコード化プロセスは、1つ以上のコンピュータによって、読み取り配列の複数の質スコアのうちの5個の質スコアの各セットを、3進法の数として5個の質スコアのセットの各質スコアを表すことによって、単一のバイトにコード化することを含むことができる。
【0008】
一部の実装形態では、方法は、読み取り配列が少なくとも1つの「N」塩基を含むという決定に基づいて、1つ以上のコンピュータによって、第3のコード化プロセスを使用して、読み取り配列の4個の質スコアの各セットをメモリの単一のバイトにコード化することによって、第2のコード化データセットを生成することと、1つ以上のコンピュータによって、第4のコード化プロセスを使用して、第2のコード化データをコード化することと、を更に含むことができる。
【0009】
一部の実装形態では、第2のコード化プロセスと第4のコード化プロセスは、同じである。
【0010】
一部の実装形態では、取得されたデータは、FASTQファイルを含むことができる。
【0011】
一部の実装形態では、第1のコード化データセットは、複数の質スコアの圧縮バージョンである。
【0012】
一部の実装形態では、第2のコード化プロセスは、圧縮プロセスである。
【0013】
一部の実装形態では、圧縮プロセスは、範囲エンコーダの部分的マッチングによる予測(PPMD)の実装を含む。
【0014】
一部の実装形態では、第1のコード化データセットの所与の値について、所与の値は、第1のコード化データセット内の所与の値の位置に対して4ビットコンテキストに従って圧縮される。
【0015】
本開示の別の革新的な態様によると、核酸配列データを圧縮するための別の方法が開示される。一態様では、方法は、1つ以上のコンピュータによって、(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、(ii)複数の質スコアであって、複数の質スコアの各質スコアは、読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく生成された尤度を示す、複数の質スコアと、を表す、取得することと、1つ以上のコンピュータによって、複数の質スコアにおける各質スコアグループの発生頻度を決定することであって、各質スコアグループが、複数の質スコアのうちの質スコアのサブセットを含む、決定することと、複数の質スコアの第1のサブセットにおける各特定の質スコアについて、1つ以上のコンピュータによって、質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであると決定すること、質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであるという決定に基づいて、1つ以上のコンピュータによって、かつ所定のグループマッピングを使用して、低減された配列内の単一のエントリとして使用される第1のデータを生成することであって、低減された配列内の単一のエントリとして使用される第1のデータが、特定の質スコアグループを表す、生成すること、を行うことと、1つ以上のコンピュータによって、特定の質スコアグループの各々について生成された第1のデータを集約することによって低減された配列を生成することと、を含むことができる。
【0016】
他のバージョンは、コンピュータ可読記憶デバイス上に符号化された命令によって定義される方法のアクションを実行するための、対応するシステム、装置、及びコンピュータプログラムを含む。
【0017】
これらの及び他のバージョンは、任意選択で、以下の特徴のうちの1つ以上を含んでもよい。例えば、一部の実装形態では、取得されたデータは、FASTQファイルを含む。
【0018】
一部の実装形態では、複数の質スコアにおける各質スコアは、質スコアのASCII値を表すデータである。
【0019】
一部の実装形態では、方法は、複数の質スコアの第2のサブセットにおける各特定の質スコアについて、1つ以上のコンピュータによって、質スコアの配列の第2のサブセットにおける特定の質スコアが、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではないと決定することと、1つ以上のコンピュータによって、かつ所定の単一のマッピングを使用して、低減された配列内の単一のエントリとして使用される第2のデータを生成することであって、低減された配列内の単一のエントリとして使用される第2のデータが、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない質スコアを表し、所定の単一のマッピングが、複数の単一の質スコアの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、生成することと、を更に含む。
【0020】
一部の実装形態では、1つ以上のコンピュータによって、低減された配列を生成することは、1つ以上のコンピュータによって、特定の質スコアグループの各々について生成された第1のデータを集約することと、1つ以上のコンピュータによって、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない質スコアの各々について生成された第2のデータを集約することと、を含むことができる。
【0021】
一部の実装形態では、方法は、1つ以上のコンピュータによって、複数の質スコアにおける複数の質スコアグループを識別することを更に含むことができる。
【0022】
一部の実装形態では、所定のグループマッピングは、複数の異なる質スコアグループの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する。
【0023】
本開示の別の革新的な態様によると、核酸配列データを圧縮するための別の方法が開示される。一態様では、方法は、1つ以上のコンピュータによって、(i)核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列と、(ii)複数の質スコアであって、複数の質スコアの各質スコアは、読み取り配列の特定の塩基コールが核酸配列決定デバイスによって正しく識別された尤度を示す、複数の質スコアと、を表す、核酸配列データを取得することと、1つ以上のコンピュータによって、複数の質スコアにおける各質スコアグループの発生頻度を決定することであって、各質スコアグループが、複数の質スコアのうちの質スコアのサブセットを含む、決定することと、複数の質スコアの第1のサブセット内の各特定の質スコアについて、1つ以上のコンピュータによって、複数の質スコアの第1のサブセットにおける特定の質スコアが、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではないと決定すること、及び1つ以上のコンピュータによって、かつ所定の単一のマッピングを使用して、低減された配列内の単一のエントリとして使用される第1のデータを生成することであって、低減された配列内の単一のエントリとして使用される第1のデータが、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない質スコアを表す、生成すること、を行うことと、1つ以上のコンピュータによって、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない質スコアの各々について生成された第1のデータを集約することによって低減された配列を生成することと、を含むことができる。
【0024】
他のバージョンは、コンピュータ可読記憶デバイス上に符号化された命令によって定義される方法のアクションを実行するための、対応するシステム、装置、及びコンピュータプログラムを含む。
【0025】
これらの及び他のバージョンは、任意選択で、以下の特徴のうちの1つ以上を含んでもよい。例えば、一部の実装形態では、取得されたデータは、FASTQファイルを含む。
【0026】
一部の実装形態では、複数の質スコアにおける各質スコアは、質スコアのASCII値を表すデータである。
【0027】
一部の実装形態では、方法は、複数の質スコアの第2のサブセットにおける各特定の質スコアについて、1つ以上のコンピュータによって、質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであると決定することと、質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであるという決定に基づいて、1つ以上のコンピュータによって、かつ所定のグループマッピングを使用して、低減された配列内の単一のエントリとして使用される第2のデータを生成することであって、低減された配列内の単一のエントリとして使用される第2のデータが、特定の質スコアグループを表し、所定のグループマッピングが、複数の異なる質スコアグループの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する、生成することと、を更に含むことができる。
【0028】
一部の実装形態では、1つ以上のコンピュータによって、低減された配列を生成することは、1つ以上のコンピュータによって、所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーではない質スコアの各々について生成された第1のデータを集約することと、1つ以上のコンピュータによって、特定の質スコアグループの各々について生成された第2のデータを集約することと、を含むことができる。
【0029】
一部の実装形態では、方法は、1つ以上のコンピュータによって、複数の質スコアにおける複数の質スコアグループを識別することを更に含むことができる。
【0030】
一部の実装形態では、所定の単一のマッピングは、複数の単一の質スコアの各々と、対応する単一のエントリとの間の1対1のマッピングを定義する。
【0031】
本開示のこれら及び他の革新的な態様は、発明を実施するための形態、図面、及び添付の特許請求の範囲を参照しながら、本明細書で以下に説明される。
【図面の簡単な説明】
【0032】
【
図1】第1のデータ形式を有する質スコアの配列をコード化する、例えば、圧縮するためのシステムの一実施例を示す図である。
【
図2】第1のデータ形式を有する質スコアの配列をコード化する、例えば、圧縮するためのプロセスの一実施例を示すフロー図である。
【
図3】第2のデータ形式を有する質スコアの配列をコード化する、例えば、圧縮するためのシステムの一実施例を示す図である。
【
図4】第2のデータ形式を有する質スコアの配列をコード化する、例えば、圧縮するためのプロセスの一実施例を示すフロー図である。
【
図5】第1のデータ形式を有する質スコアの配列を復元するためのプロセスの一実施例を示すフロー図である。
【
図6】第2のデータ形式を有する質スコアの配列を復元するためのプロセスの一実施例を示すフロー図である。
【
図7】質スコアの圧縮方法を決定するためのプロセスの一実施例を示すフロー図である。
【
図8】第1のデータ形式を有する質スコアの配列をコード化するためのプロセスの実験結果のグラフ表示である。
【
図9】第2のデータ形式を有する質スコアの配列をコード化するためのプロセスの実験結果のグラフ表示である。
【
図10】第1のデータ形式を有する質スコアの配列をコード化するためのプロセスを実装するために使用され得る、コンピュータシステム構成要素の図である。
【発明を実施するための形態】
【0033】
様々な図面における同様の参照番号及び名称は、同様の要素を示す。
本開示は、核酸配列決定デバイスによって生成された読み取り配列の質スコアの配列を表すデータの圧縮のための方法、システム、及びコンピュータプログラムを対象とする。質スコアの配列における各質スコアは、読み取り配列中の対応する塩基が核酸配列決定デバイスによって正しく配列決定された尤度の指標を提供する。本明細書に開示される方法及びシステムは、本明細書に記載の技術を利用しない従来の方法と比較して、より速い圧縮速度及びより小さい圧縮比を可能にする。より速い圧縮速度及びより小さい圧縮比は、圧縮エンジンによって処理される質スコアの配列を表す入力データのサイズを低減するために、事前圧縮コード化ステップを実施することによって達成される。圧縮エンジンは、質スコアの配列を表す低減されたサイズ入力を受信し、かつ処理するため、圧縮エンジンは、従来の方法と比較して、入力データの圧縮をより速く、かつサイズが小さい圧縮ファイルを達成することができる。したがって、本開示の圧縮方法は、従来のシステムよりも高い圧縮比を達成することができ、ここで、圧縮比は、圧縮されていないファイルサイズを圧縮ファイルサイズで割ったものに等しい。
【0034】
一般に、本開示は、質スコア配列を表すデータを圧縮エンジンに入力する前に、質スコア配列を表すデータ上の初期コード化段階を実行する、システム及び方法を記載する。このアプローチの利点は、特定の例に関して説明することができる。1つ以上の第1の実装形態では、質スコアの配列内の各質スコアは、8ビット(又は1つのバイト)ASCII値として表され得る。本明細書に記載のそのような第1の実装形態では、本開示は、質スコアの配列におけるそのような8ビット表現の質スコアに対して、8ビット表現の質スコアを2ビット表現又は1.6ビット表現の質スコアに低減させ、したがって、それぞれ4個の質スコア又は5個の質スコアを、単一のバイトにコード化することを可能にする、初期コード化を実施することができる。したがって、そのような初期コード化段階は、質スコアの初期表現のサイズの1/4又は5分の1だけ、入力データサイズを圧縮エンジンに大幅にかつ予測可能に低減することができる。
【0035】
しかしながら、本開示は、圧縮エンジンへの入力に対して、8ビット表現の質スコアを、2ビット表現の質スコア又は1.6ビット表現の質スコアのいずれかに低減することに限定されない。むしろ、同様の比率の低減を、質スコアの他のサイズの表現で達成することができる。これらの実施例は、部分的には、本開示によって達成される技術的改善を強調するために提供される。
【0036】
更に、本開示の他の第2の実装態様は、質スコアの配列を表すデータに対する動作を実施して、圧縮エンジンへの入力のための低減された配列セットを生成する、他の初期段階コード化エンジンを説明する。そのような第2の実装態様は、上述の実装形態と同様の技術的利益(例えば、従来の方法と比較してより速い圧縮速度及びより高い圧縮比)を提供する。しかしながら、可変であり、かつ自発的なグループ化又は質スコアの非グループ化に関連する圧縮エンジンへの入力前の入力データの初期サイズ低減により、依然として従来の方法よりも速い圧縮速度、より低い圧縮ファイルのサイズ、及びより高い圧縮比をもたらすこれらの第2の実装形態は、最終的に、各段階で定義されたデータサイズを有することができる上述の本開示の第1の実装形態よりも予測しにくいより速い速度及び圧縮比を有し得る。
【0037】
全般的に、本明細書で使用される「コード化」という用語は、1つ以上のソフトウェアエンジン、1つ以上のハードウェアエンジン(例えば、プロセッサ)、又はそれらの組み合わせによって実施されるプロセスを指し、データの第1のセットを受信し、データの第1のセットを処理して、異なる形態のデータの第1のセットを表すデータの第2のセットを生成することを含む。一部の実施形態では、データの第2のセットは、受信されたデータの第1のセットよりも少ないメモリに記憶され得る。例えば、コード化データの1つの形態は、例えば、圧縮エンジンを用いて、圧縮前のデータのサイズよりも小さいサイズにデータを圧縮することを含むことができる。
【0038】
図1は、第1のデータ形式を有する質スコアの配列を圧縮するためのシステム100の一実施例を示す図である。第1のデータ形式は、「X」個の異なる質スコアを読み取り配列内の対応する塩基に割り当てることができ、ここで、「X」は、所与の閾値よりも小さい任意の正の整数である。所与の閾値は、
図3に示されるシステム300などの他のシステムよりも効果的又は実用的である、
図1に示されるシステム100を使用して作製する固有の質スコアの数に基づいて、決定され得る。例えば、所与の閾値は、8であることができる。「X」が8未満である場合、対応する質スコアは、システム100によって処理され得る。特定の実施例として、一部の実装形態では、「X」は、第1のデータ形式が4個の異なる質スコアのうちのいずれか1個を使用して、核酸配列決定デバイスによって生成された読み取り配列の1つ以上の塩基コールが正しい尤度を示すことができることを示す、4に等しくてもよい。一部の実装形態では、尤度は、質スコアに対応する1つ以上の塩基コールで配列決定エラーが発生した確率を含むことができる。一部の実施形態では、配列決定エラーは、間違っている読み取り配列内の特定の場所についての核酸配列決定デバイスによって作製された塩基コールを含むことができる。例えば、配列決定デバイスは、実際に正しい塩基コールが文字Cで表されるシトシンであるべきである場合、読み取り配列における特定の場所について文字Aで表されるアデニンの塩基コールを決定し得る。所与の塩基コールの低質スコアは、そのようなエラーがより可能性が高いことを示し得るが、高質スコアは、そのようなエラーがより低いことを示すことができる。塩基コールは、読み取り配列の特定のヌクレオチドを表す核酸配列決定デバイスによって生成される、データを含むことができる。
【0039】
システム100は、1つ以上のデータソースから入力データ102を受信するように構成されている。一部の実装形態では、1つ以上のデータソースは、核酸配列決定デバイスを含むことができる。核酸配列決定デバイスは、Novaseq(登録商標)6000、Nextseq(登録商標)2000などのような次世代配列決定デバイスであり得る。他の実装形態では、1つ以上のデータソースは、タブレットコンピュータ、デスクトップコンピュータ、1つ以上のサーバコンピュータ、又はそれらの組み合わせなどのコンピューティングデバイス上で動作する1つ以上のプロセッサを含むことができる。一部の実装形態では、入力データ102は、1つ以上のネットワークを介して1つ以上のデータソースから受信され得る。1つ以上のネットワークは、有線Ethernetネットワーク、有線光ネットワーク、無線ネットワーク、LAN、WAN、Wi-Fiネットワーク、セルラーネットワーク、インターネット、又はそれらの任意の組み合わせを含むことができる。一部の実装形態では、入力データ102は、USBケーブル接続、USB-Cケーブル接続などの直接接続を介して1つ以上のデータソースから受信され得る。更に他の実装形態では、システム100全体は、1つ以上のデータソース内でホストされ得る。例えば、一部の実装形態では、システム100全体は、核酸配列決定デバイスによってホストされ得る。
【0040】
システム100は、入力データ102を受信する入力エンジンを含むことができる。入力データ102は、一連の塩基コールに対応するデータ、並びに一連のヌクレオチド又は塩基の質スコアを記述するデータを含む読み取り配列を記述するデータを各々含む、複数の記録を含むことができる。塩基コールは、核酸シーケンサデバイスによって配列決定されたDNA断片のヌクレオチドに対応するか、又はそれを表す、核酸シーケンサデバイスによって生成されたデータを含むことができる。しかしながら、本開示の目的のために、塩基コール及びヌクレオチドという用語は、読み取り配列のA、C、T、又はGなどの文字に対応する核酸シーケンサによって生成されたデータを指すために、全体を通して互換的に使用され得る。そのような文字の意味は、以下でより詳細に説明される。
【0041】
各記録では、質スコアの配列における各質スコアは、読み取り配列における特定のヌクレオチド又は塩基に対応することができる。例えば、
図1の実施例では、質スコアの配列「F#FFFF...F;FF」の第1の質スコア「F」は、読み取り配列「CNTGTA...ATAAG」の第1のヌクレオチド又は塩基に対応する。一部の実装形態では、入力データ102は、1つ以上のFASTQファイルを含むことができ、複数の記録の各記録は、本明細書でFASTQ記録と呼ばれるFASTQファイルの一部分を含むことができる。FASTQファイルの各部分は、1つの読み取り配列及び読み取り配列の質スコアの対応する配列を含むことができる。
【0042】
各読み取り配列は、1つ以上の核酸シーケンサによる生体試料の配列決定から、1つ以上の核酸配列決定デバイスによって事前に生成され得る。生体試料は、ヒト、動物、又は植物などの任意の生物の核酸試料を含むことができる。各読み取り配列は、定義された語彙から文字のストリングを含む。例えば、最小の語彙は、5つのシンボルのセット:{A、C、G、T、N}で表すことができる。文字A、C、G、及びTは、デオキシリボ核酸(DNA)中に存在する4つのタイプのヌクレオチド、すなわちアデニン、シトシン、グアニン、及びチミンを表す。リボ核酸(RNA)では、チミンは、ウラシル(U)によって置き換えられる。文字「N」は、核酸配列決定デバイスによって、配列決定デバイスが「N」によって占められる読み取り配列の特定の場所でいかなる塩基も判定することができなかったことを示すために使用され得、その結果、読み取り配列内の位置の実及び正確な性質は決定されない。文字A、C、G、及びT又はUの使用は、これらの文字がそれぞれのヌクレオチドの各々の最初の文字を表すため、一般的である。しかしながら、本開示は、決定されていない生成された読み取り配列内の位置を表すための文字「N」の使用に限定されない。代わりに、核酸配列決定デバイスは、核酸配列決定デバイスが正しい塩基を正確に判定することができない読み取り配列内の場所を表すのに、任意の文字又は記号を使用することができる。本明細書に記載の実装形態では、未確認の塩基を表すために使用される文字又は記号は、文字「N」の使用と同等であることが理解される。
【0043】
読み取り配列の塩基の質スコアを記憶することは、多くの有用な用途を有することができる。しかしながら、ヒトなどの生物の配列決定されたゲノムを考えると、30億個以上の塩基及び対応する30億個以上の対応する質スコアが含まれ得る。得られた質スコアのセットに対応するデータは、非常に大きい場合があり(例えば、配列決定の深度に応じて、数ギガバイトから数テラバイト)、質スコア情報を効率的に記憶、送信、又はアーカイブするために圧縮を必要とする場合がある。
図1を参照して説明される本開示の態様は、圧縮エンジンのための入力データセットを準備するための初期コード化エンジンに依存する多段圧縮方法を提供する。圧縮エンジンの後の段階の使用前の入力データ102の固有の特性に基づいてデータを最初にコード化することにより、システム100は、高速圧縮速度を維持しながら高い圧縮比を達成することができる。得られた圧縮質スコアは、関連するメモリ記憶の動作コストを低減することができるメモリフットプリントを低減するだけでなく、結果として生じる圧縮質スコアにアクセスするか、又はそれを分析するときの処理速度を増加させることができる。本開示の目的のために、「エンジン」は、1つ以上のソフトウェアモジュール、1つ以上のハードウェアモジュール、又はそれらの任意の組み合わせを含むことができる。
【0044】
段階Aでは、分類器エンジン104は、入力データ102を取得し、入力データ102の標的又は特定の部分を、入力データ102の特定の部分の属性に基づいて異なる初期質スコアコード化エンジンに転送することができる。本開示の文脈内で、取得するプロセスは、受信、取り出し、又は別様に得るプロセスを指す。一部の実装形態では、分類器エンジン104は、入力データ102の各特定の部分が初期質スコアコード化エンジンV1 106又は初期質スコアコード化エンジンv2 118に提供されるべきかどうかを決定する、決定エンジンとして機能することができる。それらが受信する入力データ102の部分に対してそれぞれの初期コード化動作を実施した後、初期コード化エンジンV1、V2の各々は、それぞれのコード化出力114、126を圧縮エンジン116への入力として提供することができる。圧縮エンジンは、入力として受信し、入力データ102の圧縮バージョンである最終出力128を生成することができる、コード化出力114、126を処理することができる。
【0045】
図1の段階Aでより詳細には、分類器エンジン104によって取得された入力データ102は、第1の記録102a、第2の記録102b、及びi番目の記録102cを含むことができる。
図1の実施例では、第1の記録102a、第2の記録102b、及びi番目の記録102cは、本明細書ではFASTQ記録とも呼ばれる、FASTQファイルの部分であり得る。FASTQ記録は、FASTQ記録が由来するFASTQファイルを識別し、FASTQ記録を他のFASTQ記録と区別する、記録ヘッダ(例えば、「@A0:90:H46:1...」)を含むことができる。FASTQ記録は、核酸シーケンサによって生成された読み取り配列を表すデータを含むことができる。FASTQ記録はまた、FASTQ記録の配列に対応する質スコアの配列も含むことができる。FASTQ記録は、1つ以上のデータ構成要素、例えば、記録ヘッダ、質スコア配列、配列などを分離するために、1つ以上のデリミタを更に含むことができる。
【0046】
図1の実施例では、入力データ102は3つのデータ記録で示されているが、入力データ102内には任意の数の記録が含まれ得る。これらの3つのデータ記録が、
図1の後のプロセスに示されているが、任意の数の記録を同様の様式で処理することができる。段階Bでは、分類器エンジン104は、1つ以上の分類ルールに基づいて、入力データ102の第1の記録102a、第2の記録102b、及びi番目の記録102cの各々の分類を決定することができる。一部の実装形態では、分類は、それぞれのFASTQ記録内の読み取り配列の判定に基づいて決定され得る。
【0047】
一部の実装形態では、例えば、分類器エンジン104は、FASTQ記録内の読み取り配列が少なくとも1つの「N」塩基を含むかどうかに基づいて、初期質スコアコード化エンジンV1、V2に各FASTQ記録を分類又は転送することができる。FASTQ記録の読み取り配列が少なくとも1つの「N」塩基を含むと決定された場合、FASTQ記録は、初期質スコアコード化エンジンV1 106に転送することができる。あるいは、FASTQ記録の読み取り配列が少なくとも1つの「N」塩基を含まないと決定された場合、FASTQ記録は、初期質スコアコード化エンジンV2 118に転送することができる。しかしながら、これは、分類器ルールの単なる一実施例であり、本開示に従って他のタイプの分類ルールを使用して、初期質スコアコード化エンジンV1と、初期質スコアコード化エンジンV 2との間のFASTQ記録を分類及び転送することができると考えられる。一部の実装形態では、分類器エンジン104は、入力データの他の要素を使用して、入力データを分類する。例えば、「N」塩基の有無に基づく分類の代わりに、分類器エンジン104は、「N」塩基又は他の塩基のパーセンテージ又は決定された部分に基づいて分類することができる。更に、分類器エンジン104は、他の塩基コール又は対応するデータ、例えば、質スコアを使用して、1つ以上のFAST Q記録又は関連データを分類又は転送することができる。
【0048】
図1の実施例では、分類器エンジン104は、段階Bで、かつ第1のFASTQ記録102a及びi番目のFASTQ記録102cのそれぞれの読み取り配列の塩基コールに基づいて、第1のFASTQ記録102a及びi番目のFASTQ記録102cの両方が少なくとも1つの「N」塩基を有する読み取り配列を表すデータを含むと決定することができる。第1のFASTQ記録102a及びi番目のFASTQ記録102cが各々、少なくとも1つの「N」塩基を有するという決定に基づいて、分類器エンジン104は、第1のFASTQ記録102a及びi番目のFASTQ記録102cを初期質スコアコード化エンジンv1 106に転送することができる。一部の実装形態では、分類器エンジン104は、例えば、第1のFASTQ記録102a又はi番目のFASTQ記録102cに対応する1つ以上の完全なFASTQ記録を送信することなく、第1のFASTQ記録102a及びi番目のFASTQ記録102cに対応するデータを転送する。第1のFASTQ記録102a及びi番目のFASTQ記録102Cに対応するデータを初期質スコアコード化エンジンv1 106に転送した後、システム100の実行は、段階Cに継続することができる。
【0049】
段階Cでは、初期質スコアコード化エンジンv1 106は、それぞれ、第1のFASTQ記録102a及びi番目のFASTQ記録102cの読み取り配列に対応する、第1のFASTQ記録102a及びi番目のFASTQ記録102cのそれぞれの質スコア配列を取得することができる。この実施例では、初期質スコアコード化エンジンv1 106によって受信された質スコア配列は、4個の質スコアを含むことができ、4個の質スコアの各々は、8ビットのASCII値「F」、「:」、「,」、及び「#」によって表され、「#」は、「N」塩基の質スコアを表す。しかしながら、他の実装形態では、同様の情報を表すために使用することができる他の文字又は記号を用いて、質スコアが4個より少ない場合も多い場合もある。
【0050】
初期質スコアコード化エンジンv1 106は、段階Cで、第1の記録102aにおける質スコアの配列に対する初期コード化を実施することができる。初期質スコアコード化エンジンv1 106によって実施されるこの初期コード化は、第1のFASTQ記録102aの質スコアの配列から各質スコアをコード化することができる。この初期コード化は、質スコア「F」、「:」、「,」、又は「#」の各々の8ビットASCII表現を、各それぞれの質スコアの2ビット表現にコード化することを含むことができる。一部の実装形態では、第1のFASTQ記録102aの質スコア配列の各質スコアの各8ビットのASCII表現のコード化は、初期質スコアコード化エンジン106がバイト当たり4個の質スコアを含む出力データ114を生成することをもたらし得る。初期質スコアコード化エンジンv1 106によって生成されたこのコード化比は、圧縮エンジン116への入力データ記録のサイズを4分の1に減少させる。他の実装形態では、他の圧縮比は、より大きい若しくはより少ない質スコア、又は異なるデータサイズの質スコアを、1ビット以上の情報に圧縮することによって実現され得る。
【0051】
初期質スコアコード化エンジンv1 106は、初期質スコアパッキングエンジンv1 106に転送された各FASTQ記録に対して初期コード化プロセスを実施し続けることができる。例えば、初期質スコアコード化エンジンv1 106は、i番目のFASTQ記録102cを受信し、質スコアの配列からの質スコアを、8ビットASCII値から質スコアの2ビット表現にコード化することができる。このプロセスは、初期質スコアパッキングエンジンv1によって受信された質スコアの配列が各々処理されて、2ビットの質スコアへの初期コード化を生成するまで継続することができる。
【0052】
より詳細には、初期質スコアコード化エンジンv1 106は、項目108、110、及び112に示されるプロセスを実行することによって、2ビットの質スコアの出力バイナリストリーム114への8ビットの質スコアのコード化を実施することができる。質スコアコード化エンジンv1 106は、第1の記録102aから第1の4個の質スコアを取得することができる。一部の実装形態では、これは、初期質スコアコード化エンジンv1 106が、質スコアのそれぞれのASCII値を取得することを含むことができる。他の実装形態では、これは、質スコアの他の表現を取得し、それぞれの質スコアを、110に示すように対応するASCII値にマッピングすることを含むことができる。例えば、第1の4個の質スコア「F」、「#」、「F」、及び「F」は、初期質スコアコード化エンジンv1 106によって、それらの対応するASCII値70、35、70、及び70にマッピングされ得る。「N」を有する第1のデータ形式を使用した他の質スコアのマッピングを表110に示す。次いで、質スコアのASCII表現は、質スコアの各カテゴリに対応する1つのカテゴリがある、それぞれの質スコアカテゴリにマッピングすることができる。この実施例では、質スコアカテゴリは、4個の可能な質スコアの範囲があるため、0、1、2、及び3によって表される。しかしながら、使用中の質スコアリングシステムに基づいて、より多く(例えば、0、1、2、3、4、5など)のカテゴリ又はより少ないカテゴリ(例えば、0、1)があり得る。この実施例では、0は未確認の塩基に対応し、3は高塩基質スコアに対応するが、本開示はこの実装形態に限定されない。むしろ、例えば、整数の代わりに、100%に対するパーセンテージ、言語ベースのスコア値、例えば、低、中、及び高、又は当該技術分野で既知の他の指示値を使用して、質スコアを表すことができる。
【0053】
図1の実施例では、初期質スコアコード化エンジンv1 106は、4つのASCIIベースの質スコア「F」、「#」、「F」、及び「F」に対応する、質スコア値3、0、3、及び3を使用して計算を実施することができる。初期質スコアコード化エンジンv1 106は、q
1+4
*q
2+4
2*q
3+4
3*q
4などの式を使用して質コード化スコアを計算することができ、式中、q
1、q
2、q
3、及びq
4の各々は、質スコア値を表す。3、0、3、及び3の質スコア値の場合、式は、項目112に示されるように243に等しい3+4
*0+4
2*3+4
3*3として評価され得る。初期質スコアコード化エンジンv1 106は、数243のバイナリ表現を生成することによって、これらの4個の質スコアの対応するバイナリ表現を生成することができる。このバイナリ表現は、11110011であり、次いで、このバイナリ表現は、出力バイナリストリーム114に追加され得る。このプロセスは、第1のFASTQ記録102aの質スコアの配列内の質スコアの各々が最初に出力バイナリストリーム114にコード化されるまで繰り返し続行することができる。
【0054】
第1のFASTQ記録102aの質スコアの配列の初期コード化後、初期質スコアコード化エンジンv1 106は、受信された後続の各FASTQ記録に対して初期コード化プロセスを実施し続けることができる。例えば、初期質スコアコード化エンジンv1 106は、第1のFASTQ記録102aを参照して上述したのと同じ様式でi番目のFASTQ記録102cの初期コード化を実施し続けることができる。初期質スコアコード化エンジンv1 106は、後続の質スコアを取得し、項目108に示される4個の初期質スコアと同様の様式で初期コード化を実行し続けることができる。
【0055】
段階Dでは、初期質スコアコード化エンジンv1 106は、出力バイナリストリーム114を圧縮エンジン116に送信することができる。次いで、圧縮エンジン116は、所定の圧縮方法に対応する出力バイナリストリーム114上でその後の圧縮を実施することができる。一般に、任意の圧縮プロセスを圧縮エンジン116によって使用して、出力バイナリストリーム114のサイズを更に圧縮又は圧縮することができる。例えば、一部の実装形態では、圧縮エンジン116は、Zstandard(ZSTD)ライブラリのレベル11を使用して圧縮を実施することができる。ただし、本開示は、そのように限定されない。代わりに、一部の実装形態では、ZSTDライブラリ並びに他の圧縮ライブラリの他のレベルを含む、他の圧縮方法が使用され得る。一般に、当該技術分野で既知の任意の圧縮方法又は圧縮方法の組み合わせを使用することができる。
【0056】
他の実例では、分類器エンジン104は、1つ以上の分類ルールを適用することによって、受信したFASTQ記録が、少なくとも1つの「N」を含まない読み取り配列を含むと決定することができる。受信されたFASTQ記録が少なくとも1つの「N」を含まないという決定に基づいて、分類器エンジン104は、第2のFASTQ記録102bに対応するデータを初期質スコアコード化エンジンv2 118に転送することができる。
【0057】
第2のFASTQ記録102bは、いかなるNも含まないため、質スコア候補の範囲は、質スコア候補の数マイナス1であり得る。すなわち、分類器エンジン104が、第2のFASTQ記録が「X」の質スコア候補を含むと決定した場合、初期質スコアコード化エンジンv2 118で処理され得る質スコア候補は、「X」-1である。この実装形態では、質スコア配列は、わずか3個の異なる質スコアを有する。したがって、この実施例では、より高い圧縮比を実現するために、部分的に、わずか3個の別個の質スコアが別々に圧縮されることとなる。
【0058】
段階Eでは、初期質スコアコード化エンジンv2 118は、第2の記録102bの質スコア配列を取得することができる。項目120は、第2の記録102bの質スコア配列の質スコアのサブセットを示す。より詳細には、初期質スコアコード化エンジンv2 1118は、項目120、122、及び124に示されるプロセスを実行することによって、1.6ビットの質スコアの出力バイナリストリーム126への8ビットの質スコアのコード化を実施することができる。初期質スコアコード化エンジンv2 118は、第2のFASTQ記録102bから決定された数の質スコア、例えば、5個の質スコアを取得することができる。一部の実装形態では、これは、初期質スコアコード化エンジンv2 118が質スコアのそれぞれのASCII値を取得することに過ぎないことを含むことができる。他の実装形態では、これは、質スコアの別の表現を取得し、かつ各それぞれの質スコアを、122に示すように対応するASCII値にマッピングすることを含むことができる。例えば、第1の5個の質スコア「:,」「F,」「:,」「,,」及び「F,」は、初期質スコアコード化エンジンv2 118によって、それらの対応するASCII値58、70、58、44、及び70にマッピングされ得る。
【0059】
次いで、質スコアのASCII表現は、質スコアの各カテゴリに対応する1つのカテゴリがある、それぞれの質スコアカテゴリにマッピングすることができる。この実施例では、質スコアカテゴリは、3個の可能な質スコア(すなわち、初期質スコアコード化エンジンv2 118に転送されたFASTQ記録に「N」塩基がないため、X個の可能な質スコア-1)の範囲があるため、0、1、及び2で表される。この実施例では、初期質スコアコード化エンジンv2 118は、8ビットのASCII質スコアを3進法の数として表すことによって、8ビットのASCII質スコアを1.6ビットの質スコアにコード化することができる。ここでは、質スコアの特有のカテゴリが3つ存在するため、3進法が使用される。
【0060】
ただし、本開示は上述の実施例に限定されない。代わりに、合計8つの固有の質スコアカテゴリなどのより多くの質スコアカテゴリがある実装形態では、初期質スコアコード化エンジンv2 118は、元の8つの固有の質スコアカテゴリが「N」塩基の質スコアを含む、7つの固有の質スコアカテゴリを有する配列を取得することができる。そのような実装形態では、7進法の数を使用して、初期質スコアコード化エンジンv2 118の初期コード化を表すことができる。
【0061】
項目112と同様に、項目124は、質スコアの第1のセットに関連する初期コード化エンジン118によって実施される計算を示す。この場合、初期質スコアパッキングエンジンv2 118は、式中、q1、q2、q3、q4、及びq5の各々が質スコア値を表す、q1+3*q2+32*q3+33*q4+34*q5などの式を使用して質パッキング化スコアを計算する。1、2、1、0、及び2の質スコア値の場合、式は、項目124に示されるように178に等しい1+3*2+32*1+33*0+34*2として評価され得る。次いで、178のバイナリ表現、例えば、10110010を出力バイナリストリーム126に追加することができる。
【0062】
図1の実施例では、初期質スコアパッキングエンジンv2 118は、5個の8ビットの質スコアを1バイトの単一のASCII特徴にコード化し、それによって第2の記録102bの各質スコアを5分の1に圧縮することができる。他の実装形態では、他の圧縮比は、より大きい若しくはより少ない質スコア、又は異なるデータサイズの質スコアを、1ビット以上の情報に圧縮することによって実現され得る。
【0063】
初期質スコアコード化エンジンv1 106と同様に、初期質スコアコード化エンジンv2 118は、その後の質スコアを取得し、項目120に示される初期の5個の質スコアと同様の様式でコード化を実行し続けることができる。段階Fでは、初期質スコアコード化エンジンv2 118は、圧縮エンジン116への入力として出力バイナリストリーム126を提供することができる。次いで、圧縮エンジン116は、所定の圧縮方法に対応する出力バイナリストリーム126上でその後の圧縮を実施することができる。例えば、場合によっては、圧縮エンジン116は、バイトストリングを圧縮するための範囲エンコーダの部分的マッチングによる予測(PPMD)の実装に基づいて圧縮を実施する。一部の実装形態では、PPMD実装の代わりに、又はそれに加えて、当該技術分野で既知の他の圧縮方法を使用することができる。一般に、圧縮エンジン116は、任意の圧縮、又は当技術分野で知られている任意の圧縮方法などの圧縮方法の組み合わせを使用することができる。
【0064】
一部の実装形態では、範囲エンコーダに供給される出力バイナリストリーム126の各シンボルは、4ビットコンテキストに従って計算され得、前のスコアにおける最高質スコア値の数を表す。例えば、4ビットのコンテキストは、30の前の質スコアの最高質スコアの総数を2で割ったものとして計算され得る。この特定の4ビットのコンテキスト式は、4ビットのコンテキストに適合する0~15の範囲の値を得ることができる。4ビットのコンテキスト又は他のコンテキストベースのコード化アプローチを使用することにより、システム100は、特定の質スコア、例えば、最高スコア「F」の複数の隣接するインスタンスを考慮に入れることができ、これは、後のスコアの良好な予測子であり得る。一部の実装形態では、メモリ、計算、又は他の要件に応じて、より大きい又はより小さいコンテキストが使用される。例えば、より大きいコンテキストは、より高い圧縮比をもたらし得るが、より多くのメモリ及び計算時間を必要とする可能性がある。
【0065】
一部の実装形態では、他のコード化エンジンをシステム100内で使用することができる。例えば、初期質スコアコード化エンジンv1 106及び初期質スコアコード化エンジンv2 118に加えて、実装形態は、分類器エンジン104によって定義された特定の基準に基づいて、第3のコード化エンジンを含むことができる。一部の実装形態では、3つより多くのエンジンが使用され得る。一部の実装形態では、分類器エンジン104は、2個の異なる質スコアのみを使用する入力データ102内の記録の第3のセットを決定することができる。このようにして、システム100は、2個の異なる質スコアのみを有するグループについて更に高い圧縮比を実現することができる。
【0066】
説明を容易にするために、段階A~Gを使用する。システム100によって実施されるプロセスは、段階A~Gで示される順序で発生し得るが、他の実装形態では、特定の段階の順序は異なり得る。一部の実装形態では、2つ以上の段階が同時に起こり得る。
【0067】
図2は、第1の入力データ形式に基づく質スコア圧縮のためのプロセス200の一実施例を示すフローチャートである。プロセス200は、1つ以上の電子システム、例えば、
図1のシステム100によって実施され得る。
【0068】
プロセス200は、遺伝的配列決定デバイスによって生成された遺伝的読み取り配列を取得すること(202)を含む。例えば、
図1に示すように、入力データ102が取得され、システム100に提供される。入力データ102は、核酸配列決定デバイスによって生成された複数の塩基コールに対応するデータを含む読み取り配列を表すデータ、並びに複数の塩基コールの質スコアを記述するデータを各々が含む、1つ以上の記録を含むことができる。質スコアの各質スコアは、読み取り配列の特定の塩基コールに対応する。
【0069】
一部の実装形態では、文字は、入力データ102内の質スコアを表すために使用される。例えば、第1のFASTQ記録102aの質スコアの配列「F#FFFF...F;FF」の第1の質スコア「F」は、第1のFASTQ記録102aの読み取り配列「CNTGTA...ATAAG」において、第1のヌクレオチド又は塩基(以下、「塩基」と称される)に対応する。一部の実装形態では、入力データ102は、1つ以上のFASTQファイルを含むことができ、複数の記録の各記録は、本明細書でFASTQ記録と呼ばれるFASTQ記録の一部分を含むことができる。FASTQファイルの各部分は、1つの読み取り配列及び読み取り配列の質スコアの対応する配列を含むことができる。
【0070】
プロセス200は、遺伝的読み取り配列に対応する複数の質スコアを取得すること(204)を含むことができる。例えば、
図1に示すように、入力データ102は、第1の記録102a、第2の記録102b、及びi番目の記録102cを含む。第1の記録102a、第2の記録102b、及びi番目の記録102cの各々は、遺伝的配列、及び遺伝的配列に対応する質スコア配列の両方を含む。例えば、第1の記録102aは、遺伝的配列「CNTGTA...ATAAG」及び「F#FFFF...F:,FF」の対応する質スコア配列を含み、ここで、質スコア配列の各値は、対応する遺伝的配列の特定の場所での配列決定エラーの尤度を示す。
【0071】
プロセス200は、遺伝的読み取り配列が少なくとも1つの「N」塩基を含むと決定すること(206)を含む。例えば、
図1に示すように、分類器エンジン104は、1つ以上の遺伝的読み取り配列を含む入力データ102を取得する。入力データ102は、第1の記録102aを含む。第1の記録102aは、遺伝的配列「CNTGTA...ATAAG」を含む。遺伝的配列「CNTGTA...ATAAG」は、塩基「N」を含む。分類器エンジン104は、第1の記録102aの遺伝的配列「CNTGTA...ATAAG」が塩基「N」を含むと決定することができ、第1の記録102aに対応するデータを初期質スコアコード化エンジンv1 106に転送することができる。同様に、分類器エンジン104は、第2の記録102bを取得することができる。第2の記録102bは、塩基「N」を含まない遺伝的配列「GTCTAG...CACTT」を含む。分類器エンジン104は、第2の記録102bの遺伝的配列「GTCTAG...CACTT」が、塩基「N」を含まないと決定することができ、第2の記録102bに対応するデータを初期質スコアコード化エンジンv2 118に転送することができる。
【0072】
プロセス200は、x進法の数を使用して質スコアの各々をコード化することによって第1のコード化データセットを生成することを含み、ここで、xは、遺伝的配列決定デバイスによって使用される異なる質スコアの数を表す整数番号である(208)。例えば、初期質スコアコード化エンジンv1 106は、第1の記録102aの質スコア配列を取得する。第1の記録102aの質スコア配列は、4の固有の質スコア「F」、「:」、「,」、及び「#」を含む。他の好適な記号又は値を他の実装形態で使用することができる。初期質スコアコード化エンジンv1 106は、次に4進法の数に基づいて整数を計算することができる。例えば、
図1の項目108に示されるように、初期質スコアコード化エンジンv1 106は、項目110に示されるマッピングに基づいて、遺伝的質スコア「F#FF」に対応する値3033を生成する。次いで、初期質スコアコード化エンジンv1 106は、値3033が4進法の表記の形態で書かれたかのように、値3033に基づいて整数を生成する。項目112に示すように、結果として生じる整数は243に等しく、これは、8のバイナリビットで「11110011」として書き込むことができる。質スコア「F#FF」などの質スコアのグループのバイナリ形式を生成するために使用される式は、整数値が8以下のビットを使用して表すことができるように構築され得る。例えば、初期質スコアコード化エンジンv1 106によって使用される式は、整数値が255未満になるように構築され得る。
【0073】
別の実施例では、初期質スコアコード化エンジンv2 118は、第2の記録102bの質スコア配列を取得する。第1の記録102aの質スコア配列とは対照的に、第2の記録102bの質スコア配列は、3つの固有の質スコア:「F」、「:」、及び「,」を含む。他の好適な記号又は値を他の実装形態で使用することができる。初期質スコアコード化エンジンv2 118は、次に3進法の数に基づいて整数を計算することができる。固有の質スコアが少ないため、初期質スコアコード化エンジンv2 118は、追加の質スコア(例えば、4の代わりに5)を、8ビットのバイナリにコード化することができる。例えば、
図1の項目124に示されるように、初期質スコアコード化エンジンv2 118は、項目122に示されるマッピングに基づいて、遺伝的質スコア「:F:,F」に対応する値12102を生成する。次いで、初期質スコアコード化エンジンv2 118は、値12102が3進法の表記の形態で書かれたかのように、値12102に基づいて整数を生成する。項目124に示すように、結果として生じる整数は178に等しく、これは、8のバイナリビットで「10110010」として書き込むことができる。質スコア「:F:,F」などの質スコアのグループのバイナリ形式を生成するために使用される式は、整数値が8以下のビットを使用して表すことができるように構築され得る。例えば、初期質スコアコード化エンジンv2 118によって使用される式は、整数値が255未満になるように構築され得る。
【0074】
プロセス200は、第2のコード化アルゴリズムを使用して第1のコード化データセットをコード化することによって、第2のコード化データセットを生成すること(210)を含む。例えば、
図1に示すように、圧縮エンジン116は、初期質スコアコード化エンジンv1 106又は初期質スコアコード化エンジンv2 118によって提供される入力に基づいて、出力128を生成する。一部の実装形態では、圧縮エンジン116は、異なる圧縮プロセスからの複数の出力を組み合わせて、出力128を生成する。例えば、初期質スコアコード化エンジンv1 106及び初期質スコアコード化エンジンv2 118の両方は、コード化出力114及び126に示されるように、圧縮エンジン116についてのデータを生成することができる。
【0075】
一部の実装形態では、圧縮エンジン116は、取得されたデータに基づいて1つ以上のタイプの圧縮を実施する。例えば、初期質スコアコード化エンジンv1 106の出力を圧縮するために使用される圧縮プロセスは、初期質スコアコード化エンジンv2 118の出力を圧縮するために使用される圧縮プロセスとは異なり得る。本明細書で論じられるように、初期質スコアコード化エンジンv1 106のコード化出力114の圧縮は、Z標準(ZSTD)ライブラリのレベル11を使用する圧縮、又は他の形態の圧縮を含むことができる。初期質スコアコード化エンジンv2 118のコード化出力126の圧縮は、範囲エンコーダの部分的マッチングによる予測(PPMD)の実装を使用する圧縮、又は他の形態の圧縮を含むことができる。一部の実装形態では、配列の所与の値の周りのコンテキストを使用して、所与の配列を圧縮することができる。例えば、前のスコアにおける最高質スコア値の数を表す4ビットのコンテキストは、圧縮エンジン116によって使用され得る。場合によっては、複数の圧縮プロセスを組み合わせて、圧縮出力を生成することができる。
【0076】
図3は、第2のデータ形式を有する質スコアの配列を圧縮するためのシステムの一実施例を示す図である。システム300は、Q40データ形式に基づいてフォーマットされた質スコア配列302を含む。質スコア配列302は、グループ識別エンジン304、頻度カウンタエンジン310、低減された配列生成エンジン316、単一のマッピングエンジン320、グループマッピングエンジン326、及び圧縮エンジン334によって処理されて、質スコア配列302の圧縮バージョンを表す低減された配列332及びその後の出力336が生成される。
【0077】
図3の段階Aでは、質スコア配列302が、生成され、かつグループ識別エンジン304に送信される。
図3の実施例では、質スコア配列302は、上述のように塩基に関連する質スコアをコード化するためにQ40データ形式を使用する、シーケンサによって生成される。一般に、閾値数を超える固有の質スコアを使用するいくつかのシーケンサは、
図3に示されるシステム300によって実施されるプロセス又は同様のプロセスを使用して、結果として生じる出力データを圧縮することができる。例えば、シーケンサが、遺伝的配列に対応する質スコアをコード化するために8を超える固有の質スコアを使用する場合、シーケンサは、
図3を参照して考察されたコード化及び圧縮プロセスを使用することができる。
【0078】
段階Bでは、グループ識別エンジン304は、質スコア配列302を取得し、項目306に示されるように質スコア配列302に基づいて1つ以上のグループを生成する。この実装形態では、グループ識別エンジン304は、3のグループの隣接する質スコアをグループ化する。他の実装形態では、他の数の質スコアが、1つ以上のグループ内に含まれ得る。項目316に示すように、3の質スコアの第1の群は、質スコア配列302の文字に対応する、「@」、「C」、及び「@」の文字である。
図3の実施例では、質スコア配列302の各文字は、配列決定エラーの尤度を示す質スコアを表す。
【0079】
グループ識別エンジン304は、質スコアグループ308を生成し、質スコアグループ308を頻度カウンタエンジン310に送信する。段階Cでは、頻度カウンタエンジン310は、質スコアグループ308を取得し、項目312に示されるように、質スコアグループ308内のグループの各々についての発生数を決定する。
【0080】
一部の実装形態では、グループ識別エンジン304及び頻度カウンタエンジン310は、少なくとも部分的に並列に作動する。例えば、グループ識別エンジン304は、質スコア配列302に基づいて単一のグループを識別することができる。次いで、グループ識別エンジン304は、識別された単一のグループを頻度カウンタエンジン310に送信することができる。次いで、頻度カウンタエンジン310は、質スコアの識別された単一グループの発生数を決定することができる。場合によっては、質スコア配列302からグループを生成することは、質スコア配列302の1個以上の質スコアを識別することを含むことができる。一般に、本明細書内で説明される任意のプロセスは、別のプロセスと同時にスレッド化又は実行され得、2つ以上のプロセスは、1つ以上のデバイス又はソフトウェアのインスタンスで実行され得る。
【0081】
頻度カウンタエンジン310は、質スコアグループ頻度314を生成し、質スコアグループ頻度314を低減された配列生成エンジン316に送信する。質スコアグループ頻度314は、質スコア配列302における1個以上の質スコアの発生数を含むことができる。段階Dでは、低減された配列生成エンジン316は、質スコアグループ頻度314を取得し、単一のマッピングエンジン320及びグループマッピングエンジン326の両方と通信することができる。すなわち、低減された配列生成エンジン316は、質スコア配列320の質スコアが質スコアの閾値数を超える質スコアのグループの一部ではない場合、段階Eで、単一のマッピングエンジン320を使用して、低減された配列332におけるエントリを生成することができる。あるいは、低減された配列生成エンジン316は、質スコア配列320の質スコアが質スコアの閾値数を超える質スコアのグループの一部である場合、段階Fでグループマッピングエンジン326を使用することができる。本開示の目的のために、低減された配列332の「エントリ」又は「単一のエントリ」は、単一の質スコア又は質スコアのグループを置き換えるために使用された、低減された配列332における「72」などの単一の値を含むことができる。
【0082】
本明細書の目的のために、質スコアの閾値数及びグループ内の質スコアの数の正又は負の表現を使用することによって、質スコアのグループが質スコアの閾値数を超えるかどうかを決定することができる。したがって、単に質スコアの数が閾値よりも多いかどうかではなく、質スコアのグループにおける質スコアの数が閾値を「満たす」かどうかを決定することは、本明細書と一致している。これは、そのような関係が、3個の質スコアの閾値を超える4個の質スコアを有する質スコアのグループ、又は負の3個の質スコアの閾値以下の負の4個の質スコアを有する質スコアのグループとして説明され得るためである。いずれの場合でも、質スコアのグループは、閾値がどのように実装されるかに関係なく、3つを超える質スコアを有する。
【0083】
説明を容易にするために、本明細書は、グループマッピングエンジン326のプロセスを説明する前の単一のマッピングエンジン320のプロセスを説明する。しかしながら、同時処理及び他の同様の方法を使用して、グループマッピングエンジン326がグループマッピングプロセスを完了する前に、単一のマッピングエンジン320が完全な単一のマッピングプロセスを必要としないようにしてもよい。代わりに、低減された配列生成エンジン316が単一のマッピングエンジン320又はグループマッピングエンジン326を呼び出すかどうかは、低減された配列生成エンジン326によって処理される質スコア302の配列の特定の質スコアに基づいて決定される。
【0084】
段階Eでは、単一のマッピングエンジン320は、質スコア配列302を取得する。単一のマッピングエンジン320は、項目321に示すように、質スコア配列302及び単一のマッピング文字リスト322を使用して、所定の単一のマッピング324を生成する。
図3の実施例では、単一のマッピング文字リスト322は、整数値0~63を含む。質スコア配列302のASCII値は、値33~96を含む。このようにして、質スコア配列302の各値は、0~63の特定の値にマッピングされ得る。例えば、ASCII値64に対応する質スコア配列302の「@」文字は、整数値31にマッピングされ得る。同様に、ASCII値65に対応する所与の質スコア配列における「A」文字は、整数値33などにマッピングされ得る。
【0085】
所定の単一のマッピング324に示されるように、33の値に対応するASCII文字「!」は、0~63の内の0の値にマッピングされる。34の値に対応するASCII文字「”」は、1の値にマッピングされる。同様に、95の値に対応するASCII文字「_」は、62の値にマッピングされ、96の値に対応するASCII文字「`」は、63の値にマッピングされる。所定の単一のマッピング324に示されていない他のマッピングがまた、単一のマッピングエンジン320によって生成され得る。
【0086】
他の実施態様では、他のマッピングを使用することができる。例えば、0~63の代わりに、33~96のASCII値などの質スコア配列302の値が33~96の値にマッピングされる、より小さい又はより大きい範囲が使用され得る。グループマッピングエンジン326によって生成されたマッピングなどの他のマッピングは、33~96の値以外の値範囲を占めることができる。一部の実装形態では、質スコア配列302の固有の質スコアの数を使用して、質スコア配列302の質スコアをマッピングする範囲を決定する。例えば、質スコア配列302が63個の固有の質スコアを含む場合、質スコア配列302の質スコアをマッピングする範囲は、63の値を含むことができる。一部の実装形態では、他の範囲が使用される。例えば、質スコア配列302が第1の数の固有の質スコアを含む場合、範囲は、例えば、単一のマッピングエンジン320によって、第1の数の固有の質スコアを2で割ったもの、又は第1の数の固有の質スコアに基づく他の計算結果を含むように計算され得る。一部の実装形態では、その後の動作は、マッピング範囲を決定するために使用される処理結果に適用される。例えば、第1の数の固有の質スコアが奇数であり、第1の数の固有の質スコアに適用される第1の動作が、整数2によって除算され、第2の動作は、実装形態に応じて、対応する処理結果の切り上げ又は切り下げを含むことができる。
【0087】
段階Fでは、グループマッピングエンジン326は、質スコアグループ頻度314を取得する。グループマッピングエンジン326は、質スコアグループ頻度314又は質スコア配列302に関連する他のデータをグループマッピング文字リスト328と一緒に使用して、項目327に示されるように、所定のグループマッピング330を生成する。
図3の実施例では、グループマッピング文字リスト328は、190の最も頻繁に発生するグループに対応する整数値64~245を含む。一部の実装形態では、グループマッピングエンジン326によってより多くの又はより少ないグループがマッピングされ得る。例えば、190の最も頻繁に発生するグループを含む所定のグループマッピング330を生成する代わりに、グループマッピングエンジン326は、200、230、185又は任意の他の数の最も頻繁に発生するグループを含む、マッピングを生成することができる。質スコアグループ頻度314に対応するASCII値は、値33~96を含む。グループマッピングエンジン326は、質スコアグループ頻度314に基づいて、マッピングのためのグループの一部分を決定することができる。例えば、グループマッピングエンジン326は、特定の数の最も頻繁に発生するグループ(例えば、190の頻繁に発生するグループ)を決定し、最も頻繁に発生するグループの各グループに、値(例えば、64~254の整数値)を割り当てることができる。
【0088】
所定のグループマッピング330に示されるように、
図3の実施例では、文字「ACD」によって表される質スコアグループは、値64にマッピングされる。文字「FFF」によって表される質スコアグループは、値72にマッピングされる。文字「HIJ」によって表される質スコアグループは、値73にマッピングされる。所定のグループマッピング330に示されていない他のマッピングがまた、グループマッピングエンジン326によって生成され得る。
【0089】
他の実施態様では、他のマッピングを使用することができる。例えば、64~254の代わりに、質スコアグループ頻度314内のグループがマッピングされるより小さい又はより大きい範囲を使用することができる。例えば、質スコアグループ頻度314内のグループは、0~255の値にマッピングされ得る。単一のマッピングエンジン320によって生成されたマッピングなどの他のマッピングは、0~255のグループマッピングに使用される値以外の値を占めることができる。
【0090】
低減された配列生成エンジン316は、グループマッピングエンジン326及び単一のマッピングエンジン320を使用して、質スコア配列302を処理して、低減された配列332を生成する。質スコア配列302から導出されたデータは、質スコア配列332自体を含むことができる。あるいは、質スコア配列302から導出されたデータは、頻度カウンタエンジン310によって出力されるデータを含むことができる。頻度カウンタエンジン310によって出力されるデータは、質スコアグループ頻度314を含むことができる。低減された配列332は、所定の単一のマッピング324及び所定のグループマッピング330からの値の組み合わせである。
【0091】
低減された配列生成エンジン316は、質スコア配列302、質スコアグループ頻度、又はその両方を処理し、かつ単一のマッピングエンジン320又はグループマッピングエンジン326を使用して、低減された配列332内のエントリを生成するかどうかを決定することができる。所定のグループマッピング330内のグループに属する質スコア配列302内のグループの発生は、所定のグループマッピング330からの値で置き換えられる。例えば、「A」質スコアとそれに続く「C」質スコアとそれ続く「D」質スコアの発生は、低減された配列332内の値64によって置き換えられる。
【0092】
所定のグループマッピング330のグループのうちの1つのメンバーではない質スコアの場合、所定の単一のマッピング324が使用される。例えば、質スコア配列302の第1の値は、ASCII値64に対応する文字「@」である。質スコア配列302内に現れるとき、文字「@」は、所定のグループマッピング330内のグループのメンバーではない。次いで、文字「@」は、所定の単一のマッピング324に基づいてマッピングされる。所定の単一のマッピング324に基づく「@」のマッピングは、値31である。低減された配列生成エンジン316は、低減された配列332内の「@」の位置に対応する値31を追加する。
【0093】
段階Gでは、低減された配列生成エンジン316は、上述のように、かつ項目331に示されるように、所定のグループマッピング330、所定の単一のマッピング324、及び質スコア配列302から導出されたデータを使用して、低減された配列332を生成する。低減された配列生成エンジン316は、低減された配列332を圧縮エンジン334に送信する。
【0094】
段階Hでは、圧縮エンジン334は、所定の圧縮方法に対応する、低減された配列332上でその後の圧縮を実施する。例えば、場合によっては、圧縮エンジン334は、低減された配列332を圧縮するための範囲エンコーダの部分的マッチングによる予測(PPMD)の実装に基づいて圧縮を実施する。一部の実装形態では、PPMD実装の代わりに、又はそれに加えて、当該技術分野で既知の他の圧縮方法を使用することができる。一般に、圧縮エンジン334は、任意の圧縮、又は当技術分野で知られている任意の圧縮方法のような圧縮方法の組み合わせを使用することができる。圧縮エンジン334は、圧縮エンジン334によって使用される圧縮方法への入力として、低減された配列332に基づいて出力336を生成する。出力336は、質スコア配列302の圧縮バージョンを表す。
【0095】
一部の実装形態では、圧縮エンジン334に供給される低減された配列332の各値は、1バイトのコンテキストに従って圧縮される。例えば、低減された配列332の所与の値について、低減された配列332の前の値は、低減された配列332の所与の値を圧縮するために、文脈として使用され得る。1バイトのコンテキストを使用して、範囲エンコーダ又は別の圧縮若しくはコード化方法のPPMD実装に従って、低減された配列332を圧縮することができる。速度、得られた圧縮出力、又は他のパラメータのバランスを取るために、より大きい又はより小さいコンテキストを使用することができる。場合によっては、出力336の結果として生じる圧縮比は、質スコアあたり2ビット以上であり得る。例えば、4個以上の質スコアを、メモリ空間の1バイト又は8ビットに圧縮することができる。一般に、
図1の出力128と同様の出力336は、任意のさらなるプロセスで使用され得、又は実装に応じて記憶され得る。
【0096】
説明を容易にするために、段階A~Hを使用する。システム300によって実施されるプロセスは、段階A~Hで示される順序で発生し得るが、他の実装形態では、特定の段階の順序は異なり得る。一部の実装形態では、2つ以上の段階が同時に起こり得る。
【0097】
図4は、第2のデータ形式を有する質スコアの配列を圧縮するためのプロセスの一実施例を示すフロー図である。プロセス400は、1つ以上の電子システム、例えば、
図3のシステム300によって実施され得る。
【0098】
プロセス400は、遺伝的配列決定デバイスによって生成された遺伝的読み取り配列を取得すること(402)と、遺伝的読み取り配列に対応する複数の質スコアを取得すること(404)と、を含む。例えば、
図3に示すように、質スコア配列302は、遺伝的データ配列に基づいてシーケンサによって生成され、グループ識別エンジン304に送信される。
図3の実施例では、質スコア配列302は、上述のように塩基に関連する質スコアをコード化するためにQ40データ形式を使用する、シーケンサによって生成される。一般に、閾値数を超える固有の質スコアを使用する任意のシーケンサは、
図3に示されるシステム300によって実施されるプロセス又は同様のプロセスを使用して、結果として生じる出力データを圧縮することができる。例えば、シーケンサが、遺伝的配列に対応する質スコアをコード化するために8を超える固有の質スコアを使用する場合、シーケンサは、
図3を参照して考察されたコード化及び圧縮プロセスを使用することができる。
【0099】
プロセス400は、複数の質スコアの各質スコアグループについての発生頻度を決定すること(406)を含む。例えば、
図3に示すように、グループ識別エンジン304は、質スコア配列302を取得し、かつ質スコア配列302内の複数の質スコアに基づいて、いくつかの質スコアグループを生成する。一部の実装形態では、質スコアのグループは、質スコア配列302内で互いに隣接する質スコアを含む。例えば、質スコア配列302が質スコア「@C@DFFFF...」を含む場合、グループ識別エンジン304によって決定されたグループは、3の質スコアがグループを生成するために使用される実装における質スコア「@C@」を含むことができる。
【0100】
一部の実装形態では、グループ識別エンジン304は、1つ以上のグループを頻度カウンタエンジン310に送信し、頻度カウンタエンジン310は、各質スコアグループの発生頻度を決定する。例えば、頻度カウンタエンジン310は、グループ識別エンジン304によって決定された各グループについて、グループの発生が質スコア配列302内にどれだけ存在するかを決定することができる。
図3の実施例では、質スコア配列302の質スコアを3のグループにグループ化する。しかしながら、他の実装形態では、他の数の質スコアを使用することができる。例えば、グループ識別エンジン304は、4の質スコア、2質スコア、又は任意の他の数の質スコアのグループを決定して、質スコアグループを生成することができる。
【0101】
プロセス400は、複数の質スコアの各質スコアについて、質スコアが所定の閾値を満たす発生頻度を有する特定の質スコアグループのメンバーであるかどうかを決定すること(408)を含む。例えば、
図3に示すように、低減された配列生成エンジン316、単一のマッピングエンジン320、及びグループマッピングエンジン326は、所定の単一のマッピング324及び所定のグループマッピング330に基づいて、低減された配列332を生成する。低減された配列332の各質スコアについて、低減された配列生成エンジン316は、質スコアが所定のグループマッピング330に含まれるグループのメンバーであるかどうかを決定する。質スコアが所定のグループマッピング330に含まれるグループのメンバーである場合、質スコアは、グループの他の質スコアと共に、低減された配列332内の単一のエントリとしてコード化される。
【0102】
一部の実装形態では、所定のグループマッピング330の各グループは、所定の閾値を満たす。例えば、所定のグループマッピング330の各グループは、グループマッピングに含まれる所定の回数の質スコア配列302内で生じ得る。所定のグループマッピング330の各グループは、質スコア配列302内の他のグループよりも頻繁に発生する所定の数のグループに属することができる。
図3の実施例では、所定のグループマッピング330は、190の最も頻繁に発生する質スコアグループを含む。次いで、閾値は、とりわけ実装形態に応じて、191番目に最も頻繁に発生する質スコアグループ、190番目に最も頻繁に発生する質スコアグループに対応する発生数として定義され得る。次いで、所定のグループマッピング330の190の最も頻繁に発生する質スコアグループは、全てこの閾値を満たす。
【0103】
一部の実装形態では、異なる量の質スコアグループを使用して、所定のグループマッピング330を生成することができる。例えば、所定のグループマッピング330のグループの数は、シーケンサによって使用される質スコアの数に基づいて決定され得る。次いで、マッピングを生成して、最適化プロセスを満たすことができる。例えば、最適化プロセスは、単一の値としてコード化されるグループの数を最大化することと、所定のグループマッピング330の質スコアグループに属さず、かつ単一の値としてコード化される質スコアの数を最小化することと、を含むことができる。最適化するパラメータは、
図3の所定のグループマッピング330などのグループマッピングに含まれるグループの数、並びに所定のグループマッピング330内の1つ以上のグループを生成するために使用される質スコアの数を含むことができる。
図3の所定の単一のマッピング324などの単一のマッピングにおける質スコアの数は、遺伝的配列読み取りに対応する質スコアを表すためにシーケンサによって使用される固有の質スコアの数に対応し得る。
【0104】
一部の実装形態では、質スコアグループは、質スコア配列内で一緒に現れる隣接する質スコアに基づく。例えば、「@C@DFFFF...」として表される質スコア配列302は、隣接する質スコアのグループ「FFF」を含む。隣接する質スコアのグループ「FFF」は、所定のグループマッピング330に含まれる。所定のグループマッピング330によれば、隣接する質スコアのグループ「FFF」は、単一の値72として、低減された配列生成エンジン316によってコード化されるべきである。もちろん、他の実装形態では、マッピング又はコード化の目的で他の値を使用することができる。
【0105】
一部の実装形態では、質スコアグループのメンバーではないスコアは、低減された配列内の単一のエントリとしてマッピングされる。例えば、3個の質スコアを使用して質スコアのグループを生成する実装形態では、「@C@DFFFF...」として表される質スコア配列302の第1の値「@」は、特定の質スコアグループのメンバーではない。したがって、第1の値「@」は、所定の単一のマッピング324に従って、低減された配列332に単一の値31としてコード化される。
図3の実施例では、所定の単一のマッピング324は、質スコア配列302及び同じ長さの新しい範囲の質スコアを表すために使用される値の1対1の一致であり、その結果、所定のグループマッピング330内のグループの一部ではない任意の質スコアは、所定の単一のマッピング324を生成するために使用される元の値プラス又はマイナスのシフト値として低減された配列332にコード化される。例えば、
図3では、質スコアグループのメンバーではない質スコアに対応する単一の値は、33の値だけシフトされる。シフトを使用して、グループマッピング又は単一のマッピングのいずれかの専用の連続的な値の範囲を生成することができる。
【0106】
プロセス400は、質スコアが特定の質スコアグループのメンバーであるという決定に基づいて、特定の質スコアグループの表現として、低減された配列に含めるための単一のエントリを生成すること(410)を含む。例えば、低減された配列生成エンジン316は、「@C@DFFFF...」として表される質スコア配列302が質スコアのグループ「FFF」を含むと決定することができる。質スコアのグループ「FFF」は、所定のグループマッピング330に含まれる。所定のグループマッピング330によれば、隣接する質スコアのグループ「FFF」は、単一の値72として、低減された配列生成エンジン316によってコード化されるべきである。しかしながら、本開示は、質スコアのグループを単一のエントリ又は値と置き換えることに限定されない。他の実装形態では、単一の質スコアを、所定の単一のマッピングを使用して、単一のエントリ又は値で置き換えることができる。そのような単一の質スコアの置換は、単一のエントリ又は値が単一の質スコアよりも小さいビットサイズを有する単一の質スコアを表すように選択され得るため、有益であり得る。
【0107】
プロセス400は、生成されたエントリの各々を集約することによって、低減された配列を生成すること(412)を含む。例えば、低減された配列生成エンジン316は、「@C@FFFF...」として表される質スコア配列302の質スコア「@」に対応する31の第1のコード化値、質スコア「C」に対応する34の第2のコード化値は、質スコア「@」に対応する31の第3のコード化値、質スコア「D」に対応する35のさらなるコード化値、及び質スコアグループ「FFF」に対応する72の第5のコード化値を集約することができる。低減された配列生成エンジン316は、質スコア配列302のその後の値に基づいて、その後のコード化値を生成することができる。低減された配列生成エンジン316は、質スコア配列302の全ての値が低減された配列332内に表されるまで継続することができる。
【0108】
一部の実装形態では、低減された配列332に基づいて、さらなる圧縮ステップが実施される。例えば、
図3に示すように、低減された配列332は、圧縮エンジン334に送信され得る。次いで、圧縮エンジン334は、低減された配列332上で1つ以上の圧縮プロセスを実施して、出力336を生成することができる。
図1に示されるプロセスと同様に、圧縮エンジン334によって実施されるその後の圧縮ステップの前に生成される低減された配列332によって表される第1のコード化は、出力336の結果として生じる圧縮を改善するのに有利であり得る。低減された配列332の形態は、圧縮エンジン334が元の質スコア配列302よりも迅速又は効果的にデータを圧縮することができるような形態であり得る。例えば、低減された配列332は、質スコア配列302の圧縮バージョンとすることができ、圧縮エンジン334によって実施される圧縮の持続時間又は質は、入力のサイズに依存することができる。このようにして、低減された配列332を生成するための初期コード化ステップは、圧縮エンジン334によって達成される圧縮の質を圧縮及び増加させるのにかかる時間を減少させることができる。
【0109】
図5は、第1のデータ形式を有する質スコアの配列を復元するためのプロセス500の一実施例を示すフロー図である。プロセス500は、1つ以上の電子システム、例えば、
図1のシステム100によって実施され得る。
【0110】
プロセス500は、x進法の数を使用して複数の質スコアの各々をコード化することによって生成された第1のコード化データセットを取得することを含み、ここで、xは、遺伝的配列決定デバイスによって使用される異なる質スコアの数を表す整数番号である(502)。例えば、復号化エンジンは、バイナリ出力114又はバイナリ出力126を取得することができる。
【0111】
プロセス500は、x進法の数を使用して、第1の復号化データセットを生成すること(504)を含む。例えば、項目108及び120に示されるプロセスと同様に、第1のコード化データセットは、コード化に使用されるx進法の数に基づいて復号化され得、ここで、xは、複数の質スコアに存在する固有の質スコアの数に対応する整数である。一部の実装形態では、第1の復号化データのバイナリ表現の整数値は、x進法の数のxで繰り返し除算されて、x進法の数が生成され得る。
【0112】
プロセス500は、1つ以上の他の復号化データセット内で第1の復号化データセットを順序付けること(506)を含む。一部の実装形態では、順序付けエンジンは、復号化データセット及び1つ以上の他の復号化データセットを取得し、第1のコード化データセットに基づいて、第1の復号化データを順序付けることができる。例えば、順序付けエンジンは、第1のコード化データセットの一部分を決定することができ、それは、次に、第1の復号化データセットを生成するために復号化される。順序付けエンジンはまた、1つ以上の他の復号化データセットを生成するために復号化される、第1のコード化データセットの部分を決定することができる。第1の復号化データセットの元の場所及び第1のコード化データセット内の1つ以上の他の復号化データセットに基づいて、順序付けエンジンは、第1の復号化データセットを1つ以上の他の復号化データセット内に順序付けすることができる。
【0113】
プロセス500は、第1の復号化データセット及び1つ以上の他の復号化データセットに基づいて、集約復号化データセットを生成すること(508)を含む。例えば、1つ以上の他の復号化データセット内の第1の復号化データセットの順序付けに基づいて、集約復号化データセットエンジンは、第1の復号化データセット及び1つ以上の他の復号化データセットを含む、集約復号化データセットを生成することができる。集約復号化データセットは、第1のコード化データセットを生成するために使用されるデータと同様のデータを含むことができる。集約復号化データセットは、実装形態に応じて他のプロセス又は動作で使用され得る。
【0114】
図6は、第2のデータ形式を有する質スコアの配列を復元するためのプロセス600の一実施例を示すフロー図である。プロセス600は、1つ以上の電子システム、例えば、
図3のシステム300によって実施され得る。
【0115】
プロセス600は、単一のマッピングデータベース及びグループマッピングデータベースに基づいて生成された低減された配列を取得すること(602)を含む。例えば、復号化エンジンは、システム300又は他のシステムからの低減された配列332又は他の関連データを取得することができる。次いで、低減された配列生成エンジン316に対応して示されるプロセスを逆に実施して、質スコア配列302を生成することができる。
【0116】
プロセス600は、低減された配列及び単一のマッピングデータベース及びグループマッピングデータベースに基づいて、第1の復号化データセットを生成すること(604)を含む。上述のように、復号化エンジンは、低減された配列生成エンジン316と同様であるが、質スコア配列302を生成するために逆順序で動作を実施することができる。例えば、復号化エンジンは、低減された配列332を取得し、所定のグループマッピング330及び所定の単一のマッピング324を使用して、低減された配列332を復号化し、質スコア配列302の少なくとも一部分に対応する第1の復号化データセットを生成することができる。
【0117】
プロセス600は、1つ以上の他の復号化データセット内で第1の復号化データセットを順序付けること(606)を含む。例えば、復号化エンジンは、低減された配列332の第1の部分を復号化し、低減された配列332の第1の部分に対応する第1の順序を決定することができる。一部の実装形態では、低減された配列332の順序を使用して、第1の復号化データセット及び1つ以上の他の復号化データセットの順序を決定することができる。例えば、第1の復号化データセットは、低減された配列332の第1の部分に対応することができる。結果として、第1の復号化データセットは、最終的に集約された復号化データセットの開始時に順序付けられ得る。次いで、その後の1つ以上の他の復号化データセットが、1つ以上の他の復号化データセットを生成するために使用される低減された配列332に対応するデータの順序に基づいて順序付けられ得る。
【0118】
プロセス600は、第1の復号化データセット及び1つ以上の他の復号化データセットに基づいて、集約復号化データセットを生成すること(608)を含む。例えば、集約復号化データセットエンジンを使用して、上述のように1つ以上の他の復号化データセット内で第1の復号化データセットを順序付けることに基づいて、集約復号化データセットを生成することができる。集約復号化データセットは、低減された配列332などの低減された配列を生成するために使用されるデータと同様のデータを含むことができる。集約復号化データセットは、実装形態に応じて他のプロセス又は動作で使用され得る。
【0119】
図7は、質スコアの圧縮方法を決定するためのプロセス700の一実施例を示すフロー図である。プロセス700は、1つ以上の電子システム、例えば、
図3のシステム300又は
図1のシステム100によって実施され得る。
【0120】
プロセス700は、遺伝的シーケンサから遺伝的データを取得すること(702)を含む。様々な形態の遺伝的シーケンサは、当業者に知られている。例えば、決定エンジンは、所与の遺伝的シーケンサによって生成された1個以上の質スコアに対応する遺伝的データを取得することができる。
【0121】
プロセス700は、遺伝的データ内の固有の質スコアの数を決定すること(704)を含む。例えば、所与のシーケンサのタイプ、モデル、又は特定のソフトウェアに応じて、塩基コールの質スコアは、1つ以上の記号又は値によって表され得る。次いで、1個以上の質スコアを表すために使用される固有の記号又は値の数を使用して、遺伝的データの質スコアのためにどの圧縮方法が使用されるかを決定することができる。
【0122】
プロセス700は、遺伝的シーケンサから取得された遺伝的データ内に8以下の固有の質スコアが存在するという決定に対応する第1の決定経路、及び遺伝的シーケンサから取得された遺伝的データ内に8を超える固有の質スコアが存在するという決定に対応する第2の決定経路を含む。遺伝的データ内に8以下の固有の質スコアが存在する場合、
図2に記載のプロセス200に対応するプロセスを実施して、遺伝的データの質スコアを圧縮することができる。遺伝的データ内に8を超える固有の質スコアが存在する場合、
図4に記載のプロセス400に対応するプロセスを実施して、遺伝的データの質スコアを圧縮することができる。
【0123】
一部の実装形態では、他の閾値を使用して、どの圧縮方法を使用するかを決定する。例えば、8の固有の質スコアの代わりに、システムは、
図4に記載のプロセス400に対応するプロセスを遂行するために、7、9、又は10の固有の質スコアが必要であると決定することができる。一般に、システムは、任意の好適な閾値又は決定モデリングを使用して、質スコアの所与のセットなどのデータの所与のセットを圧縮するために複数の異なる圧縮方法のうちのどれが使用されるかを決定することができる。
【0124】
本開示によって言及されるゲノムデータ(例えば、入力データ102など)は、例えば、限定としてではないが、ヌクレオチド配列、デオキシリボ核酸(deoxyribonucleic acid、DNA)配列、リボ核酸(Ribonucleic acid、RNA)、及びアミノ酸配列を含むことができる。本明細書における説明は、ヌクレオチド配列の形態のゲノム情報に関してかなり詳細であるが、当業者によって理解されるように、いくつかの変形例があるものの、この明細書の順序付けられたデータ配列が、他のゲノムデータについて実施することができることは理解されよう。
【0125】
図8は、第1のデータ形式を有する質スコアの配列をコード化する(例えば、圧縮する)ためのプロセスの実験結果のグラフ表示である。
図8は、データセット「SRR6882909_1.fastq」の圧縮からの結果を示す。データセット「SRR6882909_1.fastq」は、上述のQ4形式を使用してフォーマットされる。データセット「SRR6882909_1.fastq」の質スコアは、4個の固有の質スコアを含む。チャート802は、データセット「SRR6882909_1.fastq」に対応する生データの相対サイズ、並びにgzipレベル9の圧縮、zstdレベル11の圧縮、及びレナQ4圧縮を含む様々な技術を使用した圧縮後のデータセット「SRR6882909_1.fastq」の圧縮バージョンを示す。レナQ4圧縮は、
図1に示されるプロセス100及び本明細書に記載の方法に対応する。
【0126】
チャート802は、データセット「SRR6882909_1.fastq」の生データが7402335856バイトであり、gzipレベル9の圧縮を使用するデータセット「SRR6882909_1.fastq」の圧縮バージョンが417512395バイトであり、zstdレベル11の圧縮を使用するデータセット「SRR6882909_1.fastq」の圧縮バージョンが452733689バイトであり、かつレナQ4圧縮を使用するデータセット「SRR6882909_1.fastq」の圧縮バージョンが259865991バイトであることを示す。データセット「SRR6882909_1.fastq」のレナQ4圧縮によって得られた圧縮は、他の代替圧縮方法によって達成される圧縮よりも大きい。凡例806は、どのバーがどの圧縮方法に対応し、どのバーがデータセット「SRR6882909_1.fastq」の生データに対応することを示す。
【0127】
チャート804は、データセット「SRR6882909_1.fastq」で使用される圧縮方法の各々についての圧縮時間を示す。チャート804は、gzipレベル9の圧縮を使用するデータセット「SRR6882909_1.fastq」の圧縮バージョンの生成のために1980秒かかり、zstdレベル11の圧縮を使用するデータセット「SRR6882909_1.fastq」の圧縮バージョンの生成のために108秒かかり、かつレナQ4圧縮を使用するデータセット「SRR6882909_1.fastq」の圧縮バージョンの生成のために36秒かかることを示す。レナQ4圧縮を使用してデータセット「SRR6882909_1.fastq」を圧縮するための時間は、他の代替圧縮方法によって達成される圧縮時間未満である。
【0128】
図9は、第2のデータ形式を有する質スコアの配列をコード化する(例えば、圧縮する)ためのプロセスの実験結果のグラフ表示である。
図9は、データセット「ERR1744700_1.fastq」の圧縮からの結果を示す。データセット「ERR1744700_1.fastq」は、上述のQ40形式を使用してフォーマットされる。データセット「ERR1744700_1.fastq」の質スコアは、4を超える固有の質スコアを含む。チャート902は、データセット「ERR1744700_1.fastq」に対応する生データの相対サイズ、並びにgzipレベル9の圧縮、zstdレベル11の圧縮、及びレナQ40圧縮を含む様々な技術を使用した圧縮後のデータセット「ERR1744700_1.fastq」の圧縮バージョンを示す。レナQ40圧縮は、
図3に示されるプロセス300に対応する。
【0129】
チャート902は、データセット「ERR1744700_1.fastq」の生データが5033592178バイトであり、gzipレベル9の圧縮を使用するデータセット「ERR1744700_1.fastq」の圧縮バージョンが1289564690バイトであり、zstdレベル11の圧縮を使用するデータセット「ERR1744700_1.fastq」の圧縮バージョンが1290828665バイトであり、かつレナQ40圧縮を使用するデータセット「ERR1744700_1.fastq」の圧縮バージョンが1228518456バイトであることを示す。データセット「ERR1744700_1.fastq」のレナQ40圧縮によって得られた圧縮は、他の代替圧縮方法によって達成される圧縮よりも大きい。凡例906は、どのバーがどの圧縮方法に対応し、どのバーがデータセット「ERR1744700_1.fastq」の生データに対応することを示す。
【0130】
チャート904は、データセット「ERR1744700_1.fastq」で使用される圧縮方法の各々についての圧縮時間を示す。チャート904は、gzipレベル9の圧縮を使用するデータセット「ERR1744700_1.fastq」の圧縮バージョンの生成のために3762秒かかり、zstdレベル11の圧縮を使用するデータセット「ERR1744700_1.fastq」の圧縮バージョンの生成のために306秒かかり、かつレナQ40圧縮を使用するデータセット「ERR1744700_1.fastq」の圧縮バージョンの生成のために101秒かかることを示す。レナQ40圧縮を使用してデータセット「ERR1744700_1.fastq」を圧縮するための時間は、他の代替圧縮方法によって達成される圧縮時間未満である。
【0131】
図10は、多変量序データに基づいて、関節モデルを使用して医学分析を生成するためのシステムを実装するために使用され得る、コンピュータシステム1000の構成要素の図である。
【0132】
コンピューティングデバイス1000は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことが意図されている。コンピューティングデバイス1050は、パーソナルデジタルアシスタント、携帯電話(cellular telephone)、スマートフォン、及び他の同様のコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すことが意図されている。加えて、コンピューティングデバイス1000又は1050は、ユニバーサルシリアルバス(Universal Serial Bus、USB)フラッシュドライブを含むことができる。USBフラッシュドライブは、オペレーティングシステム及び他のアプリケーションを記憶することができる。USBフラッシュドライブは、別のコンピューティングデバイスのUSBポートに挿入できる無線送信機又はUSBコネクタなどの入力/出力構成要素を含むことができる。本明細書に示される構成要素、この構成要素の接続及び関係、並びにこの構成要素の機能は、単なる例であることを意味し、本文書に記載及び/又は特許請求される発明の実装形態を限定することを意味するものではない。
【0133】
コンピューティングデバイス1000は、プロセッサ1002、メモリ1004、記憶デバイス1008、メモリ1004及び高速拡張ポート1010に接続する高速インターフェース1008、並びに低速バス1014及び記憶デバイス1008に接続する低速インターフェース1012を含む。構成要素1002、1004、1008、1008、1010、及び1012の各々は、様々なバスを使用して相互接続されており、共通のマザーボード上に、又は適宜他の様式で装着することができる。プロセッサ1002は、メモリ1004内に又は記憶デバイス1008上に記憶した命令を含む、コンピューティングデバイス1000内での実行のための命令を処理して、高速インターフェース1008に連結されたディスプレイ1016などの外部入力/出力デバイス上でGUI用のグラフィカル情報を表示することができる。他の実装形態では、複数のプロセッサ及び/又は複数のバスを、適宜、複数のメモリ及び複数種類のメモリと共に使用できる。また、複数のコンピューティングデバイス1000を接続して、各デバイスが、例えば、サーババンク、ブレードサーバ群、又はマルチプロセッサシステムとして、必要な演算の部分を提供するようにすることができる。
【0134】
メモリ1004は、計算デバイス1000内に情報を格納する。一実装形態では、メモリ1004は、揮発性メモリユニット又は複数の揮発性メモリユニットである。別の実装形態では、メモリ1004は、不揮発性メモリユニット又は複数の不揮発性メモリユニットである。メモリ1004はまた、磁気ディスク又は光ディスクなどの、別の形態のコンピュータ可読媒体であり得る。
【0135】
記憶デバイス1008は、計算デバイス1000のための大容量ストレージを提供することができる。一実装形態では、記憶デバイス1008は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、若しくはテープデバイス、フラッシュメモリ若しくは他の類似のソリッドステートメモリデバイス、又はストレージエリアネットワーク若しくは他の構成内のデバイスを含むデバイスのアレイなど、コンピュータ可読媒体とすることができるか、又はそれを内包することができる。コンピュータプログラム製品は、情報キャリア内に、有形に実施できる。コンピュータプログラム製品はまた、実行されると、上述したものなどの1つ以上の方法を実行する命令を内包することができる。情報キャリアとは、メモリ1004、記憶デバイス1008、又はプロセッサ1002上のメモリなど、コンピュータ可読媒体又はマシン可読媒体である。
【0136】
高速コントローラ1008は、コンピューティングデバイス1000の帯域幅集約演算を管理する一方、低速コントローラ1012は、低帯域幅集約演算を管理する。このような機能の割り当ては、一実施例に過ぎない。一実装形態では、高速コントローラ1008は、例えば、グラフィックプロセッサ又はアクセラレータを経てメモリ1004、ディスプレイ1016へ、及び様々な拡張カード(非表示)を受け入れることができる高速拡張ポート1010へ連結されている。この実装形態では、低速コントローラ1012は、記憶デバイス1008及び低速拡張ポート1014に連結されている。様々な通信ポート、例えば、USB、Bluetooth、Ethernet、無線Ethernetを含むことができる低速拡張ポートは、例えば、ネットワークアダプタを介して、キーボード、ポインティングデバイス、マイクロフォン/スピーカペア、スキャナ、又はスイッチ若しくはルータなどのネットワーキングデバイスなどの1つ以上の入力/出力デバイスに結合できる。コンピューティングデバイス1000は、図に示されるように、いくつかの異なる形態で実装することができる。例えば、コンピューティングデバイスは標準サーバ1020として実装することができ、又はかかるサーバ群において複数回実装することができる。コンピューティングデバイスはまた、ラックサーバシステム1024の一部として実装できる。加えて、コンピューティングデバイスは、ラップトップコンピュータ1022などのパーソナルコンピュータに実装できる。あるいは、コンピューティングデバイス1000からの構成要素を、デバイス1050などのモバイルデバイス(非表示)内の他の構成要素と組み合わせることができる。このようなデバイスの各々は、コンピューティングデバイス1000、1050のうちの1つ以上を内包することができ、システム全体を、互いに通信する複数のコンピューティングデバイス1000、1050から構成することができる。
【0137】
コンピューティングデバイス1000は、図に示されるように、いくつかの異なる形態で実装することができる。例えば、コンピューティングデバイスは標準サーバ1020として実装することができ、又はかかるサーバ群において複数回実装することができる。コンピューティングデバイスはまた、ラックサーバシステム1024の一部として実装できる。加えて、コンピューティングデバイスは、ラップトップコンピュータ1022などのパーソナルコンピュータに実装できる。あるいは、コンピューティングデバイス1000からの構成要素を、デバイス1050などのモバイルデバイス(非表示)内の他の構成要素と組み合わせることができる。このようなデバイスの各々は、コンピューティングデバイス1000、1050のうちの1つ以上を内包することができ、システム全体を、互いに通信する複数のコンピューティングデバイス1000、1050から構成することができる。
【0138】
コンピューティングデバイス1050は、構成要素の中でもとりわけ、プロセッサ1052、メモリ1064、並びにディスプレイ1054、通信インターフェース1066、及び送受信機1068などの入出力デバイスを含む。デバイス1050はまた、追加のストレージを設けるために、マイクロドライブ又は他のデバイスなどの、記憶デバイスを設けることができる。構成要素1050、1052、1064、1054、1066、及び1068の各々は、様々なバスを使用して相互接続されており、構成要素はのうちのいくつかは、共通のマザーボード上に、又は適宜他の様式で実装できる。
【0139】
プロセッサ1052は、メモリ1064に記憶された命令を含む、コンピューティングデバイス1050内の命令を実行することができる。プロセッサは、別個及び複数のアナログ及びデジタルプロセッサを含むチップのチップセットとして実装できる。これに加えて、プロセッサは、いくつかのアーキテクチャのうちのいずれかを使用して実装できる。例えば、プロセッサ1010を、CISC(Complex Instruction Set Computers、複合命令セットコンピュータ)プロセッサ、RISC(Reduced Instruction Set Computer、縮小命令セットコンピュータ)プロセッサ、又はMISC(Minimal Instruction Set Computer、最小命令セットコンピュータ)プロセッサとすることができる。プロセッサは、例えば、ユーザインターフェースの制御、デバイス1050によって実行されるアプリケーション、及びデバイス1050による無線通信など、デバイス1050の他の構成要素の協調を提供することができる。
【0140】
プロセッサ1052は、制御インターフェース1058と、ディスプレイ1054に連結されたディスプレイインターフェース1056とを経て、ユーザと通信することができる。ディスプレイ1054を、例えば、TFT(Thin-Film-Transistor Liquid Crystal Display、薄膜トランジスタ液晶ディスプレイ)ディスプレイ、OLED(Organic Light Emitting Diode、有機発光ダイオード)ディスプレイ、又は他の適切なディスプレイ技術とすることができる。ディスプレイインターフェース1056は、ディスプレイ1054を駆動してグラフィカル情報及び他の情報をユーザに提示するための適切な回路を備えることができる。制御インターフェース1058は、ユーザからコマンドを受信し、このコマンドをプロセッサ1052への投入のために変換することができる。加えて、デバイス1050と他のデバイスとの近距離無線通信を可能にするために、外部インターフェース1062を、プロセッサ1052との通信に提供することができる。外部インターフェース1062を、例えば、一部の実装形態では有線通信用に、又は他の実装形態では無線通信用に提供することができ、多重インターフェースもまた使用することができる。
【0141】
メモリ1064は、計算デバイス1050内に情報を記憶する。メモリ1064は、コンピュータ可読媒体(複数可)、揮発性メモリユニット(複数可)、又は不揮発性メモリユニット(複数可)のうちの1つ以上として実装され得る。また、例えばSIMM(Single In Line Memory Module、シングルインラインメモリモジュール)カードインターフェースを含むことができる、拡張インターフェース1072を介して、デバイス1050に拡張メモリ1074を提供及び接続することができる。このような拡張メモリ1074は、デバイス1050のための増設記憶空間を提供することができるか、又は、デバイス1050のためのアプリケーション若しくは他の情報を記憶することもできる。具体的には、拡張メモリ1074は、上述したプロセスを実行又は補完する命令を含むことができ、セキュアな情報を含むこともできる。したがって、例えば、拡張メモリ1074は、デバイス1050のためのセキュリティモジュールとして設けることができ、デバイス1050のセキュアな使用を可能にする命令を用いてプログラムすることができる。加えて、セキュアなアプリケーションは、SIMMカードを介して、ハッキング不能な様式でSIMMカード上に識別情報を配置するなど、追加情報と共に提供できる。
【0142】
メモリは、例えば、後述するように、フラッシュメモリ及び/又はNVRAMメモリを含むことができる。一実装形態では、コンピュータプログラム製品は、情報キャリア内で有形に実施される。コンピュータプログラム製品は、実行されると、上述したものなどの1つ以上の方法を実行する命令を内包する。情報キャリアは、例えば、送受信機1068又は外部インターフェース1062を介して受信できるメモリ1064、拡張メモリ1074又はプロセッサ1052上のメモリなどの、コンピュータ可読媒体又はマシン可読媒体である。
【0143】
デバイス1050は、必要な場合、デジタル信号処理回路を含むことができる通信インターフェース1066を経て無線通信することができる。通信インターフェース1066はとりわけ、GSM音声通話、SMS、EMS、又はMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、又はGPRSなど、様々なモード又はプロトコルの下での通信を提供することができる。このような通信は、例えば、無線周波数トランシーバ1068を経て行うことができる。加えて、Bluetooth、Wi-Fi、又は他のこのような送受信機(図示せず)を使用するなど、短距離通信が行われることが可能である。加えて、GPS(Global Positioning System、全地球測位システム)受信機モジュール1070が、デバイス1050に追加のナビゲーション関連及び位置関連の無線データを提供することができ、デバイス1050上で動作するアプリケーションによって適宜使用できる。
【0144】
デバイス1050はまた、オーディオコーデック1060を使用して可聴的に通信することができ、オーディオコーデック1060は、ユーザから発話情報を受信し、この発話情報を使用可能なデジタル情報に変換することができる。オーディオコーデック1060は同じく、例えば、デバイス1050のハンドセット内の、スピーカを経るなど、ユーザのために可聴音を生成することができる。このような音は、音声電話通話からの音を含むことができ、録音された音、例えば、音声メッセージ、音楽ファイルなどを含むことができ、また、デバイス1050上で動作するアプリケーションによって生成される音を含むこともできる。
【0145】
コンピューティングデバイス1050は、図に示されるように、いくつかの異なる形態で実装することができる。例えば、コンピューティングデバイスは、携帯電話1080として実装できる。また、コンピューティングデバイスを、スマートフォン1082、パーソナルデジタルアシスタント、又は他の同様のモバイルデバイスの一部として実装することもできる。
【0146】
本明細書に記載されるシステム及び方法の様々な実装形態は、デジタル電子回路、集積回路、専用に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はこのような実装形態の組み合わせで実現できる。これらの様々な実装形態は、専用又は汎用であり、記憶システム、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスからデータ及び命令を受信し、かつこれらにデータ及び命令を送信するように結合された少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能及び/又は解釈可能である1つ以上のコンピュータプログラムでの実装形態を含むことができる。
【0147】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとしても知られている)は、プログラム可能なプロセッサのためのマシン命令を含み、高水準手続き型及び/又はオブジェクト指向プログラミング言語で、及び/又はアセンブリ/マシン言語で実装できる。本明細書で使用されるとき、用語「マシン可読媒体」「コンピュータ可読媒体」は、任意のコンピュータプログラム製品、装置、及び/又はデバイス、例えば、磁気ディスク、光ディスク、メモリ、マシン命令及び/又はデータをプログラム可能なプロセッサに提供するために使用されるプログラマブルロジックデバイス(Programmable Logic Device、PLD)を指し、マシン可読信号としてマシン命令を受信するマシン可読媒体を含む。用語「マシン可読信号」は、プログラム可能なプロセッサにマシン命令及び/又はデータを提供するために使用される任意の信号を指す。
【0148】
ユーザとのインタラクションを提供するために、本明細書に記載されるシステム及び技術は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(cathode ray tube、陰極線管)又はLCD(liquid crystal display、液晶ディスプレイ)モニタ、並びにユーザがコンピュータに入力を提供することができるキーボード及びポインティング装置、例えばマウス又はトラックボールを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとのインタラクションを提供することもでき、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックとすることができ、ユーザからの入力は、音響入力、発話入力、又は触覚入力を含む任意の形態で受信することができる。
【0149】
本明細書に記載されるシステム及び技術は、例えばデータサーバとしての、バックエンド構成要素を含むコンピューティングシステムで、又はミドルウェアコンポーネント、例えば、アプリケーションサーバを含むコンピューティングシステムで、又はフロントエンド構成要素、例えばユーザが介して本明細書に記載されるシステム及び技術の実装形態とインタラクトすることができるグラフィカルユーザインターフェース又はウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステムで、又はこのようなバックエンド、ミドルウェア、又はフロントエンドの構成要素の任意の組み合わせで、実装できる。システムの構成要素は、デジタルデータ通信、例えば通信ネットワークの任意の形態又は媒体によって相互接続できる。通信ネットワークの例として、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、及びインターネットが挙げられる。
【0150】
計算システムは、クライアント及びサーバを含むことができる。クライアント及びサーバは一般に、互いにリモートであり、通常、通信ネットワークを介してインタラクトする。クライアントとサーバとの関係は、それぞれのコンピュータ上で作動し、かつ互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0151】
いくつかの実施形態を記載してきた。しかしながら、本発明の趣旨及び範囲から逸脱することなく、様々な変更を行うことができることが理解されるであろう。加えて、図に描示される論理フローは、所望の結果を達成するために、示される特定の順序、又は連続的な順序を必要としない。加えて、他の工程を提供することができ、又は記載されたフローから工程を排除することができ、記載されたシステムに他の構成要素を追加するか、又は記載されたシステムから除去することができる。したがって、他の実施形態は、以下の特許請求の範囲内にある。
【0152】
本明細書に記載の本発明の実施形態、及び機能動作の全ては、本明細書に開示されている構造、及びこれらの構造的同等物を含む、デジタル電子回路、若しくはコンピュータソフトウェア、ファームウェア若しくはハードウェア、又はこれらのうちの1つ以上の組み合わせに実装することができる。本発明の実施形態は、1つ以上のコンピュータプログラム製品、例えば、データ処理装置による実行のために、又はデータ処理装置の動作を制御するためにコンピュータ可読媒体にコード化されるコンピュータプログラム命令のうちの1つ以上のモジュールとして実装することができる。コンピュータ可読媒体は、機械可読格納デバイス、機械可読格納基板、メモリデバイス、機械可読伝搬信号に影響を及ぼす組成物(composition of matter)、又はこれらのうちの1つ以上の組み合わせであり得る。「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための全ての装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はこれらのうちの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成された信号、例えば、適切な受信装置への伝送のための情報をコード化するために生成される機械生成された電気、光学、又は電磁信号である。
【0153】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル型言語又はインタープリタ型言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、又はモジュール、コンポーネント、サブルーチンとして、又は計算環境での使用に適した他のユニットとしてを含む任意の形態で展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しない。プログラムを、他のプログラム若しくはデータを保持するファイルの一部(例えば、マークアップ言語のドキュメントに格納される1つ以上のスクリプト)に、問題のプログラム専用の単一のファイルに、又は複数の連携ファイル(例えば、1つ以上のモジュール、サブプログラム又はコードの一部を保存するファイル)に格納できる。コンピュータプログラムを展開して、1つの場所にある、若しくは複数の場所に分散して、通信網によって相互接続される、1つのコンピュータ又は複数のコンピュータ上で実行することができる。
【0154】
本明細書に記載のプロセス、動作、及び/又は論理フローは、本明細書に記載のプロセス、動作、及び/又は論理フローの機能を実現するために1つ以上のコンピュータソフトウェア命令を実行する1つ以上の中央処理ユニット(CPU)又はグラフィック処理ユニット(GPU)によって実施され得る。プロセス、動作、及び/又は論理フローはまた、ハードウェア回路内で実施され得る。例えば、一部の実装形態では、本開示の動作は、本明細書に記載されるプロセス、動作、及び/又は論理フローの機能を実現するようにプログラム的に構成されたフィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)の論理ゲートを使用して実装される処理エンジンによって実行され得る。別の実施例として、本開示の動作は、本明細書に記載のプロセス、動作、及び/又は論理フローの機能を実現するように構成された特定用途向け集積回路(application-specific integrated circuit、ASIC)の論理ゲートを使用して実施される処理エンジンによって実行され得る。更に他の実装形態では、プロセス、動作、及び/又は論理フローの部分のうちのいくつかは、1つ以上のCPU又は1つ以上のGPUによって実装され得、プロセス、動作、及び/又は論理フローの部分のうちのいくつかは、ハードウェア回路及び任意の順序で実装され得る。
【0155】
コンピュータプログラムの実行に適しているプロセッサは、例えば汎用及び特殊用途両方のマイクロプロセッサ、並びに任意の種類のデジタルコンピュータのうちの1つ以上の任意のプロセッサを含む。一般にプロセッサは、命令及びデータを、読み取り専用メモリ若しくはランダムアクセスメモリ、又は両方から受け取る。コンピュータの必須の要素は、命令を実行するためのプロセッサ、並びに命令及びデータを格納するための1つ以上のメモリデバイスである。一般に、コンピュータはまた、データを格納するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク若しくは光ディスクからデータを受け取る、大容量記憶デバイスへデータを送信する、若しくは両方のために、大容量記憶デバイスを含む、又は大容量記憶デバイスに動作可能に連結される。しかし、コンピュータはこのようなデバイスを備えている必要はない。更にコンピュータは、別のデバイス、例えば、いくつか例を挙げてみると、タブレットコンピュータ、携帯電話、パーソナルデジタルアシスタント(PDA)、携帯オーディオプレーヤ、全地球測位システム(GPS)受信器に組み込むことができる。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ可読媒体には、不揮発性メモリ、媒体、及びメモリデバイスの全ての形態が含まれ、例えば、EPROM、EEPROM、及びフラッシュメモリデバイスなどの半導体メモリデバイス、例えば、内部ハードディスク又は取り外し可能なディスクなどの磁気ディスク、磁気光学ディスク、並びにCD ROM及びDVD-ROMディスクなどが含まれる。プロセッサ及びメモリは、特殊用途論理回路により補うことができる、又は特殊用途論理回路に組み込むことができる。
【0156】
ユーザとのインタラクションを提供するために、本発明の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(cathode ray tube、陰極線管)又はLCD(liquid crystal display、液晶ディスプレイ)モニタ、並びにユーザがコンピュータに入力を提供することができるキーボード及びポインティングデバイス、例えばマウス又はトラックボールを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとのインタラクションを提供することもでき、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックとすることができ、ユーザからの入力は、音響入力、発話入力、又は触覚入力を含む任意の形態で受信することができる。
【0157】
本発明の実施形態は、例えばデータサーバとしての、バックエンド構成要素を含む計算システムで、又はミドルウェア構成要素、例えば、アプリケーションサーバを含む計算システムで、又はフロントエンド構成要素、例えばユーザが本発明の実装形態とインタラクションできるグラフィカルユーザインターフェース若しくはウェブブラウザを有するクライアントコンピュータを含む計算システムで、又はこのようなバックエンド、ミドルウェア、若しくはフロントエンドの構成要素の任意の組み合わせで、実装できる。システムの構成要素は、デジタルデータ通信、例えば通信ネットワークの任意の形態又は媒体によって相互接続できる。通信ネットワークの例として、ローカルエリアネットワーク(local area network、「LAN」)、及び広域ネットワーク(wide area network、「WAN」)、例えば、インターネットが挙げられる。
【0158】
計算システムは、クライアント及びサーバを含むことができる。クライアント及びサーバは一般に、互いにリモートであり、通常、通信ネットワークを介してインタラクトする。クライアントとサーバとの関係は、それぞれのコンピュータ上で作動し、かつ互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0159】
本明細書は多くの詳細を含むが、これらは、本発明の、又は特許請求され得るものの範囲を制限するとして解釈されてはならず、むしろ本発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載されている特定の特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態の文脈で説明される様々な特徴はまた、複数の実施形態で別々に、又は任意の好適な部分組み合わせで実装され得る。更に、特徴が特定の組み合わせで機能するものと上述される場合があり、最初にそのように特許請求されていたとしても、特許請求された組み合わせからの1つ以上の特徴は、場合によっては組み合わせから削除することができ、特許請求された組み合わせは、部分的組み合わせ、又は部分的組み合わせの変形に関し得る。
【0160】
同様に、動作は、特定の順序で図面に表されるが、このような動作が、所望の結果を得るために、示される特定の順序で若しくは順次実行される、又は全ての例示の動作が実行される必要があると理解されるべきではない。特定の状況では、マルチタスク及び並列処理が有利であり得る。更に、上述の実施形態の種々のシステム構成要素の分離は、全ての実施形態でこのような分離を必要とするとして理解されてはならず、記載したプログラムコンポーネント及びシステムは通常、単一のソフトウェア製品に一緒に統合することができる、又は複数のソフトウェア製品内にパッケージ化することができることを理解すべきである。
【0161】
特定のファイル形式が言及されている各例では、他のファイルタイプ又はフォーマットで置換され得る。例えば、HTMLファイルは、XML、JSON、プレーンテキスト、又は他のタイプのファイルによって置き換えられ得る。更に、テーブル又はハッシュテーブルが言及されている場合、他のデータ構造(スプレッドシート、リレーショナルデータベース、又は構造ファイルなど)を使用することができる。
【0162】
本発明の特定の実施形態を記載してきた。他の実施形態は、以下の特許請求の範囲内にある。例えば、特許請求の範囲に列挙される工程は、異なる順序で実行することができ、それでも望ましい結果を達成することができる。
【0163】
他の実施形態
本発明の特定の実施形態を記載してきた。他の実施形態は、以下の特許請求の範囲内にある。例えば、特許請求の範囲に列挙される工程は、異なる順序で実行することができ、それでも望ましい結果を達成することができる。
【符号の説明】
【0164】
100、300 システム
1000 コンピューティングデバイス
【国際調査報告】