相关疑难解决方法(0)

删除FASTA文件中的换行符

我有一个fasta文件,用换行符分解序列.我想删除换行符.这是我的文件的一个例子:

>accession1
ATGGCCCATG
GGATCCTAGC
>accession2
GATATCCATG
AAACGGCTTA
Run Code Online (Sandbox Code Playgroud)

我想把它转换成这个:

>accession1
ATGGCCCATGGGATCCTAGC
>accession2
GATATCCATGAAACGGCTTA
Run Code Online (Sandbox Code Playgroud)

在这个网站上找到了一个潜在的解决方案,如下所示:

cat input.fasta | awk '{if (substr($0,1,1)==">"){if (p){print "\n";} print $0} else printf("%s",$0);p++;}END{print "\n"}' > joinedlineoutput.fasta
Run Code Online (Sandbox Code Playgroud)

但是,这会在每个条目之间放置一个额外的换行符,因此文件如下所示:

>accession1
ATGGCCCATGGGATCCTAGC

>accession2
GATATCCATGAAACGGCTTA
Run Code Online (Sandbox Code Playgroud)

我是一个awk noob,但我开始修改命令.我的猜测是if (p){print "\n";}罪魁祸首......可能print "\n"会增加两个换行符.我无法弄清楚如何只添加一个换行符...这可能很简单,但就像我说的那样,我是一个菜鸟.这是我的(不成功)解决方案:

awk '{if (substr($0,1,1)==">"){print "\n"$0} else printf("%s",$0);p++;}END{print "\n"}' input.fasta > joinedoutput.fasta
Run Code Online (Sandbox Code Playgroud)

但是,这会在文件开头添加一个空行,因为它在打印第一个入藏号之前始终打印一个新行:

{empty line} 
>accession1
ATGGCCCATGGGATCCTAGC
>accession2
GATATCCATGAAACGGCTTA
Run Code Online (Sandbox Code Playgroud)

任何人都有解决方案来获取正确格式的文件?谢谢!

unix awk fasta

8
推荐指数
4
解决办法
2万
查看次数

标签 统计

awk ×1

fasta ×1

unix ×1