如何将矩阵转换为数值矩阵?

疏远的

我在文本文件中制作了一个得分矩阵,用于使用pairwiseAlignment函数进行局部对齐。然后,我使用此函数将其输入到R中:

ex <- as.matrix(read.table("~/scoringMatrix", header=FALSE, sep = "\t", row.names = 1, as.is=TRUE)

格式是这样的:

> ex

   A  T  C  G
A  5 -2 -1 -2
T -2  7 -1 -2
C -1 -1  7  2
G -2 -2  2  8

现在,每当我使用pairwiseAlignment函数时,都会出现以下错误:

pairwiseAlignment(x[[1]], x[[2]], substitutionMatrix = ex, gapOpening = -2, gapExtension = -8, scoreOnly = FALSE)
    Error in XStringSet.pairwiseAlignment(pattern = pattern, subject = subject,  : 
      'substitutionMatrix' must be a numeric matrix

如果我要使用像BLOSUM50这样已经存在的替换矩阵,它就可以完美地工作。那么,如何使该矩阵适用于pairwiseAlignment?

> dput(ex)
structure(logical(0), .Dim = c(5L, 0L), .Dimnames = list(c("   A  T  C  G", 
"A  5 -2 -1 -2", "T -2  7 -1 -2", "C -1 -1  7  2", "G -2 -2  2  8"
), NULL))

虽然dput(BLOSUM50)看起来完全不同:

> dput(BLOSUM50)
structure(c(5L, -2L, -1L, -2L, -1L, -1L, -1L, 0L, -2L, -1L, -2L, 
-1L, -1L, -3L, -1L, 1L, 0L, -3L, -2L, 0L, -2L, -1L, -1L, -5L, 
-2L, 7L, -1L, -2L, -4L, 1L, 0L, -3L, 0L, -4L, -3L, 3L, -2L, -3L, 
-3L, -1L, -1L, -3L, -1L, -3L, -1L, 0L, -1L, -5L, -1L, -1L, 7L, 
2L, -2L, 0L, 0L, 0L, 1L, -3L, -4L, 0L, -2L, -4L, -2L, 1L, 0L, 
-4L, -2L, -3L, 4L, 0L, -1L, -5L, -2L, -2L, 2L, 8L, -4L, 0L, 2L, 
-1L, -1L, -4L, -4L, -1L, -4L, -5L, -1L, 0L, -1L, -5L, -3L, -4L, 
5L, 1L, -1L, -5L, -1L, -4L, -2L, -4L, 13L, -3L, -3L, -3L, -3L, 
-2L, -2L, -3L, -2L, -2L, -4L, -1L, -1L, -5L, -3L, -1L, -3L, -3L, 
-2L, -5L, -1L, 1L, 0L, 0L, -3L, 7L, 2L, -2L, 1L, -3L, -2L, 2L, 
0L, -4L, -1L, 0L, -1L, -1L, -1L, -3L, 0L, 4L, -1L, -5L, -1L, 
0L, 0L, 2L, -3L, 2L, 6L, -3L, 0L, -4L, -3L, 1L, -2L, -3L, -1L, 
-1L, -1L, -3L, -2L, -3L, 1L, 5L, -1L, -5L, 0L, -3L, 0L, -1L, 
-3L, -2L, -3L, 8L, -2L, -4L, -4L, -2L, -3L, -4L, -2L, 0L, -2L, 
-3L, -3L, -4L, -1L, -2L, -2L, -5L, -2L, 0L, 1L, -1L, -3L, 1L, 
0L, -2L, 10L, -4L, -3L, 0L, -1L, -1L, -2L, -1L, -2L, -3L, 2L, 
-4L, 0L, 0L, -1L, -5L, -1L, -4L, -3L, -4L, -2L, -3L, -4L, -4L, 
-4L, 5L, 2L, -3L, 2L, 0L, -3L, -3L, -1L, -3L, -1L, 4L, -4L, -3L, 
-1L, -5L, -2L, -3L, -4L, -4L, -2L, -2L, -3L, -4L, -3L, 2L, 5L, 
-3L, 3L, 1L, -4L, -3L, -1L, -2L, -1L, 1L, -4L, -3L, -1L, -5L, 
-1L, 3L, 0L, -1L, -3L, 2L, 1L, -2L, 0L, -3L, -3L, 6L, -2L, -4L, 
-1L, 0L, -1L, -3L, -2L, -3L, 0L, 1L, -1L, -5L, -1L, -2L, -2L, 
-4L, -2L, 0L, -2L, -3L, -1L, 2L, 3L, -2L, 7L, 0L, -3L, -2L, -1L, 
-1L, 0L, 1L, -3L, -1L, -1L, -5L, -3L, -3L, -4L, -5L, -2L, -4L, 
-3L, -4L, -1L, 0L, 1L, -4L, 0L, 8L, -4L, -3L, -2L, 1L, 4L, -1L, 
-4L, -4L, -2L, -5L, -1L, -3L, -2L, -1L, -4L, -1L, -1L, -2L, -2L, 
-3L, -4L, -1L, -3L, -4L, 10L, -1L, -1L, -4L, -3L, -3L, -2L, -1L, 
-2L, -5L, 1L, -1L, 1L, 0L, -1L, 0L, -1L, 0L, -1L, -3L, -3L, 0L, 
-2L, -3L, -1L, 5L, 2L, -4L, -2L, -2L, 0L, 0L, -1L, -5L, 0L, -1L, 
0L, -1L, -1L, -1L, -1L, -2L, -2L, -1L, -1L, -1L, -1L, -2L, -1L, 
2L, 5L, -3L, -2L, 0L, 0L, -1L, 0L, -5L, -3L, -3L, -4L, -5L, -5L, 
-1L, -3L, -3L, -3L, -3L, -2L, -3L, -1L, 1L, -4L, -4L, -3L, 15L, 
2L, -3L, -5L, -2L, -3L, -5L, -2L, -1L, -2L, -3L, -3L, -1L, -2L, 
-3L, 2L, -1L, -1L, -2L, 0L, 4L, -3L, -2L, -2L, 2L, 8L, -1L, -3L, 
-2L, -1L, -5L, 0L, -3L, -3L, -4L, -1L, -3L, -3L, -4L, -4L, 4L, 
1L, -3L, 1L, -1L, -3L, -2L, 0L, -3L, -1L, 5L, -4L, -3L, -1L, 
-5L, -2L, -1L, 4L, 5L, -3L, 0L, 1L, -1L, 0L, -4L, -4L, 0L, -3L, 
-4L, -2L, 0L, 0L, -5L, -3L, -4L, 5L, 2L, -1L, -5L, -1L, 0L, 0L, 
1L, -3L, 4L, 5L, -2L, 0L, -3L, -3L, 1L, -1L, -4L, -1L, 0L, -1L, 
-2L, -2L, -3L, 2L, 5L, -1L, -5L, -1L, -1L, -1L, -1L, -2L, -1L, 
-1L, -2L, -1L, -1L, -1L, -1L, -1L, -2L, -2L, -1L, 0L, -3L, -1L, 
-1L, -1L, -1L, -1L, -5L, -5L, -5L, -5L, -5L, -5L, -5L, -5L, -5L, 
-5L, -5L, -5L, -5L, -5L, -5L, -5L, -5L, -5L, -5L, -5L, -5L, -5L, 
-5L, -5L, 1L), .Dim = c(24L, 24L), .Dimnames = list(c("A", "R", 
"N", "D", "C", "Q", "E", "G", "H", "I", "L", "K", "M", "F", "P", 
"S", "T", "W", "Y", "V", "B", "Z", "X", "*"), c("A", "R", "N", 
"D", "C", "Q", "E", "G", "H", "I", "L", "K", "M", "F", "P", "S", 
"T", "W", "Y", "V", "B", "Z", "X", "*")))
马丁·摩根

看起来您的“ scoringMatrix”文件具有以空格分隔的列,并且其输入仅为

ex = as.matrix(read.delim("scoringMatrix", sep=""))

具有结构

> dput(ex)
structure(c(5L, -2L, -1L, -2L, -2L, 7L, -1L, -2L, -1L, -1L, 7L, 
2L, -2L, -2L, 2L, 8L), .Dim = c(4L, 4L), .Dimnames = list(c("A", 
"T", "C", "G"), c("A", "T", "C", "G")))

在您的输入中,没有制表符,\t因此每一行都被读入一列。并且row.names=1意味着将单列分配为行名-因此,您有5行和零列

> read.table("scoringMatrix", sep="\t", header=FALSE, row.names=1)
data frame with 0 columns and 5 rows

将其强制转换为矩阵将得到5 x 0的矩阵,并且您在原始显示中看到的是矩阵的行名(!)。

如@DavidArenburg所建议的那样,这可以在R“手工”中创建

matrix(c( 5, -2, -1, -2,
         -2,  7, -1, -2,
         -1, -1,  7,  2,
         -2, -2,  2,  8),
       nrow=4, ncol=4,
       dimnames=list(
         c("A", "C", "G", "T"),
         c("A", "C", "G", "T")),
       byrow=TRUE)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将向量转换为矩阵?

来自分类Dev

如何将“ SciPy稀疏矩阵”转换为“ NumPy矩阵”?

来自分类Dev

Matlab:如何将矩阵转换为Toeplitz矩阵

来自分类Dev

数学:如何将左手转换矩阵转换为右手转换矩阵

来自分类Dev

如何将scipy行矩阵转换为numpy数组

来自分类Dev

如何将矩阵转换为熊猫数据框

来自分类Dev

如何将矩阵(或列表)转换为data.frame

来自分类Dev

如何将犰狳矩阵转换为向量向量?

来自分类Dev

如何将数组的数组转换为矩阵?

来自分类Dev

R:如何将数据帧转换为nxn矩阵

来自分类Dev

如何将dlib中的矩阵转换为std :: vector

来自分类Dev

如何将PNG文件转换为像素矩阵?

来自分类Dev

如何将树形元组转换为矩阵形元组?

来自分类Dev

如何将Numpy矩阵转换为熊猫系列?

来自分类Dev

如何将矩阵转换为向量的向量?

来自分类Dev

如何将这种数据框转换为矩阵?

来自分类Dev

如何将频谱图矩阵转换为WAV文件

来自分类Dev

如何将数组的数组转换为矩阵?

来自分类Dev

如何将HashMap <Object,int []>值转换为矩阵

来自分类Dev

R:如何将值矩阵转换为函数

来自分类Dev

如何将列表文件转换为矩阵

来自分类Dev

如何将字符串转换为矩阵

来自分类Dev

如何将矩阵matlab转换为.txt文件?

来自分类Dev

如何将R中的矩阵转换为向量

来自分类Dev

R:如何将数据帧转换为nxn矩阵

来自分类Dev

如何将Numpy矩阵转换为Sympy

来自分类Dev

如何将结果从lapply转换为R中的矩阵?

来自分类Dev

如何将列表转换为数据框矩阵

来自分类Dev

如何将矩阵转换为与 keras 兼容的图像?