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

Python Discussion :

Bio-informatique algorithme passage séquence nucléique à séquence protéique


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 61
    Par défaut Bio-informatique algorithme passage séquence nucléique à séquence protéique
    Bonjour à tous,

    J'ai crée un dictionnaire dCodegenetique avec pour clé un acide aminé et pour valeurs l'ensemble des codons qui lui correspondent :

    {'F': ['ttt', 'ttc'], 'S': ['tct', 'tcc', 'tca', 'tcg', 'agt', 'agc'], 'Y': ['tat', 'tac'], 'C': ['tgt', 'tgc'], 'L': ['tta', 'ttg', 'ctt', 'ctc', 'cta', 'ctg'], '*': ['taa', 'tga', 'tag'], 'W': ['tgg'], 'P': ['cct', 'ccc', 'cca', 'ccg'], 'H': ['cat', 'cac'], 'R': ['cgt', 'cgc', 'cga', 'cgg', 'aga', 'agg'], 'Q': ['caa', 'cag'], 'I': ['att', 'atc', 'ata'], 'T': ['act', 'acc', 'aca', 'acg'], 'N': ['aat', 'aac'], 'K': ['aaa', 'aag'], 'M': ['atg'], 'V': ['gtt', 'gtc', 'gta', 'gtg'], 'A': ['gct', 'gcc', 'gca', 'gcg'], 'D': ['gat', 'gac'], 'G': ['ggt', 'ggc', 'gga', 'ggg'], 'E': ['gaa', 'gag']}

    J'ai ensuite deux fichiers texte, le premier (seqprot.txt) est un fichier correspond à une séquence protéique (en première ligne le nom de la séquence et en secode ligne la sequence protéique en elle même, ect... :

    >eco:b0001 thrL; thr operon leader peptide
    MKRISTTITTTITITTGNGAG
    >eco:b0002 thrY; thr operon looser peptide
    TTS

    Le second fichier texte (seqnuc.txt) correspond à son équivalent en séquence nucléique (il s'agit d'un fichier test, la seconde séquence est fausse elle sert juste d'exemple) :

    >eco:b0001 thrL; thr operon leader peptide
    atgaaacgcattagcaccaccattaccaccaccatcaccattaccacaggtaacggtgcgggctga
    >eco:b0002 thrY; thr operon looser peptide
    accatatcg

    Mon objectif est de vérifier si la conversion séquence protéique - séquence nucléique est exacte.

    Pour ce faire j'ai donc créer un premier dictionnaire avec mon code génétique (comme expliqué plus haut)

    J'ai ensuite crée un second dictionnaire dNomseqnucl avec pour clé le nom de la séquence et en valeur les codons qui composent la séquence, ici :

    {'>eco:b0001 thrL; thr operon leader peptide': ['atg', 'aaa', 'cgc', 'att', 'agc', 'acc', 'acc', 'att', 'acc', 'acc', 'acc', 'atc', 'acc', 'att', 'acc', 'aca', 'ggt', 'aac', 'ggt', 'gcg', 'ggc', 'tga'], '>eco:b0002 thrY; thr operon looser peptide': ['acc', 'ata', 'tcg']}

    Pour la suite je suis perdu, il faudrait que je compare chacun de ces codons avec mon dictionnaire dCodeGenetique pour attribuer l'acide aminé correspondant à chaques codons. Pour ensuite pouvoir comparer ma séquence ainsi obtenue avec la séquence fournie dans le fichier seqprot.txt et ainsi relever des erreurs si il y en a...

    Voici mon code actuel au complet :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    dCodeGenetique = {}
    dNomseqnucl = {}
    import re
    from collections import defaultdict 
     
    with open ("codegenetique.txt", "r") as f1:
    	for lignes1 in f1:
    		lignes01=lignes1.rstrip("\n")
    		matchaa=re.search("^(.)",lignes01) #rejex pour les acides aminés.
    		matchnt=re.search("^.=[[]([a,t,c,g]+)[]]",lignes01) #rejex pour les séquences nucléotidiques.
    		if matchnt:
    			nuclt1=matchnt.group(1) #On isole les séquences nucléotidiques.
    			nuclt2=nuclt1.split(",") #Je sépare les différents codons avec un split sur la virgule.
    		if matchaa:
    			aa=matchaa.group(1) #On isole les acides aminés.
    			dCodeGenetique[aa] = nuclt2 #Je met les acides aminés en clé et les différents codons en valeur.
     
    with open ("seqnucl.txt","r") as f2:
    	for lignes2 in f2:
    		lignes02=lignes2.rstrip("\n")
    		nomseq=re.search("^(>.+)",lignes02) #Regex pour isoler le nom de notre séquence nucléique
    		matchnucl=re.search("(^[a-z]+)",lignes02) #Regex pour isoler notre séquence nucléique
    		if nomseq:
    			nomsequencenucl=nomseq.group(1)
    		if matchnucl:
    			seqnucl=matchnucl.group(1) #On a isolé la séquence nucléique
    			codons = re.findall('.{1,3}', seqnucl) #On divise notre séquence nucléotidique par lettres de 3 (codons).
    			dNomseqnucl[nomsequencenucl]=codons #On crée notre dictionnaire avec pour clé le nom de la séquence nucl et en valeur la seq nucl codons par codons.

    Comment puis-je comparer mes codons de mon dNomseqnucl avec les valeurs (codons également) mon dCodeGenetique ?

    Merci d'avoir pris le temps de me lire, j'espère que mes explications sont suffisantes pour que vous puissiez m'aider...

    Merci d'avance

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par Amniote Voir le message
    Comment puis-je comparer mes codons de mon dNomseqnucl avec les valeurs (codons également) mon dCodeGenetique ?
    Pour ce que j'en ai compris, il faut vérifier que:
    • atgaaac...gggctga est bien MKRISTTITTTITITTGNGAG, et que:
    • accatatcg est bien TTS


    C'est çà?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 61
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,


    Pour ce que j'en ai compris, il faut vérifier que:
    • atgaaac...gggctga est bien MKRISTTITTTITITTGNGAG, et que:
    • accatatcg est bien TTS


    C'est çà?

    - W
    C'est totalement ça oui

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Alors pour vérifier que accatatcg est bien TTS (par exemple),
    • on vérifie que 'acc' est un codon associé à T,
    • puis que 'ata' est un codon associé à T,
    • là on trouve que c'est faux et on a fini.


    où est la difficulté?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 61
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Alors pour vérifier que accatatcg est bien TTS (par exemple),
    • on vérifie que 'acc' est un codon associé à T,
    • puis que 'ata' est un codon associé à T,
    • là on trouve que c'est faux et on a fini.


    où est la difficulté?

    - W
    La difficulté c'est mon niveau en Python je pense :'(

    Je vois pas comment coder cette partie pour arriver à comparer mes codons avec mon dicoCodeGenetique...

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par Amniote Voir le message
    La difficulté c'est mon niveau en Python je pense :'(
    Faîtes un peu chauffer vos neurones!
    Vous savez:
    • découper 'accatatcg' par paquets de 3.
    • vérifier que 'acc' est dans la liste associée à dCodegenetique['T']
    • faire une boucle..

    donc vous avez de quoi commencer pour écrire quelques lignes de code et regarder si çà fonctionne ou pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Algorithme de recherche de séquences répétées
    Par madprod dans le forum Langage
    Réponses: 3
    Dernier message: 27/11/2013, 17h06
  2. thèse bio informatique
    Par joyeux2000 dans le forum Bioinformatique
    Réponses: 4
    Dernier message: 05/04/2011, 12h45
  3. Réponses: 0
    Dernier message: 21/07/2009, 22h20
  4. Réponses: 0
    Dernier message: 20/11/2008, 22h46
  5. bio-informatique
    Par hutchuck dans le forum Emploi
    Réponses: 6
    Dernier message: 20/05/2008, 09h51

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