Я хочу подсчитать количество вхождений нуклеотидов (буквы «A, T, G, C» в строке). Я пытался использовать для этого оператор tr///
, но он возвращает отсчет нуля каждый раз в приведенном ниже коде.Как подсчитать количество шаблонов с использованием переменных в tr /// -операторе?
Это происходит, только если я использую переменную внутри оператора tr///
. Если я набираю отдельные буквы отдельно, он работает. Я хотел бы знать, можем ли мы использовать переменные внутри оператора tr///
для сопоставления шаблонов (и подсчета). И если мы можем, кто-то скажет мне, как изменить мой код.
Позже планирую подсчитать количество кодонов (~ 64). Отсюда проблема. Цените свое время. Благодаря!
#!/usr/bin/perl
use strict;
use warnings;
my $orf = "ATGCTAGCTAGCATAGAGCTAGCTA";
my @atgc = qw(A T G C);
my %hash =();
foreach my $nt(@atgc) {
$hash{$nt} = ($orf =~ tr/$nt//);
}
Параметр '' тр /// оператор работает на основе символ за символом. Это не поможет вам, если вы хотите считать кодоны. –