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
Partager