2017-05-24 4 views

Répondre

0

je l'ai fait manuellement par l'analyse des enregistrements ATOM de pdb pour obtenir des résidus existants et en analysant 465 REMARK pour obtenir des résidus manquants:

pname = '4g5j.pdb' #downloaded file from PDB 

fin = open(pname,'r') 
content = fin.readlines() 
fin.close() 

res = [] 
mis_res = [] 

print('CHAIN A will be used for ALIGNMENT') 
het_chain = 'A' 

for i,line in enumerate(content): 

    if line[0:4] == 'ATOM': 

    split = [line[:6], line[6:11], line[12:16], line[17:20], line[21], line[22:26], line[30:38], line[38:46], line[46:54]] 

    if split[4] != het_chain: 
     continue 
    res.append(int(split[5])) 

for i,line in enumerate(content): 

    if line[0:10] == 'REMARK 465': 

    split = [line[:10], line[19], line[21:26]] 

    if split[1] == het_chain: 

     mis_res.append(int(split[2])) 

resindexes = sorted(list(set(sorted(res)))) 

missed_resindexes = sorted(list(set(mis_res))) 
missed_resindexes = [el for el in missed_resindexes if el not in resindexes] 

all_indexes = sorted(resindexes+missed_resindexes) 
print(len(all_indexes)) 

#here you should have your real sequence! 
real_seq = 'GSMGEAPNQALLRILKETEFKKIKVLGSGAFGTVYKGLWIPEGEKVKIPVAIKELREATSPKANKEILDEAYVMASVDNPHVCRLLGICLTSTVQLITQLMPFGCLLDYVREHKDNIGSQYLLNWCVQIAKGMNYLEDRRLVHRDLAARNVLVKTPQHVKITDFGLAKLLGAEEKEYHAEGGKVPIKWMALESILHRIYTHQSDVWSYGVTVWELMTFGSKPYDGIPASEISSILEKGERLPQPPICTIDVYMIMVKCWMIDADSRPKFRELIIEFSKMARDPQRYLVIQGDERMHLPSPTDSNFYRALMDEEDMDDVVDADEYLIPQQG' 

missed_seq = real_seq[:] 

for i,el in enumerate(real_seq): 
    if all_indexes[i] in missed_resindexes: 
    print(i) 
    missed_seq = missed_seq[:i]+'-'+missed_seq[i+1:] 

print(missed_seq) 

SORTIE: --- GEAPNQALLRILKETEFKKIKVLGS-- --TVYKGLWIPEGEKVKIPVAIKE ---------- ------ KEILDEAYVMASVDNPHVCRLLGICLTSTVQLITQLMPFGCLLDYVREHKDNIGSQYLLNWCVQIAKGMNYLEDRRLVHRDLAARNVLVKTPQHVKITDFGLAKLLGAEEKEYHAEGGKVPIKWMALESILHRIYTHQSDVWSYGVTVWELMTFGSKPYDGIPASEISSILEKGERLPQPPICTIDVYMIMVKCWMIDADSRPKFRELIIEFSKMARDPQRYLVIQGDERMHLPSPTDSNFYRALMDEEDMDDVVDADEY

+0

Requiert le formatage des bits pour votre réponse. – Billa

+0

Je l'ai vérifié pour 38 protéines, et environ 20 fois ce script a été couronné de succès. Mais parfois, les acides aminés apparaissent sous les enregistrements HEATATM, il y aura donc une erreur. Maintenant, j'essaie d'utiliser le module ProDy pour faire ce travail. – farynaa