Le calcul sur les 6 phases appliqué à Bacillus subtilis donne 4723 gènes au total. Comment modifier le programme pour écrire le nombre de gènes des 6 phases?
Écrire le nombre de gènes trouvés sur chaque phase pour les 6 phases


Voici une solution possible :
# pour rappel, les gènes sur la phase 0
genes_phase_long = []
genes = coding_regions_one_phase(subtilis, 0)
genes_phase_long.append(len(genes))
genes = coding_regions_one_phase(subtilis, 1)
genes_phase_long.append(len(genes))
genes = coding_regions_one_phase(subtilis, 2)
genes_phase_long.append(len(genes))
reverse = reverse_complement(subtilis)
genes = coding_regions_one_phase(reverse, 0)
genes_phase_long.append(len(genes))
genes = coding_regions_one_phase(reverse, 1)
genes_phase_long.append(len(genes))
genes = coding_regions_one_phase(reverse, 2)
genes_phase_long.append(len(genes))
total = 0
for i in range(0, 6):
print("On a trouvé {} gènes sur la phase {}".format(genes_phase_long[i], i))
total += genes_phase_long[i]
print("Total gènes :", total)
Mais elle n’est pas terrible ;(. On peut l’améliorer. Ca vous dit?
Bien cordialement

Merci pour votre contribution
Voici le résultat obtenu:
On a trouvé 788 gènes sur la phase 0
On a trouvé 737 gènes sur la phase 1
On a trouvé 753 gènes sur la phase 2
On a trouvé 810 gènes sur la phase 3
On a trouvé 799 gènes sur la phase 4
On a trouvé 836 gènes sur la phase 5
Total gènes : 4723
On doit effectivement pouvoir l’améliorer avec 2 boucles allant de 0 à 2 pour les 2 brins

Tout à fait! et ces 2 boucles pourraient intégrer l’affichage et le calcul du total.
Bien cordialement.

Bonjour,
Pour obtenir le même résultat, je suis parti du code Python fourni dans le notebook puis modifié comme suit :
les gènes trouvés sur les 6 phases
def all_coding_regions(dna):
reverse = reverse_complement(dna)
genes = []
x = []
for sujet in dna, reverse:
for phase in 0, 1, 2:
for start, end in coding_regions_one_phase(sujet, phase):
# c'est ici qu'on extrait le gène in extenso
genes.append(sujet[start:end])
if x == [] :
x.append((phase, len(genes)))
print("La phase {} contient {} gènes".format(phase, x[0][1]))
else :
x.append((phase, len(genes)))
print("La phase {} contient {} gènes".format(phase, x[len(x)-1][1] - x[len(x)-2][1]))
return genes
Qu’en pensez-vous ? Bien cordialement,