Archive

Calcul de la valeur de %GC et %AT

JUDESSE

Bjr cher tous,
Merci pour ce cours. Il permet à nous débutant de découvrir et de comprendre que c’est que la bioinformatique.
Ma question se trouve au niveau de l’exercice 1 du cours de la semaine 1.
Il s’agit du calcul de la valeur de %GC et %AT
je ne retrouve nulle part la séquence initiale a partir de la quelle le calcul doit être fait et je ne sais comment calculer les valeurs de %GC et %AT en utilisant le langage Python.
La solution avec la fonction display (display “%AT=” ((nbA+nbT)/TotalNb)*100, “%GC=“, ((nbC+nbG)/TotalNb))*100) est bien claire et très bien comprise mais avec le langage Phyton, c’est pas du tout compris.
Merci de m’orienter

IsabellePoirier

Bonjour JUDESSE,

Il s’agit ici d’écrire un programme qui doit pouvoir s’appliquer à n’importe quelle séquence.
L’instruction display est du pseudo-code, qu’il faut maintenant traduire en langage Python.
Je t’invite à reprendre les exemples donnés dans les compléments notebook, par exemple la fonction display_freq_bases_v1 du complément de la section 1.5

JUDESSE

Bonjour Isabelle
merci pour la réponse.
OK un programme qui peut s’appliquer à n’importe quelle séquence.
Par rapport au langage Phyton je pense que ça peut aller maintenant
je viens de l’essayer
mais je ne sais pas si c’est bien fait
merci encore!

IsabellePoirier

Ce que tu proposes ici est encore du pseudo-code, et non des instructions python.
As-tu consulté l’exemple que je t’indique dans la réponse précédente ?
Ou même plutôt la version finale count_bases au bas du complément ?

Mickael_G

Bonjour,
l’instruction ‘display’ correspond à ‘print’ en python
Cordialement.

JUDESSE

Bonjour Mickael

ok merci

JUDESSE

Bonjour Isabelle
L’exemple a été consulté et maintenant je comprend mieux.
Merci

edunam

IsabellePoirier

Bonjour edunam,

As-tu essayé d’exécuter ta fonction pour une chaîne ne comportant pas le caractère ‘C’ ?

Par ailleurs, au lieu d’une série de “if”, tu pourrais ici utiliser des clauses “elif” :

    if x == 'A':
        nA = nA + 1
    elif x == 'T':
        nT = nT + 1
    elif x == 'G':
        ...

Cela éviterait de faire des comparaisons inutiles, une fois que le caractère est trouvé.

edunam

D’accord…

edunam

One more question. Should I upload the answer for the exercises’ Semaine 1 in this forum?

IsabellePoirier

These exercices aren’t taken into account for the attestation.
If you want to check whether your program is correct, you can write it directly in the notebook “Exercice 1/4 en Python” and test it.
By the way, your function doesn’t exactly do what it is expected to, as it returns frequency of all nucleotides, whereas we’re expected to group ‘G’ and ‘C’, and ‘A’ and ‘T’.
For exercices in pseudo-code, you will find some solution in second to last tab of this section.

Dany452

Bonjour,
Comment peut- on savoir si c’est la séquence que nous avons là?
Moi j’utilise le langage R, et c’est maintenant que je commence avec Python.
sequence : character string [1:*] , en écrivant cela, cela revient-il a considéré que nous avons importé la séquence dans Python?

IsabellePoirier

Bonjour Dany452,

sequence : character string [1:*] est une instruction écrite en pseudo-code, ce n’est pas une instruction Python.
Mais effectivement, cela signifie que la variable sequence contient une chaîne de caractères, correspondant à la séquence.

Dans cet exercice, on nous demande d’écrire une fonction qui prendra comme paramètre la séquence.
Celle-ci est donc supposée connue dans le corps de la fonction.
Mais il faudra ensuite appeler la fonction en lui passant la séquence voulue en paramètre.

Si je prends l’exemple de la fonction AT_GC de edunam, dans les instructions qui la définissent, la variable ‘seq’ correspond à une séquence.
Il faut, lorsqu’on appelle la fonction, lui passer une séquence en argument :
print(AT_GC(‘ATTTGGGGAAA’))

J’espère que cela répond à ton interrogation et que ce n’est pas plus confus.

Dany452

Merci bien Isabelle, c’est plus clair pour moi et je comprends mieux.

Henrytita

bonjour à tous,
ne serait-il pas mieux d’apprendre les notions de basede “python” avant de réaliser cette exercice?
Je vois que “EDUNAN” a coder une fonction en python qui nebug pas, mais avant ça il lui a fallut connaitre les variables, les conditions et les boucles.
Pourquoi pas ecrire un petit tuto d’intro à python pour les nouveaux qui viendront?

IsabellePoirier

Bonjour Henrytita,

Il me semble que ce petit tuto est présent :grinning:
Voir le complément de la section 1.4.

Henrytita

Merci Isabelle,
Je viens de voir le cours “Rudimentaire” , on aurais pu faire mieux

Boudaa

display() et print() sont identiques.

Razafindrakoto

Bonjour,
Je m’excuse à l’avance, ce post est très long.
Voilà, j’ai peut-être raté un passage qui indique qu’il faut un pré-requis sur les algorithmes dans la présentation du cours. En tout cas, étant biologiste par la formation, je ne sais encore rien au code, pseudo-code, etc… et j’ai cru que j’allais y voir plus clair en allant sur le forum. Ben non, j’ai l’impression que les participants qui y discutent ont déjà des connaissances sur les algorithmes
J’avoue que je suis tombé des nues quand j’ai vu qu’il fallait écrire un code (ou pseudo-code ?) dans l’exercice de la semaine. Cela étant dit, je voudrais faire l’exercice par moi-même, est-ce que quelqu’un pourrait m’indiquer des sites ou des tutos à voir ou des lectures à faire pour commencer la programmation depuis le niveau 0 ?
Merci déjà de vos réponses (:

IsabellePoirier

Bonjour @Razafindrakoto,

Sur cette même plateforme FUN, il y a cet excellent MOOC sur Python 3.

Mais il ne faut pas être intimidé(e) par les discussions sur le forum. N’hésite pas à poser toute question ou à demander de l’aide ici.

Razafindrakoto

Bonjour Isabelle,

Merci, j’ai vu le cours proposé, en effet il a l’air intéressant.