我有 2 个遗传数据集,都有一个染色体位置列。我正在尝试根据每行的染色体位置与文件 2 中的染色体位置相比来过滤文件 1。文件 1 行提取的条件是只有染色体位置大于 5000 或小于 5000 的行选择文件 2 的所有行中的任何给定染色体位置。最终,我试图确保我从文件 1 中提取的那些遗传变异比文件 2 中的那些具有大于 5000 +/- 的距离。
例如,我的数据如下所示:
文件 1:
Variant Chromosome Position
Variant1 14000
Variant2 9000
Variant3 37000
Variant4 21000
文件 2:
Variant Chromosome Position
Variant1 10000
Variant2 20000
Variant3 30000
预期输出(与文件 2 的每一行相比,位置距离大于 5000 的变体):
Variant Chromosome Position
Variant3 37000
我发现从 2 个文件中提取数据的问题,但取决于匹配或 unqiue。我还没有找到应用 +/- 条件来解决我的问题的东西,而且我不确定在哪里可以查看/学习。我是 linux 新手,所以我一直在尝试构建一个具有以下效果的命令:
awk 'BEGIN{FS=OFS="\t"} FNR==1{print;next} {if($2>=+5000 | $2<=-5000) print $0}' file1 file2 > newfile
但我不确定让这个工作的语法 - 任何帮助或指导将不胜感激。
也尝试(考虑范围之间的“漏洞”)