2014-02-25 96 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 

希望這有助於!