Archive

Écrire le nombre de gènes trouvés sur chaque phase pour les 6 phases

astro64

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?

zenjo

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? :wink:
Bien cordialement

astro64

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

zenjo

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

Bien cordialement.

SebastienLaurent

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, :slightly_smiling_face: