File: getFrag.R

package info (click to toggle)
r-cran-seqinr 3.3-3-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 5,844 kB
  • ctags: 69
  • sloc: ansic: 1,955; makefile: 13
file content (47 lines) | stat: -rw-r--r-- 1,961 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#
# To extract a subsequence from a sequence
#

getFrag <-  function(object, begin, end, ...) UseMethod("getFrag")

getFrag.default <-  function(object, begin, end, ...)
  stop(paste("no getFrag method for objects of class:", class(object)))

getFrag.list <- function(object, begin, end, ...)
  lapply(seq_len(length(object)), function(i) getFrag(object[[i]], begin = begin, end = end, ...))

getFrag.character <- function(object, begin, end, ...){ 
  if(length(object) == 1) object <- s2c(object)	
  if(begin > length(object) || end > length(object) || begin > end) stop("borns are not correct")	
  return(object[begin:end])		
}

getFrag.SeqFastadna <- function(object, begin, end, ..., name = getName(object)){
  if(end > getLength(object)) stop("invalid end")	
  as.SeqFrag(getSequence(object, as.string = FALSE)[begin:end], begin = begin, end = end,
     name = name)
}
getFrag.SeqFastaAA <- getFrag.SeqFastadna

getFrag.SeqFrag <- function(object, begin, end, ..., name = getName(object)){
  if((end<begin) || (end>getLength(object)))  stop("invalid end")
  newBegin <-  attr(object, "begin") + begin - 1
  newEnd <- attr(object, "begin") + end - 1
  newSeq <- object[begin:end]
  as.SeqFrag(object = newSeq, begin = newBegin, end = newEnd, name = name)
}

getFrag.SeqAcnucWeb <- function(object, begin, end, ..., socket = autosocket(), name = getName(object)){
  lobj <- getLength(object)
  if(end > lobj) stop("end parameter is too large")
  if(begin > lobj) stop("begin parameter is too large")
  length <- end - begin + 1
#  newSeq <- getSequenceSocket(socket, object, start = begin, length = length)
  newSeq <- gfrag(what = name, start = begin, length = length, idby = "name", socket = socket)
  as.SeqFrag(newSeq, begin = begin, end = end, name = name)
}

getFrag.qaw <- function(object, begin, end, ...) getFrag(object$req, begin, end, ...)

getFrag.logical <- function (object, begin, end, ...)
  object # so that NA is returned for virtual lists