我有一个包含以下列的文件:
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
脚本吗?
答案 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
魔术问题的神奇答案...... :)