Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R矩阵的DNA成对距离_R_Matrix_Distance_Identity_Dna Sequence - Fatal编程技术网

R矩阵的DNA成对距离

R矩阵的DNA成对距离,r,matrix,distance,identity,dna-sequence,R,Matrix,Distance,Identity,Dna Sequence,在处理DNA时,我们通常需要三角p距离矩阵,它包含序列对之间不相同位点的比例。因此: 阿格特 AGCTA 阿格塔 收益率: 1 2 2 0.4 3 0.2 0.2 p距离计算在某些R包中可用,但假设我需要使用数字代码(-1,0,1,2),而不是字母(C,T,A,G)。如何从“my.matrix”生成三角形p-距离矩阵 定义DNA矩阵维度 bp=5#DNA基质长度 n=3#DNA基质高度 #建立二元矩阵 嘌呤我不确定你在用my.matrix做什么,但这应该适用于字符或

在处理DNA时,我们通常需要三角p距离矩阵,它包含序列对之间不相同位点的比例。因此:

  • 阿格特
  • AGCTA
  • 阿格塔
  • 收益率:

          1    2
    2   0.4
    3   0.2  0.2
    
    p距离计算在某些R包中可用,但假设我需要使用数字代码(-1,0,1,2),而不是字母(C,T,A,G)。如何从“my.matrix”生成三角形p-距离矩阵

    定义DNA矩阵维度 bp=5#DNA基质长度 n=3#DNA基质高度 #建立二元矩阵
    嘌呤我不确定你在用my.matrix做什么,但这应该适用于字符或数字

    x<-c("AGGTT", "AGCTA", "AGGTA")
    y<-do.call("rbind", strsplit(x, "")) 
    y
         [,1] [,2] [,3] [,4] [,5]
    [1,] "A"  "G"  "G"  "T"  "T" 
    [2,] "A"  "G"  "C"  "T"  "A" 
    [3,] "A"  "G"  "G"  "T"  "A" 
    z <- apply(y, 1, function(x) colMeans(x != t(y)) )
    z
         [,1] [,2] [,3]
    [1,]  0.0  0.4  0.2
    [2,]  0.4  0.0  0.2
    [3,]  0.2  0.2  0.0
    
    …这将返回距离矩阵中的第一行

    colMeans(y[1,] != t(y))
    [1] 0.0 0.4 0.2
    

    谢谢Chris S。我不经常使用apply函数,所以它让我有点困惑。谢谢你的解释!
    y[1,] == t(y)
         [,1]  [,2]  [,3]
    [1,] TRUE  TRUE  TRUE
    [2,] TRUE  TRUE  TRUE
    [3,] TRUE FALSE  TRUE
    [4,] TRUE  TRUE  TRUE
    [5,] TRUE FALSE FALSE
    
    colMeans(y[1,] != t(y))
    [1] 0.0 0.4 0.2