我正在尝试使用ClustalW执行多序列比对。代码有效,我可以在R中看到我的终端上的对齐。下面是我写的代码
library(BiocManager)
library(msa)
library(Biostrings)
mySequences <- readRNAStringSet("C:/Users/School EC/Desktop/MSA
project/only_unaligned/no_recomb/1_unaligned.fasta")
mySequences
myClustalWAlignment <- msa(mySequences, "ClustalW")
myClustalWAlignment
library(seqinr)
write.fasta(sequences = myClustalWAlignment,names =
names(myClustalWAlignment), file.out = "aligned_1.fasta", open =
"w",nbchar = 60, as.string = FALSE)
但是,当我运行write.fasta函数时,我得到一个错误,状态为:
序列错误[(nbchar*q+1(:l]:类型为"S4"的对象不可附属
你能告诉我如何解决这个问题吗。当我检查存储所有内容的文件时;aligned_ 1";在那里,但它是空的
我不太确定是什么导致了错误">序列错误[(nbchar*q+1(:l]:类型"S4"的对象不可附属";我还没有弄清楚为什么写fasta文件的第一种方法不起作用。在运行我的比对后,我使用RNAStringSet将我的比对转换为用于存储的XStringset。然后,我使用Xstringset函数将输出(对齐(文件写入所需的格式fasta。
解决方案:
library(BiocManager)
library(msa)
library(Biostrings)
mySequences <- readRNAStringSet("C:/Users/School EC/Desktop/MSA
project/only_unaligned/no_recomb/1_unaligned.fasta")
mySequences
myClustalWAlignment <- msa(mySequences, "ClustalW")
myClustalWAlignment
Clustal_A1<-RNAStringSet(myClustalWAlignment)
Biostrings::writeXStringSet(Clustal_A1, "aligned_1.fasta")