#!/usr/bin/env python # -*-coding:Utf-8 -* #################### Tracer un graphique d'hydrophobicite d'une proteine (E. jaspard - 2018) #################### ######### Adapte de A. Kumar (http://www.biob.in/2014/05/hydrophobicity-plot-using-biopython.html) ############## ######### Adapte de http://www.dalkescientific.com/writings/NBN/plotting.html ############## from pylab import * from Bio import SeqIO fichierFasta = open("P11229.fasta") # P11229 = fichier fasta RCPG for record in SeqIO.parse(fichierFasta, "fasta"): numeroAccession = record.id sequence = record.seq # "seq" est un attribut de l'objet "SeqRecord" nombreResidus = len(sequence) fichierFasta.close() TableKyteDoolitle = { 'A': 1.8,'R':-4.5,'N':-3.5,'D':-3.5,'C': 2.5,'Q':-3.5,'E':-3.5,'G':-0.4,'H':-3.2,'I': 4.5, 'L': 3.8,'K':-3.9,'M': 1.9,'F': 2.8,'P':-1.6,'S':-0.8,'T':-0.7,'W':-0.9,'Y':-1.3,'V': 4.2 } valeurs = [] for residus in sequence: valeurs.append(TableKyteDoolitle[residus]) #################### Calcul de la moyenne sur 5 residus : 3 - 1 - 3 #################### # Les 3 residus N-terminaux et les 3 residus C-terminaux ne sont pas utilises car ils n'ont pas 4 voisins hydrophobicite = [] # hydrophobicite = variable en ordonne for i in range(3, nombreResidus-3): # Parcours de la sequence de aa = +3 - aa = longueur totale -3 NterNterNter = valeurs[i-3] NterNter = valeurs[i-2] Nter = valeurs[i-1] residuConsidere = valeurs[i] Cter = valeurs[i+1] CterCter = valeurs[i+2] CterCterCter = valeurs[i+3] hydrophobiciteMoyenne = (NterNterNter + NterNter + Nter + residuConsidere + Cter + CterCter + CterCterCter) / 7 hydrophobicite.append(hydrophobiciteMoyenne) #################### Graphique : les 3 residu N-terminaux et les 3 residu C-terminaux sont exclus #################### numeroAA = range(3, 3+len(hydrophobicite)) # numeroAA = variable en abcisse plot(numeroAA, hydrophobicite, linewidth=1.0) xlabel("Numero du residu") ylabel("Hydrophobicite") title("Profil d'hydrophobicite de " + numeroAccession) show() # Commande pour afficher via numpy