首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文件名添加到循环内多个fasta文件的fasta标头

将文件名添加到循环内多个fasta文件的fasta标头
EN

Stack Overflow用户
提问于 2017-08-22 17:00:42
回答 1查看 810关注 0票数 2

我有10个fasta文件(每个文件包含来自10个样本的20个基因序列)。我想创建20个文件,特定于10个样本中的每个基因。我按照以下步骤在标题中使用file_name提取基因:

代码语言:javascript
复制
pyfasta extract --header --fasta test.fasta gene_name1 | awk '/^>/ {$0=$0 "_file1"}1' > gene_name1.fasta

我成功地为每个样本中的每个基因创建了多个基因fasta文件(loop中的一部分):

代码语言:javascript
复制
pyfasta extract --header --fasta $sample.fasta gene_name1 >> gene_name1.fasta 
pyfasta extract --header --fasta $sample.fasta gene_name2 >> gene_name2.fasta

但是,我无法将file_name添加到循环中文件的头部(但可以添加一个文件,如开头所述)。

总而言之,我的目标是从所有的fasta文件(多线程)中提取具有相似基因名称的基因,并生成具有更新的头文件的基因特定的fasta文件,包括基因名称和文件名(这样我应该知道该基因来自哪个文件),并在文件中附加带有该基因名称的基因序列。以下是示例输入和输出文件:

代码语言:javascript
复制
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

请指点一下。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-08-22 22:33:43

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

代码语言:javascript
复制
... | awk -v fname="$sample" '/^>/ {$0=$0 "_" fname}1'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45813228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档