ошибка в команде соединения и сортировка в linux - PullRequest
0 голосов
/ 05 августа 2020

У меня 2 файла

файл 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

Я отсортировал оба файла с соответствующим 4-м столбцом в file 1 и 2-м столбце in file 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

1 Ответ

1 голос
/ 05 августа 2020

Вы уверены, что используете правильные файлы? Получаю ожидаемый результат:

% 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...