AccessOpenOfficeBaseによる

データベース入門

 (ゲノムデータベースの取り扱い)

 

大阪府立大学・大学院生命環境科学専攻

和田野


 

はじめに

 

  本書はAccess2003OpenOfficeBaseの応用として、バイオデータベースの扱いを解説した本です。大阪府立大学の「データベースと情報検索」の授業をするに際して、あれこれと教科書になる本を検討し、2年間にわたり牧村あきこ氏の「Access--はじめてのデータベース」を使用させていただきましたが、内容が住所録を主眼にしており、生物系の授業にはあまり適しているとは思っていませんでした。そこで「かずさDNA研究所」のシアノバクテリア遺伝子データベースを教材にすることを試みました。住所録を教材にするよりも学生の意欲を高めることができそうなので、覚え書きとして教科書にすることにしました。かずさDNA研究所にはその旨お伝えし、了解を得ました。それだけでは、前期15回の授業内容に不十分なので、授業で情報センターの使用に際して必要なメイリングリストのようなものの作成、系統樹の作成、などを加えました。ただ著者はデータベースの専門家ではありませんから、その観点からみるとずいぶんいい加減なところがあるかもしれません。一方、インフォマティクスの観点からみると、これも専門ではないのでやはり十分にデータベースをAccessBaseで論じることも出来てないかもしれません。次の世代の先生に引き継いで頂いて、よりわかりやすいインフォマティクスのデータベースを扱う教科書ができることを願っています。

                           


第1章       メイリングリスト

 

1−1Active Mailでのメイリングリスト(グループの作り方)

  Active Mailを実行すると図1Aのような画面が表示される。そこで、オプションを選択し、住所録をダブルクリックすると1Bとなる。そこで青字のオプションに戻るの右隣にあるHをクリックすると住所録のヘルプが表示される(1C)。ヘルプを詳細に読んでみると、1Dのように書いてある。WAVCSVはそれぞれOutlookの住所録形式、コンマセパレートバリュー形式の意味で、CSV形式のファイルを取り込みグループを作成します。

 

図1 Active Mailの住所録でグループを作成する

A

 

 

B

 

C

D

他のアプリケーションで作成した住所録ファイルを Active! mail に取り込むことができます。取り込むことができるファイルは WAB形式と、CSV形式です。

 

まず、住所録作成で自分のデータを公開できる部分のみ入力し、ファイルの項からエキスポート(「別名で保存」するとき、他のソフトで読める形式にする)してみてください。エキスポートし、保存したファイルをエクセルとテキストエディタで読んでみてください。図2のような表示が出ると思います。

図2 エキスポートしてファイルをエクセルとテキストエディタで表示

コンマで区切られた文の数を調べると、一行目と二行目が同じになっているはずです。文もしくは単語が入ってない部分はコンマが続けて表示されています。さらにコンマは全角ではなく半角になっていることに注意します。コンマとコンマの間は、フィールドと呼び、一行をレコードといいます。出来たCSVファイルをTAにメイルで送っておきます。次週までにTAは諸君に全員のレコードが入ったCSVファイルを圧縮ファイルであるZIPフィルで送ってくれますから、解凍してActive Mailのグループに取り込みます。

 

 

Box 1

 “圧縮とはファイルの形式を変換(たとえばスペースが10個ある場合は、10SP> SPspaceの意味)と書くと半角4文字に圧縮できる)してデータ量を小さくすることをいう。種々の圧縮方法があり、また圧縮されたファイルはそのままでは利用できないので、圧縮されたファイルをもとに戻す(解凍する)には、それぞれの圧縮形式に対応した解凍ソフトが必要となる。フォルダーを圧縮することも可能で、たとえば複数枚の写真をフォルダーに保存し、ZIP形式の圧縮フィルとして添付ファイルにすることも可能である。

 

2.   住所録をACCESSに読み込んでみる

TAより送られてきたファイルをExcelで読み込むと、右図のように表示される。セルの幅を変更して、表示し複数の項目が一つのセルにひょじされる場合はコンマが全角だったり、抜けている可能性があるので確認してみる。このファイルをAccessに読み込んでみると、右図のような表示になる。この表には新たにIDが付け加えられています。さらにこの表の後ろに示されるメニューにはオブジェクトとグループの項がある。テーブルは今作成した表である。クエリは検索をするという意味で、2つの表から「共通部分を検索」するなど、かなり複雑な検索が可能である。フォームはテーブルの表示を見やすくしたり、体裁を整えたりするのに用いる。

 

図5 Accessのメニューとフォームの例

 

 

 

BOX 2 データベースとはなにか? 何を学べば「データベースと情報検索」を知ったことになるのか?

 

データベースの定義

1)様々な事柄を分類・整理したデータの集まり

2)大量のデータを集めそれらを整理しコンピュータが処理しやすい形にしたファイル

つまり住所録もメイリングリストもデータベースである。データベースに納められているデータはフィルドとその集まりであるレコードで構成されている。


表1 Accessのデータ形式

データ型

内容

サイズ

テキスト型

文字列を格納

最大255バイト

メモ型

テキスト型よりも大量の文字列を格納

 

最大64,000バイト

数値型

バイト型

0〜255の数値(1バイト)

整数型

-32,768〜32、767の数値(2バイト)

長整数型

-2,147,483,648〜 2,147,483,647の数値(4バイト)

単精度浮動小数点型

-3.40E383.40E38の数値(4バイト)

倍精度浮動小数点型

-1.79E3081.79E308の数値(8バイト)

日付・時刻型

日付や時刻を格納するためのデータ型

値(8バイト)

オートナンバー型

 

数値を自動的に連番で設定するため

4バイト

YES/NO

二者択一用のデータ型

1ビット

 

OLEオブジェクト型

 

OLEオブジェクトのためのデータ型

最大1ギガバイト

ハイパーリンク型

格納するためのデータ型

最大2048バイト

 

表2 Access数値形式

 

設定値

内容

小数の精度

記憶領域サイズ

Byte

バイト型

0 〜 255 の範囲の数値が設定できます。ただし、小数は設定できません。

なし

 

1 バイト

Decimal

十進型

-10^38 -1 〜 10^38 -1 の範囲の数値が設定できます。(.adp)

-10^28 -1 〜 10^28 -1 の範囲の数値が設定できます。(.mdb)

28

12 バイト

Integer

整数型

-32,768 〜 32,767 の範囲の数値が設定できます。ただし、小数は設定できません

なし

2 バイト

Long

長整数型

 

-2,147,483,648 〜 2,147,483,647 の範囲の数値が設定できます。ただし、小数は設定できません。(既定値)

なし

4 バイト

Single

単精度浮動小数点型

 

負数については、-3.402823E38 -1.401298E-45 の範囲の数値が設定できます。正数については、1.401298E-45 3.402823E38 の範囲の数値が設定できます。

なし

4 バイト

Double

倍精度浮動小数点型

負数については、-1.79769313486231E308 -4.94065645841247E-324 の範囲の数値が設定できます。正数については、1.79769313486231E3084.94065645841247E-324 の範囲の数値が設定できます。

7

8 バイト

 

Replication ID

レプリケーション ID

負数については、-1.79769313486231E308 -4.94065645841247E-324 の範囲の数値が設定できます。正数については、1.79769313486231E308 4.94065645841247E-324 の範囲の数値が設定できます

15

16 バイト

 


 

Box2

 

OLE

 

読み方 : オーエルイー、オーレ

フルスペル Object Linking and Embedding

 

Windowsにおいて、アプリケーションソフト間でデータを転送・共有するための仕組み。

OLEを使うことによって、あるアプリケーションソフトで作成している文書の中に、別のアプリケーションソフトで作成した情報を埋め込んだり、別のアプリケーションソフトの機能をあたかも自分の機能であるかのように提供することができるようになる。

1991年に登場したOLE 1.0Windows 3.1に搭載された。大幅に機能を拡張したOLE21993年に登場し、Windows 95に搭載された。1996年にはインターネットに対応するための機能を追加したものが登場し、名称も「ActiveX」に改められた。

OLEを利用することにより、単独では実行できないが、特定の機能のみを持つ部品化された小さなソフトウェアを作成することができ、これをOLEコントロールと呼ぶ。

OLEコントロールはアプリケーションソフトに機能を追加するのに利用される。企業が自社特有の処理をOLEコントロールとして作成し、市販のアプリケーションソフトに組みこんで使うことにより、0から専用のアプリケーションソフトを開発するよりも低コストにカスタムアプリケーションソフトを作成することができる

 

 

 

 

 

 

 

 

 


2 系統樹

 

 

ピシウム属菌(Pythium属菌)は土壌に生息する幼苗の立ち枯れ病を引き起こす植物病原菌を含む菌類で、その分子分類は現在でも研究の対象になっている。

簡単に現在あるデータからその分類を行ってみよう。

1)まずNCBIのサイトから

米国NIH(National Institute Health)が維持管理しているホームページhttp://www.ncbi.nlm.nih.gov/

のタキソノミー(taxonomy:分類学)—下図の赤丸部分をクリックすると下図が表示される

 

 

 

 

図2−1 NCBIのホームページとtaxonomyの表示

図2−2 taxonomyの表示と得られた結果

 

Taxonomyをクリックし、このページを表示させ、Search Taxonomy for Pythium Goと赤字のように入力し、Goをクリックする。左図を表示させ、右のテーブルが表示されるように2度Pythiumをクリックする。この後の操作で、Nucleotide1166 recordsをダウンロードすると、Pen4 3GHzのパソコンで1晩かかる処理が必要になるので、Protein360 recordfastaファイルとしてダウンロードします。360のところをダブルクリックすると、左図のようになりますから、DisplayFastaにし、Show500Fileにして、右図を表示させ送られてくるファイルを保存します。この場合は、Pythium.fastaとしておきましょう。

図2−3 FASTAファイルの表示とダウンロード

このファイルをフリーのソフトであるEmEditor(もしくは秀丸)で表示させてみると左図のようになります。ここでEmEditorをダウンロードしておきましょう。このエディターはフリーで正規表現(詳細はあとで記します)も使え、便利なソフトですから是非インストールしておきましょう。


2)redundant(冗長)と、nonredundant(非冗長)

このfastaファイルの中には多くの重複したデータがあります。それをredundant(冗長)と言い、重複したデータがないものをnonredundant(非冗長)と呼びます。どの程度冗長性があるかを調べるソフトがblastclustで、Windows版ではblastclust.exeです。このblastという言葉は、Basic Local Alignment Search Toolの頭文字を取った略語です。アライメントは、例えば2種類のシークエンスを比較し空白を加えることも加味し最大限に類似性を持つように並べることを言います。そのためには、タンパク質のアライメントにはblosumテーブルを使用します。blustclust.exeblosumのテーブルは

http://www.bioinfo.osakafu-u.ac.jp/~wadanoの「授業関連」項目からblastclust.zipをダウンロードし、解凍すれば使えます。このblustclust.exeblosum45blosum60blosum80の3つのテーブルをpythiumフォルダーに移し、そのフォルダーをマイコンピューターの(C:)というハードディスクに移動します。次にスタートから「ファイルを指定して実行」の項目でcmdと入力しEnterとします。次にcd \Entercd pythium Enterdir Enter、と入力すると下図の黒いウインドゥのように表示されます。このウインドゥはハードディスクCの中のpythiumフォルダーを示しています。

その中のファイルを検討するとblustclust.exeblosum45blosum60blosum80pythium.fastaが存在しています。そこで

C:\pythium>blustclust –i pythium.fasta –o pythium.nr Enterと入力します。

 

図2−6 Blastclustの実行と結果の表示

a)

 b)

この「–i –o 」は入力ファイルと出力ファイルを意味しており、Blastclustが実行され、右図a図のような表示が現れます。pythium.nrは出力ファイルで、先ほどのEmEditor(もしくは秀丸)で表示してみると左図のb図になります。一行づつがクラスタリングされたfastaファイルで、例えば赤い四角で囲った列には、5つのよく似た(ホモロガス)遺伝子がクラスタとして纏められていることを意味します。もとのpythium.fastaから上記5つの番号をもつ遺伝子ファイルを抜き出し、それぞれをfasta形式ファイルで書き出します。

このファイルを出来るだけ同一の部分が重なるように並べる(アライメントする)ためのソフトがclustalxでこれもフリーのソフトですからinternetでダウンロード出来ます。Clustalxを実行し、fileから最初はLoad sequence、第2のファイルからはAppend sequenceにより入力すると左図のようになり、これらの5つの285アミノ酸のペプチドは3カ所を別にして全て同一のアミノ酸からなることが判明する。この図からpythium.fastaファイルに含まれている冗長なデータとはどういうものかが明らかである。Clustalxには系統樹を表示するためのデータを作成する機能があり、Treeの項目からDraw N-J treeBootstrap N-J treeを選びそれぞれのファイルタイプで保存しておく。次にtreeviewをダウンロードし、先ほどの保存ファイルpythium.phpythium.phbopenする。すると下図のような系統樹が表示される。この場合、5種類のfastaファイルの切り出しなので、手動でも可能ですが、これがpythium.nrの最上位のように多くの冗長なファイルがある場合は、accessなどのデータベースソフトを活用した方が余程作業は楽になる。そこで、まずpythium.nrのデータをexcelに読み込み、その後accessimportする。そのための準備として、先ほどのクラスタリングされた遺伝子番号をexcelファイルにしておきます。


 

3)       Excelへの読み込み

3−1)EmEdit(もしくは秀丸)によるデータの変形

下の表はpythium-p.fastaの最初のデータをEmEditで表示したものである。

 

表3−1

>gi|115111206|gb|ABI84116.1| NADH dehydrogenase subunit 1 [Pythium hypogynum]

ERKILASIQRRRGPNVVGTFGLLQPLADGLKLFVKETILPSNADIILFILAPILTFFLSLLSWVIIPLGF

GSFYTELNIGILYLLAISSLGVYGIIIAGWSSNSKYSFLGALRSTAQMVSYELTIGFSILSVIVCAKSLN

LVSIVLAQKTVWYCVPLFPIFIIFFISCLAETNRHPFDLPEAEAELVSGYNVEYSAMGFALFFLGEYANMLLMSSLTTVLFLGGWLPPFPFNIKLFDILPGSFWFSIKLTIFVILFVVARAILPRYRYDQLMRLGWKVFLPFTI

これをそのままexcelに読み込むと

図3−1

一行に一行ずつが取り込まれ、リレーショナルデータベースとして扱えない。最初の行をgi番号(GeneBank identifier)gbコード(GeneBank code)、酵素名、遺伝子源の生物名に分け、シークエンスを一纏めにするためには、以下のようにこのファイルを変換しなければならない。

 

3−2)エディターと正規表現

分子構造化学の分野では、babelという有名なファイル形式変換フリーソフトがありますが、バイオインフォマティクスでは私が知らないのかそれとも形式変換がさほど難しくないのかbabelのようなソフトが見つかりません。それで、ここではフリーのエディターで上記のfastaファイルをリレーショナルデータベースで扱える形式に変換する試みをします。普通、リレーショナルデータベースでは、フィールドで区切られたいくつかの情報が一組のデータとして扱われます。データとデータの間にはリターンコード(wordでは段区切りといわれています)が入っています。従って例えば住所録のデータで府大 太郎君のデータがフィールド区切りにカンマを使って表現すると

名字, 名前, 郵便番号, 住所1, 住所2,              電話番号

府大, 太郎,  599-8531, 大阪府, 堺市中区学園長1−1, 072-254-1234

という風になります。もしくはタブ区切りの表現すると

府大\t, 太郎\t  599-8531\t 大阪府\t 堺市中区学園長1−1\t 072-254-1234\n

このフィールド区切りの\t, \nは「タブ」と「ダンク切り」の意味です。Fastaファイルをリレーショナルデータベースで扱うには、アミノ酸シークエンスの最後に一つだけ段区切りを入れた構造にする必要があります。また、gigb、酵素名、菌名を独立したフィールドとして扱うかどうかもあらかじめ決めておく必要があります。ここでは

 

>gi|115111206|\tgb|ABI84116.1| \t NADH dehydrogenase subunit 1\t [Pythium hypogynum] \tアミノ酸シークエンス

 


という構造にすることにします。タブの代わりにカンマを挿入してもほとんどの場合問題ありません。あとで系統樹をつくるのに便利ですから、[Pythium hypogynum]などの前後にもタブを入れておきます。表3−1に示したfastaファイルを上記の様に変換す

 

 

 

 

るには、正規表現(regular expression)による変換を用います。EmEditor(もしくは秀丸)で検索から置換を選択し、正規表現を使用するにチェックを入れ、検索する文字列と置換後の文字列に左図の様に入力し、次を検索(F)をクリックするとfastaファイルの一行目の色が変わり、上図の様な表示になれば検索条件の設定は出来ている。置換後の文字列に「\1\t\n」と入力されているが、これは検索する文字列の丸括弧で括られた文字列を\1で示し、\tはタブ\nは改行を意味している。この置換後に、\nすなわち改行コードを取り除き、>\n>に、\|\t\[Pythium\t\[Pythiumに置換すると下図のように変換される。

このファイルをexcelに読み込んでみると次の様なファイルになる。アミノ酸残基の最後にだけ段区切りマークが入っていることに注意しよう。

数個の例外があるので今回は、セルの挿入や行の削除で取り除き、PythiumF行にくるようにしておく。この段階で一度保存しておきましょう。

 

 

3−4)Accessによるexcelファイルの読み込みと系統樹の作成

さきほどのexcelファイルをaccessに読み込むために、まずaccessを実行します。実行画面で、ファイルから新規作成を選び、適当な名前をつけて保存します。左図画面からデータベースウインドでテーブルを選択し、ファイルから外部データの取り込みをクリックし、先ほど保存したexcelファイルを選択します。画面の指示にしたがって、新規テーブルに読み込みます。

 


右図のような画面が表示されるはずです。Blastclustで作っておいたファイルも同時に読み込んでおきます。そのままのテーブルをexcelで読み込んだものと行列を入れ替え

 

た表をつくり、それぞれnonredundanttreeとして読み込みます。

 

上図をみるとtreeredundantで行列が入れ替わっているのがわかります。

次にクエリを作ってみます。

クエリの新規作成から不一致クエリウィザードをクリックします。不一致クエリというのは、2種類の表のそれぞれにあるフィールドを比較して、選択される表から、特定のものを抜き出すために使います。この場合は不一致ですが、少し手を加えると一致する項目を抜き出すことも可能です。右図で表示をテーブルにし、fastaを選択します。次にtreeを選択し、次の画面でfasta numbertreeのフィールド1を選択し、次にすすみます。全てのフィールドを表示としてfastatreeの差分を作成します。クエリを実行して結果を表示するとfastaのなかでblastclustで選択された1行目の遺伝子番号を持たないものだけが選択されて表示されます。これでは、今意図している同一の遺伝子番号を持つファイルを表示すること、の逆を表示していることになります。そこで「fastatreeの差分」を表示させ、メニューの表示からデザインビューを選択します。すると下図のテーブルが表示されます。抽出条件の項を右にずらすと「Is Null」という表示が現れます。これを「Is Not Null」に変更して表示からデータシートビューを選びます。

 

 

 

そこで、numberの項がblastclustで選択した一行目にあった遺伝子番号をもつファイルが選択されているかどうかをexcelのテーブルと比較し確認します。ファイルから上書き保存し、その後、ファイルからエキスポートでファイルの種類をexcelにし、fastatreeの差分を保存します。Excel上でID、シークエンスの次の行、一行目などを削除してタブ区切りのテキストファイルとして保存します。EmEditorで読み込み、タブをアンダーバー(_)に変換し、半角のカギ括弧“]”と“_”を\nに置換します。結果を例えばsabun.fastaとして保存します。そのファイルをclustalxで読み込んでみます。

 

画面に上記の図が現れたら、作業は成功です。次にメニューからalignmentを選び、「Do complete alinment」を実行します。メニューからTreesを選び「Draw N-J tree」を実行、ファイルを保存します。Tree viewを実行し、先ほど保存したファイルを読み込むと下図のように表示されます。

 

 

ここまでくればほぼ目的は達したことになりますが、excelのファイルもしくはclustalxの図を見ると、同じ酵素のファイルがいくつも重なっているのがわかります。そこで課題として、同じ菌の同じファイルは一つだけを選択して、系統樹を書いてみてください。

 

またMEGAというソフトで表示することも可能です。好みによりますが、クラスタリングはclustalxの方が老舗で、見やすいですが、treeMEGAに入っているtree exploreの方が機能が高いように思えます。(このソフトは

http://www.megasoftware.net/index.htmlからダウンロード出来ます)

3章 Accessについて

 

3−1 リレーショナルデータベースソフト

accessを使っている人は、マイクロソフトのオフィスを使っている人の数パーセントにすぎないと思います。ましてやリレーショナルデータベースソフトを使っていると思っている人はもっと少ないでしょう。ところがexcelや住所録ソフトを使っている人は、周りにいくらでもいます。難しい理屈は別にして、リレーショナルデータベースはすでに私たちの日常生活には欠かせないものとなっています。これらのソフトをうまく使いこなすと、JAVAPerlなどという取つきの悪そうな言語を使わなくても、結構バイオインフォマティクスに入り込むことが出来そうです。1、2章ではそのことを強調するために、accessの原則的な使い方には触れませんでした。3章では1章で得たファイルを利用して、リレーショナルデータベースの基本に立ち入ってみたいと思います。

 

3−2 データを整える

図3−1 Accessでの表示

1章で作成したデータpythium.fastaaccessに再度読み込み、テーブルをよく見てみると、gigbpythiumなど同じ記述が沢山あることがわかります。このテーブルを分離(正規化とよびます)して、いくつかのテーブルに分けます。たとえば、giという欄は別のテーブルに移し、入力の際の手間を省けるようにします。さらにspとかgbはいくつかの候補から選べるようにします。メニューのツールから、解析・テーブルの正規化を選びます。多くの重複データがあるテーブルに最初のPythiumのテーブルを選び、次に進みます。すると、図3−2aに示すように全てのフィールドが示されます。その中で、重複のあるgisp or gbのフィールドだけをドラッグして図bの様にします。それぞれの新しいテーブルに名前をつけ、中央のテーブル1にもPythiumという名前をつけて保存します。giテーブルにはもとの全てのデータがふくまれていますが、gbテーブルにはdbjembgbpirprfsp

a

b

図3−2

a

b

c

図3−3

の項があり(図3−3a)、たとえばembpirspの項の+をクリックすると図3−3bのようにそれぞれの項を含むデータが表示される。残りのデータは、実際は別のテーブル図cのように格納される。このようにして正規化するとなにが便利になるのだろう。それを確認するために、新規レコードを入力するフォームを作成してみる。

 


3−3 入力・表示フォームの作成

 

正規化が終わったら、一度データを表示するフォームの作成をしてみます。

 


オートフォームでの作成


ビットマップの入れ替え

C

 
 図aをデザインビューで表示

 

 

 

 

 

 

 


赤丸内を右クリックし図dを表示

dd

 
      全てのラベルからピクチャを選択し図を挿入、サイズをストレッチにする

 

 

図3−4 オートフォームで作成した表示フォームのレイアウト変更

     バックに写真などを挿入する

 

正規化したテーブルを選び、オートフォームでフォームを作成すると、gidbの項はルックアップとして表示される。前者には選択項目はgiのみ、後者には6項目の選択肢が表示される。フォームのバックを変更するには、デザインビューで表示し赤丸で示した部分を右クリックし、プロパティを表示、すべてからピクッチャを選び写真などを選択する。さらにサイズをストレッチにすると全体にその写真などが表示される。


3−4 クエリ

 クエリは英語としてさして馴染みの無い単語ですが、質問とか疑問という意味を持っています。しかし、現在ではデータベースを扱うテクニカルな言葉として使われており、データベースへの「問い合わせ」の意味で使われています。あるテーブルから、特定のデータだけを選ぶには、フィルタを使う場合とクエリを使う場合があります。前者は一時的に選ぶ場合で、たとえばPythiumのテーブルからgene numberABOという文字を含むデータのみを選択するには、gene numberABOを選択し、「レコード・フィルタ・選択フィルタ」を実行すると下記のように19個のデータが選択されます。

a

 

c

 

b

 

図3−5フィルタによる選択と選択クエリ


 

このフィルタによる選択は、テーブルの表示を閉じると無効になります。一方クエリでも同じことが出来ますが、その場合は選択クエリのオブジェクトが生成し、何度も使えます。そのプロパティを表示してみると図3−5cの様になり、抽出条件で「Like “ABO” & “*”」と表現されています。これは”ABO”を含む全てを表示という意味です。
4章 応用:シアノベースの模倣

 

 

1) バイオデータベースの素人的使い方

DNAやタンパク質を初めとして多くの生物に関するデータが蓄積し、系統的に整理されている。私たちは、普通無料でそれらを自由に使うことができるし、大いにそれらのお世話になっている。それについての解説書は多くあり、今更素人がその領域に踏み込む意味はあまりない。玄人が使わない方法でデータベースをより良くつかう試みをしてきたが、これまで習った知識を駆使し、ちょっと面白いデータベースの使い方をしてみよう。

 

2)        シアノベース(CyanoBase)

シアノベースは千葉県にある「かずさDNA研究所」が公開しているゲノムデータベースの一部で、ラン藻 Synechocystis sp. strain PCC 6803, Anabaena sp. PCC 7120, Thermosynechococcus elongatus BP-1 ならびに光合成細菌 Chlorobium tepidum TLS のゲノムデータベースである。そのなかのSynechocystis sp. strain PCC 6803に関するGene Category ListAccessもしくはOpen Office Baseで構成しながら、データベースの理解を深めます。


 

   A                                                 

B


A2

B2

図4−1 CyanoBaseAccess上のGene Category List

ACyanoBase  B:Access

 

図3−1Aは、CyanoBase上のGene Category Listをそのままコピーしたもので、B図はそれをAccessで再現したものである。その一行目をクリックするとCyanoBaseではA2になり、AccessではB2に変化する。もちろん、CyanoBaseと同様にサーバーを用いて同じ機能を実現することは可能である。図2は私が学内で使用しているサーバーを用いてローカルに立ち上げているCyanoBaseで、一番下の行にLoacal Anotation Dataと表示がある。

 


 

図4−2 独自のサーバーによるCyanoBaseのコピー

 

研究室でアノテーション(名前付けと機能の解明)が進行しつつある遺伝子でまだ公開にまで至っていないデータを、共有することが可能になる。このホームページの作成には、CyanoBaseのソースが公開されていないので、サーバー上で稼働可能なデータベースソフト、サーバーソフト、両者を接続するソフトの知識を必要とされる(私の場合はMySQLApache2PHPがそれに相当し、PHPのソフトは卒業生の井上貴人君によるものであり、必要な人にはソースを譲ります)。

余談はさておき、どのようにしてこれをAccessで実現するかをみていこう。

 

3)CyanoBase からデータのダウンロード

ftp://ftp.kazusa.or.jp/pub/cyanobase/Synechocystis からSynecho.p.aa.Z をダウンロードし、解凍します。エディタで表示すると図3−3左図のようになります。それを3

図4−3

図4−4 Accessでの表示

 

3)        フォームの移り変わり

図4−5に示す図a、図bをカズサのデータベースよりコピーしフォームを作成する。図cは、図4−4のテーブルと、カズサのデータベースの”Amino acid biosynthesis””Aromatic amino acid family”をクリックし表4−1に示した表示を得て、gene number

 

d

 

e

f

図4−5フォームの移り変わり  図aは最初のページで、b, cと変化する。文字の内部分か「戻る」をクリックすると元のフォームに戻るようマクロを使い設定する。

章で変換した様にテキストエディタで修正し、エクセルで示すと右図のようになる。そのファイルをAccessにインポートすると図4−4のようになる。このテーブルを使ってカズサのデータベースを模倣するのが本章の目的である。

 

 


 

表4−1Aromatic amino acidgene numberと酵素名

sll0084: putative phosphatase
     sll0109: chorismate mutase
     sll0356: N-(5'-phosphoribosyl)anthranilate isomerase
     sll0900: ATP phosphoribosyltransferase
     sll1112: 3-dehydroquinate dehydratase
     sll1662: probable prephenate dehydratase
     sll1669: shikimate kinase
     sll1713: histidinol-phosphate aminotransferase
     sll1747: chorismate synthase
     sll1893: cyclase
     sll1958: histidinol phosphate aminotransferase
     slr0055: anthranilate synthase component II
     slr0084: amidotransferase HisH
     slr0444: 3-phosphoshikimate 1-carboxyvinyltransferase
     slr0500: imidazoleglycerol-phosphate dehydratase
     slr0543: tryptophan synthase beta subunit
     slr0546: indole-3-glycerol phosphate synthase
     slr0608: histidine biosynthesis bifunctional protein HisIE
     slr0652: phosphorybosilformimino-5-amino- phosphorybosil-4-imidazolecarboxamideisomerase
     slr0682: histidinol dehydrogenase
     slr0738: anthranilate synthetase alpha-subunit
     slr0966: tryptophan synthase alpha chain
     slr1559: shikimate 5-dehydrogenase
     slr1848: histidinol dehydrogenase
     slr1867: anthranilate phosphoribosyltransferase
     slr1979: anthranilate synthase component I
     slr2081: prephenate dehydrogenase
     slr2130: 3-dehydroquinate synthase

 

 

コピーし、このgene numberと、図4−1のorf numberとの差分クエリをとる。”Is not Null””Is Null”に変更するのを忘れないようにする。さらにそのクエリをもとに表示のフォームを作成する。そのデザインは各自が考えて作成してください。図4−5に示した図a bcが作成出来たら、次にマクロの作成を行います。

 

 

4)        マクロの作成

図4−6マクロの作成

  マクロは6種類作成します。それぞれの機能はデザインビューで行います。

まず、”Amino_Acid_form_close”というマクロを作ってみます。新規作成をクリックすると


5)         


補遺1 blastclustについて

--(Basic Local Alinment Search Tool略してBLASTである)

BLASTCLUST - BLAST score-based single-linkage clustering

 

1. Clustering 操作

BLASTCLUST は自動的にかつシステマティックにタンパク質やDNAのシークエンスを、タンパク質ではBLAST algorithmDNAではMega BLAST algorithmを用いてpairwise matchesによりクラスタに纏める。後者の場合、一件のMega BLAST searchは、同じシークエンスから作られたデータベースに対して、全てのシークエンスを対象にして実行される。BLASTCLUSTは、統計的に有意にマッチしているシークエンス対を検索し、それらをsingle-linkage clusteringを用いてクラスタにする。BLASTCLUSTは、BLAST Mega BLAST パラメーターを初期値として用いる。タンパク質のシークエンスに対しては、matrix BLOSUM62; gap opening cost 11; gap extension cost 1; no low-complexity filteringという値を用いる。DNAシークエンスに対しては、match reward 1, mismatch penalty -3, non-affine gapping costs (詳しくは README.mbl を参照), wordsize 28である。どちらの場合も、e-value threshold 1e-6に設定されている。それぞれのシークエンス対に対して、最高スコアアライメントは次のようにして評価される。

 


coverage of seqX: Cx = Hx/Lx

coverage of seqY: Cy = Hy/Ly

coverage: max(Cx,Cy) or min(Cx,Cy), depending on the value of -b option

alignment length Al = Hx+Gx = Hy+Gy

score density: S/min(Hx,Hy) or N/Al*100%

もし、coverage が設定閾値より上で、かつscore density が設定閾値より上であれば、これらの二つのシークエンスは類似していると見なされる。このようにして、決定された類似関係はシンメトリックでsingle-linkage methodによりクラスタに分類する根拠を与える(あるシークエンスが、クラスタの中の少なくとも一つのシークエンスと類似していれば、そのシークエンスをクラスタに加える)。

 

2. 入力のフォーマット.

最初のBLASTCLUST に対する入力フォーマットは、FASTA-フォーマットシークエンスファイルである。それぞれのシークエンスは、固有のアイデンティファイア(formatdbにより定義)を持っていなければならない。BLASTCLUSTは、このシークエンスセットを BLASTable database にフォーマットし (環境変数TMPDIR で示されるディレクトリか、カレントディレクトリに保存される)、そのデータベースを削除する。FASTAファイルの代わりに、formatdb-o TRUEとセットし作られたdatabaseinputに使うことも出来る。別のインプットとしては、BLASTCLUSTにより前もって作成されたsequence hit-listも使用可能である(その場合、新規の比較をする代わりに、既成のHSPデータを用いる)。クラスタリングをID list fileを使ってデータをサブセットに分けることも可能である(IDは、スペース、タブ、行、コンマ、セミコロンで区切る)。このことは、以前計算されたhit-list fileを用いてシークエンスをサブセットに再クラスタリングするために用いるように提案されている。

3. 出力フォーマット.

BLASTCLUSTは、シークエンスIDのクラスターを大きい方から(同じクラスター内では、最初のシークエンスIDにより、アルハベット順に)行に分けて出力する。同一のクラスター内でのSequence identifierはスペースで分け長いもの順で(同じ長さの場合は、IDのアルハベット順)で並べられる。

4. Crash recovery.

もしプログラムがシステムエラーでクラッシュした場合は、クラッシュリカバリーモードで再スタートさせられる。これは、hit-listがクラスタリングの作業中に保存してあれば可能である。作業を、同じコマンドラインから前回同様に同じファイル名をhit-listとして保存し、さらに"continue unfinished clustering" option TRUE セットして実行する。プロセスは前回実行中の最後に保存されたポイントから始まり、結果は前回のhit-listファイルに書き加えられる。

5. Environment.

BLASTCLUSTは、標準のNCBI環境下で実行するように設定されている。BLOSUM62.ncbircBLASTMAT環境変数で指定される場所に存在しなければならない。

 

6. Program オプション

インプット:

-i <file> sequence file in the FASTA format (default = stdin)

-d <file> sequence database name

-r <file> name of a hit-list file saved by BLASTCLUST

上記3ファイルは相互に独立したファイルである。

 

-l <file> a file with a list of IDs to restrict the clustering,

保存されたhit-listから再クラスタする場合にのみ指定が可能である。

.

閾値(Thresholds:

-S <threshold> similarity threshold

もしthreshold <3 の場合は、threshold BLAST score densityとして設定される。

(0.0 to 3.0; 初期値 = 1.75)

もしthreshold >=3 の場合は、thresholdは、 percent of identical residues (3 to 100)として設定される。

 

-L <threshold> minimum length coverage (0.0 to 1.0; default = 0.9)

-b <T|F> -L-Sで指定した値を比較する両方のシークエンスに適応する場合はTrueTを、一方のシークエンスのみに適応する場合はFalseFを指定する。初期値はTである。

 

Output:

-o <file> file to save cluster list (default = stdout)

-s <file> file to save hit-list (this file may be not portable across

platforms)

-p <T|F> protein (T) or nucleotide (F) sequences in the input

(default = TRUE)

Misc:

-C <T|F> continue unfinished clustering (crash recovery mode).

(default = FALSE)

-a <number> Number of CPU's to use in a multi-thread mode

(default = 1).

-v <logfile> Progress report destination (printed every 1000 sequences).

Set to F to suppress report messages (default = stderr).

-e <T|F> Enable sequence id parsing in database formatting.

Set to F if multiple sequences have identical ids (default = TRUE).

-W Word size to use for initial matches

(default = 0, translates to 3 for proteins and 32 for nucleotides).

-c <config file> Configuration file with advanced options,

containing any of the following options with their values, separated by whitespace:

-r, -q, -G, -E - match, mismatch, gap open and gap extension scores respectively,

-e - e-value cut off,

-y, -X - the dropoff values for the ungapped and gapped extension respectively,

-A - window size for two-hit version,

-I - hitlist size,

-Y, -z - effective search space and database length respectively,

to be used for e-value and bit score calculations,

-F - filter string,

-s - raw score cut off for nucleotide search,

-S - strand option.

7. Credits and complaints:

Ilya Dondoshansky (dondosha@ncbi.nlm.nih.gov)

Yuri Wolf (wolf@ncbi.nlm.nih.gov)

05 August, 2000

 

APPENDIX A.

Format of the hit-list file.

1.       The hit-list file consists of the following parts:

-      header

-      sequence ID list

-      sequence length list

-      hit list

2.       The byte-by-byte layout is platform-dependent; field sizes given here are true for most UNIX platforms.

A.1. Header.

3.       4-byte integer IDtype 1 if numeric IDs; 0 if string IDs

4.       4-byte integer ListSz size of the ID list; if IDs are numeric this is the number of SeqID records, otherwise this is the length of the ID list (in bytes)

A.2. Sequence ID list.

5.       If IDtype is 1 (numeric IDs) then the list is ListSz records of 4-byte integer SeqID sequence ID (numeric)

6.       If IDtype is 0 (string IDs) then the list is a list of records of var-length char SeqID sequence ID (string) space (' ') separator (total length is ListSz bytes; the number of sequences is equal to the number of spaces).

A.3. Sequence length list.

7.       This is a list of 4-byte integer SeqLen sequence length

A.4. Hit list.

8.       The list consists of the following records going to the end of file:

9.       4-byte integer N1 ordinal number of the 1st sequence

10.   4-byte integer N2 ordinal number of the 2nd sequence

11.   4-byte integer HSPL1 HSP length on the 1st sequence

12.   4-byte integer HSPL2 HSP length on the 2nd sequence

13.   8-byte float Score BLAST score

14.   8-byte float PercId Percent of identical residues