also wie ich das mit dem output meinte. die matrix welche aufgebaut/ausgerechnet wird ist korrekt. dh der fehler liegt nur in einem bestimmt teil des programms.
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#### Optimale align ####
for ($i=1;$i<=$x;$i++)
{
$z=0;
for ($j=1;$j<=$y;$j++)
{
if ($Hochw eq $LM[$i][$j])
{
$Ugabe=$Hochw;
$q=$j;
$w=$i;
for ($k=0;$k<=10000;$k++)
{
$abbruch=0;
if ($Ugabe eq $LM[$w-1][$q]-1)
{$qwe=$LM[$w-1][$q]-1;
$align[$z]="-$ySeq[$w-1]|"."1";
$Ugabe=$LM[$w-1][$q];
$z=$z+1;
$w=$w-1;
if ($w eq 0){$k=10000;}else{}
}
else
{
$abbruch=1;
if (($Ugabe eq $LM[$w-1][$q-1]+2) || ($Ugabe eq $LM[$w-1][$q-1]-1))
{$o=$o+1;
$align[$z]="$xSeq[$q-1]$ySeq[$w-1]|";
$Ugabe=$LM[$w-1][$q-1];
$z=$z+1;
$q=$q-1;
$w=$w-1;
if ($w eq 0){$k=10000;}else{}
if ($q eq 0){$k=10000;}else{}
}else{}
}
if ($Ugabe eq $LM[$w][$q-1]-1)
{
$align[$z]="$xSeq[$q-1]-|"."2";
$Ugabe=$LM[$w][$q-1];
$z=$z+1;
$q=$q-1;
if ($q eq 0){$k=10000;}else{}
}
else
{
if ($abbruch eq 1){}else{
if (($Ugabe eq $LM[$w-1][$q-1]+2) || ($Ugabe eq $LM[$w-1][$q-1]-1))
{$o=$o+1;
$align[$z]="$xSeq[$w-1]$ySeq[$q-1]|";
$Ugabe=$LM[$w-1][$q-1];
$z=$z+1;
$q=$q-1;
$w=$w-1;
if ($w eq 0){$k=10000;}else{}
if ($q eq 0){$k=10000;}else{}
}else{}}
}
}
}
else{}
}
}
@weiter=reverse(@align);
foreach $bla(@weiter)
{
print $bla;
}
in dem teil wird/soll vom höchstwert welcher in der matrix ermittelt wurde (hier die 7 unten links) 'rückwärts' der/die optimalen wege zu genau dieser 7 ermittelt werden. ich hatte mich erstmal dadrauf beschränkt nur einen weg zu ermitteln. aber genau dadrin ist der fehler denn ich nicht finde.
er gibt mir diesen weg aus:
AA|GC|GG|GA|-A|1CC|TT|TT|
das soll aber bei rauskommen
AA|GC|GG|
CT|-A|1CC|TT|TT|
deswegen komme ich auch nicht weiter er macht mitten drin einen fehler und anschließen baut er denn alignment wieder richtig auf. habe mich bei meinen problem wohl etwas unklar ausgedrückt sry.
danke schon mal für eure hilfe :)