justRMAその後

処理したい生データ(CEL.gzのファイル)だけを実行するdirectoryに集めて、justRMAを実行するのであるが、これらはとくにgzip圧縮を解凍する必要はなく、圧縮されたままでも実行されるようである。同じ生データを何回も別のデータセットとして使うことになると思うが、cpコマンドでその都度複製を作るのではなく、lnコマンドでリンクにしたほうがディスクスペースの削減になる。

[shell] ln ../140909/GSM1217731.CEL.gz . [/shell]

という具合に。この例では、今の作業directoryの親directoryにまた別の作業directory(名前は140909)があって、その中のGSM1217731.CEL.gzを再度使うのであるが、単にコピーするのでなく、リンクを張っている。

R/Bioconductorを入れてjustRMAを実行する部分は過去のエントリを参照。

生成されたファイル(RMA.txt)のヘッダ行(一番先頭の行)には各実験のラベルとしてファイル名が使われていて、例えばGSM1217731.CEL.gzなどと書かれている。情報として欲しいのはGSMのID('GSM1217731'だけ)のみで、残りの.CEL.gzは余分で、スペースを取り、むしろ邪魔である。それを抹殺するのに以下のperlワンライナーが有効である。

[shell] perl -i~ -pe 's/.CEL.gz//g' RMA.txt [/shell]

ポイントは置換の表現の最後にある'g'。これを指定することで最初の一箇所だけでなく、すべてのマッチする部分が変換される。RMA.txtに置換後のファイルが生成され、RMA.txt~にオリジナルのファイルがrenameされる。

余談であるが、そういったファイルの中身を表示するためのページャーのコマンドにlessがあるが、 [shell] less -S RMA.txt [/shell] と、-Sオプションを付けると長い一行が改行されることなく表示されるので、カラムの数が多かったりして横長のファイルを見る際には重宝する。

逆にカラムの後のほうを見たいときには、cutコマンドで切り出す。左から1カラム目と11カラム目だけを抜き出す場合は [shell] cut -f 1,11 RMA.txt [/shell] のように。左から1カラム目と11カラム目_以降_を抜き出す場合は [shell] cut -f 1,11- RMA.txt [/shell] とすればよい。


Written by bonohu in misc on 火 09 9月 2014.