Platform for Drug Discovery


MACSの_peaks.xlsから_peaks.bedを生成する


説明


  • 興味本位でMACSの出力ファイルである(NAME)_peak.xlsを同じく別書式で出力される(NAME)_peak.bedが生成できるか試してみました。(できました)
  • 敢えて理由を付けるとすれば、p値やFDR値、タグ数などの値を用いてフィルタリングを行った後の、ピーク情報をBEDとして取得したい場合などに利用できるかもしれません。
  • シェルスクリプトの使用例の一つと考えることもできるかもしれません。

方法


  • grep -v "^#" NA_peaks.xls | grep -v "^$" | grep -v "fold_enrichment" | awk 'BEGIN{OFS="\t"}{$2=$2-1;print $1"\t"$2"\t"$3"\tMACS_peak_"NR"\t"$7}' > NA_peak.converted.bed
    • 上記のシェルスクリプトを実行します。

入力と想定出力


  • 入力となる.xlsファイル
    $ head -n 30 NA_peaks.xls
    
    # This file is generated by MACS version 1.4.2 20120305
    
    :
    
    (中略)
    
    :
    
    # Range for calculating regional lambda is: 1000 bps and 10000 bps
    
    
    
    # tag size is determined as 51 bps
    
    :
    
    (中略)
    
    :
    
    # Redundant rate in control: 0.29
    
    # d = 52
    
    chr     start   end     length  summit  tags    -10*log10(pvalue)       fold_enrichment FDR(%)
    
    chr1    6735673 6736097 425     122     44      65.99   5.09    100
    
    chr1    16792960        16793990        1031    630     168     64.79   3.70    100
    
    chr1    17041558        17041962        405     260     45      56.15   5.84    100
    
    chr1    17059184        17059721        538     293     71      50.59   3.98    100
    
    chr1    42771094        42771243        150     99      14      52.32   8.24    100
    
    chr1    70839119        70839277        159     108     13      50.34   9.68    100
    • 最初の30行のみ表示(途中略)
    • (中略)の行は全て"#"で始まります。
  • 想定出力となる.bedファイル
    $ head -n 6 NA_peaks.bed
    
    
    
    chr1    6735672 6736097 MACS_peak_1     65.99
    
    chr1    16792959        16793990        MACS_peak_2     64.79
    
    chr1    17041557        17041962        MACS_peak_3     56.15
    
    chr1    17059183        17059721        MACS_peak_4     50.59
    
    chr1    42771093        42771243        MACS_peak_5     52.32
    
    chr1    70839118        70839277        MACS_peak_6     50.34
  • 2ファイルの違いは
    • "#"で始まるメタ情報の行と、カラムラベル行が.xlsファイルにだけあること。
    • .xlsファイルにしかないカラムが多数。.bedにだけある、ID列は行番号とprefix"MACS_peak_"で代用可。
    • 開始座標が1ずれる。

解説


  • "#"で始まる行をgrep -vで除去。同じく、空行とカラムのラベル行を除去。
  • awkを用いて、開始座標を-1する。(これは本家サイトの説明にある"Coordinates in XLS is 1-based which is different with BED format.")に基づく補正。
  • 同じくawkで必要な行だけ順番に抜き出してprintで出力する。NRは、行数を意味するawkの特殊変数。

検証


  • $ diff NA_peak.converted.bed NA_peak.bed 
    
    $
    • diffを取って、違いがあるか確認したが、なかったので、変換は成功したと判断します。

Contact us
Copyright © 2009-2017 National Institute of Genetics  [Site Policy] [Privacy Policy]