実践MySQL

萌え系データベース本で大体のイメージは掴めたので、イメージが消えぬうちにMySQLを使って自分の実験データのデータベース化!に挑戦。


①自分のマイクロアレイデータのテキストファイル(タブ区切り)を整形する。

cut -f フィールドの位置

上記unixコマンドでprobeIDと各実験区の発現数値データを抜き出す。


②抜き出した発現数値データをratioにする。(gc_ratio.txt)

# usr/local/bin/perl
while (<>) {
          chomp;
          my ($id,$d0,$d1,$d2,$d3,$d4) = split(/\t/);
          my $r1 = $d1 - $d0;
          my $r2 = $d2 - $d0;
          my $r3 = $d3 - $d0;
          my $r4 = $d4 - $d0;
          print "$id\t$r1\t$r2\t$r3\t$r4\n";
}

上記perlスクリプトを書いて実行。


スキーマ既述ファイル(gc_ratio.sql)を書く。

 --
 -- database; kishoi
 --

CREATE TABLE GC_ratio (
  probeID varchar(20) NOT NULL,
_GC2_1 float(6),
_GC3_1 float(6),
_GC4_1 float(6),
_GC5_1 float(6),
  INDEX k1 (probeID)
);
#CREATE TABLE名はデータファイルと同じにしないとダメ


コマンドプロンプトスキーマとデータファイルを読み込む。

C:\mysql5\bin>mysql -u mysql -D kishoi < (絶対パス)gc_ratio.sql
C:\mysql5\bin>mysqlimport -u mysql kishoi (絶対パス)GC_ratio.txt

発現データのデータベース化は完了。


⑤ 発現データとjoinしたいannotaionデータも同様に準備。

annotation.sql
 --
 -- database; kishoi
 --

CREATE TABLE annotation (
  probeID varchar(20) NOT NULL,
affy_def text,
hs_tx_def text,
mm_tx_def text,
  INDEX k1 (probeID)
);

コマンドプロンプトで
C:\mysql5\bin>mysql -u mysql -D kishoi < anntation.sql
C:\mysql5\bin>mysqlimport -u mysql kishoi annotation.txt


⑥ 発現データとannotationをjoin

mysql>select t1.*, hs_tx_def from gc_ratio t1, annotation t2 where
 t1.probeID=t2.probeID limit 100; 

以上、長々とメモ。