我有一个下面给定格式的xyz.txt文件。
AATGCC AAGAAA AAGGAA AAGGTA AAGCAG AAGCGA
我想要做的就是在R环境中上传它,我用这个命令做了:
library(Biostrings)
string <- read.table("/home/Folder/MY_FOLD/MYZ/mp.txt")
现在因为我试图通过这个命令获得四个核苷酸序列的频率:
st <- AAStringSet(string) /this works fine in windows but not in linux/
错误是:
Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘XString’ for signature‘"data.frame"’
我无法弄清楚为什么会出现这个错误以及我哪里出错了?如何修复此错误以使这对代码在LINUX平台上运行?
答案 0 :(得分:4)
如the documentation中所列,该函数需要一个字符向量。在read.table之后,你有一个数据帧。您可以尝试以下方法:
data = read.table("test.txt")
string <- apply( data , 1 , paste , collapse = " " )
st <- AAStringSet(string)
希望这有帮助! 弗洛里安
答案 1 :(得分:1)
您的数据转换为数据框:
original <- "AATGCC AAGAAA AAGGAA AAGGTA AAGCAG AAGCGA"
original <- as.data.frame(original)
我们假设这是一个单一的DNA序列,所以删除空格:
nospace <- df %>% mutate(original = gsub(" ", "", original))
您实际上需要一个DNAString-class
,这是一个特定于Biostrings
包的特殊类:
d <- DNAString(nospace$original)
获得4-mer频率表:
fourmer <- oligonucleotideFrequency(d, 4, step=1)
head(fourmer)
AAAA AAAC AAAG AAAT AACA AACC
3 0 3 0 0 0