######################################################### ######################################################### ############## FUNCIONS ################# ######################################################### ######################################################### # FUNCIO: busca_snp # PROPOSIT: es busca un snp dins d'un conjunt de gens d'un cromosoma sub busca_snp { my @matgens = @{$_[0]}; my $snp = $_[1]; my $min = 0; my $max = scalar(@matgens)-1; my $trobada = 0; my $gen = -1; while ($min <= $max && !$trobada) { my $mig = int( ($min+$max)/2 ); if ($snp > $matgens[$mig][1]) { $min = $mig + 1; } else { if ($snp < $matgens[$mig][0]) { $max = $mig - 1; } else { $trobada = 1; $gen = $mig; } } } return $gen; }