(57)【要約】【課題】  整列された多数の図形を整列した状態で移動させるための効率的な図形移動方法を提供する。【解決手段】  図形移動方法は、行列状に配置された複数の図形をグループ化して行列状に配置された複数の図形グループを生成する図形グループ生成ステップと、上記複数の図形より全体基準図形を設定する全体基準図形設定ステップと、上記全体基準図形が選択されて移動するとき全ての図形を上記全体基準図形と同様に移動させる図形全体移動ステップと、上記図形グループの各々において上記複数の図形より１つの基準図形を設定する基準図形設定ステップと、上記基準図形の１つが選択されて移動するとき上記全体基準図形が含まれる図形グループ以外の全ての図形グループを図形グループ間の行と列の相対的な関係を維持した状態にて移動させる図形グループ移動ステップと、とを有する。【選択図】  図１１
2005108045.tif 000002
【特許請求の範囲】
【請求項１】
行列状に配置された複数の図形をグループ化して行列状に配置された複数の図形グループを生成する図形グループ生成ステップと、上記複数の図形より全体基準図形を設定する全体基準図形設定ステップと、上記全体基準図形が選択されて移動するとき全ての図形を上記全体基準図形と同様に移動させる図形全体移動ステップと、上記図形グループの各々において上記複数の図形より１つの基準図形を設定する基準図形設定ステップと、上記基準図形の１つが選択されて移動するとき上記全体基準図形が含まれる図形グループ以外の全ての図形グループを図形グループ間の行と列の相対的な関係を維持した状態にて移動させる図形グループ移動ステップと、を有する図形移動方法。
【請求項２】
請求項１記載の図形移動方法において、上記全体基準図形及び上記基準図形以外の図形が選択されて移動するとき全ての図形グループにおいて上記全体基準図形及び上記基準図形以外の図形を図形間の行と列の相対的な関係を維持した状態にて移動させる図形移動ステップと、を有する図形移動方法。
【請求項３】
請求項１記載の図形移動方法において、上記図形グループ生成ステップは、隣接する図形グループ同士の水平方向及び垂直方向の間隔が等間隔となるように図形グループを生成し、上記図形グループ移動ステップは上記隣接する図形グループ同士の水平方向及び垂直方向の間隔が等間隔となるように図形グループを移動させることを特徴とする図形移動方法。
【請求項４】
請求項１記載の図形移動方法において、上記図形グループ生成ステップは、各図形グループに含まれる図形が同一数であり且つ同一配置となるようにグループ化することを特徴とする図形移動方法。
【請求項５】
請求項２記載の図形移動方法において、上記図形グループ内の図形が、隣接する図形同士の水平方向及び垂直方向の間隔が等間隔となるように配置されているとき、上記図形移動ステップは上記隣接する図形同士の水平方向及び垂直方向の間隔が等間隔となるように図形を移動させることを特徴とする図形移動方法。
【請求項６】
請求項１記載の図形移動方法において、上記全体基準図形及び上記基準図形は他の図形と異なる表示態様できるように表示する表示ステップを含むことを特徴とする図形移動方法。
【請求項７】
請求項１から６のいずれか１項記載の図形移動方法をコンピュータに実行させるためのコンピュータによって読み取り可能なプログラム。
【請求項８】
請求項１から６のいずれか１項記載の図形移動方法をコンピュータに実行させるためのプログラムを格納したコンピュータによって読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータの表示装置の画面に表示された図形を移動させるための図形移動方法に関し、特に、ＤＮＡマイクロアレイ画像解析に使用して好適な図形移動方法に関する。
【背景技術】
【０００２】
組織または細胞における遺伝子発現を解析するためにＤＮＡマイクロアレイ（以下、単に「マイクロアレイ」と称する。）が使用される。マイクロアレイでは、ガラスやシリコン等の基板上に高密度にＤＮＡ（プローブ）を結合させ、これらのプローブと組織または細胞から抽出したＲＮＡから作成した標識サンプル（試料）とをハイブリダイズさせる。このハイブリダイゼーションからのシグナルの強度を測定することによって各遺伝子の発現データを得る。
【０００３】
マイクロアレイの開発により、数千から数万個の遺伝子の発現情報を一度に網羅的に解析することが可能になり、ゲノムの全領域における遺伝子発現情報の同時測定が可能になった。
【０００４】
マイクロアレイ解析では、縦横に整列された多数の円形のスポットと称される画像が得られる。スポットは数万個に及ぶ場合がある。マイクロアレイによる遺伝子発現解析において最も手数がかかる作業がマイクロアレイ画像からスポットの位置を特定する位置検出作業であり、そのための様々な方法が考案されている。
【０００５】
スポットの位置検出作業では、縦横に整列された多数の円形窓からなるテンプレートを使用する。テンプレートの円形窓をマイクロアレイ画像の円形スポットに整合させる。こうして、マイクロアレイ画像の全てのスポット上にテンプレートの窓を整合させたら、各窓におけるスポット画像の解析を行なう。例えば、各スポット画像のピクセル群の輝度値の総和値、平均値、中央値等を発現値として算出する。
【０００６】
一般に、テンプレートの円形窓は複数のブロックにブロック化されている。テンプレートの円形窓をスポットに整合させる整合作業では、手動または自動により、テンプレートの全体位置の調整、及び、ブロックの位置の調整を行う。
【０００７】
従来、ブロックの位置調整を行なう手段として、画面上に設けられたブロック間隔入力用の数値入力領域にキーボードからの数値入力を行う方法が知られている。
【０００８】
更に、特開平８−２１２３６９号公報に記載されているように、マウス等の指示装置を使って画面上の任意のブロックを移動させた後に、他のブロックを画面内の全てのブロック同士の間隔が等間隔となるように移動させる方法も考案されている。
【特許文献１】特開平８−２１２３６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来のマウス等の指示装置を使った方法では、画面上の全てのブロック図形の間隔が等間隔となるように調整することは可能であるが、結局はキーボードによる数値入力が必要であり、効率的な調整ができないという課題があった。
【００１０】
本発明の目的は、整列された多数の図形を整列した状態で移動させるための効率的な図形移動方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明によると、図形移動方法は、行列状に配置された複数の図形をグループ化して行列状に配置された複数の図形グループを生成する図形グループ生成ステップと、上記複数の図形より全体基準図形を設定する全体基準図形設定ステップと、上記全体基準図形が選択されて移動するとき全ての図形を上記全体基準図形と同様に移動させる図形全体移動ステップと、上記図形グループの各々において上記複数の図形より１つの基準図形を設定する基準図形設定ステップと、上記基準図形の１つが選択されて移動するとき上記全体基準図形が含まれる図形グループ以外の全ての図形グループを図形グループ間の行と列の相対的な関係を維持した状態にて移動させる図形グループ移動ステップと、とを有する。
【００１２】
更に、本発明によると、図形移動方法において、上記全体基準図形及び上記基準図形以外の図形が選択されて移動するとき全ての図形グループにおいて上記全体基準図形及び上記基準図形以外の図形を図形間の行と列の相対的な関係を維持した状態にて移動させる図形移動ステップと、を有する。
【００１３】
更に、本発明によると、図形移動方法において、上記図形グループ生成ステップは、隣接する図形グループ同士の水平方向及び垂直方向の間隔が等間隔となるように図形グループを生成し、上記図形グループ移動ステップは上記隣接する図形グループ同士の水平方向及び垂直方向の間隔が等間隔となるように図形グループを移動させる。
【００１４】
本発明によると、図形移動方法において、上記図形グループ生成ステップは、各図形グループに含まれる図形が同一数であり且つ同一配置となるようにグループ化する。
【００１５】
本発明によると、図形移動方法において、上記図形グループ内の図形が、隣接する図形同士の水平方向及び垂直方向の間隔が等間隔となるように配置されているとき、上記図形移動ステップは上記隣接する図形同士の水平方向及び垂直方向の間隔が等間隔となるように図形を移動させる。
【００１６】
本発明によると、図形移動方法において、上記全体基準図形及び上記基準図形は他の図形と視覚的に区別することができるように異なる表示態様で表示する表示ステップを含む。
【発明の効果】
【００１７】
本発明によれば、行列状に配置された複数の図形を効率的に移動させることができるから、例えば、マイクロアレイ画像のスポットにテンプレートの窓を整合させる作業を効率化することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態を説明する。図１は、本発明による図形移動方法を実行するための装置の構成を示すブロック図である。本例の装置は、画面上に図形を表示する表示装置１０１と、表示装置１０１の画面上の任意の領域を指示するマウス装置１０２と、テンプレートの作成、ブロックの移動処理等を行う中央処理装置１０３と、中央処理装置１０３に処理を実行させるためのプログラムを記憶したプログラムメモリ１０４と、データを一時的に記憶するデータメモリ１０９と、ハードディスク等の外部記憶装置１１２とを有する。
【００１９】
プログラムメモリ１０４には、テンプレートのブロックデータを作成するためのブロックデータ作成プログラム１０５、テンプレート内のブロック同士を関連付けてブロックグループを構築し、基準ブロックを設定するためのブロックグループ構築及び基準ブロック設定プログラム１０６、選択されたブロックの移動に伴って、ブロックグループ同士またはグループ内のブロック同士の間隔が等間隔となるよう、他のブロックを一括して移動させるためのブロック及びブロックグループ移動プログラム１０７、テンプレートを表示するためのテンプレート表示プログラム１０８等が格納されている。
【００２０】
ブロックデータ作成プログラム１０５、ブロックグループ構築及び基準ブロック設定プログラム１０６、及び、ブロック及びブロックグループ移動プログラム１０７によってテンプレートが作成される。
データメモリ１０９には、個々のブロックに関するブロックデータ１１０、個々のブロックグループに関するブロックグループデータ１１１等が記憶されている。
外部記憶装置１１２には、マイクロアレイ画像データ１１３、テンプレート情報１１４等が格納されている。
【００２１】
図２〜図１６は、本発明の実施形態の一例を示している。以下、図に従い説明する。図２は、本実施例における処理の概要を示したフローチャートである。まず、ステップ２０１にて、実行する処理を選択するためのメニュー画面を表示装置１０１の画面上に表示する。図３に、メニュー画面の例を示す。本例のメニュー画面は、マイクロアレイ画像の読み込みと表示処理の実行を指示するボタン３０１、テンプレートの作成と表示処理の実行を指示するボタン３０２、テンプレートのブロック及びブロックグループの移動処理の実行を指示するボタン３０３、及び終了を指示するボタン３０４を有する。
【００２２】
次に、ステップ２０２にて、ユーザは、図３のメニュー画面上から実行する処理を選択する。ステップ２０３にて、選択された処理に応じたプログラムへ分岐する。
ステップ２０２にて、図３のボタン３０１が押下され、マイクロアレイ画像の読み込みと表示が指示された場合、ステップ２０４に進む。ステップ２０４にて、外部記憶装置１１２上に格納されているマイクロアレイ画像データ１１３を読み込み、ステップ２０５にて、読み込んだ画像データを表示装置１０１上に表示する。
【００２３】
図４は、表示装置１０１の画面４０１に表示されたマイクロアレイ画像の例を示す。マイクロアレイ画像は、規則的に配列されたスポット４０２からなる。
また、ステップ２０２にて、図３のボタン３０２が押下され、テンプレートの作成と表示が指示された場合、ステップ２０６に進む。ステップ２０６にて、ブロックデータ作成プログラム１０５が実行され、ステップ２０７にて、ブロックグループ構築及び基準ブロック設定プログラム１０６が実行され、ステップ２０８にて、テンプレート表示プログラム１０８が実行される。
【００２４】
さらに、ステップ２０２にて、図３のボタン３０３が押下され、ブロック及びブロックグループの移動が指示された場合、ステップ２０９に進む。ステップ２０９にて、ブロック及びブロックグループ移動プログラム１０７が実行される。
【００２５】
画像の読込みと表示、テンプレートの作成と表示、テンプレートの移動のいずれかが実行された後、ステップ２１０にて図３のボタン３０４が押下されたかどうかを判定し、押下された場合は終了する。押下されていない場合は、ステップ２０１のメニュー画面の表示に戻る。
【００２６】
以下、ステップ２０６〜２０８にて実行されるテンプレートの作成処理について説明する。ステップ２０６にて実行されるブロックデータ作成プログラムでは、外部記憶装置１１２に格納されているテンプレート情報１１４を読込み、ブロックデータ格納領域１１０にテンプレートを構成するブロックデータを作成する。尚、テンプレートは図１１に示すように、規則正しく配置された複数のブロック１１０２からなり、各ブロック１１０２は規則正しく配置された複数の窓１１０１からなる。
【００２７】
図５は、テンプレート情報１１４のデータ構造の例を示す。本例のテンプレート情報１１４は、テンプレートの開始位置のＸ座標５０１、テンプレートの開始位置のＹ座標５０２、Ｘ方向のブロックグループ数５０３、Ｙ方向のブロックグループ数５０４、Ｘ方向のブロックグループ間隔５０５、Ｙ方向のブロックグループ間隔５０６、グループ内のＸ方向のブロック数５０７、グループ内のＹ方向のブロック数５０８、グループ内のＸ方向のブロック間隔５０９、グループ内のＹ方向のブロック間隔５１０、ブロック内のＸ方向のスポット数５１１、ブロック内のＹ方向のスポット数５１２、ブロック内のＸ方向のスポット間隔５１３、及び、ブロック内のＹ方向のスポット間隔５１４を含む。
【００２８】
図６は、ブロックデータ１１０のデータ構造の例を示す。ブロックデータ１１０は、テンプレート内のブロック個数分作成される。各ブロックデータは、テンプレート内で一意なブロックID６０１、Ｘ方向のブロック番号６０２、Ｙ方向のブロック番号６０３、ブロックの左上の頂点のＸ座標６０４、ブロックの左上の頂点のＹ座標６０５、ブロックのＸ方向の辺の長さ６０６、ブロックのＹ方向の辺の長さ６０７、及び、ブロックが所属しているブロックグループのグループID６０８を含む。
【００２９】
図７は、ブロックデータ作成プログラム１０５のフローチャートである。まず、ステップ７０１にて、テンプレート情報１１４の各データ５０１〜５１４を取得する。ステップ７０２にて、ブロックIDを表す変数BlockIDの値を1に初期化する。
【００３０】
ステップ７０３にて、変数Ｙの初期値を１にする。変数Ｙが（Ｙ方向のブロックグループ数×グループ内のＹブロック数）以下であるか否かを判定する。変数Ｙが（Ｙ方向のブロックグループ数×グループ内のＹブロック数）以下である場合には、変数Ｙを１増加し、以下のステップ７０４〜７１１の処理を繰り返す。
【００３１】
ステップ７０４にて、変数Ｘの初期値を１にする。変数Ｘが（Ｘ方向のブロックグループ数×グループ内のＸブロック数）以下であるか否かを判定する。変数Ｘが（Ｘ方向のブロックグループ数×グループ内のＸブロック数）以下である場合には、変数Ｘを１増加し、以下のステップ７０５〜７１０の処理を繰り返す。
【００３２】
ステップ７０５にて、ブロック１個分のブロックデータ格納領域をデータメモリ１０９上に作成する。ステップ７０６では、作成したブロックデータ格納領域のブロックID６０１に変数BlockIDの値をセットする。ステップ７０７では、ブロックデータ格納領域のＸ方向のブロック番号６０２に変数Ｘの値をセットし、ブロックデータ格納領域のＹ方向のブロック番号６０３に変数Ｙの値をセットする。
【００３３】
ステップ７０８では、ブロックデータ格納領域の左上の頂点のＸ座標に、次の式１より算出された値をセットする。ブロックデータ格納領域の左上の頂点のＹ座標に、次の式２より算出された値をセットする。
【００３４】
テンプレートの開始位置のX座標 ＋X方向のブロックグループ間隔×(X÷グループ内X方向ブロック数) ＋グループ内X方向ブロック間隔×(Xをグループ内X方向ブロック数で割った余り)                                                                （式１）
テンプレートの開始位置のY座標 ＋Y方向のブロックグループ間隔×(Y÷グループ内Y方向ブロック数) ＋グループ内Y方向ブロック間隔×(Yをグループ内Y方向ブロック数で割った余り)                                                                （式２）
【００３５】
ステップ７０９では、ブロックデータ格納領域のＸ、Ｙ各方向の辺の長さに、各々次の式より算出された値をセットする。
【００３６】
ブロック内X方向スポット間隔×(ブロック内X方向スポット数 - 1)
（式３）
【００３７】
ブロック内Y方向スポット間隔×(ブロック内Y方向スポット数 - 1)
（式４）
【００３８】
ステップ７１０では、変数BlockIDを１だけカウントアップする。テンプレートを構成するブロックの個数分だけのブロックデータ作成処理が行なわれると終了する。
次に、図２のステップ２０７にてブロックグループ構築及び基準ブロック設定プログラムを実行する。ブロックグループ構築および基準ブロック設定プログラムは、ブロックデータ作成プログラムにて読み込まれたテンプレート情報と作成されたブロックデータから、ブロックグループデータを作成し、ブロックグループデータ格納領域１１２に格納する。
【００３９】
図８は、ブロックグループデータ１１１のデータ構造の例を示す。ブロックグループデータは、テンプレート全体の基準ブロックのブロックID８０１、ブロックグループを一意に識別するブロックグループID８０２、Ｘ方向のブロックグループ番号８０３、Ｙ方向のブロックグループ番号８０４、及び、ブロックグループ内の基準ブロックのブロックID８０５を含む。ブロックグループデータのデータ８０２〜８０５は、テンプレート内のブロックグループデータ個数分作成される。
【００４０】
図９は、ブロックグループ構築及び基準ブロック設定プログラムのフローチャートである。以下、図９に従って、ブロックグループ構築及び基準ブロック設定プログラム１０６について説明する。
【００４１】
まず、ステップ９０１にて、テンプレート全体の基準ブロックID８０１にテンプレート内にて最も左上に位置するブロックのブロックIDである1をセットする。なお、本実施例では、最も左上に位置するブロックをテンプレート全体の基準ブロックとしているが、テンプレート内のブロックならば、どのブロックでもテンプレート全体の基準ブロックとすることが可能である。
【００４２】
次に、ステップ９０２にて、グループIDを表す変数GroupIDの値を１に初期化する。テンプレートを構成する全てのブロックについて（ステップ９０３）、ステップ９０４〜９０７の処理を行なう。
まず、ステップ９０４にて、変数xに処理対象ブロックのx方向ブロック番号をグループ内x方向ブロック数で割った余りを代入し、変数yに処理対象ブロックのy方向ブロック番号をグループ内y方向ブロック数で割った余りを代入する。
【００４３】
ステップ９０５にて、ステップ９０４にて求めた変数ｘの値と変数ｙの値がともに０であるか、つまり、処理対象ブロックがブロックグループ内で左上に位置するブロックか否かを判定する。変数ｘ、ｙの値の少なくとも１つが０でない場合は、このブロックの処理は終了し、次のブロックの処理を行う。変数ｘ、ｙの値がともに０である場合は、ステップ９０６に進む。
【００４４】
ステップ９０６にて、ブロックグループ１個分のデータを作成する。具体的には、ブロックグループ１個分のデータ格納領域をデータメモリ１０９上に作成し、作成したブロックグループデータ領域のブロックグループID８０２にGroupID変数をセットし、Ｘ方向のグループ番号８０３に変数xをグループ内Ｘ方向ブロック数で割った商をセットし、Ｙ方向のグループ番号８０４に変数ｙをグループ内Ｙ方向ブロック数で割った商をセットし、基準ブロックID805に処理対象ブロックのブロックIDをセットする。ステップ９０７では、変数GroupIDを１だけカウントアップする。
【００４５】
以上で、ブロックグループデータの作成と、基準ブロックの設定が行われた。次に、ブロックグループとブロックの関連付けを行う。テンプレートを構成する全てのブロックについて（ステップ９０９）、ステップ９１０〜９１１の処理を行う。
【００４６】
まず、ステップ９１０にて、変数GXに処理対象ブロックのX方向のブロック番号をグループ内Ｘ方向ブロック数で割った商をセットし、変数GYに処理対象ブロックのＹ方向のブロック番号をグループ内Ｙ方向ブロック数で割った商をセットする。ここで、セットされた変数ＧＸ、ＧＹの値は処理対象ブロックが属するブロックグループのＸ、Ｙ各方向のグループ番号に他ならない。
【００４７】
ステップ９１１では、ブロックグループデータの中から、ブロックグループのＸ方向の番号が変数GXと等しく、さらに、ブロックグループのＹ方向の番号が変数GYと等しいブロックグループデータを探し、該当するブロックグループデータのブロックグループIDを処理対象ブロックデータ格納領域の所属ブロックグループのグループID６０８にセットする。
以上で、テンプレート作成・表示処理のうち、ブロックグループデータの作成、ブロックグループ・ブロックの関連付け、基準ブロックの設定が行われた。
【００４８】
次に、図２のステップ２０８の処理、即ち、作成したテンプレートを表示装置１０１上に表示するテンプレート表示プログラムを実行する。
図１０は、テンプレート表示プログラム１０８のフローチャートである。以下、図１０に従って、テンプレート表示プログラム１０８について説明する。テンプレートを構成する全てのブロックについて、以下の処理を行なう。
テンプレートを構成する全てのブロックについて（ステップ１００１）、ステップ１００２〜１０１１を行う。以下、ステップ１００２〜１０１１について説明する。
【００４９】
まず、ステップ１００２にて、変数BlockIDに処理対象ブロックのブロックIDを代入し、変数BaseBlockIDInTemplateにテンプレート全体の基準ブロックIDを代入し、変数BaseBlockIDInGroupに処理対象ブロックが属するブロックグループ内の基準ブロックのIDを代入する。
【００５０】
次に、ステップ１００３にて、変数BlockIDが、変数BaseBlockIDInTemplateに等しいか、変数BaseBlockIDInGroupに等しいか、又は、どちらとも異なるかを判定する。
【００５１】
変数BlockIDが変数BaseBlockIDInTemplateに等しいと判定された場合は、ステップ１００４に進み、変数BaseBlockIDInGroupに等しいと判定された場合は、ステップ１００５に進み、どちらとも異なると判定された場合は、ステップ１００６に進む。
【００５２】
ステップ１００４では、処理対象ブロックを描画する線分の幅を表す変数LineWidthに太線であることを示す何らかの識別子を代入し、描画する線分の種類を表す変数LineTypeに破線であることを識別する何らかの識別子を代入する。
【００５３】
ステップ１００５では、処理対象ブロックを描画する線分の幅を表す変数LineWidthに太線であることを示す何らかの識別子を代入し、描画する線分の種類を表す変数LineTypeに実線であることを識別する何らかの識別子を代入する。
【００５４】
ステップ１００６では、処理対象ブロックを描画する線分の幅を表す変数LineWidthに細線であることを示す何らかの識別子を代入し、描画する線分の種類を表す変数LineTypeに実線であることを識別する何らかの識別子を代入する。
【００５５】
ステップ１００７では、変数StartPtXに処理対象ブロックの左上の頂点のＸ座標を代入し、変数StartPtYに処理対象ブロックの左上の頂点のＹ座標を代入し、変数Widthに処理対象ブロックのＸ方向の辺の長さを代入し、変数Heightに処理対象ブロックのＹ方向の辺の長さを代入する。
【００５６】
ステップ１００８では、座標(StartPtX, StartPtY)と座標(StartPtX+Width, StartPtY)を結ぶ線分をLineWidthで指定された線幅と、LineTypeで指定された線種で描画する。
【００５７】
ステップ１００９では、座標(StartPtX+Width, StartPtY)と座標(StartPtX+Width, StartPtY+Height)を結ぶ線分をLineWidthで指定された線幅と、LineTypeで指定された線種で描画する。
【００５８】
ステップ１０１０では、座標(StartPtX+Width, StartPtY+Height)と座標(StartPtX, StartPtY+Width)を結ぶ線分をLineWidthで指定された線幅と、LineTypeで指定された線種で描画する。
【００５９】
ステップ１０１１では、座標(StartPtX, StartPtY+Width)と座標(StartPtX, StartPtY)を結ぶ線分をLineWidthで指定された線幅と、LineTypeで指定された線種で描画する。以上で、テンプレートの作成と表示処理が行われた。
【００６０】
図１１は、図５のテンプレート情報１１４に従って、ブロックデータの作成、ブロックグループデータの作成、ブロック・ブロックグループの関連付け、基準ブロックの設定を行い、テンプレートを表示装置１０１に表示した結果の例である。図示のように、テンプレートは、規則正しく配置された複数のブロック１１０２からなり、各ブロック１１０２は規則正しく配置された複数の窓１１０１からなる。図示の例では、各ブロックは４つの窓を含むが、４つ以上の窓を含んでもよい。
【００６１】
本例によると、４つのブロック１１０２ａ、１１０２、１１０２、１１０２によって１つのブロックグループ１１０３が形成される。
これらのブロックより、テンプレート全体の基準ブロック１１０２Ａが選定され、各ブロックグループには、１つの基準ブロック１１０２ａが選定される。
図１１にて、ブロックグループ１１０３を示す実線の角丸の四角形は、便宜的に描いたものであり、実際には描画されない。
【００６２】
図１２は、表示装置１０１の画面に、図４に示したマイクロアレイ画像と図１１に示したテンプレートを暫定的に重ね合わせて表示した状態を示す。テンプレートの各窓は、マイクロアレイ画像の各スポットに一致していない。画面にはマウスカーソル１２０１が表示されている。マウスカーソル１２０１は、テンプレートを構成するブロックを指示する。
【００６３】
ユーザは、以下に説明するように、ブロック移動処理を選択し、ブロック及びブロックグループ移動プログラム１０７を実行することによって、テンプレートの各窓をマイクロアレイ画像の各スポットに整合させる。こうして、テンプレートの各窓がマイクロアレイ画像の各スポット４０２に整合したら、各窓の領域に配置された画像のピクセル群の輝度値の総和値、平均値、中央値等を発現値として算出する。
【００６４】
図１３を参照して図２のステップ２０９の処理、即ち、ブロック及びブロックグループ移動プログラム１０７について説明する。まず、ステップ１３０１にて、ユーザはマウスボタンを押し、移動するブロックを選択する。ステップ１３０２にて、ユーザは、選択したブロックを目的の位置までドラッグすることにより移動させる。
【００６５】
ステップ１３０３では、選択されたブロックのX方向の移動量とＹ方向の移動量が算出され、それぞれ、変数SelDx，SelDyに代入される。
次に、テンプレートを構成する全てのブロックについて（ステップ１３０４）、ステップ１３０５〜１３１２の処理を行なう。
【００６６】
まず、ステップ１３０５では、変数BlockIDに処理対象ブロックのブロックIDを代入し、変数BaseBlockIDInTemplateにテンプレート全体の基準ブロックIDを代入し、変数BaseBlockIDInGroupに処理対象ブロックが属するブロックグループ内の基準ブロックのIDを代入する。
【００６７】
ステップ１３０６では、変数SelGXに選択ブロックが属するグループのＸ方向のグループ番号を代入し、変数SelGYに選択ブロックが属するグループのＹ方向のグループ番号を代入し、変数TargGXに処理対象ブロックが属するグループのＸ方向のグループ番号を、変数TargGYに処理対象ブロックが属するグループのＹ方向のグループ番号を代入する。
【００６８】
ステップ１３０７では、選択ブロックの選択ブロックが属するグループ内でのX,Y方向のブロック番号SelBXInGrp, SelBYInGrpおよび対象ブロックの対象ブロックが属するグループ内でのX,Y方向のブロック番号TargBXInGrp, TargBYInGrpを以下の式によって求める。
SelBXInGrp =選択ブロックのX方向のブロック番号をグループ内X方向ブロック数で割った余り
SelBYInGrp =選択ブロックのY方向のブロック番号をグループ内Y方向ブロック数で割った余り
TargBXInGrp =対象ブロックのX方向のブロック番号をグループ内X方向ブロック数で割った余り
TargBYInGrp =対象ブロックのY方向のブロック番号をグループ内Y方向ブロック数で割った余り
【００６９】
ステップ１３０８にて、変数BlockIDが、変数BaseBlockIDInTemplateに等しいか、変数BaseBlockIDInGroupに等しいか、又は、どちらとも異なるかを判定する。変数BlockIDが変数BaseBlockIDInTemplateと等しいと判定された場合は、ステップ１３０９に進み、変数BaseBlockIDInGroupと等しいと判定された場合は、ステップ１３１０に進み、どちらとも異なると判定された場合は、ステップ１３１１に進む。ステップ１３０９〜１３１１では、選択ブロックの移動量をもとに、処理対象ブロックの移動量を求める。
【００７０】
ステップ１３０９では、処理対象ブロックのＸ方向の移動量を表す変数TargDxに選択ブロックのＸ方向の移動量SelDxを代入し、処理対象ブロックのＹ方向の移動量を表す変数TargDyに選択ブロックのＹ方向の移動量SelDyを代入する。ステップ１３１０では、変数TargDxに、SelGXをTargGXで割った商と変数SelDxとの積を代入し、変数TargDyに、SelGYをTargGYで割った商と変数SelDyとの積を代入する。
【００７１】
ステップ１３１１では、変数TargDxに、SelBXInGrpをTargBXInGrpで割った商と変数SelDxとの積を代入し、変数TargDyに、SelBYInGrpをTargBYInGrpで割った商と変数SelDyとの積を代入する。最後に、ステップ１３１２にて、処理対象ブロックを移動量TargDx、TargDyだけ移動させる。こうして、本例では、選択ブロックの移動と共に、他の全てのブロックもブロックグループの間隔または、ブロックグループ内のブロックの間隔の等間隔を保持しながら、一括移動する。
【００７２】
図１４〜図１６を参照してブロック及びブロックグループ移動プログラムを使って、テンプレートをマイクロアレイ上のスポット領域に適切に重ね合わせる例を説明する。先ず図１４を参照する。図１４Ａは、図１２と同様であり、マイクロアレイ画像上に暫定的にテンプレートを重ね合わせた状態の画面を示す。図１４Ｂに示すように、図１４Ａの状態から、テンプレート全体の基準ブロック１１０２Ａを右下にドラッグして、テンプレート全体を移動させる。即ち、基準ブロック１１０２Ａの４つの窓がマイクロアレイ画像の左上の４つのスポットに適切に重なり合うようにテンプレート全体を移動させる。
【００７３】
しかし、この状態では、基準ブロック１１０２の窓は、マイクロアレイ画像のスポットに重なり合っているが、ブロックグループ同士の間隔、ブロックグループ内のブロック同士の間隔が未調整である為、テンプレート内の他のブロックでは窓がスポットに適切に重なり合っていない。
【００７４】
次に、図１５を参照する。図１５Ａは図１４Ｂと同様である。図１５Ｂに示すように、図１５Ａの状態から、右下のブロックグループ１１０３内の基準ブロック１１０２ａを右下にドラッグし、基準ブロック１１０２ａの窓がマイクロアレイ画像の対応するスポットに適切に重なり合うように移動させる。それによって、各ブロックグループ内の基準ブロックは、基準ブロック１１０２ａと同様な移動を行う。即ち、全ての基準ブロックは行と列の相対的な関係を維持した状態にて移動する。それによって、基準ブロック１１０２ａの窓はマイクロアレイ画像上の対応するスポットに適切に重なり合う。しかし、この状態では、各ブロックグループ内の基準ブロックの窓はマイクロアレイ画像のスポットに適切に重なり合っているが、ブロックグループ内のブロック同士の間隔が未調整である為、テンプレート内の他のブロックでは窓がスポットに適切に重なり合っていない。
【００７５】
図１６を参照して説明する。図１６Ａは図１５Ｂと同様である。図１６Ｂに示すように、図１６Ａの状態から、任意のブロックグループより任意の非基準ブロック１１０２を選択し、それを右下にドラッグし、この非基準ブロック１１０２の窓をマイクロアレイ画像の対応するスポットに適切に重なり合うように移動させる。それによって、各ブロックグループ内の非基準ブロックは、選択された非基準ブロック１１０２と同様な移動を行う。即ち、全てのブロックは行と列の相対的な関係を維持した状態にて移動する。それによって、非基準ブロックの窓はマイクロアレイ画像のスポットに適切に重なり合う。
【００７６】
この結果、テンプレート内の全てのブロックが画像上のスポット領域と適切に重なり合う。即ち、テンプレート内の全ての窓がマイクロアレイ画像のスポットと適切に重なり合う。
【００７７】
以上本発明の例を説明したが本発明は上述の例に限定されるものではなく特許請求の範囲に記載された発明の範囲にて様々な変更が可能であることは当業者に理解されよう。
【図面の簡単な説明】
【００７８】
【図１】本発明による図形移動方法を実行するための装置の構成例を示すブロック図である。
【図２】本発明による図形移動方法の処理の概要を示す流れ図である。
【図３】本発明による表示装置の画面に表示されたメニュー画面の例を示す図である。
【図４】マイクロアレイ画像を表示した画面の例を示す図である。
【図５】本発明によるテンプレート情報のデータ構造の例を示す図である。
【図６】本発明によるブロックデータのデータ構造の例を示す図である。
【図７】本発明によるブロックデータ作成プログラムの処理を示す流れ図である。
【図８】本発明によるブロックグループデータのデータ構造の例を示す図である。
【図９】本発明によるブロックグループ構築及び基準ブロック設定プログラムの処理を示す流れ図である。
【図１０】本発明によるテンプレート表示プログラムの処理を示す流れ図である。
【図１１】本発明によるテンプレートを表示した画面の例を示す図である。
【図１２】本発明によるテンプレートをマイクロアレイ画像上に暫定的に重ね合わせた状態を示す図である。
【図１３】本発明によるブロック及びブロックグループ移動プログラムの実行例を説明するため説明図である。
【図１４】本発明によるブロック及びブロックグループ移動プログラムの実行例を説明するため説明図である。
【図１５】本発明によるブロック及びブロックグループ移動プログラムの実行例を説明するため説明図である。
【図１６】本発明によるブロック及びブロックグループ移動プログラムの実行例を説明するため説明図である。
【符号の説明】
【００７９】
１０１…表示装置、１０２…マウス装置、１０３…中央処理装置、１０４…プログラムメモリ、１０５…ブロックデータ作成プログラム、１０６…ブロックグループ構築及び基準ブロック設定プログラム、１０７…ブロック及びブロックグループ移動プログラム、１０８…テンプレート表示プログラム、１０９…データメモリ、１１０…ブロックデータ、１１１…ブロックグループデータ、１１２…外部記憶装置、１１３…マイクロアレイ画像データ、１１４…テンプレート情報、３０１…画像の読込みと表示を指示するボタン、３０２…テンプレートの作成と表示を指示するボタン、３０３…テンプレートの移動を指示するボタン、３０４…終了ボタン、４０１…画面の枠、４０２…マイクロアレイ画像のスポット、１１０１…スポット、１１０２…非基準ブロック、１１０２Ａ…全体基準ブロック、１１０２ａ…基準ブロック、１１０３…ブロックグループ、１２０１…マウスカーソル
【図１】
2005108045.tif 000003
【図２】
2005108045.tif 000004
【図３】
2005108045.tif 000005
【図４】
2005108045.tif 000006
【図５】
2005108045.tif 000007
【図６】
2005108045.tif 000008
【図７】
2005108045.tif 000009
【図８】
2005108045.tif 000010
【図９】
2005108045.tif 000011
【図１０】
2005108045.tif 000012
【図１１】
2005108045.tif 000013
【図１２】
2005108045.tif 000014
【図１３】
2005108045.tif 000015
【図１４】
2005108045.tif 000016
【図１５】
2005108045.tif 000017
【図１６】
2005108045.tif 000018