如何解决这些错误:使用predORF,需要用唯一的名称填充x的插槽,或者下标包含越界索引?

问题描述

功能predORF出现问题

  sqa <- c("CAGGGCACCTGGCCTTGGGATGCGCCTCCTGCCCGCTGAGCCCAGGGGCCGCTATGGCCCTTCTGGCCATGCTGGCGCTGCAGACAGCTCTCTACCTAGTAGGCTTCTTCTACCCGCCGGGAGGCATATGGCGCTGGATCACCCGGGAC") 
  print(sqa)   

首先,我将序列转换为输入格式

  dnastring = DNAString(sqa) 
  print(dnastring)

  dna <- DNAStringSet(sqa) 
  print(dna)

当我使用DNAstrings格式时:

    predORF(dnabase,n = 1,type = "grl",mode = "orf",strand = "sense",longest_disjoint=FALSE,startcodon = c("ATG"),stopcodon = c("TAA"))

我收到此错误

  Error in predORF(dnastring,: 
  Sequence name slot of x need be populated with unique names.
    

当我定义它的长度时,我得到了:

    predORF(dna[:149],stopcodon = c("TAA"))

  Error in predORF(dnastring[1:149],: 
  Sequence name slot of x need be populated with unique names.

当我使用DNAStringSet格式时:

    predORF(dna,stopcodon = c("TAA"))

我收到此错误

  Error in predORF(dna n = 1,stopcodon = c("TAA"))

  Error: subscript contains out-of-bounds indices

我该如何解决这个问题?

谢谢!

解决方法

问题在于predORF需要命名序列作为输入。见下文:

library(Biostrings)
library(systemPipeR)

sqa <- c("ATGTAA")
sqb <- c("ATGGCCTAA")
dna <- DNAStringSet(c(seq_a = sqa,seq_b = sqb),use.names = T) 
predORF(dna,n = 1,type = "grl",mode = "orf",strand = "sense",longest_disjoint=FALSE,startcodon = c("ATG"),stopcodon = c("TAA"))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...