Замена seq ID файла fasta на новые ID из списка

если вам действительно нужен точно такой же текст для замены среднего фрагмента между единственной парой окружающих ' :' в каждой строке файла, тогда это работает

sed -i -- "s|:.*:|:${mynewtext}:|"   $inputfile

узор. *просто означает один или несколько символов

0
03.06.2021, 00:44
2 ответа

Использованиеawk:

awk -F'\t' '
  NR==FNR{ a[$1]=$2; next }
  /^>/{ 
    id=a[substr($0, 2)]
    if (id!=""){ print ">" id; next }
  }
  1
' textfile file.fasta

Сначала прочитайте текстовый файл, содержащий сопоставление, и сохраните второе поле в массиве a, используя первое поле в качестве индекса. Перейти к записи next.

Затем прочтите файл fasta. Если запись начинается с >, найдите новый идентификатор в массиве, удалив первый символ из текущей записи(substr($0, 2))и используя это значение в качестве индекса массива.
Если идентификатор не пуст, напечатайте >и идентификатор и перейдите к записи next.

1печатает текущую запись, (последовательности или не совпадающие -идентификаторы ).

1
28.07.2021, 11:27
awk -F'\t' '
    NR==FNR { map[">"$1] = ">"$2; next }
    $0 in map { $0 = map[$0] }
    { print }
' mapfile fastafile
1
28.07.2021, 11:27

Теги

Похожие вопросы