2014-02-25 65 views
-1

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

这次没有可行的想法。

输入文件:

>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

也许你应该试着找到一个很好的模块来为你解析fasta文件? – TLP

+0

https://metacpan.org/pod/Bio::Perl – DeVadder

回答

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 
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 

希望这有助于!