AccessとOpenOffice・Baseによる
データベース入門
(ゲノムデータベースの取り扱い)
大阪府立大学・大学院生命環境科学専攻
和田野 晃
はじめに
本書はAccess2003とOpenOfficeのBaseの応用として、バイオデータベースの扱いを解説した本です。大阪府立大学の「データベースと情報検索」の授業をするに際して、あれこれと教科書になる本を検討し、2年間にわたり牧村あきこ氏の「Access--はじめてのデータベース」を使用させていただきましたが、内容が住所録を主眼にしており、生物系の授業にはあまり適しているとは思っていませんでした。そこで「かずさDNA研究所」のシアノバクテリア遺伝子データベースを教材にすることを試みました。住所録を教材にするよりも学生の意欲を高めることができそうなので、覚え書きとして教科書にすることにしました。かずさDNA研究所にはその旨お伝えし、了解を得ました。それだけでは、前期15回の授業内容に不十分なので、授業で情報センターの使用に際して必要なメイリングリストのようなものの作成、系統樹の作成、などを加えました。ただ著者はデータベースの専門家ではありませんから、その観点からみるとずいぶんいい加減なところがあるかもしれません。一方、インフォマティクスの観点からみると、これも専門ではないのでやはり十分にデータベースをAccessやBaseで論じることも出来てないかもしれません。次の世代の先生に引き継いで頂いて、よりわかりやすいインフォマティクスのデータベースを扱う教科書ができることを願っています。
1−1Active Mailでのメイリングリスト(グループの作り方)
Active Mailを実行すると図1Aのような画面が表示される。そこで、オプションを選択し、住所録をダブルクリックすると1Bとなる。そこで青字のオプションに戻るの右隣にあるHをクリックすると住所録のヘルプが表示される(1C)。ヘルプを詳細に読んでみると、1Dのように書いてある。WAV、CSVはそれぞれOutlookの住所録形式、コンマセパレートバリュー形式の意味で、CSV形式のファイルを取り込みグループを作成します。
C |
D 他のアプリケーションで作成した住所録ファイルを Active! mail に取り込むことができます。取り込むことができるファイルは WAB形式と、CSV形式です。 |
まず、住所録作成で自分のデータを公開できる部分のみ入力し、ファイルの項からエキスポート(「別名で保存」するとき、他のソフトで読める形式にする)してみてください。エキスポートし、保存したファイルをエクセルとテキストエディタで読んでみてください。図2のような表示が出ると思います。
|
|
図2 エキスポートしてファイルをエクセルとテキストエディタで表示 |
コンマで区切られた文の数を調べると、一行目と二行目が同じになっているはずです。文もしくは単語が入ってない部分はコンマが続けて表示されています。さらにコンマは全角ではなく半角になっていることに注意します。コンマとコンマの間は、フィールドと呼び、一行をレコードといいます。出来たCSVファイルをTAにメイルで送っておきます。次週までにTAは諸君に全員のレコードが入ったCSVファイルを圧縮ファイルであるZIPフィルで送ってくれますから、解凍してActive Mailのグループに取り込みます。
Box 1 “圧縮”とはファイルの形式を変換(たとえばスペースが10個ある場合は、10SP―> SPはspaceの意味)と書くと半角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.40E38〜3.40E38の数値(4バイト) |
|
倍精度浮動小数点型 |
-1.79E308〜1.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.79769313486231E308〜4.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.0はWindows 3.1に搭載された。大幅に機能を拡張したOLE2が1993年に登場し、Windows 95に搭載された。1996年にはインターネットに対応するための機能を追加したものが登場し、名称も「ActiveX」に改められた。 OLEを利用することにより、単独では実行できないが、特定の機能のみを持つ部品化された小さなソフトウェアを作成することができ、これをOLEコントロールと呼ぶ。 OLEコントロールはアプリケーションソフトに機能を追加するのに利用される。企業が自社特有の処理をOLEコントロールとして作成し、市販のアプリケーションソフトに組みこんで使うことにより、0から専用のアプリケーションソフトを開発するよりも低コストにカスタムアプリケーションソフトを作成することができる |
ピシウム属菌(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をクリックする。この後の操作で、Nucleotideの1166 recordsをダウンロードすると、Pen4 3GHzのパソコンで1晩かかる処理が必要になるので、Proteinの360 recordをfastaファイルとしてダウンロードします。360のところをダブルクリックすると、左図のようになりますから、DisplayをFastaにし、Showを500、Fileにして、右図を表示させ送られてくるファイルを保存します。この場合は、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.exeとblosumのテーブルは
http://www.bioinfo.osakafu-u.ac.jp/~wadanoの「授業関連」項目からblastclust.zipをダウンロードし、解凍すれば使えます。このblustclust.exeとblosum45、blosum60、blosum80の3つのテーブルをpythiumフォルダーに移し、そのフォルダーをマイコンピューターの(C:)というハードディスクに移動します。次にスタートから「ファイルを指定して実行」の項目でcmdと入力しEnterとします。次にcd \Enter、cd pythium Enter、dir Enter、と入力すると下図の黒いウインドゥのように表示されます。このウインドゥはハードディスクCの中のpythiumフォルダーを示しています。
その中のファイルを検討するとblustclust.exeとblosum45、blosum60、blosum80、pythium.fastaが存在しています。そこで
C:\pythium>blustclust –i pythium.fasta –o pythium.nr Enterと入力します。
|
a)
|
この「–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 treeかBootstrap N-J treeを選びそれぞれのファイルタイプで保存しておく。次にtreeviewをダウンロードし、先
ほどの保存ファイルpythium.phかpythium.phbをopenする。すると下図のような系統樹が表示される。この場合、5種類のfastaファイルの切り出しなので、手動でも可能ですが、これがpythium.nrの最上位のように多くの冗長なファイルがある場合は、accessなどのデータベースソフトを活用した方が余程作業は楽になる。そこで、まずpythium.nrのデータをexcelに読み込み、その後accessにimportする。そのための準備として、先ほどのクラスタリングされた遺伝子番号を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ファイルをリレーショナルデータベースで扱うには、アミノ酸シークエンスの最後に一つだけ段区切りを入れた構造にする必要があります。また、gi、gb、酵素名、菌名を独立したフィールドとして扱うかどうかもあらかじめ決めておく必要があります。ここでは
>gi|115111206|\tgb|ABI84116.1| \t NADH dehydrogenase subunit 1\t [Pythium hypogynum] \tアミノ酸シークエンス
![]() |
るには、正規表現(regular expression)による変換を用います。EmEditor(もしくは秀丸)で検索から置換を選択し、正規表現を使用するにチェックを入れ、検索する文字列と置換後の文字列に左図の様に入力し、次を検索(F)をクリックするとfastaファイルの一行目の色が変わり、上図の様な表示になれば検索条件の設定は出来ている。置換後の文字列に「\1\t\n」と入力されているが、これは検索する文字列の丸括弧で括られた文字列を\1で示し、\tはタブ\nは改行を意味している。この置換後に、\nすなわち改行コードを取り除き、>を\n>に、\|を\t、\[Pythiumを\t\[Pythiumに置換すると下図のように変換される。
このファイルをexcelに読み込んでみると次の様なファイルになる。アミノ酸残基の最後にだけ段区切りマークが入っていることに注意しよう。
数個の例外があるので今回は、セルの挿入や行の削除で取り除き、PythiumがF行にくるようにしておく。この段階で一度保存しておきましょう。
3−4)Accessによるexcelファイルの読み込みと系統樹の作成
さきほどのexcelファイルをaccessに読み込むために、まずaccessを実行します。実行画面で、ファイルから新規作成を選び、適当な名前をつけて保存します。左図画面からデータベースウインドでテーブルを選択し、ファイルから外部データの取り込みをクリックし、先ほど保存したexcelファイルを選択します。画面の指示にしたがって、新規テーブルに読み込みます。
![]() |
た表をつくり、それぞれnonredundantとtreeとして読み込みます。
上図をみるとtreeとredundantで行列が入れ替わっているのがわかります。
次にクエリを作ってみます。
クエリの新規作成から不一致クエリウィザードをクリックします。不一致クエリというのは、2種類の表のそれぞれにあるフィールドを比較して、選択される表から、特定のものを抜き出すために使います。この場合は不一致ですが、少し手を加えると一致する項目を抜き出すことも可能です。右図で表示をテーブルにし、fastaを選択します。次にtreeを選択し、次の画面でfasta のnumberとtreeのフィールド1を選択し、次にすすみます。全てのフィールドを表示としてfastaとtreeの差分を作成します。クエリを実行して結果を表示するとfastaのなかでblastclustで選択された1行目の遺伝子番号を持たないものだけが選択されて表示されます。これでは、今意図している同一の遺伝子番号を持つファイルを表示すること、の逆を表示していることになります。そこで「fastaとtreeの差分」を表示させ、メニューの表示からデザインビューを選択します。すると下図のテーブルが表示されます。抽出条件の項を右にずらすと「Is Null」という表示が現れます。これを「Is Not Null」に変更して表示からデータシートビューを選びます。
そこで、numberの項がblastclustで選択した一行目にあった遺伝子番号をもつファイルが選択されているかどうかをexcelのテーブルと比較し確認します。ファイルから上書き保存し、その後、ファイルからエキスポートでファイルの種類をexcelにし、fastaとtreeの差分を保存します。Excel上でID、シークエンスの次の行、一行目などを削除してタブ区切りのテキストファイルとして保存します。EmEditorで読み込み、タブをアンダーバー(_)に変換し、半角のカギ括弧“]”と“_”を\nに置換します。結果を例えばsabun.fastaとして保存します。そのファイルをclustalxで読み込んでみます。
画面に上記の図が現れたら、作業は成功です。次にメニューからalignmentを選び、「Do complete alinment」を実行します。メニューからTreesを選び「Draw N-J tree」を実行、ファイルを保存します。Tree viewを実行し、先ほど保存したファイルを読み込むと下図のように表示されます。
ここまでくればほぼ目的は達したことになりますが、excelのファイルもしくはclustalxの図を見ると、同じ酵素のファイルがいくつも重なっているのがわかります。そこで課題として、同じ菌の同じファイルは一つだけを選択して、系統樹を書いてみてください。
またMEGAというソフトで表示することも可能です。好みによりますが、クラスタリングはclustalxの方が老舗で、見やすいですが、treeはMEGAに入っているtree exploreの方が機能が高いように思えます。(このソフトは
http://www.megasoftware.net/index.htmlからダウンロード出来ます)
3章 Accessについて
3−1 リレーショナルデータベースソフト
accessを使っている人は、マイクロソフトのオフィスを使っている人の数パーセントにすぎないと思います。ましてやリレーショナルデータベースソフトを使っていると思っている人はもっと少ないでしょう。ところがexcelや住所録ソフトを使っている人は、周りにいくらでもいます。難しい理屈は別にして、リレーショナルデータベースはすでに私たちの日常生活には欠かせないものとなっています。これらのソフトをうまく使いこなすと、JAVA、Perlなどという取つきの悪そうな言語を使わなくても、結構バイオインフォマティクスに入り込むことが出来そうです。1、2章ではそのことを強調するために、accessの原則的な使い方には触れませんでした。3章では1章で得たファイルを利用して、リレーショナルデータベースの基本に立ち入ってみたいと思います。
3−2 データを整える
|
図3−1 Accessでの表示 |
1章で作成したデータpythium.fastaをaccessに再度読み込み、テーブルをよく見てみると、gi、gb、pythiumなど同じ記述が沢山あることがわかります。このテーブルを分離(正規化とよびます)して、いくつかのテーブルに分けます。たとえば、giという欄は別のテーブルに移し、入力の際の手間を省けるようにします。さらにspとかgbはいくつかの候補から選べるようにします。メニューのツールから、解析・テーブルの正規化を選びます。多くの重複データがあるテーブルに最初のPythiumのテーブルを選び、次に進みます。すると、図3−2aに示すように全てのフィールドが示されます。その中で、重複のあるgiとsp or gbのフィールドだけをドラッグして図bの様にします。それぞれの新しいテーブルに名前をつけ、中央のテーブル1にもPythiumという名前をつけて保存します。giテーブルにはもとの全てのデータがふくまれていますが、gbテーブルにはdbj、emb、gb、pir、prf、sp
図 a |
図 b |
図3−2 |
図 a |
図 b |
図 c |
|
図3−3 |
の項があり(図3−3a)、たとえばemb、pir、spの項の+をクリックすると図3−3bのようにそれぞれの項を含むデータが表示される。残りのデータは、実際は別のテーブル図cのように格納される。このようにして正規化するとなにが便利になるのだろう。それを確認するために、新規レコードを入力するフォームを作成してみる。
3−3 入力・表示フォームの作成
正規化が終わったら、一度データを表示するフォームの作成をしてみます。
|
|
|||||||
C
赤丸内を右クリックし図dを表示 |
dd
|
|||||||
図3−4 オートフォームで作成した表示フォームのレイアウト変更 バックに写真などを挿入する |
正規化したテーブルを選び、オートフォームでフォームを作成すると、giとdbの項はルックアップとして表示される。前者には選択項目はgiのみ、後者には6項目の選択肢が表示される。フォームのバックを変更するには、デザインビューで表示し赤丸で示した部分を右クリックし、プロパティを表示、すべてからピクッチャを選び写真などを選択する。さらにサイズをストレッチにすると全体にその写真などが表示される。
3−4 クエリ
クエリは英語としてさして馴染みの無い単語ですが、質問とか疑問という意味を持っています。しかし、現在ではデータベースを扱うテクニカルな言葉として使われており、データベースへの「問い合わせ」の意味で使われています。あるテーブルから、特定のデータだけを選ぶには、フィルタを使う場合とクエリを使う場合があります。前者は一時的に選ぶ場合で、たとえばPythiumのテーブルからgene numberにABOという文字を含むデータのみを選択するには、gene numberのABOを選択し、「レコード・フィルタ・選択フィルタ」を実行すると下記のように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 ListをAccessもしくはOpen Office Baseで構成しながら、データベースの理解を深めます。
A |
B
|
|||
A2 |
|
図4−1 CyanoBaseとAccess上のGene Category List
A:CyanoBase B:Access
研究室でアノテーション(名前付けと機能の解明)が進行しつつある遺伝子でまだ公開にまで至っていないデータを、共有することが可能になる。このホームページの作成には、CyanoBaseのソースが公開されていないので、サーバー上で稼働可能なデータベースソフト、サーバーソフト、両者を接続するソフトの知識を必要とされる(私の場合はMySQL、Apache2、PHPがそれに相当し、PHPのソフトは卒業生の井上貴人君によるものであり、必要な人にはソースを譲ります)。
余談はさておき、どのようにしてこれをAccessで実現するかをみていこう。
3)CyanoBase からデータのダウンロード
ftp://ftp.kazusa.or.jp/pub/cyanobase/Synechocystis からSynecho.p.aa.Z をダウンロードし、解凍します。エディタで表示すると図3−3左図のようになります。それを3
|
|
図4−3 |
|
||||
|
||||
3) フォームの移り変わり 図4−5に示す図a、図bをカズサのデータベースよりコピーしフォームを作成する。図cは、図4−4のテーブルと、カズサのデータベースの”Amino acid biosynthesis”の”Aromatic amino acid family”をクリックし表4−1に示した表示を得て、gene numberを
|
章で変換した様にテキストエディタで修正し、エクセルで示すと右図のようになる。そのファイルをAccessにインポートすると図4−4のようになる。このテーブルを使ってカズサのデータベースを模倣するのが本章の目的である。
表4−1Aromatic amino acidのgene 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 、b、cが作成出来たら、次にマクロの作成を行います。
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 algorithm、DNAでは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とセットし作られたdatabaseをinputに使うことも出来る。別のインプットとしては、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が.ncbircかBLASTMAT環境変数で指定される場所に存在しなければならない。
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で指定した値を比較する両方のシークエンスに適応する場合はTrueのTを、一方のシークエンスのみに適応する場合はFalseのFを指定する。初期値は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