Informations

Application de la programmation par contraintes à l'alignement/l'analyse de séquences

Application de la programmation par contraintes à l'alignement/l'analyse de séquences


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Mon programme de maîtrise est axé sur les méthodes formelles telles que la résolution SAT et la programmation par contraintes. Je m'intéresse à l'application de ces techniques aux problèmes d'alignement de séquences et d'analyse de séquences, domaines qui ont été dominés par les méthodes statistiques.

Alors pouvez-vous me donner des exemples de problèmes de recherche susceptibles d'être abordés comme des problèmes de satisfaction de contraintes ?

Remarque : Par programmation par contraintes, j'inclus également des paradigmes plus flexibles comme la programmation par contraintes pondérées, où une solution peut violer certaines des contraintes.


Lisez d'abord en quoi l'alignement local et global diffèrent les uns des autres. Décider ensuite d'une fonction objectif, c'est-à-dire comment mesurer la similarité entre deux séquences ? Peut-être utiliser la distance de Hamming ? Ou la distance de Levenshtein ? Après cela, la partie optimisation sort probablement assez naturellement.

Assurez-vous de vérifier les logiciels existants. Des choses faciles ont déjà été essayées. (Et d'ailleurs, pour une raison quelconque, les biologistes appellent n-grammes comme k-mers.)


Revue SIAM de Mathématiques Appliquées

L'étude et la comparaison de séquences de caractères d'un alphabet fini sont pertinentes pour divers domaines de la science, notamment la biologie moléculaire. La mesure de la similarité des séquences implique la considération des différents alignements de séquences possibles afin d'en trouver un optimal pour lequel la « distance » entre les séquences est minimale. En associant un chemin dans un réseau à chaque alignement, un aperçu géométrique peut être apporté au problème de trouver un alignement optimal. Ce problème peut alors être résolu en appliquant un algorithme de programmation dynamique. Cependant, l'effort de calcul augmente rapidement avec le nombre N de séquences à comparer $(O(l^N ))$, où je est la longueur moyenne des séquences à comparer).

Il est prouvé ici que la connaissance de la mesure d'un alignement choisi arbitrairement peut être utilisée en combinaison avec des informations provenant des alignements par paires pour restreindre considérablement la taille de la région du réseau considéré. Cette réduction implique moins de calculs et moins d'espace mémoire nécessaire pour effectuer le processus d'optimisation de la programmation dynamique. Les observations suggèrent également de nouvelles variantes du problème d'alignement multiple.


Application de la programmation par contraintes à l'alignement/l'analyse de séquences - Biologie

Écrivez un programme pour calculer l'alignement optimal de séquences de deux chaînes d'ADN. Ce programme vous présentera le domaine de biologie computationnelle dans lequel les ordinateurs sont utilisés pour faire des recherches sur les systèmes biologiques. De plus, vous serez initié à un puissant paradigme de conception algorithmique connu sous le nom de programmation dynamique.

Revue de biologie. UNE séquence génétique est une chaîne formée d'un alphabet de quatre lettres de macromolécules biologiques appelées ensemble les bases d'ADN. UNE gène est une séquence génétique qui contient les informations nécessaires à la construction d'une protéine. Tous vos gènes pris ensemble sont appelés génome humain, un modèle pour les pièces nécessaires à la construction des protéines qui forment vos cellules. Chaque nouvelle cellule produite par votre corps reçoit une copie du génome. Ce processus de copie, ainsi que l'usure naturelle, introduit un petit nombre de changements dans les séquences de nombreux gènes. Parmi les changements les plus courants figurent la substitution d'une base par une autre et la suppression d'une sous-chaîne de bases, ces changements sont généralement appelés mutations ponctuelles. En raison de ces mutations ponctuelles, le même gène séquencé à partir d'organismes étroitement apparentés présentera de légères différences.

Le problème. Grâce à vos recherches, vous avez trouvé la séquence suivante d'un gène dans un organisme non étudié auparavant.

Quelle est la fonction de la protéine que code ce gène ? Vous pourriez commencer une série d'expériences non informées en laboratoire pour déterminer le rôle que joue ce gène. Cependant, il y a de fortes chances qu'il s'agisse d'une variante d'un gène connu dans un organisme déjà étudié. Étant donné que les biologistes et les informaticiens ont laborieusement déterminé (et publié) la séquence génétique de nombreux organismes (y compris les humains), vous souhaitez tirer parti de ces informations à votre avantage. Nous comparerons la séquence génétique ci-dessus avec celle qui a déjà été séquencée et dont la fonction est bien comprise.

Modifier-distance. Dans cette mission, nous mesurerons la similitude de deux séquences génétiques par leur modifier la distance, un concept introduit pour la première fois dans le contexte de la théorie du codage, mais qui est maintenant largement utilisé dans la vérification orthographique, la reconnaissance vocale, la détection de plagiat, la révision de fichiers et la linguistique informatique. Nous alignons les deux séquences, mais nous sommes autorisés à insérer des espaces dans l'une ou l'autre séquence (par exemple, pour les faire avoir la même longueur). Nous payons une pénalité pour chaque écart que nous insérons et également pour chaque paire de caractères qui ne correspondent pas dans l'alignement final. Intuitivement, ces pénalités modélisent la probabilité relative de mutations ponctuelles résultant de la délétion/insertion et de la substitution. Nous produisons un score numérique selon le tableau suivant, qui est largement utilisé dans les applications biologiques :

opération Coût
insérer un espace 2
aligner deux caractères qui ne correspondent pas 1
aligner deux caractères qui correspondent 0

Voici deux alignements possibles des cordes X = "AACAGTTACC" et oui = "TAAGGTCA":

Le premier alignement a un score de 8, tandis que le second a un score de 7. Le modifier-distance est le score du meilleur alignement possible entre les deux séquences génétiques sur tous les alignements possibles. Dans cet exemple, le deuxième alignement est en fait optimal, donc la distance d'édition entre les deux chaînes est de 7. Le calcul de la distance d'édition est un problème de calcul non trivial car nous devons trouver le meilleur alignement parmi un nombre exponentiel de possibilités. Par exemple, si les deux chaînes comportent 100 caractères, alors il y a plus de 10^75 alignements possibles.

Nous allons expliquer une solution récursive qui est une approche élégante. Cependant, il est beaucoup trop inefficace car il recalcule chaque sous-problème encore et encore. Une fois que nous avons défini la définition récursive, nous pouvons redéfinir la solution en utilisant une approche de programmation dynamique qui calcule chaque sous-problème une fois.

Une solution récursive. Nous allons calculer la distance d'édition entre les deux chaînes d'origine X et oui en résolvant de nombreux problèmes de distance d'édition sur les plus petits suffixes des deux cordes. On utilise la notation x[i] se référer au personnage je de la chaîne. On utilise aussi la notation x[i..M] se référer au suffixe de X composé des personnages x[i], x[i+1], . x[M-1]. Enfin, on utilise la notation opt[i][j] pour désigner la distance d'édition de x[i..M] et y[j..N]. Par exemple, considérons les deux chaînes X = "AACAGTTACC" et oui = "TAAGGTCA" de longueur M = 10 et N = 8, respectivement. Puis, x[2] est 'C', x[2..M] est "CAGTTACC", et oui[8..N] est la chaîne vide. La distance d'édition de X et oui est opt[0][0].

Nous décrivons maintenant un schéma récursif pour calculer la distance d'édition de x[i..M] et y[j..N]. Considérez la première paire de caractères dans un alignement optimal de x[i..M] avec y[j..N]. Il y a trois possibilités :

Spécification de l'API. Votre programme ModifierDistance.java doit être organisé comme une bibliothèque de méthodes statiques avec l'API suivante :

classe publique EditDistance ------------------------------------------------ --------------------------------- int pénalité(char a, char b) // renvoie la pénalité pour l'alignement de char a et char b int min(int a, int b, int c) // renvoie le min de 3 entiers void main(String[] args) // lit 2 chaînes à partir de l'entrée standard. // calcule et affiche la distance d'édition entre eux. // affiche un alignement optimal et les pénalités associées.

Votre programme. Ecrire un programme ModifierDistance.java qui lit, à partir de l'entrée standard, deux chaînes de caractères. (Bien que, dans l'application décrite, les caractères représentent des séquences génétiques, votre programme doit gérer n'importe quelle séquence de caractères alphanumériques.) Votre programme doit ensuite calculer et imprimer la distance d'édition entre les deux chaînes. Enfin, il doit récupérer l'alignement optimal et l'imprimer avec les pénalités individuelles, en utilisant le format suivant :

Assurez-vous de tester soigneusement en utilisant les fichiers de test courts et les fichiers de données réels plus longs. Créez également un court fichier de test et décrivez-le dans votre readme.txt déposer.

Une analyse. Après avoir testé votre programme en utilisant non seulement l'exemple fourni ci-dessus, mais aussi les nombreux fichiers de données de test courts dans le séquence sous-répertoire, il est temps d'analyser son temps d'exécution et son utilisation de la mémoire. En utilisant les ensembles de données génomiques mentionnés dans le readme.txt , utilisez la méthode du doublement pour estimer le temps d'exécution (en secondes) de votre programme en fonction des longueurs des deux chaînes d'entrée M et N. Pour simplifier, supposons M = N dans votre analyse. Analysez également l'utilisation de la mémoire (en octets). Assurez-vous d'entrer ces résultats dans votre fichier readme et de répondre à toutes les questions.

Consultez la liste de contrôle pour plus d'informations sur l'octroi de plus de mémoire à Java et l'exécution de tests de synchronisation.

Soumission. Un partenaire doit soumettre les fichiers ModifierDistance.java et readme.txt (y compris les données d'analyse et de test que vous avez créées). Si vous êtes partenaire, le deuxième partenaire ne doit soumettre que ce partenaire abrégé readme.txt. Une application et un exemple d'ensemble de données sont destinés à la vérification orthographique. Le crédit supplémentaire est-il assez intéressant ?

Crédit supplémentaire. L'un des outils les plus puissants disponibles aujourd'hui sont les bases de données qui permettent à un utilisateur de soumettre une séquence génétique et de rechercher une séquence similaire trouvée dans le génome d'un autre organisme. Le National Center For Biotechnology Information contient de nombreux exemples puissants de telles bases de données et logiciels d'alignement. Pour plus de crédit, utilisez le code d'alignement que vous avez écrit ci-dessus pour implémenter un programme qui prend en entrée une chaîne source, suivie d'une liste de chaînes cibles (une par ligne) et génère la ou les chaînes cibles les plus similaires à la chaîne source. -->

Cette mission a été créée par Thomas Clarke, Robert Sedgewick, Scott Vafai et Kevin Wayne. Copyright & copie 2002.


Alignement de séquences et programmation dynamique

L'alignement de séquences est une méthode standard pour comparer deux ou plusieurs séquences en recherchant une série de caractères individuels ou de modèles de caractères qui sont dans le même ordre dans les séquences [1]. C'est aussi un moyen d'arranger deux ou plusieurs séquences de caractères pour reconnaître les régions de similitude [2].

Importance de l'alignement des séquences

L'alignement des séquences est important car dans les séquences bimoléculaires (ADN, ARN ou protéine), une similitude de séquence élevée implique généralement une similitude fonctionnelle ou structurelle importante qui est la première étape de nombreuses analyses biologiques [3]. En outre, l'alignement des séquences peut répondre à des questions importantes telles que la détection des séquences de gènes qui causent la maladie ou la susceptibilité à la maladie, l'identification des changements dans les séquences de gènes qui provoquent l'évolution, la recherche de la relation entre diverses séquences de gènes qui peuvent indiquer l'ascendance commune [4], la détection d'une importance fonctionnelle sites, et démontrant des événements de mutation [5].

L'analyse de l'alignement peut révéler des informations importantes. Il est possible d'identifier les parties des séquences susceptibles d'être importantes pour la fonction, si les protéines sont impliquées dans des processus similaires. Les mutations aléatoires peuvent s'accumuler plus facilement dans des parties de la séquence d'une protéine qui ne sont pas très essentielles pour sa fonction. Dans les parties de la séquence qui sont essentielles à la fonction, pratiquement aucune mutation ne sera acceptée car approximativement tous les changements dans ces régions détruiront la fonction [6]. De plus, l'alignement des séquences est important pour attribuer une fonction à des protéines inconnues [7]. L'alignement protéique de deux résidus implique que ces résidus jouent des rôles similaires dans les deux protéines différentes [8].

L'objectif principal des méthodes d'alignement de séquences est de trouver un degré maximal de similitudes et une distance évolutive minimale. Généralement, les approches informatiques pour résoudre les problèmes d'alignement de séquences peuvent être divisées en deux catégories : les alignements globaux et les alignements locaux. Les alignements globaux parcourent toute la longueur de toutes les séquences de requêtes et correspondent à autant de caractères que possible d'un bout à l'autre. Ces méthodes d'alignement sont plus utiles lorsque les séquences ont approximativement la même taille ou sont similaires. L'alignement est effectué du début de la séquence à la fin des séquences pour trouver le meilleur alignement possible. D'autre part, les alignements locaux trouvent les régions locales avec un niveau élevé de similitude. Ils sont plus utiles pour les séquences qui sont suspectées de contenir des régions de similitude dans leur contexte de séquence plus large. [9]

En outre, l'alignement de séquences par paires est utilisé pour trouver les régions de similitude entre deux séquences. À mesure que le nombre de séquences augmente, il peut être impossible de comparer chacune des séquences les unes aux autres. Nous avons donc besoin d'un alignement de séquences multiples, où toutes les séquences similaires peuvent être comparées dans une seule figure ou table. L'idée de base est que les séquences sont alignées les unes sur les autres, de sorte qu'un système de coordonnées est mis en place, où chaque ligne est la séquence d'une protéine et chaque colonne est la même position dans chaque séquence. [dix]

Il existe de nombreuses approches et implémentations différentes des méthodes pour effectuer l'alignement de séquences. Celles-ci incluent des techniques telles que la programmation dynamique, les algorithmes heuristiques (recherche de similarité BLAST et FASTA), les méthodes probabilistes, les méthodes matricielles, les méthodes progressives, ClustalW, MUSCLE, T-Coffee et DIALIGN.

La programmation dynamique (DP) est une méthode de résolution de problèmes pour une classe de problèmes qui peuvent être résolus en les divisant en sous-problèmes plus simples. Il trouve l'alignement en donnant des scores pour les correspondances et les discordances (matrices de notation). Cette méthode est largement utilisée dans les problèmes d'alignement de séquences. [11] Cependant, lorsque le nombre de séquences est supérieur à deux, la programmation dynamique multidimensionnelle est infaisable en raison de la grande complexité de stockage et de calcul. [16]

Les algorithmes de programmation dynamique utilisent des pénalités d'écart pour augmenter la signification biologique [9]. Il existe différentes pénalités d'écart telles que l'écart linéaire, l'écart constant, l'écart ouvert et l'extension de l'écart. Le score d'écart est une pénalité donnée à l'alignement lorsqu'il y a insertion ou suppression. Il peut y avoir un cas où il y a des écarts continus tout au long de la séquence au cours de l'évolution, de sorte que la pénalité d'écart linéaire ne serait pas adaptée à l'alignement. Par conséquent, la pénalité d'ouverture de trou et la pénalité d'extension de trou ont été introduites lorsqu'il y a des trous continus. La pénalité d'ouverture d'écart est appliquée au début de l'écart, puis l'autre écart qui suit est attribué avec une pénalité d'extension d'écart qui sera moindre par rapport à la pénalité d'ouverture. Différentes fonctions de pénalité d'écart nécessitent différents algorithmes de programmation dynamique [12]. Il existe également une matrice de substitution pour marquer les alignements. Les matrices de notation prédéfinies principalement utilisées pour l'alignement de séquences sont PAM (Point Accepted Mutation) et BLOSUM (Blocks Substitution Matrix).

Les deux algorithmes, Smith-Waterman pour l'alignement local et Needleman-Wunsch pour l'alignement global, sont basés sur la programmation dynamique.

L'algorithme Needleman-Wunsch requiert que le score d'alignement pour une paire de résidus soit égal ou supérieur à zéro. Aucune pénalité d'écart n'est requise et le score ne peut pas diminuer entre deux cellules de voie. Smith-Waterman a besoin d'une pénalité d'écart pour travailler efficacement. Le score d'alignement des résidus peut être positif ou négatif. Le score peut augmenter, diminuer ou rester au niveau entre deux cellules de la voie [13].

Problèmes d'alignement de séquences

Pour une séquence de n caractères s et une séquence de m caractères t , nous construisons une matrice (n+1)?(m+1) .

Alignement global : F ( i, j ) = score du meilleur alignement de s[1…i ] avec t[1…j]

Alignement local : F ( i, j ) = score du meilleur alignement d'un suffixe de s[1…i ] et d'un suffixe de t[1…j]

Les algorithmes d'alignement de séquences comportent trois étapes :

Dans la phase d'initialisation, nous attribuons des valeurs pour la première ligne et la première colonne de la matrice d'alignement. L'étape suivante de l'algorithme en dépend.

Dans l'étape de remplissage, la matrice entière est remplie de scores de haut en bas, de gauche à droite avec des valeurs appropriées qui dépendent des pénalités d'écart et de la matrice de notation.

Pour chaque F ( i, j ), enregistrez les pointeurs vers la cellule qui a donné le meilleur score . Pour l'alignement global, nous remontons les pointeurs de F (m, n) à F (0, 0) pour récupérer les alignements de séquences. Pour l'alignement local, nous recherchons la valeur maximale du F (i, j) qui peut être n'importe où dans la matrice. Nous remontons les pointeurs à partir de F (i, j) et nous nous arrêtons lorsque nous arrivons à une cellule avec la valeur 0.

Alignement local avec la matrice de notation

Après avoir créé et initialisé la matrice d'alignement ( F ) et la matrice de retraçage, le score de F (i, j) pour chaque cellule est calculé comme suit :

diagonal_score=F[i-1[ j-1] + PAM250(s[i], t[j]),

scores=max[ 0, left_score, diagonal_score, up_score]

De plus, nous devons conserver la référence à chaque cellule pour effectuer un retour en arrière.

Après avoir rempli la matrice F, nous trouvons le score d'alignement optimal et les points finaux optimaux en trouvant la cellule de score la plus élevée, maxi,jF(i , j) . best_score a une valeur par défaut égale à -1 .

i_maximum_score, j_maximum_score = i, j

Pour récupérer l'alignement optimal, nous remontons à partir de i_maximum_score, j_maximum_score position , mettant fin à la trace lorsque nous atteignons une cellule avec un score 0 .

La complexité temporelle et spatiale de cet algorithme est O(mn) où m est la longueur de la séquence s , et n est la longueur de la séquence t.

Alignement local avec pénalité d'écart affine

Pour ce problème, il existe une pénalité d'ouverture d'espace et une pénalité d'extension d'espace. La pénalité d'ouverture d'écart est appliquée au début de l'écart, puis l'autre écart qui suit est attribué avec une pénalité d'extension d'écart.

Il existe quatre matrices différentes : up_score , left_score ,m_score , trace_back


Application de la programmation par contraintes à l'alignement/l'analyse de séquences - Biologie

Une compilation de données du projet de séquençage du génome de la grippe NIAID et GenBank. Il fournit des outils pour l'analyse, l'annotation et la soumission de séquences grippales à GenBank. Cette ressource contient également des liens vers d'autres ressources sur la séquence de la grippe, ainsi que des publications et des informations générales sur les virus de la grippe.

Téléchargements

Les exécutables BLAST à usage local sont fournis pour les systèmes Solaris, LINUX, Windows et MacOSX. Voir le fichier README dans le répertoire ftp pour plus d'informations. Des bases de données préformatées pour les recherches BLAST de nucléotides, de protéines et traduites sont également disponibles en téléchargement dans le sous-répertoire db.

Bases de données de séquences à utiliser avec les programmes BLAST autonomes. Les fichiers de ce répertoire sont des bases de données préformatées prêtes à être utilisées avec BLAST.

Bases de données de séquences au format FASTA à utiliser avec les programmes BLAST autonomes. Ces bases de données doivent être formatées à l'aide de formatdb avant de pouvoir être utilisées avec BLAST.

Ce site contient les bases de données UniVec et UniVec_Core au format FASTA. Voir le fichier README.uv pour plus de détails.

Outils

Effectue une recherche BLAST de séquences similaires à partir de génomes eucaryotes et procaryotes complets sélectionnés.

Effectue une recherche BLAST des séquences génomiques dans l'ensemble RefSeqGene/LRG. L'affichage par défaut fournit une navigation prête à examiner les alignements dans l'affichage graphique.

Trouve des régions de similarité locale entre des séquences biologiques. Le programme compare les séquences de nucléotides ou de protéines aux bases de données de séquences et calcule la signification statistique des correspondances. BLAST peut être utilisé pour déduire des relations fonctionnelles et évolutives entre des séquences ainsi que pour aider à identifier les membres des familles de gènes.

COBALT est un outil d'alignement de séquences multiples de protéines qui trouve une collection de contraintes par paires dérivées de la base de données de domaines conservés, de la base de données de motifs protéiques et de la similarité de séquence, à l'aide de RPS-BLAST, BLASTP et PHI-BLAST.

Identifie les domaines conservés présents dans une séquence protéique. CD-Search utilise RPS-BLAST (Reverse Position-Specific BLAST) pour comparer une séquence de requête avec des matrices de scores spécifiques à la position qui ont été préparées à partir d'alignements de domaines conservés présents dans la base de données de domaines conservés (CDD).

Outil d'alignement d'une séquence de requête (nucléotide ou protéine) aux séquences GenBank incluses sur les plateformes de microarray ou SAGE dans la base de données GEO.

Cet outil compare les séquences de nucléotides ou de protéines aux bases de données de séquences génomiques et calcule la signification statistique des correspondances à l'aide de l'algorithme BLAST (Basic Local Alignment Search Tool).

Un navigateur de génome pour la navigation interactive des assemblages de génomes eucaryotes RefSeq avec une inspection complète du gène, de l'expression, de la variation et d'autres annotations. GDV propose des préconfigurations de pistes analytiques faciles à charger, un menu de pistes de données pour un affichage et une personnalisation faciles, et prend en charge le téléchargement et l'analyse des données utilisateur. Ce navigateur permet également de réaliser des affichages pour l'édition.

L'outil Remap de NCBI permet aux utilisateurs de projeter des données d'annotation et de convertir des emplacements de caractéristiques d'un assemblage génomique à un autre ou en séquences RefSeqGene via une analyse base par base. Des options sont fournies pour ajuster la rigueur du remappage, et les résultats récapitulatifs sont affichés sur la page Web. Les résultats complets peuvent être téléchargés pour être visualisés dans le visualiseur graphique Genome Workbench de NCBI, et les données d'annotation pour les caractéristiques remappées, ainsi que les données récapitulatives, sont également disponibles en téléchargement.

Une application intégrée pour la visualisation et l'analyse des données de séquence. Avec Genome Workbench, vous pouvez afficher les données dans les bases de données de séquences accessibles au public au NCBI et mélanger ces données avec vos propres données.

Une application Web interactive qui permet aux utilisateurs de visualiser plusieurs alignements créés par les résultats de recherche dans la base de données ou d'autres applications logicielles. Le MSA Viewer permet aux utilisateurs de télécharger un alignement et de définir une séquence principale, et d'explorer les données à l'aide de fonctionnalités telles que le zoom et le changement de coloration.

Un outil d'analyse graphique qui trouve tous les cadres de lecture ouverts dans la séquence d'un utilisateur ou dans une séquence déjà dans la base de données. Seize codes génétiques différents peuvent être utilisés. La séquence d'acides aminés déduite peut être enregistrée dans divers formats et recherchée dans des bases de données de protéines à l'aide de BLAST.

L'outil Primer-BLAST utilise Primer3 pour concevoir des amorces PCR sur un modèle de séquence. Les produits potentiels sont ensuite automatiquement analysés avec une recherche BLAST dans les bases de données spécifiées par l'utilisateur, pour vérifier la spécificité par rapport à la cible visée.

Un utilitaire pour calculer l'alignement des protéines sur la séquence nucléotidique génomique. Il est basé sur une variante de l'algorithme d'alignement global de Needleman Wunsch et tient spécifiquement compte des introns et des signaux d'épissage. Grâce à cet algorithme, ProSplign est précis dans la détermination des sites d'épissure et tolérant les erreurs de séquençage.

Fournit un affichage graphique configurable d'une séquence de nucléotides ou de protéines et des caractéristiques qui ont été annotées sur cette séquence. En plus d'être utilisé sur les pages de base de données de séquences NCBI, ce visualiseur est disponible en tant que composant de page Web intégrable. Une documentation détaillée comprenant un guide de référence API est disponible pour les développeurs souhaitant intégrer la visionneuse dans leurs propres pages.

Un utilitaire pour le calcul des alignements de séquences d'ADNc à génomique. Il est basé sur une variante de l'algorithme d'alignement global de Needleman-Wunsch et tient spécifiquement compte des introns et des signaux d'épissage. Grâce à cet algorithme, Splign est précis dans la détermination des sites d'épissage et tolérant les erreurs de séquençage.

Un outil pour créer et afficher des données d'arbres phylogénétiques. Tree Viewer permet l'analyse de vos propres données de séquence, produit des images vectorielles imprimables au format PDF et peut être intégré dans une page Web.

L'invention concerne un système permettant d'identifier rapidement des segments d'une séquence d'acide nucléique pouvant être d'origine vectorielle. VecScreen recherche une séquence de requête pour les segments qui correspondent à n'importe quelle séquence dans une base de données vectorielle spécialisée non redondante (UniVec).


Comment calculer l'alignement de plusieurs séquences pour les chaînes de texte

J'écris un programme qui doit calculer un alignement de séquences multiples d'un ensemble de chaînes. Je pensais le faire en Python, mais je pourrais utiliser un logiciel externe ou un autre langage si c'est plus pratique. Les données ne sont pas particulièrement volumineuses, je n'ai pas d'exigences de performances élevées et je peux tolérer des approximations (c'est-à-dire que j'ai juste besoin de trouver un alignement suffisamment bon). Le seul problème est que les chaînes sont des chaînes régulières (c'est-à-dire des chaînes UTF-8 potentiellement avec des nouvelles lignes qui devraient être traitées comme un caractère régulier), ce ne sont pas des séquences d'ADN ou des séquences de protéines.

Je peux trouver des tonnes d'outils et d'informations pour les cas habituels de la bioinformatique avec des formats de fichiers complexes et une multitude de fonctionnalités dont je n'ai pas besoin, mais il est étonnamment difficile de trouver des logiciels, des bibliothèques ou des exemples de code pour le cas simple des chaînes. Je pourrais probablement réimplémenter l'un des nombreux algorithmes pour ce problème ou encoder ma chaîne en tant qu'ADN, mais il doit y avoir un meilleur moyen. Connaissez-vous des solutions ?


Analyse comparative de la précision de plusieurs aligneurs

La quantification de la précision de plusieurs aligneurs est tout aussi critique que l'alignement des séquences, en particulier lorsque l'on considère la nature approximative des aligneurs. Cet aspect apparemment évident a généralement été négligé par la communauté, comme en témoigne le manque relatif de corrélation entre l'utilisation globale des packages et leur exactitude signalée. ClustalW, par exemple, dont les 42 000 citations suggèrent un niveau d'utilisation global supérieur à tous les autres packages réunis, n'a pas été systématiquement signalé comme la méthode la plus précise. Cette observation surprenante reflète probablement une combinaison de facteurs. Le plus évident est la relation entre les classements des benchmarks et la convivialité au jour le jour. Il est probable que ClustalW, même s'il ne se classe pas n°1 sur tous les benchmarks, est néanmoins suffisamment précis pour de nombreuses activités de modélisation, en particulier lorsqu'il s'agit d'ensembles de données orthologues. On peut aussi spéculer sur l'existence d'une forte inertie méthodologique au sein de la communauté biologique, où l'usage des outils a tendance à faire boule de neige à travers le recyclage des protocoles.

Le composant le plus critique d'un MSA est sa fonction de notation/objectif, la formule mathématique qui quantifie le score total et définit donc l'optimalité, étant donné un ensemble de séquences. Le reste de l'algorithme est une procédure d'optimisation tentant de générer un modèle MSA qui maximise la fonction objectif. Il est bien établi que même les meilleures fonctions objectives ne sont que des approximations essayant de modéliser le comportement des séquences biologiques [107]. En conséquence, il n'y a aucune garantie qu'un MSA parfaitement optimisé se traduira systématiquement par le MSA le plus biologiquement significatif. C'est la raison pour laquelle plusieurs aligneurs doivent également être évalués/benchmarkés pour leur capacité à produire des alignements corrects. Une procédure de benchmarking s'appuie sur des collections existantes d'alignements de référence considérés comme des étalons or. Ces MSA de référence sont couramment utilisés comme prédicteurs de la précision d'un aligneur donné sur un type donné de jeux de données et ont eu une influence majeure sur les développements méthodologiques. Les collections de références de protéines existantes ont récemment été examinées de manière approfondie et critique dans [ 108] et [ 109 ] où les auteurs proposent de regrouper les références en quatre catégories : basées sur la simulation, basées sur la cohérence, basées sur la structure et basées sur la phylogénie. Ces trois dernières catégories répondent au critère des ensembles de données de référence, en ce sens qu'elles peuvent être pré-compilées et utilisées pour quantifier les mérites relatifs d'un aligneur par rapport à un autre. Les repères basés sur la simulation, cependant, définissent une fonction objective plutôt qu'une procédure de référence et ne peuvent pas être considérés comme une mesure de référence au même titre que les autres.


Génétique et algorithmes de cordes

Les brins de matériel génétique - ADN et ARN - sont des séquences de petites unités appelées nucléotides. Afin de répondre à certaines questions de recherche importantes, les chaînes génétiques sont équivalentes aux chaînes informatiques, c'est-à-dire qu'elles peuvent être considérées comme de simples séquences de caractères, ignorant leurs propriétés physiques et chimiques. (Bien que, à proprement parler, leurs propriétés chimiques soient généralement codées en tant que paramètres des algorithmes de chaîne que vous examinerez dans cet article.)

Les exemples de cet article utilisent l'ADN, qui se compose de deux brins d'adénine (UNE), cytosine (C), thymine (T) et la guanine (g) nucléotides. Les deux brins de l'ADN sont des compléments inverses l'un de l'autre. UNE et T sont des bases complémentaires, et C et g sont des bases complémentaires. Cela signifie que UNE s dans un brin sont jumelés avec T s dans l'autre brin (et vice versa), et C s dans un brin sont jumelés avec g s dans l'autre brin (et vice versa). Donc, si vous connaissez la séquence d'un brin’s UNE s, C s, T sable g s, vous pouvez dériver la séquence de l'autre brin. Par conséquent, vous pouvez considérer un brin d'ADN simplement comme une chaîne de lettres UNE, C, g, et T.


Où d'autre les méthodes de comparaison de séquences sans alignement peuvent-elles être appliquées ?

Les progrès réalisés au cours des deux dernières décennies ont conduit la recherche sans alignement des « curiosités » bioinformatiques à un éventail croissant d'applications réussies qui accompagnent la biologie traditionnelle [37].

Les séquences distantes éloignées, qui évoluent au-delà de la similitude reconnaissable, sont l'une des applications les plus classiques du mastering sans alignement. Par exemple, des approches sans alignement ont été utilisées avec succès dans l'annotation fonctionnelle de séquences inconnues de récepteurs couplés aux protéines G (protéines intégrales de la membrane cellulaire qui jouent un rôle clé dans la transduction des signaux extracellulaires et ont une grande pertinence pour la pharmacologie) qui ne pouvaient être attribuées à aucun famille de récepteurs précédemment connue [98]. Une autre tendance à la hausse pour l'utilisation de méthodes sans alignement à base de mots est la détection de similitudes fonctionnelles et/ou évolutives entre les séquences régulatrices (par exemple, les promoteurs, les amplificateurs et les silencieux) pour estimer leurs activités in vivo dans différents organismes (mouches et mammifères , y compris les humains) [99,100,101,102,103].

Les réarrangements de séquences sont particulièrement bien gérés par les analyses de séquences sans alignement. Des études récentes ont décrit la structure en mosaïque des génomes viraux et bactériens (par exemple, en caractérisant les points de rupture de recombinaison dans la souche VIH-1 et Escherichia coli génomes). Cette analyse fournit de nouvelles preuves du soupçon de longue date que les animaux E. coli les agents pathogènes peuvent également infecter les humains [104]. Une autre étude [105] a découvert un signal clair pour une paire de E. coli génomes qui avaient subi un transfert de gène horizontal de 125 kb il y a 20 ans. Des mesures sans alignement ont également été appliquées pour détecter les signatures de réarrangement de domaine dans les protéines [106] et pour identifier les membres de protéines multidomaines complexes, telles que les kinases [107].

Le transfert horizontal de gènes complique fortement la tâche de reconstruction de l'histoire évolutive des gènes et des espèces, et les méthodes sans alignement se sont également avérées utiles dans ce domaine. Par exemple, dans une étude approfondie des génomes bactériens, les auteurs ont utilisé des oligonucléotides comme signatures génomiques et ont montré que les transferts de gènes horizontaux représentaient en moyenne 6 % des génomes [108]. De plus, les relations statistiques entre les signatures génomiques de plusieurs milliers d'espèces ont fourni des informations sur les taxons donneurs possibles pour les séquences étrangères identifiées. Dans d'autres études [109, 110], des approches sans alignement ont été appliquées aux génomes de l'agent pathogène humain Staphylococcus aureus and recovered regions of lateral origin that corresponded to genes involved in transport, antibiotic resistance, pathogenicity, and virulence.

Whole-genome phylogeny [111] is another area where alignment-free methods play an increasing role. Many studies [34, 112,113,114,115,116,117,118] addressed the phylogenetic reconstruction of prokaryotes, such as the whole-genome phylogeny of E. coli O104:H4, which was the strain that caused the 2011 outbreak in Germany. The analysis revealed a direct line of ancestry leading from a putative typical enteroaggregative E. coli ancestor through the 2001 strain to the 2011 outbreak strain [113]. The alignment-free based phylogeny of almost a hundred Zika virus strains suggested that this mosquito-borne flavivirus originated from Africa and then spread to Asia, the Pacific islands, and throughout the Americas [119]. Alignment-free methods have recently been applied to infer phylogenetic relationships among eukaryotic species (fungi [120], plants [121], and mammals [35]) the resulting trees were extremely similar to the species trees created by the manually curated NCBI taxonomic database, which reflects the current taxonomic consensus in the literature.

Sequence classification is another field that might benefit from bringing together different alignment-free approaches, such as grouping expressed sequences tags that originate from the same locus or gene family [122], clustering expressed sequence tag sequences with full-length cDNA data [123], and aggregating gene and protein sequences into functional families [124,125,126]. Alignment-free methods are also used to recognize and classify antigens that are encoded in a sequence in a subtle and recondite manner that is not identifiable by sequence alignment. A recent approach [127, 128] based on the statistical transformation of protein sequences into uniform vectors with various amino acid properties showed an impressive prediction accuracy of up to 89% in discriminating positive and negative sets of bacterial, viral, and tumor antigen datasets. Another common use of alignment-free methods is the classification of species based on a short DNA sequence fragments that can act as true taxon barcodes [129,130,131,132,133].

The available alignment-free-based software for general sequence comparison are listed in Table 2. For convenience, we categorized the listed programs into basic research tasks, such as small scale pairwise/multiple sequence comparisons, whole genome phylogeny (from viral to mammalian scale), BLAST-like sequence similarity search, identification of horizontally transferred genes and recombination events, as well as annotation of long non-coding RNAs and regulatory elements.


Constrained Multiple Sequence Alignment Tool Development and Its Application to RNase Family Alignment

In this paper, we design a heuristic algorithm of computing a constrained multiple sequence alignment (CMSA for short) for guaranteeing that the generated alignment satisfies the user-specified constraints that some particular residues should be aligned together. If the number of residues needed to be aligned together is a constant α, then the time-complexity of our CMSA algorithm for aligning K sequences is O(αKn 4 ), where n is the maximum of the lengths of sequences. In addition, we have built up such a CMSA software system and made several experiments on the RNase sequences, which mainly function in catalyzing the degradation of RNA molecules. The resulting alignments illustrate the practicability of our method.

A preliminary version of this paper appears in the Proceedings of the First IEEE Computer Society Bioinformatics Conference (CSB 2002). This research was supported partly by VTY89-P4-33, NSC89-2213-E-259-010, NSC91-2321-B-007-002, NSC91-3112-B-007-004 and MOE Program for Promoting Academic Excellence of Universities under the grant number 89-B-FA04-1-4.


Voir la vidéo: CZ550 FS.308Win kohdistus (Juillet 2022).


Commentaires:

  1. Dile

    Je suis d'accord, ta pensée est géniale

  2. Mooguran

    Cette variante ne me convient pas.

  3. Ata'halne'

    Ce message est incomparable)))

  4. Shaktihn

    Il y a longtemps a cherché une telle réponse

  5. Chochuschuvio

    There is no logic in this post

  6. Trevrizent

    Merci, je vais essayer



Écrire un message