通过匹配来自另一个文件的 snp 列对 GWAS 结果进行子集化
Subsetting GWAS results by matching snp column from another file
我有一个 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
我想将文件 2 的第 1 列与文件 1 的第 2 列相匹配,以创建一个 文件 3,例如:
1 chr1_20184_GAATA_G 0.033 0.180
1 chr1_791101_T_TGG 0.099 0.170
通过使用下面的代码,我得到一个空的 file3:
awk 'FNR==NR{arr[];next} (() in arr)' file2 file1 > file3
使用您展示的示例,请尝试以下 awk
代码。
awk 'FNR==NR{arr[[=10=]];next} ( in arr)' file2 file1
或
awk 'FNR==NR{arr[];next} ( in arr)' file2 file1
解释:对数组使用 $0(在第一个解决方案中)或 $1(在 OR 解决方案中)而不是在第一个块中使用 $2然后您的其余代码就可以匹配;此处匹配记录。
我有一个 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
我想将文件 2 的第 1 列与文件 1 的第 2 列相匹配,以创建一个 文件 3,例如:
1 chr1_20184_GAATA_G 0.033 0.180
1 chr1_791101_T_TGG 0.099 0.170
通过使用下面的代码,我得到一个空的 file3:
awk 'FNR==NR{arr[];next} (() in arr)' file2 file1 > file3
使用您展示的示例,请尝试以下 awk
代码。
awk 'FNR==NR{arr[[=10=]];next} ( in arr)' file2 file1
或
awk 'FNR==NR{arr[];next} ( in arr)' file2 file1
解释:对数组使用 $0(在第一个解决方案中)或 $1(在 OR 解决方案中)而不是在第一个块中使用 $2然后您的其余代码就可以匹配;此处匹配记录。