Comment effectuer la base des Alignements Multiples de séquences dans R?
(J'ai essayé de demander ce sur BioStars, mais pour le peu de chances que quelqu'un à partir de l'exploration de texte pourrait penser qu'il est une meilleure solution, je suis également reposter ici)
La tâche que je suis en train de réaliser est d'aligner plusieurs séquences.
Je n'ai pas de modèle de base pour correspondre. Tout ce que je sais, c'est que le "Vrai" modèle devrait être de longueur "30" et que les séquences que j'ai eu des valeurs manquantes présentés à des points aléatoires.
Voici un exemple de ce type de séquences, étaient sur la gauche, nous voyons qu'est-ce que l'emplacement réel des valeurs manquantes, et sur la droite, nous voyons la séquence que nous allons être en mesure d'observer.
Mon but est de reconstruire la colonne de gauche en utilisant uniquement les séquences que j'ai dans la colonne de droite (sur la base du fait que bon nombre de lettres dans chaque position sont les mêmes)
Real_sequence The_sequence_we_see
1 CGCAATACTAAC-AGCTGACTTACGCACCG CGCAATACTAACAGCTGACTTACGCACCG
2 CGCAATACTAGC-AGGTGACTTCC-CT-CG CGCAATACTAGCAGGTGACTTCCCTCG
3 CGCAATGATCAC--GGTGGCTCCCGGTGCG CGCAATGATCACGGTGGCTCCCGGTGCG
4 CGCAATACTAACCA-CTAACT--CGCTGCG CGCAATACTAACCACTAACTCGCTGCG
5 CGCACGGGTAAGAACGTGA-TTACGCTCAG CGCACGGGTAAGAACGTGATTACGCTCAG
6 CGCTATACTAACAA-GTG-CTTAGGC-CTG CGCTATACTAACAAGTGCTTAGGCCTG
7 CCCA-C-CTAA-ACGGTGACTTACGCTCCG CCCACCTAAACGGTGACTTACGCTCCG
Voici un exemple de code pour reproduire l'exemple ci-dessus:
ATCG <- c("A","T","C","G")
set.seed(40)
original.seq <- sample(ATCG, 30, T)
seqS <- matrix(original.seq,200,30, T)
change.letters <- function(x, number.of.changes = 15, letters.to.change.with = ATCG)
{
number.of.changes <- sample(seq_len(number.of.changes), 1)
new.letters <- sample(letters.to.change.with , number.of.changes, T)
where.to.change.the.letters <- sample(seq_along(x) , number.of.changes, F)
x[where.to.change.the.letters] <- new.letters
return(x)
}
change.letters(original.seq)
insert.missing.values <- function(x) change.letters(x, 3, "-")
insert.missing.values(original.seq)
seqS2 <- t(apply(seqS, 1, change.letters))
seqS3 <- t(apply(seqS2, 1, insert.missing.values))
seqS4 <- apply(seqS3,1, function(x) {paste(x, collapse = "")})
require(stringr)
# library(help=stringr)
all.seqS <- str_replace(seqS4,"-" , "")
# how do we allign this?
data.frame(Real_sequence = seqS4, The_sequence_we_see = all.seqS)
Je comprends que si j'avais une chaîne et un motif que je serais capable d'utiliser
library(Biostrings)
pairwiseAlignment(...)
Mais dans le cas que je présente, nous traitons avec beaucoup de séquences à aligner l'un de l'autre (au lieu de les aligner sur un modèle).
Est-il une méthode connue pour le faire dans la R?
OriginalL'auteur Tal Galili | 2010-12-21
Vous devez vous connecter pour publier un commentaire.
Bien que c'est tout à fait un vieux thread, je ne veux pas rater l'occasion de mentionner que, depuis Bioconductor 3.1, il y a un paquet de "
msa
' qui implémente les interfaces à trois différents alignement de séquences multiples algorithmes: ClustalW, ClustalOmega, et le MUSCLE. Le package fonctionne sur toutes les grandes plates-formes (Linux/Unix, Mac OS et Windows) et est autonome dans le sens que vous n'a pas besoin d'installer aucun logiciel externe. Plus d'informations peuvent être trouvées sur http://www.bioinf.jku.at/software/msa/ et http://www.bioconductor.org/packages/release/bioc/html/msa.html.OriginalL'auteur UBod
L'écriture d'un algorithme d'alignement dans la R ressemble à une mauvaise idée de moi, mais il y a un R de l'interface de la MUSCLE de l'algorithme dans le bio3d paquet (fonction seqaln()). Être conscient du fait que vous avez installer ce premier algorithme.
Alternativement, vous pouvez utiliser les algorithmes disponibles (par exemple ClustalW, MAFFT, T-CAFÉ) et importer les séquences multiples alignemts dans R à l'aide de bioconductor fonctionnalité. Voir par exemple ici..
ce n'est pas un paquet, il est séparé de l'exécutable: drive5.com/muscle/downloads.htm
Comme dit Ben. Le MUSCLE est un fait bien connu et bien l'exécution de l'algorithme pour des alignements multiples. Ainsi, vous aurez à installer l'exécutable d'abord et ensuite jouer avec les bio3d paquet. C'est un peu étrange endroit pour chercher, comme le bio3d est surtout pour les protéines de la modélisation. Mais le MUSCLE peut aligner plusieurs séquences d'ADN.
Notez qu'il y a de nouveaux forfaits pour ce, incl.
msa
qui peut gérer des MUSCLES, CLUSTALW et CLUSTALOMEGA algorithmes. Sur le côté positif, il ne dépend pas du tout en dehors du logiciel.OriginalL'auteur Joris Meys
Vous pouvez effectuer l'alignement multiple dans R avec le DÉCHIFFRER paquet.
Suivant votre exemple, il ressemblerait à quelque chose comme:
Il est rapide et au moins aussi précis que les autres méthodes présentées ici (voir la papier). J'espère que ça aide!
OriginalL'auteur Erik Wright
Vous êtes à la recherche pour un alignement global de l'algorithme sur plusieurs séquences.
Avez-vous regardez Wikipedia avant de demander ?
D'abord apprendre ce alignement global est, puis recherchez alignement de séquences multiples.
Wikipédia ne donne pas beaucoup de détails sur les algorithmes, mais ce document est mieux.
Bonjour Jules. Merci pour les bonnes intentions et le lien vers la présentation. Cheers, Tal
Étant donné la manière dont il l'a présenté à sa question, il a regardé comme Tal n'étais pas au courant que c'est un standard de la bio-informatique problème, c'est pourquoi j'ai pensé que certains d'arrière-plan des connaissances sur ce domaine pourrait l'aider... mais vous avez raison, je devrais avoir posté que comme un commentaire et non comme une réponse.
Pas de mal dire. Vous ne pouvez pas savoir Tal est un biostatisticien et a une très profonde connaissance de R, donc j'ai peut être été un peu sévère dans mon commentaire.
Salut Jules. Vous avez raison c'est ma première fois d'essayer d'accomplir une telle tâche avec R, d'où ma requête. Et comme l'a dit, ce qui suggère une lecture de base a été gentil de votre part. Joris - vous et je sais que très peu de gens pose une connaissance profonde de R, et comme je suis aujourd'hui, je n'aurais pas la prétention d'être l'un d'eux. J'ai toujours beaucoup apprécié votre sentiment 🙂 le Vôtre, Tal
OriginalL'auteur Jules Olléon