Un premier jet d'aide pour vous donner une idée de ce qui se cache derrière tous ces outils.
Cette série de scripts utilise pour fonctionner une base de donnée MySQL. Dans cette base de donnée se trouve, pour chaque espèce disponible, une table des peptides de digestion indexée par la masse des peptides. A partir des recherches dans ces tables et de quelques algorithmes décris ci-dessous, iol est possible de relier une liste de masses mesurées de peptides à une identification de protéines.
Trois outils sont disponibles pour l'instant et leur fonctionnement est décris succintement ci-dessous.
L'interface de la plupart des scripts disponibles est en train d'être unifiée pour limiter les effets de surprise pour les utilisateurs.
A partie de l'entrée d'une masse et d'une erreur, cet outil donne la liste complète des protéines dans lesquels un peptide de digestion est d'une masse correspondante. Cet outil permet essentiellement de tester le bon fonctionnement de la base de donnée sous-jacente. Mais si vous lui trouvez d'autres usages, n'hésitez pas à m'en faire part.
C'est à peu près ce que vous propose Mascot ou Profound, en version locale. Pour toutes les protéines dont au moins un peptide de digestion enzymatique correspond à une des masses entrées par l'utilisateur, un score est calculé. La formule utilisée est la suivante:
Score = (Nombre de peptides pondérés)^2 + 4 x (Deviation standard en ppm)
La pondération est un facteur de proportionalité entre le nombre de masses identifiées à un peptide et le nombre total de peptides enzymatiques présents dans la base de donnée pour la protéine. Quelque part ceci revient à un facteur de proportionalité avec la masse, sauf qu'une protéine ayant peu de sites de coupure avec une enzyme ne sera pas pénalisée de ce fait. Le facteur de proportionalité a été compté tel que pour une protéine usuelle de 30 kDa, ce facteur vaille 1.
Note: La fonction de pondération n'est pas pour l'instant linéaire: elle est minorée à ce facteur de 1 (protéine moyenne de 30 kDa) ce qui limite une surreprésentation des protéines de faibles masses moléculaires.
A partir de données de masses, en faisant l'hypothèse que toutes ces masses appartiennent à des protéines présentes dans le mélange, cet outil essaye d'identifier la composition du mélange.
N.B.: L'hypothèse faite au départ rend cet outil très sensible à la qualité des données fournies en entrée au programme. L'effet de données erronées peut conduire d'une part à des résultats non pertinents, mais également à des temps de calculs très longs. En effet, le programme tente d'attribuer toutes les masses trouvées à des peptides ce qui peut devenir très long lorsque de nombreuses protéines candidates sont à envisager.
(Ceci ne doit pas trop sortir du labo...)
C'est l'équivalent de la première étape de l'analyse en PMF. Simplement aucun score n'est calculé à ce niveau. A ce niveau, une liste de protéines candidates est établie et en parallèle pour chaque masse une liste de protéines qui peuvent lui correspondre.
Toutes les masses ne correspondant à aucune protéine sont éliminées de la liste.
Si des peptides ne correspondent qu'à une seule protéine possible, ces dernières sont immédiatement considérées comme identifiées. Les masses correspondant à d'autres peptides de la même protéines sont alors éliminées.
C'est ici que la qualité des données initiales intervient une première fois: il est exact que si un peptide discriminant est présent avec une précision suffisante, il est quasiment acquis que la protéine est effectivement présente. Si une seule masse conduit à identifier cette protéine, on peut considérer cette situation comme un faux négatif, sans trop d'effet à long terme. Par contre s'il y a d'autres peptides de cette protéine, on est face à une question: est-ce qu'ils appartiennent tous à cette protéine, qui est de fait identifiée?
Cette notion est d'importance pour l'interprétation des résultats et mérite quelques commentaires. Analyser un mélange revient à déterminer une répartition de différents éléments (les masses de peptides) entre différents ensembles (les protéines). La répartition finale doit être telle que la fonction des éléments vers les ensembles soit surjectives (une masse appartient à une et une seule protéine). Soit (m1, m2, ..., mi, ..., mn) l'ensemble majorant des masses pouvant appartenir à une protéine A (noté Maj(A)) et (m1, m2, ..., mk) l'ensemble majorant des masses pouvant appartenir à une protéine B (noté Maj(B)). Si tout élément du second ensemble est un élément du premier (Maj(B) est un sous-ensemble de Maj(A)), dans la répartition finale il ne sera pas possible de différencier B de A sur la seule base des masses leur appartenant. Par conséquent, la complexité du système à étudier peut être réduite en éliminant dans cette phase toutes les protéines pour lesquels cette relation d'inclusion s'applique. Ceci uniquement dans un premier temps, c'est à dire pour décomposer le mélange en ses éléments. On conservera néanmoins cette liste afin de vérifier, une fois la partition obtenue, si un sous-ensemble correspondant à une protéine B ne serait pas plus valable que la protéine A choisie ici parce qu'elle présentait le meilleur recouvrement a priori.
Ceci correspond aussi à une certaine réalité dans les bases de données: dans un certain nombre de cas, on trouve des protéines avec une grande similarité dans les bases de données. Elles seront ainsi regroupées dans la même catégorie pour l'analyse du mélange. Mais cela peut aussi très bien arriver pour des protéines sans relations entre elles, par simple coincidence fortuite sur les valeurs des masses mesurées.
Pour l'instant, dans la version 0.4, la composition des sous-ensemble est affichée succintement à la fin de l'analyse. Il est important de la regarder pour une protéine identifiée qui est également la protéine de regroupement: l'analyse subséquente ne permet pas toujours d'éliminer de possibles coincidences à ce niveau. A terme, un bouton sera affiché dans les résultats pour visualiser directement les alternatives.
Le but à partir d'ici est d'arriver à une ou plusieurs propositions de partitions des masses mesurées. Dans un premier temps, on réduit la complexité à partir des identifications certaines. Si une protéine est identifiée avec une certitude raisonnable, il est aussi raisonnable de considérer que tous les peptides qui pourraient faire partie de son ensemble en font de fait partie. S'il y a une attribution erronée et que ces peptides appartenaient à une autre protéine: soit on n'aura pas suffisemment d'autres peptides pour l'identifier, et de toute façon l'identification serait impossible, soit il y en a suffisemment et la suite de l'analyse devrait permettre de tomber dessus.
Dit de façon plus simple, cette étape ressemble à ce qu'on fait à la main en répétant des recherches en base de données après avoir éliminé les peptides ayant matché.
Pour chaque protéine tête de groupe trouvée à l'étape précédente, si son identification est considérée comme fiable (i.e. elle a un score de 3 peptides pondérés supérieur à celui de toutes les autres têtes de groupe), elle remporte toutes les masses qui pourraient lui être associées et celles-ci sont donc éliminées des autres groupes. On itère sur ce critère jusqu'à épuisement.
A cette étape, si deux protéines se partagent un nombre élevé de peptides, elles auront un nombre de peptides pondérés proche, par conséquent il faudra attendre l'étape suivante pour les départager.
Pour préparer la suite, on cherche cette fois-ci à déterminer des ensembles majorants d'ensembles de masses de telle façon qu'une masse appartienne au plus à un seul surensemble. De cette façon chacun de ces surensemble qui est lui même potentiellement un mélange de protéines pourra être analysé et scoré individuellement.
Cette notion de découpage est de peu d'importance pour l'utilisateur, sauf qu'elle explique ce regroupement du résultat final en Surensembles. A l'intérieur de chaque surensemble plusieurs alternatives de mélanges peuvent être proposées auxquelles sont chaque fois associées un score.
Toutes les combinaisons possibles sont examinées. Cela prend du temps, par conséquent s'il apparaît que plus de 10 000 possibilités seront à examiner, le découpage se fera suivant la méthode 7.2 en affichant un message d'avertissement au départ.
Après avoir calculé un score pour chacune des compositions candidates, elles sont triées et les valeurs les plus élevées sont affichées.
Les seules combinaisons examinées sont celles issues d'un découpage où en partant de la protéine ayant un nombre maximal de peptides, ceux-ci sont rattachés à celle-ci, puis on passe à la suivante dans l'ordre et ainsi de suite. En cas d'égalité, les deux (ou plus) possibilités sont considérées et scorées indépendemment.