2016-12-05 60 views
0

我想在Weka中使用機器學習技術,例如樸素貝葉斯和SVM,以使用DNA序列數據識別物種。 問題是我必須將DNA序列轉換成數字向量。將DNA序列轉換爲R/Weka的數字向量

我的序列是這樣的:

------------------------------------ ------------ G ------------------------------------ ------ GGAGATG ------------------------------------------ GGAGATG ------------------------------------------GGAGATG TTATTAATTCGAGCAGAATTAGGAAATCCTGGATCTTTAATTGGTGATG - -------------------------------------------- ATG CTATTAATTCGAGCTGAGCTAAGCCAGCCCGGGGCTCTGCTCGGAGATG - --------------------- TCAACCTGGGGCCCTACTCGGAGACG ---- TAATCCGAGCAGAATTAAGCCAACCTGGCGCCCTACTAGGGGATG CTATTAATTCGAGCTGAGCTAAGCCAGCCTGGGGCTCTGCTCGGAGATG TTATTAATTCGTTTTGAGTTAGGCACTGTTGGAGTTTTATTAG --- ATA

我怎樣才能做到這一點?除Weka以外的其他任何關於用DNA序列進行ML的程序的建議?

回答

0

這個答案利用R.

均可以使用的Biostrings包這一點。 (如果必須)

dna1 <- DNAString("------------------------------------------------G------------------------------------------GGAGATG") 

或者,

dna2 <- DNAStringSet(c("ACGT", "GTCA", "GCTA")) 


alphabetFrequency(dna1) 
letterFrequency(dna1, "GC") 
.... 

然後就可以自R調用Weka的功能:

第一安裝軟件包:

source("http://www.bioconductor.org/biocLite.R") 
biocLite(c("Biostrings")) 

轉換字符串DNAstring ,例如樸素貝葉斯與NB <- make_Weka_classifier("weka/classifiers/bayes/NaiveBayes") ; NB(colx ~ . , data=mydata),或根據您的意願轉換您的數據和/或導出到Weka瞭解的其他類型的文件。想到foreign::write.arff()函數。但我不會爲此使用Weka。不用說,你可以簡單地將這些序列輸入website performing a BLAST search並獲得可能的物種候選物。

對於CTATTAATTCGAGCTGAGCTAAGCCAGCCCGGGGCTCTGCTCGGAGATG我從 「帶狀岩石蜥蜴」(Petrosaurus mearnsi)用91%的概率線粒體DNA。