2017-08-22 60 views
1

我有10个fasta文件(每个文件包含来自10个样本中的每个样本的20个基因序列)。我想创建20个文件,针对10个样本中的每个基因。我如下进行,以提取与所述FILE_NAME基因在标头:将文件名添加到循环内的多个fasta文件的fasta头文件中

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 

但,我无法将file_name添加到循环中文件的标题中(但可以在开始时提到的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 

请亲引导。 谢谢。

+0

考虑要求在https://bioinformatics.stackexchange.com/ –

回答

0

你的问题还不清楚,但它听起来像你需要的是:

... | awk -v fname="$sample" '/^>/ {$0=$0 "_" fname}1'