XStringViews-class        package:Biostrings        R Documentation

The XStringViews class

Description:

     The XStringViews class is the basic container for storing a set of
     views (start/end locations) on the same sequence (an XString
     object).

Details:

     An XStringViews object contains a set of views (start/end
     locations) on the same XString object called "the subject string"
     or "the subject sequence" or simply "the subject". Each view is
     defined by its start and end locations: both are integers such
     that start <= end. An XStringViews object is in fact a particular
     case of an Views  object (the XStringViews class contains the
     Views class) so it  can be manipulated in a similar manner: see
     '?Views' for  more information. Note that two views can overlap
     and that a view can be "out of limits" i.e. it can start before
     the first letter of the subject or/and end after its last letter.

Constructor:


      'Views(subject, start=NULL, end=NULL, width=NULL, names=NULL)':
          See '?Views' in the IRanges package for the details.


Accessor-like methods:

     All the accessor-like methods defined for 'Views' objects work on
     XStringViews objects. In addition, the following accessors are
     defined for XStringViews objects:


      'nchar(x)': A vector of non-negative integers containing the
          number of letters in each view. Values in 'nchar(x)' coincide
          with values in 'width(x)' except for "out of limits" views
          where they are lower.


Other methods:

     In the code snippets below, 'x', 'object', 'e1' and 'e2' are
     XStringViews objects, and 'i' can be a numeric or logical vector.


      'e1 == e2': A vector of logicals indicating the result of the
          view by view comparison. The views in the shorter of the two
          XStringViews object being compared are recycled as necessary.

          Like for comparison between XString objects, comparison
          between two XStringViews objects with subjects of different
          classes is not supported with one exception: when the
          subjects are DNAString and RNAString instances.

          Also, like with XString objects, comparison between an
          XStringViews object with a BString subject and a character
          vector is supported (see examples below).

      'e1 != e2': Equivalent to '!(e1 == e2)'.

      'as.character(x, use.names, check.limits)': Convert 'x' to a
          character vector of the same length as 'x'. 'use.names'
          controls whether or not 'names(x)' should be used to set the
          names of the returned vector (default is 'TRUE').
          'check.limits' controls whether or not an error should be
          raised if 'x' contains "out of limit" views (default is
          'TRUE'). With 'check.limits=FALSE' then "out of limit" views
          are padded with spaces.

      'as.matrix(x, mode, use.names, check.limits)': Depending on what
          'mode' is chosen ('"integer"' or '"character"'), return
          either a 2-column integer matrix containing 'start(x)' and
          'end(x)' or a character matrix containing the "exploded"
          representation of the views. 'mode="character"' can only be
          used on an XStringViews object with equal-width views.
          Arguments 'use.names' and 'check.limits' are ignored with
          'mode="integer"'. With 'mode="character"', 'use.names'
          controls whether or not 'names(x)' should be used to set the
          row names of the returned matrix (default is 'TRUE'), and
          'check.limits' controls whether or not an error should be
          raised if 'x' contains "out of limit" views (default is
          'TRUE'). With 'check.limits=FALSE' then "out of limit" views
          are padded with spaces.

      'toString(x)': Equivalent to 'toString(as.character(x))'.


Author(s):

     H. Pages

See Also:

     Views-class, 'gaps', XStringViews-constructors, XString-class,
     XStringSet-class, 'letter', MIndex-class

Examples:

       ## One standard way to create an XStringViews object is to use
       ## the Views() constructor.

       ## Views on a DNAString object:
       s <- DNAString("-CTC-N")
       v4 <- Views(s, start=3:0, end=5:8)
       v4
       subject(v4)
       length(v4)
       start(v4)
       end(v4)
       width(v4)

       ## Attach a comment to views #3 and #4:
       names(v4)[3:4] <- "out of limits"
       names(v4)

       ## A more programatical way to "tag" the "out of limits" views:
       names(v4)[start(v4) < 1 | nchar(subject(v4)) < end(v4)] <- "out of limits"
       ## or just:
       names(v4)[nchar(v4) < width(v4)] <- "out of limits"

       ## Two equivalent ways to extract a view as an XString object:
       s2a <- v4[[2]]
       s2b <- subseq(subject(v4), start=start(v4)[2], end=end(v4)[2])
       identical(s2a, s2b) # TRUE

       ## It is an error to try to extract an "out of limits" view:
       #v4[[3]] # Error!

       v12 <- Views(DNAString("TAATAATG"), start=-2:9, end=0:11)
       v12 == DNAString("TAA")
       v12[v12 == v12[4]]
       v12[v12 == v12[1]]
       v12[3] == Views(RNAString("AU"), start=0, end=2)

       ## Here the first view doesn't even overlap with the subject:
       Views(BString("aaa--b"), start=-3:4, end=-3:4 + c(3:6, 6:3))

       ## 'start' and 'end' are recycled:
       subject <- "abcdefghij"
       Views(subject, start=2:1, end=4)
       Views(subject, start=5:7, end=nchar(subject))
       Views(subject, start=1, end=5:7)

       ## Applying gaps() to an XStringViews object:
       v2 <- Views("abCDefgHIJK", start=c(8, 3), end=c(14, 4))
       gaps(v2)

       ## Coercion:
       as(v12, "XStringSet")  # same as 'as(v12, "DNAStringSet")'
       as(v12, "RNAStringSet")

