Добавить имя файла в заголовки fasta нескольких файлов fasta внутри цикла

У меня есть 10 файлов fasta (каждый файл с 20 последовательностями генов из каждого из 10 образцов). Я хотел бы создать 20 файлов, специфичных для каждого гена, из 10 образцов. Я поступил следующим образом, чтобы извлечь гены с именем файла в заголовке:

pyfasta extract --header --fasta test.fasta gene_name1 | awk '/^>/ {$0=$0 "_file1"}1' > gene_name1.fasta

Мне удалось создать несколько файлов fasta для каждого гена из каждого образца (часть цикла):

pyfasta extract --header --fasta $sample.fasta gene_name1 >> gene_name1.fasta 
pyfasta extract --header --fasta $sample.fasta gene_name2 >> gene_name2.fasta

Но я не могу добавить имя_файла в заголовок файлов в цикле (но могу сделать это для 1 файла, как указано в начале).

В целом, моя цель состоит в том, чтобы извлечь гены с похожим именем гена из всех файлов fasta (многострочные) и создать файлы fasta для конкретных генов с обновленным заголовком, включая имя гена и имя файла (чтобы я знал, из какого файла этот ген был получен). ) + добавьте последовательности генов в файл с этим именем гена. Вот примеры входных и выходных файлов:

Input files:
#file1.fasta

>gene1
ATGC..............................max upto 120 characters per line
TTTG..............................................................
>gene2
ATGA
>gene3
ATGTTT

#file2.fasta

>gene1
ATGG
>gene2
ATGC
>gene3
ATGTT

Expected output files:

#gene1.fasta
>gene1_file1
ATGC...........................................................
TTTG...........................................................
>gene1_file2
ATGG

#gene2.fasta
>gene2_file1
ATGA
>gene2_file2
ATGC

Пожалуйста, руководство. Спасибо.


person gbioinfo    schedule 22.08.2017    source источник
comment
попробуйте задать вопрос на bioinformatics.stackexchange.com   -  person Chris_Rands    schedule 23.08.2017
comment
Помогает ли этот ответ?   -  person Paul Hodges    schedule 21.06.2021


Ответы (1)


Ваш вопрос не ясен, но похоже, что все, что вам нужно, это:

... | awk -v fname="$sample" '/^>/ {$0=$0 "_" fname}1'
person Ed Morton    schedule 22.08.2017