我试图实现的任务是对齐几个序列.
我没有匹配的基本模式.我所知道的只是“真实”模式的长度应为“30”,并且我在随机点引入了缺失值的序列.
这是一个这样的序列的例子,在左边我们看到了缺失值的真实位置,在右边我们看到了我们能够观察到的序列.
我的目标是仅使用我在右栏中获得的序列重建左列(基于每个位置中的许多字母相同的事实)
Real_sequence The_sequence_we_see1 CGCAATACTAAC-AGCTGACTTACGCACCG CGCAATACTAACAGCTGACTTACGCACCG2 CGCAATACTAGC-AGGTGACTTCC-CT-CG CGCAATACTAGCAGGTGACTTCCCTCG3 CGCAATGATCAC--GGTGGCTCCCGGTGCG CGCAATGATCACGGTGGCTCCCGGTGCG4 CGCAATACTAACCA-CTAACT--CGCTGCG CGCAATACTAACCACTAACTCGCTGCG5 CGCACGGGTAAGAACGTGA-TTACGCTCAG CGCACGGGTAAGAACGTGATTACGCTCAG6 CGCTATACTAACAA-GTG-CTTAGGC-CTG CGCTATACTAACAAGTGCTTAGGCCTG7 CCCA-C-CTAA-ACGGTGACTTACGCTCCG CCCACCTAAACGGTGACTTACGCTCCG
以下是重现上述示例的示例代码:
ATCG <- c("A","T","C","G")set.seed(40)original.seq <- sample(ATCG,30,T)seqS <- matrix(original.seq,200,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),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,insert.missing.values))seqS4 <- apply(seqS3,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)
我明白,如果我所拥有的只是一个字符串和一个模式,我就可以使用
library(Biostrings)pairwiseAlignment(...)
但在我提出的情况下,我们正在处理许多序列以相互对齐(而不是将它们与一个模式对齐).
在R中有没有已知的方法?
谢谢,
塔尔
解决方法 虽然这是一个相当古老的线程,但我不想错过机会提及,因为Bioconductor 3.1,有一个包’msa’实现了三种不同的多序列比对算法的接口:ClustalW,ClustalOmega和MUSCLE.该软件包可在所有主要平台(linux / Unix,Mac OS和windows)上运行,并且在您无需安装任何外部软件的意义上是自包含的.更多信息可在 http://www.bioinf.jku.at/software/msa/和 http://www.bioconductor.org/packages/release/bioc/html/msa.html找到. 总结以上是内存溢出为你收集整理的如何在R中执行基本的多序列比对?全部内容,希望文章能够帮你解决如何在R中执行基本的多序列比对?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)