grep не извлекает необходимый список - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть идентификаторы последовательности (seqID), которые я пытаюсь использовать для извлечения из файла (singleline.fasta) идентификатора seqID, отформатированного так:

ID1
ID6
ID10

Singleline.fasta отформатирован

ID1
XXXXXXXXXXXXX
ID2
XXXXXXXXXXXXX
ID3
XXXXXXXXXXXXX

Я пытаюсь извлечь соответствующий заголовок и строку ниже, чтобы получить файл с чтением

ID1
XXXXXXXXXXXX
ID6
XXXXXXXXXXXXX
ID10
XXXXXXXXXXXXX

Я использовал следующую строку:

grep -A1 -w -f seq_ID singleline.fasta > selected_genes.fasta

Однако, это просто копирование всего файла singleline.fasta в selected_genes.fasta, а не извлечение строк, перечисленных в seqID.Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 30 ноября 2018

Grep обрабатывает построчно, поэтому не видит новых строк.Есть несколько простых способов сделать это.Самый простой способ - запустить singleline.fasta через

paste -d",\n" -s singleline.fasta | grep "whatever" |tr "," "\n"

. При этом метка и данные объединяются в одну строку с меткой и данными, разделенными запятой, которые могут быть выделены, а затем разбиты на несколько строк с помощью tr..

Вместо того, чтобы пытаться сделать все в одной строке, будет проще использовать подстановку команд при catting seqID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...