首页 > 解决方案 > 将“u”转换为“t”而不更改 FASTA 中的标题

问题描述

我想弄清楚如何将我的混合 DNA/RNA 多快速

>header1
atcggtc
atgcgca
>useful header2
aucggca
uucacuu
ucucuca
>header3
agucuau
cuagggc
...

在不破坏标头的情况下转换为仅 DNA 格式。我的知识结束于

sed 's/u/t/g'

但这很明显会影响标题。有没有办法避免使用 sed 更改标题或者我应该使用另一个命令?我应该寻找什么?

标签: awksedfasta

解决方案


使用sed,很容易说“仅在选定的行上执行此操作”。一般语法是address 命令,其中address可以是正则表达式,以仅匹配第一个字符不是 的行>

sed '/^[^>]/s/u/t/g' file.fasta >newfile.fasta

第一个^表示行首;字符类[^>]匹配不是 (newline or) 的单个字符>

awk 可能更容易学习、更容易阅读和更容易记住。Awk 中的相同脚本可能看起来像

awk '/^[^>]/{ gsub(/u/,"t") }1' file.fasta >newfile.fasta

最后一个1不是错字;这是“打印所有行”的 Awk 习语。


推荐阅读