我有两个文件
文件1
1 1:712591 NA 712591 T G NA
1 1:733687 NA 733687 G A NA
1 1:739347 NA 739347 G C NA
1 1:739565 NA 739565 C G NA
文件2
1 712591 rs2345678
1 739347 rs12456789
1 739565 rs8523694
1 733687 rs74158260
我对file 1
中的第4列和file 2
中的第2列这两个文件进行了排序
我尝试使用join
命令将两个文件与匹配的列进行匹配:
join -1 4 -2 2 file1 file2 | head
join: file1.txt:4: is not sorted: 1 1:739347 NA 739347 G C NA
join: file2.txt:2: is not sorted: 1 739347 rs12456789
您确定使用了正确的文件吗
我得到了预期的输出:
% cat file1
1 1:712591 NA 712591 T G NA
1 1:733687 NA 733687 G A NA
1 1:739347 NA 739347 G C NA
1 1:739565 NA 739565 C G NA
% cat file2
1 712591 rs2345678
1 739347 rs12456789
1 739565 rs8523694
1 733687 rs74158260
文件2没有排序,我得到错误
% join -1 4 -2 2 file1 file2 | head
join: file2:4: is not sorted: 1 733687 rs74158260
712591 1 1:712591 NA T G NA 1 rs2345678
739347 1 1:739347 NA G C NA 1 rs12456789
739565 1 1:739565 NA C G NA 1 rs8523694
我对两个文件都进行了排序:
% sort -k4 file1 > file1.s
% sort -k2 file2 > file2.s
现在它们被排序:
% cat file1.s
1 1:712591 NA 712591 T G NA
1 1:733687 NA 733687 G A NA
1 1:739347 NA 739347 G C NA
1 1:739565 NA 739565 C G NA
% cat file2.s
1 712591 rs2345678
1 733687 rs74158260
1 739347 rs12456789
1 739565 rs8523694
加入工作:
% join -1 4 -2 2 file1.s file2.s | head
712591 1 1:712591 NA T G NA 1 rs2345678
733687 1 1:733687 NA G A NA 1 rs74158260
739347 1 1:739347 NA G C NA 1 rs12456789
739565 1 1:739565 NA C G NA 1 rs8523694