我正在使用 GWAS 数据,试图选择连锁不平衡独立基因座。我的方法是将所有重要的 SNP 从最重要的 -> 最不重要的顺序排列,然后在 1KG 的列表中删除任何处于连锁不平衡 (r2 > 0.2) 且 SNP 高于它们的 SNP。
我有一个文件,其中我的 SNP 排名最高 --> 最不重要:
rs2021722
rs1117490
rs2844776
rs971570
我还有一个文件列出了 LD 中的 SNP,其中的每一个(来自 SNAP):
SNP Proxy Distance RSquared Chromosome Coordinate_HG18
rs2021722 rs2021722 0 1.000 chr6 30282110
rs2021722 rs885912 502 1.000 chr6 30282612
rs2021722 rs971570 1618 1.000 chr6 30280492
rs2021722 rs2844776 2304 1.000 chr6 30279806
rs2021722 rs1117490 3621 1.000 chr6 30278489
rs1117490 rs1117490 0 1.000 chr6 30278489
rs1117490 rs2517610 230 1.000 chr6 30278259
rs2844776 rs971570 686 1.000 chr6 30280492
rs2844776 rs1117490 1317 1.000 chr6 30278489
rs971570 rs2021722 1618 1.000 chr6 30282110
rs971570 rs1117490 2003 1.000 chr6 30278489
我想执行一个脚本,它将读取第一个文件中的 SNP ID,在第二个文件中找到该 SNP ID,然后读取第二个文件的“代理”列。如果第二个文件中没有任何代理 SNP 位于第一个文件的较低行号(即文件中较高的位置,具有更好的排名),我希望将该 SNP ID 写入我的输出文件。
在此示例中,我的输出文件如下所示:
rs2021722
rs117490
我在 awk 和 bash 方面有一些经验,但对两者都很陌生,不知道从哪里开始完成这项任务。非常感谢任何指针。