首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将序列连接到fasta文件中的ID

将序列连接到fasta文件中的ID
EN

Stack Overflow用户
提问于 2019-06-11 06:36:37
回答 4查看 134关注 0票数 0

这是我的输入文件

代码语言:javascript
复制
>OTU1;size=4;
ATTCCGGGTTTACT
ATTCCTTTTATCGA
ATC
>OTU2;size=10;
CGGATCTAGGCGAT
ACT
>OTU3;size=5;
ATTCCCGGGATCTA
ACTTTTC

预期的输出文件为:

代码语言:javascript
复制
>OTU1;size=4;ATTCCGGGTTTACTATTCCTTTTATCGAATC
>OTU2;size=10;CGGATCTAGGCGATACT
>OTU3;size=5;ATTCCCGGGATCTAACTTTTC

我尝试过Remove line breaks in a FASTA file中的代码

但这对我不起作用,我也不确定如何修改那篇文章中的代码……有什么建议吗?提前感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-06-11 07:43:17

这是另一个awk脚本。使用awk内部解析机制。

代码语言:javascript
复制
awk 'BEGIN{RS=">";OFS="";}NR>1{$1=$1;print ">"$0}' input.txt

输出为:

代码语言:javascript
复制
>OTU1;size=4;ATTCCGGGTTTACTATTCCTTTTATCGAATC
>OTU2;size=10;CGGATCTAGGCGATACT
>OTU3;size=5;ATTCCCGGGATCTAACTTTTC

解释:

代码语言:javascript
复制
awk '
BEGIN {        # initialize awk internal variables
  RS=">";      # set `RS`=record separator to `>`
  OFS="";      # set `OFS`=output field separator to empty string.
}
NR>1 {         # handle from 2nd record (1st record is empty).
  $1=$1;       # regenerate the output line
  print ">"$0  # print out ">" with computed output line
}' input.txt
票数 2
EN

Stack Overflow用户

发布于 2019-06-11 06:41:36

代码语言:javascript
复制
$ awk '{printf "%s%s", (/^>/ ? ors : ""), $0; ors=ORS} END{print ""}' file
>OTU1;size=4;ATTCCGGGTTTACTATTCCTTTTATCGAATC
>OTU2;size=10;CGGATCTAGGCGATACT
>OTU3;size=5;ATTCCCGGGATCTAACTTTTC
票数 2
EN

Stack Overflow用户

发布于 2019-06-11 09:50:47

你能试着也跟着看吗?

代码语言:javascript
复制
awk -v RS=">" 'NR>1{gsub(/\n/,"");print ">"$0}'  Input_file

我最初的尝试是awk -v RS=">" -v FS="\n" -v OFS="" 'NF>1{$1=$1;print ">"$0}' Input_file,但后来我看到它已经回复了buy dudi男孩,所以写了另一个(最先提到的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56534328

复制
相关文章

相似问题

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