Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6776937B2 - 情報処理装置、方法及びプログラム - Google Patents
[go: Go Back, main page]

JP6776937B2 - 情報処理装置、方法及びプログラム - Google Patents

情報処理装置、方法及びプログラム Download PDF

Info

Publication number
JP6776937B2
JP6776937B2 JP2017028893A JP2017028893A JP6776937B2 JP 6776937 B2 JP6776937 B2 JP 6776937B2 JP 2017028893 A JP2017028893 A JP 2017028893A JP 2017028893 A JP2017028893 A JP 2017028893A JP 6776937 B2 JP6776937 B2 JP 6776937B2
Authority
JP
Japan
Prior art keywords
mutation
information
master table
pattern
row
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2017028893A
Other languages
English (en)
Other versions
JP2018136607A (ja
Inventor
善史 宇治橋
善史 宇治橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017028893A priority Critical patent/JP6776937B2/ja
Priority to US15/899,067 priority patent/US10579605B2/en
Publication of JP2018136607A publication Critical patent/JP2018136607A/ja
Application granted granted Critical
Publication of JP6776937B2 publication Critical patent/JP6776937B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • G16B20/20Allele or variant detection, e.g. single nucleotide polymorphism [SNP] detection
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/30Data warehousing; Computing architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Medical Informatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Biophysics (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Bioethics (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Genetics & Genomics (AREA)
  • Molecular Biology (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は情報処理装置、情報処理方法及び情報処理プログラムに関する。
データベース(Database:以下「DB」という)における一意性制約などの制約条件を保証する第1の技術が提案されている。第1の技術は、或る単位(例えばトランザクション)に対してDB操作時に違反発生及び違反消滅をカウンタを用いて計数し、或る単位の終了時に各制約条件毎のカウンタの値が0のとき、違反なしと判定する。
また、第2の技術は、アンドゥ(undo)処理に備えてDBの差分情報を差分表に登録する際に、同じ主キー、又は、ディレクトリに対して同じエントリ又は属性に対する差分情報が複数存在する場合に、最初のデータのみを差分表に保存する。第2の技術は、同じ主キー、又は、ディレクトリに対して同じエントリ又は属性に対する複数の差分情報を差分表へ順次登録する際に、2番目以降の差分情報の登録が主キー制約違反になることを利用している。
特開平4−84272号公報 特開2003−36190号公報
遺伝情報(DNAの塩基配列)は、個体差を生じさせる部分、すなわち個体によって遺伝情報が相違する部分(これを変異位置という)が数千万箇所存在しており、このうち一部の変異位置は遺伝情報(変異パターン)が特定の疾患の罹患と相関が有る可能性がある。このため、例えば特定の疾患に罹患している個体群と、罹患していない個体群とで変異パターンの出現頻度に有意差があるか否かを個々の変異位置毎に検定することで、前記疾患の罹患と相関が有る変異位置及びその変異パターンを分析する研究等が進められている。
上記の研究のように遺伝情報の分析などを行う場合、各個体の遺伝情報から変異位置毎の変異パターンを抽出して順に並べた個体毎の変異情報が用意されるが、大量の個体の変異情報を扱う場合は、処理時間の短縮のために処理の効率化が求められる。そこで、変異情報に含まれる変異位置毎の変異パターンを、当該変異パターンを表すコードに置き換える(コード化する)ことで、データ量を削減した上で集計などの以降の処理を行うことが考えられる。
但し、処理対象の全個体の変異情報を通じて、個々の変異位置にどのような変異パターンが出現するか、及び、個々の変異位置に出現する変異パターンの種類数などは、変異情報のコード化を始める時点では未知である。このため、変異情報をコード化する際には、個々の変異位置毎に、新たに出現した変異パターンに新たなコードを割り当ててテーブルに追加していくことで、変異位置毎の変異パターンとコードとの対応関係を登録したテーブルも作成・更新していく必要がある。以下では、上記のテーブルを「変異マスタテーブル」と称する。
また、処理の効率化のためには、互いに異なる変異情報を読み込み、上記の変異マスタテーブルの更新及び変異情報のコード化を行うプロセスを、並列に複数動作させることが有効である。しかし、並列に動作する複数のプロセスが変異マスタテーブルの更新を各々行う場合、変異マスタテーブルの更新が競合し、変異マスタテーブルに登録されている情報の一意性が損なわれる可能性がある。また、情報の一意性が損なわれないように、変異マスタテーブルを更新する権利を何れか1つのプロセスに与えるようにした場合には、複数のプロセスによる変異マスタテーブルの更新が実質的に逐次処理になるので処理効率が低下する。
これに対し、前述の第1の技術及び第2の技術は、情報の一意性を確保する技術ではあるものの、例えば複数のプロセス、或いはトランザクションなどによりテーブルの更新が並列に行われる場合については考慮されていない。例えば、第1の技術において、第1のトランザクションからの第1のDB操作に対する応答を返す前に、第2のトランザクションから一意性制約に違反するDB操作を受付けた場合、違反カウンタをDB単位で設けたとすると、前記応答は違反有りと判定される。また、違反カウンタをトランザクション単位で設けたとすると、個々のトランザクション毎の違反カウンタに不整合が生ずる。
また、第2の技術は、1つのクライアントからの一連のコマンドを差分情報として差分表に登録するものであり、或るクライアントが操作のコミットを行う迄の間は、他のクライアントはデータの参照・更新ができないものと推定される。このため、第2の技術は、複数のクライアントによるデータの参照・更新が実質的に逐次処理になるので処理効率が低い。
一つの側面では、本発明は、変異マスタテーブルの更新を並列に行う場合の情報の一意性を確保することを、処理効率の低下を抑制しつつ実現することが目的である。
一つの実施態様では、並列に動作する複数の処理部を含んでおり、複数の処理部の各々は、変異位置毎の変異パターンを含む互いに異なる変異情報を読み込む。変異マスタテーブルは、変異位置の識別情報の列、変異位置に出現した変異パターンの列、及び、前記変異パターンに割り当てたコードの列を含み、前記変異位置の識別情報の列及び前記コードの列に複合主キー制約が設定される。処理部は、読み込んだ変異情報に含まれる変異位置毎の変異パターンが、変異マスタテーブルに未登録の場合に、以下の処理を行う。すなわち、処理部は、変異マスタテーブルに対し、前記未登録の変異パターン、対応する変異位置の識別情報、及び、変異マスタテーブルに基づき割り当てたコードを含む行情報の挿入を試行する。また処理部は、挿入を試行した前記行情報が、自処理部以外の他の処理部によって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した前記行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行する。そして処理部は、変異マスタテーブルに登録された情報に基づいて変異情報をコード化する。
一つの側面として、変異マスタテーブルの更新を並列に行う場合の情報の一意性を確保することを、処理効率の低下を抑制しつつ実現できる、という効果を有する。
変異情報分析支援システムの概略ブロック図である。 変異情報DBに記憶されている個体別の変異情報の一例を示す概略図である。 変異情報抽出装置による処理の概要を示すイメージ図である。 集計結果処理装置による処理の概要を示すイメージ図である。 特異性が無い変異位置及び特異性が有る変異位置における変異パターンの分布の一例を示す概念図である。 変異情報処理装置として機能するコンピュータの概略ブロック図である。 変異情報コード化制御処理の一例を示すフローチャートである。 変異マスタテーブルの生成を指示するコマンドの一例を示す図である。 変異情報コード化処理の一例を示すフローチャートである。 複数の個体の変異情報を読み込んでメモリに展開する処理を説明する概念図である。 変異マスタテーブルを読み込んでメモリに展開する処理を説明する概念図である。 変異情報に含まれる個々の変異パターンが変異マスタテーブルに登録されているかを検証する処理を説明する概念図である。 変異マスタテーブルに未登録の変異パターンに対応するパターンコードを取得する処理を説明する概念図である。 変異マスタテーブルに追加する情報の、未ソートのリスト及びソート済みリストを各々示す概略図である。 ソート済みの追加情報のリストに含まれる行情報が変異マスタテーブルに挿入された場合を示す概略図である。 変異情報に含まれる変異パターンに対応するパターンコードを個体毎に順に並べた変異型情報を生成する処理を示す概略図である。 変異型情報を変異型格納テーブルに格納する処理を示す概略図である。 変異マスタテーブル全体をロックして更新する場合(テーブルロック)と本実施形態(提案手法)における、個々の処理部(プロセス)による処理の実行期間の一例を示すタイムチャートである。 複合主キー制約違反が発生する状況の一例を示す概略図である。 実施形態で説明している態様(変異マスタテーブルへの追加情報のリストをソートする態様)におけるタイミングチャートである。 変異マスタテーブルへの追加情報のリストをソートしない場合に発生する問題を説明するためのタイミングチャートである。
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。なお、以下の実施形態では、一例として、遺伝情報(変異情報)から、分析対象の疾患の罹患と相関が有る変異位置及びその変異パターンを分析する態様を説明する。図1に示す変異情報分析支援システム10は、本発明に係る情報処理装置の一例である変異情報処理装置12と、変異情報抽出装置30及び集計結果処理装置32と、を含んでいる。
変異情報抽出装置30は、変異情報DB36を記憶する第2記憶部34及び個体情報DB40を記憶する第3記憶部38が接続されている。変異情報DB36には、個体別の変異情報が、個体ID(IDentifier)と各々対応付けられ、多数の個体について登録されている。一例として、図2に複数の個体の変異情報41を示すが、変異情報41の各行に対応する個体別の変異情報42は、個体の遺伝情報から各変異位置の変異パターンを抽出して順に並べた情報である。図2において、V0〜Vnは個々の変異位置の識別情報の一例である変異IDであり、"A/A","T/T","A/C","G/G"などは変異位置毎の変異パターンである。なお、個体別の変異情報42に代えて個体別の遺伝情報全体をDBに記憶させておいてもよい。
個体情報DB40には、変異情報DB36に変異情報42が登録されている多数の個体について、属性情報が個体別に登録されている。個体別の属性情報は、少なくとも、個体IDと、個体が罹患している疾患の有無及び罹患している疾患が有る場合はその疾患を表す情報と、を含む。また、個体の性別、年齢、身長、体重、生活習慣(例えば喫煙習慣の有無等)等の情報を更に含んでいてもよい。
変異情報の分析を行う場合、変異情報抽出装置30には、変異情報42の抽出条件として、少なくとも、分析対象の疾患を指定する情報が入力される。また、性別や年齢等の抽出条件が追加される場合もある。変異情報抽出装置30は、抽出条件が入力されると、図3に示すように、変異情報DB36と個体情報DB40とを照合し、入力された抽出条件に合致する個体群の個体別の変異情報42を変異情報DB36から各々読み出す。ここで個体別の変異情報42を読み出す個体群は、少なくとも分析対象の疾患に罹患している個体の集合であり、以下では「罹患者群」という。そして、変異情報抽出装置30は、読み出した個体別の変異情報を、罹患者群の変異情報42Aとして変異情報処理装置12へ出力する。
また、変異情報抽出装置30は、入力された抽出条件に合致しない個体群、或いは疾患を除く一部の抽出条件にのみ合致する個体群の個体別の変異情報42を変異情報DB36から各々読み出す。ここで個体別の変異情報42を読み出した個体群は、少なくとも分析対象の疾患に罹患していない個体の集合であり、以下では「非罹患者群」という。そして、変異情報抽出装置30は、読み出した個体別の変異情報42を非罹患者群の変異情報42Bとして出力する。
なお、変異情報抽出装置30は、抽出した変異情報42を所定の形式へ編集して出力してもよい。所定の形式の一例としてはVCF(Variant Call Format)が挙げられる。VCFは変異情報の形式として一般的な形式であるが、これに限らず、VCF以外の他の形式へ編集してもよい。
図1に示すように、変異情報処理装置12は、変異情報処理部14、集計部20、DB管理部22、変異マスタテーブル26及び変異型格納テーブル28を記憶する第1記憶部24を含んでいる。また、変異情報処理部14は制御部16及び複数の処理部18を含んでいる。DB管理部22は、例えばSQL(Structured Query Language)などで記述されたコマンドの入力に応じてDB(本実施形態では変異マスタテーブル26など)を操作する処理を行う。
変異情報処理部14の制御部16は、変異マスタテーブル26の生成を指示するコマンドをDB管理部22へ出力する。これにより、DB管理部22は変異マスタテーブル26を生成し、第1記憶部24に記憶させる。詳細は後述するが、変異マスタテーブル26は、変異位置を表す変異ID、変異位置に出現した変異パターン、及び、変異パターンに割り当てたパターンコードの各列を含み、変異IDの列及びパターンコードの列に複合主キー制約が設定される。また、制御部16は、変異情報抽出装置30から入力された罹患者群の変異情報42A及び非罹患者群の変異情報42Bが全てコード化されて変異型格納テーブル28に格納されるように、複数の処理部18の起動を制御する。
制御部16によって起動された複数の処理部18は、以下の変異情報コード化処理を互いに並列に行う。すなわち、処理部18は、処理対象の変異情報42を読み込み、読み込んだ変異情報42に含まれる変異位置毎の変異パターンが、変異マスタテーブル26に登録されているか否かを検証する。また処理部18は、変異マスタテーブル26に未登録の変異パターンについて、当該変異パターン、対応する変異ID及びパターンコードを含む行情報(レコード)を変異マスタテーブル26に挿入させるコマンドをDB管理部22へ出力する。
ここで、挿入対象の行情報が、変異マスタテーブル26に既に登録されている情報に対して複合主キー制約に違反していなければ行情報の挿入は成功するが、挿入対象の行情報が複合主キー制約に違反している場合には、DB管理部22から制約違反が通知される。この場合、処理部18は、先に挿入を試行した行情報に含まれるパターンコードを更新した新たな行情報を変異マスタテーブル26に挿入させるコマンドをDB管理部22へ出力する。また、未登録の変異パターンが変異情報に含まれていなかった場合、又は、変異情報に含まれる未登録の変異パターンに対応する行情報の挿入に成功した場合、処理部18は、変異マスタテーブル26に基づいて処理対象の変異情報をコード化する。そして処理部18は、コード化後の変異型情報を変異型格納テーブル28に格納する。
集計部20は、変異型格納テーブル28に格納された変異型情報をDB管理部22を通じて読み出し、読み出した変異型情報における個々の変異位置毎かつコード毎のコードの出現数を、罹患者群と非罹患者群とに分けて集計する。また集計部20は、第1記憶部24に記憶された変異マスタテーブル26に基づき、個々の変異位置毎に、処理対象の全個体における変異パターンの種類毎の変異パターンの出現数を、罹患者群と非罹患者群とに分けて集計する。そして集計部20は、例として図4に示すように、罹患者群の変異位置毎の集計結果44A及び非罹患者群の変異位置毎の集計結果44Bを集計結果処理装置32に各々出力する。
集計結果処理装置32は、入力された集計結果44A,44Bに基づき、罹患者群と非罹患者群とで各変異パターンの出現頻度(変異パターン毎の出現数の分布)に有意差があるか否かを、カイ自乗検定等の統計手法により個々の変異位置毎に検定する。一例として図5に「特異性ない変異分布の例」として示すように、罹患者群と非罹患者群とで変異パターン毎の出現数の分布が類似している変異位置については、有意差が無い、すなわち分析対象の疾患の罹患と相関が無いと判断できる。一方、一例として図5に「特異性ある変異分布の例」として示すように、罹患者群と非罹患者群とで変異パターン毎の出現数の分布が非類似の変異位置については、有意差が有るので、分析対象の疾患の罹患と相関が有る可能性がある。
集計結果処理装置32は、変異パターン毎の出現数の分布の有意差が大きい順に変異位置を順位付けし、有意差の降順に所定数の変異位置の情報を出力する。分析者は、集計結果処理装置32から出力された情報に基づいて、分析対象の疾患の罹患と相関が有る変異位置及びその変異パターンを分析する。
また、本実施形態において、変異情報処理装置12は、図6に示すコンピュータ50で実現される。コンピュータ50は、CPU52、メモリ54、不揮発性の記憶部56、入力部58、表示部60、記録媒体64に対するデータの読み出しおよび書き込みを行う読出書込装置(R/W)62、及び、通信I/F部66を含む。CPU52、メモリ54、記憶部56、入力部58、表示部60、R/W62及び通信I/F部66は、バス68を介して互いに接続されている。変異情報処理装置12は、通信I/F部66に接続されたネットワークを経由して変異情報抽出装置30及び集計結果処理装置32と通信可能とされている。
記憶部56はHDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等によって実現される。記憶部56には、コンピュータ50を変異情報処理装置12として機能させるための変異情報処理プログラム70及びDB管理プログラム80が記憶されている。CPU52は、変異情報処理プログラム70及びDB管理プログラム80を記憶部56から読み出してメモリ54に展開し、変異情報処理プログラム70に含まれる各プロセスを順次実行すると共に、DB管理プログラム80を実行する。
変異情報処理プログラム70は、変異情報処理プロセス72及び集計プロセス78を含み、変異情報処理プロセス72は制御プロセス74及び処理プロセス76を含む。
CPU52は、変異情報処理プロセス72を実行することで、図1に示す変異情報処理部14として動作する。すなわち、CPU52は、制御プロセス74を実行することで、図1に示す制御部16として動作する。また、処理プロセス76は再入可能(reentrant)とされており、CPU52は、処理プロセス76を並列に複数実行することで、図1に示す複数の処理部18として動作する。また、CPU52は、集計プロセス78を実行することで、図1に示す集計部20として動作する。また、CPU52は、DB管理プログラム80を実行することで、図1に示すDB管理部22として動作する。
これにより、変異情報処理プログラム70及びDB管理プログラム80を実行したコンピュータ50が変異情報処理装置12として機能することになる。変異情報処理プログラム70は開示の技術に係る情報処理プログラムの一例である。
また、記憶部56には変異マスタテーブル記憶領域82、変異型格納テーブル記憶領域84、集計テーブル記憶領域86が設けられている。変異マスタテーブル記憶領域82には変異マスタテーブル26が記憶され、変異型格納テーブル記憶領域84には変異型格納テーブル28が記憶される。これにより、記憶部56は図1に示す第1記憶部24として機能する。
なお、変異情報処理装置12は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
次に本実施形態の作用として、まず図7を参照し、変異情報処理部14の制御部16によって実行される変異情報コード化制御処理を説明する。ステップ150において、制御部16は、変異ID、変異パターン及びパターンコードの各列を含み、変異IDの列及びパターンコードの列に複合主キー制約を設定した変異マスタテーブル26を生成するコマンドをDB管理部22へ出力する。
ステップ150で制御部16からDB管理部22へ出力されるコマンドの一例を図8に示す。図8に示すコマンドは、変異ID(id)、パターンコード(pat_code)及び変異パターン(pat_string)の各列を含む変異マスタテーブル26(variant_master_tbl)の生成を指示するコマンドである。このコマンドに含まれる"PRIMRY KEY(id,pat_code)"は、変異IDの列及びパターンコードの列に複合主キー制約を設定することを意味している。なお、図8に示すコマンドは単なる一例であり、DB管理部22が受け付け可能なコマンドの書式に応じて適宜変更してもよい。
DB管理部22は、上記のようなコマンドが入力されると、例えば図11に示すような変異マスタテーブル26を生成し、第1記憶部24に記憶させる。なお、図11は変異マスタテーブル26に情報が登録された状態を示しているが、この時点では変異マスタテーブル26は空である。
また、図11は変異マスタテーブル26に設定されている複合主キー制約を明示していない。しかし、DB管理部22は、変異ID、パターンコード及び変異パターンを含む挿入対象の行情報を変異マスタテーブル26へ挿入するコマンドを受け取ると、挿入対象の行情報と変異ID及びパターンコードが同一のレコードを検索する。そして、該当するレコードが変異マスタテーブル26に既に存在している場合、DB管理部22は、コマンドの出力元に対して、挿入対象の行情報が複合主キー制約に違反していることを通知する。
次のステップ152において、制御部16は、予め設定された同時起動プロセス数Yを記憶部56等から読み込む。また制御部16は、プロセス(処理部18)の起動回数を表すカウンタi及び起動中のプロセスの数を表すカウンタyに各々0を設定する。なお、同時起動プロセス数Yにはコンピュータ50の性能に応じた値が設定される。
次のステップ164において、制御部16は、値imが全個体の数に達したか否かを判定することで、全ての個体の変異情報42のコード化を処理部18に指示したか否か判定する。ステップ164の判定が否定された場合はステップ166へ移行し、ステップ166において、制御部16は、カウンタyの値が同時起動プロセス数Yに達したか否かを判定する。
ステップ166の判定が否定された場合はステップ168へ移行し、ステップ168において、制御部16は、処理部18を起動し、起動した処理部18に対して個体im〜(i+1)m−1の変異情報42のコード化を指示する。これにより、起動された処理部18(プロセス)により、個体im〜(i+1)m−1(m個の個体)の変異情報42に対して後述する変異情報コード化処理が行われる。
次のステップ170において、制御部16は、カウンタy及びカウンタiの値を各々1だけインクリメントし、ステップ164に戻る。上記のように、ステップ164,166の判定が各々否定されている間は、ステップ168,170が繰り返されるので、起動されて変異情報コード化処理を実行する処理部18(プロセス)の数は1ずつ増加する。
また、カウンタyの値が同時起動プロセス数Yに達すると、ステップ166の判定が肯定されてステップ172へ移行する。ステップ172において、制御部16は、起動した何れかの処理部18(プロセス)において変異情報コード化処理が終了したか否か判定する。ステップ172の判定が否定された場合は、判定が肯定される迄ステップ172を繰り返す。ステップ172の判定が肯定されるとステップ174へ移行し、ステップ174において、制御部16は、カウンタyの値を1だけデクリメントし、カウンタiの値を1だけインクリメントする。そして、ステップ174の処理を行うとステップ164に戻る。
上記により、変異情報コード化処理を並列に実行する処理部18(プロセス)の数は同時起動プロセス数Y以下に維持される。そして、全ての個体の変異情報42のコード化を処理部18に指示すると、値imが全個体の数に達することでステップ164の判定が肯定され、変異情報コード化制御処理を終了する。
次に図9を参照し、制御部16によって起動された処理部18によって実行される変異情報コード化処理を説明する。変異情報コード化処理のステップ200において、処理部18は、制御部16から処理対象として通知された個体im〜(i+1)m−1の変異情報42を読み込み、メモリ54に展開する。一例として図10には、m=4個の個体の変異情報42を読み込んでメモリ54に展開した場合を示す。メモリ54に展開した1つの個体の変異情報100は、各変異位置の変異ID(=V0〜Vn)と、各変異位置毎の変異パターンと、を含んでおり、個々の個体の変異情報100は、それぞれ異なる個体IDと対応付けられている。
ステップ202において、処理部18は、トランザクションを開始するコマンドをDB管理部22へ出力する。これにより、起動中の処理部18がDB管理部22からトランザクションとして認識される。なお、トランザクションを開始するコマンドの一例は"BEGIN"であるが、これに限定されるものではない。
次のステップ204において、処理部18は、変異マスタテーブル26を読み込むコマンドをDB管理部22へ出力し、DB管理部22を経由して読み込んだ変異マスタテーブル26をメモリ54に展開する。変異マスタテーブル26を読み込むコマンドの一例は、
"SELECT id,pat_code,pat_string FROM variant_master_tbl"
である。但し、上記のコマンドに限定されるものではなく、DB管理部22が受け付け可能なコマンドの書式に応じて適宜変更してもよい。
一例として図11には、変異マスタテーブル26を読み込んでメモリ54に展開した場合を示す。図11は、変異マスタテーブル26を、変異位置毎に変異パターンをパターンコードと対応付ける複数のテーブル102に分けて展開しており、個々のテーブル102はそれぞれ異なる変異IDと対応付けられている。なお、図11は変異マスタテーブル26に情報が登録された状態を示しているが、変異情報コード化処理が最初に実行された時点では変異マスタテーブル26は空である。
次のステップ206において、処理部18は、先のステップ200でメモリ54に展開した個体im〜(i+1)m−1の変異情報100に含まれる個々の変異パターンが、変異マスタテーブル26に全て登録されているかを検証する。例として図12は、変異情報100に含まれる変異パターンを、変異ID=V0から順にかつ個体毎に変異マスタテーブル26と照合し、変異マスタテーブル26に登録済みの変異パターンを対応するパターンコードに置き換えた場合を示している。図11に示す情報が変異マスタテーブル26に登録されているとすると、図12に示す個体ID=3の変異情報100のうち変異ID=V1の変異パターン"C/C"については、図11に示す変異マスタテーブル26に未登録と判定される。
但し、ステップ206において、変異マスタテーブル26に登録済みの変異パターンをパターンコードに置き換えることは必須の処理ではない。例えば個々の変異パターンが変異マスタテーブル26に登録済みか否を順次判定し、未登録と判定した変異パターンについては情報を記憶する処理を行うようにしてもよい。
ステップ208において、処理部18は、ステップ206における変異パターンの検証において、変異マスタテーブル26に未登録の変異パターンが有ったか否か判定する。ステップ208の判定が肯定された場合はステップ210へ移行する。
ステップ210において、処理部18は、変異マスタテーブル26に未登録の変異パターンに対応する変異ID、パターンコード及び変異パターンを含む行情報を、未登録の変異パターンの数と同数含む、変異マスタテーブル26への追加情報のリストを作成する。なお、未登録の1つの変異パターンに対応する行情報のうち、変異ID及び変異パターンは変異情報100から取得することができる。また、未登録の1つの変異パターンに対応する行情報のうちのパターンコードは、例として図13に示すように、変異マスタテーブル26を展開したテーブル102から、パターンコードの最大値を取得し、取得した最大値に1を加算することで得られる。一例として図13は、変異ID=V1のパターンコードの最大値が"1"であり、変異ID=V1の未登録の変異パターン"C/C"に対応する行情報のうちのパターンコードとして、最大値に1を加算した"2"が得られた例を示している。これにより、例として図14に示すような未ソートのリスト104が得られる。
また、ステップ210で作成される追加情報のリストは、当該リストに含まれる行情報が、例えば、m個の個体の変異情報100から、変異マスタテーブル26に未登録の変異パターンが出現した順に並んでいる。このため、次のステップ212において、処理部18は、追加情報のリストに含まれる行情報を、変異IDとパターンコードの組の値の昇順に並ぶようにソートする。例えば図14に示す未ソートのリスト104では、変異ID=Vm、パターンコード=3の行情報が、変異ID=Vm、パターンコード=2の行情報よりも前に位置しているが、図14に示すソート済みリスト106では両者が入れ替わることになる。なお、追加情報のリストをソートする理由については後述する。
次のステップ214において、処理部18は、ソート済みの追加情報のリスト106のうち変異マスタテーブル26に未挿入の先頭の行情報を、変異マスタテーブル26に挿入するよう指示するコマンドをDB管理部22へ出力する。なお、変異マスタテーブル26に挿入する行情報が、例えば変異ID=V1、パターンコード=2、変異パターン="C/C"の場合、当該行情報を変異マスタテーブル26に挿入するコマンドの一例は以下の通りである。
"INSERT INTO variant_master_tbl VALUES(V1,2,C/C)"
但し、上記のコマンドに限定されるものではなく、DB管理部22が受け付け可能なコマンドの書式に応じて適宜変更してもよい。
ステップ216において、処理部18は、ステップ214で出力したコマンドに対してDB管理部22から応答が入力されたか否か判定する。ステップ216の判定が否定された場合はステップ216の判定を繰り返す。DB管理部22から応答が入力されると、ステップ216の判定が肯定されてステップ218へ移行し、ステップ218において、処理部18は、DB管理部22から複合主キー制約違反が通知されたか否か判定する。
以下では、まず変異マスタテーブル26への行情報の挿入を指示した処理部18において、複合主キー制約違反が通知されることなく、挿入を指示した行情報が変異マスタテーブル26に挿入された場合を説明する。例として図15には、ソート済みの追加情報のリスト106のうちの先頭の行情報が変異マスタテーブル26に挿入された場合を示す。DB管理部22から応答が入力され、かつDB管理部22から複合主キー制約違反が通知されなかった場合、ステップ218の判定が否定されてステップ220へ移行する。
ステップ220において、処理部18は、追加情報のリストに含まれる全ての行情報の変異マスタテーブル26への挿入が完了したか否か判定する。ステップ220の判定が否定された場合はステップ214へ戻り、ステップ220の判定が肯定される迄、ステップ214〜ステップ220を繰り返す。追加情報のリストに含まれる全ての行情報を変異マスタテーブル26へ挿入すると、ステップ220の判定が肯定されてステップ222へ移行する。
ステップ222において、処理部18は、前述のステップ204と同様に、変異マスタテーブル26を読み込むコマンドをDB管理部22へ出力し、DB管理部22を経由して読み込んだ変異マスタテーブル26をメモリ54に展開する。次のステップ224において、処理部18は、トランザクションを終了するコマンドをDB管理部22へ出力する。なお、トランザクションを終了するコマンドの一例は"COMMIT"であるが、これに限定されるものではなく、DB管理部22が受け付け可能なコマンドの書式に応じて適宜変更可能である。
ステップ226において、処理部18は、変異マスタテーブル26に基づいて、ステップ200でメモリ54に展開した処理対象の個体im〜(i+1)m−1の変異情報100に含まれる個々の変異パターンに対応するパターンコードを取得する。次に、処理部18は、取得したパターンコードを順に並べた変異型情報を個体毎に生成する。例として図16には、個体毎の変異情報100に含まれる個々の変異パターンに対応するパターンコードを、個体毎の変異情報100に付加した後に、パターンコードを順に並べた変異型情報108を個体毎に生成する例を示す。そして処理部18は、例として図17に示すように、個体毎に生成した変異型情報108を、変異型格納テーブル28に格納する。ステップ226の処理を行うと変異情報コード化処理を終了する。
プロセス(処理部18)の起動回数を表すカウンタiの値が小さい間は、処理対象の個体im〜(i+1)m−1の変異情報100に含まれる変異パターンの殆どは変異マスタテーブル26に未登録である。特にi=0のときに起動されたプロセス(処理部18)は全ての変異パターンが変異マスタテーブル26に未登録である。
このため、カウンタiの値が小さい期間は、起動された複数(Y個以下)のプロセス(処理部18)によって変異マスタテーブル26への行情報の挿入が各々試行され、後で説明する複合主キー制約違反が比較的高い頻度で発生する。結果として、カウンタiの値が小さい期間は、起動された複数のプロセス(処理部18)のうち、起動時のカウンタiの値がより小さい(より早期に起動された)一部のプロセス(処理部18)により、全ての変異位置について1〜数個の変異パターンが登録される。
なお、図18には、カウンタiの値が小さい期間に、変異マスタテーブル26への変異パターンの登録を行う一部のプロセス(処理部18)を、「提案手法」の図のプロセス0,1として示している。一例として図18の「提案手法」の図は、変異マスタテーブル26への変異パターンの登録を行うプロセス(処理部18)の数=2の場合を示しているが、2以外の数になることも生じ得ることは言うまでもない。
ここで、仮に、起動された個々の処理部18が、変異マスタテーブル26全体をロックして変異マスタテーブル26を更新する場合、複数の処理部18が並列に動作したとしても、更新権を有しない処理部18はロックが解放される迄処理が待たされることになる。このため、図18に「テーブルロック」として示すように、複数の処理部18による処理(図18ではプロセス0〜7と表記)は実質的に逐次処理になる。
これに対して本実施形態では、変異マスタテーブル26の変異IDの列及びパターンコードの列に複合主キー制約を設定し、複数の処理部18が、複合主キー制約に違反しない範囲で変異マスタテーブル26を並列に更新すること(行情報の挿入)を許容している。これにより、カウンタiの値が大きくなり、変異マスタテーブル26に登録された変異パターンの数が増えてくると、起動された複数の処理部18による処理はほぼ並列に実行され、処理効率が向上することで処理時間が短くなる。図18に示す「提案手法」の図は、起動されて処理がほぼ並列に実行される複数の処理部18を、プロセス2〜7と表記して示している。
但し、本実施形態においても、複合主キー制約に違反する変異マスタテーブル26の更新は排除される。図18に「提案手法」として示す図では、プロセス4と表記している処理部18による変異マスタテーブル26の更新に対し、プロセス5と表記している処理部18による変異マスタテーブル26の更新が複合主キー制約違反になった場合を示している。以下、変異マスタテーブル26に挿入する行情報が複合主キー制約違反になる場合を説明する。
図19に示すように、ソート済みの追加情報のリスト106のうち、変異ID=Vm、パターンコード=2、変異パターン="A/C"の行情報を変異マスタテーブル26に挿入する場合を考える。図19に示す変異マスタテーブル26には、上記の行情報と変異ID及びパターンコードが重複するレコード、すなわち変異ID=Vm、パターンコード=2、変異パターン="A/A"のレコードが既に存在している。
このため、DB管理部22は、上記の行情報の挿入を指示するコマンドが入力された場合、挿入を指示された行情報が複合主キー制約に違反している可能性を検知する。但し、変異マスタテーブル26に存在する対象レコードの挿入を指示した処理部18のトランザクションが終了する迄の間は、複合主キー制約違反は確定していない。従って、DB管理部22は、対象レコードの挿入を指示した処理部18のトランザクションが終了する迄の間は、複合主キー制約に違反する行情報の挿入を指示した処理部18に対する応答を保留する。
図20を参照し、複合主キー制約違反が発生する状況を更に説明する。図20では、「先行プロセス」と表記した処理部18が、変異ID=Vm、パターンコード=0、変異パターン="A/A"の行情報110Aと、変異ID=Vm、パターンコード=1、変異パターン="A/C"の行情報110Bと、を含むリスト110を生成している。また、「後続プロセス」と表記した処理部18が、変異ID=Vm、パターンコード=0、変異パターン="A/C"の行情報112Aと、変異ID=Vm、パターンコード=1、変異パターン="A/A"の行情報112Bと、を含むリスト112を生成している。
図20では、「先行プロセス」と表記した処理部18が生成したリスト110に含まれる行情報110Aと、「後続プロセス」と表記した処理部18が生成したリスト112に含まれる行情報112Aと、の変異ID及びパターンコードが重複している。なお、変異ID及びパターンコードの重複は、「先行プロセス」が変異マスタテーブル26を読み込んでから行情報110Aを挿入する迄の間に、「後続プロセス」が変異マスタテーブル26を読み込むことで発生する。
ここで、図20に示すように、「先行プロセス」が変異マスタテーブル26に行情報110Aを挿入した後に、「後続プロセス」が変異マスタテーブル26への行情報112Aの挿入を試行した場合、DB管理部22は、複合主キー制約違反の可能性を検知する。そして、DB管理部22は、「先行プロセス」のトランザクションが終了する迄の間は、「後続プロセス」に対する応答を保留する。これは、「先行プロセス」が、例えば障害の発生などを原因として、変異マスタテーブル26への行情報の挿入をキャンセルするコマンド(例えば"rollback"など)をDB管理部22へ出力する可能性があり、行情報110Aの挿入が確定していないためである。
従って、変異マスタテーブル26への行情報112Aの挿入を試行した「後続プロセス」は、「先行プロセス」のトランザクションが終了する迄の間、DB管理部22からの応答待ちで待機する。この間、「先行プロセス」は、障害の発生などが無ければ、続いて変異マスタテーブル26に行情報110Bを挿入する処理を含む処理を行った後に、トランザクションを終了する。
「先行プロセス」のトランザクションが終了すると、変異マスタテーブル26への行情報110A,110Bの挿入が確定し、「後続プロセス」が変異マスタテーブル26への挿入を試行した行情報112Aの複合主キー制約違反も確定する。そこで、DB管理部22は、「後続プロセス」に対して行情報112Aが複合主キー制約違反であることを通知する応答を返す。
「後続プロセス」に相当する処理部18は、DB管理部22から上記の応答が返ってくると、図9のステップ216の判定が肯定され、ステップ218の判定が肯定されることでステップ204に戻る。この場合、ステップ204で変異マスタテーブル26を再度読み込み、以降の処理が再度行われることで、変異マスタテーブル26への挿入を試行する行情報に含まれるパターンコードは、複合主キー制約に違反しない新たなパターンコードに更新される。これにより、複合主キー制約違反が再度発生することが抑制され、変異マスタテーブル26に登録されている情報の一意性が確保されることになる。
次に、変異マスタテーブル26への追加情報のリストを、ステップ212でソートしている理由について、図21を参照して説明する。図21は、「後続プロセス」のリスト112がソートされておらず、リスト112に含まれる行情報112A,112Bの順序が図20に示す順序と逆になっている場合を示している。従って、図21において、「後続プロセス」は変異マスタテーブル26への行情報112Bの挿入を試行した後に、変異マスタテーブル26への行情報112Aへの挿入を試行する。なお、図20では説明を省略したが、「先行プロセス」のリスト110に含まれる行情報110Bと、「後続プロセス」のリスト112に含まれる行情報112Bと、についても変異ID及びパターンコードが重複している。
図21に示す例では、「先行プロセス」が変異マスタテーブル26に行情報110Aの挿入を試行した後に、「後続プロセス」が変異マスタテーブル26への行情報112Bの挿入を試行することになるが、これらの挿入では複合主キー制約違反は発生しない。しかし、その後、「先行プロセス」が変異マスタテーブル26に行情報110Bの挿入を試行すると、DB管理部22により、「後続プロセス」が変異マスタテーブル26に既に挿入した行情報112Bに対して複合主キー制約違反の可能性が検知される。このため、「先行プロセス」に対する応答は「後続プロセス」のトランザクションが終了する迄保留される。
また、その後、「後続プロセス」が変異マスタテーブル26に行情報112Aの挿入を試行すると、DB管理部22により、「先行プロセス」が変異マスタテーブル26に既に挿入した行情報110Aに対して複合主キー制約違反の可能性が検知される。このため、「後続プロセス」に対する応答は「先行プロセス」のトランザクションが終了する迄保留される。これにより、「先行プロセス」及び「後続プロセス」が、それぞれ相手のトランザクションが終了する迄処理を再開できない、いわゆるデッドロックの状態に陥る。
これに対し、本実施形態では、変異マスタテーブル26への追加情報のリストをステップ212でソートした後に、ソート後のリストに含まれる、変異マスタテーブル26に未挿入の先頭の行情報から順に、変異マスタテーブル26への挿入を試行する。これにより、図20に示すように、変異マスタテーブル26の更新を先に開始した処理部18による行情報の挿入が、変異マスタテーブル26の更新を後から開始した処理部18により既に挿入された行情報に対して複合主キー制約違反となる可能性が排除される。従って、デッドロックの状態に陥ることを抑制することができる。
なお、カウンタiの値が大きくなり、処理部18による変異情報コード化処理の実行回数が増えてくると、変異マスタテーブル26に未登録の変異パターンが出現する頻度が低下し、ステップ208の判定が否定される頻度が増大する。ステップ208の判定が否定された場合はステップ224へ移行し、変異マスタテーブル26への行情報の挿入を行うことなく、トランザクションを終了する。従って、カウンタiの値が大きくなると、複合主キー制約違反が発生する頻度も低下し、処理効率が更に向上する。
上記のように、本実施形態では、変異情報処理装置12が並列に動作する複数の処理部18を含んでおり、複数の処理部18の各々は、変異位置毎の変異パターンを含む互いに異なる変異情報を読み込む。変異マスタテーブル26は、変異IDの列、変異位置に出現した変異パターンの列、及び、前記変異パターンに割り当てたパターンコードの列を含み、前記変異位置のIDの列及びパターンコードの列に複合主キー制約が設定されている。処理部18は、読み込んだ変異情報に含まれる変異位置毎の変異パターンが、変異マスタテーブル26に未登録の場合に、以下の処理を行う。すなわち、処理部18は、変異マスタテーブル26に対し、前記未登録の変異パターン、対応する変異ID、及び、変異マスタテーブル26に基づき割り当てたパターンコードを含む行情報の挿入を試行する。また処理部18は、挿入を試行した前記行情報が、自処理部18以外の他の処理部18によって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した行情報に含まれるパターンコードを更新した新たな行情報の挿入を再試行する。そして処理部18は、変異マスタテーブル26に登録された情報に基づいて変異情報をコード化する。これにより、変異マスタテーブル26の更新を並列に行う場合の情報の一意性を確保することを、処理効率の低下を抑制しつつ実現することができる。
また、本実施形態において、処理部18は、挿入を試行した行情報が、他の処理部18によって先に挿入された行情報により複合主キー制約に違反した場合は、以下の処理を行う。すなわち、処理部18は、先に挿入を試行した行情報に含まれるパターンコードを更新した新たな行情報の挿入を再試行することを、行情報の挿入が成功する迄繰り返す。これにより、変異マスタテーブル26に未登録の変異パターン及び対応する変異位置のIDを、複合主キー制約に違反しないパターンコードと共に、行情報として変異マスタテーブル26に確実に挿入することができる。
また、本実施形態において、処理部18は、読み込んだ変異情報に、変異マスタテーブル26に未登録の変異パターンが複数含まれる場合に、以下の処理を行う。すなわち、処理部18は、それぞれの変異パターンに対応する複数の行情報を、変異ID及びパターンコードの組の値の昇順に、変異マスタテーブル26への挿入を試行する。これにより、並列に動作する複数の処理部18がデッドロックの状態に陥ることを抑制することができる。
また、本実施形態において、処理部18は、変異マスタテーブル26に対して行情報の挿入を試行することを、DB管理部22を経由して行う。DB管理部22は、第1の処理部18から第1の行情報の挿入が試行された後、第2の処理部18から第1の行情報に対して複合主キー制約に違反する第2の行情報の挿入が試行された場合に、以下の処理を行う。すなわち、DB管理部22は、第1の処理部18に対しては第1の行情報の挿入成功を通知し、第1の処理部18のトランザクションが終了した後、第2の処理部18に対して第2の行情報が複合主キー制約に違反したことを通知する。このように、既存のDB管理部22の機能を利用することで、変異マスタテーブル26の情報の一意性を確保することを簡易な構成、或いは処理で実現することができる。
なお、上記では、追加情報のリストに含まれる行情報を、変異IDとパターンコードの組の値の昇順に並ぶようにソートし、ソート済みの追加情報のリストに含まれる行情報を、先頭から順に変異マスタテーブル26に挿入する態様を説明した。しかし、これに限定されるものではない。例えば、追加情報のリストに含まれる行情報を、変異IDとパターンコードの組の値の降順に並ぶようにソートし、ソート済みの追加情報のリストに含まれる行情報を、末尾から順に変異マスタテーブル26に挿入してもよい。
また、追加情報のリストに含まれる行情報をソートすることなく、変異マスタテーブル26に挿入する都度、追加情報のリストから未挿入でかつ変異IDとパターンコードの組の値が最小の行情報を検索して挿入するようにしてもよい。追加情報のリストに含まれる個々の行情報が未挿入か挿入済みかの判別は、追加情報のリストに含まれる行情報のうち変異マスタテーブル26に挿入済みの行情報にフラグなどを付加しておくことで実現することができる。
また、上記では変異マスタテーブルに登録されているパターンコードの最大値を取得し、取得した最大値に1を加算した値を新たなパターンコードとする態様を説明したが、パターンコードのビット数については特に説明していない。パターンコードのビット数については、例えば本願出願人が特願2016−30268号で提案しているように、初期値を2ビットとし、現在のビット数で表現可能な変異パターンの種類数を超える変異パターンが出現する度に、2ビットずつ増やしてもよい。また、パターンコードのビット数を2ビットよりも大きくした変異位置については、上記の特願2016−30268号で提案しているように、追加ビットの値を変異型情報の末尾に格納するようにしてもよい。
また、上記では本発明を人間の変異情報に適用した態様を説明したが、これに限定されるものではなく、人間以外の生物に適用してもよい。
また、上記では、本発明に係る情報処理プログラムの一例である変異情報処理プログラム70が記憶部56に予め記憶(インストール)されている態様を説明した。しかし、本発明に係る情報処理プログラムは、CD−ROMやDVD−ROM、メモリカード等の記録媒体に記録されている形態で提供することも可能である。
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
並列に動作する複数の処理部を含む情報処理装置であって、
前記複数の処理部の各々は、変異位置毎の変異パターンを含む互いに異なる変異情報を読み込み、変異位置の識別情報の列、変異位置に出現した変異パターンの列、及び、前記変異パターンに割り当てたコードの列を含み、前記変異位置の識別情報の列及び前記コードの列に複合主キー制約が設定された変異マスタテーブルに、読み込んだ変異情報に含まれる変異位置毎の変異パターンが、未登録の場合に、前記変異マスタテーブルに対し、前記未登録の変異パターン、対応する変異位置の識別情報、及び、前記変異マスタテーブルに基づき割り当てたコードを含む行情報の挿入を試行し、挿入を試行した前記行情報が、自処理部以外の他の処理部によって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した前記行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行し、前記変異マスタテーブルに登録された情報に基づいて前記変異情報をコード化する情報処理装置。
(付記2)
前記処理部は、挿入を試行した前記行情報が、前記他の処理部によって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行することを、行情報の挿入が成功する迄繰り返す付記1記載の情報処理装置。
(付記3)
前記処理部は、読み込んだ前記変異情報に、前記変異マスタテーブルに未登録の変異パターンが複数含まれる場合に、それぞれの変異パターンに対応する複数の行情報を、変異位置の識別情報及び前記コードの組の値の昇順に、前記変異マスタテーブルへの挿入を試行する付記1又は付記2記載の情報処理装置。
(付記4)
前記処理部は、前記変異マスタテーブルに対して行情報の挿入を試行することを、管理部を経由して行い、
前記管理部は、第1の処理部から第1の行情報の挿入が試行された後、第2の処理部から前記第1の行情報に対して複合主キー制約に違反する第2の行情報の挿入が試行された場合に、前記第1の処理部に対しては第1の行情報の挿入成功を通知し、前記第1の処理部のトランザクションが終了した後、前記第2の処理部に対して前記第2の行情報が複合主キー制約に違反したことを通知する付記1〜付記3の何れか1項記載の情報処理装置。
(付記5)
コンピュータが、複数のプロセスを並列に実行する情報処理方法であって、
前記複数のプロセスの各々は、変異位置毎の変異パターンを含む互いに異なる変異情報を読み込み、変異位置の識別情報の列、変異位置に出現した変異パターンの列、及び、前記変異パターンに割り当てたコードの列を含み、前記変異位置の識別情報の列及び前記コードの列に複合主キー制約が設定された変異マスタテーブルに、読み込んだ変異情報に含まれる変異位置毎の変異パターンが、未登録の場合に、前記変異マスタテーブルに対し、前記未登録の変異パターン、対応する変異位置の識別情報、及び、前記変異マスタテーブルに基づき割り当てたコードを含む行情報の挿入を試行し、挿入を試行した前記行情報が、自プロセス以外の他のプロセスによって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した前記行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行し、前記変異マスタテーブルに登録された情報に基づいて前記変異情報をコード化する情報処理方法。
(付記6)
前記プロセスは、挿入を試行した前記行情報が、前記他のプロセスによって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行することを、行情報の挿入が成功する迄繰り返す付記5記載の情報処理方法。
(付記7)
前記プロセスは、読み込んだ前記変異情報に、前記変異マスタテーブルに未登録の変異パターンが複数含まれる場合に、それぞれの変異パターンに対応する複数の行情報を、変異位置の識別情報及び前記コードの組の値の昇順に、前記変異マスタテーブルへの挿入を試行する付記5又は付記6記載の情報処理方法。
(付記8)
前記プロセスは、前記変異マスタテーブルに対して行情報の挿入を試行することを、管理部を経由して行い、
前記管理部は、第1のプロセスから第1の行情報の挿入が試行された後、第2のプロセスから前記第1の行情報に対して複合主キー制約に違反する第2の行情報の挿入が試行された場合に、前記第1のプロセスに対しては第1の行情報の挿入成功を通知し、前記第1のプロセスのトランザクションが終了した後、前記第2のプロセスに対して前記第2の行情報が複合主キー制約に違反したことを通知する付記5〜付記7の何れか1項記載の情報処理方法。
(付記9)
コンピュータに、複数のプロセスを並列に実行させるための情報処理プログラムであって、
前記複数のプロセスの各々は、変異位置毎の変異パターンを含む互いに異なる変異情報を読み込み、変異位置の識別情報の列、変異位置に出現した変異パターンの列、及び、前記変異パターンに割り当てたコードの列を含み、前記変異位置の識別情報の列及び前記コードの列に複合主キー制約が設定された変異マスタテーブルに、読み込んだ変異情報に含まれる変異位置毎の変異パターンが、未登録の場合に、前記変異マスタテーブルに対し、前記未登録の変異パターン、対応する変異位置の識別情報、及び、前記変異マスタテーブルに基づき割り当てたコードを含む行情報の挿入を試行し、挿入を試行した前記行情報が、自プロセス以外の他のプロセスによって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した前記行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行し、前記変異マスタテーブルに登録された情報に基づいて前記変異情報をコード化する情報処理プログラム。
(付記10)
前記プロセスは、挿入を試行した前記行情報が、前記他のプロセスによって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行することを、行情報の挿入が成功する迄繰り返す付記1記載の情報処理プログラム。
(付記11)
前記プロセスは、読み込んだ前記変異情報に、前記変異マスタテーブルに未登録の変異パターンが複数含まれる場合に、それぞれの変異パターンに対応する複数の行情報を、変異位置の識別情報及び前記コードの組の値の昇順に、前記変異マスタテーブルへの挿入を試行する付記1又は付記2記載の情報処理プログラム。
(付記12)
前記プロセスは、前記変異マスタテーブルに対して行情報の挿入を試行することを、管理部を経由して行い、
前記管理部は、第1のプロセスから第1の行情報の挿入が試行された後、第2のプロセスから前記第1の行情報に対して複合主キー制約に違反する第2の行情報の挿入が試行された場合に、前記第1のプロセスに対しては第1の行情報の挿入成功を通知し、前記第1のプロセスのトランザクションが終了した後、前記第2のプロセスに対して前記第2の行情報が複合主キー制約に違反したことを通知する付記1〜付記3の何れか1項記載の情報処理プログラム。
10 変異情報分析支援システム
12 変異情報処理装置
14 変異情報処理部
16 制御部
18 処理部
22 DB管理部
26 変異マスタテーブル
28 変異型格納テーブル
50 コンピュータ
52 CPU
54 メモリ
56 記憶部
70 変異情報処理プログラム

Claims (6)

  1. 並列に動作する複数の処理部を含む情報処理装置であって、
    前記複数の処理部の各々は、変異位置毎の変異パターンを含む互いに異なる変異情報を読み込み、変異位置の識別情報の列、変異位置に出現した変異パターンの列、及び、前記変異パターンに割り当てたコードの列を含み、前記変異位置の識別情報の列及び前記コードの列に複合主キー制約が設定された変異マスタテーブルに、読み込んだ変異情報に含まれる変異位置毎の変異パターンが、未登録の場合に、前記変異マスタテーブルに対し、前記未登録の変異パターン、対応する変異位置の識別情報、及び、前記変異マスタテーブルに基づき割り当てたコードを含む行情報の挿入を試行し、挿入を試行した前記行情報が、自処理部以外の他の処理部によって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した前記行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行し、前記変異マスタテーブルに登録された情報に基づいて前記変異情報をコード化する情報処理装置。
  2. 前記処理部は、挿入を試行した前記行情報が、前記他の処理部によって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行することを、行情報の挿入が成功する迄繰り返す請求項1記載の情報処理装置。
  3. 前記処理部は、読み込んだ前記変異情報に、前記変異マスタテーブルに未登録の変異パターンが複数含まれる場合に、それぞれの変異パターンに対応する複数の行情報を、変異位置の識別情報及び前記コードの組の値の昇順に、前記変異マスタテーブルへの挿入を試行する請求項1又は請求項2記載の情報処理装置。
  4. 前記処理部は、前記変異マスタテーブルに対して行情報の挿入を試行することを、管理部を経由して行い、
    前記管理部は、第1の処理部から第1の行情報の挿入が試行された後、第2の処理部から前記第1の行情報に対して複合主キー制約に違反する第2の行情報の挿入が試行された場合に、前記第1の処理部に対しては第1の行情報の挿入成功を通知し、前記第1の処理部のトランザクションが終了した後、前記第2の処理部に対して前記第2の行情報が複合主キー制約に違反したことを通知する請求項1〜請求項3の何れか1項記載の情報処理装置。
  5. コンピュータが、複数のプロセスを並列に実行する情報処理方法であって、
    前記複数のプロセスの各々は、変異位置毎の変異パターンを含む互いに異なる変異情報を読み込み、変異位置の識別情報の列、変異位置に出現した変異パターンの列、及び、前記変異パターンに割り当てたコードの列を含み、前記変異位置の識別情報の列及び前記コードの列に複合主キー制約が設定された変異マスタテーブルに、読み込んだ変異情報に含まれる変異位置毎の変異パターンが、未登録の場合に、前記変異マスタテーブルに対し、前記未登録の変異パターン、対応する変異位置の識別情報、及び、前記変異マスタテーブルに基づき割り当てたコードを含む行情報の挿入を試行し、挿入を試行した前記行情報が、自プロセス以外の他のプロセスによって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した前記行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行し、前記変異マスタテーブルに登録された情報に基づいて前記変異情報をコード化する情報処理方法。
  6. コンピュータに、複数のプロセスを並列に実行させるための情報処理プログラムであって、
    前記複数のプロセスの各々は、変異位置毎の変異パターンを含む互いに異なる変異情報を読み込み、変異位置の識別情報の列、変異位置に出現した変異パターンの列、及び、前記変異パターンに割り当てたコードの列を含み、前記変異位置の識別情報の列及び前記コードの列に複合主キー制約が設定された変異マスタテーブルに、読み込んだ変異情報に含まれる変異位置毎の変異パターンが、未登録の場合に、前記変異マスタテーブルに対し、前記未登録の変異パターン、対応する変異位置の識別情報、及び、前記変異マスタテーブルに基づき割り当てたコードを含む行情報の挿入を試行し、挿入を試行した前記行情報が、自プロセス以外の他のプロセスによって先に挿入された行情報により複合主キー制約に違反した場合は、挿入を試行した前記行情報に含まれる前記コードを更新した新たな行情報の挿入を再試行し、前記変異マスタテーブルに登録された情報に基づいて前記変異情報をコード化する情報処理プログラム。
JP2017028893A 2017-02-20 2017-02-20 情報処理装置、方法及びプログラム Expired - Fee Related JP6776937B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017028893A JP6776937B2 (ja) 2017-02-20 2017-02-20 情報処理装置、方法及びプログラム
US15/899,067 US10579605B2 (en) 2017-02-20 2018-02-19 Information processing device, method, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017028893A JP6776937B2 (ja) 2017-02-20 2017-02-20 情報処理装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2018136607A JP2018136607A (ja) 2018-08-30
JP6776937B2 true JP6776937B2 (ja) 2020-10-28

Family

ID=63167266

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017028893A Expired - Fee Related JP6776937B2 (ja) 2017-02-20 2017-02-20 情報処理装置、方法及びプログラム

Country Status (2)

Country Link
US (1) US10579605B2 (ja)
JP (1) JP6776937B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2777930B2 (ja) 1990-07-26 1998-07-23 富士通株式会社 データベースマネージメントシステム
JP3847992B2 (ja) * 1998-12-24 2006-11-22 富士通株式会社 データベース管理装置及びプログラム記録媒体
CA2387277C (en) * 2001-05-25 2015-03-03 Hitachi, Ltd. Information processing system using nucleotide sequence-related information
JP2003036190A (ja) 2001-07-25 2003-02-07 Oki Electric Ind Co Ltd アンドゥ処理システム及びアンドゥ処理方法
JP4477894B2 (ja) * 2004-02-16 2010-06-09 株式会社 ワールドフュージョン 遺伝子解析システム
JP4770163B2 (ja) * 2004-12-03 2011-09-14 大日本印刷株式会社 生物情報の解析装置および圧縮装置
KR101188886B1 (ko) * 2010-10-22 2012-10-09 삼성에스디에스 주식회사 유전 정보 관리 시스템 및 방법
JP5938878B2 (ja) * 2011-11-22 2016-06-22 富士通株式会社 アセンブリング前処理装置、該プログラム、及びコンピュータクラスタシステムの該制御方法

Also Published As

Publication number Publication date
US20180239789A1 (en) 2018-08-23
US10579605B2 (en) 2020-03-03
JP2018136607A (ja) 2018-08-30

Similar Documents

Publication Publication Date Title
US9348883B2 (en) Systems and methods for replication replay in a relational database
US10956395B2 (en) Association analysis method and apparatus
JP5652228B2 (ja) データベースサーバ装置、データベース更新方法及びデータベース更新プログラム
US20070288537A1 (en) Method and apparatus for replicating data across multiple copies of a table in a database system
KR20070031209A (ko) 데이터베이스 복구 중의 스냅샷 쿼리를 위한 시스템 및방법
CN108319656A (zh) 实现灰度发布的方法、装置及计算节点和系统
US20010051954A1 (en) Data updating apparatus that performs quick restoration processing
JP6877435B2 (ja) データベース動作方法及び装置
CN113056734A (zh) 管理共享数据库的系统和方法
CN114328591B (zh) 事务执行方法、装置、设备和存储介质
Singh et al. DELTA-LD: A change detection approach for linked datasets
JP6776937B2 (ja) 情報処理装置、方法及びプログラム
US20160085782A1 (en) Update method and updating device
JP2017162360A (ja) ソフトウェア導入支援プログラム、ソフトウェア導入支援装置、及びソフトウェア導入支援方法
JP2002259186A (ja) Tree構造型インデクスの整合性チェック処理方法およびプログラムおよび装置
CN115794774B (zh) 数据库操作规则的生成方法、装置及电子设备
JP7152828B1 (ja) ビザンチン故障を検知するデータ管理システム及び方法
RU128741U1 (ru) Система формирования решения проблем функционирования компьютерных систем
CN110147355B (zh) 数据同步方法、装置及服务器
CN111858635B (zh) 数据表切换方法、装置、设备及存储介质
JP5487078B2 (ja) ソフトウェア資産整理方法及び装置
CN112905614A (zh) 数据更新方法及装置、电子设备、计算机可读存储介质
JP6631139B2 (ja) 検索制御プログラム、検索制御方法および検索サーバ装置
JP6023764B2 (ja) 不整合検出装置及び不整合検出方法
CN115757559A (zh) 业务数据存储方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191112

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200831

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200921

R150 Certificate of patent or registration of utility model

Ref document number: 6776937

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees