[ create a new paste ] login | about

Project: bioinformatics
Link: http://bioinformatics.codepad.org/pa8xjn0z    [ raw code | output | fork ]

proch - Perl, pasted on Mar 15:
#!/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
";


Output:
1
2
3

Sequence:  ACACGACTACTAGCTGTGTCGAACGATCTACGTACGTAGTCGTGTACACATTTATATATTTTT (63 bp)
Encoded:   11132123123232111123201323223131313132123111311113003333330000


Create a new paste based on this one


Comments: