teaching:exos:sequences_brins_adn

Ceci est une ancienne révision du document !


Séquences de brins d'ADN

L'ADN (acide désoxyribonucléique) est constitué d'une suite de nucléotides qui existent en quatre types différents (notés A, C, G et T), du nom des bases adénine (A), cytosine (C), guanine (G) et thymine (T). Les brins s'associent en double hélice par une reproduction assurant une correspondance par paires, A et T d'une part, G et C d'autre part.

  • Si on considère un ensemble de n bases, combien de brins différents est-il possible d'obtenir ?
    • Avec 1 A, 1 C, 1 G et 1 T
    • Avec 1 A, 1 C, 2 G et 2 T
    • Avec 2 A, 2 C, 2 G et 2 T
    • Avec 3 A, 3 C, 3 G et 3 T
    • Avec i A, i C, i G et i T (i étant grand)
  • Si on considère une synthèse artificielle d'un brin composé de n bases issue d'un grand réservoir comprenant un nombre équivalent de chacune des bases, quel est le nombre de brins possibles comprenant 4 bases, 8 bases, 12 bases, 4*i bases ?

<sxh python; title : ADN-combinatoire-01.py> #!/usr/bin/env python # -*- coding: UTF-8 -*- “”“ Petit programme destiné à calculer des nombres de séquences ADN possibles combien de brins différents est-il possible d'obtenir :

  Avec 1 A, 1 C, 1 G et 1 T
  Avec 2 A, 2 C, 2 G et 2 T
  Avec 3 A, 3 C, 3 G et 3 T
  Avec i A, i C, i G et i T (i étant grand)

Variante : Si on considère une synthèse artificielle d'un brin composé de n bases issue d'un grand réservoir comprenant un nombre équivalent de chacune des bases, quel est le nombre de brins possibles comprenant 4 bases, 8 bases, 12 bases, 4*i bases ? Comparaisons de 2 variantes pour des petits nombres et en utilisant la formule de Striling pour des grands nombres ”“” from math import * def logfactstir(j):

  # approximation de Stirling pour le logarithme de la factorielle
  
return j*log(j) - j + log(2.*pi*j)/2.

n=101 # petits nombres for i in range(1,n):

  print i,factorial(4*i)/factorial(i)**4, 4**(4*i)

# petits nombres, en log for i in range(1,n):

  print i,log(factorial(4*i)/factorial(i)**4), log(4**(4*i))

# grands nombres # calcul suivant la formule de Stirling (http://fr.wikipedia.org/wiki/Formule_de_Stirling) # formule de Stirling : ln(j!) ~= j ln(j) - j + 1/2 ln(2πj) # approximation fréquente en thermodynb : ln(j!) ~= j ln(j) - j print pi for i in range(100,100*n,100):

  print i,logfactstir(4*i)-4.*logfactstir(i), 4*i*log(4)

# très grands nombres print pi for i in range(10000,10000*n,10000):

  print i,logfactstir(4*i)-4.*logfactstir(i), 4*i*log(4)

</sxh>

Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • teaching/exos/sequences_brins_adn.1411388036.txt.gz
  • Dernière modification : 2014/09/22 14:13
  • de villersd