(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-13
(54)【発明の名称】FastQ/FastA圧縮システム及び方法
(51)【国際特許分類】
G16B 50/50 20190101AFI20241106BHJP
【FI】
G16B50/50
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024529723
(86)(22)【出願日】2022-11-18
(85)【翻訳文提出日】2024-06-18
(86)【国際出願番号】 US2022080163
(87)【国際公開番号】W WO2023092086
(87)【国際公開日】2023-05-25
(32)【優先日】2021-11-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-26
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】524187449
【氏名又は名称】ラジャント ヘルス インコーポレイテッド
(74)【代理人】
【識別番号】100107364
【氏名又は名称】斉藤 達也
(72)【発明者】
【氏名】ナザリ,フォード
(72)【発明者】
【氏名】パテル,スネー
(72)【発明者】
【氏名】マリー,エマ ケイ.
(72)【発明者】
【氏名】スキーナ,ギアナ ジェイ.
(57)【要約】
本発明は、FastQ及び/又はFastAデータセットを分析し大量に圧縮するシステム及び方法を開示する。その方法論は、リードファイルの配列、品質スコア及び識別子を圧縮するアルゴリズムを含む。前記方法は、ユニークで最適な方式及びバイナリ形式でゲノムデータの次元及び冗長性を削減することによるものである。その方法論は、圧縮されたデータを損失ゼロで解凍する復号プロトコルも含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
配列塩基、品質スコア、及び識別子から構成されたデータファイルを受信するステップと、
前記品質スコア、前記配列塩基からの配列k-mer、及び前記識別子に最適化アルゴリズムを適用するステップと、
前記配列塩基及び前記品質スコアのロングリードをより小さいセグメントに分割するステップと、
前記配列塩基及び前記品質スコアの重複及び半重複リードを削除するステップと、
前記配列塩基に対して次元削減を行うステップと、
前記データファイル全体で一貫した前記識別子のテンプレートを記憶するステップと、
前記データファイルをバイナリ形式で符号化するステップと、
前記データファイルを圧縮するステップであって、前記圧縮が可逆であるステップと、を含む、ゲノムデータのデータ圧縮方法。
【請求項2】
前記識別子は、配列決定実行データ及びクラスターデータから構成される、請求項1に記載の方法。
【請求項3】
前記品質スコアは前記配列塩基の品質値の配列を含む、請求項1に記載の方法。
【請求項4】
前記配列塩基は規則的な塩基及び不規則な塩基から構成される、請求項1に記載の方法。
【請求項5】
次元削減は、k-mer辞書及び前記塩基配列からのバイナリラベルを使用して行う、請求項4に記載の方法。
【請求項6】
前記データファイルはFastQファイル又はFastAファイルである、請求項1に記載の方法。
【請求項7】
前記最適化アルゴリズムは、アルゴリズムハイパーパラメータ、前記塩基からの配列k-mer、及び前記識別子を符号化する最適値を決定する、請求項1に記載の方法。
【請求項8】
前記最適化アルゴリズムは、前記データファイルのプロトコルハイパーパラメータ及び分布指数の関数である、請求項1に記載の方法。
【請求項9】
前記圧縮は参照不要である、請求項1に記載の方法。
【請求項10】
前記圧縮は前記データファイルの特徴に基づいて調整される、請求項1に記載の方法。
【請求項11】
コンピュータに、
配列塩基、品質スコア、及び識別子から構成されたデータファイルを受信するステップと、
前記品質スコア、前記配列塩基からの配列k-mer、及び前記識別子に最適化アルゴリズムを適用するステップと、
前記配列塩基及び前記品質スコアのロングリードをより小さいセグメントに分割するステップと、
前記配列塩基及び前記品質スコアの重複及び半重複リードを削除するステップと、
前記配列塩基に対して次元削減を行うステップと、
前記データファイル全体で一貫した前記識別子のテンプレートを記憶するステップと、
前記データファイルをバイナリ形式で符号化するステップと、
前記データファイルを圧縮するステップであって、前記圧縮が可逆であるステップと、を含むプロセスを実行させるプログラムを記憶する、非一時的コンピュータ記憶媒体。
【請求項12】
前記識別子は、配列決定実行データ及びクラスターデータから構成される、請求項11に記載の非一時的コンピュータ媒体。
【請求項13】
前記品質スコアは前記配列塩基の品質値の配列を含む、請求項11に記載の非一時的コンピュータ媒体。
【請求項14】
前記配列塩基は規則的な塩基及び不規則な塩基から構成される、請求項11に記載の非一時的コンピュータ媒体。
【請求項15】
次元削減は、k-mer辞書及び前記規則的な塩基からのバイナリラベルを使用して行う、請求項14に記載の非一時的コンピュータ媒体。
【請求項16】
前記データファイルはFastQファイル又はFastAファイルである、請求項11に記載の非一時的コンピュータ媒体。
【請求項17】
前記最適化アルゴリズムは、前記品質スコア、前記塩基からの配列k-mer、及び前記識別子の各々について最適ハイパーパラメータ値を決定する、請求項11に記載の非一時的コンピュータ媒体。
【請求項18】
前記最適化アルゴリズムは、前記データファイルのプロトコルハイパーパラメータ及び分布指数の関数である、請求項11に記載の非一時的コンピュータ媒体。
【請求項19】
前記圧縮は参照不要である、請求項11に記載の非一時的コンピュータ媒体。
【請求項20】
前記圧縮は前記データファイルの特徴に基づいて調整される、請求項11に記載の非一時的コンピュータ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2021年11月18日に出願した米国仮出願第63/280,721号、及び2022年9月26日に出願した米国仮出願第63/409,993号の優先権を主張し、両者の全ての内容が参照によって本出願に組み込まれる。
【背景技術】
【0002】
次世代配列決定(NGS)技術の最近の進歩に伴い、大量のゲノムデータが高速且つ低コストで生成されている。今後10年以内に2~40エクサバイトのデータが生成されると推定される。しかし、記憶技術の進歩速度が遥かに遅く、NGSデータ記憶に技術的及び経済的課題をもたらす。また、これらの膨大なデータセットの送信も、非常にコストと時間がかかり、これらのデータセットの使用が遅れて制限される。
【0003】
汎用圧縮方法(例えば、Gzip、Bzip2)は、ゲノムデータ圧縮において実績があまり良くない。一方、既存のドメイン固有圧縮方法(例えば、SPRING、LFastqC、DSRC2、LFQC、SeqSqueeze1、Quip、FQZComp)は、低い圧縮率、低い計算効率、非可逆圧縮、品質スコア-塩基配列符号化への依存性、不規則な非N塩基の無視、厳しいプロトコル等、固有の欠点がある。
【0004】
したがって、膨大な量のゲノムデータを保存・送信する要望と既存の圧縮方法の不十分さにより、NGSデータ圧縮のための効率的でドメイン固有の方法が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、上記従来の技術における課題を解決するためになされたものである。
【課題を解決するための手段】
【0006】
開示される実施形態は、より効率的で可逆な方式でゲノムデータを圧縮するシステムを提供する。特定の実施形態において、本発明のシステムは、配列塩基、品質スコア、及び識別子から構成されたデータファイルを受信し、前記品質スコア、前記配列塩基からの配列k-mer、及び前記識別子に最適化アルゴリズムを適用する。前記システムは、前記配列塩基に対して次元削減を行い、前記品質スコアのマッピング及び順位付けをし、前記データファイル全体で一貫した前記識別子のテンプレートを記憶する。そして、前記システムは、前記ファイルの最適化されたデータをバイナリで符号化し、可逆形式で圧縮する。
【0007】
特定の実施形態において、前記識別子は、配列決定実行データ及びクラスターデータから構成される。
【0008】
他の実施形態において、前記品質スコアは、塩基配列の品質値の配列を含む。
【0009】
更に他の実施形態において、前記配列塩基は規則的な塩基及び不規則な塩基から構成される。
【0010】
他の実施形態において、前記データファイルはFastQファイル又はFastAファイルである。
【0011】
特定の他の実施形態において、前記最適化アルゴリズムは、前記品質スコア、前記塩基からの配列k-mer、及び前記識別子の各々について最適ハイパーパラメータ値を決定する。
【図面の簡単な説明】
【0012】
添付の図面を考慮しながら以下の詳細な説明を参照することにより、本発明及びそれに付随する利点の多くは、より良く理解されることから、より完全に理解されるであろう。図面の説明を以下に記載する。
【
図1】本発明のシステムのハードウェアの例示的な実施形態の図である。
【
図2】本発明の例示的な実施形態に係る、ゲノムデータを圧縮するためのプロセスのフローチャートである。
【
図3】本発明のシステムによって行われる重複除去の例を示す一連の表である。
【
図4】本発明のシステムによって行われるk-mer除去の例を示す一連の表である。
【
図5】k-merコンパニオン方法の一環として行われるコンパニオン選択の例を示す表である。
【
図7】本発明のシステムによって類似のデータリードに対して半重複除去をどのように行うかの例を示す一連の表である。
【発明を実施するための形態】
【0013】
図面に示された本発明の好ましい実施形態を説明する際、明確にするために特定の用語が使用される。しかし、本発明はそのように選択された特定の用語に限定されることを意図するものではなく、各特定の用語は同様の目的を達成するために同様に動作する全ての技術的等価物を含むことが理解される。本発明のいくつかの好ましい実施形態は、例示の目的で説明され、本発明は図面に具体的に示されていない他の形態で具体化され得ることが理解される。
【0014】
次世代配列決定(NGS)分析は、機械からの信号を有意味情報に変換するために、信号からデータへの変換、アノテーション又はカタログ化された情報、及び使える知識を含むバイオインフォマティクスを利用する。基本的な次世代配列決定プロセスは、DNA/RNAを複数の断片に断片化すること、アダプターを付加すること、ライブラリを配列決定すること、ライブラリを再組み立てしてゲノム配列を形成することを含む。数百万又は数十億のDNA鎖を並行して配列決定することができるため、スループットが大幅に向上し、フラグメントクローニング法の必要性が最小限に抑えられる。NGSは、ヒトゲノム全体の配列決定を短期間で迅速に行うために使用できる。Behjati S, Tarpey PS. What is next generation sequencing?. Arch Dis Child Educ Pract Ed. 2013;98(6):236-238. doi:10.1136/archdischild-2013-304340を参照のこと。
【0015】
NGSにより、大量のゲノムデータが生成される。このため、現在の技術は、リードファイルの配列、品質スコア、及び識別子を、そのデータをより効率的に記憶可能な斬新な方式で圧縮するとともに、圧縮されたデータを実質的に損失ゼロで解凍する復号プロトコルも提供するように設計される。
【0016】
図1は、本発明のシステムの例示的な実施形態である。例示的なシステム100において、1つ又は複数の周辺機器110がネットワーク130を介して1つ又は複数のコンピュータ120に接続される。周辺機器/位置110は、スマートフォン、タブレット、ウェアラブルデバイス、及びネットワーク上でデータを収集・送信する当分野で既知の任意の他の電子機器を含む。ネットワーク130は、インターネットのような広域ネットワーク、又はイントラネットのようなローカルエリアネットワークであり得る。ネットワーク130により、周辺機器110及びコンピュータ120の物理的位置は、本発明のハードウェア及びソフトウェアの機能性に影響することはない。本明細書で両方の実施とも説明され、特に断らない限り、周辺機器110及びコンピュータ120が同じ又は異なる物理的位置にあり得るよう意図される。システムのハードウェア間の通信は、多数の既知の方式で、例えば、モデム又はイーサネットアダプター等のようなネットワーク接続コンポーネントを使用することで、実現できる。周辺機器/位置110及びコンピュータ120は、両方とも通信機器を含むか又は通信機器に取り付けられる。通信は、HTTP又はHTTPS等のような業界標準プロトコルによって発生するように意図される。
【0017】
各コンピュータ120は、中央処理装置122、記憶媒体124、ユーザ入力装置126、及びディスプレイ128から構成される。使用され得るコンピュータの例としては、市販のパソコン、オープンソース計算装置(例えば、Raspberry Pi)、市販のサーバ、及び市販の携帯装置(例えば、スマートフォン、スマートウォッチ、タブレット)が挙げられる。1つの実施形態において、システムの各周辺機器110及び各コンピュータ120は、システムに関連するソフトウェアがインストールされていてもよい。かかる実施形態において、システムデータは、ネットワーク接続されているコンピュータ120にローカルに記憶されてもよく、又は代替的に、ネットワーク130を介して周辺機器110又はネットワーク接続されているコンピュータ120のいずれかにアクセス可能な1つ又は複数の遠隔サーバ140に記憶されてもよい。代替実施形態において、ソフトウェアは周辺機器110上でアプリケーションとして実行され、ウェブベースのソフトウェア及びiOSベースとAndroidベースのモバイルアプリケーションを含む。
【0018】
図2は、生のFastQ/Aファイル202を圧縮して圧縮されたFastQ/Aファイル236を生成するプロセスを図示するフロー図である。FastAとは、ヌクレオチド配列又はアミノ酸(タンパク質)配列を表すテキストベースの形式を指し、この形式ではヌクレオチド又はアミノ酸が1文字コードで表される。FastQとは、ヌクレオチド塩基配列、配列における各塩基の計算された信頼度、及びリードを起源からその配列決定プラットフォームのフローセル上の位置まで説明する情報を記憶するファイルの形式を指す。FastAファイルは、生のFastQ/Aファイル202の代わりに又はそれに加えて圧縮され得る。FastAファイルは、識別子及び配列塩基のみを含む。プロセスは、ドメイン固有圧縮と通常の圧縮といった2つの主な段階から構成される。圧縮器は、FastQ/Aデータにおける冗長なパターン及び類似のパターンを認識してそれらをバイナリでのデータセットの可逆圧縮に使用することを目的としている。プロセスは、FastQ/Aリーダー203に送信されるFastQファイル202から開始し、このリーダーではファイル202がロードされ読み取られる。FastQ/Aファイルは、配列塩基204、品質スコア206、及び識別子208から構成される。識別子208は、配列決定実行及びクラスターに関する情報を含む。塩基204は、ベースコールの配列を含む。品質スコア206は、塩基配列の品質値の配列を含み、典型的には塩基204ごとに1つの品質値がある。FastQ/Aリーダー203は、FastQ/Aファイル202における塩基配列204、品質スコア配列206、及び識別子208をメモリにロードし読み込み、塩基配列、品質スコア配列、及び識別子リードを作成する。
【0019】
表1に示すように、DNA/RNAにおいて、A、C、G、T及びU以外のヌクレオチド、例えばN、R、Wが存在する。これらの塩基は不規則な塩基と知られている。この方法において、塩基204に関連する全ての不規則な塩基は、規則的な塩基における「A」として一時的に記憶される。システムは、FastQ/Aデータセットにおける各不規則な塩基216のタイプ及び位置を検出し記憶する。FastQデータセットにおいて不規則な塩基がなくなった場合、そのファイルを除外してもよい。品質スコア206から不規則な塩基への1対1又は多対1のマッピングがデータセットにおいて可能な場合、その品質スコア206を不規則な塩基の定位に使用してもよい。そうでなければ、そのファイルを作成する。そのファイルが作成される別のシナリオは、FastAファイルが圧縮されている場合である。
【表1】
【0020】
システムは、サンプル/データセット全体で一貫した識別子208のテンプレートを記憶することを含むテンプレート比較を行う。次に、変数が符号化される。全ての変数がリードごとに変化するわけではない以上、テンプレート比較では、まず変数が変化したか否かを判定するようにチェックし、そして、変化したとすれば、前のリードとの変数の差を記憶する。
【0021】
オプティマイザ210は、品質スコア206、塩基204からの配列k-mer、及び識別子変数208の各々の分布について統計分析を実行する。k-merは、塩基配列に含有される長さkの部分文字列である。特定の実施形態において、最適化アルゴリズムは、品質スコア206、塩基204からの配列k-mer、及び識別子変数208の各々に別々に適用される。最適化変数は、下流のブロックのハイパーパラメータである。システムは、プロトコルハイパーパラメータ及びデータセット分布指数の関数であるオプティマイザ210の目的関数の符号化プロトコルに基づき、数学的定式化を採用する。その目的関数は、圧縮率に直接関係し、オプティマイザ210によって最小化される。その最適化プロセスの結果は、各データセットのプロトコルを適応的且つ最適に形成する。
【0022】
品質スコア、配列及び識別子変数の成分の統計的特徴は、データセットごとに変動する。冗長性ベースの圧縮器の実績は、冗長パターンの頻度と分布及びそれらの不均衡のレベルに依存する。(例として、品質スコア=30が1~40の範囲内の全ての品質スコアの90%である場合、品質スコアの分布は非常に不均衡であるが、40個の可能な品質スコアの全てがデータセットの2.5%を占める場合、その分布は完全に均衡が取れている)。頻度ベースの圧縮器は、オプティマイザ210の場合のように、それ自体の分布に基づいてFastQ又はFastAデータセットごとにカスタマイズ又は調整されない限り、最適に実行できない。
【0023】
塩基204は本技術のシステムによって以下のように分析される。取得された最適ハイパーパラメータの値、分布特徴及びデータセット内の様々なタイプの不規則な記号の数等のような、データセットの配列部分の特徴に関するメタ情報が、ヘッダ218を使用して記憶される。DNA塩基204を含む規則的な塩基214は、主に、アデニン(A)、シトシン(C)、グアニン(G)、及びチミン(T)からなり、RNAはアデニン(A)、シトシン(C)、グアニン(G)、及びウラシル(U)を含む。各塩基をバイナリ形式で符号化するには、僅か2ビットが必要であることが好ましい。
【0024】
識別子208は識別子圧縮モジュール214に送信され、ここで識別子208は、例えば以下に概説されるアルゴリズムを使用して、符号化され圧縮される。符号化され圧縮された識別子は、識別子圧縮モジュール214から汎用圧縮器234に送信され、該汎用圧縮器234は、可逆汎用圧縮器(例えば、gzip)を好適に使用して、圧縮ファイルを生成することを担当する。
入力:識別子
出力:圧縮された識別子(Ident_change_Index, Ident_change_value)
1.最初のリードの識別子を記憶する
2.tile、xpos及びyposの各々について、前のリードから変化したか否かを示すIdent_change_Indexを計算する。(y:1、n:0)
3.tile、xpos及びyposについて、(変化したものの)変化の量を示すIdent_change_valueを別々に計算する。
【0025】
品質スコア206及び配列塩基204は、それぞれ、第1リードスプリッタ210及び第2リードスプリッタ212に送信される。第1及び第2リードスプリッタ210、212は、データのロングリードをより小さいリード(セグメント)に分割する。セグメントが同じ長さである必要があるため、read_length(RL)及び所要のセグメント数に応じて、まずリードの末端から固定数のヌクレオチド又は品質スコア(名称:extra_len)を分離してセグメントを同じ長さにする必要がある場合がある。分離された余分な部分はエクストラセグメントと呼ばれる。
【0026】
リードスプリッタ関数の例示的な実施形態は以下に記載する。
入力:塩基又は品質スコア配列
出力:(セグメント化された)塩基又は品質スコア配列
1.num_seg、seg_len、extra_lenを計算する。
【数1】
【数2】
【数3】
注:ideal_lenは、セグメントの好適な長さを見つけるためのハイパーパラメータである。
2.各リードをseg_lenのnum_segセグメントに分割する。
3.エクストラセグメントを一緒に連結し、長い配列を作成し、そしてエクストラセグメントを長さseg_lenのセグメントに分割し、作成されたセグメントの末端に追加する。
注:この関数は識別子を改変しない。
【0027】
第1リードスプリッタ210及び第2リードスプリッタ212が品質スコア206及び配列塩基204のロングリードを分割した後、品質スコア206からの分割データは第1重複除去モジュール216に送信され、配列塩基204からの分割データは第2重複除去モジュール218に送信される。重複除去の例示的なプロセスは
図3に示す。第1及び第2重複除去モジュール216、218は、以下の例示的なアルゴリズムに示すように、重複データエントリを除去する。
入力:塩基配列
出力:base_sequences (DR_remaining_reads), DR補助情報(DR_index)
1.全ての入力リードをアルファベット順に並べ替えるが、それらのリード番号を保持する。
2.同一のリードを群分けする(単一メンバーの群があり、複数メンバーの群もある)。
3.入力ファイルにおける各リードについて、下記表から対応する指数を符号化し、DR_indexファイルと呼ぶ。
S 単一メンバー群のメンバー
M 複数メンバー群の最初のメンバー
Gi 複数メンバー群のi番目の最初以外のメンバー
4.S及びMの指数を有するリードのみを保持し(元の順序で)、DR_remaining_readsと呼び、その他を除去する。
注:複数メンバー群はアルファベット順にリストされる。
【0028】
品質スコア206に関連する重複データエントリが第1重複除去モジュール216によって除去されると、品質スコア206に関連するデータは汎用圧縮器234に送信され、該汎用圧縮器234は、可逆汎用圧縮器(例えば、gzip)を使用して、圧縮ファイルを生成することを担当する。
【0029】
同様に、配列塩基204に関連する重複データエントリが第2重複除去モジュール218によって除去されると、配列塩基204に関連するデータは汎用圧縮器234に直接送信されてもよく、該汎用圧縮器234は、可逆汎用圧縮器(例えば、gzip)を使用して、圧縮ファイルを生成することを担当する。
【0030】
特定の実施形態において、配列塩基204に関連するデータは、第2重複除去モジュール218から半重複除去モジュール220に送信され、該半重複除去モジュール220は、配列塩基204に関連するデータから類似のデータリードを除去する。半重複除去のプロセス例は
図4に示す。半重複除去モジュール220によって使用される例示的なアルゴリズムは以下に概説する。
入力:塩基配列、デフォルトハイパーパラメータ(SDR_diff)
出力:base_sequences (SDR_remaining_reads), SDR補助情報(SDR_read_numbers, SDR_change_loc), SDRエクストラ塩基配列(SDR_change_seq)
1.全ての入力リードをアルファベット順に並び替えるが、それらのリード番号を保持する。
2.半同一のリードを群分けする。ここで、半同一は、群の各メンバーと前のメンバーとの間の最初の差異が「SDR_diff」以下の位置にあることを意味する。よって、一部の群は単一メンバーであり、一部は複数メンバーである。SDRブロックにおいて、変化は、最初の差異から配列の末端までのサブ配列と見なされる。
例:seq1:AAAAAAAAAA、seq2:AAAAAAACAA => 変化したsub-seq=CAA
3.空の「SDR_change_seq」文字列及び「SDR_change_loc list」を作成する。複数メンバー群の各メンバーと前のメンバーとの間の変化を「SDR_change_seq」文字列に追加し、変化したsub-seqの長さを「SDR_change_loc」に追加する。
4.第1群及び複数メンバー群の最初のメンバーをリストし、リード番号に基づいて並び替え、SDR_remaining_readsと呼ぶ。
5.read numbersから前記群の最初のメンバーのリード番号を除去し、「SDR_read_numbers」と保存する。
【0031】
類似のデータリードが半重複除去モジュール220で除去されると、データは、可逆圧縮のために汎用圧縮器234に直接送信されてもよいし、データのランダムサブセットを生成するためにランダム配列発生器モジュール222に送信されてもよいし、又は辞書サブ配列除去モジュール226に送信されてもよい。ユーザ設定に応じて、ランダム配列発生器モジュール222は、システムの完全性を維持しながら計算リソースを保持するために、データのより小さな又はより大きなランダムサンプルを取ってもよい。ランダム配列発生器モジュール222によって使用される例示的なアルゴリズムは以下に概説する。
入力:配列塩基、デフォルトハイパーパラメータ(random_subset_percentage)
出力:random_subset
1.random_subset_percent %塩基配列をランダムに選択する
注:random_subset_percent=100の場合、理想的な辞書が得られるが、より小さなサンプルの場合、より短い時間でかなり優れた辞書が得られる。
【0032】
ランダム配列発生器モジュール222がデータのランダムサンプルを生成していると、それはk-mer辞書を作成するサブ配列辞書オプティマイザモジュール224を通過する。
【0033】
塩基204に関連する高密度k-merは、k-mer辞書においてバイナリ形式でリストされラベル付けされる。k-mer辞書における各k-merについて、該k-merをラベル付けする指数が存在する。これらの指数はバイナリで符号化される。データ圧縮プロセス中、実際のk-mer配列の代わりに、記録されているのはk-merの指数である。辞書におけるいくつかのk-merの最適値は、最適化問題を解決することで指定される。最適化問題の例示的な解決手段において、目的関数は、実際に圧縮することなくデータセットのランダムサブセットの圧縮サイズを大まかに見積もるために、圧縮アルゴリズムに基づいて開発される。次に、圧縮アルゴリズムのハイパーパラメータである最適化変数は指定される。最適化変数の値は、目的関数が最小化されるように、決定的又は確率的最適化アルゴリズムを使用して取得される。最後に、取得された最適値は、データセット全体の圧縮用のハイパーパラメータ値として使用される。
【0034】
次元削減も、k-mer辞書及び塩基204に関連する規則的な塩基214からのバイナリラベルを使用して行われ得る。次元削減以外の技術を適用する機械学習アルゴリズムも利用され得、最近傍分析、ベイジアンモデリング、回帰モデリング、サポートベクターマシン、及びニューラルネットワークを含むが、それらに限定されない。
【0035】
特定の実施形態において、システムは、
図5に示すように、k-merの前及び後のもの(左及び右コンパニオン)を予測し、それらをk-merと共に辞書に記憶する、「k-merコンパニオン(companion of k-mers)」と呼ばれる操作を実行する。
図5を参照すると、k-merの辞書の作成中、本発明のシステムは、ファイル内で完全に一致する高頻度のサブ配列を検索する。しかし、コンパニオンについて、本発明のシステムは、k-merの前又は後の高頻度の十分に類似するサブ配列(不完全一致)を検索する。そして、k-mer及びコンパニオンは、アルゴリズム例に存在する統計的特徴に基づいて選択できる。辞書作成中、k-merは、「完全一致」の場合に計数されるとともに、コンパニオンは、k-merと比較してその位置で「優勢」且つ「統計的に有意」である場合に計数される。
【0036】
加えて、特定の実施形態において、システムは動的辞書作成プロセスを実行する。辞書に追加される各サブ配列(mer)について、k-mer間でkリストにおける各k値に関して内部競合が存在する(例えば、kリスト=[10、15、20]の場合、k値ごとに1つずつ、合計3つの内部競合が存在する)。その内部競合には、内部競合の勝者間(この例では、ベスト10-mer、ベスト15-mer及びベスト20-mer)の外部競合が続く。外部競合の勝者は最終辞書に追加され、その例は
図6に示す。最終辞書の長さは、最適化コスト関数に基づいて辞書作成プロセス中に指定される。動的辞書作成のための例示的なアルゴリズムは以下に概説する。
入力:配列のランダムサブセット、デフォルトハイパーパラメータ:(kリスト, existancy_threshhold, dominancy_threshhold)。
出力:k-mer辞書
計数:
1.preliminary_dictと呼ばれる長さlen(k
list)のアレイを作成し、k
listにおける各k値についてアレイ要素は以下のようなk-mer辞書になる。
[キー:k-mer配列、値:k-mer頻度]
初期化:
2.kリストにおける各k値について
a.k-merの頻度を計数する
b.k-merをそれらの頻度に基づいて並び替える
c.第1位に並び替えられたk-merの次及び前(RL-k)である位置1での各ヌクレオチド(A、C、G及びT)の頻度を計数する
d.第1位のk-merのx個ごとに、k-merの右側及び左側の最初の(y_right及びy_left)ヌクレオチドを、以下の2つの閾値を通過できるprel_companion_right及びprel_companion_leftと見なす。
existency_ratio(k-mer(i),位置(j,RL(右又は左)))=(k-mer(i)及びk-merのRL側の位置(j)での任意のヌクレオチドを有するリードの数)/(k-mer(i)を有するリードの数)
dominancy_ratio(k-mer(i),位置(j,RL(右又は左)))=(k-mer(i)及びk-merのRL側の位置(j)での優勢ヌクレオチドを有するリードの数)/(k-mer(i)及びk-mer(i)のRL側の位置(j)での任意のヌクレオチドを有するリードの数)
3.各k値の全てのk-merのコンパニオンの初期化された長さと見なされる、(y_right(k-mer(i))+y_left(k-mer(i)))の(average + 2 * standard_deviation)を計算する。
競合:
予備的辞書において、k-merはk-merの頻度に基づいて並び替えられる。しかし、全てのk-merの初期化されたコンパニオンの長さが同じであるため、それらは実際にk-mer + 初期化されたコンパニオンにも基づいて並び替えられる。
4.read_listと呼ばれる空リストを作成する。それには最終辞書k-merを含有するリードのリード番号が記入される。
内部競合:
5.kリストにおける各k値について、
a)全てのk-merのinternal_compression_scoreを取得する。
【数4】
b)k-merの更新された頻度を取得する。更新された頻度=初期頻度-red_listに含まれるリードにおけるk-merの頻度。
c)existancy_threshold及びdominancy_threshholdに基づいて実際のコンパニオン(右及び左)を取得する。
d)第1位のk-merのみについてinternal_compression_scoreを更新し、それが第2位の現在のinternal_compression_scoreより大きい場合、第1位のものがこのk値の内部競合の勝者として選択される。第1位のk-merのスコアが第2位より小さい場合、それらをスコアに基づいて再並び替えし、つまり、第1位のものは、その更新したスコアに基づいてその属する順位に並び替えられ、そして、そのスコアを超える全てのk-merは1位上にシフトされる。このステップは内部勝者が選択されるまで継続する。
外部競合
6.各k値の内部競合の勝者は、external_compression_scoreに基づいて互いに競争すべきである。値がより高いk-merは最終辞書に追加される。
7.cost_functionを計算する。
注:下記式は、FASTQ/Aファイル内のk-merの既存の分布について、Size
compressed_seqsをdict_lenの関数として与える。
【数5】
【数6】
【数7】
【数8】
【数9】
【数10】
【数11】
【数12】
【数13】
【数14】
【数15】
Existence:長さnRのベクターであり、final_seq_dictionary k-mer(値=1)のいずれかを含むリード及び含まないリード(値=0)を示す。
Dict_Index
kmer:Existence=1の各リードの辞書におけるk-merのバイナリ指数。
Location
kmer:配列リードにおけるk-merの開始点のバイナリでの位置。
注:例えば、k=20及びRL=50の場合、k-merの開始点が31を越えることができないので、5ビットで符号化できるが、k=18の場合、開始点が、バイナリで符号化するために6ビットを要する33に増加するため、k-merが大きいほど、その位置のサイズは小さくしてもよい。
dict_len:最終seq辞書におけるk-merの数
η
penalty:コンパニオンに一致しないヌクレオチドの画分のペナルティ係数である。このペナルティ係数は、符号化中にコンパニオン(複数可)が優勢コンパニオン(辞書におけるcompanion_1st)に一致しない場合に、正しいヌクレオチドのタイプを保存する必要があるだけでなく、変化の位置及び数を記憶する必要もあるという理由によるものである。このペナルティ係数は、コスト関数の計算にコンパニオンミスマッチのコストを含めるのに役立つ。
注:辞書オプティマイザは、Size
compressed_seqsを最小化するために最適なdict_len値を取得する。
8.停止基準のいずれかが満たされる場合、最適な時点で最終の辞書をフリーズし、この関数を終了させる。そうでない場合、先に進む。
停止基準:
a)特定の反復数のコスト関数の増加(この場合、最適な辞書長さは、現在の反復数からpatient_factorを引いたものになる)。
b)max_dict_len反復に達する(この場合、最適な辞書長さは現在の反復数になる)。
9.read_listが更新される。
外部競合の敗者は最上位として内部競合に返され(段階4)、そのスコアが更新される。
【0037】
サブ配列辞書オプティマイザモジュール224から生成されたデータは辞書サブ配列除去モジュール226に渡される。辞書サブ配列除去モジュール226は、
図7に示すように、特定のk-merを辞書から除去することを担当する。辞書サブ配列除去モジュール226によって使用される例示的なアルゴリズムは以下に記載する。
入力:塩基配列、k-mer辞書。
出力:base_sequences (untouched_seqs), Dr補助情報(k-mer_dict_exist, k-mer_dict_index, k-mer_dict_loc, comp_loc_change, comp_num_change,) k-mer除去エクストラ配列(k-mer_dict_remain_seqs, comp_type_change)k-merk-merk-merk-mer
1.7つの空文字列を作成して、辞書k-merを含む配列に関する情報を符号化する。
k-mer_dict_exist(リードにおける辞書k-merの存在を符号化する)
k-mer_dict_index(リードにおける辞書k-merの指数を符号化する)
k-mer_dict_loc(リードにおける辞書k-merの開始位置を符号化する)
comp_num_change(リードにおける辞書k-merのコンパニオンとのミスマッチの数を符号化する)
comp_loc_change(リードにおける辞書k-merのコンパニオンとのミスマッチの位置を符号化する)
comp_type_change(リードにおける辞書k-merのコンパニオンとのミスマッチについて正しいヌクレオチドタイプを符号化する)
k-mer_dict_remain_seq(k-mer及びコンパニオンを除去した後にリードの残りの部分を符号化する)
untoched_seqs(辞書からのいずれのk-merも含まなかった配列)
2.リードごとに1ビットをk-mer_dict_existとして符号化する。0:リードが最終k-mer辞書からのいずれのk-merも含まない場合。1:含む場合。
3.最終の辞書k-merがリードに存在しない場合、
a.k-mer_dict_indexにおいてk-merの辞書指数を符号化する。
b.k-mer_dict_locにおいてリードにおけるk-merの最初の塩基の位置を符号化する。
c.最終辞書予測コンパニオンとリードにおけるk-merの実際のコンパニオンとの間のミスマッチの数を見つけ、それをcomp_num_changeにおいて符号化する。
d.comp_loc_changeにおいて前のステップで検出された差異の位置を符号化する。
e.comp_loc_typeにおいてステップ3.cで検出された差異のヌクレオチドタイプを符号化する。
f.k-mer_dict_remain_seqにおいてk-mer及びコンパニオンを除去した後にリードの残りの部分を符号化する。
注:圧縮技術のこのバージョンにおいて、リードごとに最大1つのk-merが考慮され、1つのリードにおいて1つより多く存在する場合、k-mer_dictionaryにおいて順位がより高いものは、最終の圧縮率がより高いため、選択される。
【0038】
辞書サブ配列除去モジュール226から、変更されたデータは、上述したように、配列塩基204に関連するデータから類似のデータリードを除去する第2半重複除去モジュール228に送信される。特定の実施形態において、システムは、第1半重複除去モジュール220とプロセスが同じでパラメータ値が異なり配列順序が逆の第2半重複除去モジュール228を使用する。
【0039】
類似のデータリードがデータから除去されると、データは、不規則なヌクレオチドを符号化することを担当する配列レギュラライザモジュール230に送信される。不規則なヌクレオチドは、A(アデノシン)、C(シトシン)、G(グアニン)、又はT(チロシン)でないものである。配列レギュラライザモジュール230によって使用される例示的なアルゴリズムは以下に記載する。
入力:塩基配列及び/又はエクストラ配列。
出力::塩基配列及び/又はエクストラ配列、配列レギュラライザ補助情報(irregular_reads_existence、irregular_nt_number、irregular_nt_location、及びnon_N_irregular_nt_info)。
注意:不規則なヌクレオチドはA、C、G及びT以外の任意のヌクレオチドを意味する。
1.irregular_reads_existance、irregular_nt_number irregular_nt_location及びnon_N_irregular_nt_infoと呼ばれる空文字列を作成して不規則なヌクレオチドの存在、数、位置及び不規則な非Nヌクレオチドの情報を符号化する。
2.irregular_reads_existenceでリードごとに1ビットを符号化する。0:このリードではヌクレオチドがない。1:少なくとも1つのヌクレオチドが存在する。
3.irregular_nt_numberで不規則なリードごとに不規則なヌクレオチドを符号化する。
4.irregular_nt_locationで、リードにおける各不規則なヌクレオチドの位置を符号化する。
5.non_N_irregular_nt_infoで、デフォルトで全ての不規則なヌクレオチド文字は、N(最も一般的な不規則ヌクレオチド)と想定され、任意の不規則な非Nヌクレオチドが観察されれば、その情報は、non_N_irregular_nt_info(irregular_read_index(i番目の不規則なリード)、irregular_nt_location index(その不規則なリードにおけるi番目の不規則なヌクレオチド)、タイプ)として符号化される。
6.non_N_irregular_nt_info=[ irregular_read_index, irregular_nt_location index, type]
【0040】
不規則なヌクレオチドが配列レギュラライザモジュール230で符号化されと、データは、塩基配列204をバイナリで符号化することを担当する配列バイナリ符号化モジュール232に送信される。配列バイナリ符号化モジュール232によって使用される例示的なアルゴリズムは以下に記載する。
入力:塩基配列。
出力:binary_base sequences
1.塩基配列は以下のハッシュテーブルを使用してバイナリで符号化される。
ヌクレオチドバイナリ符号化ハッシュテーブル
【表2】
注:不規則なヌクレオチドは、それらの情報が別々に記録されるため、一時的にA:[00]と記憶される。
【0041】
配列バイナリ符号化モジュール232からの符号化されたデータは汎用圧縮器234に送信される。汎用圧縮器234で、符号化されたバイナリデータセットは、可逆汎用圧縮器(例えば、gzip)で再度圧縮される。結果は圧縮されたFastQ/Aファイル236となる。様々な実施形態において、データは、第1半重複除去モジュール220、サブ配列辞書オプティマイザ224、辞書サブ配列除去モジュール226、第2半重複除去モジュール228、及び/又は配列レギュラライザモジュール230の1つ又は複数から汎用圧縮器234に直接送信されてもよい。汎用圧縮器のための例示的なアルゴリズムは以下に記載する。
入力:配列レギュラライザ補助情報、k-mer除去補助情報、k-mer辞書補助情報、SDR補助情報、DR補助情報、品質スコア配列、バイナリ塩基配列、圧縮された識別子
出力:final_compressed_file
目標は、汎用圧縮器の前ではなく、その後で最大の圧縮を実現することである。したがって、ドメイン固有圧縮における更なる圧縮が可能であるが、それらは、最終のファイルに対する影響が小さい又は悪いから、プロセスに含まれない。
最適化に使用されるハイパーパラメータ:
kリスト
random_subset_percentage
existency_threshhold
dominancy_threshhold
patient_factor
max_dict_len
ηpenalty
ideal_len
N*(1st SDR block)
N*(2nd SDR block)
【0042】
開示されるプロセスは、従来技術に比べて多数の利点を有する。これらの利点は以下を含む。
【0043】
(1)カスタマイズ圧縮:符号化プロトコルは厳しくない。代わりに、符号化プロトコル(及び対応する復号プロトコル)は各具体的なデータセットの特徴に基づいて最適に調整される。
【0044】
(2)圧縮率:開示される符号化プロトコルは、一般的な圧縮器及びゲノムデータ圧縮器より高い圧縮率が得られる。
【0045】
(3)参照不要:圧縮器は参照不要であり、配列を参照ゲノムにアライメントするという計算コストが高いプロセスを実行する必要がなくなる。
【0046】
(4)ゼロ損失:全符号化/復号プロセスは可逆である。
【0047】
(5)FastAファイル:符号化アルゴリズムは、配列データを独立して圧縮できる。したがって、FastQファイルに加えて、圧縮器はFastAファイルを圧縮するためにも使用できる。
【0048】
(6)不規則な非N塩基:不規則な塩基は、この方法の符号化プロセスにおいてNに限定されない。
【0049】
(7)圧縮時間:開示される符号化プロトコルは、一般的な圧縮器及びゲノムデータ圧縮器より速く圧縮できる。
【0050】
上記の説明及び図面は、単に本発明の原理を例示するものに過ぎないと見なすべきである。本発明は、好ましい実施形態に限定されることを意図せず、当業者に自明な様々な方式で実施できる。本発明の多数の用途は、当業者に容易に想到し得る。したがって、本発明を開示された特定の実施例又は示され説明された特定の構造及び操作に限定することは望ましくない。むしろ、全ての適切な修正及び均等物は、本発明の範囲内に収まるように使用できる。本明細書に引用される全ての参考文献は、参照によって組み込まれる。
【国際調査報告】