我必须编写 unix 脚本来计算G
序列中 char 出现的次数:"GTCGTAATGCGGATCGGAATCGA"
我想要输出为"number of nucleotide G is 8"
答案1
用bash
var='GTCGTAATGCGGATCGGAATCGA'
var="${var//[^G]}"
echo "Number of nucleotide G is ${#var}"
答案2
Awk
解决方案:
awk '{ print "Number of nucleotide G is "gsub("G", "") }' <<<"GTCGTAATGCGGATCGGAATCGA"
Number of nucleotide G is 8
grep
+wc
解决方案:
printf "Number of nucleotide G is %d\n" $(grep -o 'G' <<<"GTCGTAATGCGGATCGGAATCGA" | wc -l)
Number of nucleotide G is 8
答案3
使用 Perl:
echo 'GTCGTAATGCGGATCGGAATCGA' | perl -ne 'printf "number of nucleotide G is %d\n", ($_ =~ tr/G/G/)'
tr
这通过使用 Perl 的运算符来计算 G。它返回所做的替换次数,我们将用 G 替换任何 G。
输出将是
number of nucleotide G is 8
如果您想将其推广到也计算其他碱基,那么不对基因组大小的数据运行多次,但是转到生物信息学 StackExchange 站点并在那里寻找答案。