#!/usr/bin/perl
# Questo hash associa ad ogni dinucleotide un colore (0,1,2,3)
my %cs = ('AA' => 0, 'CC' => 0, 'TT' => 0, 'GG' => 0,
'CA' => 1, 'AC' => 1, 'TG' => 1, 'GT' => 1,
'AG' => 2, 'GA' => 2, 'TC' => 2, 'CT' => 2,
'TA' => 3, 'AT' => 3, 'GC' => 3, 'CG' => 3);
# Qui potremmo far intervenire $ARGV[0],
# ma da codepad non รจ possibile per cui mettiamo a mano
# la sequenza dentro una variabile:
$sequence = 'ACACGACTACTAGCTGtGTCGAacgatctacgtacgtagtcgtgtacacatttatatattttt';
$sequence = uc($sequence);
# Calcolo la lunghezza della sequenza per sapere quanti cicli devo fare
$length = length($sequence);
# Faccio un ciclo e mi sposto di 1 ad ogni iterazione
for ($position = 0; $position < $length-1; $position++) {
# con questa funzione recupero 2 caratteri a partire da \$position
$dinucleotide = substr($sequence, $position, 2);
$color = $cs{$dinucleotide};
$encodedSequence = $encodedSequence.$color;
}
print "
Sequence: $sequence ($length bp)
Encoded: $encodedSequence
";