Bonjour,

J'essaye de réaliser un programme qui depuis un fichier .pdb (fichier contenant une multitude d'info. sur une protéine) me sélectionne les info que je souhaite. J'ai préalablement sélectionner les lignes commençant par SEQRES: Voici un échantillon que j'ai appelé seq0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
['SEQRES   1 A  215  MET GLU ARG ASN LYS LEU ALA ARG GLN ILE ILE ASP THR          \n',
 'SEQRES   2 B  215  CYS LEU GLU MET THR ARG LEU GLY LEU ASN GLN GLY THR          \n',
 'SEQRES   3 C 215  ALA GLY ASN VAL SER VAL ARG TYR GLN ASP GLY MET LEU          \n',
Les lettres A B et C correspondent à la chaine polypeptidique à laquelle correspond la séquence qui suit (MET GLU ARG etc.)

J'ai écrit un script qui me permet de print la séquence des chaines polypeptidique sous forme de chaine de caractère avec ce script:
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
 
codeA=""
codeB=""
codeC=""
dico={"VAL":"V","ILE":"I","LEU":"L","MET":"M","PHE":"F","GLY":"G","ALA":"A","PRO":"P","TRP":"W","TYR":"Y","SER":"S","THR":"T","CYS":"C","ASN":"N","GLN":"Q","ARG":"R","LYS":"K","HIS":"H","ASP":"D","GLU":"E"}
for i in seq0:
    seq1=i.split()
    for j in seq1[4:int(len(seq1))]: 
        if seq1[2]=="A":
            codeA=codeA+dico[j]
        if seq1[2]=="B":
            codeB=codeB+dico[j]
        if seq1[2]=="C":
print "sequence A:",codeA
print "sequence B:",codeB
print "sequence C:",codeC
 
résultat:
séquence A: MERNKLAR.....
séquence B: CLEMTR....
séquence C: AGNVSV.....
Ce script fonctionne bien, mais mon problème c'est qu'il n'est pas viable. Imaginons que la protéine en question comporte 100 chaines polypeptidiques, ce serait stupide d'écrire à chaque fois "if seq1[2]=="X": codeX=codeX+dico[j]"

Du coup, je n'arrive pas à trouver un script qui me print la séquence de toutes les chaines polypeptidiques présentes sans avoir à écrire des centaines de lignes.

Pouvez vous m'aidez svp ?

Merci d'avance