3 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl
use strict;
use warnings;
test();
sub test {
print "einfach mal ein Test";
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
$xLength = @xSeq = qw (A A G G C C T T); $yLength = @ySeq = qw (A C G T A C T T); $LM[$_][0] = 0 for 0..$xLength; #### x-Achse mit 0 füllen #### $LM[0][$_] = 0 for 0..$yLength; #### y-Achse mit 0 füllen #### #### wert ermitteln #### for my $x (1..$xLength) { for my $y (1..$yLength) { if ($xSeq[$y-1] eq $ySeq[$x-1]) { $tauscher = $LM[$x-1][$y-1] + 2 } else { $tauscher = $LM[$x-1][$y-1] - 1 } for ($LM[$x-1][$y]-1, $LM[$x][$y-1]-1, 0) { $tauscher = $_ if $_ > $tauscher } $LM[$x][$y] = $tauscher; } } #### höchsten Wert finden #### $Hochw = 0; for my $x (0..$xLength) { for my $y (0..$yLength) { if ($Hochw < $LM[$x][$y]) { $Hochw = $LM[$x][$y]; $Hochx = $x; $Hochy = $y; } } } #### Optimale align #### ($CursorWert, $x, $y, @align) = ($Hochw, $Hochx, $Hochy); while() { if (( $CursorWert == $LM[$x-1][$y-1] + 2 ) or ( $CursorWert == $LM[$x-1][$y-1] - 1 ) ) { $x--; $y--; push @align, "$xSeq[$x]$ySeq[$y]"; } elsif ( $CursorWert == $LM[$x-1][$y] - 1 ) { $x--; push @align, "-$ySeq[$y]"; } elsif ( $CursorWert == $LM[$x][$y-1] - 1 ) { $y--; push @align, "$xSeq[$x]-"; } else { last } $CursorWert=$LM[$x][$y]; last if $x == 0 or $y == 0; } print <<EOP; Zugrunde liegende Aehnlichkeitsmatrix | A C G T | - ------------------ A | 2 -1 -1 -1 |-1 C |-1 2 -1 -1 |-1 G |-1 -1 2 -1 |-1 T |-1 -1 -1 2 |-1 ------------------ - |-1 -1 -1 -1 |-1 EOP $" = ""; print " @xSeq @{$LM[0]} "; print "$ySeq[$_-1]@{$LM[$_]} " for 1..$xLength; print " $Hochw "; $" = "|"; print"@align";
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#!/usr/bin/perl use strict; use warnings; &nb sp; &nb sp; &nb sp; test(); sub test &n bsp; { print "einfach mal ein Test"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#!/usr/bin/perl use strict; use warnings; &nb sp; &nb sp; &nb sp; test(); sub test &n bsp; { print "einfach mal ein Test"; }
3 Einträge, 1 Seite |