Seite 2 von 3
Verfasst: 06.12.2005 20:47
von Zaphod
da die kodierung von aminosäuren in dna ja redundant ist, würde ich die aminosäuren eher in einem integer array speichern, deren werte symbolisch für die aminosäuren stehen. damit ist es dann später einfacher alle permutationen der dna sequenz aufzubauen, die eine bestimmte aminosäure-sequenz kodieren, weil man dann später nichtmehr mit stringvergleichen hantieren muß.
Verfasst: 06.12.2005 22:03
von ArminF
Zaphod hat geschrieben:da die kodierung von aminosäuren in dna ja redundant ist, würde ich die aminosäuren eher in einem integer array speichern, deren werte symbolisch für die aminosäuren stehen. damit ist es dann später einfacher alle permutationen der dna sequenz aufzubauen, die eine bestimmte aminosäure-sequenz kodieren, weil man dann später nichtmehr mit stringvergleichen hantieren muß.
sach mal bissu biologe oder doch eher informatiker?
also wenn ich das jetzt richtig verstanden habe meinst du man sollte sozusagen alle möglichen DNA-Sequenzen, die für die 8-stellige AS-Sequenz codieren können erstellen und dann mit diesen Versionen nach dem Treffer suchen?
Na ja, ich muß mich jetzt erst mal dran machen, in PureBasic einzusteigen und mir selbiges beizubringen. Um die Feinheiten kümmere ich mich anschließend...

Verfasst: 06.12.2005 22:13
von Zaphod
informatiker, aber bei der dna realisierung macht es ja keinen unterschied
war mal sowas wie ein hobby von mir, habe nur leider sehr viel vergessen. sehr schade, wo es doch da grade wieder so richtig interessant wird durch die debatte, welche bedeutung die bisher vernachlässigten intronen in der dna haben.
Verfasst: 08.12.2005 13:45
von ArminF
Mahlzeit!
...das Programm macht gute Fortschritte. Bin auf einem guten Weg.
Jetzt stellt sich bei mir die Frage, wie ich folgendes Problem lösen kann:
Gegeben ist:
1. Definierte Anzahl von Zeichen
(hier z.b. a1, a2, a3, a4 - b1 - c1, c2, c3 - d1, d2, d3, d4, d5)
2. Die Zeichen stehen in einer definierten Reihenfolge hintereinander
(a b c d)
Gesucht wird:
NICHT die Anzahl aller möglichen Kombinationen (die beträgt ja 4*1*3*5=60), sondern der Text aller Kombinationen
(z.b. "a1 b1 c1 d1", "a1 b1 c1 d2", "a1 b1 c1 d3" etc. bis zu "a4 b1 c3 d5")
Wie kann ich mein Programm dazu bringen, daß es mir alle 60 möglichenStrings erstellt und unter verschiedenen (automatisch fortlaufenden) namen als Variabel speichert?
Mittägliche Grüße
Armin
Verfasst: 08.12.2005 14:18
von Kiffi
Hai ArminF,
nachfolgend ein Code, der Dein Problem lösen könnte (wenn ich es richtig
verstanden habe). Kann man vielleicht auch anders (kürzer und schneller)
lösen. Mir ging es aber darum, für's erste einen Anfänger-kompatiblen
Code zu schreiben.
Code: Alles auswählen
a_untergrenze = 1
a_obergrenze = 4
b_untergrenze = 1
b_obergrenze = 1
c_untergrenze = 1
c_obergrenze = 3
d_untergrenze = 1
d_obergrenze = 5
Dim a$(a_obergrenze)
Dim b$(b_obergrenze)
Dim c$(c_obergrenze)
Dim d$(d_obergrenze)
For lCounter = a_untergrenze To a_obergrenze
a$(lCounter)="a" + Str(lCounter)
Next
For lCounter = b_untergrenze To b_obergrenze
b$(lCounter)="b" + Str(lCounter)
Next
For lCounter = c_untergrenze To c_obergrenze
c$(lCounter)="c" + Str(lCounter)
Next
For lCounter = d_untergrenze To d_obergrenze
d$(lCounter)="d" + Str(lCounter)
Next
lCounter = 0
For lCounter_A = a_untergrenze To a_obergrenze
For lCounter_B = b_untergrenze To b_obergrenze
For lCounter_C = c_untergrenze To c_obergrenze
For lCounter_D = d_untergrenze To d_obergrenze
lCounter + 1
Debug Str(lCounter) + ": " + a$(lCounter_A) + " " + b$(lCounter_B) + " " + c$(lCounter_C) + " " + d$(lCounter_D)
Next
Next
Next
Next
Grüße ... Kiffi
Verfasst: 08.12.2005 14:23
von ArminF
dankeschön!
dass die sechzig verschiedenen ergebnisse als Addition der Strings ins Programm einfließen, dürfte ich noch erledigt bekommen. sieht aber sehr schön aus *freu*
Verfasst: 08.12.2005 14:49
von ArminF
Kiffi hat geschrieben:Hai ArminF,
nachfolgend ein Code, der Dein Problem lösen könnte (wenn ich es richtig
verstanden habe). Kann man vielleicht auch anders (kürzer und schneller)
lösen. Mir ging es aber darum, für's erste einen Anfänger-kompatiblen
Code zu schreiben.
Grüße ... Kiffi
hab mir das ganze gerade mal durch den kopf gehen lassen. hatte allerdings ein etwas unglückliches beispiel gewählt mit a1 bis a4 etc. - a1 sollte z.B. für einen String namens "CCT" stehen, a2 für "CCG", a3 für "CCA" und a4 für "CCC". Daher ist das mit der Ober-Untergrenzen-Geschichte eher gestorben für mich, oder?

Verfasst: 08.12.2005 15:29
von Kiffi
> - a1 sollte z.B. für einen String namens "CCT" stehen, a2 für "CCG", a3 für
> "CCA" und a4 für "CCC".
ReplaceString() ist Dein Freund.
einfach folgende Zeile:
Code: Alles auswählen
myString$ = Str(lCounter) + ": " + a$(lCounter_A) + " " + b$(lCounter_B) + " " + c$(lCounter_C) + " " + d$(lCounter_D)
durch folgendes ersetzen:
Code: Alles auswählen
myString$ = Str(lCounter) + ": " + a$(lCounter_A) + " " + b$(lCounter_B) + " " + c$(lCounter_C) + " " + d$(lCounter_D)
myString$ = ReplaceString(myString$, "a1", "CCT")
myString$ = ReplaceString(myString$, "a2", "CCG")
; und so weiter [...]
Debug myString$
Grüße ... Kiffi
Verfasst: 08.12.2005 17:10
von ArminF
*pling* solangsam ist der groschen gefallen bei mir...
wenn ich jetzt noch herausbekommen, wie ich dieses komplett-durchlaufen aller möglicher kombinationen auf 8 Aminosäuren beschränke, dann hab ich es geschafft und kann hier demnächst ein programm präsentieren...
Verfasst: 13.12.2005 11:37
von ArminF
Programm ist fertig. Dummerweise nur zu groß für die Demoversion
Na ja egal ich guck mal ob ich das noch hier hereingestellt bekomme, und dann kann man sich das mal angucken ob das so funktionieren sollte.
Werd den selben Spaß wahrscheinlich mit TurboPascal ausprobieren, da hab ich ne Vollversion von...