linux 中shell脚本统计fasta文件每一个scafflod的碱基总数目

 

001、

(base) root@PC1:/home/test2# ls
a.fasta
(base) root@PC1:/home/test2# cat a.fasta                                       ## 测试fasta文件
>scaffold_1
CCCGGGTAAAACGGGTCTTCAAGAAAACGCTCCTCCGTTAATGCCGGCCGATTCAAATAA
CGTTCAAGTTTTTCTTGCGGCGGACAATCAAAGAATGCAGCTTCTACGGTTGCTTCCGTT
GGCCCATAGGAATTGGTTATT
>scaffold_2
CACGCCGCCAGCGTTCGTCCTGAGCCAGGATCAAACTCTCCGATAAATGGATCACAGGTT
TAGTTAACTAGGTCAATAC
>scaffold_3
TTGATCCAGTGGCTCCGGTTACTCCAGTTGATCCTGTTGCGCCTGTTGCTCCAGTTTCTC
CTGTTGCTCCTGTTGCTCCTGTTGATCCCGTTGCACCTGTTGGTCCAGTCGGTCCAATTC
>scaffold_4
CCTGAGCCAGGATCAAACTCTCCGATAAATGGATCACAGGTTAAGTTCACCGCATCCTGC
TGTTTTTTTGATTTATTTTCCCGCCGCTGTGAGCTTGTTTTCTCAGAAGCGCATCAGCGA
>scaffold_5
TCACCCCGGAATCAGCTGACATAGAAGCACTGAAATCAGCACTGAAGGAAACCCTGCCGG                          ## 将每一个scafflod的所有碱基转换为一行
(base) root@PC1:/home/test2# awk '{if($0 ~ />/) {print $0} else {printf("%s", $0)}}' a.fasta | sed 's/>/\n>/g' | sed '$ s/$/\n/' | sed 1d
>scaffold_1
CCCGGGTAAAACGGGTCTTCAAGAAAACGCTCCTCCGTTAATGCCGGCCGATTCAAATAACGTTCAAGTTTTTCTTGCGGCGGACAATCAAAGAATGCAGCTTCTACGGTTGCTTCCGTTGGCCCATAGGAATTGGTTATT
>scaffold_2
CACGCCGCCAGCGTTCGTCCTGAGCCAGGATCAAACTCTCCGATAAATGGATCACAGGTTTAGTTAACTAGGTCAATAC
>scaffold_3
TTGATCCAGTGGCTCCGGTTACTCCAGTTGATCCTGTTGCGCCTGTTGCTCCAGTTTCTCCTGTTGCTCCTGTTGCTCCTGTTGATCCCGTTGCACCTGTTGGTCCAGTCGGTCCAATTC
>scaffold_4
CCTGAGCCAGGATCAAACTCTCCGATAAATGGATCACAGGTTAAGTTCACCGCATCCTGCTGTTTTTTTGATTTATTTTCCCGCCGCTGTGAGCTTGTTTTCTCAGAAGCGCATCAGCGA
>scaffold_5
TCACCCCGGAATCAGCTGACATAGAAGCACTGAAATCAGCACTGAAGGAAACCCTGCCGG                              ## 统计脚本
(base) root@PC1:/home/test2# awk '{if($0 ~ />/) {print $0} else {printf("%s", $0)}}' a.fasta | sed 's/>/\n>/g' | sed '$ s/$/\n/' | sed 1d | awk '{if($0 ~ /^>/) {printf("%s\t", $0)} else {print length($0)}}'
>scaffold_1     141
>scaffold_2     79
>scaffold_3     120
>scaffold_4     120
>scaffold_5     60

 

posted @ 2022-08-10 01:24  小鲨鱼2018  阅读(165)  评论(0编辑  收藏  举报