Witam, mam problem z napisaniem programu dla tego zadania:
"Napisz program, który pobiera od użytkownika maksymalna długość DNA, lecz nie mniejszą niż 9, program pyta do skutku aż poda min.9. Następnie generuje losową sekwencje DNA o losowej długości, niezerowej i nieprzekraczającej maksymalnej liczy oraz podzielnej przez 3. Dodaje kodon start( ATG). Następnie dzieli sekwencje na kodony i wprowadza losowe pojedyncze mutacje w 3 innych, losowych kodonach. Jeśli ocalał kodon start wyświetla końcową sekwencje. Jeśli mutacje naruszyły kodon start, należy napisać, że nie udało się stworzyć genu. Mutacje można wprowadzić małymi literami."
Starałam się sama napisać, aczkolwiek na tym poziomie kończą się moje umiejętności z pisania programu:
from random import choice
from random import randint
import random
dlug=int(raw_input("Podaj maksymalna dlugosc sekwencji, minimum 9: "))
while dlug < 9:
dlug=int(raw_input("Podaj dlugosc sekwencji MINIMUM 9: "))
losseq_mut=""
nuk = ["A","C","T","G"]
mutacja = ["a","c","t","g"]
losseq_mut=""
y=1
while y%3!=0:
y=random.randint(1,dlug)
losseq=""
for k in range(y):
losseq+=choice(nuk)
dna="ATG"+losseq
for j in range(0,len(dna),3):
print dna[j:j+3]
u=int(y)+3
print "Dlugosc wylosowanej sekwencji z kodonem start wynosi %i" %(u)
t=random.randint(0,u)
r=random.randint(0,u)
e=random.randint(0,u)
while r==t:
r=random.randint(0,u)
while e==t or e==r:
e=random.randint(0,u)
for s in range(len(dna)):
if s == t or s == e or s == r:
losseq_mut+=choice(mutacja)
else:
losseq_mut+=dna[s]
if losseq_mut.startswith("ATG"):
print losseq_mut
else:
print "nie udalo sie"
Jedynie czego nie wiem jak zrobić to to, aby nie było więcej niż 1 mutacja w kodonie. Będę wdzięczna za pomoc!!`
komuher