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