0

私の質問は、perl で遺伝子配列をどのようにミラーリングするのですか? 基本的に、次のようなコードがあります。

 m/(([ACGT]{4})\2)/

これは、連続する 4 文字のいずれかに 4 回一致します *2... 例: CGAG CGAG (スペースなし)。このコードを取得して、CGAG の代わりに GAGC を出力するにはどうすればよいでしょうか (2 番目のコードのミラー)。

4

3 に答える 3

1

pff、真の正規表現の方法は次のとおりです。

m/(([ACGT]{4})\s*(??{ my $b = reverse $2; $b }))/

perl -E 'warn "CGAG GAGC" =~ m/(([ACGT]{4})\s*(??{ my $b = reverse $2; $b }))/'
CGAG GAGCCGAG at -e line 1.

しかし、それはまだ実験的な機能です...

あなたは次のようにすることができます

my $str = "CGAGGAGC";
index($str, $1 . reverse($1)) != -1 && print "$1" . reverse($1) . " at " . (pos($str) - 4) while $str =~ m/([ACGT]{4})/g;
于 2013-10-25T21:15:40.147 に答える
0

reverse&の使用split:

$ perl -le 'print reverse split //, "GAGC"'
CGAG
于 2013-10-25T20:11:29.000 に答える