linux 中实现将fasta文件的碱基数目转换为指定的个数

 

001、每行输出为4个碱基

复制代码
[root@pc1 test]# ls
test.fa
[root@pc1 test]# cat test.fa
>chr1
aatt
cctt
>chr2
ttgg
aacc
>chr3
TTCCGG
[root@pc1 test]# awk '{if($0 ~ /^>/) {print $0} else {printf("%s", $0)}}' test.fa | sed '2, $ s/>/\n>/' | sed '$ s/$/\n/' | awk -F "" '{if($0 ~ /^>/) {print $0} else {for(i = 1; i <= NF; i++){if(i % 4 == 0) {print $i} else {printf("%s", $i)}}if((i - 1) % 4 != 0){printf("\n")} }}'
>chr1
aatt
cctt
>chr2
ttgg
aacc
>chr3
TTCC
GG
复制代码

 

 

002、每行输出为5个碱基

复制代码
[root@pc1 test]# ls
test.fa
[root@pc1 test]# cat test.fa
>chr1
aatt
cctt
>chr2
ttgg
aacc
>chr3
TTCCGG
[root@pc1 test]# awk '{if($0 ~ /^>/) {print $0} else {printf("%s", $0)}}' test.fa | sed '2, $ s/>/\n>/' | sed '$ s/$/\n/' | awk -F "" '{if($0 ~ /^>/) {print $0} else {for(i = 1; i <= NF; i++){if(i % 5 == 0) {print $i} else {printf("%s", $i)}}if((i - 1) % 5 != 0){printf("\n")} }}'
>chr1
aattc
ctt
>chr2
ttgga
acc
>chr3
TTCCG
G
复制代码

 

posted @   小鲨鱼2018  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-10-30 如何在dos窗口中执行R脚本
2021-10-30 R语言如何删除目录下同一类型的文件、或者所有文件
2021-10-30 Rstudio如何设置默认的工作路径
2021-10-30 R语言实现统计plink格式数据基因频率
2021-10-30 linux系统shell实现统计 plink文件基因频率
2020-10-30 linux系统中firewalld防火墙管理工具firewall-cmd(CLI命令行)
2020-10-30 linux系统中iptables防火墙管理工具
点击右上角即可分享
微信分享提示