##ここに書いてあること
便利なコマンドjoin
使いかたのまとめ
バイオシェル芸では遺伝子発現データの結合などで使う
##参考にした記事
こちらにほとんど書いてある。もしかしてシェル芸人...
joinコマンドで覚えておくと便利な使い方8個
こちらも。
[joinコマンドが便利過ぎて生きるのが辛い]
(http://yut.hatenablog.com/entry/20120907/1346975281)
##使いかた
1列目が遺伝子名, 2列目に発現量(何かの値)
結合したい列でsort
しておく
$ cat inu.txt
geneA 100
geneB 110
geneC 120
geneE 130
$ cat neko.txt
geneA 200
geneB 210
geneD 220
geneF 230
###inuとnekoで共通に発現している遺伝子
$ join -1 1 -2 1 inu.txt neko.txt
geneA 100 200
geneB 110 210
オプション-1 1 -2 1
は結合キーとなる列を指定
(1番目のファイルの1列目と2番目のファイルの1列目)
2つのファイルのどちらにも値がある行だけが出力される
###全ての遺伝子の値
$ join -o '0,1.2,2.2' -a 1 -a 2 -e '-' inu.txt neko.txt
geneA 100 200
geneB 110 210
geneC 120 -
geneD - 220
geneE 130 -
geneF - 230
発現していない(値がない)遺伝子のところに-が入る
その他オプション
-o 'num,num.num,....'
表示する列を指定, 0は結合キーの列,n.nでn番目のファイルのn列目
-a num
指定したファイルの行は全部表示する
-e 'string'
値がないところを'string'で指定した文字で埋める
- 先日のバイオシェル芸勉強会のお題にあった
##その他
- -e 'string'でデータのないフィールドに何か文字を入れたいときは、-o オプションと一緒でないと(つまり出力フィールドを指定してやらないと)何も出てこない