首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多FASTA文件上使用AWK来根据contig报头添加新列

在多FASTA文件上使用AWK来根据contig报头添加新列
EN

Stack Overflow用户
提问于 2014-07-28 05:55:03
回答 1查看 379关注 0票数 0

我有一个多FASTA文件,需要进行分析,所以微光多提取脚本可以处理它。它由许多连体组成,每个连体都有自己的以">“开头的标题。我需要的是将每个标题作为一个新列添加,问题是我对linux或awk不太了解。

代码语言:javascript
复制
>contig-7
orf00002     1741      461 
orf00003     3381     1747 
>Wcontig-7000023
>Wcontig-11112
orf00001      426     2648 
orf00002     2710     4581 
orf00003     4569     5480 
orf00004     6990     6133 
orf00006     9180     7108 
orf00007    10201     9209 
orf00008    11663    10203 
orf00009    12489    11680 
orf00010    13153    12473 
orf00011    14382    13225 
orf00013    14715    15968 
orf00014    19868    16410 
>Wcontig-1674000002
orf00001     2995      637 
orf00002     2497     1166 
orf00003     2984     2529

我需要将每个contig头作为第一列加上一个制表符分隔符。

代码语言:javascript
复制
>contig-7
>contig-7   orf00002     1741      461 
>contig-7   orf00003     3381     1747 
>Wcontig-7000023
>Wcontig-11112
>Wcontig-11112  orf00001      426     2648 
>Wcontig-11112  orf00002     2710     4581 
>Wcontig-11112  orf00003     4569     5480 
>Wcontig-11112  orf00004     6990     6133 
>Wcontig-11112  orf00006     9180     7108 
>Wcontig-11112  orf00007    10201     9209 
>Wcontig-11112  orf00008    11663    10203 
>Wcontig-11112  orf00009    12489    11680 
>Wcontig-11112  orf00010    13153    12473 
>Wcontig-11112  orf00011    14382    13225 
>Wcontig-11112  orf00013    14715    15968 
>Wcontig-11112  orf00014    19868    16410 
>Wcontig-1674000002
>Wcontig-1674000002 orf00001     2995      637 
>Wcontig-1674000002 orf00002     2497     1166 
>Wcontig-1674000002 orf00003     2984     2529 

另外,在添加新列之后,我必须删除所有的标头,因此它最终将如下所示

代码语言:javascript
复制
>contig-7   orf00002     1741      461 
>contig-7   orf00003     3381     1747 
>Wcontig-11112  orf00001      426     2648 
>Wcontig-11112  orf00002     2710     4581 
>Wcontig-11112  orf00003     4569     5480 
>Wcontig-11112  orf00004     6990     6133 
>Wcontig-11112  orf00006     9180     7108 
>Wcontig-11112  orf00007    10201     9209 
>Wcontig-11112  orf00008    11663    10203 
>Wcontig-11112  orf00009    12489    11680 
>Wcontig-11112  orf00010    13153    12473 
>Wcontig-11112  orf00011    14382    13225 
>Wcontig-11112  orf00013    14715    15968 
>Wcontig-11112  orf00014    19868    16410 
>Wcontig-1674000002 orf00001     2995      637 
>Wcontig-1674000002 orf00002     2497     1166 
>Wcontig-1674000002 orf00003     2984     2529 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-28 06:37:48

Awk可以非常方便地解决这个问题:

代码语言:javascript
复制
awk '{if($1 ~ /contig/){c=$1}else{print c"\t"$0}}' <yourfile>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24989163

复制
相关文章

相似问题

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