Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7779[/thread]

needelman wunsch/smith waterman (Seite 2)

Leser: 1


<< |< 1 2 3 4 >| >> 35 Einträge, 4 Seiten
stef23
 2006-03-09 18:54
#63693 #63693
User since
2006-03-09
14 Artikel
BenutzerIn
[default_avatar]
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.

Code: (dl )
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 :)
lichtkind
 2006-03-09 19:00
#63694 #63694
User since
2004-03-22
5708 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
bist interessiert das ganze erstmal umzuschreiben?ich hab gleich unter hundert zeilen
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
stef23
 2006-03-09 19:00
#63695 #63695
User since
2006-03-09
14 Artikel
BenutzerIn
[default_avatar]
wie meinst das denn mit denn umkopieren?
$Ugabe=$Hochw; wenn du denn teil damit meinst dann ist das deswegen weil es möglich ist das auch mehrmals der $Hochw in der matrix vorkommt und in meinem script sonst der $Hochw nach dem ersten match verschwinden würde.
stef23
 2006-03-09 19:02
#63696 #63696
User since
2006-03-09
14 Artikel
BenutzerIn
[default_avatar]
klar würde ich es umschreiben wenn es auch kürzer geht. ist immer gut zu sehen wie ich mein code kürzer und schneller hinbekomme.
lichtkind
 2006-03-09 19:12
#63697 #63697
User since
2004-03-22
5708 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
den fehler sieht man wenn man es umdreht du hattest

AA|GC|GG|GA|-A|1CC|TT|TT|

nicht reverse aber

TT|TT|CC|-A|1GA|GG|GC|AA|

oder noch deutlicher

AA|.GC|.GG|.GA|.-A|1.CC|.TT|.TT|.

wenn ich print "$bla."; einsetze gibt dir das einen hinweis?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
lichtkind
 2006-03-09 19:15
#63698 #63698
User since
2004-03-22
5708 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
was ich mit umkopieren meine ich berechne den höchsten wert so:
Code: (dl )
1
2
3
4
5
6
7
#### höchsten Wert finden ####
$Hochw = 0;
for my $i (0..$x) {
for my $j (0..$y) {
$Hochw = $LM[$i][$j] if $Hochw < $LM[$i][$j];
}
}

deine version:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#### höchster Wert ####
$Hwert[0]=0;
$e=1;
for ($i=0;$i<=$x;$i++)
{
for ($j=0;$j<=$y;$j++)
{
@Hwert[$e]=$LM[$i][$j];
$e=$e+1;
}
}

for ($v=0;$v<$#Hwert;$v++)
{
if ($Hwert[$v] >= $Hwert[$v+1])
{
$Hwert[$v+1]=$Hwert[$v]
}
else{}
}
$Hochw=$Hwert[$#Hwert];


ergbnis ist das gleiche\n\n

<!--EDIT|lichtkind|1141924690-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
stef23
 2006-03-09 19:23
#63699 #63699
User since
2006-03-09
14 Artikel
BenutzerIn
[default_avatar]
sry gibt mir keinen hinweis. das reverse ist nur dazu da um die richtige reinfolge aufzubauen, da ich auch von hinten beginne denn alignmenr aufzubauen.

Das GA in dem abschnitt ist einfach falsch an der stelle müßte ein CT stehen. also wird der alignment falsch aufgebaut es dürfte kein ausgabe fehler sein.
stef23
 2006-03-09 19:30
#63700 #63700
User since
2006-03-09
14 Artikel
BenutzerIn
[default_avatar]
nette konstruktion :)
for my $i (0..$x) {
for my $j (0..$y) {
$Hochw = $LM[$i][$j] if $Hochw < $LM[$i][$j];
}
}
ich wußte nicht das man eine if abfragung so umlenken kann.

achja selbst wenn der eine alignment richtig aufgebaut wird wäre das nur eine teilproblem lösung. aber bevor ich weiter gehe wollte ich zumindest das erstmal lösen können.
lichtkind
 2006-03-09 19:35
#63701 #63701
User since
2004-03-22
5708 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
2 fragen hab ich diese | sind trenner?

und wolltest du nicht eigentlich : @ySeq=("A","C","G","T","A","C",&quot
;
;G","T"); ?

grrr irgendwas nimmt das board nicht ich meinte ACGTACGT\n\n

<!--EDIT|lichtkind|1141925938-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
stef23
 2006-03-09 19:40
#63702 #63702
User since
2006-03-09
14 Artikel
BenutzerIn
[default_avatar]
ja genau das | sind einfach trenner für bessere optik.

nein die test ySeq sollte so aussehen.
@ySeq=("A","C","G","T","A","C",&quot
;
;T","T");
ansich sollen ja beliebige x/y-Seq verwendet werden können.

ist mir auch grade passiert... ySeq sollte aber ACGTACTT sein
<< |< 1 2 3 4 >| >> 35 Einträge, 4 Seiten



View all threads created 2006-03-09 15:01.