将DNA序列转换为R中的时间序列

时间:2014-06-12 03:46:28

标签: r type-conversion time-series

为了进一步研究DNA,我试图将DNA序列转换成时间序列数据。 我目前的算法是:

for (i in 1:length(dnaSeq)){
    if (dnaSeq[i]=="A"){
      t[i+1]=t[i]+2  
    }
    else if(dnaSeq[i]=="G") {
      t[i+1]=t[i]+1
    }
    else if(dnaSeq[i]=="C") {
      t[i+1]=t[i]-1
    }
    else if(dnaSeq[i])=="T") {
      t[i+1]=t[i]-2
    }
  }

任何人都可以建议任何其他算法或更有效的转换算法吗?

由于

1 个答案:

答案 0 :(得分:2)

首先让我们定义一些样本数据

set.seed(15)
dnaSeq<-sample(c("A","C","G","T"), 20, replace=TRUE)

我不确定您如何初始化t[1],所以我会忽略该值。但这是重新编码数据的方法

ncode <- c(A=2, G=1, C=-1, T=-2)
t2 <- cumsum(ncode[dnaSeq])

当我与你的算法比较时,我看到了

all(t[-1] == t2)

所以我相信这更紧凑,更有效率。获得数值向量后,您可以根据需要转换为时间序列。