contraintes de problème
comme indiqué dans le paragraphe précédent, une paire optimale d’amorces-ensembles devrait simultanément maximiser l’efficacité et la couverture et minimiser le biais de correspondance. Dans ce qui suit, Nous décrivons comment nous avons codé quantitativement ces contraintes.
efficacité
les paires d’amorces parfaites doivent satisfaire à plusieurs contraintes, visant à améliorer L’efficacité et la spécificité de la PCR ., Cependant, la satisfaction simultanée de toutes les contraintes est souvent peu pratique et la plupart des amorces de pointe violent une ou plusieurs contraintes . Nous avons donc décidé d’introduire l’efficacité en tant que score d’optimisation, codant de nombreuses contraintes en tant que fonctions de score floue. Plus précisément, nous avons défini notre score d’efficacité comme la somme de dix termes de score: sept termes de score flous liés aux contraintes d’efficacité d’une seule amorce, moyennés sur toutes les amorces des paires d’ensembles d’amorces, plus trois termes de score liés à l’efficacité des paires d’ensembles d’amorces dans leur ensemble., Étant donné que tous les termes sont censés varier entre 0 et 1, le score d’optimisation varie de 0 (efficacité minimale) à 10 (efficacité maximale).
D’une manière générale, notre score flou compte 1 pour chaque contrainte parfaitement satisfaite, ou, alternativement, une valeur comprise entre 0 et 1 en fonction de la proximité de l’amorce à la limite de contrainte. À titre d’exemple, considérons la température de fusion de l’amorce, Tm. Tm devrait être supérieur ou égal à 52 degrés dans un apprêt parfait , mais 51 est toujours tolérable, bien que pas idéal., Dans ce cas, notre fonction de notation floue attribue 1 à des températures de 52 degrés ou plus, 0 à des températures de 50 degrés ou moins et considère une fonction croissante linéaire comprise entre 50 et 52 degrés. Chaque terme est décrit avec précision dans ce qui suit.
Les 7 termes de score d’amorce unique sont:
-
température de fusion: la température de fusion Tm d’une amorce est calculée avec la formule la plus proche voisine . Le score terme est 1 si Tm ≥ 52, 0 si Tm ≤ 50 et (Tm – 50)/2 si 50 < Tm < 52.,
-
teneur en GC: la teneur en GC est la fraction fGC des paires de bases dans la séquence d’amorces égale à G (guanine) ou C (cytosine). Le terme de score est 1 Si 0,5 ≤ fGC ≤ 0,7, 0 si FGC > 0,7 ou fGC < 0,4 et (0,5 – fGC)/0,1 si 0,4 ≤ fGC < 0,5.
-
3’la fin de la stabilité du score terme 1: score de deux termes sont définis concernant extrémité 3’de la stabilité. Le premier terme est 0 si les trois dernières bases de l’amorce consistent entièrement en As (adénines) et Ts, (thymines) et 1 sinon.,
-
3′-End stability – score term 2: le deuxième score term est 0 si les 5 dernières bases contiennent plus de 3 Cs ou Gs, et 1 sinon.
-
les Homopolymères: un homopolymère est une séquence de nucléotides identiques. Le terme de score est 1 s’il n’y a pas d’homopolymères de plus de 4 nt, 0,5 s’il n’y a pas d’homopolymères de plus de 5 nt et 0 s’il y a au moins un homopolymère de plus de 5 nt dans la séquence.
-
Auto-dimères: la présence d’auto-complémentaires des régions entre les couples d’amorces identiques peut conduire à la génération de l’auto-dimères., En considérant le nombre maximum de correspondances dans un alignement sans espace entre une amorce et son complément inverse, maxM, le terme de score est 1 si maxM ≤ 8, 0 si maxM ≥ 11 et (11-maxM)/3 Si 8 < maxM < 11.
-
épingles à cheveux: une épingle à cheveux peut être formée en présence d’auto-complémentarité dans la séquence d’amorce, en particulier à son extrémité 3′., Le terme de score est 0 si, pour au moins un alignement sans espace entre l’amorce et le complément inverse de son extrémité 3′, Le Dernier nucléotide et 3 ou plus des 4 nucléotides précédents correspondent, et 1 sinon.
les termes de score des 3 paires d’amorces sont définis comme suit:
-
Plage de température de fusion: la plage de température de fusion ΔTm d’une paire d’amorces est calculée comme le maximum moins le minimum des températures de fusion de toutes les amorces de la paire d’amorces., Le terme de score est 1 si ΔTm ≤ 3, 0 si ΔTm ≥ 5 et (5-ΔTm)/2 Si 3 < ΔTm < 5.
-
dimères: nous considérons le nombre maximum de correspondances maxM sur tous les alignements possibles entre toutes les combinaisons possibles d’amorces avant et arrière à partir d’une paire d’amorces-ensembles. Le score terme est 1 si maxM ≤ 8, 0 si maxM ≥ 11 et 11 – maxM)/3 si 8 < maxM < 11.,
-
Plage de longueur des amplicons: en raison de la réduction connue de L’efficacité de la PCR avec l’augmentation de la longueur des amplicons , nous voulons que les longueurs des amplicons générés se situent dans une plage étroite. Nous voulons surtout éviter les amplicons beaucoup plus courts que la longueur cible, car ils seraient sur-amplifiés par rapport aux autres. Cependant, nous voulons pouvoir tolérer une petite fraction de valeurs aberrantes, afin d’éviter de pénaliser les paires d’amorces-ensembles potentiellement précieuses en raison de quelques séquences rares., Étant donné un ensemble représentatif de séquences bactériennes 16S, appelé” ensemble de référence » à partir de Maintenant, nous considérons la différence Δamplen entre la médiane et le premier percentile de longueurs d’amplicons à travers tous les amplicons possibles, formée en faisant correspondre toutes les combinaisons d’amorces avant et arrière de la paire d’ensembles avec l’ensemble de référence. Le terme de score est 1 si Δamplen ≤ 50 nucléotides, 0 si Δamplen ≥ 100 et (100-Δamplen)/50 Si 50 < Δamplen < 100.,
Le choix des critères de notation et le seuil par défaut sont basées sur la littérature antérieure . Cependant, les seuils et les intervalles de tolérance flous peuvent être définis par l’utilisateur différemment de la valeur par défaut et selon ses besoins expérimentaux en spécifiant les valeurs souhaitées en tant que paramètres d’entrée lors de l’appel de l’outil de ligne de commande.
couverture
le score de couverture est défini comme le nombre de séquences 16S appariées par au moins une amorce., Étant donné les séquences d’une amorce et d’une bactérie 16S, nous définissons les 5 derniers nucléotides à l’extrémité 3’d’une amorce et nous considérons une séquence 16S comme appariée par l’amorce si une région de la séquence 16S existe qui correspond i) exactement à la graine de l’amorce; et ii) au reste de l’amorce avec au Une séquence 16S d’un ensemble de référence est considérée comme couverte par une paire amorce-ensemble si au moins une amorce avant et une amorce arrière dans la paire amorce-ensemble correspondent à la séquence., Étant donné que l’efficacité de la PCR diminue avec la longueur des amplicons, nous imposons une contrainte supplémentaire: étant donné une paire d’amorces-ensembles et un ensemble de référence de séquences 16S, nous estimons la longueur d’amplicons cible comme la médiane des longueurs de tous les amplicons obtenus en faisant correspondre toutes les combinaisons d’amorces avant et arrière de Nous considérons alors comme non couvertes toutes les séquences de référence 16S dont la longueur de l’amplicon diffère de plus de 100 nucléotides (plus ou moins longs) de la longueur cible.,
biais de correspondance
étant donné un ensemble de référence de séquences 16S et une paire d’amorces-ensembles, le troisième score d’optimisation mesure la variabilité du nombre de combinaisons d’amorces avant et arrière correspondant à chaque séquence de référence 16S. La variabilité de couverture due au biais d’appariement devrait être minimisée, ou du moins prise en compte, lorsque l’étude vise à quantifier les abondances relatives des différentes espèces bactériennes, en raison du biais d’amplification vers les espèces couvertes par Plus de combinaisons d’amorces avant et arrière., En tant que mesure du biais d’appariement, nous exploitons le coefficient de variation de la couverture à travers les séquences cibles, calculé comme l’écart-type sur la moyenne du nombre de combinaisons correspondant à chaque séquence.
ensemble de référence de séquences 16S, préparation et annotation
pour optimiser les trois scores ci-dessus, nous nous appuyons sur un ensemble représentatif de séquences 16S bactériennes extraites d’une base de données publique de séquences 16s, GreenGenes ., La base de données de séquences GreenGenes 16s est organisée en unités taxonomiques opérationnelles (Otu), qui sont des clusters imbriqués de séquences dans la base de données, organisés à différents niveaux de similarité inter-clusters. Pour chaque niveau de similarité, une séquence de référence est associée à chaque cluster, au maximum semblable à toutes les autres séquences du même cluster . L’ensemble des séquences de référence peut ainsi être considéré comme un sous-ensemble représentatif de l’ensemble de la base de données de séquences, devenant de plus en plus précis pour augmenter les niveaux de similarité inter-grappes (et donc le nombre de séquences de référence)., Nous avons choisi un niveau de similarité inter-clusters de 85% comme bon compromis entre représentativité et complexité, correspondant à un ensemble de 5088 séquences représentatives à utiliser pour évaluer les critères d’optimisation.
bien que très sensible dans l’annotation des domaines des bactéries et des archées, la taxonomie des GreenGenes n’est pas conçue pour distinguer les séquences appartenant aux eucaryotes ou aux virus., Pour cette raison, nous avons décidé de Ré-annoter les séquences bactériennes 16S en utilisant la taxonomie NCBI originale pour identifier avec précision, parmi les séquences représentatives, uniquement celles appartenant au Domaine des bactéries. Étant donné que les informations de domaine sont manquantes dans l’annotation NCBI pour environ 20% des séquences, nous avons conçu une procédure ad hoc pour identifier les séquences bactériennes parmi celles-ci. La procédure est décrite en détail dans les documents supplémentaires (voir le dossier supplémentaire 1)., Nous avons choisi de manière conservatrice de ne considérer que les séquences annotées comme des bactéries à la fois dans notre annotation organisée basée sur NCBI et dans l’annotation originale de GreenGenes. Cela a abouti à un ensemble de 4573 séquences 16S représentatives appartenant au Domaine des bactéries.,
algorithme D’optimisation
étant donné que le problème du choix optimal des amorces nécessite l’optimisation simultanée de différents scores concurrents, il peut être défini comme un problème d’optimisation multi-objectifs, où l’espace de recherche est l’ensemble de toutes les paires d’amorces-ensembles possibles et une fonction de notation, ou un critère d’optimisation, peut être défini, Lorsque plusieurs critères doivent être optimisés simultanément, mais que les objectifs à optimiser sont contradictoires, on ne s’intéresse généralement pas à une seule solution, mais plutôt à l’ensemble des solutions optimales de Pareto, c’est-à-dire à l’ensemble des solutions pour lesquelles aucun des objectifs ne peut être amélioré sans sacrifier au moins un autre objectif ., Le résultat de l’optimisation multi-objectifs n’est plus une paire d’amorces-ensembles optimale unique, comme dans l’optimisation à objectif unique, mais plutôt une collection de paires d’amorces-ensembles qui ne sont pas pires que toute autre paire d’amorces-ensembles et strictement meilleures selon au moins un des critères. Plus précisément, pour le problème d’optimisation tri-objective consistant à maximiser les scores d’optimisation d’efficacité (E) et de couverture (C) et à minimiser le score de biais de correspondance (M), tel que défini dans la section précédente, les paires d’amorces-ensembles candidates sont évaluées en fonction d’un vecteur de fonction objectif f = (f E ; f C ; fM)., Étant donné deux primer-ensemble de paires de p et de p’, nous disons que p domine p’ (p ≺ p’) si et seulement si f (p) ≠ f (p’), fE (p) ≥ fE (p’), fC (p) ≥ fC (p’) et fM (p) ≤ fM (p’). Si aucun p ‘n’existe tel que p’ ≺ p, la paire primer-set-pair p est appelée Pareto-optimale. Dans ce contexte, l’Objectif du choix optimal des amorces est de déterminer (ou d’approximer) l’ensemble de toutes les paires Pareto-optimum primer-set -, dont l’image dans l’espace tri-objectif est appelée le front de Pareto .
pour rechercher le front de Pareto optimal, nous nous appuyons sur l’approche de recherche locale de meilleure amélioration itérée en deux phases proposée par Dubois-Lacoste et al., et efficacement exploité dans Sambo et al. et Borrotti et coll. pour la conception multi-objectifs optimale des expériences.
la recherche locale commence à partir d’une solution initiale et l’affine itérativement en appliquant de petits changements locaux et en évaluant chaque fois leur effet sur la qualité de la solution; elle s’arrête lorsqu’aucun autre changement local ne peut améliorer la solution. Le processus est itéré à partir de plusieurs points de départ différents et la meilleure solution jamais trouvée est renvoyée, comme une approximation de l’optimum inconnu ., Une extension courante de la recherche locale au cas multi-objectifs consiste à partir d’un ensemble de solutions de Pareto initiales, à échantillonner une solution à partir du front, à optimiser avec la recherche locale une scalarisation aléatoire du problème, c’est-à-dire une combinaison linéaire des scores d’optimisation avec des poids échantillonnés uniformément au hasard à partir du simplexe unitaire, à mettre à jour le front de Pareto et à itérer jusqu’à ce qu’une condition de terminaison soit remplie .,
la procédure MULTI-OBJECTIVE-SEARCH, dont le pseudo-code est rapporté dans ce qui suit, reçoit en entrée la plage souhaitée de longueurs d’amplicon (rangeamplen), un ensemble représentatif de séquences 16S (repset), un ensemble initial de paires d’amorces (éventuellement dégénérées) (init) et le nombre de redémarrages (nres). La procédure commence par sélectionner parmi init toutes les paires d’amorces possibles avec la longueur d’amplicon souhaitée, la longueur d’amorce (entre 17 et 21 nucléotides) et le domaine cible (bactéries ou universel).,
Les paires D’amorces dégénérées sont converties en paires d’amorces Non dégénérées et ajoutées à une archive. La procédure itère ensuite nrest fois, chaque fois que l’échantillonnage d’une amorce aléatoire-ensemble-paire pstart à partir du front de Pareto et un vecteur aléatoire α de poids relatifs pour les scores d’optimisation, avec des poids échantillonnés uniformément à partir de l’unité simplex; la procédure, puis, résout une scalarisation du problème multi-objectif, c’est-à-dire un problème à objectif unique dans lequel une combinaison linéaire des trois objectifs avec des poids relatifs α est maximisée, et ajoute le résultat à l’archive., À cette fin, les scores d’efficacité, de couverture et de biais de correspondance sont normalisés à leur maximum, de sorte que chaque score normalisé varie entre 0 et 1, et le biais de correspondance est redéfini en biais de correspondance 1, afin qu’il puisse être maximisé comme les autres scores., amplicon length in rangeamplen
2 Ajouter à l’archive les paires d’amorces Non dégénérées correspondantes
3 pour r = 1 à nrest
4 pF = Pareto-FRONT(archive)
5 Sample pstart from pf
6 Sample α from 3, with Σi ai = 1
7 P = local-SEARCH(pstart , α , repset)
8 add p to archive
9 return Archive
l’optimisation à objectif unique est obtenue en utilisant l’algorithme de recherche locale best improvement : à partir d’une paire d’amorces initiale, l’algorithme de recherche locale parcourt les amorces de la paire D’ensembles et, pour chaque amorce, scanne son voisinage, I.,E. l’ensemble de toutes les perturbations locales possibles de l’amorce. Les perturbations locales consistent en tous les retournements possibles d’un nucléotide (en évaluant les trois autres bases possibles) et tous les ajouts et retraits possibles d’un nucléotide aux extrémités., La recherche dans l’espace solution est effectuée avec la meilleure approche de recherche locale d’amélioration: après avoir généré le voisinage entier comme expliqué ci-dessus, l’algorithme sélectionne la perturbation du meilleur voisin, part de celle-ci pour générer le voisinage suivant, et itère jusqu’à ce qu’il atteigne une solution pour laquelle aucune perturbation du meilleur voisin ne peut La procédure se termine lorsqu’aucune autre amélioration locale ne peut être appliquée à un apprêt dans la paire primer-set-pair., La fonction weighted-SCORE calcule les trois scores d’optimisation à partir d’une paire primer-set et de l’ensemble représentatif, multiplie les scores par les poids relatifs α et renvoie la somme des résultats.
Nous avons développé un outil logiciel mettant en œuvre notre approche et l’avons publié sous la Licence Publique Générale GNU sous le nom d’outil logiciel mopo16S (Multi-Objective Primer Optimization for 16S experiments) àhttp://sysbiobig.dei.unipd.it/?q=Software#mopo16S., mopo16S est implémenté comme un outil de ligne de commande c++ multithreading; l’outil logiciel s’appuie sur les algorithmes efficaces et les structures de données de la bibliothèque SeqAn et utilise la bibliothèque openMP pour le multithreading.,>
4 pour i = 1 à |pcurr|
5 pri = I-primer amorce de pcurr
6 pour pnew = pcurr avec tous les ajouts et retraits possibles d’une base aux extrémités et remplacements d’une base de pri
7 scorenew = WEIGHTED-SCORE(pnew , α , repset)
8 si scorenew > scorebest
9 pbest = pnew
10 scorebest = scorenew
11 pcurr = pbest
12 return pcurr
State-of-the-art primer pairs as initial solutions
we selected the online database probebase as a source of candidate Primer-Set-pairs to be used as initial solutions by mopo16s., La base de données contient plus de 500 paires d’amorces (éventuellement dégénérées) et rapporte pour chaque amorce sa séquence, le brin et la position à laquelle elle correspond au gène de référence 16s Escherichia coli, et le domaine cible pour lequel elle est conçue (être soit une bactérie, Archaea ou universelle).,
étant donné une plage souhaitée pour la longueur d’amplicon cible en entrée de mopo16S, nous avons sélectionné toutes les paires d’amorces de la base de données probeBase satisfaisant toutes les propriétés suivantes:
-
Longueur D’Amplicon dans la plage souhaitée;
-
longueur des deux amorces supérieure ou égale à 17 nt et inférieure ou égale amorces.,
étant donné que notre approche consiste à travailler avec des ensembles d’amorces Non dégénérées, en cas de dégénérescence dans l’amorce avant ou arrière, nous substituons l’amorce dégénérée par un ensemble correspondant d’amorces non dégénérées, obtenues en assignant toutes les combinaisons possibles de valeurs aux nucléotides dégénérés dans l’amorce. Un exemple de cette procédure est donné dans le tableau 1.
nous avons calculé les trois scores pour chacune des paires amorce-ensemble et identifié, parmi celles-ci, les paires amorce-ensemble formant le front de Pareto initial.