我有两个不同的文件,一个包含大约 200 万行以上的 chr、碱基对位点和甲基化调用。所以基本上这些都是基因组中的所有 CpG 位点。
chr1 163881 163881 100 2 0
chr1 163896 163896 100 2 0
chr1 163927 163927 100 2 0
chr1 163994 163994 100 2 0
然后我有另一个文件,其中包含基因稳定 ID、染色体以及基因的开始和结束。
GeneId chr start end
ENSBTAG00000000010 chr21 34209956 34223394
ENSBTAG00000000141 chr11 67778940 67807964
ENSBTAG00000000246 chr29 8891472 9112311
ENSBTAG00000000265 chr22 37781491 38082210
ENSBTAG00000000309 chr13 70704649 71533711
我想在我的第二个文件中搜索落入基因范围内的站点。我有一个执行此操作的 awk 命令(如下),但没有考虑该位点所在的染色体......所以我最终得到了落入每个染色体范围内的位点。
awk 'FNR==NR {A[$2]=$0;next} {for(i in A){if(i>$3 && i<$4){print A[i] FS $NF}}}' file1.txt file.txt
在执行此命令之前,我在检查染色体是否匹配时遇到问题。
有什么想法吗?
谢谢!