Подмножество результатов GWAS путем сопоставления столбца snp из другого файла

У меня есть файл сводной оценки GWAS со следующими столбцами ( файл 1):

      1   chr1_1726_G_A      0.023  0.160
1   chr1_20184_GAATA_G 0.033  0.180
1   chr1_791101_T_TGG  0.099  0.170

файл 2

      chr1_20184_GAATA_G
chr1_791101_T_TGG

Я хотел бы сопоставить столбец 1 файла 2 со столбцом 2 файла 1, чтобы создать файл 3, например:

      1   chr1_20184_GAATA_G 0.033  0.180
1   chr1_791101_T_TGG  0.099  0.170

Используя приведенный ниже код, я получаю пустой файл3 :

      awk 'FNR==NR{arr[$2];next} (($2) in arr)' file2 file1 > file3

1 ответ

С вашими показанными образцами попробуйте следующее awk код.

      awk 'FNR==NR{arr[$0];next} ($2 in arr)' file2 file1

ИЛИ ЖЕ

      awk 'FNR==NR{arr[$1];next} ($2 in arr)' file2 file1

Объяснение: Используйте $ 0 (в 1-м решении) ИЛИ $ 1 (в решении OR) для массива, а не используйте $ 2 в первом блоке, и тогда остальная часть вашего кода будет соответствовать; совпадающие записи здесь.

Другие вопросы по тегам