awk - 将“u”转换为“t”而不更改 FASTA 中的标题
问题描述
我想弄清楚如何将我的混合 DNA/RNA 多快速
>header1
atcggtc
atgcgca
>useful header2
aucggca
uucacuu
ucucuca
>header3
agucuau
cuagggc
...
在不破坏标头的情况下转换为仅 DNA 格式。我的知识结束于
sed 's/u/t/g'
但这很明显会影响标题。有没有办法避免使用 sed 更改标题或者我应该使用另一个命令?我应该寻找什么?
解决方案
使用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 习语。
推荐阅读
- python - Python在没有装饰器的情况下使用坚韧重试
- python - 加载数据集以避免内存消耗
- tls1.2 - pure-ftp TLS:抱歉,此服务器不接受明文会话
- mysql - DateTime 值的 phpMyAdmin 外键未按预期工作
- isabelle - 限制 Isabelle 中关系的域
- deep-learning - 为什么 GoogLeNet 重新训练的模型大小比其他模型小?
- java - 从 .mod 文件中获取 LP,使用 GLPK 解决它并以可用的形式获取输出
- reactjs - 使用 React 时如何修复 400 bad request 错误?
- python - 试图连接 keras 中具有相同形状的两层,从而导致形状匹配错误
- c++ - 初始化向量,然后将所有值复制到地图中