塩基配列を逆相補鎖に変換する
塩基配列から逆相補鎖を求めてみましょう。
塩基配列を逆相補鎖に変換する(Perl)
塩基配列から逆相補鎖をPerlのプログラムで求めてみましょう。
use strict;
use warnings;
my $sequence = 'ATGCAGCCCCGGGTACTCC';
my $length = length $sequence;
my $result = '';
while ($sequence =~ /(.)/g) {
my $char = $1;
my $complement;
if ($char eq 'A') { $complement = 'T'; }
if ($char eq 'G') { $complement = 'C'; }
if ($char eq 'C') { $complement = 'G'; }
if ($char eq 'T') { $complement = 'A'; }
$result = "$complement$result";
}
print "$result\n";
出力結果。
GGAGTACCCGGGGCTGCAT
塩基配列を逆相補鎖に変換する(SPVM)
塩基配列から逆相補鎖をSPVMのプログラムで求めてみましょう。
package Sequence {
sub run : void () {
my $sequence = "ATGCAGCCCCGGGTACTCC";
my $length = length $sequence;
my $reverse_complement = new byte[$length];
for (my $i = 0; $i < $length; ++$i) {
my $char = $sequence->[$i];
my $complement : byte;
if ($char == 'A') { $complement = 'T'; }
if ($char == 'G') { $complement = 'C'; }
if ($char == 'C') { $complement = 'G'; }
if ($char == 'T') { $complement = 'A'; }
$reverse_complement->[$length - $i - 1] = $complement;
}
print((string)$reverse_complement . "\n");
}
}
出力結果。
$ perl -I. -e 'use SPVM "Sequence"; Sequence->run;' GGAGTACCCGGGGCTGCAT
塩基配列を逆相補鎖に変換する(PerlからSPVM)
塩基配列から逆相補鎖をSPVMのプログラムで求めて、Perlから呼び出してみましょう。
# Sequence.spvm
package Sequence {
sub reverse_complement : string ($sequence : string) {
my $length = length $sequence;
my $reverse_complement = new byte[$length];
for (my $i = 0; $i < $length; ++$i) {
my $char = $sequence->[$i];
my $complement : byte;
if ($char == 'A') { $complement = 'T'; }
if ($char == 'G') { $complement = 'C'; }
if ($char == 'C') { $complement = 'G'; }
if ($char == 'T') { $complement = 'A'; }
$reverse_complement->[$length - $i - 1] = $complement;
}
my $result = (string)$reverse_complement;
return $result;
}
}
# make_complement.pl use strict; use warnings; use SPVM 'Sequence'; my $sequence = 'ATGCAGCCCCGGGTACTCC'; my $result = Sequence->reverse_complement($sequence); print "$result\n";
出力結果。
$ perl -I. make_complement.pl GGAGTACCCGGGGCTGCAT