ibus-mozcをsynapticを用いてインストール。位存関係にあるパッケージは自動的にインストールされる。

ターミナルで以下の操作を実行して、Ubuntu Japan Team のリポジトリを追加。

uUbuntu Japan Teamの日本語パッケージ

wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -

wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -

sudo wget https://www.ubuntulinux.jp/sources.list.d/oneiric.list -O

/etc/apt/sources.list.d/ubuntu-ja.list

sudo apt-get update


システムツール > システム設定 で「言語サポート」を起動 で自動的にインストールパッケージが自動的に提示されるので、それをインストールする。

連番でディレクトリやファイルの作成

表題の通りです。

$ mkdir hoge_{1..3000}

これで、hoge_
が頭につくディレクトリが3000個で来ます。しかも連番で!!

任意の配列を含むファイルを特定のディレクトリ以下すべてのディレクトリからすべて選んできて、ひとつのディレクトリ内にバックアップする

たとえば「2011」という文字列をファイル名に含むファイルをカレントディレクトリ以下から探し出して、./backup/ にコピーするには
find
xargs
cp

の三つを連結させて、


find . -name "*2011*" | xargs -I% cp -fp % ./backup/

Unixで作成したsshの公開認証鍵をwindowsのputtyによるssh接続に使用する。

手元にOS Xとwindowsのマシーンがあったとします。

サーバーの自分のアカウントに公開鍵認証によるssh接続を行うために

秘密鍵と公開鍵を一揃い作成したとします。

秘密鍵をwindowsでのPuTTY使用時にも使用したいとします。

そうした場合、Puttyのバイナリファイルがあるディレクトリにある

puttygeneというアプリケーションを用いて、macで作成したkeyファイルを読み込み、新たにwindows用の鍵を作成することができます。(鍵を選んできて、保存です)

日本語入力の文字化けを防ぐために、puttyの「変換」のところで、UTF-8/japaneseを選んでおきます。

あとは、puttyで接続するときに、左側の項目のssh-認証のところで作成した鍵を読み込んでやればログインできます(^^)


ちなみにputtyに関しては、日本語版を使用しています。
PuTTY ごった煮版

追記

セッション名を付けて、設定した接続セッションの設定内容を保存しておくと便利です。
セッションをクリックして反映させればいいだけになりますので。


ターミナルからメ−ル

例えば、xxxx@gmail.comというメールアドレスにメ−ルを送るには

UNIX上で

$ mail xxxx@gmail.com

です。

sshでX windows system

sshでサーバーマシーンに接続して、Rで計算をちょくちょくしていると、

plot()関数のようなx windows systemを用いて、結果を描写する機会にたびたび遭遇します。

そこでssh接続するときに-Xのオプションをつけるとよいです。

ただし、これは手元の環境にXwindowsがあることが必須です。

したがって、Mac OS Xか、Linux、BSD等である必要があります。



$ ssh -X xxx.xxx.xx.x

これでいけます。

ためしに、

$ R

plot(rnorm(1000))


としてみるとxwindowsシステムがうまくいっているかを確認することができます。

zshがおすすめ。

zshはtabによる支援が非常に充実しているのでおすすめです。

ちなみに設定ファイルは、ホームディレクトリの下に.zshrcをつくればよいです。

$ vim ~/.zshrc


僕の場合、とりあえず、カラーでディレクトリを表示してほしいので、


alias ls="ls -G"

というエイリアスだけは書いておきます。

windowsとlinuxのデュアルブートについて

デュアルブートするときのFAT32のメリット。





以下引用。

DOSやLinuxからFAT32はアクセス(読み書き)できますが、NTFSは読み出ししかできません(できるようになったかも知れませんが)。つまり、何かトラブルがあって「このデータ(設定ファイルなど)のこの部分を修正したい」と思ってもNTFSではお手上げです。そのため私は、OSのあるCドライブはFAT32にしています。

OS Xでverboseモードで起動。

mac os xは、デフォルトでは起動プロセスを見ることができません。

そこで、command + v を押しながら起動するとverboseモードという起動プロセスの見ることのできるモードで起動できます。

また、verboseモードでの起動をデフォルトとするには

$ sudo nvram boot-args="-v"

と入力します。

また、元の起動モードに戻したいときは

sudo nvram boot-args=""

とします。

shutdownコマンドのオプションについて

Rで終了するまでに数時間かかるループを書いて、寝るときは、コンピュータが自動的にシャットだうんしてもらう必要があります。

そこで、shutdownコマンドにオプションをつけて実行してみます。


3時間後にシステムを終了する。
$ sudo shutdown -h +180

uniqコマンドを用いて重複した行の数をカウントする。

たとえば以下のようなファイルがあったとします(マイクロアレイなどのデータを想定しています)


$ cat example.txt
aaa
bbb
aaa
ccc
ddd
ccc
eee
fff
ggg
aaa


このファイルの中の重複行をカウントしたいと思います。
それには、sortコマンドでソートをかけたあとに、uniqコマンドにオプション-cを与えて実行します。すると以下のようになります。


$ sort example.txt | uniq -c
3 aaa
1 bbb
2 ccc
1 ddd
1 eee
1 fff
1 ggg


これはなかなか楽しめますね(^^)

Rのappend=Tの意味

appendというのは日本語で、「追加する」といったような意味です。

今まで、いろんな関数の引数であまり考えずに使ってきましたが、append=Tと明示して挙げると、

ファイルの内容を文字通りappendしてくれるわけです。

ですので、forループなんかをかけていて、毎回の計算結果を一つのファイルに出力したいときは、append=Tをつけてやればいいわけですね。

append=Tを使った簡単な例を一つ紹介します。


Rの起動
$ R

#Hello,worldを100回言わせるプログラム。ただし、毎回HELLO.txtというファイルに出力する。

for (i in 1:100){
cat("Hello, world!!¥n",file="HELLO.txt", append=T);
}


q()

$ cat HELLO.txt

Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
Hello, World!!
〜以下省略〜

これは結構使えそうですね。

Rを用いてHello, world!!

プログラミングをはじめて初めてに行うのが、hello,worldを画面に表示させることですね。

今回は、Rにおいてこれをやってみます。

#Rの起動
$ R

#Hello,world!の表示
> cat("Hello, world!!|n");
Hello, world!!
>

こんな感じです。

これをあらかじめソースコードを作成して行ってみます。

ソースコードの作成
$ vim hello.R

a


cat("Hello, world!!¥n");


:wq


#Rの起動
$ R

#ソースコードを読み込む
> source("./hello.R")
Hello, world

>

Rを用いてHello, world!!

プログラミングをはじめて初めてに行うのが、hello,worldを画面に表示させることですね。

今回は、Rにおいてこれをやってみます。

#Rの起動
$ R

#Hello,world!の表示
> cat("Hello, world!!|n");
Hello, world!!
>

こんな感じです。

これをあらかじめソースコードを作成して行ってみます。

ソースコードの作成
$ vim hello.R

a


cat("Hello, world!!¥n");


:wq


#Rの起動
$ R

#ソースコードを読み込む
> source("./hello.R")
Hello, world

>

Windows環境におけるおすすめPDFビュアー

最近、論文を読むのにいちいち紙に印刷しているのがめんどくさくなってきました。

そこで、PDFファイルにキーボードを用いてメモや下線を引きながら文書をよむことのできるソフトがないかと思って探したらありました(^^)

下のソフトです。

Foxit J-Reader Plus 5.0

Rのバッチ処理

R CMD BATCH [options] infile [outfile].

です。

例えば、

$ R CMD BATCH --save infile.txt outfile.txt

のような具合です。

--saveは、プログラム終了時にヒストリーとオブジェクトを保存するオプションです。

Rの起動オプション

Rの起動時のオプションの種類を検索するには、R --helpとします。



$ R --help


Usage: R [options] [< infile] [> outfile]
or: R CMD command [arguments]

Start R, a system for statistical computation and graphics, with the
specified options, or invoke an R tool via the 'R CMD' interface.

Options:
-h, --help Print short help message and exit
--version Print version info and exit
--encoding=ENC Specify encoding to be used for stdin
--encoding ENC
RHOME Print path to R home directory and exit
--save Do save workspace at the end of the session
--no-save Don't save it
--no-environ Don't read the site and user environment files
--no-site-file Don't read the site-wide Rprofile
--no-init-file Don't read the user R profile
--restore Do restore previously saved objects at startup
--no-restore-data Don't restore previously saved objects
--no-restore-history Don't restore the R history file
--no-restore Don't restore anything
--vanilla Combine --no-save, --no-restore, --no-site-file,
--no-init-file and --no-environ
--no-readline Don't use readline for command-line editing
--min-vsize=N Set vector heap min to N bytes; '4M' = 4 MegaB
--max-vsize=N Set vector heap max to N bytes;
--min-nsize=N Set min number of cons cells to N
--max-nsize=N Set max number of cons cells to N
--max-ppsize=N Set max size of protect stack to N
-q, --quiet Don't print startup message
--silent Same as --quiet
--slave Make R run as quietly as possible
--interactive Force an interactive session
--verbose Print more information about progress
-d, --debugger=NAME Run R through debugger NAME
--debugger-args=ARGS Pass ARGS as arguments to the debugger
-g, --gui=TYPE Use TYPE as GUI; possible values are 'X11'
(default) and 'Tk'.
--arch=NAME Specify a sub-architecture
--args Skip the rest of the command line
-f, --file=FILE Take input from 'FILE'
-e EXPR Execute 'EXPR' and exit

Commands:
BATCH Run R in batch mode
COMPILE Compile files for use with R
SHLIB Build shared library for dynamic loading
INSTALL Install add-on packages
REMOVE Remove add-on packages
build Build add-on packages
check Check add-on packages
LINK Front-end for creating executable programs
Rprof Post-process R profiling files
Rdconv Convert Rd format to various other formats
Rd2dvi Convert Rd format to DVI
Rd2pdf Convert Rd format to PDF
Rd2txt Convert Rd format to pretty text
Sd2Rd Convert S documentation to Rd format
Stangle Extract S/R code from Sweave documentation
Sweave Process Sweave documentation
Rdiff Diff R output ignoring headers etc
config Obtain configuration information about R
javareconf Update the Java configuration variables
rtags Create Emacs-style tag files from C, R, and Rd files

Please use 'R CMD command --help' to obtain further information about
the usage of 'command'.

Report bugs to .
kon-tetsuo-no-MacBook:~ kappa$ R --help | less

--min-nsize=N Set min number of cons cells to N
--max-nsize=N Set max number of cons cells to N
--max-ppsize=N Set max size of protect stack to N
-q, --quiet Don't print startup message
--silent Same as --quiet
--slave Make R run as quietly as possible
--interactive Force an interactive session
--verbose Print more information about progress
-d, --debugger=NAME Run R through debugger NAME
--debugger-args=ARGS Pass ARGS as arguments to the debugger
-g, --gui=TYPE Use TYPE as GUI; possible values are 'X11'
(default) and 'Tk'.
--arch=NAME Specify a sub-architecture
--args Skip the rest of the command line
-f, --file=FILE Take input from 'FILE'
-e EXPR Execute 'EXPR' and exit

Commands:
BATCH Run R in batch mode
COMPILE Compile files for use with R
SHLIB Build shared library for dynamic loading
INSTALL Install add-on packages
REMOVE Remove add-on packages
build Build add-on packages
check Check add-on packages
LINK Front-end for creating executable programs
Rprof Post-process R profiling files
Rdconv Convert Rd format to various other formats
Rd2dvi Convert Rd format to DVI
Rd2pdf Convert Rd format to PDF
Rd2txt Convert Rd format to pretty text
Sd2Rd Convert S documentation to Rd format
Stangle Extract S/R code from Sweave documentation
Sweave Process Sweave documentation
Rdiff Diff R output ignoring headers etc
config Obtain configuration information about R
javareconf Update the Java configuration variables
rtags Create Emacs-style tag files from C, R, and Rd files

initコマンドによるランレベルの変更

Debian系においてランレベルは


0 : システムの停止
1 : シングルユーザーモード
2 : デフォルトモード
5 : システム起動

例えば、haltやshutdown -r now
のコマンドを使わずに、ランレベルを0に変更する方法は、以下のようになります。


ルートユーザへの昇格
$ su

ランレベルの確認
# runlevel
N 2

ランレベルを0に変更して、システムを終了する。
# init 0

Rを一時停止させて、再度Rを起動する。

Rを使っているときにちょっとディレクトリ操作をしたいときに、Rをいちいちやめてしまうのは面倒である。
新しいシェルを起動するのも面倒。

そんなときは、Control + z
で一時停止すればよい。

再起動は

$ fg #forward groundの略

これでもとに戻れます。

Control + K UNIXショートカット

Control + k

をシェルで用いると、

カーソルよりも後の文字が全部消すことができあます。すごく便利。

ほかにも以下のショートカットが使えます。

Control + p 一つ前の履歴

Control + n 一つ後の履歴

Control + a カーソルを文頭に移動

Control + e カーソルを文末に移動

Control + h バックスペースと同等

Control + d でリートします。

Rでヒストグラムを作成。区切りを調整して。

histですぐにつくれます。

さらに区切りを自分で指定してヒストグラムを描写するには、以下のように行う。

hist(オブジェクト,breaks=seq(start,stop,区切り))

このときstart:stopは最小値から最大値の区間を内側に含む必要があります。

さらに、xlimを追加すると、見たい範囲にフォーカスしてみることができます。

hist(オブジェクト,breaks=seq(start,stop,区切り),xlim=c(a,b))

シェルスクリプトで簡単な計算をする^^

手元で簡単な計算をするときは、exprを使うとすごく便利です。

かけ算や括弧を使うときは記号の前にバックススラッシュ¥をいれなくてはいけないのが難点ですね。

$ expr 3 + 3
6

$ expr 6 / 3
2

$ expr 4 \* 5
20

$ expr \( 4 + 8 \) \* 6
72

ヒストグラムをマージする。

> a
[1] 3.6733549 2.0964979 3.0578191 3.3848866 2.2321731 1.5372021 3.2570364
[8] 3.0096714 2.0811907 3.0736826 2.9830515 1.9655211 1.6236944 0.5570966
[15] 3.8051724 3.7394164 1.6979833 2.5249300 2.1315488 2.8377696 2.6262853
[22] 1.6636081 2.4337812 4.3043109 0.6420680 2.9023796 3.4974585 2.1955692
[29] 2.7694304 3.4286484 4.5740029 3.0867829 3.5141311 4.2614741 3.4994524
[36] 4.4216530 1.9077288 3.9496659 1.2188855 3.2530465 3.8250476 2.5062853
[43] 1.3137912 3.8042755 2.5910803 4.0694347 1.7310610 2.5695329 0.7099829
[50] 2.7493290 2.5259095 2.5362651 1.6126841 5.0531126 3.2696924 2.2706000
[57] 2.7724084 3.0419279 2.9403198 3.8163018 3.2626065 3.8119257 1.8410985
[64] 2.9244953 2.9789564 1.5516710 3.0739347 2.6266789 3.7997618 3.4434447
[71] 3.2613312 2.8807292 4.0660146 2.2689740 3.0968824 2.2202709 4.6028309
[78] 2.3118259 1.1906384 5.0521038 3.2620226 1.5232411 2.7185332 2.6115882
[85] 3.7125138 2.4887761 2.5080909 2.8311246 2.2069350 3.8966891 2.8455420
[92] 3.6973981 1.8070504 1.9947025 4.4664127 2.0546780 3.4273880 1.7457909
[99] 1.4936952 3.8016075
> b
[1] -4.134144 -3.306181 -4.054554 -3.946141 -4.192023 -2.712701 -3.464084
[8] -4.896416 -2.205163 -2.939116 -3.159373 -2.199980 -2.507629 -2.221705
[15] -1.606201 -1.115522 -2.872009 -2.150897 -3.812835 -2.492953 -1.694000
[22] -1.478684 -3.806212 -2.799230 -3.005081 -3.773754 -1.582478 -4.036486
[29] -4.246356 -2.162980 -2.255924 -4.195940 -3.897398 -1.690358 -1.854960
[36] -3.604445 -3.505798 -1.551523 -4.411737 -3.553468 -1.490395 -2.852557
[43] -1.864107 -2.773118 -3.719723 -3.776232 -2.632725 -1.164422 -4.968988
[50] -2.241084 -1.706101 -2.205303 -3.946153 -3.145719 -3.209761 -2.703878
[57] -2.904665 -4.341992 -3.728479 -2.759898 -2.193844 -1.475450 -3.278501
[64] -2.812560 -2.894497 -1.898953 -4.899581 -2.649229 -3.229953 -2.713525
[71] -1.392737 -3.047104 -3.758222 -2.624436 -5.149499 -4.368148 -1.329522
[78] -2.484047 -4.539421 -3.385670 -3.045505 -4.533926 -3.210328 -1.879037
[85] -3.324745 -3.075046 -4.099899 -1.614997 -3.089391 -2.219660 -3.098115
[92] -1.604445 -2.464664 -2.617909 -1.781988 -3.817595 -4.564343 -4.926086
[99] -3.179107 -3.962524

> png("merge.png")

> #axeは軸を入れるかどうかのオプション。最初のヒストグラムにはいれない。ただし、表示領域を固定しておくこと。でないと、次のヒストグラムとずれてします。
> hist(a, ann=T,axe=F,xlim=c(-10,10),ylim=c(0,20),col="red",density=5)

> #これでマージしてくれます。
> par(new=T)

#今度は座標情報を入れます。
> hist(b, ann=T,axe=T,xlim=c(-10,10),ylim=c(0,20),col="green",density=5)
> dev.off()

R:ヒストグラムのx軸、y軸の範囲を指定する。

ヒストグラムや箱ひげ図を書いた時に、プロットの存在する全領域(はずれ値も含む)が見えるように表示されるため、しばしば困ることがあります。そこで、以下のようにします。

> hist(object, xlim=c(a,b), ylim=c(c,d))

これでおっけいです(^^)

医学用語の変換が一発でいくようにする!!

ライフサイエンス辞書プロフェクとのデータベースをダウンロードすることが可能です!!

以下のサイトより、ことえり用かな漢字変換辞典をダウンロードしてきて、付属のPDFに書いてある操作をGUIで行えば完成です!!

PDFに書いてあるように、「扁桃体」などの単語が一発で変換できるのはかなりありがたいです。レポート作成に大活躍!!

macでシェルからofficeやhtmlファイルを開く。

Linuxの場合は、いちいち

$ choromium-browser foo.html &
$ openoffice.org foo.docx &

みたいな感じで、プログラムを明示してやる必要がありましたが、
Macの場合は、その必要はなく

$ open filename

ですべて解決します。
webブラウザであろうと、microsoftofficeであろうと何でも開くことができます。すばらしい!!!

blastallのめも

blastall -i query -d nr -o blast.out

http://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=BlastDocs&DOC_TYPE=ProgSelectionGuide

Rで、共通した要素を抜き出す。

二つのベクトルがあったとき

それらに共通した要素を抜き出す方法を二つ紹介します。

> x <- c(1:10) > y <- c(3:5) > x
[1] 1 2 3 4 5 6 7 8 9 10
> y
[1] 3 4 5
> a <- x[x%in%y] > a
[1] 3 4 5
> z <- c(4,6,13,49) > b <- intersect(x,z) > b
[1] 4 6

Mac OS Xで作成したファイルの改行コードをUnix用に変換するワンライナー

$ tr '\r' '\n' < mac.txt > unix.txt

Macのソフトウェア.アップデートのフリーズの対処方法

題名の通りです。

Mac OS X 10.6.2を入れた状態でソフトウェアをアップデートしようとすると

フリーズしてしまいます。

そこで

$ rm ~/Library/Cachescom.apple.SoftwareUpdate

でひとつのファイルを消します。

すると問題は解消されます。

パス(PATH)の設定について考察する

シェルの初期設定ファイルはカレントディレクとドットファイルとして置いてあります。
これには二つの種類があります。
bashの場合、~/.bashrc(シェルを起動する度に読み込まれる)と~/.profile(ユーザーにログインする時に一度だけ読み込まれる)の2種類があります。
これらの設定ファイルには、コマンドパスやaliasの設定内容を記述します。
今回は、パスの設定について書こうと思います。
ホームディレクトリにbinディレクトリを作成して、そこにパスを通し、さらには実行ファイルを中に入れて実行してみます。
#まずは、パスを確認(PATHという変数を$をつけることで展開する)
$ echo $PATH
/home/kappa/bin:/usr/lib/libfm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

#ホームディレクトリにbinディレクトリを作る
$ mkdir ~/bin

#.profileに設定を追加する(リダイレクトを用いて、ファイルの末尾にechoの出力を追加する)
#もともとのPATHは/home/kappa/bin:/home/kappa/bin:/usr/lib/libfm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
#HOMEは、/home/kappa(echo $HOMEで確認可能)
#結局、もともとのPATHの内容の頭に$HOME/bin:すなわち、/home/kappa/bin:という文字列を追記して、PATH自体を上書きしてやればよいのである。
echo 'PATH=$HOME/bin:$PATH' >> .profile

#設定を反映させる。
$ source .profile

#PATHの内容を確認
$ echo $PATH
/home/kappa/bin:/home/kappa/bin:/usr/lib/libfm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

#例えば、perlでhello,worldプログラムを書いて、実行権限を与えて、~/binディレクトリ置いてみる。
$ cat > hello.pl
#/usr/bin/perl
print "Hello, world!!\n";
exit;
(Control + D)

$ chmod +x hello.pl
$ mv hello.pl ~/bin

#~/binのフィルはパスを指定せずに、プログラム名で実行できるようになっている。
$ hello.pl

#このように~/binに様々な言語のhello,worldを置いておいたら、
#hello(tabキー)とするだけで、いろんな言語の挨拶ができる。
#海外旅行には便利かも(?)
ホームディレクトリにパスの通ったディレクトリ(~/bin)を作成することは、プログラムのインストールにおいて極めて便利である。
アプリケーションのインストールにルート権限が必要だという認識は厳密には間違いである。
ソースコードからコンパイルしてソフトウェアをインストールするとき、(./configure, make)でプログラム自体はバイナリファイルとして実行可能な形式で生成します。
ルート権限になるのはmake installとするときに必要だと思います。
これは、ルートユーザしかアクセスのできないディレクトリ(/usr/local/sbin/,/sbin等)にこれらの実行ファイルをコピーするからなのです。
これらのディレクトリは、すべてのユーザーのシェルのコマンドパスが通っているため、みんなが共通して使用可能なプログラムとなります。
だから、ルート権限が必要なのです。
しかし、一個人ユーザーとしてバイナリファイルをパスを通ったディレクトリに置いて実行したいときは、ただ単に自分が作ったディレクトリ(今回ならば、~/binにパスを通し、そこにバイナリファイルを置いておけば良いだけなのです。
ですので、厳密にはプログラムのインストールにはルート権限が必要ではないと言えます。
このことを知っておけば、スパコンを使用するときでも、自分がアクセスできる範囲内でアプリケーションをインストールして使用することができるのです。

awkの基本。行列データをいじりたおす。

トップページ > bash > Rで作成した行列データをいじりたおす
Rで作成した行列データをいじりたおす - bash

DNAマイクロアレイにしても次世代シークエンサーにしても、タブ区切りテキストをいじり倒すのがとても重要です
最近のデータはもはや、ECELで開けない量のデータが出てきています。そうでなくても、ECELでいちいちデータいじるのもしんどいですし。。

#Rの起動
$R

#各実験データ(wild type 1,2 vs mutant 1,2)のオブジェクトを生成する。
#オミックスデータの場合、要素数は万のオーダであることに注意。
wt1 <- rnorm(10,sd=5,mean=10) wt2 <- rnorm(10,sd=5,mean=10) mt1 <- rnorm(10,sd=5,mean=10) mt2 <- rnorm(10,sd=5,mean=10) #4つのオブジェクトを列方向で結合させて、ひとつのマトリックスオブジェクトを生成する。 data <- cbind(wt1,wt2,mt1,mt2) #matrixからデータフレームに変換する。 data <- as.data.matrix(data) #geneIDを格納したオブジェクトを生成する。 geneID <- c("gene1","gene2","gene3","gene4","gene5","gene6","gene7","gene8","gene9","gene10") #geneIDとdataを結合させる。(geneIDすなわち行番号をcolnames(data)に組み入れず、意図的に列として扱うことで、シェルでも扱いやすくなる。) data <- as.data.frame(geneID,data) #表示してみる data geneID wt1 wt2 mt1 mt2 1 gene1 5.3540485 10.1280394 14.617105 6.858430 2 gene2 11.5216158 14.5030568 7.085197 13.102492 3 gene3 13.7710811 7.3251649 13.330784 10.927682 4 gene4 13.6855603 12.9628329 11.214203 8.208379 5 gene5 5.8908762 2.8704293 3.867760 13.401720 6 gene6 10.4802003 12.9800204 3.919811 13.068045 7 gene7 4.9378381 18.3811396 6.663597 8.449231 8 gene8 14.3298039 1.3903394 10.880709 10.668398 9 gene9 13.7565999 0.8564426 7.720071 7.457218 10 gene10 0.6470612 6.1940915 15.617938 18.897270 #タブ区切りテキストとして書き出す。row.names=Fであることに注意。 write.table(data, file="data.txt", append=F, quote=F, sep="\t",row.names=F, col.names=T) #Rの終了 q() #catコマンドでファイルの内容をざっと眺める。 $ cat data.txt geneID wt1 wt2 mt1 mt2 gene1 5.35404848886385 10.1280394156775 14.6171048972252 6.85843001971764 gene2 11.5216157754471 14.5030567924109 7.08519743930237 13.1024919832259 gene3 13.7710811043585 7.32516494384991 13.330783789993 10.9276822183253 gene4 13.685560287049 12.9628329089167 11.2142032367318 8.20837940027492 gene5 5.8908761625754 2.87042929983391 3.86776035487622 13.4017204451707 gene6 10.4802002976654 12.9800203785410 3.91981136037804 13.0680452237444 gene7 4.93783813414918 18.3811395889717 6.66359654696842 8.44923140218957 gene8 14.3298038985442 1.39033944308932 10.8807085354603 10.6683978986145 gene9 13.7565999427345 0.856442626818601 7.72007073640271 7.4572175263714 gene10 0.647061248986092 6.1940915115274 15.6179381871434 18.8972700901370 #tailコマンドにより、ヘッダー(このファイルならば一行目)を飛ばして、2行目より最終行まで表示 $ tail -n +2 data.txt gene1 5.35404848886385 10.1280394156775 14.6171048972252 6.85843001971764 gene2 11.5216157754471 14.5030567924109 7.08519743930237 13.1024919832259 gene3 13.7710811043585 7.32516494384991 13.330783789993 10.9276822183253 gene4 13.685560287049 12.9628329089167 11.2142032367318 8.20837940027492 gene5 5.8908761625754 2.87042929983391 3.86776035487622 13.4017204451707 gene6 10.4802002976654 12.9800203785410 3.91981136037804 13.0680452237444 gene7 4.93783813414918 18.3811395889717 6.66359654696842 8.44923140218957 gene8 14.3298038985442 1.39033944308932 10.8807085354603 10.6683978986145 gene9 13.7565999427345 0.856442626818601 7.72007073640271 7.4572175263714 gene10 0.647061248986092 6.1940915115274 15.6179381871434 18.8972700901370 #2列目(wt1)の合計値を計算してみる。 tail -n +2 data.txt | awk '{sum+=$2} END{print sum}' 94.3747 #2列目(wt1)の行数をカウントする。 $ tail -n +2 data.txt | awk '{ln++} END{print ln}' 10 #2列目(wt1)の平均値を求める。 $ tail -n +2 data.txt | awk '{sum+=$2 ; ln++} END{print sum/ln}' 9.43747 #各行の平均値を求める。 $ tail -n +2 data.txt | awk '{print ($2+$3+$4+$5)/4}' 9.23941 11.5531 11.3387 11.5177 6.5077 10.112 9.60795 9.31731 7.44758 10.3391 #各行においてFold Change(mt/wt)を求める(結果はリダイレクトによりファイルに書き出す。) $ tail -n +2 data.txt | awk '{print ($4+$5)/($2+$3)}' > fc.txt
1.38712
0.775713
1.14989
0.728846
1.97111
0.724113
0.648091
1.3708
1.03861
5.04523

#Fold Changeの列用のヘッダーを記入したファイルを用意する。
echo 'Fold Change(mt/wt)' > header.txt

#結合(concatenate)させる。
$ cat header.txt fc.txt > fold_change.txt
$ less fold_change.txt
Fold Change(mt/wt)
1.38712
0.775713
1.14989
0.728846
1.97111
0.724113
0.648091
1.3708
1.03861
5.04523

#もとのデータファイル(data.txt)とFC計算値の格納したファイル(fold_change.txt)を横方向に結合(pasteコマンド)
$ paste data.txt fold_change.txt > output.txt

$ cat output.txt
geneID wt1 wt2 mt1 mt2 Fold Change(mt/wt)
gene1 5.35404848886385 10.1280394156775 14.6171048972252 6.85843001971764 1.38712
gene2 11.5216157754471 14.5030567924109 7.08519743930237 13.1024919832259 0.775713
gene3 13.7710811043585 7.32516494384991 13.330783789993 10.9276822183253 1.14989
gene4 13.685560287049 12.9628329089167 11.2142032367318 8.20837940027492 0.728846
gene5 5.8908761625754 2.87042929983391 3.86776035487622 13.4017204451707 1.97111
gene6 10.4802002976654 12.9800203785410 3.91981136037804 13.0680452237444 0.724113
gene7 4.93783813414918 18.3811395889717 6.66359654696842 8.44923140218957 0.648091
gene8 14.3298038985442 1.39033944308932 10.8807085354603 10.6683978986145 1.3708
gene9 13.7565999427345 0.856442626818601 7.72007073640271 7.4572175263714 1.03861
gene10 0.647061248986092 6.1940915115274 15.6179381871434 18.8972700901370 5.04523

#発現量の変化(Fod Change)の大きい遺伝子の順にソートをかける。
$ sort -k 6,6 -n -r output.txt
gene10 0.647061248986092 6.1940915115274 15.6179381871434 18.8972700901370 5.04523
gene5 5.8908761625754 2.87042929983391 3.86776035487622 13.4017204451707 1.97111
gene1 5.35404848886385 10.1280394156775 14.6171048972252 6.85843001971764 1.38712
gene8 14.3298038985442 1.39033944308932 10.8807085354603 10.6683978986145 1.3708
gene3 13.7710811043585 7.32516494384991 13.330783789993 10.9276822183253 1.14989
gene9 13.7565999427345 0.856442626818601 7.72007073640271 7.4572175263714 1.03861
gene2 11.5216157754471 14.5030567924109 7.08519743930237 13.1024919832259 0.775713
gene4 13.685560287049 12.9628329089167 11.2142032367318 8.20837940027492 0.728846
gene6 10.4802002976654 12.9800203785410 3.91981136037804 13.0680452237444 0.724113
gene7 4.93783813414918 18.3811395889717 6.66359654696842 8.44923140218957 0.648091

#発現量が低下(Fold Change<1)の遺伝子だけを抽出し表示する。
$ awk '$6<1 {print $0} output.txt
gene2 11.5216157754471 14.5030567924109 7.08519743930237 13.1024919832259 0.775713
gene4 13.685560287049 12.9628329089167 11.2142032367318 8.20837940027492 0.728846
gene6 10.4802002976654 12.9800203785410 3.91981136037804 13.0680452237444 0.724113
gene7 4.93783813414918 18.3811395889717 6.66359654696842 8.44923140218957 0.648091

#ちなみに、タブ区切りテキストであるこのファイルをRで読み込むには、read.delim()を用いる。
$ R
output <- read.delim("output.txt")
#outputオブジェクトの内容確認。
output
geneID wt1 wt2 mt1 mt2 Fold.Change.mt.wt.
1 gene1 5.3540485 10.1280394 14.617105 6.858430 1.387120
2 gene2 11.5216158 14.5030568 7.085197 13.102492 0.775713
3 gene3 13.7710811 7.3251649 13.330784 10.927682 1.149890
4 gene4 13.6855603 12.9628329 11.214203 8.208379 0.728846
5 gene5 5.8908762 2.8704293 3.867760 13.401720 1.971110
6 gene6 10.4802003 12.9800204 3.919811 13.068045 0.724113
7 gene7 4.9378381 18.3811396 6.663597 8.449231 0.648091
8 gene8 14.3298039 1.3903394 10.880709 10.668398 1.370800
9 gene9 13.7565999 0.8564426 7.720071 7.457218 1.038610
10 gene10 0.6470612 6.1940915 15.617938 18.897270 5.045230

acerのネットブックのバックライトの調整

Acerのネットブック使っていて、バックライトの輝度が足りないと思ったら以下のコマンドを実行します。

Fn + -> or Fn + <-

macでターミナルから指定したディレクトリの内容をFinderで表示する

#カレントディレクトリをfinderで開く
$ open .

シェルでテキストファイル内容の部分表示(tail)

tail [-行数] [ファイル名]

によりファイルの内容を、先頭から数えて指定された行以降を出力する。


#先頭業を除去して指定された行以降を出力する。
$ tail +2 test.text

Chrome における便利なショートカット

できる限りマウスは使用したくないという変なこだわりに答えてくれるショートカットを集めました。

1 アドレスバー入力に一発で移動(?が入りますが)

Ctrl + e

2 新しいタブを作成

Ctrl + t

3 タブの間の移動

Ctrl + Tab

CでUnixのコマンドを呼び出す。

#include
#include

int main(void)
{
system("ls"); /* unixのlsコマンドを呼び出す。 */

return 0;
}

GNU Makeについてすこし勉強してみた。

cでコーディングしているときのお話。

ソースコードを分割するとき(プロトタイプ宣言を別のファイルに分けたりする)、コンパイルの順番を意識しなくてはいけない。

それをMakefileなるものに書き込むのである。

メモを以下に示します。

MakeをもちいてHello, worldを。

/* hello.c */

include

in t main(void)
{
printf("Hello, world!!\n");
return 0;
}

ここで、同一のディレクトリ内において以下の内容のファイルを作成


# Makefile
hello: hello.c
gcc -o hello hello.c

あとは、コマンドラインより

$ make
gcc -o hello hello.c

これで、helloという名の実行ファイルが生成されます。


もう少し、発展させます。

分割コンパイルの初歩です。


以下の二つのソースコードを作成します。

/* hello.c */
#include

int main(void)
{
printf("Hello, world!!\n");

aisatsu(); /* オリジナルの関数です */

return 0;
}


/* aisatsu.c */
#include

void aisatsu(void){
printf("Konnichiwa\n");
}



以下のようなメイクファイルを作る

#Makefile
hello: hello.c aisatsu.c
gcc -o hello hello.o aisatsu.o

hello.o: hello.c
gcc -c hello.c
aisatsu: aisatsu.c
gcc -c aisatsu.c

$ make

これでOK

Rで履歴の保存

よいしょ
$ R


a,b,cのオブジェクトをつくります


> a <- 1 > b <- 2 > c <- 3 生成したオブジェクトの確認 > ls()
[1] "a" "b" "c"


まずは、入力したコマンドの保存

の前に、

入力したコマンドの一覧

> history()

a <-1 a <-2 b <- 3 c<-3 ls() history() では、入力したコマンドの保存 > savehistory("test.txt")


ではでは、生成したオブジェクトの保存は save(オブジェクト名, file="a.Rdata")

だが、すべてのオブジェクトを保存するときには、

> save(list=ls(), file="test.Rdata")


です。

> q()




では、R
を立ち上げて


よいしょ

$ R

> ls()

character(0)

よし、わくわく。

オブジェクトをロードしてみます。

> load("test.Rdata")

> ls()

[1] "a" "b" "c"


完璧だ。

コンパイルの一連の流れ

gccのオプションをフル活用して、C言語のソースコードをコンパイルして実行ファイルを生成するまでの一連の流れについて書いてみます。


普段、何気なくhello,worldのコードをコンパイルするときは


$ gcc hello.c

$ ls
a.out hello.c

とやります。(-oをつけれれば実行ファイル名を指定できますが。。)

a.outは

「assembler output」

の略だそうです。

ではassemblerとは何なのでしょうか。このあたりをきちんと理解するためには、しっかりとコンパイルの流れを理解しなくてはいけないようです。

コンパイルの厳密な流れを追ってみます。

1:ソースファイルの作成

vimでもemacでも何でもいいので、テキストエディタでソースコードを編集します。



2:プリプロセサを用いて、/usr/include以下においてあるソースファイルにヘッダファイル(インクルードファイル)をインクルードする。

$ gcc -E hello.c > hello.i

これにより生成したhello.iはさまざまな関数の定義がインクルードされているため、900行近いコードとなっている。



3:コンパイラによって、プリプロセッサによってヘッダファイルをインクルードされた状態のソースコードをコンパイルして、アセンブラプログラムを生成する。アセンブラプログラムとは、機械語と1対1で対応した最も低級な言語のことを言う。狭義にコンパイルという場合、このアセンブルコードを生成する過程のことをコンパイルと呼ぶ。

$ gcc -S hello.i

これによりたった20行からなるアセンブラコードが生成するわけである。




4:アセンブラ言語で書かれたアセンブラコードをアセンブルして、機械語(オブジェクトファイル。まだ、実行ファイルとは呼べない。)に翻訳する。

$ gcc -c hello.s

これにより、オブジェクトファイルhello.oが生成される。



5:最後はオブジェクトファイル同士をリンクさせる必要がある。c言語は関数の塊である。インクルードファイルでインクルードされるのはあくまで関数の宣言のみであり、関数本体のオブジェクトファイルはlibc.aというオブジェクファイルの中に書いてある。4で生成したオブジェクトファルhello.oの中には、main関数は記述してあるが、printf()関数本体の記述がないため、libc.a内に書いてあるprintf()本体の機械語による記述をhello.oと”リンク”させてあげる必要がある。(#このように頻繁に使用する関数を標準関数とよび、結局最初からアセンブルされて機械語の形式でリンク待ちになっているわけですね。いちいちアセンブルするのは二度手間、三度手間、百度手間ですからね)

$ gcc hello.o

ちなみに、libc.aの置いてある場所は、
$ locate libc.a | grep libc.a
/usr/lib/i386-linux-gnu/libc.a
/usr/lib/i386-linux-gnu/xen/libc.a

である。


6:このような一連のプリプロセス、コンパイル、アセンブル、リンクの過程を経て生成したのが、a.outとう実行ファイルである。これを実行するには、フルパスで指定してあげればよく(カレントディレクトリのパスが通っていることはまずないだろうから)

$ /a.out
Hello, world!!


以上がソースコードから実行ファイルができるまでの一連の流れである。
この流れが理解できれば、分割コンパイルの仕組みも比較的容易に理解できると思う。




化学構造の描写

低分子化合物の化学構造を描写するソフトは世の中にあふれています。

その中でも、windows環境でお勧めなものを紹介します。


BKChem

Debianの環境なら

# apt-get install bkchem

でOK

起動は、

$ bkchem


でいけます。




テキストモードでログイン時の文字化けを直す(debian)

環境変数のLANGをC(英語モード)に変更すればいい



# export LANG=C

設定を固定したければ

/etc/environment
/etc/default/locale

のファイルに

LANG=C

とかくこと

CentOSの導入 ーその10ー

CentOSサーバに固定のプライベートIPを設定したら、外部のネットワークに接続できなくなるという現象に直面しました。

復旧に向けたチェック項目をメモしておきます。


まず、第一に、IPアドレスを静的に割り当てるには、以下のファイルをマニュアル設定する必要がある。

/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network
/etc/hosts
/etc/resolv.conf


○/etc/conf.confについて

DHCPで起動したときは、以下のような内容になっています。

# Generated by NetworkManager
nameserver yyy.yyy.yy.1

静的にIPを設定するときも、このときの値を使用すればよいです。(今回はルータのアドレス)

だから、たった一行だけ
nameserver yyy.yyy.yy.1

と書いておしまい。



○/etc/hostsについて

今現段階の認識では、自分(サーバーマシン)が他者(LAN内のクライアントPC)をどうやって認識するかについての設定ファイルだと思ってます。

ですので、これを設定すれば、前項で書いたように、他のクライアントにドメインネームやホストネームでリモートアクセスできるようになります。でも、今回はあまり関係が深くはないのではと思っています。



○/etc/sysconfig/network-scripts/ifcfg-eth0について

以下の項目が大切

DEVICE=eth0
BOOTPROTO=static
BROADCAST=yyy.yyy.yy.255
HWADDR=xx:xx:xx:xx:xx:xx
IPADDR=192.168.11.200
IPV6INIT=no
IPV6_AUTOCONF=no
NETMASK=255.255.255.0
NETWORK=yyy.yyy.yy.0
ONBOOT=yes
TYPE=Ethernet


○/etc/sysconfig/networkについて

このファイルのゲートウェイ設定はかなり大事
以下の3項目を書いておく

NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=yyy.yyy.yy.1


以上です。

各々の設定を変更する度に、

#/etc/rc.d/init.d/network restart

でネットワークを再構築すると変更内容が反映させる。


最後に、ゲートウェイの設定がうまくいっているかどうかを確認するために、以下のコマンドを実行します。

# /sbin/route -n

Destination Gateway Genmask Flags Metric Ref Use Iface
yyy.yyy.yy.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 yyy.yyy.yy.1 0.0.0.0 UG 0 0 0 eth0


これの三行目が表示されていれば設定は終了です。


実際に外部のサーバーと通信ができるかどうかテストしてみます。

# ping google.com

でいけます。

network is unrechable
とエラーが出ずに、きちんと交信が続くならば、設定成功です。

CentOSの導入 ーその9ー

今日は、サーバーマシーンに、「固定のプライベートIPアドレス」を当てて、さらにルータの方のポート番号も設定してみた。



1:
サーバマシンに固定のプライベートIPアドレスを当てる。

インストールの時はDHCPでインストールしたので、ルータとLANケーブルでつなげば、ネットにつながります。この状態で、

# ifconfig
Link encap:Ethernet HWaddr xx:xx:xx:xx:xx
inet addr:yyy.yyy.yy.3 Bcast:yyy.yyy.yy.255 Mask:255.255.255.0
(以下略)


となっていることが確認できます。

ここで、このマシンンを上記のように固定プライベートアドレスをyyy.yyy.yy.200に固定してみます。
それには、ただ単に/etc/sysconfig/network-scripts/ifcfg-eth0ファイルの内容を以下のように書き換えるだけです。

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static ここはもとはdhpcになっている
BROADCAST=yyy.yyy.yy.255
HWADDR=xx:xx:xx:xx:xx
IPADDR=yyy.yyy.yy.200
IPV6INIT=no
IPV6_AUTOCONF=no
NETMASK=255.255.255.0
NETWORK=yyy.yyy.yy.0
ONBOOT=yes
GATEWAY=yyy.yyy.yy.1


あとはネットワークの再起動をすればよいです。
# service network restart




2:
ルータの設定

ルータのDHCPサービスは変更せずに、応用設定で特定のプライベートアドレスに対して、ポート設定をします。


まずは、GATEWAY=yyy.yyy.yy.1だったので、これがルータの内向きIPアドレスであるので、
このLAN内の別のパソコンからchrome等のWebブラウザに

http://yyy.yyy.yy.1

と入力する。

すると、ルータに対する接続が成功し、ユーザ名とパスワードが要求される。(BaffaloのAirStationならば、デフォルトで管理者名がroot、パスワードは設定なしである)。これでログインに成功すると晴れて設定ができる。

#豆知識だが、BaffaloのAirStationの場合、
無線設定 -> AOSS -> 現在のセキュリティ情報 から「暗号化レベル」「SSID」「暗号化キー」の各項目がチェックできる。特に暗号化キーがわかれば、別に手元の無線LANパソコンにBaffaloのドライバが入っていなくても、無線ランをつなげることができるわけです!!!!!!!てっきり、baffaloの子機をかって、Windowsしか対応してないかの有名なドライバを付属CDでインストールしてしか方法がないと思ってました。だから、自宅ではLinuxの入ったパソコンでの無線lanをあきらめていました。しかし、これにより、無事無線lanの接続ができることとなりました。



AirStationならば

ネットワーク設定 -> アドレス変換 -> ポート変換テーブルの編集

で、2点の追加項目を書き加えて、新規ポートを設定する。

1 TCP/UDP ポート
任意のTCPポート 80 (TCPポートが80とういうのは80のポートをhttpのサービスに指定するということ)

2 LAN側Ipアドレス
手動設定 yyy.yyy.yy.200

最後に「新規追加」をクリックすれば、TCPポート80(httpサービス)のポートが設定されたことになる。

どうようの作業を


FTP 20
FTP 21
SSH 22



について行った。




以上の方法で、ローカルな内向きの設定(サーバ、ルータ)が終了した。





最後に設定が上手くいっていることを確認するために、sshコマンドをもちいて、他のクライアントPCからサーバにアクセスしてみる。


# ssh username@yyy.yyy.yy.200


パスワードを入力してログインできたらOK



WindowsマシーンでもSSHを利用したリモート接続しよう賭する場合は、PuTTYというアプリケーションをダウンロードしてくる必要があります。


実行ファイルが一つダウンロードされるだけなので、デスクトップ等アクセスしやすい場所におくか、Program fileのディレクトリにおいておいてリンクをつくることをおすすめします。

puttyを実際に開いたら、まず、translation(変換の意味)をクリックして、文字コードをUTF-8に設定してあげます。つぎに、左側のsessionをクリックして、Default Settingsをクリックして、右のsaveをクリックします。

最後に、hostnameをyyy.yyy.yy.20, portを22,接続タイプをSShにしてやって、Openをクリックするとシェルが起動して、LinuxサーバにWindowsクライアントからでもアクセスができます。


あとちなみに、

クライアントLinuxマシーンにおいて、
/etc/hostsファイルを下記のように設定すると、完全修飾ドメイイン名やホスト名でログインができるようになる。

/etc/hosts

# Do not remove the following lines, or arious progarams
# that require network functionality will fail.

yyy.yyy.yy.200 serverusername.localdomain serverusername


このようにyyy.yyy.yy.200にkappa.localdomainというドメイン名を割り当てた後に、

$ ssh serverusername@serverusername.localdomain

ないしは

$ ssh serverusername@serverusername


とすれば、アクセスできるようになる。

CentOSの導入 ーその8ー

SSHの設定をしてみました。

現段階では家のLANは一つのルータに複数のパソコンがダイナミックにプライベートIPアドレスが割り当てられている状態です。

いま、LANの中の二つのパソコン(一台はクライアント、他方はサーバマシン)を起動して、クライアントからサーバにリモートアクセスができるようにしてみます。


まずは、sshdの設定ファイルの中身を編集します。

# vim /etc/ssh/sshd_config


vimの / を用いた検索機能を用いて

1: 
#Protocol
Protocol 2

2:
#LoginGraceTime 2m
PermitRootLogin no


3:
#PermitEmptyPasswords no
PasswordAuthentication yes

4:
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
AllowUsers username


のように設定します。


次に、今現在のサーバーマシンのプライベートIPアドレスを調べます。

サーバーマシンで

# ifconfig

eth0 Link encap:Ehernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:yyy.yyy.yy.51 Bcast:yyy.yyy.yy.255 Mask:255.255.255.0
(以下省略)



それではクライアント側から接続してみる。

$ ssh username@yyy.yyy.yy.51


いろいろ警告がでるがyesと入力してEnterを押せば、ログインパスワードを求められる。これに答えればログインが可能になる。

なお、rootログインはできないようにしてあるので、
管理者になりたいときはsuコマンドで昇格する必要がある。

CentOSの導入 ーその7ー

不要なデーモンの停止

Linux初学者の身としてましては、わけもわからずデーモンをがんがん止めてしまうと、後々困ることが予想されるので、あまりデーモンは停止しません。

調べたメモだけ。
しかし、不要なデーモンを停止させることは、Unixのサービスの意味を調べる事にもなるのでスキルアップにも大変重要なことだと思う。さらに、不要なデーモンを停止させることはクラックな方達にバックドアを作らせないことにもなり、自ホストのセキュリティアップにも繋がる。このようなことから、ここではLinux起動時に立ち上がっているだろうサービスがどんな物かを説明して、必要か必要でないか。を判断出来るようにしたい。
# chkconfig プログラム名 off

起動中のデーモンのリストを調べるには、

# chkconfig --list

CentOSの導入 ーその6ー

各種開発環境をインストールしてみる。

yumによるパッケージ管理システムを利用する。

まずは、gropuinstallのリストを確認する。

# yum grouplist | less

そして、この中にある"Development Tool”のグループをインストールする。

# yum groupinstall "Development Tool"

CentOSの導入 ーその5ー

時計を設定します。

日本標準時プロジェクトのntpサーバのntp.nict.jpに同期させてみます。

# yum install -y ntp
# ntpdate ntp.nict.jp

時計を確認するには

# date

以上です。

CentOSの導入 ーその4ー

デスクトップ環境をGNOMEよりも軽量なKDEに変更する。

やはりGNOMEではロースペックなマシーンでは重すぎます。GUI操作が要求されたときに困りますのでここでKDEに変更しておきます。

まずはKDEデスクトップ環境に関係するプログラムの一括インストール

yum groupinstall "KDE (K Desktop Environment)"



次に設定ファイル /etc/sysconfig/desktopを編集する。
# vim /etc/sysconfig/desktop


デフォルトでは何も書いていないファイルだと思います。
それの一行目に、
DESKTOP="KDE"
と追加して終わりです。


X windowシステムを立ち上げてみるとKDEが立ち上がり、ちょっとした感動を覚えます。
# startx

CentOSの導入 ーその2ー

yumによるパッケージ管理の設定


# /etc/rc.d/init.d/yum-updatesd stop  yum-updatestは評判が悪いのでデーモンから外す。
# chkconfig yum-updatesd off

# yum -y update yumのパッケージをアップデート

# yum -y install yum-cron インストール済みのパッケージを自動更新してくれるyum-cronをインストール

# /etc/rc.d/init.d/yum-cron start yumm-cronを起動

# chkconfig yum-cron on yum-cronをデーモンとして常駐

# chkconfig --list デーモンのリストの表示


CentOSの導入 ーその3ー

ランレベルをデフォルトの5から3に変更をします

これによりデフォルトでCUIの起動が可能になります。

作業は簡単で

# vim /etc/inittab

id:5:initdefault:
の行を
id:3:initdefault:


とすればよい。

CentOSの導入 ーその1ー

憧れていた自宅サーバーをついに作ってみることにしました。

固定IPはお金がかかるので、ダイナミックDHCPでできる方法を模索していきます。

DHCPクライアント・ぷろぐらむ(dhclient)が動いていることを確認する

DHCPを利用している場合、OSが起動するときに、ネットワーク上に構築されたDHCPサーバーから自分が利用するネットワーク情報を受け取る。

psを使ってプロセスを取得するとともに、パイプを用いて、grepに投げて、"dhclient"を含む行を表示させる。

psの-efは、プロセスのプログラムをフルパスで表示させるオプション

# ps -ef | grep dhclient
root 2275 1 0 21:27 ? 00:00:00 /sbin/dhclient -1 -q -lf /var/lib/dhclient/dhclient-eth0.leases -pf /var/run/dhclient-eth0.pid eth0
root 3777 1 0 21:48 ? 00:00:00 dhclient
root 3945 3450 0 21:57 pts/0 00:00:00 grep dhclient

Cent OS 6.0 をテキストモードで起動する方法

1 まずは、パソコンの電源を入れてGUIで起動。

2 次に、シェルを開きます。

3 ルートユーザーになります。

$ su
xxxxxxxxx

#

4 設定ファイルの「/etc/inittab」の編集をします。

# vim /etc/inittab

5 id:5:initdefault:って書いてあるところをid:3:initdefault:と書き換える。5から3にするだけね。

6 :wqで書き換えた内容を保存してvimを終了したらOK!

7 コンピュータを再起動するだけ。

# shutdown -r now

あるいは、

# reboot


8 おそらくCUIで起動すると思います。

9 GUIが恋しくなったらstartxコマンドでGUIを起動してください。

$ startx

slaxで無線lan(wpa/wpa2)

slaxで無線lanにつなぐには、

Wireless Assistant 0.5.7



が最高です。

moduleのダウンロードページに依存関係にある

Slax Core 6.1.2
Slax KDE 6.1.2

の二つのパッケージのダウンロードへのリンクものっているんですごく便利です。

slaxにアプリケーションを追加する。

slaxにアプリケーションを追加するには、移動して、lzmファイルをとってきます。

それを、/mnt/hda2/slax/base/

に置くだけで完了します。

置いた瞬間からそのアプリケーションが使用可能になります。

addusrとusraddの違い

addusrは対話形式により懇切丁寧にユーザー情報の細部までもれなく設定できます。

一方、usraddの場合はただユーザーが新しく追加されるだけなので、ホームディレクトリをはじめとした様々な情報を手動で追加する必要があります。


現段階で、usraddで追加したユーザーは、x windowがうまく起動しません。おそらく何かの設定を追加しなくてはいけないのでしょう。

userの追加、パスワードの設定、ホームディレクトリの設定

# useradd hoge

# passwd hoge
xxxxxxxx

# mkdir /home/hoge

# usermod -d /home/hoge

fdiskの使い方の詳細 ー SLAX 6.1.2のインストールを例にして ー

##slaxをCDブートする。
##パソコンの内臓ハードディスクに対してfdiskによる処理を行う。
root@slax:~# fdisk /dev/hda

The number of cylinders for this disk is set to 7296.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p   ##パーティショニングする前の設定を表示

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0005fe81

Device Boot Start End Blocks Id System   
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 7296 58500697+ 82 Linux swap 

Command (m for help): d  ##パーティションの削除
Partition number (1-4): 1


Command (m for help): p

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0005fe81

Device Boot Start End Blocks Id System
/dev/hda2 14 7296 58500697+ 82 Linux swap

Command (m for help): d  ##パーティションの削除
Selected partition 2

Command (m for help): p
Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0005fe81

Device Boot Start End Blocks Id System

Command (m for help): n #swap領域のためのパーティションの作成
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-7296, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-7296, default 7296): +512M

Command (m for help): n #ext3ファイルシステム用のパーティションの作成
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (67-7296, default 67):67
Last cylinder, +cylinders or +size{K,M,G} (67-7296, default 7296):7296

Command (m for help): p

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0005fe81

Device Boot Start End Blocks Id System
/dev/hda1 1 66 530113+ 83 Linux
/dev/hda2 67 7296 58074975 83 Linux

Command (m for help): l #既定のパーティションIDを調べる。

0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris
1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 82 Linux swap c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT-
4 FAT16 <32m 40 Venix 80286 84 OS/2 hidden C: c7 Syrinx
5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data
6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT


Command (m for help): t  #/dev/hda1のパーティションIDを82に変更(Linux swap用)
Partition number (1-4): 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap)

Command (m for help): p

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0005fe81

Device Boot Start End Blocks Id System
/dev/hda1 1 66 530113+ 82 Linux swap
/dev/hda2 67 7296 58074975 83 Linux

Command (m for help): a  #/dev/hda2に1ブートフラグを立てる
Partition number (1-4): 2

Command (m for help): p

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0005fe81

Device Boot Start End Blocks Id System
/dev/hda1 1 66 530113+ 82 Linux swap
/dev/hda2 * 67 7296 58074975 83 Linux

Command (m for help): w   #/dev/hda全体にパーティションテーブルの内容を書き込んで終了。
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.


# shutdown -r now  ##再起動



# mkfs -t ext3 /dev/hda2   ##slaxのインストール先をext3でフォーマット

# mkswap  /dev/hda1  ##/dev/hda1をswap領域として確保

# swapon /dev/hda1  ##swap領域を有効化する。


##CDの内容をすべて/dev/hda2/にコピーする。ただし、/dev/hda2は、/mnt/hda2にマウントされていることに注意。
# cp -Rp /mnt/hdb/* /mnt/hda2/  

## liloinst.shを実行してslaxをインストール
# /mnt/hda2/boot/lioinst.sh

##PCをシャットダウン
# shutdown -h now



様々なoligonucleotideが縦に並んだファイルに対して、各々をblast形式にする。

題名がうまくつけられませんね(^^;)

awkの使い道を書いてみたかっただけ。

とにかくコードをみてください笑

$ vim test.txt

aaaaaaaaaaaaaaaaaaaaaaaaaa
ccccccccccccccccccccccccccccccccccc
gggggggggggggggggg
ttttttttttttttttttttttttt

#awkによる処理を行う。

$ awk '{print ">query" ++count; print$0;}' test.txt

>query1
aaaaaaaaaaaaaaaaaaaaaaaaaa
>query2
ccccccccccccccccccccccccccccccccccc
>query3
gggggggggggggggggg
>query4
ttttttttttttttttttttttttt

これはすこぶる便利だな。

ncbiのftpサーバーから種ごとのrefseqのmRNAを取ってくる、からのlocal blastのためのデータベース構築(not human)

#ncbiのftpサーバーにアクセスする
$ ftp ftp.ncbi.nlm.nih.gov

> cd ./refseq

> ls

dr-xr-xr-x   3 ftp      anonymous     4096 Mar 10  2008 B_taurus
dr-xr-xr-x   3 ftp      anonymous     4096 Feb 19  2004 D_rerio
-r--r--r--   1 ftp      anonymous    10585 Feb 28  2005 FTP_CHANGE_NOTICE
dr-xr-xr-x   5 ftp      anonymous     4096 Mar 13  2008 H_sapiens
dr-xr-xr-x   3 ftp      anonymous     4096 Apr 27  2007 LocusLink
dr-xr-xr-x   3 ftp      anonymous     4096 Dec 20  2001 M_musculus
-r--r--r--   1 ftp      anonymous     9692 Jun 11  2010 README
dr-xr-xr-x   3 ftp      anonymous     4096 Jun 23  2000 R_norvegicus
dr-xr-xr-x   3 ftp      anonymous     4096 Mar 10  2008 X_tropicalis
dr-xr-xr-x   3 ftp      anonymous    28672 Jul 29 06:19 daily
dr-xr-xr-x  17 ftp      anonymous     4096 Jul  8 13:18 release
dr-xr-xr-x   3 ftp      anonymous    86016 Jul 29 07:00 removed
dr-xr-xr-x   5 ftp      anonymous     8192 Jul 27 03:06 special_requests
dr-xr-xr-x   2 ftp      anonymous     4096 Oct  2  2007 uniprotkb
dr-xr-xr-x   3 ftp      anonymous    98304 Jul 28 05:58 wgs

> cd D_rerio

> ls

-r--r--r--   1 ftp      anonymous     2762 Mar 10  2008 README
dr-xr-xr-x   3 ftp      anonymous     4096 Jul 25 15:29 mRNA_Prot

> cd mRNA_Prot

dr-xr-xr-x   2 ftp      anonymous     4096 Jul 12  2007 tmpold            
-r--r--r--   1 ftp      anonymous  8947160 Jul 25 15:26 zebrafish.protein.faa.gz
-r--r--r--   1 ftp      anonymous 22553087 Jul 25 15:26 zebrafish.protein.gpff.gz
-r--r--r--   1 ftp      anonymous 18512295 Jul 25 15:26 zebrafish.rna.fna.gz
-r--r--r--   1 ftp      anonymous 53048114 Jul 25 15:26 zebrafish.rna.gbff.gz

> get zebrafish.rna.fna.gz

#ftpサーバーから抜ける
> exit

# .gzを解凍
$ gunzip zebrafish.rna.fna.gz

#解答したファイルの中身の確認

$ less zebrafish.rna.fna


>gi|68369925|ref|XM_696518.1| PREDICTED: Danio rerio si:rp71-1g13.2 (si:rp71-1g13.2), mRNA
ATGGACTCTTTTCAGAAAGAAATAGAGAAGTATGAAGTAGTGATAAGGTTTAAAGAAACAAACCAAGAAATTATAAAGAA
AGCAAACCCATTTGGGTTAACAACTAGCCTGGCAAATAAAATAGGACAGATAGAGTACGCAAAGATCCTTAATGATGGTA
ACCTACTAATAAGATGTGCTGACGCTGGGCAAATGGAAAAAGCCCTAAAAATTAAGGATGTGGTCAAATGTAAGGTGGAG
AATACAGCTAGGGTGGGAATGGGAAGGAAATGTGTAGCTAAAGGGGTGATCACAGGAGTATCATTAAGTATAACAGAAGA
AGAAATGAAAAAGAATATAAAAGGAGCAAAAGTAGTGAATGTTACAAGAATGAAAACAACTAGAGATGGAGAAGCTAAAG
ACAGTAAAACCGTGCTATTAGAATTCGATGAAGTGGTAGTGCCAAAGAAAGTATTTCTTGAATTTGTAAATTATCCAGTG
AGATTGTATGTACCAAAACCATTGAGGTGCTATAACTGCCAAAGATTTGACCACACAGCAAAAATCTGTAATAGGCAAAG
AAGGTGTGCAAGGTGTGGAGGGGATCATGATTACGAAAACTGTGGAGCAGGCGTTCAACCAAAATGTTGCAATTGCGGAG
GTGCTCACAATGTGGCATTCAGTGGATGTGAAGTCATGCAGAGGGAGACAAATATACAAAAGATAAGAGTGGAGAAAAAA
ATCACATACGCTGAAGCGGTTAAAGTGTCAAGAGAAAAGAAAACCAAAGAAAATGAAGTGGTTATGGATTCTCAACAGCA
AGACAATTCAGAGAAAATCTACGTCAAAAATAAAAGAACTAGTAACGTTTATAGCAGGTGTGATAAATAG
>gi|18859030|ref|NM_131477.1| Danio rerio major histocompatibility complex class II DEB gene (mhc2deb), mRNA
ATGTCTTTGCAAAACCTTTTTATTTTTCATCTCCTGTTGTTTCTATTTCCTGACGGGTATTATCACAGTAGGCTTACAAA
ATGCATCTTCCAGCTCCAGGATCTCAGTGACATAGGTGTTCATGATAATTATATCTTCAATAAAGATGTGTACATACGAT
TCAACAGCACTTTGGGGTACTTTGTTGGGTACACTGAACATGGAGTATATAATGCACAATTATGGAAGCAACGATACCAG
CTTCTCGAGCAAGAGAGAGCTCACGAGGATCGATTCTGCAAATACAATGCTGAGATTGACTACAACAACATTCTAGGAAA
AACAGTAAAACCACAGGTTAAGCTTAATTCAGTGAAGCAGGCTGGTGGCAGACAGCCAGCTGTGTTGGTGTGCAGTGCAT
ATGACTTCTATCCCAAAAGAATCAAAGTCACCTGGTTAAGAAATGGTAAACCAGTGACCACTGATGTAACCTCCACTGAG
GAGCTGGCTGATGGGGACTGGTACTACCAAATTCATTCCCACCTGGAATACACCCCCAAATCTGGAGAAAAGATTTCCTG
TATGGTGGATCATGCCAGCTCAACTGAACCCATCATCATAGCCTGGGATTCATCTCTCTCTGAGCCTGAGAGGAATAAAA
TTGCTATTGGAGCATCTGGTTTGGTGCTGGGAATCATCATTGCCACTGCTGGACTCATTTATTACAAGAAGAAATCATCA
GGTCAGTTTAAATAA
>gi|18859028|ref|NM_131706.1| Danio rerio major histocompatibility complex class II DCB gene (mhc2dcb), mRNA
ATGATTTTGTCTGCTTTATTGGAAAAAGTATGTGGAAATTACGGCTATCTTCAAAGTCAATGTCGAGTACTGAGCTCTAC
AAAGAAAGTTGAGCTCATCTTCTCATTCATCTTCAACAAGATTGAATACATTAGATACAACAGTACTGATCAGAAAATTG
TTGGCTACACTGAATTTGGAGAGAAATTTGTTGAAAACTATAAAAATAACACATTTGTGCTAGTCCTGGCTGAGTTTGGG
ATTTACAACTGCAAAAAAATTGCAAAGGCACTAATCTCTGATGGAATGCTGAATCATGTGACAGTGAAACCAGAAGTCAT
TATTCGGTCAGTTACTGAAGCTAAAGGCAATCAGAAAGCTGTCCTGGTGTGCAGTGAATATGACTTTTACCCCAAAGCCA
TTAAACTGACGTGGATGAGGAATGATAAAAGGGTTACAGCTGATGTGACGTCCATTGAGGAGATGGCTGATGGAGACTGG
TATTATCAGATTCACTCCCACCTGGAATATTTTCCTCAACCTGGAGAGAAGATCTCCTGTGTGGTGGATCATGCCAGCTT
CCATAAACCCATGATCTATTACTGGGATCCCTCTCTCCCCGAGACTGAAAGATCTAAGATCATTCTTGGGGCTGTGGGGC
TGCTGATGGGGATCTTTACAGCAGCTGCAGGAGTGATCTATTATAAAAGAAATCAAACAGGTTAG
>gi|18858320|ref|NM_131670.1| Danio rerio ATPase, Na+/K+ transporting, beta 3b polypeptide (atp1b3b), mRNA
TGGCAAGCCCGAGCCGACGCTTTCTTTGATTTGTCCTCATCCATCGCTCTCAAACTGGTTTATCTATCCTCTCCACACTA
TGGCCAACAAAGAGGAGAAAGCTGACGAGAAGCAGTCGAGTTGGAAAGATTTTATCTACAACCCGCGGACAGGGGAATTC
ATCGGGCGCACGGCGAGCAGTTGGGCTCTTATATTCCTCTTTTATTTGGTCTTCTATGGCTTTCTGGCGGGAATGTTCAC
GCTTACCATGTGGGTGATGCTACAGACACTGGATGACCATACTCCCAAATACAGGGACCGAGTGGCCAATCCAGGGCTGA
TGATCAGACCAAGGTCCTTGGATATTGCATTTAACCGGTCTATTCCTCAGCAATACAGCAAGTATGTGCAGCATCTGGAG


#################以下、永遠と続く######################


#blastのインストール
$ sudo apt-get install blast

#blast用データベースの構築
$ formatdb -p F -i zebrafish.rna.fna  -n zebrafish

$ ls
formatdb.log  zebrafish.nhr  zebrafish.nin  zebrafish.nsq  zebrafish.rna.fna


それでは,current directoryにpositive control としてtp53のfasta形式のmRNA配列情報をtp53.fastaと名前をつけて置きます。ファイルの中身の一行目の遺伝子情報は、何か適当な文に書き換えて置きます。

いよいよblastの実行です。

$ blastall -p blastn -i tp53.fasta  -d zebrafish -e 1e-90  | less

最後に結果の一部を掲載しておきます。


###############ここから###########################
BLASTN 2.2.21 [Jun-14-2009]


Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer,
Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997),
"Gapped BLAST and PSI-BLAST: a new generation of protein database search
programs",  Nucleic Acids Res. 25:3389-3402.

Query= test
         (2105 letters)

Database: zebrafish
           28,321 sequences; 57,848,304 total letters

Searching..................................................done



                                                                 Score    E
Sequences producing significant alignments:                      (bits) Value

gi|18859502|ref|NM_131327.1| Danio rerio tumor protein p53 (tp53...  2218   0.0 

>gi|18859502|ref|NM_131327.1| Danio rerio tumor protein p53 (tp53),
            mRNA
          Length = 2105

 Score = 2218 bits (1119), Expect = 0.0
 Identities = 1173/1200 (97%)
 Strand = Plus / Plus

                                                                       
Query: 1    gtttagtggagaggaggtcggcaaaatcaattcttgcaaagcaatggcgcaaaacgacag 60
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct: 1    gtttagtggagaggaggtcggcaaaatcaattcttgcaaagcaatggcgcaaaacgacag 60

                                                                       
Query: 61   ccaagagttcgcggagctctgggagaagaatttgattattcagcccccaggtggtggctc 120
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct: 61   ccaagagttcgcggagctctgggagaagaatttgattattcagcccccaggtggtggctc 120

                                                                       
Query: 121  ttgctgggacatcattaatgatgaggagtacttgccgggatcgtttgaccccaannnnnn 180


##################以下続く##########################

sanger instituteからgenome assemblyをとってくる

zebrafishのgenome assembly(zv9)を取ってこようと思う。

ftpサーバーにログインするにはlftpにftpサーバーのアドレスを与えれればよい。

$ lftp ftp.ensembl.org

#ftpサーバーのdirectoryの変更

> cd /pub/assembly/zebrafish/Zv9release

#ftpサーバー上のファイルの確認


> ls


-rw-r--r--   1 ftpuser  ftpusers       1014 Jul 22  2010 README
-rw-r--r--   1 ftpuser  ftpusers     788610 Jul 22  2010 Zv9_chr.agp.gz
-rw-r--r--   1 ftpuser  ftpusers  451494537 Jul 22  2010 Zv9_contigs.fa.gz
-rw-r--r--   1 ftpuser  ftpusers     843475 Jul 22  2010 Zv9_scaffold.agp.gz
-rw-r--r--   1 ftpuser  ftpusers  421808174 Jul 22  2010 Zv9_scaffolds.fa.gz
-rw-r--r--   1 ftpuser  ftpusers  421723082 Jul 22  2010 Zv9_toplevel.fa.gz
-rw-r--r--   1 ftpuser  ftpusers        262 Jul 22  2010 md5sum.dat


ftpサーバーからファイルのダウンロードを実行

> get Zv9_scaffolds.fa.gz

gnuplotを用いてグラフを綺麗に描写する♪♪

$ sudo apt-get install gnuplot

$ gnuplot

gnuplot> set terminal png
gnuplot> set output 'test.png'
gnuplot> plot sin(x)
gnuplot> quit





メモリの使用状況をプロセスごとに表示する。

$ ps alx

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0   2884  1676 poll_s Ss   ?          0:00 /sbin/init
1     0     2     0  20   0      0     0 kthrea S    ?          0:00 [kthreadd]
1     0     3     2  20   0      0     0 run_ks S    ?          0:00 [ksoftirqd]


RSSの項目が実際にしようしているメモリの容量だそうです。単位はkiB。

ubuntuのunityデスクトップで仮想デスクトップの数を増やす。

ubuntu11.04から導入されたunityデスクトップ。

見栄えがよく、ハイスペックのパソコンで動かすのならば、使い勝手がいいです♪

今回は、unityデスクトップ環境における仮想デスクトップの個数を増やす方法を書いてみます。


基本的な設定は、デスクトップ画面右上のスタートボタンにあるシステム設定に統一されています。

この点は、ubuntu10.10からの大きな変更点となります。

そして、「CompizConfig設定マネージャー」を開いて、「一般オプション」をクリックします。

そして「デスクトップサイズ」のタブに移動して、

「水平仮想サイズ」と「垂直仮想サイズ」

の二つを任意の値に変更してあげればよいです。


ちなみに、デフォルトでは4×4になっています。

sun-java6-jdkのインストール

$ sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner'
$ sudo apt-get update 
$ sudo aptitude install sun-java6-jdk  

lftpを用いたサーバーへのhtml等のアップロード

lftpとはUNIX系で使われるCUIベースのファイル転送システムのことである。

使ってみたところ結構簡単だったし、ホームページの運用で使用させていただいているFC2のサーバーのディレクトリ構造を、手元のディレクトリ構造に反映させたり、その逆も簡単にできることに気がついた。

#lftmインストール
$ sudo apt-get install lftp

#lftpを起動
$ lftp

#ftpサーバーにログイン
> open -u   username    ftpservername
password

#サーバー側のディレクトリをルートに変更(デフォルトでルートになっているが)
> cd /
> pwd

#クライアント側(ローカル、すなわち自分のPC環境)のディレクトリをアップロードしたいディレクトリに変更。(今回はホームディレクトリのHPディレクトリ)
> lcd ~/HP
> lpwd

#クライアント側のカレントディレクトリの内容をサーバー側に反映させる。このとき、絶対に-Rを忘れないこと。忘れた場合は、ローカル側のディレクトリの内容が書き換えられてしまう。

> mirror -R -e



これでミラーリングは完成です♪

HP作りました。

以前に公開したホームページは一切更新せずにほったらかしでしたので、この際にリニューアルしました。

遊びにきてくださいね!

(^^)

http://kappabucha.web.fc2.com/

lightbox plusを用いて、画像の拡大機能をつける。 at html

いろんな人のホームページ見ていますと、画像拡大機能がうらやましくなってくるものです。

そこで、私も自分のホームページに導入することにしました。

まず、以下のサイトからlightbox plusのパッケージを取ってきます。

http://serennz.sakura.ne.jp/toybox/lightbox/?ja#download


次にダウンロードしたディレクトリの下で

#zip形式のファイルを解凍
$ unzip lightbox_sample.zip

#解凍後に新たに生成したディレクトリに移動。
$ cd samlpe

#ディレクトリのツリーを見る


|-- file
|   |-- cat_in_hole.jpg
|   |-- cat_on_mac.jpg
|   |-- cat_on_printer.jpg
|   |-- evening.jpg
|   |-- grass.jpg
|   |-- road.jpg
|   |-- sky.jpg
|   `-- sleeping_cat.jpg
|-- index.html
|-- resource
|   |-- blank.gif
|   |-- close.gif
|   |-- expand.gif
|   |-- jojo.css
|   |-- lightbox.css
|   |-- lightbox_plus.js
|   |-- lightbox_plus_min.js
|   |-- loading.gif
|   |-- next.gif
|   |-- prev.gif
|   |-- sample.css
|   |-- shrink.gif
|   `-- zzoop.gif
`-- tiny
    |-- cat_in_hole_thumb.jpg
    |-- cat_on_mac_thumb.jpg
    |-- cat_on_printer_thumb.jpg
    |-- evening_thumb.jpg
    |-- grass_thumb.jpg
    |-- road_thumb.jpg
    |-- sky_thumb.jpg
    `-- sleeping_cat_thumb.jpg

ここで、サーバー側のルートディレクトリにsourceディレクトリ以下のファイルをすべてアップロードします。

つぎに、htmlファイルのヘッダーに以下の三行をまるごとコピー&ペーストします。


<link rel="stylesheet" type="text/css" href="./resource/lightbox.css" media="screen,tv">
<script type="text/javascript" charset="UTF-8" src="./resource/spica.js"></script>
<script type="text/javascript" charset="UTF-8" src="./resource/lightbox_plus.js"></script>

次に、ボディの中で実際に拡大表示したい画像

<a href="./images/me_2.jpg" rel="lightbox"> <img src="./images/me_2.jpg" alt="研究室のlinuxパソコンと私" style="height:240px;width:320px;" align="right"></a>


 のように、

<a href="./images/me_2.jpg" rel="lightbox">と</a>で、張り付けてあった画像の記述を挟み込みます。

たったこれだけでOKです(^^)

htmlファイルでソースコードをカラフルに記述する!!!!!!!!!

javascriptってまじですごいな。

なんちゃってで、かなりきれいなHPが作れる。

htmlを書いてて、ソースコードを紹介したいと思うことは多々あると思います。そこでSyntaxHighlighterというものを使うとその要望に答えてくれるます。



SyntaxHighlighterのHP

http://alexgorbatchev.com/SyntaxHighlighter/download/

っていうのを使うといいね。


使用方法は、

zipファイルを適当なディレクトリに解凍して「scripts」と「styles」のディレクトリをindex.htmlの階層にアップロードします。

こんな感じ。.
├── css
│   └── mystyle.css
├── images
│   ├── doctor-tux.png
│   ├── follow-me.jpg
│   ├── me.jpg
│   ├── me_2.jpg
│   ├── tux.ico
│   ├── tux.jpg
│   └── twitter.jpg
├── index.html
├── perl
├── scripts
│   ├── shAutoloader.js
│   ├── shBrushAS3.js
│   ├── shBrushAppleScript.js
│   ├── shBrushBash.js
│   ├── shBrushCSharp.js
│   ├── shBrushColdFusion.js
│   ├── shBrushCpp.js
│   ├── shBrushCss.js
│   ├── shBrushDelphi.js
│   ├── shBrushDiff.js
│   ├── shBrushErlang.js
│   ├── shBrushGroovy.js
│   ├── shBrushJScript.js
│   ├── shBrushJava.js
│   ├── shBrushJavaFX.js
│   ├── shBrushPerl.js
│   ├── shBrushPhp.js
│   ├── shBrushPlain.js
│   ├── shBrushPowerShell.js
│   ├── shBrushPython.js
│   ├── shBrushRuby.js
│   ├── shBrushSass.js
│   ├── shBrushScala.js
│   ├── shBrushSql.js
│   ├── shBrushVb.js
│   ├── shBrushXml.js
│   ├── shCore.js
│   └── shLegacy.js
├── shell
│   └── index.html
├── styles
│   ├── shCore.css
│   ├── shCoreDefault.css
│   ├── shCoreDjango.css
│   ├── shCoreEclipse.css
│   ├── shCoreEmacs.css
│   ├── shCoreFadeToGrey.css
│   ├── shCoreMDUltra.css
│   ├── shCoreMidnight.css
│   ├── shCoreRDark.css
│   ├── shThemeDefault.css
│   ├── shThemeDjango.css
│   ├── shThemeEclipse.css
│   ├── shThemeEmacs.css
│   ├── shThemeFadeToGrey.css
│   ├── shThemeMDUltra.css
│   ├── shThemeMidnight.css
│   └── shThemeRDark.css
└── template
    ├── index.html
    └── mystyle.css


つぎに、index.htmlのヘッダーの中に、「styles」のディレクトリにあるスタイルシートと、「scripts」のディウレクトリにあるjavascriptを組み込む。


以下のように<body>   </body>の間に記述すればよい。


<body>

<script type="text/javascript" src="./scripts/shCore.js"></script>
<script type="text/javascript" src="./scripts/shBrushPerl.js "></script>
<link type="text/css" rel="stylesheet" href="./styles/shCore.css"/>
<link type="text/css" rel="stylesheet" href="./styles/shThemeDefault.css"/>
<script type="text/javascript">
SyntaxHighlighter.config.clipboardSwf = './scripts/clipboard.swf';
SyntaxHighlighter.all();
</script>


</body>



ちなみに今回は、perlのスクリプトをハイライトするためのコードを書いた。

あとは、以下のように<pre class="brush:言語名"> </pre>の間に挟み込むようにしてソースコードを記述すればよい(^^)

<pre class="brush: perl">
 #!/usr/bin/perl
 print "Hello, world!!\n";
 exit;
 </pre>

htmlファイルで文字化けを起こさないようにするために

ubuntuでvimを使ってhtmlファイルを作って公開したところ、知り合いの先生から文字化けの報告を頂きました。

調べたところ、文字コード宣言というものをおこなわなくてはいけなかったようです。

それについて書きます。

#nkfのインストール
$ sudo apt-get install nkf


#作成したファイル(index.html)の文字コードを調べる。
$ nkf --guess index.html
UTF-8

UTF-8でファイルを作っていることがわかったので以下のフレーズをhtmlファイルの中に追加します。


<head>

<meta charset="utf-8">


</head>





htmlでタブにアイコンを表示

<head>

<link rel="shortcut icon" href="./images/filename.ico">

</head>


のようにすればいけます。 拡張子は.icoにしておきます。

htmlファイルで、ソースコードを記述する。

bodyの中に

preタグを使って記述してやれば、ソースコードをそのまま記述することができます。



<pre>

int main(void)
{
printf("Hello, world!\n");
return 0;
}
</pre>

メモリの使用状況を調べる。

 #freeコマンドでメモリの使用状況を調べる。
$ free
             total       used       free     shared    buffers     cached
Mem:        499364     485288      14076          0      23072     169652
-/+ buffers/cache:     292564     206800
Swap:      1533948      14656    1519292


メモリの上に展開されたプログラムの中で、使用頻度の低いものをSwap領域に移動させているため、Swapが14MBだけ移動されていることが分かる。Linux OSは使用を続ければ続けただけ、メモリがキャッシュに割り当てられる。そのため、"Mem:"の行ではfreeが1.4MBしか残っていない。

Linuxにおいて真にメモリの空き容量を知るには、バッファーとキャッシュを考慮に入れた値を見る必要がある。今回は、292MBの空き領域があるということである。

htmlファイルの基本構造_javascriptの手始め_2

  1 <html>
  2
  3 <head>
  4 <title>
  5 ホームページのタイトルをいれるねん。
  6 </title>
  7 </head>
  8
  9
 10
 11 <body text="green" bgcolor="yellow">
 12
 13 <script type="text/javascript">
 14 <!--
 15 window.alert("こんなのもいかが?");
 16 -->
 17 </script>
 18
 19 ここに本文を書くねん。
 20 </body>
 21
 22
 23 <html>




htmlファイルの基本構造_javascriptの手始め

   1 <html>
  2
  3 <head>
  4 <title>
  5 ホームページのタイトルをいれるねん。
  6 </title>
  7 </head>
  8
  9
 10
 11 <body text="green" bgcolor="yellow">
 12
 13 <script type="text/javascript">
 14 <!--
 15 document.write("ここにも文字が書けるねん。");
 16 document.write("<br>");
 17 -->
 18 </script>
 19
 20 ここに本文を書くねん。
 21 </body>



htmlファイルの基本構造_2

  1 <html>
  2
  3 <head>
  4 <title>
  5 ホームページのタイトルをいれるねん。
  6 </title>
  7 </head>
  8
  9
 10 <body text="green" bgcolor="yellow">
 11 ここに本文を書いくねん。
 12 </body>
 13
 14 <html>


htmlファイルの基本構造

  1 <html>
  2
  3 <head>
  4 <title>
  5 ホームページのタイトルをいれるねん。
  6 </title>
  7 </head>
  8
  9 <body>
 10 ここに本文を書いくねん。
 11 </body>
 12
 13 <html>

#実行してみよう。
$ firefox test.html


コマンドラインからCPUとメモリの性能を見る

コマンドラインからCPUとメモリの性能を見るには、/proc/cpuinfoと、 /proc/meminfoのファイルを閲覧してやればいいです(^^)

CPUの性能チェック
$ cat /proc/cpuinfo


processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 23
model name    : Intel(R) Core(TM)2 Quad CPU    Q9400  @ 2.66GHz
stepping    : 10
cpu MHz        : 2660.030
cache size    : 3072 KB
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 13
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss nx constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable aperfmperf pni ssse3 sse4_1 hypervisor
bogomips    : 5320.06
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual

#メモリの容量を確認
$ cat /etc/meminfo

~$ cat /proc/meminfo
MemTotal:         509240 kB
MemFree:           50796 kB
Buffers:           36988 kB
Cached:           160704 kB
SwapCached:         1888 kB
Active:           191044 kB
Inactive:         226124 kB
Active(anon):      96632 kB
Inactive(anon):   131360 kB
Active(file):      94412 kB
Inactive(file):    94764 kB
Unevictable:          16 kB
Mlocked:              16 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         509240 kB
LowFree:           50796 kB
SwapTotal:       1489912 kB
SwapFree:        1483168 kB
Dirty:                56 kB
Writeback:             0 kB
AnonPages:        218052 kB
Mapped:            57052 kB
Shmem:              8516 kB
Slab:              27664 kB
SReclaimable:      19848 kB
SUnreclaim:         7816 kB
KernelStack:        2008 kB
PageTables:         5316 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1744532 kB
Committed_AS:     831560 kB
VmallocTotal:     507896 kB
VmallocUsed:        6544 kB
VmallocChunk:     496448 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       4096 kB
DirectMap4k:       16384 kB
DirectMap4M:      507904 kB

コマンドラインからDVD-Rにisoイメージを焼く

  cdrecordというアプリケーションを使います。

#APTパッケージマネージャーを用いたcdrecordのインストール
   $ sudo apt-get install cdrecord
  
   #ubuntu64bitのisoイメージファイルの置いてあるディレクトリに移動
   $ cd /home/kappa/Downloads
  
   #cdrecordが認識しているハードウェアを調べる
   $ cdrecord -scanbus
   scsibus2:
   2,0,0   200) 'MATSHITA' 'DVD-RAM UJ-833S ' '1.51' Removable CD-ROM
   2,1,0   201) *
   2,2,0   202) *
   2,3,0   203) *
   2,4,0   204) *
   2,5,0   205) *
   2,6,0   206) *
   2,7,0   207) *
  
   #isoイメージをDVD-Rに焼く
   $ cdrecord dev=2,0,0 ubuntu-11.04-<F12>desktop-amd64.iso

lubuntuでのスクリーンショット

軽量化を求めてlubuntuに移ってきたわけだが、lubuntuは軽量化を推し進めている関係でいくつかの機能がデフォルトでは落とされてしまっている。

そのひとつがスクリーンショットである。

synaptic package マネージャーから”screen shot" と検索して、検索結果の下の方にある


xfce4-screenshooter をインストールすればOKです!

端末からなら、

$ sudo apt-get install  xfce4-screenshooter

でインストール可能です(^^)

htmlファイルの編集ソフト : KompoZer

vimのようなシンプルなテキストエディターだけでhtmlを書いていると時間がかかってしょうがないので、KompoZerというhtmlファイル編集のお助けソフトを使うことがあります。

#KompoZer のインストール
$ sudo apt-get install kompozer

#kompozerの起動
$ kompozer ファイル名.html &

これで編集できます♪♪


かなり楽ですよ!!

htmlファイルをgftpを使ってサーバーへアップロード♪

Windowsでホームページ作るときによく使うffftp。

#####################################################

Wikipediaより引用

FFFTPは、1997年に曽田純(Sota)が作成、発表した、代表的なFTPクライアントソフトウェア。開発は現在も続けられている。漢字などのマルチバイト文字を名前に含むファイルを扱えるのが特徴。

#####################################################


ubuntuでは、このffftpは使えませんが、その代わりにgFTPというFTPクライアントソフトウェアが存在します。

http://gftp.seul.org/

#インストールは

$ sudo apt-get install gftp

#アプリケーションの起動は、

$ gftp &

#ためしにごく簡単なhtmlファイルを作成します。

$ vim test.html

  1 <html>
  2 <head>
  3 <title>
  4 Hello!!
  5 </title>
  6 </head>
  7 <body>
  8 This is my first home page.
  9 </body>
 10 </html>


#内容をウェブブラウザ(今回はfirefox)で確認するには

$ firefox test.html

#gftp起動

$ gftp &


FC2で作成したホスト名(ユーザー名.web.fc2.com)と、ユーザー名とパスワード(FC2全体のパスワードではなく、ホームページを作成した時に作成したパスワードであることに注意)を入力してあげればOKです。ただし、一番右の項目はFTPを選択します。


ちなみに、私のHPのURLは

http://kappabucha.web.fc2.com/

です(^^)

お時間がありましたら遊びにきてください♪

EMBOSSを使って、塩基配列を操作。プライマーの設計。

homo sapiens のVEGFA(vascular endothelial growth factor A isoform a)をネタにEMBOSSを使い倒してみる。

#Refseqの配列のuniform sequence address, 名前、アクッセンション番号、核酸配列orアミノ酸配列、配列の長さ、gcの割合、配列の説明を取得
$ infoseq 
 
 Display basic information about sequences
Input (gapped) sequence(s): refseq:NM_001025366
USA                      Database  Name           Accession      Type Length %GC    Organism            Description
refseq-id:NM_001025366   refseq         NM_001025366   NM_001025366   N    3677   51.26  Homo sapiens (human) Homo sapiens vascular endothelial growth factor A (VEGFA), transcript variant 1, mRNA.

#一行でテキストファイルに出力してしまなら
$ infoseq refseq:NM_001025366 -outfile=NM_001025366_infoseq.txt

Reads and writes (returns) sequences
Input (gapped) sequence(s): refseq:NM_001025366
output sequence(s) [nm_001025366.fasta]: NM_001025366.nt

#seqretコマンドを使って塩基配列を取り出す。
Reads and writes (returns) sequences
Input (gapped) sequence(s): refseq:NM_001025366
output sequence(s) [nm_001025366.fasta]: NM_001025366.nt

#一行で書くなら
$seqret refseq:NM_001025366 -outseq NM_001025366

#NM_001025366を毎回入力するのがめんどくさい場合は、テキストファイルの中に
#refseq:NM_001025366と書いたものを用意して、@+ファイル名でseqretの引数に加えてやればよい。この方法だと、複数の配列をテキストファイルの中に書いておけば、一度に複数の配列をダウンロードしてくることができる。
$ seqret @NM_001025366.txt  -outseq=NM_001025366


 #配列以外の情報もすべてゲットしたいときは、entretコマンドがおすすめ。
$ entret @NM_001025366.txt  -outfile=NM_001025366.entret


#配列のアノテーションが書かれているfeatureの部分を可視化するには,showfeatコマンド
$ showfeat @NM_001025366.txt  -outfile=NM_001025366.entret

分子系統樹作成(clustalw使用)

分子系統樹を作成する時の手順についてまとめておく。

作業は以下の2段階に分けられる。

1:dnaやアミノ酸の配列を入力して、マルティプルアラインメントを行う。(生成するのは、"-.aln"ファイル)
$ % clustalw -input="inputfile.txt" -align -type=protein -matrix=blosum



2:マルティプルアラインメントの結果を基にして、系統樹のデータを出力する("-phb"ファイル等)





前々回のブログのp53のホモログをswissprotから取ってきたネタで言えば、


1 : EMOBSSのseqretで"p53_*"のキーワードで、p53プロテインのホモログを釣ってくる。

$ seqret swissprot:p53_* -out=p53_swissprot.txt




2:EMBOSSのseqretで"p53_*"で釣ってきたp53のホモログに対してマルティプルアラインメントを行う。

$ clustalw -infile=p53_swissprot.txt  -align  -type=protein  -matrix=blosum



 3 : マルティプルアラインメントのファイルを基にして系統樹を書かせる。

 $ clustalw  -infile=p53_swissprot.aln   -tree  -outputtree=p53_swissprot.phb




4 : njplotを用いて系統樹を描写する。(NJplotをインストールして使う)

$ sudo apt-get install njplot
$ njplot p53_swissprot.phb
#NJplotのウィンドウが開くので、GUI操作で、FILE -> Save as Postscrip
#生成したp53_swissprot.psファイルをpdfファイル、そしてpngファイルに変化する。


5 :生成したp53_swissprot.psファイルをpdfファイル、そしてpngファイルに変化する。

$ ps2pdf p53_swissprot.ps
$ convert  p53_swissprot.pdf  p53_swissprot.png


($ sudo apt-get install imagemagick b #imagemagicのインストール)
($ sudo apt-get install ps2pdf #ps2pdfのインストール )


clustalについて

前回のブログで

コマンドライン上で

$ clustalw

を使った。

そもそもclustalとは

以下のようなアプリケーションを言うらしい。(Wikipedia: http://ja.wikipedia.org/wiki/Clustalより引用)

Clustalは広く用いられている多重整列プログラムである。現在はコマンドライン版のClustal WGUI版のClustal Xとがある。欧州バイオインフォマティクス研究所FTPサーバから入手できる。


以下の3つの段階を踏む。
  1. 1対1の整列(ペアワイズアラインメント)を行う
    1対1の整列を総当たりで行い、配列一致度の行列を作成する。


  2. 配列一致度に基づいて樹形図(Guide Tree)を得る
    配列一致度を距離尺度に用いて階層型クラスタリングを行う。この際のアルゴリズムは近隣結合法(または非加重結合法)が用いられている。


  3. 樹形図に沿って配列を追加しながら整列を行う
    最も一致度の高い配列ペアからはじめて、樹形図に沿って1つずつ配列を追加しながら整列させていくことで効率的に多重整列を得る。


これらは自動的に行われるが、ガイドツリーのみを計算させたり、ガイドツリーを指定して多重整列のみを行わせることもできる。

emboss,(seqret) , clustalwを駆使してマルティプルアラインメントをしてみたよ(^^)

lubuntu 11.04 にて

#embossのインストール
$ sudo apt-get install emboss


#データベースの設定
$ sudo cp /usr/share/EMBOSS/emboss.default.template /usr/share/EMBOSS/emboss.default


#データベースの確認
$ showdb


# 設定ファイル(/usr/share/EMBOSS/emboss.default)の中で文頭に"#"がついているデータベースを"#"を削除することで有効化する。
$ sudo vim /usr/share/EMBOSS/emboss.default


#データベースの確認
$ showdb

 # embossのseqretを使って、swissprotから、登録されている様々な種のp53タンパクの配列をとってくる。
$ seqret
Reads and writes (returns) sequences
Input (gapped) sequence(s): swissprot:p53_*
output sequence(s) [p53_barbu.fasta]: p53_swissprot.txt

#p53_swissprot.txtの中身を見る
$ less p53_swissprot.txt

#clustalwのインストール
$ sudo apt-get install clustalw

# clustalwによるマルティプルアラインメント
$ clustalw p53_swissprot.txt

#カレントディレクトリに出力ファイルができている。
$ ls
p53_swissprot.aln  p53_swissprot.dnd  p53_swissprot.txt

#結果を見てみる。
$ less p53_swissprot.aln

#マルティプルアラインメントの結果を美しく表示する(EMBOSSのprettyplot)
$ prettyplot p53_swissprot.aln

Draw a sequence alignment with pretty formatting
Graph type [x11]: ps  #ここでpsを入力してpostscriptを作成させる
Created prettyplot.ps

#ポストスクリプトファイルをpdfファイルに変換
$ ls
p53_swissprot.aln  p53_swissprot.dnd  p53_swissprot.txt  prettyplot.ps

$ sudo apt-get install ps2dpf
$ ps2dpf p53_swissprot.ps

$ ls
p53_swissprot.aln  p53_swissprot.dnd  p53_swissprot.txt  prettyplot.pdf  prettyplot.ps   #pdfファイルができてる!!!!

#コマンドからpdfファイルを閲覧
$ xdpf prettyplot.pdf

#ブログにはpng, jpg, gifでしか貼れないのでpdfファイルをpngファイルに変換する。
$ sudo apt-get install imagemagick b #imagemagicのインストール
$ convert prettyplot.pdf prettyplot.png
$ ls
p53_swissprot.aln  prettyplot-1.png  prettyplot-5.png  prettyplot.pdf
p53_swissprot.dnd  prettyplot-2.png  prettyplot-6.png  prettyplot.ps
p53_swissprot.txt  prettyplot-3.png  prettyplot-7.png
prettyplot-0.png   prettyplot-4.png  prettyplot-8.png
#もとのpdfファイルが複数のページを持っていたので、ファイルもpngファイルも複数せ生成された。