2017-07-14 79 views
2

我有一個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

您的數據轉換爲字符string.The功能不能與data.frames處理。 – Hav0k

+1

你想用什麼軟件包?兩臺計算機上安裝的軟件包版本是否相同? – MrFlick

+0

「上傳」意味着通過網絡連接向服務器發送數據。你的意思是「加載」,而不是「上傳」。 –

回答

4

the documentation所列,該函數需要一個字符向量。 read.table後,你有一個數據框。您可以嘗試以下操作:

data = read.table("test.txt") 
string <- apply(data , 1 , paste , collapse = " ") 
st <- AAStringSet(string) 

希望這有助於您! 弗洛裏安

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-體頻率表:

fourmer <- oligonucleotideFrequency(d, 4, step=1) 

head(fourmer) 
AAAA AAAC AAAG AAAT AACA AACC 
    3 0 3 0 0 0 
相關問題