0

awk を使用して解決しようとしている問題があります。これは、SNP が別の SNP の 60bp 以内にないという要件がある場合に、SNP チップに配置するための良質の一塩基多型 (SNP) を選択する用途があります。ファイルは次のようになります。

comp1008_seq1 20
comp1008_seq1 234
comp1008_seq1 260
comp1008_seq1 500
comp3044_seq1 300
comp3044_seq1 350
comp3044_seq1 460
comp3044_seq1 600
...................

同じコンポーネント (フィールド 1 に基づく) からのものである場合に、(フィールド 2 に基づく) +-60 以内にないレコードのみを印刷したいと考えています。したがって、それらが異なるコンポーネント (フィールド 1 に基づく) からのものである場合、それらが +-60 内にあるかどうかは問題ではありません。上記の例の出力は次のようになります。

comp1008_seq1 20
comp1008_seq1 234
comp1008_seq1 500
comp3044_seq1 300
comp3044_seq1 460
comp3044_seq1 600

4

1 に答える 1

3

http://ideone.com/h6oEI

{
        if ($1 != last1 || abs($2-last2) > 60 ) print   
        last1 = $1; last2 = $2
}

function abs(x){
        return x > 0 ? x : -x
}
于 2012-04-18T13:27:14.180 に答える