AffyBatchオブジェクトに対するバックグランド補正と正規化

$ pwd          #先日CELファイルをダウンロードしたディレクトリに移動
/home/kappa/2011/1101/110128_GEO/GSE13869
$ ls
GSM349023.CEL.gz  GSM349025.CEL.gz  GSM349027.CEL.gz  GSM349029.CEL.gz
GSM349024.CEL.gz  GSM349026.CEL.gz  GSM349028.CEL.gz  GSM349030.CEL.gz

$ R

library(affy)


GSE13869 <- ReadAffy()    #カレントディレクトリにあるすべてのセルファイルを読み込んでAffyBatchオブジェクトを生成する

class(GSE13869)
[1] "AffyBatch"
attr(,"package")
[1] "affy"

GSE13869.bg <- bg.correct(GSE13869, method = "mas")         #Affymetrix社の公式のバックグラウンド補正法のMAS5をmethodとして採用する。この場合、Affybatchオブジェクトが生成する。
GSE13869.bg.norm <- normalize(GSE13869.bg, method = "quantiles")   #quantileで正規化を行う。この場合AffyBatchオブジェクトが生成する。

png("110130_hist.png")
par(mfrow=c(1,2))
hist(GSE13869, main = " GSE13869")             #AffyBatchオブジェクトに対してはhist関数で実に美しい図が描写できる
hist(GSE13869.bg.norm, main = "GSE13869.bg.norm")              #引数にmain = ""を追加することで、表のタイトルをつけられる。
dev.off()



gene expression omnibus(GEO)からデータを取得(^^)

$ mkdir 110128_GEO      #GSEデータセットファイルを入れるためのディレクトリを作成

$ cd 110128_GEO      #作ったディレクトリに移動

$ lftp ftp.ncbi.nlm.nih.gov:/pub/geo/DATA/supplementary/series/GSE13869
cd 成功、cwd=/pub/geo/DATA/supplementary/series/GSE13869                                                     

lftp ftp.ncbi.nlm.nih.gov:/pub/geo/DATA/supplementary/series/GSE13869> ls
-r--r--r--   1 ftp      anonymous 50933760 Jan 24  2010 GSE13869_RAW.tar
-r--r--r--   1 ftp      anonymous      524 Jan 24  2010 filelist.txt

lftp ftp.ncbi.nlm.nih.gov:/pub/geo/DATA/supplementary/series/GSE13869> get GSE13869_RAW.tar
50933760 バイト転送済、170 秒経過 (292.6KB/s)                                              

lftp ftp.ncbi.nlm.nih.gov:/pub/geo/DATA/supplementary/series/GSE13869> quit

$ ls
GSE13869_RAW.tar

$ mkdir GSE13869
$ cd GSE13869
$ tar xf ../GSE13869_RAW.tar
$ ls
GSM349023.CEL.gz  GSM349024.CEL.gz  GSM349025.CEL.gz  GSM349026.CEL.gz  GSM349027.CEL.gz  GSM349028.CEL.gz  GSM349029.CEL.gz  GSM349030.CEL.gz


ちなみに下はGUIからデータをとりとりいった画像


EMBOSSを使って配列の読み込み、clustalwを使ったマルティプルアライメント

$ vi prion_names.txt

a

--ここから---

swissprot:PRIO_HUMAN
swissprot:PRIO_RAT
swissprot:PRIO_MOUSE
swissprot:PRIO_CALJA
swissprot:PRIO_CANFA
swissprot:PRIO_BOVIN
swissprot:PRIO_AILME
swissprot:PRIO_CAPHI
swissprot:PRIO_SHEEP
swissprot:PRIO_CHICK

--ここまで--

Esc

:wq

$seqret @prion_names.txt -outseq=prion.fasta
$ grep ">" prion.fasta | cut -f1,2 -d" "
>PRIO_HUMAN P04156
>PRIO_RAT P13852
>PRIO_MOUSE P04925
>PRIO_CALJA P40247
>PRIO_CANFA O46501
>PRIO_BOVIN P10279
>PRIO_AILME Q6EH52
>PRIO_CAPHI P52113
>PRIO_SHEEP P23907
>PRIO_CHICK P27177

$sudo apt-get install clustalw

$clustalw prion.fasta


kappa@kappa-desktop:~/2011$ more prion.aln
CLUSTAL 2.0.10 multiple sequence alignment


PRIO_HUMAN      --MANLGCWMLVLFVATWSDLGLCKK-RPKP-GG-WNTGGSR---YPGQ-GSPGGNRYPP
PRIO_CALJA      --MANLGCWMLFLFVATWSDLGLCKK-RPKP-GG-WNTGGSR---YPGQ-GSPGGNRYPP
PRIO_RAT        --MANLGYWLLALFVTTCTDVGLCKK-RPKP-GG-WNTGGSR---YPGQ-GSPGGNRYPP
PRIO_MOUSE      --MANLGYWLLALFVTMWTDVGLCKK-RPKP-GG-WNTGGSR---YPGQ-GSPGGNRYPP
PRIO_BOVIN      MVKSHIGSWILVLFVAMWSDVGLCKK-RPKP-GGGWNTGGSR---YPGQ-GSPGGNRYPP
PRIO_AILME      MVKSHIGSWILVLFVAMWSDVGLCKK-RPKP-GGGWNTGGSR---YPGP-GSPGGNRYPP
PRIO_CAPHI      MVKSHIGSWILVLFVAMWSDVGLCKK-RPKP-GGGWNTGGSR---YPGQ-GSPGGNRYPP
PRIO_SHEEP      MVKSHIGSWILVLFVAMWSDVGLCKK-RPKP-GGGWNTGGSR---YPGQ-GSPGGNRYPP
PRIO_CANFA      MVKSHIGSWILVLFVAMWSDVGLCKK-RPKP-GGGWNTGGSR---YPGQ-GSPGGNRYPP
PRIO_CHICK      MARLLTTCCLLALLLAACTDVALSKKGKGKPSGGGWGAGSHRQPSYPRQPGYPHNPGYPH
                         :* *:::  :*:.*.** : ** ** *.:*. *   **   * * .  **

PRIO_HUMAN      QGGGGWGQPHGGGWGQPHGGGWGQ----PHGG--------GWGQPHGGG-WGQGGGTHSQ
PRIO_CALJA      QGGG-WGQPHGGGWGQPHGGGWGQ----PHGG--------GWGQPHGGG-WGQGGGTHSQ
PRIO_RAT        QSGGTWGQPHGGGWGQPHGGGWGQ----PHGG--------GWGQPHGGG-WSQGGGTHNQ
PRIO_MOUSE      Q-GGTWGQPHGGGWGQPHGGSWGQ----PHGG--------SWGQPHGGG-WGQGGGTHNQ
PRIO_BOVIN      QGGGGWGQPHGGGWGQPHGGGWGQ----PHGGGWGQPHGGGWGQPHGGGGWGQGG-THGQ
PRIO_AILME      QGGGGWGQPHGGGWGQPHGGGWGQ----PHGGGWGQPHGGGWGQPHGGGGWGQGG-THGQ
PRIO_CAPHI      QGGGGWGQPHGGGWGQPHGGGWGQ----PHGG--------GWGQPHGGGGWGQGG-SHSQ
PRIO_SHEEP      QGGGGWGQPHGGGWGQPHGGGWGQ----PHGG--------GWGQPHGGGGWGQGG-SHSQ
PRIO_CANFA      QGGGGWGQPHGGGWGQPHGGGWGQ----PHGG--------GWGQPHGGGGWGQGG-THSQ
PRIO_CHICK      NPGYPHNPGYPHNPGYPHNPGYPQNPGYPHNPG-----YPGWGQGYNPS---SGGSYHNQ
                : *   .  :  . * **. .: *    **.         .*** :. .   .**  *.*

PRIO_HUMAN      WNKPSKP-KTNMKHMAGAAAAGAVVGGLGGYMLGSAMSRPIIHFGSDYEDRYYRENMHRY
PRIO_CALJA      WNKPSKP-KTNMKHVAGAAAAGAVVGGLGGYMLGSAMSRPLIHFGNDYEDRYYRENMYRY
PRIO_RAT        WNKPSKP-KTNLKHVAGAAAAGAVVGGLGGYMLGSAMSRPMLHFGNDWEDRYYRENMYRY
PRIO_MOUSE      WNKPSKP-KTNLKHVAGAAAAGAVVGGLGGYMLGSAMSRPMIHFGNDWEDRYYRENMYRY
PRIO_BOVIN      WNKPSKP-KTNMKHVAGAAAAGAVVGGLGGYMLGSAMSRPLIHFGSDYEDRYYRENMHRY
PRIO_AILME      WNKPSKP-KTNMKHVAGAAAAGAVVGGLGGYMLGSAMSRPLIHFGSDYEDRYYRENMHRY
PRIO_CAPHI      WNKPSKP-KTNMKHVAGAAAAGAVVGGLGGYMLGSAMSRPLIHFGNDYEDRYYRENMYRY
PRIO_SHEEP      WNKPSKP-KTNMKHVAGAAAAGAVVGGLGGYMLGSAMSRPLIHFGNDYEDRYYRENMYRY
PRIO_CANFA      WNKPSKP-KTNMKHVAGAAAAGAVVGGLGGYLLGSAMSRPLIHFGNDCEDRYYRENMYRY
PRIO_CHICK      --KPWKPPKTNFKHVAGAAAAGAVVGGLGGYAMGRVMSGMNYHFDSPDEYRWWSENSARY
                  ** ** ***:**:**************** :* .**    **..  * *:: **  **

PRIO_HUMAN      PNQVYYRPMDEYSNQNNFVHDCVNITIKQHTV-TTTTKGENFTETDVKMMERVVEQMCIT
PRIO_CALJA      PNQVYYRPVDQYNNQNNFVHDCVNITIKQHTV-TTTTKGENFTETDVKMMERVVEQMCIT
PRIO_RAT        PNQVYYRPVDQYSNQNNFVHDCVNITIKQHTV-TTTTKGENFTETDVKMMERVVEQMCVT
PRIO_MOUSE      PNQVYYRPVDQYSNQNNFVHDCVNITIKQHTV-TTTTKGENFTETDVKMMERVVEQMCVT
PRIO_BOVIN      PNQVYYRPVDQYSNQNNFVHDCVNITVKEHTV-TTTTKGENFTETDIKMMERVVEQMCIT
PRIO_AILME      PNQVYYRPVDQYSNQNNFVHDCVNITVKEHTV-TTTTKGENFTETDIKMMERVVEQMCIT
PRIO_CAPHI      PNQVYYRPVDQYSNQNNFVHDCVNITVKQHTV-TTTTKGENFTETDIKIMERVVEQMCIT
PRIO_SHEEP      PNQVYYRPVDRYSNQNNFVHDCVNITVKQHTV-TTTTKGENFTETDIKIMERVVEQMCIT
PRIO_CANFA      PNQVYYRSVDQYNNQSTFVHDCVNITVKQHTV-TTT-KGENFTETDIKMMERVVEQMCIT
PRIO_CHICK      PNRVYYRDYSSPVPQDVFVADCFNITVTEYSIGPAAKKNTSEAVAAANQTEVEMENKVVT
                **:****  .    *. ** **.***:.:::: .:: *. . : :  :  *  :*:  :*

PRIO_HUMAN      QYERES--QAYYQ--RGSSMVLFSSP---PVILLISFLIFLIVG
PRIO_CALJA      QYEKES--QAYYQ--RGSSMVLFSSP---PVILLISFLIFLIVG
PRIO_RAT        QYQKES--QAYYDGRRSS-AVLFSSP---PVILLISFLIFLIVG
PRIO_MOUSE      QYQKES--QAYYDGRRSSSTVLFSSP---PVILLISFLIFLIVG
PRIO_BOVIN      QYQRES--QAYYQ--RGASVILFSSP---PVILLISFLIFLIVG
PRIO_AILME      QYQRES--QAYYQ--RGASVILFSSP---PVILLISFLIFLIVG
PRIO_CAPHI      QYQRES--QAYYQ--RGASVILFSPP---PVILLISFLIFLIVG
PRIO_SHEEP      QYQRES--QAYYQ--RGASVILFSSP---PVILLISFLIFLIVG
PRIO_CANFA      QYQRES--EAYYQ--RGASVILFSSP---PVILLVSFLIFLIVG
PRIO_CHICK      KVIREMCVQQYREYRLASGIQLHPADTWLAVLLLLLTTLFAMH-
                :  :*   : * :   .:   *...    .*:**:   :* : 


#これは、美しい!!!!!今までGUIでclustalwをせっせとやっていたから驚きはでかい。
#Rの中で系統樹作成用のパッケージを読み込んで、系統樹を書かせてみる。

$sudo R
> install.packages("seqinr")
> install.packages("ape", dep=T)
> library(ape)
> library(seqinr)
> prion_align <- read.alignment(file="prion.aln",format="clustal")
> plot(nj(dist.alignment(prion_align)))
> plot(nj(dist.alignment(prion_align)), type = "unrooted")

#驚くほど綺麗な絵になったので保存しとく。

> png("110128_phyl.png")
> par(mfrow=c(1,2))
> plot(nj(dist.alignment(prion_align)))
> plot(nj(dist.alignment(prion_align)), type = "unrooted")
> dev.off()


今日はバイオインフォマティクスって感じのプログラムの勉強ができた☆



















Perlの事始め

Ubuntuでperl言語を練習してみた♪
Bio-perlが医学・生物学では頻繁に使われており、自分もそれを視野にいれた学習をしようと思う。

$ sudo apt-get install perl

#Ubuntuは最初からperlが入っているから上のコマンドは必要なかった。

$ which perl
/usr/bin/perl

#perlインストールパスを調べるコマンド。

$vi hello.pl

aキーで入力モードへ

-----ここから


#! /usr/bin/perl

#ハローを出力してみる。この行は無視される。

print "Hello world\n";

----ここまで

Escでコマンドモード戻る

:wqで上書き保存して終了


#hello.plというスクリプトを作ったら、実行する前に文法チェックを行う。以下のコマンドを用いる。


$ perl -cw hello.pl  
hello.pl syntax OK

#syntax OKと表示されたので、上のhello.plスクリプトの文法は問題がないことがわかる。

実行するには、

$perl hello.pl
Hello world


でけた。

ちなみに、シェルの中で引数としてPerlスクリプトを与えて実行するには、[-e]のオプションつければよい。


$ perl -e 'print("Hello!\n");'
Hello!

.plのファイルを作らんでも簡単なプログラムならこれで十分だ。しかし、込み入った処理をすることを目的としてる分けで、これに頼ってはいかんな。。

Rのバッチ処理

Rのバッチ処理(一括処理)の二つの利点

1 計算が数日あるいは数週間に及ぶようなシミュレーションのときに、ユーザーがログアウトしても処理が続いてくれる
2 定期的に実行しなければならない処理をRを起動せずにOSのバックグラウンドで自動的に開始できる


とはいうものの、マイクロアレイの解析をちょこちょこやる程度の現段階でそれほど必要性は感じない。しかし、次世代シークエンサーは一つのファイルがテラのオーダのデータ量であり、したがって処理時間も相当かかってくることが予想される。このようなときにバッチ処理が有効になってくるのではにあかと予想される。

とりあえず、今回はさわりだけ勉強してみた。

$vi 110127_expression.R    #test.RというRのスクリプトファイルを作成

aかiで入力モードへ

---ここから---


png("110127_expression.png")
exprsgene1 <- 1:20   #1から20までの数値が格納されたxというベクトルオブジェクトを生成
exprsgene2 <- 51:70  #51から70までの数値が格納されたxというベクトルオブジェクトを生成
plot(exprsgene1,exprsgene2)   #プロットさせる
dev.off()


---ここまで---


Escキーでコマンドモードに戻る

:wq で上書き保存してviエディタを終了

$ more 110127_expression.R     #スクリプトファイルの中身をのぞいてみる
png("110127_expression.png")
exprsgene1 <- 1:20   #1から20までの数値が格納されたxというベクトルオブジェクトを生成
exprsgene2 <- 51:70  #51から70までの数値が格納されたxというベクトルオブジェクトを生成
plot(exprsgene1,exprsgene2)   #プロットさせる
dev.off()

#いい感じ

$ R CMD BATCH 110127_expression.R 110127_expression.txt #上で書いたRのスクリプトファイルを読み込み計算をさせ、結果をテキストファイルとして出力させる。
$ ls -n
合計 52
-rw-r--r-- 1 1000 1000  395 2011-01-26 12:04 110126_EMBOSSのインストール.txt
-rw-r--r-- 1 1000 1000 3596 2011-01-26 12:46 110126_Rのすぐれたヘルプ機能.txt
-rw-r--r-- 1 1000 1000   65 2011-01-27 21:14 110127_Hello.c
-rw-r--r-- 1 1000 1000 1260 2011-01-27 23:32 110127_Rでバッチ処理
-rw-r--r-- 1 1000 1000  351 2011-01-27 23:29 110127_expression.R    #もとのスクリプトファイル
-rw-r--r-- 1 1000 1000 5484 2011-01-27 23:32 110127_expression.png   #Rのプログラムの中にあった散布図をpngファイルで出力できている♪
-rw-r--r-- 1 1000 1000 1378 2011-01-27 23:32 110127_expression.txt   #処理結果がちゃんと指定したファイル名で保存されている
-rw-r--r-- 1 1000 1000 3111 2011-01-27 12:30 110127_viエディタ
-rw-r--r-- 1 1000 1000 1530 2011-01-27 19:40 110127_ディレクトリの変更.txt
-rwxr-xr-x 1 1000 1000 7146 2011-01-27 21:14 Hello
-rw-r--r-- 1 1000 1000 3161 2011-01-27 20:58 11017_C言語の入門.txt

$more 110127_expression.txt   #計算結果を見てみる
R version 2.10.1 (2009-12-14)
Copyright (C) 2009 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

Rは、自由なソフトウェアであり、「完全に無保証」です。
一定の条件に従えば、自由にこれを再配布することができます。
配布条件の詳細に関しては、'license()'あるいは'licence()'と入力してください。

Rは多くの貢献者による共同プロジェクトです。
詳しくは'contributors()'と入力してください。
また、RやRのパッケージを出版物で引用する際の形式については
'citation()'と入力してください。

'demo()'と入力すればデモをみることができます。
'help()'とすればオンラインヘルプが出ます。
'help.start()'でHTMLブラウザによるヘルプがみられます。
'q()'と入力すればRを終了します。

> png("110127_expression.png")
> exprsgene1 <- 1:20   #1から20までの数値が格納されたxというベクトルオブジェクトを生成
> exprsgene2 <- 51:70  #51から70までの数値が格納されたxというベクトルオブジェクトを生成
> plot(exprsgene1,exprsgene2)   #プロットさせる
> dev.off()
null device
          1
>
> proc.time()
   ユーザ   システム       経過 
     0.504      0.068      0.863

 

viエディタを使って、キーボードだけでHello♪(^^)

#include<stdio.h>

int main()
{      
        printf("Hello");
        return 0;
}     

----ここまで--------


入力が終了したら、Escキーでコマンドモード戻る。「:wq」コマンドを入力し、内容を上書き保存し、viを終了する。
ここまでが、ソースコードの作成段階。
次に、コンパオイルを行う。
まずは、ソースファイルがきちんとできるてるか確認。
$ls
110126_EMBOSSのインストール.txt   110127_viエディタ
110126_Rのすぐれたヘルプ機能.txt  110127_ディレクトリの変更.txt
110127_Hello.c                    11017_C言語の入門.txt

大丈夫みたい。

そしたら、110127_Hello.cというソースファイルをgccによりコンパイルしてリンクして実行ファイルを作ってみる(とはいっても、次のコマンドで一気にやってくれるけど)。

$ gcc -o Hello 110127_Hello.c

これで実行ファイルができた。
$ ls
110126_EMBOSSのインストール.txt   110127_ディレクトリの変更.txt
110126_Rのすぐれたヘルプ機能.txt  Hello
110127_Hello.c                    11017_C言語の入門.txt
110127_viエディタ

たしかにできてる。実行ファイルHelloを実行するには、

$ ./Hello

すると
Hellokappa@kappa-desktop:~/2011/1101$

となる。

ソースコードを変更して
printf("Hello");   から   printf("Hello\n");
のようにHelloの後に改行文字\nをいれる。
そしてこれまでの手順を再度繰り替えして実行ファイルを作って実行すれば、

Hello
kappa@kappa-desktop:~/2011/1101$

となる。



ソースコードのincludeについて、
http://utsukemononi.gozaru.jp/gc/page01.htmlにすばらしい説明があったんで、引用させてもらいますm(_ _)m

include ・・・はC言語の拡張機能を使うために使用する、と考えてください。このプログラムでは、printfが拡張機能になります。printfという拡張機能が定義されているのがstdio.hになります(/usr/include/stdio.hにあります)。だから、拡張機能が定義されている stdio.hを取り込む(includeする)ので、#include <stdio.h>となります。stdio.hにはprintf以外にも画面出力・入力、ファイル出力・入力の機能定義があるため、大抵のプログラムはこれをincludeすることになります。

ルートディレクトリに行ってきた♪

$ cd /    # ルートディレクトリ("/")に移動
$ pwd   # カレントディレクトリを表示
/
$ ls   #カレントディレクトリ内のディレクトリやファイルを表示
bin    dev   initrd.img      lost+found  opt   sbin     sys  var
boot   etc   initrd.img.old  media       proc  selinux  tmp  vmlinuz
cdrom  home  lib             mnt         root  srv      usr  vmlinuz.old
$ cd home   #homeディレクトリに移動
$ ls
kappa   #kappaディレクトリがあった!!
$ cd kappa
$ pwd    #もとにもどってきる♪
/home/kappa

ディレクトリを移動しまくる♪

$ pwd    #カレントディレクトリを表示
/home/kappa
$ ls   #カレントディレクトリ内のディレクトリやファイルを表示
2011  examples.desktop  テンプレート  ドキュメント  ピクチャ      公開
R     ダウンロード      デスクトップ  ビデオ        ミュージック
$ cd 2011  #2011のディレクトリに移動
$ pwd   #カレントディレクトリが移動したことを確認
/home/kappa/2011
$ ls
1101
$ cd ../  #一つ上位ディレクトリに移動
$ pwd    #移動できていることを確認
/home/kappa



$ cd 2011   #2011ディレクトリに移動  
$ cd ../R   #一つ上位ディレクトリに移動した後、続けてその中に含まれるRというディレクトリに移動
$ pwd
/home/kappa/R
$ cd      #  ユーザー(kappa)のホームディレクトリにもどる
$ pwd
/home/kappa

シェルの中でviエディタを起動させてみた☆

シェルの中で、viエディタを用いてファイルの作成をする練習をしました♪♪



$ sudo apt-get install vim    #UbuntuにLinuxで一般的なエディタであるviエディタ(拡張版であるvim)を入れる。


$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                優        Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 3  #ここで3を入力した!!!!
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode.
$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                優        Status
------------------------------------------------------------
  0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
* 3            /usr/bin/vim.basic   30        manual mode              #vim.basicに変更できてる☆
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number:    #Enterを押す

/usr/bin/vim.basicが通常版で/usr/bin/vim.tinyがもとから入っている簡易版なので、前者を設定した。。。


このコマンドを実行することでviエディタが開かれる。


$ vi test1

#viエディタがシェルの内に表示される

#最初はコマンドモードになっているので、ファイルの内容の閲覧のみである。「a」か「i」を入力すると、入力モードに変更できる.

#何か文字を入力する 

#「Escキー」で入力モードから離脱し、コマンドモードに戻る。

#「:q」を入力するとviを終了しようとするが、ファイル内容が変更されている場合は、警告を表示される。まだファイルが保存されていないので、警告が出る。

#「:w」を入力することで、ファイルを上書き保存する。
#「:wq」では、上書き保存し、viを終了する。
#「q!」では、viを強制終了する。  


便利コマンドとしては、
「Escキー」を押して、コマンドモードの状態で、

--コピーと貼り付け--
yy カーソルのある行のコピー
p カーソル一の下の行に貼り付け
P カーソル位置の行に貼り付け

--削除--
x カーソルの位置の文字を削除する
X カーソル位置の手前の文字を削除する
dd カーソル位置の行を削除する。


今日の勉強成果は以上です♪

Rのヘルプ機能

"made4"というパッケージをインストールするとします。

source("http://www.bioconductor.org/biocLite.R")
biocLite("made4")

"made4"とういうパッケージについて知りたいときは次のコマンドを入力します。

help(package = "made4")

すると・・・、


------------------------------------------------

html3D                  Produce web page with a 3D graph that can be
                        viewed using Chime web browser plug-in, and/or
                        a pdb file that can be viewed using Rasmol
khan                    Microarray gene expression dataset from Khan et
                        al., 2001. Subset of 306 genes.
ord                     Ordination
overview                Draw boxplot, histogram and hierarchical tree
                        of gene expression data
plotarrays              Graph xy plot of variable (array) projections
                        from ordination, between group analysis or
                        coinertia analysis.
plotgenes               Graph xy plot of variable (gene) projections
                        from PCA or COA. Only label variables at ends
                        of axes
pretty.dend             Draw hierarchical tree of gene expression data
                        with a colorbar for numerous class vectors
randomiser              Randomly reassign training and test samples
sumstats                Summary statistics on xy co-ordinates, returns
                        the slopes and distance from origin of each
                        co-ordinate.
suppl                   Projection of supplementary data onto axes from
                        a between group analysis
topgenes                Topgenes, returns a list of variables at the
                        ends (positive, negative or both) of an axis

これ以上の情報はディレクトリ
'/home/kappa/R/i486-pc-linux-gnu-library/2.10/made4/doc'
にある以下のビニエット中にあります:

introduction: Made4 An Introduction (HowTo) (source, pdf)

(END)

----------------------------------------
のようにヘルプが表示されます。この中にあるtopgenesという関数の使用方法を知りたいとします。すると

まず、"q"で現在の表示を閉じてコマンド入力モードにしたあと

help(topgenes)

で下が表示されます

----------------------------------------

topgenes                 package:made4                 R Documentation

Topgenes, returns a list of variables at the ends (positive, negative
or both) of an axis

Description:

     ‘topgenes’ will return a list of the top N variables from the
     positive, negative or both ends of an axis. That is, it returns a
     list of variables that have the maximum and/or minimum values in a
     vector.

Usage:

     topgenes(x, n = 10, axis = 1, labels = row.names(x), ends = "both", ...)
    
Arguments:

       x: A ‘vector’, ‘matrix’ or ‘data.frame’. Typically a data
          frame \$co or \$li from ‘dudi’ or \$ls, \$li, \$co from
          ‘bga’.

       n: An integer indicating the number of variables to be returned.
          Default is 5.

    axis: An integer indicating the column of x. Default is 1 (first
          axis, of \$co or \$li file)

  labels: A vector of row names, for x[,axis]. Default values is
          row.names(x)

:

--------------------------------

さらには、サンプルプログラムを実行したいときは

 example(topgenes)

とすれば、topgenes関数を用いた解析コマンドが表示されます。

APTシステムでembossをインストール

この前のembossのインストールの簡単バージョン!!!!ただし、Ubuntuを入れ直した後に、すぐやったらうまくいきました。

$sudo apt-get update
$sudo apt-get install emboss
$cd /usr/share/EMBOSS   
$sudo cp emboss.default.template emboss.default

$sudo nautilus
#cd /usr/share/EMBOSS emboss.defaultにデータベースを追加しておく。

UbuntuのAPT(Advanced Packageing Tool)システム

UbuntuのLinuxディステュリビューションでは、apt-get install 関数を用いれば、簡単に目的のアプリケーションをインストリールすることができます。

$ sudo apt-get update
$ sudo apt-get install  "パッケージ名"


簡単にインストールできるのは、ソフトウェアの実行ファイル、ライブラリ、設定ファイル、インストールに必要な定義ファイルなどを「パッケージ」というひとつのファイルないに収められていて、正しく動作するように適切に配置されているためです。


APTシステムでは、目的のパッケージと依存関係にあるパッケージも自動的にインストールしてくれるので、すごく助かります。


Ubuntu恐ろしや。

EMBOSSで遊んでみた☆

$export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH     #今の私の設定環境だと、結局これをシェルを開いたら最初にいれないといけないみたい。。。


$wossname                                                  #EMBOSSは多数の解析のためのコマンド群からなっている。これを調べるにはwossnameコマンドを使う。
Finds programs by keywords in their short description   #ここで何も入れないと、全部のコマンドが表示されていくる。


Text to search for, or blank to list all programs:
ACD
acdc      Test an application ACD file
acdpretty Correctly reformat an application ACD file
acdtable  Generate an HTML table of parameters from an application ACD file
acdtrace  Trace processing of an application ACD file (for testing)
acdvalid  Validate an application ACD file


$infoseq refseq:NM_138712        #infoseqコマンドを実行することでNM_138712に関するざっくりとした説明文が見れる。


Display basic information about sequences
USA                      Database  Name           Accession      Type Length %GC    Organism            Description
refseq-id:NM_138712      refseq         NM_138712      NM_138712      N    1892   48.10  Homo sapiens (human) Homo sapiens peroxisome proliferator-activated receptor gamma (PPARG), transcript variant 1, mRNA.


#インターネット経由で配列を読み込んでみる。

$seqret refseq:NM_138712 -outseq hsa_pparg.nt
Reads and writes (returns) sequences
$less hsa_pparg.nt
>NM_138712 NM_138712.3 Homo sapiens peroxisome proliferator-activated receptor gamma (PPARG), transcript variant 1, mRNA.
ggcgcccgcgcccgcccccgcgccgggcccggctcggcccgacccggctccgccgcgggc
aggcggggcccagcgcactcggagcccgagcccgagccgcagccgccgcctggggcgctt
gggtcggcctcgaggacaccggagaggggcgccacgccgccgtggccgcagatttgaaag
aagccaacactaaaccacaaatatacaacaaggccattttctcaaacgagagtcagcctt
taacgaaatgaccatggttgacacagagatgccattctggcccaccaactttgggatcag
ctccgtggatctctccgtaatggaagaccactcccactcctttgatatcaagcccttcac
tactgttgacttctccagcatttctactccacattacgaagacattccattcacaagaac
agatccagtggttgcagattacaagtatgacctgaaacttcaagagtaccaaagtgcaat
caaagtggagcctgcatctccaccttattattctgagaagactcagctctacaataagcc
tcatgaagagccttccaactccctcatggcaattgaatgtcgtgtctgtggagataaagc
ttctggatttcactatggagttcatgcttgtgaaggatgcaagggtttcttccggagaac
aatcagattgaagcttatctatgacagatgtgatcttaactgtcggatccacaaaaaaag
tagaaataaatgtcagtactgtcggtttcagaaatgccttgcagtggggatgtctcataa
tgccatcaggtttgggcggatgccacaggccgagaaggagaagctgttggcggagatctc
cagtgatatcgaccagctgaatccagagtccgctgacctccgggccctggcaaaacattt
gtatgactcatacataaagtccttcccgctgaccaaagcaaaggcgagggcgatcttgac
aggaaagacaacagacaaatcaccattcgttatctatgacatgaattccttaatgatggg
agaagataaaatcaagttcaaacacatcacccccctgcaggagcagagcaaagaggtggc
catccgcatctttcagggctgccagtttcgctccgtggaggctgtgcaggagatcacaga
gtatgccaaaagcattcctggttttgtaaatcttgacttgaacgaccaagtaactctcct
caaatatggagtccacgagatcatttacacaatgctggcctccttgatgaataaagatgg
ggttctcatatccgagggccaaggcttcatgacaagggagtttctaaagagcctgcgaaa
gccttttggtgactttatggagcccaagtttgagtttgctgtgaagttcaatgcactgga
attagatgacagcgacttggcaatatttattgctgtcattattctcagtggagaccgccc
aggtttgctgaatgtgaagcccattgaagacattcaagacaacctgctacaagccctgga
gctccagctgaagctgaaccaccctgagtcctcacagctgtttgccaagctgctccagaa
aatgacagacctcagacagattgtcacggaacacgtgcagctactgcaggtgatcaagaa
gacggagacagacatgagtcttcacccgctcctgcaggagatctacaaggacttgtacta
gcagagagtcctgagccactgccaacatttcccttcttccagttgcactattctgaggga
aaatctgacacctaagaaatttactgtgaaaaagcattttaaaaagaaaaggttttagaa
tatgatctattttatgcatattgtttataaagacacatttacaatttacttttaatatta
aaaattaccatattatgaaattgctgatagta
hsa_pparg.nt (END)

#"q"を一発入力してやれば、$の画面に戻ります♪

#こんなことともできるようです。

$ seqret swissprot:BACE*HUMAN -out=BACE_HUMAN.dat
Reads and writes (returns) sequences
@tetsuo-desktop:~$ more BACE_HUMAN.dat
>BACE1_HUMAN P56817 Beta-secretase 1 (3.4.23.46) (Aspartyl protease 2) (ASP2) (A
sp 2) (Beta-site amyloid precursor protein cleaving enzyme 1) (Beta-site APP cle
aving enzyme 1) (Memapsin-2) (Membrane-associated aspartic protease 2) (Precurso
r)
MAQALPWLLLWMGAGVLPAHGTQHGIRLPLRSGLGGAPLGLRLPRETDEEPEEPGRRGSF
VEMVDNLRGKSGQGYYVEMTVGSPPQTLNILVDTGSSNFAVGAAPHPFLHRYYQRQLSST
YRDLRKGVYVPYTQGKWEGELGTDLVSIPHGPNVTVRANIAAITESDKFFINGSNWEGIL
GLAYAEIARPDDSLEPFFDSLVKQTHVPNLFSLQLCGAGFPLNQSEVLASVGGSMIIGGI
DHSLYTGSLWYTPIRREWYYEVIIVRVEINGQDLKMDCKEYNYDKSIVDSGTTNLRLPKK
VFEAAVKSIKAASSTEKFPDGFWLGEQLVCWQAGTTPWNIFPVISLYLMGEVTNQSFRIT
ILPQQYLRPVEDVATSQDDCYKFAISQSSTGTVMGAVIMEGFYVVFDRARKRIGFAVSAC
HVHDEFRTAAVEGPFVTLDMEDCGYNIPQTDESTLMTIAYVMAAICALFMLPLCLMVCQW
CCLRCLRQQHDDFADDISLLK
>BACE2_HUMAN Q9Y5Z0 Beta-secretase 2 (3.4.23.45) (Aspartic-like protease 56 kDa)
 (Aspartyl protease 1) (ASP1) (Asp 1) (Beta-site amyloid precursor protein cleav
ing enzyme 2) (Beta-site APP cleaving enzyme 2) (Down region aspartic protease)
(DRAP) (Memapsin-1) (Membrane-associated aspartic protease 1) (Theta-secretase)
(Precursor)
MGALARALLLPLLAQWLLRAAPELAPAPFTLPLRVAAATNRVVAPTPGPGTPAERHADGL
ALALEPALASPAGAANFLAMVDNLQGDSGRGYYLEMLIGTPPQKLQILVDTGSSNFAVAG
TPHSYIDTYFDTERSSTYRSKGFDVTVKYTQGSWTGFVGEDLVTIPKGFNTSFLVNIATI
FESENFFLPGIKWNGILGLAYATLAKPSSSLETFFDSLVTQANIPNVFSMQMCGAGLPVA
GSGTNGGSLVLGGIEPSLYKGDIWYTPIKEEWYYQIEILKLEIGGQSLNLDCREYNADKA
IVDSGTTLLRLPQKVFDAVVEAVARASLIPEFSDGFWTGSQLACWTNSETPWSYFPKISI
YLRDENSSRSFRITILPQLYIQPMMGAGLNYECYRFGISPSTNALVIGATVMEGFYVIFD
RAQKRVGFAASPCAEIAGAAVSEISGPFSTEDVASNCVPAQSLSEPILWIVSYALMSVCG
AILLVLIVLLLLPFRCQRRPRDPEVVNDESSLVRHRWK


EMBOSS恐ろしや。GUIでこの作業をするとちょっと面倒くさいなあと思います。

ubuntuの環境でEMBOSSを使えるようにする!!!(しんどかった。。。)


#まずはコンパイルできる環境を整えるために必要なソフトをインストールします。


$sudo apt-get install build-essential


EMBOSSのホームページ http://emboss.sourceforge.net/
ここのEMBOSSのソースファイルがおいてある ftp://emboss.open-bio.org/pub/EMBOSS/

$ls
2011                 R                 ダウンロード  デスクトップ  ビデオ    ミュージック
examples.desktop  テンプレート  ドキュメント  ピクチャ  公開

$wget ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-6.3.1.tar.gz
$ls
2011                 R                 ダウンロード  デスクトップ  ビデオ    ミュージック
EMBOSS-6.3.1.tar.gz  examples.desktop  テンプレート  ドキュメント  ピクチャ  公開

$tar xfz EMBOSS-6.3.1.tar.gz   #圧縮形式のEMBOSS-6.3.1.tar.gzをカレントディレクトリに展開する
$ls
2011          EMBOSS-6.3.1.tar.gz  examples.desktop  テンプレート  ドキュメント  ピクチャ      公開
EMBOSS-6.3.1  R                    ダウンロード      デスクトップ  ビデオ        ミュージック

$cd EMBOSS-6.3.1    #展開により生成したディレクトリに移動
$pwd
/home/tetsuo/EMBOSS-6.3.1  

$./configure --without-x
#configureコマンドは、インストールするPC環境(コンパイラの種類など)をチェックして、その環境にあったビルド方法を定義した「Makefile」というファイルに作成する。 "--without-x"というオプションをつけないとubuntu10.04の環境ではエラーが出てしまう!!!!!!!!!!!!!!!!!!

#X11 graphics have been selected but no X11 header files have been found.らしいんで

$make    #makeコマンドはMakefileに記述された方法でソースファイルをコンパイル、実行ファイルを作る。

$sudo make install #インストールを実行


#EMBOSSを使うには、"emboss.default"を作成する必要がある。以下のディレクトリにテンプレートがおいてあるのでそれをコピーして使う。

$cd /usr/local/share/EMBOSS 
$sudo cp emboss.default.template emboss.default

$wossname  #wossnameでコマンド一覧を表示しようと思って入れてもエラーメッセージが出て本当に困った。

$export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 
#これを入力する必要があることがいつまでもたっても調べきれず、途方に暮れた・・・・。外国のユーザーの方はとっくの昔に掲示板に質問してて、ビックリした。。

$wossname

Finds programs by keywords in their short description
Text to search for, or blank to list all programs: add
SEARCH FOR 'ACD'

acdc      Test an application ACD file
acdpretty Correctly reformat an application ACD file
acdtable  Generate an HTML table of parameters from an application ACD file
acdtrace  Trace processing of an application ACD file (for testing)
acdvalid  Validate an application ACD file


$showdb     #データベースを表示。
Displays information on configured databases
# Name         Type       ID  Qry All Comment
# ============ ========== ==  === === =======
tpir           Protein    OK  OK  OK  PIR using NBRF access for 4 files
tsw            Protein    OK  OK  OK  Swissprot native format with EMBL CD-ROM index
tswnew         Protein    OK  OK  OK  Swissnew as 3 files in native format with EMBL CD-ROM index
twp            Protein    OK  OK  OK  EMBL new in native format with EMBL CD-ROM index
tembl          Nucleotide OK  OK  OK  EMBL in native format with EMBL CD-ROM index
tgb            Nucleotide OK  OK  OK  Genbank IDs
tgenbank       Nucleotide OK  OK  OK  GenBank in native format with EMBL CD-ROM index

#このままでは(初期状態ではネットワーク越しの遺伝子配列の取得が指定されていないので、一例として、先ほど作成したemboss.defaultの内容に対して以下の記述を追加する)

# ただし、emboss.defaultも読み取り専用の設定となっておいる。これを変更するため、root権限で読み取り専用を解除する$sudo nautilusでパスワードを入力し、ファイルマネージャーを起動する。
# /usr/local/share/EMBOSSのフォルダを開き、「emboss.default」を右クリックして、「プロパティ」→「アクセス権」のタブを開き、「読み込み専用」のところを「読み書き」に変更。そしてやっと開いたファイルに対して、本文の末尾に続けて、ネット上で公開されているKNOBのソースコード(http://itoshi.tv/emboss.default)をぶち込む。これでかの有名なKNOB(Knoppix for Bio)と同じ環境でEMBOSSを楽しむことができる(ハズ)♪♪♪



--------------ここから-------------------------------



#
# emboss.default for Knoppix for bio (KNOB)
#
# written by Itoshi NIKAIDO <dritoshi at gmail dot com>
#

SET emboss_data /usr/share/EMBOSS/data

########################
### access method SRSWWW
########################

DB embl [
  type: N
  format: embl
  method: srswww
  dbalias: embl
  fields: "sv des org key"
  url: http://srs.ebi.ac.uk/cgi-bin/wgetz
  comment: "The EMBL nucleotide sequence database constitutes Europes primary nucleotide sequence resource. The database is produced in an international collaboration with GenBank (USA) and the DNA Database of Japan (DDBJ)."
]

DB refseq [
  type: N
  format: genbank
  method: srswww
  dbalias: REFSEQ
  fields: "sv des org key"
  url: http://srs.ebi.ac.uk/cgi-bin/wgetz
  comment: "Database providing non-redundant curated data representing knowledge of known genes"
]

DB swall [
  type: P
  format: swiss
  method: srswww
  dbalias: SWALL
  fields: "sv des org key"
  url: http://srs.ebi.ac.uk/cgi-bin/wgetz
  comment: "A combined database of Swiss-Prot, SPTREMBL and TREMBLNEW. Does not contain REMTREMBL. "
]

DB swissprot [
  type: P
  format: swiss
  method: srswww
  dbalias: SWISSPROT
  fields: "sv des org key"
  url: http://srs.ebi.ac.uk/cgi-bin/wgetz
  comment: "Database of protein sequences produced collaboratively by the Swiss Institute for Bioinformatics (SIB) and the European Bioinformatics Institute (EBI). "
]

DB SpTrEMBL [
  type: P
  format: embl
  method: srswww
  dbalias: SPTREMBL
  fields: "sv des org key"
  url: http://srs.ebi.ac.uk/cgi-bin/wgetz
  comment: "Contains the translations of all coding sequences present in the EMBL sequence database not yet integrated in SWISS-PROT "
]

DB pir [
  type: P
  format: pir
  method: srswww
  dbalias: PIR
  fields: "sv des org key"
  url: http://srs.ebi.ac.uk/cgi-bin/wgetz
  comment: "Protein Identification Resource. "
]

DB refseqp [
  type: P
  format: genbank
  method: srswww
  dbalias: REFSEQP
  fields: "sv des org key"
  url: http://srs.ebi.ac.uk/cgi-bin/wgetz
  comment: "Database of protein information from REFSEQ "
]

DB DDBJRELEASE [
  type: N
  format: genbank
  method: srswww
  url: http://srs.ddbj.nig.ac.jp/cgi-bin/wgetz
  dbalias: DDBJRELEASE
  fields: "sv des org key"
  comment: "DDBJRELEASE IDs"
]

DB DDBJNEW [
  type: N
  format: genbank
  method: srswww
  url: http://srs.ddbj.nig.ac.jp/cgi-bin/wgetz
  dbalias: DDBJNEW
  fields: "sv des org key"
  comment: "DDBJNEW IDs"
]

DB GENBANK [
  type: N
  format: genbank
  method: url
  url: "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&rettype=gb&retmode=text&id=%s"
  dbalias: GENBANKN
  comment: "NCBI IDs"
]

# SET emboss_proxy "10.3.1.1:8080"



--------------ここまで-----------------------------------------

あと、これも入れときました。

DB swissprot [
  type: P
  format: swiss
  method: srswww
  dbalias: SWISSPROT
  fields: "sv des org key"
  url: http://srs.ebi.ac.uk/cgi-bin/wgetz
  comment: "Database of protein sequences by SIB and EBI. "
]


これで完成です!!

これで私のPCでもEMBOSSが楽しみたい放題になるといいなあと思います。

ubuntuでC言語

#まずはじめにgeditテキストエディタで以下のプログラムを作成し、"Hello_world.c"という拡張子cのファイルを作成した。

/* Hello_world.c */
    #include <stdio.h>
   
    int main()
    {
        printf("はろーわぁるど\n");
        return 0;
    }
$sudo apt-get install build-essential  #C/C++ ヘッダ及びライブラリのインストール

$cd /home/tetsuo/2011/1101

$ls
110120_ネットワーク練習_2.txt    110124_Screenshot_2.png
110121_Linux_R                   110124_randomGraph.png
110121_gplot.png                 110124_randomGraphのコマンド.txt
110121_グラフ3                   110124_randomGraphのコマンド_2.txt
110122_gene1-gene2_relation.png  110124_ubuntuでC.txt
110122_シェルの練習              110124_グラフ_1.png
110122_散布図                    110124_グラフ_2.png
110123_シェルの練習              110124_グラフ_3
110124_EMBOSSのインストール.txt  110124_グラフ_3.png
110124_Screenshot_1.png          Hello_world.c


$cat Hello_world.c #catコマンドでカレントディレクトリのソースファイルを読み込む
/* Hello_world.c */
    #include <stdio.h>
   
    int main()
    {
        printf("はろーわぁるど\n");
        return 0;
    }
$gcc -o Hello_world.c    #このコマンドでgccを用いてコンパイルできる!!!!!!!!!!
$ls                                 
110120_ネットワーク練習_2.txt    110124_randomGraph.png
110121_Linux_R                   110124_randomGraphのコマンド.txt
110121_gplot.png                 110124_randomGraphのコマンド_2.txt
110121_グラフ3                   110124_ubuntuでC.txt
110122_gene1-gene2_relation.png  110124_グラフ_1.png
110122_シェルの練習              110124_グラフ_2.png
110122_散布図                    110124_グラフ_3
110123_シェルの練習              110124_グラフ_3.png
110124_EMBOSSのインストール.txt  Hello_world.c
110124_Screenshot_1.png          a.out #a.outという謎のファイルができてる!!!
110124_Screenshot_2.png

$./a.out
はろーわぁるど       #この一文を出力するためにどれだけ時間がかかったことか(涙)

二つのノードからなるグラフをいじりたおす!!!

$R
library(graph)
library(Rgraphviz)
g1 <- new("graphNEL", nodes=c("GENE1", "GENE2"), edgemode="directed")

g2 <- addEdge("GENE1", "GENE2", g1, 1)
g3 <- addEdge("GENE2", "GENE1", g1, 1)
g4 <- addEdge("GENE2", "GENE1", g2, 1)

par(mfrow=c(2,2))
plot(g1)
plot(g2)
plot(g3)
plot(g4)

node1 <- list(fillcolor = "green")
edge1 <- list(color = "red")
attrs1 <- getDefaultAttrs(list(node = node1, edge = edge1))
plot(g4, attrs = attrs1)

par(mfrow=c(2,2))
plot(g1, attrs = attrs1)
plot(g2, attrs = attrs1)
plot(g3, attrs = attrs1)
plot(g4, attrs = attrs1)

setwd("/home/tetsuo/2011/1101")
png("110124_グラフ_3")
par(mfrow=c(2,4))
plot(g1)
plot(g2)
plot(g3)
plot(g4)
plot(g1, attrs = attrs1)
plot(g2, attrs = attrs1)
plot(g3, attrs = attrs1)
plot(g4, attrs = attrs1)
dev.off()

q()


$exit

グラフをいじり倒す!!!!!

$R
library(graph)
library(Rgraphviz)
set.seed(123)
V <- c("GENE1", "GENE2", "GENE3", "GENE4", "GENE5", "GENE6", "GENE7", "GENE8")
M <- 1:10
p <- 0.5
 #V: The nodes of the graph.
 #M: A set of values used to generate the graph.
 #p: A value between 0 and 1 that indicates the probability of selecting an element of ‘M’
g1 <- randomGraph(V,M,p)
plot(g1)
setwd("/home/tetsuo/2011/1101") #ディレクトリの変更
png("110124_グラフ_1.png")
plot(g1)
dev.off()


class(g1)             #g1オブジェクトのクラスを表示  
nodes(g1)             #g1のすべてのノードの名称を表示
edgeNames(g1)           #g1のエッジ(辺)の名称を表示
numEdges(g1)            #g1のエッジの数を表示
degree(g1)            #それぞれのノードでのエッジ数を表示
adj(g1, "GENE2")         #引数で与えられるノードに隣接するノードを表示させる
acc(g1, "GENE1")         #引数のノードに到達するための距離を返す

par(mfrow=c(2,2))        #以下に表示される図を一つのウィンドウに割り付けて表示させる(2*2)
plot(g1, "fdp", main="fdp")  
plot(g1, "circo", main="circo")
plot(g1, "twopi", main="twopi")
plot(g1, "neato", main="neato")

png("110124_グラフ_2.png")   #pngファイルで割り付けた図を保存    
par(mfrow=c(2,2))
plot(g1, "fdp", main="fdp")
plot(g1, "circo", main="circo")
plot(g1, "twopi", main="twopi")
plot(g1, "neato", main="neato")
dev.off()

グラフの作成

$R
> set.seed(123)      #生成される構造を固定するためにawr.seed関数を123で初期化する
> V <- letters[1:10]
> M <- 1:4
> library(graph)
> ls("package:graph") #パッケージに含まれる関数を見る
  [1] "DFS"                   "Dist"                  "MultiGraph"          
  [4] "aM2bpG"                "acc"                   "addEdge"             
  [7] "addNode"               "adj"                   "attrDataItem"        
 [10] "attrDataItem<-"        "attrDefaults"          "attrDefaults<-"      
 [13] "aveNumEdges"           "boundary"              "buildRepDepGraph"    
 [16] "calcProb"              "calcSumProb"           "clearNode"           
 [19] "clusteringCoefficient" "combineNodes"          "complement"          
 [22] "connComp"              "degree"                "dumpGXL"             
 [25] "duplicatedEdges"       "eWV"                   "edgeData"            
 [28] "edgeData<-"            "edgeDataDefaults"      "edgeDataDefaults<-"  
 [31] "edgeL"                 "edgeMatrix"            "edgeNames"           
 [34] "edgeRenderInfo"        "edgeRenderInfo<-"      "edgeSetIntersect0"   
 [37] "edgeSetUnion0"         "edgeWeights"           "edgemode"            
 [40] "edgemode<-"            "edges"                 "eweights"            
 [43] "extractFromTo"         "extractGraphAM"        "extractGraphBAM"     
 [46] "fromGXL"               "ftM2adjM"              "ftM2graphNEL"        
 [49] "ftM2int"               "graph.par"             "graph.par.get"       
 [52] "graph2SparseM"         "graphBAM"              "graphIntersect"      
 [55] "graphRenderInfo"       "graphRenderInfo<-"     "graphUnion"          
 [58] "gxlTreeNEL"            "inEdges"               "int2ftM"             
 [61] "intersection"          "intersection2"         "isAdjacent"          
 [64] "isConnected"           "isDirected"            "join"                
 [67] "leaves"                "listEdges"             "mgEdgeData"          
 [70] "mgEdgeData<-"          "mostEdges"             "nodeData"            
 [73] "nodeData<-"            "nodeDataDefaults"      "nodeDataDefaults<-"  
 [76] "nodeRenderInfo"        "nodeRenderInfo<-"      "nodes"               
 [79] "nodes<-"               "numEdges"              "numNoEdges"          
 [82] "numNodes"              "parRenderInfo"         "parRenderInfo<-"     
 [85] "pathWeights"           "randomEGraph"          "randomGraph"         
 [88] "randomNodeGraph"       "removeAttrDataItem<-"  "removeEdge"          
 [91] "removeEdgesByWeight"   "removeNode"            "reverseEdgeDirections"
 [94] "sparseM2Graph"         "subGraph"              "subsetEdgeSets"      
 [97] "threshold"             "toDotR"                "toGXL"               
[100] "ugraph"                "ugraphOld"             "union"               
[103] "updateGraph"           "validGraph"            "validateGXL"         
> g1 <- randomGraph(V,M,0.2)
> g1
A graphNEL graph with undirected edges
Number of Nodes = 10
Number of Edges = 16
> class(g1)
[1] "graphNEL"
attr(,"package")
[1] "graph"
> slotNames(g1)
[1] "nodes"      "edgeL"      "edgeData"   "nodeData"   "renderInfo"
[6] "graphData"
> library(Rgraphviz)
 要求されたパッケージ grid をロード中です
> plot(g1)
> setwd("/home/tetsuo/2011/1101")
> getwd()
[1] "/home/tetsuo/2011/1101"
> png("110124_randomGraph.png")
> plot(g1)
> dev.off()
null device
          1
> q()
$exit

Linuxのhistoryコマンド!

 tetsuo@tetsuo-desktop:~$ history
    1  perl
    2  $ cat hogehoge
    3  cat: hogehoge: そのようなファイルやディレクトリはありません
    4  apt-get install R
    5  R
    6  sudo apt-get install r-base-core
    7  sudo apt-get install graphviz graphziz-dev
    8  sudo apt-get install graphviz graphviz-dev
    9  source("http://www.bioconductor.org/biocLite.R")
   10  R
   11  sudo apt-get install r-base-core
   12  apt-get update
   13  sudo apt-get update
   14  sudo apt-get install r-base-core
   15  R
   16  sudo apt-get update
   17  R
   18  y
   19  R
   20  T
   21  R
   22  /home/tetsuo/2011/1101
   23  NULL
   24  R
   25  pwd
   26  ls
   27  #kooaf
   28  exit
   29  mv 2011
   30  echo
   31  shell
   32  SHELL
   33  echo $ SHELL
   34  ls /home/tetsuo/2011
   35  ls 2011
   36  cd /2011
   37  cd /home/tetsuo/2011
   38  lis
   39  ls
   40  pwd
   41  R
   42  exit
   43  man
   44  cd ダウンロード
   45  exit
   46  pwd
   47  ls
   48  echo $SHELL
   49  histry
   50  1
   51  history
   52  sudo apt-get install graphviz graphziz-dev
   53  ls
   54  cd 2011
   55  ls
   56  cd 1101
   57  ls
   58  pwd
   59  cd
   60  pwd
   61  cd /home/tetsuo/2011/1101
   62  pwd
   63  mkdir /home/tetsuo/2011/1101/test
   64  test
   65  cd test
   66  mkdir -p test2/test3
   67  ls
   68  cd test2
   69  ls
   70  cd ..
   71  cd ../..
   72  cd ..
   73  cd..
   74  pwd
   75  exit
   76  history
   77  pwd
   78  history
tetsuo@tetsuo-desktop:~$ !77
pwd
/home/tetsuo
tetsuo@tetsuo-desktop:~$  exit

Linuxのディレクトリ操作

Linuxのごく簡単なディレクトリ操作に挑戦しました!!


tetsuo@tetsuo-desktop:~$ ls #カレントディレクトリのディレクトリとファイルを表示
2011  examples.desktop  テンプレート  ドキュメント  ピクチャ      公開
R     ダウンロード      デスクトップ  ビデオ        ミュージック
tetsuo@tetsuo-desktop:~$ cd 2011 #カレントディレクトリに含まれる2011ディレクトリに移動
tetsuo@tetsuo-desktop:~/2011$ ls
1101
tetsuo@tetsuo-desktop:~/2011$ cd 1101
tetsuo@tetsuo-desktop:~/2011/1101$ ls
110120_ネットワーク練習_2.txt  110122_gene1-gene2_relation.png
110121_Linux_R                 110122_シェルの練習
110121_gplot.png               110122_散布図
tetsuo@tetsuo-desktop:~/2011/1101$ pwd #カレントディレクトリを表示
/home/tetsuo/2011/1101
tetsuo@tetsuo-desktop:~/2011/1101$ cd #ホームディレクトリに移動
tetsuo@tetsuo-desktop:~$ pwd
/home/tetsuo
tetsuo@tetsuo-desktop:~$ cd /home/tetsuo/2011/1101
tetsuo@tetsuo-desktop:~/2011/1101$ pwd
/home/tetsuo/2011/1101
tetsuo@tetsuo-desktop:~/2011/1101$ mkdir /home/tetsuo/2011/1101/test # /home/tetsuo/2011/1101/testというディレクトリを作成
tetsuo@tetsuo-desktop:~/2011/1101$ test
tetsuo@tetsuo-desktop:~/2011/1101$ cd test
tetsuo@tetsuo-desktop:~/2011/1101/test$ mkdir -p test2/test3 #カレントディレクトリの下にtest2ディレクトリを作って、その下にtest3ディレクトリを作成する
tetsuo@tetsuo-desktop:~/2011/1101/test$ ls
test2
tetsuo@tetsuo-desktop:~/2011/1101/test$ cd test2
tetsuo@tetsuo-desktop:~/2011/1101/test/test2$ ls
test3
tetsuo@tetsuo-desktop:~/2011/1101/test/test2$ cd .. #一つ上のディレクトリに移動
tetsuo@tetsuo-desktop:~/2011/1101/test$ cd ../..   #2つ上のディレクトリに移動
tetsuo@tetsuo-desktop:~/2011$ cd ..          #一つ上のディレクトリに移動
tetsuo@tetsuo-desktop:~$ pwd              #カレントディレクトリを表示
/home/tetsuo
tetsuo@tetsuo-desktop:~$ exit                  #シェルを終了

続:Rによる基本的な計算

> 4 == 5 #
[1] FALSE
> 0 == 0
[1] TRUE
> 8 > 9
[1] FALSE
> 90 < 100
[1] TRUE
> x <- c(1,2,3,4) 
> x < 3
[1]  TRUE  TRUE FALSE FALSE
> x >= c(1,0,2,4)
[1] TRUE TRUE TRUE TRUE
> y <- c("gene1", "gene2", 1:5)
> y
[1] "gene1" "gene2" "1"     "2"     "3"     "4"     "5"   
> y[2]
[1] "gene2"
> y > 2
[1]  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE
> y[2] <- 3
> y
[1] "gene1" "3"     "1"     "2"     "3"     "4"     "5"   
> y[2] <- "protein2"
> y
[1] "gene1"    "protein2" "1"        "2"        "3"        "4"        "5"      
> y[2:4] <- c(1,3,2,6)
 警告メッセージ:
In y[2:4] <- c(1, 3, 2, 6) :
   置き換えるべき項目数が,置き換える数の倍数ではありませんでした
> y[2:5] <- c(1,3,5,6)
> y
[1] "gene1" "1"     "3"     "5"     "6"     "4"     "5"   

Rによる基本的な計算

> 1+1
[1] 2
> 1-1
[1] 0
> 1*1
[1] 1
> 1/2
[1] 0.5
> 1 %/%2 #1/2の整数部は?
[1] 0
> 1 %% 2     #1/2のあまり余りは?
[1] 1
> log2(2)  #ログ2底の2の値は?
[1] 1
> log10(100)
[1] 2
> a <- 3
> b <- 6
> a*b    #aやらbやらのオブジェクトを生成してもできよるぞい!
[1] 18
> a/b
[1] 0.5

でけた!!

シェルのコマンドのお勉強

#今現在のディレクトリを表示
$ pwd
/home/tetsuo
#カレントディレクトリ内のディレクトリやファイルを表示
$ ls
2011  examples.desktop  テンプレート  ドキュメント  ピクチャ      公開
R     ダウンロード      デスクトップ  ビデオ        ミュージック
#2011ディレクトリ内のディレクトリやファイルを表示
$ ls /home/tetsuo/2011
1011
#同上
$ ls 2011
1101
#ディレクトリの変更
$ cd /home/tetsuo/2011
$ pwd
/home/tetsuo/2011
#シェルの終了
$ exit

でけた!!

Rを用いて簡単な散布図を描いてみる

Rを用いて簡単な散布図を描いてみます。
生物ネタとして、縦軸横軸を各々仮想の遺伝子gene1, gene2の発現値としています。




R
setwd("/home/tetsuo/2011/1101")
getwd()

gene1 <- c(1,5,8,9,16,25)
gene2  <- c(6,8,5,10,60,87)

plot(gene1,gene2)

png("110122_gene1-gene2_relation.png")
plot(gene1,gene2)
dev.off()

q()

でけた!

前の記事で作ったplot(g)をせっかくなので保存してみました~_~

png("110121_gplot.png")
plot(g)
dev.off()

素敵!

ちなみにこの図は
『RとBioconductorを用いたバイオインフォマティクス』という本の
コードを参照しました!

Rで簡単なネットワークを描かせたい

sudo apt-get install graphviz graphviz-dev

R
source("http://bioconductor.org/biocLite.R")
biocLite(c("graph", "RBGL", "Rgraphviz"))

library(graph)
library(Rgraphviz)

myNodes <- c("s", "p", "q", "r")
s = list(edges = c("p", "q"))
p = list(edges = c("p", "r"))
q = list(edges = c("p", "r"))
r = list(edges = ("s"))
myEdges <- list(s = s, p = p, q = q, r = r)
myEdges

#myEdges <- list(s = list(edges = c("p", "q")), p = list(edges = c("p", "r")), q = list(edges = c("p", "r")), r = list(edges = c("s")))

g <- new("graphNEL", nodes = myNodes, edgeL = myEdges, edgemode = "directed")
g
plot(g)

よし! うまくいった!

昔、windowsの環境で、R上でGraphvizが動かず四苦八苦したが、今回はubuntuがよく裏で動いてくれてるみたい笑

RにBioconductorを導入してみる。

R
source("http://bioconductor.org/biocLite.R")
biocLite()
q()
できた!

ubuntuでRを使ってみる

sudo apt-get update
sudo apt-get install r-base-core
R
q()

ふ・・・。楽しい。