(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-18
(45)【発行日】2023-08-28
(54)【発明の名称】FPGAベースのリシーケンシング解析方法とデバイス
(51)【国際特許分類】
G16B 30/00 20190101AFI20230821BHJP
C12M 1/00 20060101ALI20230821BHJP
C12Q 1/6869 20180101ALI20230821BHJP
【FI】
G16B30/00
C12M1/00 A
C12Q1/6869 Z
(21)【出願番号】P 2021519716
(86)(22)【出願日】2018-10-23
(86)【国際出願番号】 CN2018111357
(87)【国際公開番号】W WO2020082224
(87)【国際公開日】2020-04-30
【審査請求日】2021-04-20
(73)【特許権者】
【識別番号】516122667
【氏名又は名称】深▲セン▼華大智造科技股▲ふん▼有限公司
【氏名又は名称原語表記】MGI Tech Co.,LTD
【住所又は居所原語表記】Main Building and Second Floor of No.11 Building,Beishan Industrial Zone,Yantian District,Shenzhen,Guangdong 518083,China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【氏名又は名称】廣田 浩一
(74)【代理人】
【識別番号】100107733
【氏名又は名称】流 良広
(74)【代理人】
【識別番号】100115347
【氏名又は名称】松田 奈緒子
(72)【発明者】
【氏名】インロン・シェ
(72)【発明者】
【氏名】ウェイファ・ファン
(72)【発明者】
【氏名】チェン・チェン
(72)【発明者】
【氏名】ジンブォ・タン
【審査官】渡邉 加寿磨
(56)【参考文献】
【文献】特表2018-503164(JP,A)
【文献】中国特許出願公開第107609350(CN,A)
【文献】米国特許出願公開第2016/0259880(US,A1)
【文献】特表2015-515042(JP,A)
【文献】中国特許出願公開第107194204(CN,A)
【文献】米国特許出願公開第2017/0277830(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G16B 5/00-99/00
G16C 10/00-99/00
G16Z 99/00
C12M 1/00
C12Q 1/6869
(57)【特許請求の範囲】
【請求項1】
フィールドプログラマブルゲートアレイ(FPGA)ベースのリシーケンシング解析方法であって、
基本ゲノムリシーケンシングデータ、及び前記基本ゲノムリシーケンシングデータを記述するパラメータ情報を含むゲノムリシーケンシングデータを受信することと、
前記基本ゲノムリシーケンシングデータ、及び前記基本ゲノムリシーケンシングデータを記述する前記パラメータ情報に基づいて、アラインメント結果を出力するための第1のタスク、並びに前記アラインメント結果をソート及びデデュプリケートするための第2のタスクを決定することと、
前記FPGAからの前記第1のタスクに対応する第1のスレッド、及びCPUからの前記第2のタスクに対応する第2のスレッドを割り当てることと、
FPGAの入力として前記ゲノムリシーケンシングデータを取得し、前記FPGAの出力に基づくリシーケンシングのプロセスにおいて前記アラインメント結果を決定し、同時に、前記アラインメント結果をソート及びデデュプリケートすることと、
ソートされ且つデデュプリケートされた前記アラインメント結果を、塩基クオリティ値(base quality value)に応じて補正をすることと、
補正された前記アラインメント結果に基づいてバリエーション結果を検出することと、を含み
、
アラインメント、前記ソート、及び前記デデュプリケートの各プロセスは、並行して実行され、
前記アラインメント結果をソート及びデデュプリケートすることは、前記第1のタスクに対応する前記第1のスレッドと、前記第2のタスクに対応する前記第2のスレッドとを並行して開始及び実行して、前記ゲノムリシーケンシングデータが、それぞれのスレッドを介して呼び出されるようにすること、並びに前記第1のタスクに対応する前記第1のスレッドの出力結果を介するリシーケンシングのプロセスにおける前記アラインメント結果を決定し、同時に、前記第2のタスクに対応する前記第2のスレッドの出力結果を介して前記アラインメント結果をソート及びデデュプリケートすることを含むこと特徴とするFPGAベースのリシーケンシング解析方法。
【請求項2】
ゲノムリシーケンシングデータの受信後に、前記FPGAベースのリシーケンシング解析方法は、
前記ゲノムリシーケンシングデータを、プリセットされた長さの配列に基づきハッシュ計算することを更に含み、
FPGAの入力として前記ゲノムリシーケンシングデータを取得することが、前記FPGAの入力としてハッシュ計算されたゲノムリシーケンシングデータを取得することを更に含む、請求項1に記載のFPGAベースのリシーケンシング解析方法。
【請求項3】
前記第1のタスクに対応する前記第1のスレッドの出力結果を介するリシーケンシングのプロセスにおける前記アラインメント結果を決定することが、
前記第1のタスクに対応する前記第1のスレッドを実行して、標的アラインメント位置を決定することと、
前記標的アラインメント位置に応じて、前記基本ゲノムリシーケンシングデータ内の重複塩基対上でのアラインメントをトリガーすることと、
前記重複塩基対のアラインメント結果を、リシーケンシングのプロセスにおいてアラインメント結果として取得することと、を更に含む請求項1に記載のFPGAベースのリシーケンシング解析方法。
【請求項4】
前記標的アラインメント位置の決定後に、
ピンポンバッファリング技術を使用して、前記標的アラインメント位置をキャッシュすることを更に含む、請求項3に記載のFPGAベースのリシーケンシング解析方法。
【請求項5】
前記ゲノムリシーケンシングデータを、複数の固定長のゲノムリシーケンシングサブセットに分割することと、
前記複数の固定長のゲノムリシーケンシングサブセットをレファレンスゲノムにアラインメントし、アラインメント結果の複数のサブセットを取得することと、
前記アラインメント結果の複数のサブセットを組み合わせて、アラインメント結果を取得することと、を更に含む、請求項1から4のいずれかに記載のFPGAベースのリシーケンシング解析方法。
【請求項6】
前記レファレンスゲノム上のアラインメント位置にしたがって、前記アラインメント結果をソートすることと、
同じ位置にアラインメントされた前記ゲノムリシーケンシングデータをデデュプリケートすることと、を更に含む、請求項5に記載のFPGAベースのリシーケンシング解析方法。
【請求項7】
FPGAベースのリシーケンシング解析デバイスであって、
基本ゲノムリシーケンシングデータ、及び前記基本ゲノムリシーケンシングデータを記述するパラメータ情報を含むゲノムリシーケンシングデータを受信するように構成された受信モジュールと、
前記ゲノムリシーケンシングデータの受信後に、前記基本ゲノムリシーケンシングデータ、及び前記基本ゲノムリシーケンシングデータを記述する前記パラメータ情報に基づいて、アラインメント結果を出力するための第1のタスク、並びに前記アラインメント結果をソート及びデデュプリケートするための第2のタスクを決定するように構成された決定モジュールと、
前記FPGAからの前記第1のタスクに対応する第1のスレッドと、CPUからの前記第2のタスクに対応する第2のスレッドとを割り当てるように構成された割り当てモジュールと、
FPGAの入力として前記ゲノムリシーケンシングデータを取得し、前記FPGAの出力に基づくリシーケンシングのプロセスにおいてアラインメント結果を決定し、同時に、前記アラインメント結果をソート及びデデュプリケートするように構成された処理モジュールと、
ソートされ且つデデュプリケートされた前記アラインメント結果を、塩基クオリティ値に応じて補正をするように構成された補正モジュールと、
補正されたアラインメント結果に基づいてバリエーション結果を検出するように構成された検出モジュールと、を含み
、
アラインメント、前記ソート、及び前記デデュプリケートの各プロセスは、並行して実行され、
前記処理モジュールは、前記第1のタスクに対応する前記第1のスレッドと、前記第2のタスクに対応する前記第2のスレッドとを並行して開始及び実行して、それぞれのスレッドを介して前記ゲノムリシーケンシングデータを呼び出すように構成された開始及び実行ユニット、並びに前記第1のタスクに対応する第1のスレッドの出力結果を介してリシーケンシングのプロセスにおける前記アラインメント結果を決定し、同時に、前記第2のタスクに対応する前記第2のスレッドの出力結果を介して前記アラインメント結果をソート及びデデュプリケートするように構成された決定及び処理ユニットを含むことを特徴とするFPGAベースのリシーケンシング解析デバイス。
【請求項8】
前記ゲノムリシーケンシングデータの受信後に、前記ゲノムリシーケンシングデータを、プリセットされた長さの配列に基づきハッシュ計算するように構成された計算モジュールを更に含み、
前記処理モジュールが、前記FPGAの前記入力としてハッシュ計算されたゲノムリシーケンシングデータを取得するように構成されている請求項7に記載のFPGAベースのリシーケンシング解析デバイス。
【請求項9】
前記処理モジュールが、
前記第1のタスクに対応する前記第1のスレッドを実行して、標的アラインメント位置を決定し、
前記標的アラインメント位置に応じて、前記基本ゲノムリシーケンシングデータ内の重複塩基対上でのアラインメントをトリガーし、
前記重複塩基対のアラインメント結果を、リシーケンシングの前記プロセスにおける前記アラインメント結果として取得するように構成されている請求項7に記載のFPGAベースのリシーケンシング解析デバイス。
【請求項10】
前記決定及び処理ユニットが、ピンポンバッファリング技術を使用することによって、前記標的アラインメント位置をキャッシュするように更に構成されている請求項9に記載のFPGAベースのリシーケンシング解析デバイス。
【請求項11】
コンピュータデバイスであって、
メモリと、
プロセッサと、
前記メモリに格納され且つ前記プロセッサによって実行可能なコンピュータプログラムと、を含み、
前記コンピュータプログラムは、前記プロセッサによって実行されると、請求項1から6のいずれかに記載のフィールドプログラマブルゲートアレイ(FPGA)ベースのリシーケンシング解析方法を達成することを特徴とするコンピュータデバイス。
【請求項12】
請求項1から6のいずれかに記載のフィールドプログラマブルゲートアレイ(FPGA)ベースのリシーケンシング解析方法を、コンピュータに実行させるコンピュータ可読命令をその内部に格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、バイオインフォマティクス解析技術の分野に関し、特に、フィールドプログラマブルゲートアレイ(FPGA)ベースのリシーケンシング解析方法及びデバイスに関する。
【背景技術】
【0002】
次世代遺伝子シーケンシング技術の登場に伴い、遺伝子シーケンシングは急速に低コストとなり、シーケンシングデータの利用性が向上している。ゲノムにおけるバリエーションの検出と相関研究は、医学分野における発展を促進すると考えられる。しかし、ヒトゲノムは、30億を超える比較的多い塩基対で構成されている。そのため、ヒトゲノムのシーケンシング及び解析を行う場合、高いコンピューティング能力、ストレージ容量、及びネットワーク帯域幅が必要とされる。
【0003】
関連技術において、リシーケンシング解析は、シーケンシング配列のアラインメント及びバリエーションの検出を含み、シーケンシング配列のアラインメントは、ダイナミックシード-アンド-エクステンドアルゴリズムを採用している。初期のシード長で得られるアラインメント位置の数が一定の値を超えると、シード長を延ばしてアラインメント位置を少なくする。続いて、Smith-Watermanアルゴリズムをアラインメントに使用し、複数のスレッドをバリエーションの検出に使用する。
【0004】
しかし、前記方法では、各ステップが順次行われるので、実行効率及び解析率が低い。
【発明の概要】
【0005】
本開示は、実施形態において、フィールドプログラマブルゲートアレイ(FPGA)ベースのリシーケンシング解析方法及びデバイスを提供し、プログラム実行時間及び計算コストを削減し、リシーケンシング効率を改善することにより、先行技術における低い実行効率及び遅い解析速度という技術的問題点を解決する。
【0006】
一態様では、本開示は、実施形態において、FPGAベースのリシーケンシング解析方法を提供し、前記方法は、
ゲノムリシーケンシングデータを受信することと、
FPGAの入力として前記ゲノムリシーケンシングデータを取得し、FPGAの出力に基づくリシーケンシングのプロセスにおいてアラインメント結果を決定し、同時に、前記アラインメント結果をソート及びデデュプリケートすることと、
ソートされ且つデデュプリケートされた前記アラインメント結果を、塩基クオリティ値(base quality value)に応じて補正をすることと、
補正された前記アラインメント結果に基づいてバリエーション結果を検出することと、を含む。
【0007】
本開示の実施形態によれば、FPGAベースのリシーケンシング解析方法は、ゲノムリシーケンシングデータを受信し、FPGAの入力として前記ゲノムリシーケンシングデータを取得し、FPGAの出力に基づくリシーケンシングのプロセスにおいてアラインメント結果を決定し、同時に、前記アラインメント結果をソート及びデデュプリケートし、ソートされ且つデデュプリケートされた前記アラインメント結果を、塩基クオリティ値に応じて補正し、補正された前記アラインメント結果に基づいてバリエーション結果を検出する。本開示の実施形態では、アライニング、ソーティング、及びデデュプリケートの各プロセスを並行して実行させることができ、プログラムの実行時間及び計算コストが削減されることによって、リシーケンシング効率を改善する。
【0008】
別の態様では、本開示は、実施形態において、FPGAベースのリシーケンシング解析デバイスを提供し、前記デバイスは、
ゲノムリシーケンシングデータを受信するように構成された受信モジュールと、
FPGAの入力として前記リシーケンシングデータを取得し、FPGAの出力に基づくリシーケンシングのプロセスにおいてアラインメント結果を決定し、同時に、前記アラインメント結果をソート及びデデュプリケートするように構成された処理モジュールと、
ソートされ且つデデュプリケートされた前記アラインメント結果を、塩基クオリティ値に応じて補正をするように構成された補正モジュールと、
補正されたアラインメント結果に基づいてバリエーション結果を検出するように構成された検出モジュールと、を含む。
【0009】
本開示の実施形態によれば、FPGAベースのリシーケンシング解析デバイスは、ゲノムリシーケンシングデータを受信し、FPGAの入力として前記ゲノムリシーケンシングデータを取得し、FPGAの出力に基づくリシーケンシングのプロセスでアラインメント結果を決定し、同時に、前記アラインメント結果をソート及びデデュプリケートし、ソートされ且つデデュプリケートされた前記アラインメント結果を、塩基クオリティ値に応じて補正をし、補正された前記アラインメント結果に基づいてバリエーション結果を検出する。本開示の実施形態では、アライニング、ソーティング、及びデデュプリケートの各プロセスを並行して実行させることができ、プログラムの実行時間及び計算コストが削減されることによって、リシーケンシング効率を改善する。
【0010】
別の態様では、本開示は、実施形態において、メモリ、プロセッサ、及び前記メモリに格納され、前記プロセッサによって実行可能なコンピュータプログラムを含むコンピュータデバイスを提供し、前記コンピュータプログラムは、前記プロセッサによって実行されると、本開示の前記実施形態に係るフィールドプログラマブルゲートアレイ(FPGA)ベースのリシーケンシング解析方法を達成する。
【0011】
別の態様では、本開示は、実施形態において、本開示の前記実施形態に係るフィールドプログラマブルゲートアレイ(FPGA)ベースのリシーケンシング解析方法をコンピュータに実行させるコンピュータ可読命令を格納したコンピュータ可読記憶媒体を提供する。
【0012】
本開示の更なる態様及び利点は、その一部が以下の記載に示され、いくつかは、以下の記載にしたがって明らかになる又は本開示の実施を通して理解されよう。
【0013】
本開示の実施形態をより明確に記載するために、実施例で使用する必要のある図面を以下に簡単に説明する。以下の記載における図面は、本開示の一部の例であり、当業者の創造性なしに、他の図面をこれらの図面から得ることができることは明らかである。
【図面の簡単な説明】
【0014】
【
図1】
図1は、本開示の実施例1におけるFPGAベースのリシーケンシング解析方法を示すフローチャートである。
【
図2】
図2は、本開示の実施例2におけるFPGAベースのリシーケンシング解析方法を示すフローチャートである。
【
図3】
図3は、本開示の実施例に係るFPGAベースのリシーケンシング解析システムを示す概略
図1である。
【
図4】
図4は、本開示の実施例に係るピンポンバッファリング技術(ping-pong buffering technology)を使用したアクセラレーションを示す概略図である。
【
図5】
図5は、本開示の実施例に係るFPGAベースのリシーケンシング解析システムを示す概略
図2である。
【
図6】
図6は、本開示の実施例に係る実行タイミングシーケンスの概略図である。
【
図7】
図7は、本開示の実施例に係るFPGAベースのリシーケンシング解析システムを示す概略
図3である。
【
図8】
図8は、本開示の実施例3におけるFPGAベースのリシーケンシング解析方法を示すフローチャートである。
【
図9】
図9は、本開示の実施例4におけるFPGAベースのリシーケンシング解析デバイスを示す概略図である。
【
図10】
図10は、本開示の実施例5におけるFPGAベースのリシーケンシング解析デバイスを示す概略図である。
【発明を実施するための形態】
【0015】
本開示の実施形態について詳細に記載する。同一又は類似の要素及び同一又は類似の機能を有する要素は、明細書全体を通して同じ参照番号で示す。図面を参照しつつ本明細書に記載される実施形態は、説明的、例示的であり、本開示の概要を理解するために使用される。実施形態は、本開示を限定するものと解釈されるべきではない。
【0016】
本開示の実施形態におけるFPGAベースのリシーケンシング解析方法及びデバイスを、図面を参照して以下に説明する。本開示の実施形態を詳細に記載するのに先立ち、理解を容易にするために、まず、一般的な技術用語を定義する。
【0017】
フィールドプログラマブルゲートアレイ(FPGA)は、ロジックアレイモジュール、組込みメモリモジュール、デジタルシグナルプロセッサ(DSPと略記)モジュールを接続するプログラマブル配線ネットワークを含む構成可能な集積回路であり、プログラム命令を処理するためのセントラルプロセシングユニット(CPU)及びグラフィクスプロセシングユニット(GPU)のデータパス及びトポロジが固定されている。更に、FPGAリソースは、データ処理のためのカスタマイズされた命令パイプラインを確立するように構成及び接続することができ、結果として得られるシステム構成が、多くの種類のコンピューティング上の問題点を効率的に解決できるようにする。更に、十分に開発され且つ大規模に使用される用途は、より速いがより柔軟性が低い特定用途向け集積回路(ASICと略記)を設計するための基礎及び検証としてFPGAを用いることもある。
【0018】
リシーケンシングとは、既知のゲノム配列を有する種について、異なる個体の各ゲノムをシーケンシングすることを意味し、これに基づいて、個体間又は集団間でのバリエーションが解析される。多数の一塩基多型(SNP)部位並びに挿入及び欠失部位は、各個体のシーケンシング後のゲノムにおけるバリエーションを検出することによって決定することができる。
【0019】
図1は、本開示の実施例1におけるFPGAベースのリシーケンシング解析方法を示すフローチャートである。
【0020】
本開示の本実施例では、FPGAベースのリシーケンシング解析デバイスに構成されたFPGAベースのリシーケンシング解析方法を、説明のための一例として取り上げる。FPGAベースのリシーケンシング解析デバイスは、コンピュータデバイスがFPGAベースのリシーケンシング解析を実行することができるように、任意のコンピュータデバイスで構成することができる。
【0021】
図1に示すように、FPGAベースのリシーケンシング解析方法には、以下のステップ101~ステップ104を含む。
【0022】
ステップ101において、ゲノムリシーケンシングデータが受信される。
【0023】
本開示の実施例では、ゲノムリシーケンシングデータは、基本ゲノムリシーケンシングデータ及び基本ゲノムリシーケンシングデータを記述するパラメータ情報を含む。
【0024】
任意に、ゲノムリシーケンシングデータを事前にプリセットファイルに書き込むことができ、ゲノムがリシーケンシングされるときに読み取ることができ、これにより、プリセットファイルに基づくゲノムリシーケンシングデータを取得することができる。
【0025】
更に、プリセットファイルは、一般に、例えば、gzなどの形式で圧縮ファイルとして保存される。したがって、プリセットファイルは、読み取り前に解凍することもできる。
【0026】
ステップ102において、FPGAの入力としてゲノムリシーケンシングデータが取得され、リシーケンシングのプロセスにおいてアラインメント結果がFPGAの出力に基づいて決定され、同時に、アラインメント結果がソートされ、デデュプリケートされる。
【0027】
本開示の実施例では、ゲノムリシーケンシングデータをレファレンスゲノムにアラインメントして、アラインメント位置などの情報を取得することができる。次いで、得られた情報をFPGAに送信し計算して、アラインメント結果を得ることができる。可能な実施として、アラインメント効率を改善するために、FPGAの並列処理プロパティを用いることができ、ゲノムリシーケンシングデータを、複数の固定長のゲノムリシーケンシングサブセットに分割し、複数の固定長のゲノムリシーケンシングサブセットを、アラインメント結果の複数のサブセットの取得と並行して、レファレンスゲノムにアラインメントし、アラインメントサブ結果の複数のサブセットを組み合わせて、アラインメント結果を取得する。
【0028】
得られたアラインメントは、同時に、レファレンスゲノム上のアラインメント位置にしたがってソートすることができ、同じ位置にアラインメントされたゲノムリシーケンシングデータをデデュプリケートすることができる。その理由は、重複したゲノムリシーケンシングデータは、シーケンシング深度などのアラインメントの比較と評価に影響を及ぼし、最終的にはバリエーションの検出において偽陽性につながるからである。そのため、同じ位置にアラインメントされたゲノムリシーケンシングデータをデデュプリケートすることができる。
【0029】
任意に、ゲノムリシーケンシングデータを、バイオインフォマティクスソフトウェア及びアラインメントスクリプトを呼び出すことによってアラインメントして、リシーケンシングのプロセスでアラインメント結果を決定することができる。次いで、アラインメント結果を、バイオインフォマティクスソフトウェア並びにソート及びデデュプリケートスクリプトによってソート及びデデュプリケートして、ソートされ且つデデュプリケートされたアラインメント結果が決定される。バイオインフォマティクスソフトウェアとしては、BuildAlignerIndex、Alignment、SortMarkDup、BuildBQSRIndex、BQSR、及びHaplotypeCallerが挙げられる。
【0030】
例えば、ゲノムリシーケンシングデータは、33~160bpの長さのペアエンドショートリードのアラインメントをサポートするFPGAアクセラレーテッド高性能DNAシーケンスアラインメントソフトウェアによってアラインメントすることができる。アラインメント結果は、パイプの入力と出力をサポートするマルチスレッドアクセラレーテッド高性能ソーティング・デデュプリケーティングソフトウェアによってソート及びデデュプリケートを行うことができ、これにより、ソーティング及びデデュプリケーティングの効率を改善する。
【0031】
本開示の実施例では、アライニング、ソーティング、及びデデュプリケートの各プロセスを並行して実行することができるので、プログラムの実行時間及び計算コストを削減し、それにより、リシーケンシング効率を改善することができる。
【0032】
ステップ103において、ソートされ且つデデュプリケートされたアラインメント結果が、塩基クオリティ値に応じて補正される。
【0033】
本開示の実施例では、アラインメント結果を塩基クオリティ値に応じて現実に近づけ、レファレンスゲノムとのミスマッチの可能性を低減するために、ソートされ且つデデュプリケートされたアラインメント結果を塩基クオリティ値に応じて補正をすることができる。即ち、ソートされ且つデデュプリケートされたアラインメント結果が、ゲノムリシーケンシングデータ内の塩基クオリティ値に応じて補正される。
【0034】
任意に、バイオインフォマティクスソフトウェア及び塩基クオリティ値補正スクリプトを呼び出すことにより、ソートされ且つデデュプリケートされたアラインメント結果を塩基クオリティ値に応じて補正して、補正されたアラインメント結果を取得することができる。例えば、パイプの入力及び出力をサポートするマルチスレッドアクセラレーテッド高性能塩基クオリティ値補正ソフトウェアにより、塩基クオリティ値に応じて、ソートされ且つデデュプリケートされたアラインメント結果を補正し、補正効率を改善することができる。
【0035】
ステップ104において、補正されたアラインメント結果に基づいてバリエーション結果が検出される。
【0036】
本開示の実施例において、バリエーション結果の検出は、一塩基多型(SNP)部位の検出並びに挿入及び欠失部位の検出を含む。バリエーション結果は、補正されたアラインメント結果及び関連情報に基づいて検出することができる。
【0037】
任意に、バイオインフォマティクスソフトウェア及びバリエーション検出スクリプトを呼び出して、補正されたアラインメント結果に基づきバリエーション結果を検出することにより、検出結果を決定することができる。例えば、FPGAアクセラレーテッド高性能バリエーション検出ソフトウェアによる補正されたアラインメント結果に基づきバリエーション結果を検出し、バリエーション検出結果を取得することにより、バリエーション検出の効率を改善することができる。
【0038】
本開示の実施例によれば、FPGAベースのリシーケンシング解析方法は、ゲノムリシーケンシングデータを受信し、FPGAの入力として前記ゲノムリシーケンシングデータを取得し、FPGAの出力に基づくリシーケンシングのプロセスにおいてアラインメント結果を決定し、同時に、前記アラインメント結果をソート及びデデュプリケートし、ソートされ且つデデュプリケートされた前記アラインメント結果を、塩基クオリティ値に応じて補正をし、補正された前記アラインメント結果に基づいてバリエーション結果を検出する。本開示の実施形態では、アライニング、ソーティング、及びデデュプリケートの各プロセスを並行して実行することができ、プログラムの実行時間及び計算コストが削減されることによって、リシーケンシング効率を改善する。
【0039】
可能な実施として、ゲノムリシーケンシングデータの受信後に、ゲノムリシーケンシングデータを、更に、プリセットされた長さの配列に基づきハッシュ計算することができ、FPGAの入力としてハッシュ計算されたゲノムリシーケンシングデータが取得される。したがって、レファレンスゲノム内のアラインメント位置を素早く特定することができ、それによってメモリへのランダムアクセスを低減させることで、アラインメント効率が向上する。
【0040】
前記実施例をより明確に説明するために、本開示は、実施例において、別のFPGAベースのリシーケンシング解析方法を提供する。
【0041】
図2は、本開示の実施例2におけるFPGAベースのリシーケンシング解析方法を示すフローチャートである。
【0042】
図2に示すように、FPGAベースのリシーケンシング解析方法は、以下のステップ201~ステップ207を含むことができる。
【0043】
ステップ201において、ゲノムリシーケンシングデータが受信されるが、前記ゲノムリシーケンシングデータは、基本ゲノムリシーケンシングデータ及び基本ゲノムリシーケンシングデータを記述するパラメータ情報を含む。
【0044】
例えば、参照する
図3は、本開示の実施例に係るFPGAベースのリシーケンシング解析システムを示す概略
図1であり、リシーケンシング解析システムは、タスクスケジューリングユニット1、解析ユニット2、及び結果生成ユニット3を含む。タスクスケジューリングユニット1は、基本ゲノムリシーケンシングデータ及び基本ゲノムリシーケンシングデータを記述するパラメータ情報を受信するように構成される。
【0045】
ステップ202において、アラインメント結果を出力するための第1のタスクと、アラインメント結果をソート及びデデュプリケートするための第2のタスクとは、基本ゲノムリシーケンスデータ及び基本ゲノムリシーケンスデータを記述するパラメータ情報に基づいて決定される。
【0046】
本開示の実施例では、アライニング、ソーティング、及びデデュプリケートの各プロセスが並行して実行されるので、プログラムの実行時間及び計算コストが削減されて、リシーケンシング効率が改善する。そのため、ゲノムリシーケンシングデータが受信されると、アラインメント結果を出力するための第1のタスクと、アラインメント結果をソート及びデデュプリケートするための第2のタスクとの両方を、基本ゲノムリシーケンシングデータ及び基本ゲノムリシーケンスデータを記述するパラメータ情報に基づいて並行して決定することができる。
【0047】
例えば、
図3を参照すると、タスクスケジューリングユニット1は、基本ゲノムリシーケンシングデータ及び基本ゲノムリシーケンシングデータを記述するパラメータ情報に基づいて、アラインメント結果を
出力するための第1のタスクと、アラインメント結果をソート及びデデュプリケートするための第2のタスクとの両方を並行して決定するように構成することができる。次いで、第1のタスク及び第2のタスクを、プロセススケジュールされた解析ユニット2に送ることができる。例えば、解析ユニット2は、バイオインフォマティクスソフトウェア及びシステムスケジューリングスクリプトによってプロセススケジュールすることができる。
【0048】
ステップ203において、第1のタスクに対応する第1のスレッド、及び第2のタスクに対応する第2のスレッドが、それぞれFPGA及びCPUから割り当てられる。
【0049】
本開示の実施例では、第1のタスク及び第2のタスクの決定後、第1のタスクに対応する第1のスレッド、及び第2のタスクに対応する第2のスレッドは、それぞれFPGA及びCPUから割り当てることができる。
【0050】
ステップ204において、第1のタスクに対応する第1のスレッド、及び第2のタスクに対応する第2のスレッドが並行して開始及び実行され、ゲノムリシーケンシングデータがそれぞれのスレッドを介して呼び出される。
【0051】
本開示の実施例では、第1のタスクに対応する第1のスレッド、及び第2のタスクに対応する第2のスレッドは、決定後、並行して開始及び実行することができ、ゲノムリシーケンシングデータは、アライニング、ソーティング、及びデデュプリケートのためにそれぞれのスレッドを介して呼び出される。
【0052】
ステップ205において、リシーケンシングのプロセスにおいてアラインメント結果は、第1のタスクに対応する第1のスレッドの出力結果を介して決定され、同時に、アラインメント結果は、第2のタスクに対応する第2のスレッドの出力結果を介してソート及びデデュプリケートされる。
【0053】
本開示の実施例では、ゲノムリシーケンシングデータが第1のタスクに対応する第1のスレッドを介して呼び出された後、リシーケンシングのプロセスにおいて、アラインメント結果を、第1のタスクに対応する第1のスレッドの出力結果に基づいて決定することができる。可能な実施として、第1のタスクに対応する第1のスレッドを実行して、標的アラインメント位置を決定することができ、基本ゲノムリシーケンシングデータにおける重複塩基対上でのアラインメントが、標的アラインメント位置にしたがってトリガーされ、重複塩基対のアラインメント結果は、リシーケンシングのプロセスにおいてアラインメント結果として取得される。例えば、
図3を参照すると、解析ユニット2は、バイオインフォマティクスソフトウェア及びアラインメントスクリプトをプロセス呼び出しし、ソフトウェアをアクセラレートし、FPGAからの第1のタスクに対応する第1のスレッドを呼び出すことによって、ゲノムリシーケンシングデータを解析してアラインメント結果を決定するように構成することができる。
【0054】
本開示の実施例では、アラインメント結果を、ソーティング及びデデュプリケーティングのために、第2のタスクに対応する第2のスレッドを介して呼び出すことができる。例えば、
図3を参照すると、解析ユニット2は、バイオインフォマティクスソフトウェア並びにソーティング及びデデュプリケーティングスクリプトをプロセス呼び出しし、ソフトウェアをアクセラレートし、第2のタスクに対応する第2のスレッドをCPUから呼び出すことによって、アラインメント結果をソート及びデデュプリケートするように構成することができる。
【0055】
ステップ206において、ソートされ且つデデュプリケートされたアラインメント結果は、塩基クオリティ値に応じて補正される。
【0056】
ステップ207において、補正されたアラインメント結果に基づきバリエーション結果が検出される。
【0057】
例えば、
図3を参照すると、解析ユニット2は、バイオインフォマティクスソフトウェア及び塩基クオリティ値補正スクリプトをプロセス呼び出しすることによって、塩基クオリティ値に応じて、ソートされ且つデデュプリケートされたアラインメント結果を補正するように構成することができる。更に、解析ユニット2は、補正されたアラインメント結果に基づいてバリエーション結果を検出し、バイオインフォマティクスソフトウェア及びバリエーション検出スクリプトをプロセス呼び出しすることによって、バリエーション検出結果を決定するように構成することができる。
【0058】
更に、
図3を参照すると、バリエーション検出結果の取得後、結果生成ユニット3は、解析ユニット2からのバリエーション検出結果を、タスクスケジューリングユニット1によって送信される基本ゲノムリシーケンシングデータを記述するパラメータ情報に基づく指定位置に送るように構成される。
【0059】
本開示の実施例では、バイオインフォマティクスソフトウェア及びパーソナライズされた解析スクリプトを呼び出し、ソフトウェアをアクセラレートし、FPGAからリソースを呼び出すことにより、ゲノムリシーケンシングデータを解析することで、ゲノムリシーケンシング効率を改善する。
【0060】
可能な実施として、標的アラインメント位置を、ピンポンバッファリング技術によってキャッシュすることができる。例えば、参照する
図4は、本開示の実施例に係るピンポンバッファリング技術を使用したアクセラレーションを示す概略図である。FPGAのグローバルメモリ内のデータは、ピンポンバッファリング技術を使用してキャッシュされる。その理由は、CPUによるFPGAのグローバルメモリでの読み取り/書き込み操作をFPGAカーネルモジュールによる計算操作と並行して実行できるので、実行効率が向上するからである。
【0061】
「グローバルメモリの書き込み→カーネルの実行→グローバルメモリの読み取り」という従来の一連の実行モードを使用すると、FPGAの計算モジュールは、一定期間、入力/出力(I/O)を待機する状態となり、実行効率が低下する。そのため、ピンポンバッファ技術を使用して、標的アラインメント位置などのFPGAグローバルメモリにデータをキャッシュすると、FPGAの計算モジュールを常に効率的に動作する状態に維持することができ、単一のタスクの複数のサブタスクを、パイプラインで実行させることが可能になるので、タスクの並列実行が達成される。例えば、
図4を参照すると、キャッシュ1から読み取られ出力されるタスクT1、キャッシュ2によってデータ計算されるタスクT2、及びキャッシュ1に書き込まれ入力されるタスクT3が、タイムスライスC3で並行して行われる。
【0062】
一例として、参照する
図5は、本開示の実施例に係るFPGAベースのリシーケンシング解析システムを示す概略
図2である。FPGAベースのリシーケンシング解析システムは、アライニングモジュール4、ソーティング・デデュプリケーティングモジュール5、塩基クオリティ値ベースの補正モジュール6、及びバリエーション検出モジュール7を含む。
【0063】
アライニングモジュール4は、受信したゲノムリシーケンシングデータをレファレンスゲノムにアラインメントするように且つアラインメントされたデータを計算のためにFPGAに送信するように構成されることによって、アラインメント結果を取得し、これをSAM形式ファイルに保存することができる。
【0064】
ソーティング・デデュプリケーティングモジュール5は、アラインメント位置に応じて、アラインメントモジュール4から出力されたデータをソートするように且つ重複データをマークしてフィルタリングするように構成される。ソートされ且つデデュプリケートされたアラインメント結果は、BAM形式ファイルに保存することができる。
【0065】
塩基クオリティ値ベースの補正モジュール6は、塩基クオリティ値に応じて、ソーティング・デデュプリケーティングモジュール5から出力されたデータを補正するように構成される。補正されたアラインメント結果は、BAM形式ファイルに保存することができる。
【0066】
バリエーション検出モジュール7は、バイオインフォマティクスソフトウェア及び解析スクリプトを呼び出すことによって、塩基クオリティ値ベースの補正モジュール6から出力されたデータに基づきバリエーション結果を検出するように構成される。バリエーション結果の検出は、一塩基多型(SNP)部位の検出並びに挿入及び欠失部位の検出を含む。バリエーション検出結果は、VCF又はgVCF形式のファイルに保存することができる。
【0067】
実施例について参照される
図6は、本開示の実施例に係る実行タイミングシーケンスの概略図である。
図6では、Fastq入力ファイルを使用して、隣接するステップ間のデータの計算モードを調整し、対応する入力バッファ及び出力バッファを追加することによって、計算プロセス全体がパイプライン構造として最適化される。
【0068】
具体的には、プログラムの開始時に実行されるアラインメントモジュールは、入力ファイル内のゲノムリシーケンシングデータをレファレンスゲノムにアラインメントして、アラインメント結果を取得するように構成され、これが、ソーティング・デデュプリケーティングモジュールに出力される。
【0069】
アラインメントモジュールと同時に実行されるソーティング・デデュプリケーティングモジュールは、アラインメント位置にしたがってアライニングモジュールから出力されたデータをソートし、重複データをマークしてフィルタリングするように構成される。
【0070】
アラインメントモジュールでアラインメントが完了した後、ソーティング・デデュプリケーティングモジュールと同時に実行される塩基クオリティ値ベースの補正モジュールは、塩基クオリティ値にしたがってソーティング・デデュプリケーティングモジュールから出力されたデータを補正するように構成される。
【0071】
バリエーション検出モジュールは、バイオインフォマティクスソフトウェア及び解析スクリプトを呼び出すことによって、塩基クオリティ値ベースの補正モジュールから出力されたデータに基づきバリエーション結果を検出するように構成される。バリエーション結果の検出は、一塩基多型(SNP)部位の検出並びに挿入及び欠失部位の検出を含む。
【0072】
本開示の実施例では、ゲノムリシーケンシング解析は、バイオインフォマティクスソフトウェア及び解析スクリプトをプロセス呼び出しすることによってアクセラレートされるので、ゲノムリシーケンシング効率を改善する。
【0073】
実施例について参照される
図7は、本開示の実施例に係るFPGAベースのリシーケンシング解析システムを示す概略
図3である。
【0074】
CPU側は、入力ファイル(Fastq)を読み取り、計算が必要なデータをメモリに格納し、バスインターフェーススタンダードを介してメモリ内のデータを、FPGAのグローバルメモリに送信する。FPGAでは、入力データが処理及びアラインメントされ、結果を記録、出力し、グローバルメモリに保存する。次いで、FPGAは、処理されたデータを、バスインターフェーススタンダードを介してCPU側のメモリに送信し、後続の処理を行い、SAM形式ファイルを出力する。
【0075】
本開示の実施例では、ゲノムリシーケンシングデータを、CPU及びFPGAの独立した構成によって高速でアラインメントし、CPUは、マルチスレッド技術によってデータの前処理及びその後の処理を並行して行い、FPGAは、チャネルに接続された複数の機能モジュールによる細粒度パイプライン処理を達成する。
【0076】
可能な実施として、I/Oの読み取り及び書き込み操作を圧縮/解凍操作から分離することができる。圧縮/解凍操作は、ループキャッシング及びマルチスレッディングと並行して計算できるので、ゲノムリシーケンシング効率を改善する。
【0077】
実施例について参照される
図8は、本開示の実施例3におけるFPGAベースのリシーケンシング解析方法を示すフローチャートである。
【0078】
図8に示すように、FPGAベースのリシーケンシング解析方法は、以下のステップを含むことができる。
300:タスクを開始すること。
301:プログラムを呼び出し、パラメータを設定し、初期化すること。具体的には、全てのパラメータを初期化した後、基本ゲノムリシーケンシングデータ及び基本ゲノムリシーケンシングデータを記述するパラメータ情報を受信するタスクのスケジューリングを開始することができる。
302:アラインメントインデックスを作成すべきかどうかを決定し、作成する場合、ステップ316を実行すること。
303:塩基クオリティ値に対して補正インデックスを作成すべきかどうかを決定し、作成する場合、ステップ313を実行すること。
304又は317:アラインすべきどうかを決定し、アラインする場合、ステップ318を実行すること。
305:ソート及びデデュプリケートすべきかどうかを決定し、ソート及びデデュプリケートする場合、ステップ319を実行すること。
306:塩基クオリティ値に応じて補正すべきかどうかを決定し、補正する場合、ステップ320を実行すること。
307:アラインメント結果をソート及びデデュプリケートすべきかどうかを決定し、ソート及びデデュプリケートする場合、ステップ321を実行すること。
308:アラインメント結果をコピーすべきかどうかを決定し、コピーする場合、ステップ322を実行すること。
309又は314:塩基クオリティ値にしたがって補正するかどうかを決定し、補正する場合、ステップ315を実行すること。
310:塩基クオリティ値に対して補正された結果をコピーするかどうかを決定し、コピーする場合、ステップ323を実行すること。
311:バリエーション結果を検出すべきかどうかを決定し、検出する場合、ステップ324を実行すること。
312:全プロセスの完了まで待機すること。
313:塩基クオリティ値に対する補正インデックスを作成すること。
315:塩基クオリティ値に応じて補正を呼び出すこと。
316:ゲノムリシーケンシングデータをレファレンスゲノムに迅速にアラインメントするために使用されるアラインメントインデックスを作成すること。
318:アラインメントを呼び出すこと。CPU側がゲノムリシーケンシングデータをレファレンスゲノムにアラインメントして、アラインメント位置などの情報を取得し、取得したデータをFPGAに送信してアラインメントし、FPGAがアラインメント結果をCPU側に送信する。
319:ソーティング及びデデュプリケーティングを呼び出すこと。
320:塩基クオリティ値に応じて補正を呼び出し、塩基クオリティ値に応じてアラインメント結果を現実に近づけ、レファレンスゲノムとのミスマッチの可能性を低減すること。
321:アラインメント結果に対してソーティング及びデデュプリケーティングを呼び出すこと。主にシーケンシングにおけるPCRによって生成される、アラインメント結果におけるデデュプリケートリードを、アラインメント位置にしたがってフィルタリングし(デデュプリケートリードは、シーケンシング深度などのアラインメントの比較と評価に影響を及ぼし、最終的にはバリエーションの検出において偽陽性につながるので)、ソートされ且つデデュプリケートされたアラインメント結果は、通常、BAM形式ファイルに保存される。
322:バックステージと呼ばれることもある、アラインメント結果のコピーを呼び出すこと。
323:バックステージと呼ばれることもある、塩基クオリティ値に対する補正された結果のコピーを呼び出すこと。
324:バリエーションの検出を呼び出すこと。
325:タスクを終了すること。
【0079】
ハードウェアでは、FPGAアクセラレータカード又はGPUを使用して、リシーケンシング効率を改善することもできる。更に、本開示のFPGAベースのリシーケンシング解析システムは、複数のモジュールで構成されるが、例えば、bwtアルゴリズムを前記アラインメントに代えて用いることなどの任意のモジュール方法に対する改良、変更、又は置換は、本開示の保護範囲内である。したがって、ハードウェアアクセラレーテッドbwtアルゴリズムと、前記アラインメントに直接置き換わるbwtアルゴリズムの両方が、本開示の技術的効果を達成することができる。
【0080】
一例として、以下の公開データが試験に使用される。
データのWebパスは、
である。
データパスは、以下の通りである。
【0081】
関連技術におけるBWA+GATKのプロセスは、以下の通りである。
1.アライニング、ソーティング、及びデデュプリケート
アライニング及びソーティングのためのコマンドラインは、以下の通りである。
デデュプリケーティングのためのコマンドラインは、以下の通りである。
インデックスを作成するためのコマンドラインは、以下の通りである。
【0082】
2.塩基クオリティ値に応じた補正
インデックスを作成するためのコマンドラインは、以下の通りである。
【0083】
【0084】
本開示のプロセスは、以下の通りである。
表1.プロセス実行時間の比較
【表1】
表2.バリエーション検出結果の評価と比較
【表2】
【0085】
前記結果から、表1に示すように、本開示の特許請求された方法により消費される実行時間は、関連技術の実行時間の約20倍速く、表2に示すように、本開示の特許請求された方法によるSNP検出の正確性及び感度は、基本的に関連技術と同じであり、一方、本開示の特許請求された方法によるINDEL検出の正確性は、関連技術の正確性よりも僅かに劣っており、感度は基本的に維持されていることが分かる。したがって、本開示の特許請求された方法によって得られた全体的な結果は、関連技術と同等である。
【0086】
前記実施例を実施するために、本開示は、一例において、FPGAベースのリシーケンシング解析デバイスを更に提供する。
【0087】
図9は、本開示の実施例4におけるFPGAベースのリシーケンシング解析デバイスを示す概略図である。
【0088】
図9に示されるように、FPGAベースのリシーケンシング解析デバイス100は、受信モジュール110、処理モジュール120、補正モジュール130、及び検出モジュール140を含む。
【0089】
受信モジュール110は、ゲノムリシーケンシングデータを受信するように構成される。
【0090】
処理モジュール120は、FPGAの入力としてリシーケンシングデータを取得し、FPGAの出力に基づいてリシーケンシングのプロセスにおいてアラインメント結果を決定し、同時に、アラインメント結果をソート及びデデュプリケートするように構成される。
【0091】
補正モジュール130は、ソートされ且つデデュプリケートされたアラインメント結果を、塩基クオリティ値に応じて補正をするように構成される。
【0092】
検出モジュール140は、補正されたアラインメント結果に基づいてバリエーション結果を検出するように構成される。
【0093】
更に、本開示の可能な実施として、
図9に基づく
図10を参照すると、FPGAベースのリシーケンシング解析デバイス100は、ゲノムリシーケンシングデータの受信後、ゲノムリシーケンシングデータを、プリセットされた長さの配列に基づきハッシュ計算するように構成された計算モジュール150を更に含むことができる。
【0094】
したがって、処理モジュール120は、具体的には、FPGAの入力としてハッシュ計算されたゲノムリシーケンシングデータを取得するように構成される。
【0095】
可能な実施として、ゲノムリシーケンシングデータは、基本ゲノムリシーケンシングデータ及び基本ゲノムリシーケンシングデータを記述するパラメータ情報を含む。
【0096】
FPGAベースのリシーケンシング解析デバイス100は、更に、
ゲノムリシーケンシングデータの受信後、基本ゲノムリシーケンシングデータ及び基本ゲノムリシーケンシングデータを記述するパラメータ情報に基づいて、アラインメント結果を出力するための第1のタスク及びアラインメント結果をソーティング及びデデュプリケーティングするための第2のタスクを決定するように構成された決定モジュール160と、
FPGAからの第1のタスクに対応する第1のスレッドと、CPUからの第2のタスクに対応する第2のスレッドとを割り当てるように構成された割り当てモジュール170とを含むことができる。
【0097】
可能な実施として、処理モジュール120は、
第1のタスクに対応する第1のスレッド及び第2のタスクに対応する第2のスレッドを並行して開始及び実行して、それぞれのスレッドを介してゲノムリシーケンシングデータを呼び出すように構成された開始及び実行ユニット121と、
第1のタスクに対応する第1のスレッドの出力結果を介してリシーケンシングのプロセスにおいてアラインメント結果を決定し、同時に、第2のタスクに対応する第2のスレッドの出力結果を介してアラインメント結果をソート及びデデュプリケートするように構成された決定及び処理ユニット122とを含む。
【0098】
可能な実施として、決定及び処理ユニット122は、具体的には、第1のタスクに対応する第1のスレッドを実行して、標的アラインメント位置を決定し、標的アラインメント位置に応じて、基本ゲノムリシーケンシングデータ内の重複塩基対上でのアラインメントをトリガーし、重複塩基対のアラインメント結果を、リシーケンシングのプロセスにおいてアラインメント結果として取得するように構成される。
【0099】
可能な実施として、決定及び処理ユニット122は、更に、ピンポンバッファリング技術を使用することによって、標的アラインメント位置をキャッシュするように構成される。
【0100】
実施形態におけるFPGAベースのリシーケンシング解析方法に関する前記の記載及び説明は、後述の実施形態のFPGAベースのリシーケンシング解析デバイス100にも適用可能であり、繰り返し記載しないことに留意されたい。
【0101】
本開示の実施形態によれば、FPGAベースのリシーケンシング解析デバイスは、ゲノムリシーケンシングデータを受信し、FPGAの入力としてゲノムリシーケンシングデータを取得し、FPGAの出力に基づきリシーケンシングのプロセスにおいてアラインメント結果を決定し、同時に、アラインメント結果をソート及びデデュプリケートし、ソートされ且つデデュプリケートされたアラインメント結果を、塩基クオリティ値に応じて補正をし、補正されたアラインメント結果に基づいてバリエーション結果を検出する。本開示の実施形態では、アライニング、ソーティング、及びデデュプリケートの各プロセスを並行して実行されることができ、プログラムの実行時間及び計算コストが削減されて、リシーケンシング効率が改善する。
【0102】
前記実施例を実施するために、本開示は、一実施例において、メモリと、プロセッサと、前記メモリに格納され且つ前記プロセッサによって実行可能なコンピュータプログラムとを含むコンピュータデバイスであって、前記コンピュータプログラムが、前記プロセッサによって実行されると、本開示の前記実施形態におけるフィールドプログラマブルゲートアレイ(FPGA)ベースのリシーケンシング解析方法を達成するコンピュータデバイスを更に提供する。
【0103】
前記実施例を実施するために、本開示は、一実施例において、本開示の前記実施形態におけるフィールドプログラマブルゲートアレイ(FPGA)ベースのリシーケンシング解析方法を、コンピュータに実行させるコンピュータ可読命令をその内部に格納したコンピュータ可読記憶媒体を更に提供する。
【0104】
本明細書全体を通して、「実施形態」、「いくつかの実施形態」、「1つの実施形態」、「別の実施例」、「実施例」、「特定の実施例」、又は「いくつかの実施例」との記載は、その実施形態又は実施例に関連して説明される具体的な特徴、構造、材料、又は特性が、本開示の少なくとも1つの実施形態又は実施例に含まれることを意味する。したがって、本明細書全体中の様々な場所に記載される「いくつかの実施形態では」、「一実施形態では」、「実施形態では」、「別の実施形態では」、「実施例では」、「特定の実施形態では」、又は「いくつかの実施形態では」などの表現は、必ずしも本開示の同一の実施形態又は実施例に言及している訳ではない。更に、具体的な特徴、構造、材料、又は特性は、1以上の実施形態又は実施例における任意の好適な方法で組み合わせることができる。更に、当業者は、互いに矛盾することなく、異なる実施形態若しくは実施例を組み合わせることができる、又は異なる実施形態若しくは実施例における特徴を組み合わせることができる。
【0105】
更に、「第1」及び「第2」などの用語は、説明目的で本明細書に使用され、相対的な重要性又は意義を示す又は暗示すること、又は言及される技術的特徴の数量を暗示することを意図するものではない。したがって、「第1」及び「第2」で定義される特徴は、1以上のこの特徴を含み得る。本開示の記載において、「複数」は、特段の断りがない限り、2つ又は2以上のこの特徴を意味する。
【0106】
フローチャートに記載される又は本明細書中、他の方法で記載される任意の手順又は方法は、具体的な論理機能又は手順を実現する実行可能コードを格納するための1以上のモジュール、部分、又はパーツを含むと理解され得る。更に、本開示の有利な実施形態は、実行の順序が、関連する機能に応じて実質的に同時又は逆の順序で機能を実行することなど、図示又は記載されたものとは異なる他の実施を含む。これは、本開示の実施形態が属する技術分野の当業者によって理解できるであろう。
【0107】
本明細書中、他の方法で記載される又はフローチャートに示される論理及び/又はステップ、例えば、論理機能を実現するための実行可能な命令の特定のシーケンステーブルは、命令実行システム、デバイス、又は機器(例えば、コンピュータに基づくシステム、命令実行システム、デバイス、又は機器から命令を取得し、命令を実行することができるプロセッサ又は他のシステムを含むシステムなど)によって使用される、又は命令実行システム、デバイス、及び機器と組み合わせて使用される任意のコンピュータ可読媒体で具体的に達成され得る。本明細書に関して、「コンピュータ可読媒体」は、命令実行システム、デバイス、又は機器によって、又はそれらと組み合わせて使用されるプログラムを含む、格納する、通信する、伝播させる、又は転送するために適応可能な任意のデバイスであることができる。コンピュータ可読媒体のより具体的な例としては、限定されるものではないが、1以上のワイヤを備えた電子接続(電子デバイス)、ポータブルコンピュータエンクロージャ(磁気デバイス)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバデバイス、及びポータブルコンパクトディスク読み取り専用メモリ(CDROM)が挙げられる。更に、コンピュータ可読媒体は、その上にプログラムを印刷することができる紙又は他の適切な媒体でさえあることができる。これは、例えば、電気的な方法でプログラムを取得する必要がある場合、紙又は他の適切な媒体を光学的にスキャンすることができ、次いで、他の適切な方法で編集、復号化、又は処理することができ、その後、プログラムをコンピュータメモリに保存することができるからである。
【0108】
本開示の各部は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せによって実現することができることを理解されたい。前記実施形態では、複数のステップ又は方法を、メモリに格納され、適切な命令実行システムによって実行されるソフトウェア又はファームウェアによって実現することができる。例えば、それがハードウェアによって実現される場合、同様に別の実施形態において、ステップ又は方法は、当技術分野で知られた以下の技術の1つ又は組合せによって実現することができる。即ち、データ信号の論理機能を実現するための論理ゲート回路を有する離散論理回路、適切な組合せ論理ゲート回路を有する特定用途向け集積回路、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などの技術である
【0109】
当業者は、本開示の前記例示的な方法におけるステップの全て又は一部が、関連するハードウェアにプログラムで命令することによって達成することができることを理解するであろう。プログラムは、コンピュータ可読記憶媒体に格納することができ、プログラムは、コンピュータ上で実行される場合、本開示の方法実施形態におけるステップの1つ又は組合せを含む。
【0110】
更に、本開示の実施形態の各機能セルは、処理モジュールに統合することができる、又はこれらのセルは、別体の物理的存在物であることができる、又は2つ以上のセルを処理モジュールに統合することができる。統合モジュールは、ハードウェアの形式又はソフトウェア機能モジュールの形式で実現することができる。統合モジュールがソフトウェア機能モジュールの形式で実現され、スタンドアロン製品として販売又は使用される場合、統合モジュールを、コンピュータ可読記憶媒体に格納することができる。
【0111】
前記記憶媒体は、読み取り専用メモリ、磁気ディスク、CDなどであることができる。
【0112】
説明的な実施形態を示し、記載してきたが、前記実施形態は、本開示を限定するものと解釈することはできず、変更、代替、及び修正を、本開示の範囲における実施形態において行うことができることが当業者によって理解できるであろう。