0

I have two text files:

file 1:

#CHROM  POS ID  REF ALT
1   61442   rs2531261   A   G
1   924629  rs28622096  A   G,T
1   974662  rs2465135   G   T
1   995481  rs9442393   T   G

file 2

#CHROM  POS ID  REF ALT FORMAT
1   61442   rs2531261   A   G   GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD
1   924629  rs28622096  A   G,T GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD
1   974662  rs2465135   G   T   GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD
1   987909  rs34235844  G   GTG GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD
1   995481  rs9442393   T   G   GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD

I would like to combine the files based on column 3 (ID). My output file should like:

output:

#CHROM  POS ID  REF ALT FORMAT
1   61442   rs2531261   A   G   GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD
1   924629  rs28622096  A   G,T GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD
1   974662  rs2465135   G   T   GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD
1   995481  rs9442393   T   G   GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD

I want to use awk.

1
  • What information is in file 1 that is not already in file 2? It's not clear from your question.
    – waltinator
    Feb 1, 2018 at 20:12

1 Answer 1

2

It looks like you want to filter file2 based on the IDs in file 1 (rather than merge the files):

$ awk 'NR==FNR {a[$3] = 1; next} $3 in a' file1 file2
#CHROM  POS ID  REF ALT FORMAT
1   61442   rs2531261   A   G   GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD
1   924629  rs28622096  A   G,T GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD
1   974662  rs2465135   G   T   GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD
1   995481  rs9442393   T   G   GT:GL:GQ:DP:CGA_RDP:EHQ:HQ:CGA_CEGL:PS:CGA_CEHQ:AD

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .