解析fasta文件头

时间:2014-02-25 11:08:10

标签: python perl parsing awk

我想为每个fasta标题添加一个包含字段4的附加列,其中空格与其余字段分开(假设'|'是输入文件头中的字段分隔符)。

这次没有可行的想法。

输入文件:

>gi|568301760|ref|NC_023137.1| Phaeobacter gallaeciensis DSM 26640, complete genome
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

期望的输出:

>NC_023137.1 gi|568301760|ref|NC_023137.1| Phaeobacter gallaeciensis DSM 26640, complete genome
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

2 个答案:

答案 0 :(得分:1)

Perl选项:

perl -F"[>|]" -pae 's/^>/>$F[4] /' file.fa

输出:

>NC_023137.1 gi|568301760|ref|NC_023137.1| Phaeobacter gallaeciensis DSM 26640, complete genome
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

希望这有帮助!

答案 1 :(得分:0)

有些人喜欢这样:

awk -F"[>|]" '/^>/ {$1=">"$5}8' OFS="|" file
>NC_023137.1|gi|568301760|ref|NC_023137.1| Phaeobacter gallaeciensis DSM 26640, complete genome
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

这应该使>|更正:

awk -F"[|]" '/^>/ {$0=substr($0,1,1)$4" "substr($0,2)}1' file
>NC_023137.1 gi|568301760|ref|NC_023137.1| Phaeobacter gallaeciensis DSM 26640, complete genome
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA