IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[Débutant] Créer une séquence aléatoire d'ADN en supprimant les doublons


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [Débutant] Créer une séquence aléatoire d'ADN en supprimant les doublons
    Bonjour tout le monde !

    Cela fait plusieurs semaines que je suis sur ce projet et je demande de l'aide car je fais du sur place !!
    Mon projet est de créer, avec Python, une séquence d'ADN (ATCG) aléatoire en supprimant les doublons ex : ACTGACTG - ACAC ...
    Je ne sais pas par ou commencer ... Si une âme charitable pourrais m'aider =) En vous remerciant d'avance !!

    Lili.

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Je ne sais pas si j'ai bien compris ce que tu cherchais ...

    Et puis je pense que tu peux avoir des solutions moins degueux
    Par ailleurs je pars aussi du principe qu'un brin d'adn de longueur impair n'a pas de doublon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    import random
     
    length = 10
    adn = ""
    i = 0
     
    random.seed()
     
    while 1 :
        while i < length :
            adn += random.choice('ATGC')
            i += 1
        i = 0
     
        if length % 2 != 0 or adn[0:int(length / 2)] != adn[int(length / 2):length]:
            break
     
    print (adn)

  3. #3
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Points : 8 713
    Points
    8 713
    Billets dans le blog
    43
    Par défaut
    Il serait nécessaire de préciser la notion de "doublon".
    1. Peuvent-ils non consécutifs ? Par exemple ACTGACTT
    2. Supprimer les doublons signifie-t-il supprimer toutes les occurrences apparaissant plusieurs fois ou en conserver une seule ?
    3. Quelle est la longueur minimale d'un motif ? Par exemple est ce que AA est considéré comme un doublon de la lettre A ?
    4. La suppression des doublons doit elle être réalisée de gauche à droite ou de droite à gauche ?

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    1- alors les doublons ne doivent pas être consécutifs ex : ATCGTATCGT mais ATCGTGATCGT est possible.
    2 - les doublons doivent être supprimés à chaque fois qu'il apparaît lorsque la séquence s'agrandit.
    3- Oui AA est considéré comme un doublon.
    4 - je ne comprend pas trop cette question mais la séquence s'agrandit au fur et à mesure. Pendant qu'elle s'agrandit, si un doublon apparaît il doit être supprimé.

    La longueur de la séquence doit être de 20.

  5. #5
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Points : 8 713
    Points
    8 713
    Billets dans le blog
    43
    Par défaut
    2. Que doit donner au final cette séquence ATCGTGATCGT : ATCGTG, GATCGT, ou bien G ?

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Si la séquence est ATCGTATCGT alors le deuxieme "ATCGT" doit etre supprimé et le programme doit continué la séquence tout en vérifiant si il n'y a pas de doublons.

    Exemple :
    -ATCGTATCGT
    -ATCGT
    -ATCGTACGACG
    -ATCGTACG
    -ATCGTACGATCTC
    -ATCGTACGATCAG

    Ainsi de suite ...

  7. #7
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Points : 8 713
    Points
    8 713
    Billets dans le blog
    43
    Par défaut
    Ok, et quand tu dis que 3) AA comporte un doublon de la lettre A, et que 1) les doublons peuvent ne pas être consécutifs, cela signifie qu'il ne peut il y avoir qu'une fois les lettres A, T, C et G. Ce qui signifie que la longueur de l'ADN ne peut pas excéder 4 puisqu'on supprime les doublons des lettres ^^

    Je pense qu'il y a un souci dans ta définition. Il doit soit il y avoir nécessité de consécutivité des doublons pour les supprimer, soit une longueur minimal du motif pouvant être supprimé.

  8. #8
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    ALors je ne sais pas trop comment m'expliquer mais une séquence du genre ATCGTAGCTCGAGTACTGAC est parfaite.(Si j'ai bien vérifié il n'y a pas de doublons)

    Même s'il y a deux fois "ATCG" dans la séquence mais qui n'est pas à la suite, donc consécutifs, cela ne pose pas de problème =)

  9. #9
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Points : 8 713
    Points
    8 713
    Billets dans le blog
    43
    Par défaut
    Citation Envoyé par lili-33 Voir le message
    ALors je ne sais pas trop comment m'expliquer mais une séquence du genre ATCGTAGCTCGAGTACTGAC est parfaite.(Si j'ai bien vérifié il n'y a pas de doublons)

    Même s'il y a deux fois "ATCG" dans la séquence mais qui n'est pas à la suite, donc consécutifs, cela ne pose pas de problème =)
    Ne le prend pas mal, mais tu as un problème de logique.
    1. Je ne vois pas deux fois "ATCG" mais qu'une seule fois.
    2. Dans ta séquence ATCGTAGCTCGAGTACTGAC, TCG est présente deux fois. Donc il y a doublon, n'est-ce pas ?

  10. #10
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je ne le prends pas mal =)
    Non, TCG n'est pas un doublon dans la séquence que j'ai marqué car il n'est pas à la suite de l'autre TCG. Si c'était ATCGTCG, là oui c'est un doublon.

  11. #11
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Points : 8 713
    Points
    8 713
    Billets dans le blog
    43
    Par défaut
    S'il est nécessaire que la répétition soit consécutive pour que ce soit considéré comme doublon, l'algorithme est très simple.

    Il faut supposer que au moment où on ajoute une nouvelle lettre X, la chaîne C ne comporte pas de doublon.
    Il suffit donc de comparer toutes les sous-chaînes se terminant par X avec les sous-chaines immédiatement précédentes, évidemment de même longueur. Sachant que la longueur des sous-chaînes à comparer doit être inférieure ou égale à la moitié de la longueur totale de chaîne C+X.

    La formule principale est la suivante
    sous-chaine(C+X, LG-lg+1, lg) == sous-chaine(C+X, LG-2*lg+1, lg)

    telle que :
    • sous-chaine renvoie la sous-chaîne de la chaine de caractères fournie en premier paramètre.
    • C+X est la chaîne construite jusqu'à présent avec la nouvelle lettre aléatoire ajoutée en fin de chaîne.
    • LG est la longueur de la chaîne C+X
    • lg est la longueur des sous-chaînes à comparer. Il faut faire varier cette valeur entre 1 et LG / 2 pour tester la présence de doublons consécutifs.


    Si la formule principale est vérifiée pour une des valeurs de lg (entre 1 et LG/2), alors il y a doublon et il faut régénérer une nouvelle lettre X, sinon, on peut valider la nouvelle lettre X à la chaîne C (donc faire C = C + X).

    Bon courage.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Créer une fenêtre windows
    Par frizou11 dans le forum Visual C++
    Réponses: 7
    Dernier message: 13/02/2007, 16h47
  2. [Débutant] Créer une application
    Par a2bfango dans le forum Delphi
    Réponses: 12
    Dernier message: 13/02/2007, 10h32
  3. [Débutant] Créer une addition
    Par ArHacKnIdE dans le forum Assembleur
    Réponses: 38
    Dernier message: 07/06/2006, 10h35
  4. [Débutant] Créer une instance avec le nom d'une classe
    Par Quetzalcoatl dans le forum Langage
    Réponses: 7
    Dernier message: 23/01/2006, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo