R:如何使用'translate'函数的输出来编写表格?

时间:2013-07-31 13:02:37

标签: r sequence bioinformatics write.table

我有一个包含2个DNA序列(ORF)的文件(data.txt):

data = readDNAStringSet(file="data.txt") 
data
# A DNAStringSet instance of length 2
# width seq                                                       names
#[1]  57 ATGACCCCCACCTCCATCCCCACACTTCTATCCCGCTGCCCCGCCTCTCTCCCCTAA  GPG
#[2]  54 ATGACCCATGAGCACCATGCAGCCAAAACCCTGGGAATCGGCAAAGCCATCTAG     PfK

我想将它们转换为氨基酸:

t=vector(mode="list", length=length(data))
for (i in seq_along(data))
{
t[[i]]=translate(data[[i]])
}
t
#[[1]]
#19-letter "AAString" instance
#seq: MTPTSIPTLLSRCPASLP*

#[[2]]
#18-letter "AAString" instance
#seq: MTHEHHAAKTLGIGKAI*

然后写一个表并使用输出输出:

tt=do.call(rbind,t)
write.table(tt,"aa.txt",sep="\t\t")

但这些命令不起作用。我找不到问题。我怎么写表?

注意:translate是[ seqinr ]中的函数,readDNAStringSet是来自[ Biostrings <的函数/强>]。

1 个答案:

答案 0 :(得分:1)

我不知道你为什么需要 seqinr Biostrings 可以满足您的一切需求。

library("Biostrings")

dna <- readDNAStringSet(file="data.txt")
aa <- translate(dna)

write.table(as.character(aa), file="aa.txt", sep="\t\t")

也许您想使用writeXStringSet代替write.table