【问题标题】:Convert DNA Sequences into numerical vectors for R / Weka将 DNA 序列转换为 R / Weka 的数字向量
【发布时间】:2016-12-05 15:11:50
【问题描述】:

我想在 Weka 中使用机器学习技术(例如 Naive Bayes 和 SVM)来使用 DNA 序列数据识别物种。 问题是我必须将 DNA 序列转换为数字向量。

我的序列是这样的:

----------------------------------- -G ------------------------------------------GGAGATG ------------------------------------------GGAGATG ------------------------------------------GGAGATG TATTAATTCGAGCAGAATTAGGAAATCCTGGATCTTTAATTGGTGATG ----------------------------------------------ATG CTATTAATTCGAGCTGAGCTAAGCCAGCCCGGGGCTCTGCTCGGAGATG ------------------------TCAACCTGGGGCCCTACTCGGAGACG ----TAATCCGAGCAGAATTAAGCCAACCTGGCGCCCTACTAGGGGATG CTATTAATTCGAGCTGAGCTAAGCCAGCCTGGGGCTCTGCTCGGAGATG TATTAATTCGTTTTGAGTTAGGCACTGTTGGAGTTTTATTAG---ATA

我该怎么做?除了 Weka 之外,还有什么其他程序可以用 DNA 序列进行机器学习吗?

【问题讨论】:

    标签: dna-sequence


    【解决方案1】:

    这个答案使用了 R。

    您可以为此使用 R 的 Biostrings 包。

    先安装包:

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

    将字符串转换为DNAstring:

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

    或者,

    dna2 <- DNAStringSet(c("ACGT", "GTCA", "GCTA"))
    
    
    alphabetFrequency(dna1)
    letterFrequency(dna1, "GC")
    ....
    

    然后(如果必须)您可以从 R 调用 Weka 函数,例如带有NB <- make_Weka_classifier("weka/classifiers/bayes/NaiveBayes") ; NB(colx ~ . , data=mydata) 的朴素贝叶斯,或根据需要转换您的数据和/或导出为 Weka 理解的其他类型的文件。我想到了foreign::write.arff() 函数。但我不会为此使用 Weka。

    不用说,您也可以简单地将这些序列输入website performing a BLAST search 并获得可能的候选物种。

    对于CTATTAATTCGAGCTGAGCTAAGCCAGCCCGGGGCTCTGCTCGGAGATG,我以 91% 的概率从“带状岩石蜥蜴”(Petrosaurus mearnsi)获得线粒体 DNA。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多