我的数据的awk脚本

时间:2012-10-11 14:01:29

标签: awk

我有一个包含以下列的文件:

chr1    1397031 1445511   360   chr1    1436533 1436893
chr1    3558988 3639716   9837  chr1    3565359 3575196
chr1    9634389 9711556   1958  chr1    9635273 9637231
chr1    10657207 10657742  535  chr1    10629864 10676549
chr1    12590100 12594553 4453  chr1    12550526 12600407
chr1    14599424 14601321 1897  chr1    14590538 14619056
chr1    15352815 15419459 7429  chr1    15363278 15370707

第四列表示第2列,第3列,第6列和第7列之间的重叠。

因此,第7列和第3列之间的较小值是重叠区域的结束位置。第二列和第六列之间的较大值是起始位置。

任何人都可以使用awk脚本吗?

1 个答案:

答案 0 :(得分:1)

你的问题不是那么清楚..你描述了你的数据,但没有提到你想要得到什么......

猜测您想列出“重叠”权利的开头/结尾?

awk '{s=$2>=$6?$2:$6;e=$3<=$7?$3:$7;print $1,s,e,$4}' file
输出将是:

chr1 1436533 1436893 360
chr1 3565359 3575196 9837
chr1 9635273 9637231 1958
chr1 10657207 10657742 535
chr1 12590100 12594553 4453
chr1 14599424 14601321 1897
chr1 15363278 15370707 7429

列:

col1 is the text
col2 is the overlapping start
col3 is the overlapping end
col4 is the overlap 

魔术问题的神奇答案...... :)