Translate function: "error:sequence is not a vector of chars"
Translate function: "error:sequence is not a vector of chars"
我正在努力使用翻译功能:
我有一个序列矩阵,但我无法弄清楚为什么翻译功能不起作用。
这是我的脚本:
head(myseq)
[,1]
[1,] "CAATTAAGATGCAGTTACTTCGCTGTTTTTCAATATTTTCTGTTATTGCTAGCGTTTTAGCAGCTGGAGAAGTCCAGTTGGTTGAATCCGGTGGCGGGTTGGTTCAACCTGGCCGTTCCCTGCGCCTTTCTTGTGCCGCTTCAGGCTTTACCTTCGACGATTATGCCATGCATTGGGTACGCCAAGCTCCGGGCAAAGGTCTGGAATGGGTGAGTGCCATTACCTGGAATAGCGGCCACATTGACTATGCGGATAGCGTCGAAGGGCGCTTTACCATTAGCCGTGATAACGCGAAGAACAGCCTCTATCTGGACATGAACAGCTTACGTGCGGAAGATACCGCAGTGTACTATTGCGCTAAGGTCAGCTATCTGAGTACTGCCAGTTCCCTGGATTATTGGGGTCAAGGAACCCTGGTGACCGTGTCAAGCGGCGGAGGCGGTTCTGGTGGTGGAGGCAGTBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
[2,] "CAATTAAGATGCAGTTACTTCGCTGTTTTTCAATATTTTCTGTTATTGCTAGCGTTTTAGCAGCTGGAGAAGTCCAGTTGGTTGAATCCGGTGGCGGGTTGGTTCAACCTGGCCGTTCCCTGCGCCTTTCTTGTGCCGCTTCAGGCTTTACCTTCGACGATTATGCCATGCATTGGGTACGCCAAGCTCCGGGCAAAGGTCTGGAATGGGTGTCTGCGGCTAGTTGGAGTGGTGGCCACATCGATTATGCCGATAGCGTCGAAGGGCGCTTTACCATTAGCCGTGATAACGCGAAGAACAGCCTCTATCTGGACATGAACAGCTTACGTGCGGAAGATACCGCAGTGTACTATTGCGCTAAGGTCAGCTATCTGAGTACTGCCAGTTCCCTGGATTATTGGGGTCAAGGAACCCTGGTGACCGTGTCAAGCGGCGGAGGCGGTTCTGGTGGTGGAGGCAGTBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
translate(myseq[1,],frame=2,sens=F)
Error in s2n(seq, levels = s2c("tcag")) :sequence is not a vector of chars
我检查了我的参数:
class(myseq[1,])
[1] "character"
is.vector(myseq[1,])
[1] TRUE
所以我假设我错过了什么,但我不知道是什么。
解法:
如果您正在使用 seqinr::translate
then you can try wrapping your DNA string with s2c
。
myString <- "AAACCCGGGTTT"
library(seqinr)
# Without s2c
translate(myString)
Error in s2n(seq, levels = s2c("tcag")) :
sequence is not a vector of chars
# With s2c
translate(s2c(myString))
[1] "K" "P" "G" "F"
解释:
translate()
需要的字符向量是 "A" "A" "A" "C" "C" "C" "G" "G" "G" "T" "T" "T"
而不是 "AAACCCGGGTTT"
。
您可以使用 strsplit()
:
生成这样的向量
strsplit(myString, "")
[[1]]
[1] "A" "A" "A" "C" "C" "C" "G" "G" "G" "T" "T" "T"
all(strsplit(myString, "")[[1]] == s2c(myString))
[1] TRUE
我正在努力使用翻译功能:
我有一个序列矩阵,但我无法弄清楚为什么翻译功能不起作用。
这是我的脚本:
head(myseq)
[,1]
[1,] "CAATTAAGATGCAGTTACTTCGCTGTTTTTCAATATTTTCTGTTATTGCTAGCGTTTTAGCAGCTGGAGAAGTCCAGTTGGTTGAATCCGGTGGCGGGTTGGTTCAACCTGGCCGTTCCCTGCGCCTTTCTTGTGCCGCTTCAGGCTTTACCTTCGACGATTATGCCATGCATTGGGTACGCCAAGCTCCGGGCAAAGGTCTGGAATGGGTGAGTGCCATTACCTGGAATAGCGGCCACATTGACTATGCGGATAGCGTCGAAGGGCGCTTTACCATTAGCCGTGATAACGCGAAGAACAGCCTCTATCTGGACATGAACAGCTTACGTGCGGAAGATACCGCAGTGTACTATTGCGCTAAGGTCAGCTATCTGAGTACTGCCAGTTCCCTGGATTATTGGGGTCAAGGAACCCTGGTGACCGTGTCAAGCGGCGGAGGCGGTTCTGGTGGTGGAGGCAGTBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
[2,] "CAATTAAGATGCAGTTACTTCGCTGTTTTTCAATATTTTCTGTTATTGCTAGCGTTTTAGCAGCTGGAGAAGTCCAGTTGGTTGAATCCGGTGGCGGGTTGGTTCAACCTGGCCGTTCCCTGCGCCTTTCTTGTGCCGCTTCAGGCTTTACCTTCGACGATTATGCCATGCATTGGGTACGCCAAGCTCCGGGCAAAGGTCTGGAATGGGTGTCTGCGGCTAGTTGGAGTGGTGGCCACATCGATTATGCCGATAGCGTCGAAGGGCGCTTTACCATTAGCCGTGATAACGCGAAGAACAGCCTCTATCTGGACATGAACAGCTTACGTGCGGAAGATACCGCAGTGTACTATTGCGCTAAGGTCAGCTATCTGAGTACTGCCAGTTCCCTGGATTATTGGGGTCAAGGAACCCTGGTGACCGTGTCAAGCGGCGGAGGCGGTTCTGGTGGTGGAGGCAGTBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
translate(myseq[1,],frame=2,sens=F)
Error in s2n(seq, levels = s2c("tcag")) :sequence is not a vector of chars
我检查了我的参数:
class(myseq[1,])
[1] "character"
is.vector(myseq[1,])
[1] TRUE
所以我假设我错过了什么,但我不知道是什么。
解法:
如果您正在使用 seqinr::translate
then you can try wrapping your DNA string with s2c
。
myString <- "AAACCCGGGTTT"
library(seqinr)
# Without s2c
translate(myString)
Error in s2n(seq, levels = s2c("tcag")) :
sequence is not a vector of chars
# With s2c
translate(s2c(myString))
[1] "K" "P" "G" "F"
解释:
translate()
需要的字符向量是 "A" "A" "A" "C" "C" "C" "G" "G" "G" "T" "T" "T"
而不是 "AAACCCGGGTTT"
。
您可以使用 strsplit()
:
strsplit(myString, "")
[[1]]
[1] "A" "A" "A" "C" "C" "C" "G" "G" "G" "T" "T" "T"
all(strsplit(myString, "")[[1]] == s2c(myString))
[1] TRUE