2012年6月7日木曜日

.wigのtag countをmedianでノーマライズする


MACSが出力したwiggleのtag countや、samtools mpileup -Dあるいはsamtools depthで得られたdepthを比較解析したいとき、ノーマライズのひとつのやり方として、medianで割るという方法が考えられる。

Rを使えば簡単。

wiggleを読み込む。ヘッダー2行は省く(skip=2)。
wig <- read.table("<in.wig>",skip=2)

> head(wig)
  V1  V2
1  1   3
2 11  34
3 21  49
4 31  65
5 41  81
6 51 105

2列目のデータを、2列目のmedianで割った値で置き換える。
wig$V2 <- wig$V2/median(wig$V2)

> head(wig)
  V1          V2
1  1 0.007575758
2 11 0.085858586
3 21 0.123737374
4 31 0.164141414
5 41 0.204545455
6 51 0.265151515

小数点以下2桁にする
wig$V2 <- round(wig$V2,digits=2)

> head(wig)
  V1   V2
1  1 0.01
2 11 0.09
3 21 0.12
4 31 0.16
5 41 0.20
6 51 0.27

まとめてやるなら、
wig <- read.table("<in.wig>",skip=2)
wig$V2 <- round(wig$V2/median(wig$V2),digits=2)

必要に応じてread.tableで書き出したり、プロットしたりする。

0 件のコメント:

コメントを投稿