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