JP2009054039A - 配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法 - Google Patents

配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法 Download PDF

Info

Publication number
JP2009054039A
JP2009054039A JP2007221637A JP2007221637A JP2009054039A JP 2009054039 A JP2009054039 A JP 2009054039A JP 2007221637 A JP2007221637 A JP 2007221637A JP 2007221637 A JP2007221637 A JP 2007221637A JP 2009054039 A JP2009054039 A JP 2009054039A
Authority
JP
Japan
Prior art keywords
annotation
array
buffer
editing
change history
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.)
Pending
Application number
JP2007221637A
Other languages
English (en)
Inventor
Takamune Yamamoto
崇主 山本
Takahiko Kasuga
孝彦 春日
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co 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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2007221637A priority Critical patent/JP2009054039A/ja
Publication of JP2009054039A publication Critical patent/JP2009054039A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】分子生物学の研究者が遺伝子配列を変更する場合に、配列自体の変更にあわせて自動的にアノテーションを更新し、利用者がスムーズに実験計画を立案することができる遺伝子配列の編集方法を提供する。
【解決手段】各種指示を入力するとともに使用者が配列を編集するための入力部101と、配列情報を格納しているデータベース104と、全体を制御するためのデータ処理部103と、配列およびアノテーションを表示する表示部102とから構成され、データ処理部103は、データベース104内の情報を元に、配列の実体(文字列)と配列情報から抽出したアノテーション(特定の領域)をグラフィカルに表示部102に表示する表示制御を含む各種制御を行い、入力部101から、配列上の任意の位置の文字が編集(追加および削除、置換)されると、データ処理部103は、その入力に応じて処理を開始する。
【選択図】図1

Description

本発明は、分子生物学の実験によって得られた遺伝子配列の編集技術に関する。
ゲノムプロジェクトによって推進された遺伝子情報の蓄積に伴い、NCBI(National Center for Biotechnology Information <http://www.ncbi.nlm.nih.gov/>)などの公共データベースに登録されている配列情報は非常に充実してきている。これらの情報は、一般的な研究者でも無料で利用することが可能であり、多くの研究者が実験方法を計画する上で利用している。
以前より、配列情報として配列の並び自体ではなく、機能を持つ領域(タンパク質に変換される領域、分子と結合性のある領域、遺伝子発現の調節を行っている領域、立体構造の形成に関与する領域、他の機能を有する配列と類似している領域など)が重要視されている。以下、機能を持つ領域をアノテーションと表記する。配列情報中のアノテーションをグラフィカルに表示するアプリケーションも普及してきている。
本発明に関連する公知技術文献としては下記特許文献1・2があげられる。
特開2006−252208号公報 特開2006−252541号公報
配列情報は、特定の配列および領域(アノテーション)に目印をつけて表示することで理解しやすくなる。しかしながら、研究者が配列自体を編集した場合、従来のアプリケーションでは目印として表示している図形を更新しないため、配列と目印に不整合が発生するという問題があった。従来のアプリケーションの中には、特定の領域に目印をつけ、領域の開始位置と終了位置を編集する機能を持つものもあるが、配列自体を編集した場合に、自動的に目印の位置を変更する機能を提供しているものはない。これは、機能を持つ領域の種類によって、部分的に変更しても意味を損なわない場合と意味を損なってしまう場合があるためである。
この点に関しては、編集後の配列自体が編集前の配列と同様に機能を持つ領域であることを検証することで補うことができる。
しかしながら、公共データベースで提供されている配列情報のアノテーションは、実験に基づく結果と予測プログラムにより予想した結果とが同じように登録されており、根拠となる検証手法の参照先は示されているものの、詳細な方法や手段までは示していない。
そのため、公共データベースからダウンロードした情報から根拠となる手法を探し出し、再び検証することは困難であった。さらに、検証する手法自体は無数に存在し、全ての手法を用いて検証することは現実的でない。また、生物学的な機構が明確になっていない場合に、実験条件や環境により特定の領域として機能を持つか否かの法則は明らかではない。
研究者が必要としている情報は、厳密な意味での機能を持つ領域ばかりではなく、実験方法を計画する上で参考とするための情報である場合も多い。そのため、根拠が十分には明確ではない場合であっても、機能を持つと予測される領域を表示することが好ましい。
本発明の目的は、分子生物学の研究者が遺伝子配列を変更する場合に、配列自体の変更にあわせて自動的にアノテーションを更新し、利用者がスムーズに実験計画を立案することができる遺伝子配列の編集方法を提供することにある。
上記目的を達成するために、本発明の配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法は、遺伝子配列を編集した操作履歴を管理する手段と、遺伝子配列の編集と同時にアノテーションを編集する手段と、アノテーションの変更履歴を管理する手段と、履歴を元に配列とアノテーションを元に戻す手段を設けたものである。
本発明の一観点によれば、遺伝子配列を編集する操作を受け付けた後、配列変更履歴バッファおよびアノテーション変更履歴バッファの内容を確定するタイミングを判断するためのフラグとして利用される変更中フラグを確認するステップと、変更中フラグがFALSE(F)の場合に、配列変更履歴バッファとアノテーション変更履歴バッファとにそれぞれ行を追加し、要素IDを採番し、変更中フラグがTRUE(T)の場合に、変更履歴バッファの変更は行わないで、入力装置における操作が、配列となる文字列を入力した操作であるか、それ以外の編集操作であるかを判定し、配列となる文字列を入力した操作である場合は、変更中フラグの値をTRUEに変更し、それ以外の編集操作である場合は、変更中フラグの値をFALSEに変更し、バッファインデックスが示す要素IDに対応する変更バッファの要素に対して、変更の内容を更新し、変更中フラグの内容を確認するステップと、FALSE(F)の場合、バッファインデックスが示す要素IDに対応する変更履歴バッファの要素の内容を確定し、バッファインデックスをインクリメントし、TRUE(T)の場合、変更バッファの内容を確定せずに変更内容にあわせて配列の実体データを更新し、変更内容にあわせてアノテーションの実体データを更新し、受付処理に戻るステップと、を有することを特徴とする遺伝子配列の編集方法が提供される。
また、前記入力装置からの入力を受け付けると、編集の種類を確認するステップであって、編集操作ではない場合は、前記変更中フラグの値をFALSEに変更し、前記バッファインデックスが示す要素IDのひとつ少ない値を算出し、求めた要素IDに対応する前記配列変更履歴バッファおよび前記アノテーション変更履歴バッファの要素に記録してある情報を元に、配列データ管理部の配列の実体データおよびアノテーション管理部のアノテーションの実体データを更新し、前記バッファインデックスの値をデクリメントし、編集操作であった場合は、前記変更中フラグの値をTRUEに変更し、前記バッファインデックスが示す要素ID以降に対応する前記配列変更履歴バッファおよび前記アノテーション変更履歴バッファの要素の内容を削除するステップと、を有することが好ましい。変更バッファの内容を削除するのは、操作履歴に分岐が生じないようにするためである。
また、前記入力装置からの入力を受け付けると、操作をやり直すステップであって、編集の種類を確認した結果、編集操作ではない場合は、前記変更中フラグの値をFALSEに変更し、前記バッファインデックスが示す要素IDに対応する前記配列変更履歴バッファおよび前記アノテーション変更履歴バッファの要素に記録してある情報を元に配列の実体データおよびアノテーションの実体データを更新し、前記バッファインデックスの値をインクリメントし、編集操作であった場合は、前記変更中フラグの値をTRUEに変更し、前記バッファインデックスが示す要素ID以降に対応する前記配列変更履歴バッファおよび前記アノテーション変更履歴バッファの要素の内容を削除するステップを有することが好ましい。
尚、変更バッファの内容を削除するのは、操作履歴に分岐が生じないようにするためである。
以下のように本発明の配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法によれば、次のような効果がある。
遺伝子配列の編集にあわせて自動的にアノテーションを編集することができ、個別にアノテーションを編集する作業を省略することができる。
遺伝子配列の編集操作を取り消した場合に自動的にアノテーションを編集することができ、個別にアノテーションを編集する作業を省略することができる。
以下、本発明の一実施の形態による遺伝子配列情報の編集技術について図面を参照しながら説明を行う。
図1は、配列情報をグラフィカルに表示するためのアプリケーションシステムの概要を示す機能ブロック図であり、各種の指示を入力するとともに使用者が配列を編集するための入力部101、配列情報を格納しているデータベース104、全体を制御するためのデータ処理部103、配列およびアノテーションを表示する表示部102を有している。一般的に、配列情報105はテキスト形式で提供されている。データ処理部103は、データベース104内の情報を元に、配列の実体(文字列)と配列情報から抽出したアノテーション(特定の領域)をグラフィカルに表示部2に表示する表示制御を含む各種制御を行う。キーボードなどの入力装置1から、配列上の任意の位置の文字が編集(追加および削除、置換)されると、データ処理部103は、その入力に応じて処理を開始する。
尚、配列情報105は、システム内ではなく、インターネット等を介して各種研究期間などの公開している配列情報の図示しないデータベースなどに格納されている情報を取得してデータベース104に格納する。この際、データベース104は、上記配列情報のうち、入力部101を介して指定された情報を格納するように構成されている。データベース104内の情報テーブル104aは、配列の識別情報である配列IDと、配列データと、アノテーション(注釈)と、を含むテーブルである。
尚、配列IDと配列データは1対1であり、配列IDとアノテーション全体が1対1でとなっているのが好ましい。アノテーションを部分ごとに分割するテーブルにすると、配列IDとアノテーションとは1対多になる。また、アノテーションに関しては、配列情報105に元々含まれているものを利用する場合と、入力装置101から入力されることで後から付けられる場合と、がある。部分配列305は、編集作業によって変更した配列の実体(文字列)である。このドキュメントでは、アノテーションは、「配列の実体上の位置と説明(注釈)」として定義される。
図3に示す部分配列は入力装置において操作された配列の範囲である。
図2は、図1に示すデータ処理部103の一構成例を示す図である。図2に示すように、本実施の形態によるデータ処理部(103)は、配列の変更状態を示すフラグを格納する変更中フラグ格納部201と、配列及びアノテーションの変更履歴のインデックスを格納するバッファインデックス202と、配列自体の変更履歴を示す配列変更履歴を格納する配列変更履歴バッファ203と、アノテーションの変更履歴を示すアノテーション変更履歴を格納するアノテーション変更履歴バッファ204と、配列自体を編集、表示するための管理を行う配列データ管理部205と、アノテーションを編集、表示するための管理を行うアノテーション管理部206と、変更履歴に関する情報を管理する変更履歴バッファ管理部207と、を有している。
変更中フラグ格納部201には、図1の入力部101からの入力操作に基づいて、配列を変更中であるか否かを示すフラグを格納される。例えば、変更中フラグ格納部201は、キーボードから配列となる文字列を入力した場合TRUEのフラグを格納し、コピーやペーストなどの配列の入力とは異なる操作の場合FALSEのフラグを格納する。これは、キーボードから入力した変更を、操作の取り消し(Undo)により取り消した場合、変更をひとまとめに取り消す(1文字ずつ取り消す必要がないようにする)ために使用する。
画面を表示するクライアントアプリケーションを作成した場合、キーボードから配列となる文字を1文字入力するたびに、1つの処理(イベント)が発生する。入力した文字を1文字ごとに変更履歴バッファに登録し内容を確定する場合、キーボードから配列となる文字を10回入力すると、変更履歴バッファには10回分の操作が登録される。そのため、操作の取り消し(Undo)を1回実行すると1回分の変更操作が取り消され、9回目の文字を入力した後の状態となる。
しかし、キーボードから連続して文字を入力する場合、入力の開始から終了までをひとまとめにして管理する方が好ましい。そのため、キーボードから配列となる文字列を入力し、処理(イベント)が発生した段階で、変更中フラグ格納部201にTRUEを格納し、変更操作が開始したことを記録する。変更中フラグ格納部201にTRUEが格納されている場合、キーボードから入力した文字を変更履歴バッファに追加するが、内容を確定しない。続けてキーボードから配列となる文字を9回入力すると、変更履歴バッファには、1つの要素に10回分の操作が登録されているが確定していない状態となる。次に、配列の入力とは異なる操作を実行すると、変更中フラグ格納部201にFALSEが格納され、変更履歴バッファの内容が確定する。そのため、操作の取り消し(Undo)を1回実行すると1回分の変更操作が取り消され、1回目の文字を入力する前の状態となる。
バッファインデックス202は、操作の取り消し(Undo)や、やり直し(Redo)を行った場合に、何番目の操作まで戻したかを示すインデックスを操作と対応付けして格納する。
配列変更履歴バッファ203は、配列変更に関する操作の種類と、変更開始位置と変更対象となる配列長及びその部分配列の内容を、操作が行われた順番に格納する。詳細に関しては、図3を参照して説明する。
アノテーション変更履歴バッファ204は、データ配列の要素を決定する要素IDと、変更したアノテーションのIDと、変更直前のアノテーションの開始位置と終了位置と、を格納する。詳細に関しては、図4を参照して説明する。 配列データ管理部205は、配列データを管理し、変更された場合には、変更中フラグと、バッファインデックスと、文字列変更履歴と、を参照して、表示部102に、文字列を表示させる。配列データとして、配列のIDと配列の名称と配列長と配列文字列と、を管理する。配列データ管理部205は、データ格納領域からメモリ上に配列のIDと配列の名称と配列長と配列文字列を読み出し、配列の名称と配列文字列を表示部102に文字として表示する。表示部102に表示中は、利用者が配列の名称と配列文字列を編集できるように構成されており、編集操作と保存操作とに関するインターフェイスが提供される。
編集操作の受付中は、メモリ上のデータを更新し、保存操作時にデータ格納領域を更新する。表示部102に表示されている配列文字列上にカーソルを表示させ、入力部101から受け付けれ書き換えられた配列文字列の位置を取得する。入力部101が受け付けた配列データを編集する操作にあわせて、メモリ上の配列データと表示部102の表示とを更新する。
アノテーションデータ管理部206は、アノテーションデータを管理し、アノテーションデータが変更された場合には、変更中フラグと、バッファインデックスと、アノテーション変更履歴と、を参照して、表示部102に、アノテーションを表示させる。
アノテーションデータは、アノテーションIDと、アノテーション名称と、外部キーとなる配列IDと、複数の開始位置および終了位置と、を管理する。アノテーションデータ管理部206は、配列データ管理部205がメモリ上に読み出した配列IDと一致するアノテーションデータを検索し、データ格納領域からメモリ上にアノテーションIDとアノテーション名称と外部キーとなる配列IDと開始位置および終了位置とを読み出す。
表示部102には、配列データの配列長を表す横線を表示させ、横線の左端を座標の最小値、右端を座標の最大値となる。座標の最大値は、画面上の表示サイズと画面の解像度により決めることができる。座標の最小値を配列の1文字目に相当する位置とし、座標の最大値を配列の最終文字に相当する位置とする。次に、アノテーションの開始位置から終了位置に相当する座標を算出し、アノテーションの名称とアノテーションを表す開始位置から終了位置に向けた矢印を表示する。利用者が配列文字列を編集する操作にあわせて、図8から図14までにおいて説明する処理にしたがって、メモリ上のアノテーションデータと表示部102の表示とを更新する。さらに、変更履歴バッファ203およびアノテーション変更履歴バッファ204を変更する処理を行う変更履歴バッファ管理部207が設けられている。
尚、変更中フラグ201とバッファインデックス202は、実際にはBool値と数値になる。実装する場合には、変更履歴バッファ管理部207のプログラム内の変数になる。
図3は、図2で示した配列自体の変更履歴バッファ203内のデータ構成例を示す図である。図3に示すように、配列変更履歴バッファ203には、データ配列の要素を決定する要素IDを格納する領域301、編集操作の種類を格納する領域302、配列上の変更開始位置を格納する領域303、配列上の変更した長さを格納する領域304、変更した部分配列を格納する領域305を備える。図2で示したバッファインデックス(202)は、操作の取り消し(Undo)や、やり直し(Redo)を行う場合に、何番目の操作まで戻したかを示すインデックス306として使用される。
要素ID301は、データ内でユニークになり、重複しないように採番する。操作の種類302は、配列編集の操作により、「切り取り(=Cut)」、「貼り付け(=Paste)」、「挿入(=Insert)」、「次の文字を削除(=Delete)」、「前の文字を削除(=Back Space)」、を記録する。変更開始位置303と配列長304とは、編集時点での配列上において、編集をおこなった開始位置とその長さを記録する。部分配列305は、操作の種類302により格納する情報が異なる。配列を追加する操作(Paste、Insert)の場合、追加した部分配列を格納する。配列を削除する操作(Cut、Delete、Back Space)の場合、削除した部分配列を格納する。
図4は、図2で示したアノテーション変更履歴バッファ204のデータ構成例を示す図である。アノテーション変更履歴バッファ204には、データ配列の要素を決定する要素IDを格納する領域401、変更した対象アノテーションのID402、変更直前のアノテーションの開始位置403と終了位置404とを備える。尚、アノテーションは、複数の部分に分割されている場合があるため、これに対応できるように、開始位置および終了位置に関して、複数組を格納できるようにしても良い。(405、406)
図2で示したバッファインデックス202は、操作の取り消し(Undo)や、やり直し(Redo)を行う場合に、何番目の操作まで戻したかを示すインデックス407として使用する。
要素ID401は、データ内でユニークになり、重複しないように採番し、図3の要素ID301と同じ値を使用する。アノテーション変更履歴バッファ204では、編集の種類にかかわらず編集直前のアノテーションのみを記録する。すなわち、編集前の状態のアノテーションを記録する。記録する項目は、要素ID401、対象アノテーション402、開始位置403、終了位置404(アノテーションが複数の部分に分割されている場合は、開始位置と終了位置も複数。)の全項目を記録する。
図5から図7までは、基本的に変更履歴バッファ管理部207における処理の内容を示すフローチャート図である。但し、配列データを更新する処理510、変更処理607、変更処理707は、配列データ管理部205の処理を呼び出す形になる。同様に、アノテーションデータを更新する処理511、変更処理607、変更処理707は、アノテーションデータ管理部206の処理を呼び出す処理になる。
図5は、配列編集時の処理の流れを示すフローチャート図である。図5に示すフローチャート図は、入力装置101が配列を編集する操作を受け付けた時点から開始され、配列を編集する操作が中止された時点で終了する。
入力装置101からの入力を受け付けた後、変更中フラグ201を確認する(ステップ501)。
次に、変更中フラグ201の内容を確認する。ここでFALSE(F)の場合、配列変更履歴バッファ203とアノテーション変更履歴バッファ204とに対してそれぞれ行を追加し、要素IDを採番する(ステップ502)。尚、変更中フラグ201は、配列変更履歴バッファ203およびアノテーション変更履歴バッファ204の内容を確定するタイミングを判断するためのフラグとして利用され、独自の領域に記録される。
一方、TRUE(T)の場合は、配列変更履歴バッファ203の変更は行わないでステップ503に進む。ステップ503において、入力装置101からの操作が、配列となる文字列を入力した操作であるか、それ以外の編集操作であるかを判定する。配列となる文字列を入力した操作である場合(T)、ステップ504に進み、変更中フラグ201の値をTRUEに変更する。それ以外の編集操作である場合(F)、ステップ505に進み、変更中フラグ201の値をFALSEに変更する。
次に、バッファインデックス202が示す要素IDに対応する変更履歴バッファ(203、204)の要素に対して、変更の内容を更新する(ステップ506)。次に、変更中フラグ201の内容を確認する。FALSE(F)の場合、ステップ508に進み、バッファインデックス202)が示す要素IDに対応する変更履歴バッファ(203、204)の要素の内容を確定し(ステップ508)、バッファインデックス202をインクリメントする(ステップ509)。ステップ507でTRUE(T)の場合、変更バッファの内容を確定しない。
次に、変更内容にあわせて配列データ管理部205の配列の実体データを更新する(ステップ510)。次に、変更内容にあわせてアノテーション管理部206のアノテーションの実体データを更新し(ステップ511)、ステップ501に戻る。
尚、アノテーションの更新方法については、図8から図14までを参照して説明する。図6は、操作の取り消し(Undo)実行時の処理の流れを示すフローチャート図である。図6に示すフローチャート図は、入力装置101における操作を取り消す操作(Undo)を行った時点から開始され、配列を編集する操作が開始された時点で終了する。
入力装置101からの入力を受け付けると、編集の種類を確認する(ステップ601)。
ここで、編集操作ではない場合は、ステップ602において変更中フラグ201の値をFALSEに変更し、バッファインデックス202が示す要素IDのひとつ少ない値を算出し(ステップ603)、求めた要素IDに対応する変更履歴バッファ203、204の要素に記録してある情報を元に配列データ管理部205の配列の実体データおよびアノテーション管理部206のアノテーションの実体データを更新し、バッファインデックス202の値をデクリメントする(ステップ604)。
次に、編集操作であった場合に(T)、ステップ605において編集中フラグの値をTRUEに変更し、バッファインデックス202が示す要素ID以降に対応する変更履歴バッファ(203、204)の要素の内容を削除し(ステップ606)、フローチャート(図5)に従って変更処理を行う。(ステップ607)。尚、ステップ606において変更バッファの内容を削除するのは、操作履歴に分岐が生じないようにするためである。
図7は、操作のやり直し(Redo)実行時の処理の流れを示すフローチャート図である。図7に示すフローチャート図は、入力装置101からの入力を受け付けると、操作をやり直す操作(Redo)を行った時点から開始し、使用者が配列を編集する操作を開始した時点で終了するものとする。
入力装置101からの入力を受け付けた後に、編集の種類を確認する(ステップ701)。
編集操作ではない場合(F)、ステップ702において変更中フラグ201の値をFALSEに変更し、バッファインデックス202が示す要素IDに対応する変更履歴バッファ203、204の要素に記録してある情報を元に配列の実体データ205およびアノテーションの実体データ206を更新し(ステップ703)、バッファインデックス202の値をインクリメントする(ステップ704)。
次に、編集操作であった場合(T)、ステップ705において編集中フラグの値をTRUEに変更し、ステップ706において、バッファインデックス202が示す要素ID以降に対応する変更履歴バッファ203、204)の要素の内容を削除し、フローチャート(図5)に従って変更処理を行う。(ステップ707)。尚、ステップ706で変更履歴バッファ203、204の内容を削除するのは、操作履歴に分岐が生じないようにするためである。
図8は、アノテーションの開始位置にキャレットが存在する状態で、配列を編集した場合のアノテーションの変更方法である。編集前の状態では、配列の長さは18であり、ポジション5〜12にアノテーションがあり、キャレットがポジション4と5の間にあるとする(801)。尚、アノテーションとは、矢印で示された領域、すなわち、配列の範囲を指す。また、キャレットとは、カーソルのことである。
「切り取り(=Cut)」を実行した場合、配列自体に変更はないため、アノテーションも変更しない(802)。
「貼り付け(=Paste)」を実行して、文字列「AA」を挿入した場合、配列自体はポジション4と5の間に文字を挿入し、ポジション5〜18の文字はポジション7〜20に移動する。このとき、アノテーションをポジション7〜14に変更する(803)。
「挿入(=Insert)」を実行して、文字列「A」を挿入した場合、配列自体はポジション4と5の間に文字を挿入し、ポジション5〜18の文字はポジション6〜19に移動する。このとき、アノテーションをポジション6〜13に変更する(804)。
「次の文字を削除(=Delete)」を実行した場合、配列自体はポジション5の文字を削除し、ポジション6〜18がポジション5〜17に移動する。このとき、アノテーションを1文字分短くし、ポジション5〜11に変更する(805)。
「前の文字を削除(=Back Space)」を実行した場合、配列自体はポジション4の文字を削除し、ポジション5〜18がポジション4〜17に移動する。このとき、アノテーションをポジション4〜11に変更する(806)。
また、変更時にアノテーション変更履歴バッファ(204)に、編集前のアノテーション情報(ポジション5〜12)を保存する。尚、図6を参照して説明したように、操作の取り消し(Undo)実行時に、アノテーションを復元するために使用する。すなわち、図6の説明中における、「求めた要素IDに対応する変更履歴バッファ203、204の要素に記録してある情報を元に配列の実体データ205およびアノテーションの実体データ206を更新し」が該当する。
また、図7で説明した、操作のやり直し(Redo)実行時に、アノテーションを復元するために使用する。図7の説明文中では、「バッファインデックス(202)」が示す要素IDに対応する変更バッファ203、204」の要素に記録してある情報を元に配列の実体データ(205)およびアノテーションの実体データ(206)を更新し」が該当する。
図9は、アノテーションの開始位置を含む領域を選択した状態で、配列を編集した場合のアノテーションの変更方法である。編集前の状態では、配列の長さは18であり、ポジション5〜12にアノテーションがあり、ポジション4〜5を選択している状態であるとする(901)。
「切り取り(=Cut)」を実行した場合、配列自体はポジション4〜5の文字を削除し、ポジション6〜18の文字がポジション4〜16に移動する。このとき、アノテーションを1文字分短くし、ポジション4〜10に変更する(902)。
「貼り付け(=Paste)」を実行して、文字列「AA」を挿入した場合、配列自体はポジション4〜5の文字を削除後、ポジション4と5の間に文字を挿入し、ポジションは変更しない。このとき、アノテーションを1文字分短くし、ポジション6〜12に変更する(903)。ただし、選択している配列長と挿入する文字列長が異なる場合は、ポジションを移動させる。
「挿入(=Insert)」を実行して、文字列「A」を挿入した場合、配列自体はポジション4〜5の文字を削除後、ポジション4と5の間に文字を挿入し、ポジション6〜18の文字はポジション5〜17に移動する。このとき、アノテーションを1文字分短くし、ポジション5〜11に変更する(904)。
「次の文字を削除(=Delete)」を実行した場合、配列自体はポジション4〜5の文字を削除し、ポジション6〜18がポジション4〜16に移動する。このとき、アノテーションを1文字分短くし、ポジション4〜10に変更する(905)。
「前の文字を削除(=Back Space)」を実行した場合は、「次の文字を削除(=Delete)」を実行した場合と同様である(906)。
また、変更時にアノテーション変更履歴バッファ204に、編集前のアノテーション情報(ポジション5〜12)を保存する。
尚、図9の901で、ポジション4〜5の背景に色をつけているのは、範囲4〜5を選択していることを意味しています。そこで編集操作(例えば削除)を実行した場合、図3の「配列自体の変更履歴バッファ」に範囲4〜5に該当する配列「GA」を部分配列として登録します。矢印の範囲は図4の「アノテーションの変更履歴バッファ」に登録します。
図10は、アノテーションの終了位置にキャレットが存在する状態で、配列を編集した場合のアノテーションの変更方法である。編集前の状態では、配列の長さは18であり、ポジション5〜12にアノテーションがあり、キャレットがポジション12と13の間にあるとする(1001)。
「切り取り(=Cut)」を実行した場合、配列自体に変更はないため、アノテーションも変更しない(1002)。
「貼り付け(=Paste)」を実行して、文字列「AA」を挿入した場合、配列自体はポジション12と13の間に文字を挿入し、ポジション13〜18の文字はポジション15〜20に移動する。このとき、アノテーションは変更しない(1003)。
「挿入(=Insert)」を実行して、文字列「A」を挿入した場合、配列自体はポジション4と5の間に文字を挿入し、ポジション5〜18の文字はポジション6〜19に移動する。このとき、アノテーションは変更しない(1004)。
「次の文字を削除(=Delete)」を実行した場合、配列自体はポジション13の文字を削除し、ポジション14〜18がポジション13〜17に移動する。このとき、アノテーションは変更しない(1005)。
「前の文字を削除(=Back Space)」を実行した場合、配列自体はポジション12の文字を削除し、ポジション13〜18がポジション12〜17に移動する。このとき、アノテーションをポジション5〜11に変更する(1006)。
また、変更時にアノテーション変更履歴バッファ204に、編集前のアノテーション情報(ポジション5〜12)を保存する。
図11は、アノテーションの終了位置を含む領域を選択した状態で、配列を編集した場合のアノテーションの変更方法である。編集前の状態では、配列の長さは18であり、ポジション5〜12にアノテーションがあり、ポジション12〜13を選択している状態であるとする(1101)。
「切り取り(=Cut)」を実行した場合、配列自体はポジション12〜13の文字を削除し、ポジション14〜18の文字がポジション12〜16に移動する。このとき、アノテーションを1文字分短くし、ポジション5〜11に変更する(1102)。
「貼り付け(=Paste)」を実行して、文字列「AA」を挿入した場合、配列自体はポジション12〜13の文字を削除後、ポジション11と12の間に文字を挿入し、ポジションは変更しない。このとき、アノテーションを1文字分短くし、ポジション5〜11に変更する(1103)。ただし、選択している配列長と挿入する文字列長が異なる場合は、ポジションを移動させる。
「挿入(=Insert)」を実行して、文字列「A」を挿入した場合、配列自体はポジション11〜12の文字を削除後、ポジション11と12の間に文字を挿入し、ポジション13〜18の文字はポジション12〜17に移動する。このとき、アノテーションを1文字分短くし、ポジション5〜11に変更する(1104)。
「次の文字を削除(=Delete)」を実行した場合、配列自体はポジション11〜12の文字を削除し、ポジション13〜18の文字がポジション12〜16に移動する。このとき、アノテーションを1文字分短くし、ポジション5〜11に変更する(1105)。
「前の文字を削除(=Back Space)」を実行した場合は、「次の文字を削除(=Delete)」を実行した場合と同様である(1106)。
また、変更時にアノテーション変更履歴バッファ(204)に、編集前のアノテーション情報(ポジション5〜12)を保存する。
図12は、アノテーション上にキャレットが存在する状態で、配列を編集した場合のアノテーションの変更方法である。編集前の状態では、配列の長さは18であり、ポジション5〜12にアノテーションがあり、キャレットがポジション7と8の間にあるとする(1201)。
「切り取り(=Cut)」を実行した場合、配列自体に変更はないため、アノテーションも変更しない(1202)。
「貼り付け(=Paste)」を実行して、文字列「AA」を挿入した場合、配列自体はポジション7と8の間に文字を挿入し、ポジション8〜18の文字はポジション10〜20に移動する。このとき、アノテーションはポジション5〜14に変更する(1203)。
「挿入(=Insert)」を実行して、文字列「A」を挿入した場合、配列自体はポジション7と8の間に文字を挿入し、ポジション8〜18の文字はポジション9〜19に移動する。このとき、アノテーションはポジション5〜13に変更する(1204)。
「次の文字を削除(=Delete)」を実行した場合、配列自体はポジション8の文字を削除し、ポジション9〜18がポジション8〜17に移動する。このとき、アノテーションを1文字分短くし、ポジション5〜11に変更する(1205)。
「前の文字を削除(=Back Space)」を実行した場合、配列自体はポジション7の文字を削除し、ポジション8〜18がポジション7〜17に移動する。このとき、アノテーションを1文字分短くし、ポジション5〜11に変更する(1206)。
また、変更時にアノテーション変更履歴バッファ204に、編集前のアノテーション情報(ポジション5〜12)を保存する。
図13は、アノテーション上を含む領域を選択した状態で、配列を編集した場合のアノテーションの変更方法である。編集前の状態では、配列の長さは18であり、ポジション5〜12にアノテーションがあり、ポジション8〜9を選択している状態であるとする(1301)。
「切り取り(=Cut)」を実行した場合、配列自体はポジション8〜9の文字を削除し、ポジション10〜18の文字がポジション8〜16に移動する。このとき、アノテーションを2文字分短くし、ポジション5〜10に変更する(1302)。
「貼り付け(=Paste)」を実行して、文字列「AA」を挿入した場合、配列自体はポジション8〜9の文字を削除後、ポジション8と9の間に文字を挿入し、ポジションは変更しない。このとき、アノテーションは変更しない(1303)。ただし、選択している配列長と挿入する文字列長が異なる場合は、ポジションを移動させる。
「挿入(=Insert)」を実行して、文字列「A」を挿入した場合、配列自体はポジション8〜9の文字を削除後、ポジション8と9の間に文字を挿入し、ポジション10〜18の文字はポジション9〜17に移動する。このとき、アノテーションを1文字分短くし、ポジション5〜11に変更する(1304)。
「次の文字を削除(=Delete)」を実行した場合、配列自体はポジション8〜9の文字を削除し、ポジション10〜18の文字がポジション8〜16に移動する。このとき、アノテーションを2文字分短くし、ポジション5〜10に変更する(1305)。
「前の文字を削除(=Back Space)」を実行した場合は、「次の文字を削除(=Delete)」を実行した場合と同様である(1306)。
また、変更時にアノテーション変更履歴バッファ204に、編集前のアノテーション情報(ポジション5〜12)を保存する。
図14は、アノテーション全体を含む領域を選択した状態で、配列を編集した場合のアノテーションの変更方法である。編集前の状態では、配列の長さは18であり、ポジション5〜12にアノテーションがあり、ポジション4〜13を選択している状態であるとする(1401)。
「切り取り(=Cut)」を実行した場合、配列自体はポジション4〜13の文字を削除し、ポジション15〜18の文字がポジション4〜8に移動する。このとき、アノテーションの位置情報は削除する(1402)。
「貼り付け(=Paste)」を実行して、文字列「AA」を挿入した場合、配列自体はポジション4〜13の文字を削除後、ポジション3と4の間に文字を挿入し、ポジション14〜18は、ポジション6〜10に移動する。このとき、アノテーションの位置情報は削除する(1403)。
「挿入(=Insert)」を実行して、文字列「A」を挿入した場合、配列自体はポジション4〜13の文字を削除後、ポジション3と4の間に文字を挿入し、ポジション14〜18の文字はポジション5〜9に移動する。このとき、アノテーションは削除する(1404)。
「次の文字を削除(=Delete)」を実行した場合、配列自体はポジション4〜13の文字を削除し、ポジション15〜18の文字がポジション4〜8に移動する。このとき、アノテーションの位置情報は削除する(1405)。
「前の文字を削除(=Back Space)」を実行した場合は、「次の文字を削除(=Delete)」を実行した場合と同様である(1406)。
アノテーション全体を削除する場合、アノテーションの位置情報は削除するが、操作の取り消し(Undo)や、やり直し(Redo)を実行する場合に不整合が発生しないようにするため、IDによる管理情報は削除しない。アプリケーションの終了時などの操作履歴をクリアするタイミングで、不要になったアノテーションのIDは削除する。
また、位置情報を持たないアノテーションに対して、操作履歴には登録しない。
変更時にアノテーション変更履歴バッファ204に、編集前のアノテーション情報(ポジション5〜12)を保存する。
以下のように、本実施の形態による、配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法によれば、以下のような効果がある。
遺伝子配列の編集にあわせて自動的にアノテーションを編集することができ、個別にアノテーションを編集する作業を省略することができる。
遺伝子配列の編集操作を取り消した場合に自動的にアノテーションを編集することができ、個別にアノテーションを編集する作業を省略することができる。
尚、本発明は、上記に記載の方法の他に、方法の各ステップをコンピュータに実行させるためのプログラム、そのプログラムを記録するコンピュータ読みとり可能な記録媒体、上記方法をハードウェア又はソフトウェアにより処理することができる情報処理装置を含むものである。
本発明は、配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法として利用可能である。
本発明の一実施の形態による遺伝子配列の編集システムの一構成例を示す図である。 本実施の形態によるデータ管理部の機能ブロック図である。 本実施の形態による配列変更履歴バッファのデータ構成例を示す図である。 本実施の形態によるアノテーション変更履歴バッファのデータ構成例を示す図である。 本実施の形態による配列編集時の処理の流れを示すフローチャート図である。 本実施の形態による操作の取り消し(Undo)実行時の処理の流れを示すフローチャート図である。 本実施の形態による操作のやり直し(Redo)実行時の処理の流れを示すフローチャート図である。 アノテーションの開始位置にキャレットが存在する状態で、配列を編集した場合のアノテーションの変更方法を示す図である。 アノテーションの開始位置を含む領域を選択した状態で、配列を編集した場合のアノテーションの変更方法を示す図である。 アノテーションの終了位置にキャレットが存在する状態で、配列を編集した場合のアノテーションの変更方法を示す図である。 アノテーションの終了位置を含む領域を選択した状態で、配列を編集した場合のアノテーションの変更方法を示す図である。 アノテーション上にキャレットが存在する状態で、配列を編集した場合のアノテーションの変更方法を示す図である。 アノテーション上を含む領域を選択した状態で、配列を編集した場合のアノテーションの変更方法を示す図である。 アノテーション全体を含む領域を選択した状態で、配列を編集した場合のアノテーションの変更方法を示す図である。
符号の説明
101…入力部、102…表示部、103…データ処理部、104…データベース、104a…情報テーブル、105…配列情報。

Claims (3)

  1. 遺伝子配列を編集する操作を受け付けた後、配列変更履歴バッファおよびアノテーション変更履歴バッファの内容を確定するタイミングを判断するためのフラグとして利用される変更中フラグを確認するステップと、
    変更中フラグがFALSE(F)の場合に、配列変更履歴バッファとアノテーション変更履歴バッファとにそれぞれ行を追加し、要素IDを採番するステップと、
    変更中フラグがTRUE(T)の場合に、変更履歴バッファの変更は行わないで、入力装置における操作が、配列となる文字列を入力した操作であるか、それ以外の編集操作であるかを判定し、配列となる文字列を入力した操作である場合は、変更中フラグの値をTRUEに変更し、それ以外の編集操作である場合は、変更中フラグの値をFALSEに変更し、バッファインデックスが示す要素IDに対応する変更バッファの要素に対して、変更の内容を更新し、変更中フラグの内容を確認し、FALSE(F)の場合、バッファインデックスが示す要素IDに対応する変更履歴バッファの要素の内容を確定し、バッファインデックスをインクリメントし、TRUE(T)の場合、変更バッファの内容を確定せずに変更内容にあわせて配列の実体データを更新し、変更内容にあわせてアノテーションの実体データを更新し、受付処理に戻るステップと、
    を有することを特徴とする遺伝子配列の編集方法。
  2. 前記入力装置からの入力を受け付けると、編集の種類を確認するステップであって、編集操作ではない場合は、前記変更中フラグの値をFALSEに変更し、前記バッファインデックスが示す要素IDのひとつ少ない値を算出し、求めた要素IDに対応する前記配列変更履歴バッファおよび前記アノテーション変更履歴バッファの要素に記録してある情報を元に、配列データ管理部の配列の実体データおよびアノテーション管理部のアノテーションの実体データを更新し、前記バッファインデックスの値をデクリメントし、
    編集操作であった場合は、前記変更中フラグの値をTRUEに変更し、前記バッファインデックスが示す要素ID以降に対応する前記配列変更履歴バッファおよび前記アノテーション変更履歴バッファの要素の内容を削除するステップと
    を有することを特徴とする請求項1に記載の遺伝子配列の編集方法。
  3. 前記入力装置からの入力を受け付けると、操作をやり直すステップであって、
    編集の種類を確認した結果、
    編集操作ではない場合は、前記変更中フラグの値をFALSEに変更し、前記バッファインデックスが示す要素IDに対応する前記配列変更履歴バッファおよび前記アノテーション変更履歴バッファの要素に記録してある情報を元に配列の実体データおよびアノテーションの実体データを更新し、前記バッファインデックスの値をインクリメントし、
    編集操作であった場合は、前記変更中フラグの値をTRUEに変更し、前記バッファインデックスが示す要素ID以降に対応する前記配列変更履歴バッファおよび前記アノテーション変更履歴バッファの要素の内容を削除するステップを有することを特徴とする請求項1又は2に記載の遺伝子配列の編集方法。
JP2007221637A 2007-08-28 2007-08-28 配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法 Pending JP2009054039A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007221637A JP2009054039A (ja) 2007-08-28 2007-08-28 配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007221637A JP2009054039A (ja) 2007-08-28 2007-08-28 配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法

Publications (1)

Publication Number Publication Date
JP2009054039A true JP2009054039A (ja) 2009-03-12

Family

ID=40505049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007221637A Pending JP2009054039A (ja) 2007-08-28 2007-08-28 配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法

Country Status (1)

Country Link
JP (1) JP2009054039A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014146318A (ja) * 2013-01-28 2014-08-14 Hasso Plattner Institute Fur Softwaresystemtechnik Gmbh インメモリデータベースシステム及びリアルタイム解析を用いるゲノムデータ処理のシステム及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014146318A (ja) * 2013-01-28 2014-08-14 Hasso Plattner Institute Fur Softwaresystemtechnik Gmbh インメモリデータベースシステム及びリアルタイム解析を用いるゲノムデータ処理のシステム及び方法

Similar Documents

Publication Publication Date Title
US8572475B2 (en) Display control of page data by annotation selection
JP5377481B2 (ja) テーブルの表示と操作のプログラム
JP2007034526A (ja) 進捗管理支援装置、進捗管理支援方法及び進捗管理支援プログラム
JP2007293801A (ja) 表編集装置及びプログラム
JP2009054039A (ja) 配列の編集にあわせて自動的にアノテーションを変更可能な遺伝子配列の編集方法
JP2015005228A (ja) カーソル移動制御装置、そのプログラム
JP2010061603A (ja) スケジュール表示システム
JP2008059010A (ja) 業務処理フロー図作成編集支援システムおよび支援プログラム
JP6157375B2 (ja) 操作手順フロー更新装置、方法及びプログラム
JP3658027B2 (ja) 図形編集装置および図形編集方法
JP2010061200A (ja) 文書管理システム及び操作履歴表示方法
JP6724605B2 (ja) 画像処理装置、画像処理方法、および画像処理プログラム
JP4484148B2 (ja) Si対象ファイルおよびsi関連ファイル管理システム
JP2007026389A (ja) データ入力装置
JP2006344245A (ja) プログラム記録媒体及びデータ処理装置
JP5279149B2 (ja) Cadデータ作成装置、cadデータ作成方法及びコンピュータプログラム
JP4180099B2 (ja) シーケンス解析プログラムを記録した記録媒体、シーケンス解析装置およびシーケンス解析方法
JP2009151727A (ja) 文書処理システム
JP2010072685A (ja) 作業実行システム、作業実行装置、制御装置、作業実行プログラム、および制御プログラム
JPH0954688A (ja) Gui設計支援方法
JPH0784778A (ja) ソースプログラムの試験項目編集・管理装置
JP6750375B2 (ja) 旅程編集処理プログラム
JP5838809B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP2012118812A (ja) 情報処理装置、制御方法およびプログラム。
JP2007199769A (ja) データ入力支援方法、データ入力支援装置及びプログラム