On Fri, Feb 21, 2014 at 2:03 PM, Gabriel Becker <gmbec...@ucdavis.edu>wrote:

> Michael,
>
> Why not just load the help page for the function if it's not a generic
> instead of throwing an error?
>
> Also, it's possible that it skipping missing arguments and going straight
> to any is a bug in help, rather than the designed behavior. Perhaps we
> should check?
>
>
Agree on both points. Just a quick proof of concept.


> ~G
>
>
> On Fri, Feb 21, 2014 at 2:01 PM, Michael Lawrence <
> lawrence.mich...@gene.com> wrote:
>
>> This function seems to solve the problem:
>>
>> helpwith <- function(expr) {
>>   env <- IRanges:::top_prenv(expr)
>>   expr <- substitute(expr)
>>   fun <- eval(expr[[1L]], env)
>>   fun.name <- deparse(expr[[1L]])
>>   if (!isGeneric(fun.name, env)) {
>>     stop("'expr' must be a call to a generic")
>>   }
>>   args <- formals(fun)
>>   mc <- match.call(fun, expr, expand.dots=FALSE)
>>   args[names(mc[-1L])] <- mc[-1L]
>>   args <- args[fun@signature]
>>   args$... <- args$...[[1L]]
>>   target.sig <- vapply(args, function(arg) {
>>     .arg <- arg # nice trick
>>     if (missing(.arg)) {
>>       "missing"
>>     } else {
>>       class(eval(arg, env))[1L]
>>     }
>>   }, character(1))
>>   defined.sig <- selectMethod(fun, target.sig)@defined
>>   help(paste0(fun.name, ",", paste(defined.sig, collapse=","),
>> "-method"))
>> }
>>
>> path_to_gff <- "my.gff"
>> helpwith(import(path_to_gff))
>>
>> helpwith(rbind(DataFrame(mtcars), DataFrame(mtcars)))
>>
>> But where should it go?
>>
>>
>>
>> On Fri, Feb 21, 2014 at 11:17 AM, Hervé Pagès <hpa...@fhcrc.org> wrote:
>>
>>> Hi Gabriel,
>>>
>>>
>>> On 02/20/2014 05:03 PM, Gabriel Becker wrote:
>>>
>>>> Herve,
>>>>
>>>> The help is correct (though possibly a bit pedantic),  there is no
>>>> method for that signature.
>>>>
>>>
>>> But the dispatch mechanism is able to find one because
>>> 'import(path_to_gff)' *does* work. So the help maybe is correct
>>> but that doesn't really help the naive user.
>>>
>>> H.
>>>
>>>
>>>> ?import("", "")
>>>>
>>>> works for me though
>>>>
>>>> ~G
>>>>
>>>>
>>>> On Thu, Feb 20, 2014 at 4:51 PM, Hervé Pagès <hpa...@fhcrc.org
>>>> <mailto:hpa...@fhcrc.org>> wrote:
>>>>
>>>>     On 02/20/2014 04:16 PM, Michael Lawrence wrote:
>>>>
>>>>         There's also "?coverage(ga)", so the user can see what happens
>>>>         specifically for their object, without worrying about typing out
>>>>         the class.
>>>>
>>>>
>>>>     I was never lucky with this:
>>>>
>>>>        > library(rtracklayer)
>>>>        > path_to_gff <- system.file("tests", "v1.gff", package =
>>>>     "rtracklayer")
>>>>        > ?import(path_to_gff)
>>>>        Error in .helpForCall(topicExpr, parent.frame()) :
>>>>          no documentation for function 'import' and signature 'con =
>>>>     "character", format = "ANY", text = "ANY"'
>>>>        In addition: Warning message:
>>>>        In .helpForCall(topicExpr, parent.frame()) :
>>>>          no method defined for function 'import' and signature 'con =
>>>>     "character", format = "ANY", text = "ANY"'
>>>>
>>>>     H.
>>>>
>>>>
>>>>         At some point it would be neat to generate S4 documentation at
>>>>         run-time.
>>>>         Just popup a browser and see every method that might be
>>>>         dispatched with
>>>>         a given object. In theory, the R help server would support this.
>>>>
>>>>
>>>>         On Thu, Feb 20, 2014 at 3:13 PM, Hervé Pagès <hpa...@fhcrc.org
>>>>         <mailto:hpa...@fhcrc.org>
>>>>         <mailto:hpa...@fhcrc.org <mailto:hpa...@fhcrc.org>>> wrote:
>>>>
>>>>
>>>>
>>>>              On 02/20/2014 02:55 PM, Martin Morgan wrote:
>>>>
>>>>                  On 02/20/2014 02:32 PM, Hervé Pagès wrote:
>>>>
>>>>                      Hi Jesper,
>>>>
>>>>                      On 02/20/2014 02:13 PM, Jesper Gådin wrote:
>>>>
>>>>                          Very true that it is quite difficult to find
>>>> the
>>>>                          documentation when one
>>>>                          is not aware of its existence :P
>>>>
>>>>
>>>>                      Yeah, this has been a source of frustration for
>>>>         many people. And
>>>>                      always a source of embarrassment (for us) when
>>>>         teaching our
>>>>                      software
>>>>                      to beginners.
>>>>
>>>>                      I've started to change this. In the upcoming
>>>>         version of BioC
>>>>                      (2.14,
>>>>                      scheduled for mid-April), when you'll do ?coverage,
>>>>         you'll
>>>>                      get to
>>>>                      choose between the 3 man pages that document
>>>> coverage
>>>>                      methods (there
>>>>                      is one in IRanges, one in GenomicRanges, and one in
>>>>                      GenomicAlignments).
>>>>
>>>>                      I want to generalize this to other generics that
>>>> have
>>>>                      methods spread
>>>>                      across several packages (e.g. findOverlaps, the
>>>>         intra- and
>>>>                      inter-range
>>>>                      methods, etc...).
>>>>
>>>>                      Having to choose between several man pages every
>>>>         time you do
>>>>                      e.g.
>>>>                      ?findOverlaps is a minor annoyance compared to not
>>>>         being able to
>>>>                      find the man page at all. (Note that if you already
>>>>         know
>>>>                      where is
>>>>                      your favorite man page, you'll be able to direct
>>>>         access it with
>>>>                      e.g. ?GenomicRanges::findOverlaps). Nobody will
>>>>         ever need to use
>>>>                      the insane
>>>>
>>>>         ?`findOverlaps,GenomicRanges,____GenomicRanges-method` to
>>>>
>>>>
>>>>
>>>>
>>>>                  tab completion helps, so that you don't need to be
>>>> totally
>>>>                  insane, just
>>>>                  insane enough to know to start with
>>>>
>>>>                  ?"cover<tab>
>>>>
>>>>
>>>>              and also insane enough to know which method you need to
>>>>         pick up amongst
>>>>              the 30+ methods listed by ?"findOverlaps<tab>
>>>>              Overwhelming!
>>>>
>>>>              H.
>>>>
>>>>
>>>>
>>>>                  Martin
>>>>
>>>>                      open that man page again. Ever! (it will still work
>>>>         though...)
>>>>
>>>>                      Cheers,
>>>>                      H.
>>>>
>>>>
>>>>                          coverage() is fast and beautiful. Thanks!
>>>>
>>>>                          /Jesper
>>>>
>>>>
>>>>                          On Wed, Feb 19, 2014 at 9:21 PM, Hervé Pagès
>>>>                          <hpa...@fhcrc.org <mailto:hpa...@fhcrc.org>
>>>>         <mailto:hpa...@fhcrc.org <mailto:hpa...@fhcrc.org>>
>>>>                          <mailto:hpa...@fhcrc.org
>>>>         <mailto:hpa...@fhcrc.org> <mailto:hpa...@fhcrc.org
>>>>         <mailto:hpa...@fhcrc.org>>>> wrote:
>>>>
>>>>                               Hi Jesper,
>>>>
>>>>
>>>>                               On 02/19/2014 08:44 AM, Michael Lawrence
>>>>         wrote:
>>>>
>>>>                                   On Wed, Feb 19, 2014 at 8:39 AM,
>>>>         Jesper Gådin
>>>>                                   <jesper.ga...@gmail.com
>>>>         <mailto:jesper.ga...@gmail.com>
>>>>                          <mailto:jesper.ga...@gmail.com
>>>>         <mailto:jesper.ga...@gmail.com>__>
>>>>                          <mailto:jesper.ga...@gmail.com
>>>>         <mailto:jesper.ga...@gmail.com>
>>>>                          <mailto:jesper.ga...@gmail.com
>>>>         <mailto:jesper.ga...@gmail.com>__>__>>wrote:
>>>>
>>>>
>>>>
>>>>                                       Hi Michael,
>>>>
>>>>                                       Herves suggestion will probably
>>>>         work for my
>>>>                          use case, but if
>>>>                                       there are any
>>>>                                       smoother ways it would be
>>>> preferable.
>>>>
>>>>                                       The use case is as follows:
>>>>
>>>>                                       1) calculate strand specific
>>>>         coverage over
>>>>                          a region from
>>>>                                       GAlignments object (or file)
>>>>
>>>>                                       At the moment I read a file using
>>>>                          readGAlignmentsFromBam()
>>>>                                       with tag="XS",
>>>>                                       then filter it on "flag" and
>>>>         "mapq". Then I
>>>>                          subset the
>>>>                                       resulting GAlignments in a minus
>>>>         and a plus
>>>>                          -strand object.
>>>>                                       Then I calculate coverage by my
>>>> own
>>>>                          coverage function which
>>>>                                       uses the cigar
>>>>                                       information in the GAlignments
>>>>         object. This
>>>>                          function is the
>>>>                                       one using
>>>>                                       cigarToRleList() at the moment.
>>>> As I
>>>>                          understand the
>>>>                                       coverage() function
>>>>                                       from the GenomicAlignments/IRanges
>>>>         package
>>>>                          does not take
>>>>                                       into account
>>>>                                       cigars, or does it?
>>>>
>>>>
>>>>                                   It does take the coverage into
>>>> account;
>>>>                          specifically to exclude
>>>>                                   the introns
>>>>                                   from coverage. I think there's also an
>>>>         option
>>>>                          to exclude
>>>>                          deletions.
>>>>
>>>>
>>>>                               Unfortunately the man page is not easy to
>>>>         access
>>>>                          (you need to do
>>>>                               ?`coverage,GAlignments-method`______),
>>>> but
>>>>
>>>>         it says:
>>>>
>>>>                                   The methods for GAlignments and
>>>>         GAlignmentPairs
>>>>                          objects do:
>>>>
>>>>                                     coverage(grglist(x), ...)
>>>>
>>>>                               And if you do grglist() on a GAlignments
>>>> or
>>>>                          GAlignmentPairs
>>>>                          objects, the
>>>>                               ranges you get in the returned GRangesList
>>>>         object
>>>>                          are calculated
>>>>                          based
>>>>                               on the CIGAR.
>>>>
>>>>                               Trust but verify. Here is how you can
>>>> actually
>>>>                          verify that
>>>>                          coverage()
>>>>                               does take the CIGAR into account:
>>>>
>>>>                                  library(RNAseqData.HNRNPC.bam.
>>>> ______chr14)
>>>>                                  gal <-
>>>>
>>>>         readGAlignments(RNAseqData.______HNRNPC.bam.chr14_BAMFILES[1])
>>>>
>>>>
>>>>                                  cig_op_table <-
>>>> cigarOpTable(cigar(gal))
>>>>
>>>>                               First we pick up an alignment with an N
>>>> in its
>>>>                          CIGAR and do
>>>>                          coverage()
>>>>                               on it:
>>>>
>>>>                                  > gal_with_N <- gal[which(cig_op_table[
>>>>         , "N"]
>>>>                          != 0)[1]]
>>>>
>>>>                                  > gal_with_N
>>>>                                  GAlignments with 1 alignment and 0
>>>>         metadata columns:
>>>>                                        seqnames strand       cigar
>>>>  qwidth
>>>>                          start       end
>>>>                                  width
>>>>                                           <Rle>  <Rle> <character>
>>>> <integer>
>>>>                          <integer> <integer>
>>>>                               <integer>
>>>>                                    [1]    chr14      + 55M2117N17M
>>>>    72
>>>>                            19650072  19652260
>>>>                                   2189
>>>>                                             ngap
>>>>                                        <integer>
>>>>                                    [1]         1
>>>>                                    ---
>>>>                                    seqlengths:
>>>>                                                    chr1
>>>>         chr10 ...
>>>>                                 chrY
>>>>                                               249250621
>>>>         135534747 ...
>>>>                                 59373566
>>>>
>>>>                                  > coverage(gal_with_N)$chr14
>>>>                                  integer-Rle of length 107349540 with 5
>>>> runs
>>>>                                    Lengths: 19650071       55     2117
>>>>              17
>>>>                          87697280
>>>>                                    Values :        0        1        0
>>>>               1
>>>>                                0
>>>>
>>>>                               Same thing with an alignment with an I in
>>>>         its CIGAR:
>>>>
>>>>                                  > gal_with_I <- gal[which(cig_op_table[
>>>>         , "I"]
>>>>                          != 0)[1]]
>>>>
>>>>                                  > gal_with_I
>>>>                                  GAlignments with 1 alignment and 0
>>>>         metadata columns:
>>>>                                        seqnames strand       cigar
>>>>  qwidth
>>>>                          start       end
>>>>                                  width
>>>>                                           <Rle>  <Rle> <character>
>>>> <integer>
>>>>                          <integer> <integer>
>>>>                               <integer>
>>>>                                    [1]    chr14      -     64M1I7M
>>>>    72
>>>>                            19411677  19411747
>>>>                                     71
>>>>                                             ngap
>>>>                                        <integer>
>>>>                                    [1]         0
>>>>                                    ---
>>>>                                    seqlengths:
>>>>                                                    chr1
>>>>         chr10 ...
>>>>                                 chrY
>>>>                                               249250621
>>>>         135534747 ...
>>>>                                 59373566
>>>>
>>>>                                  > coverage(gal_with_I)$chr14
>>>>                                  integer-Rle of length 107349540 with 3
>>>> runs
>>>>                                    Lengths: 19411676 71 87937793
>>>>         <tel:71%2087937793>
>>>>                                    Values :        0        1        0
>>>>
>>>>                               Same thing with an alignment with a D in
>>>>         its CIGAR:
>>>>
>>>>                                  > gal_with_D <- gal[which(cig_op_table[
>>>>         , "D"]
>>>>                          != 0)[1]]
>>>>
>>>>                                  > gal_with_D
>>>>                                  GAlignments with 1 alignment and 0
>>>>         metadata columns:
>>>>                                        seqnames strand       cigar
>>>>  qwidth
>>>>                          start       end
>>>>                                  width
>>>>                                           <Rle>  <Rle> <character>
>>>> <integer>
>>>>                          <integer> <integer>
>>>>                               <integer>
>>>>                                    [1]    chr14      +    38M1D34M
>>>>    72
>>>>                            19659063  19659135
>>>>                                     73
>>>>                                             ngap
>>>>                                        <integer>
>>>>                                    [1]         0
>>>>                                    ---
>>>>                                    seqlengths:
>>>>                                                    chr1
>>>>         chr10 ...
>>>>                                 chrY
>>>>                                               249250621
>>>>         135534747 ...
>>>>                                 59373566
>>>>
>>>>                                  > coverage(gal_with_D)$chr14
>>>>                                  integer-Rle of length 107349540 with 3
>>>> runs
>>>>                                    Lengths: 19659062       73 87690405
>>>>                                    Values :        0        1        0
>>>>
>>>>                               Seeing is believing,
>>>>
>>>>                               Cheers,
>>>>                               H.
>>>>
>>>>
>>>>
>>>>                                       I started to look at the
>>>>         applyPileups() in
>>>>                          Rsamtools which I
>>>>                                       can get to
>>>>                                       calculate coverage using cigars,
>>>>         but not
>>>>                          using the strand or
>>>>                                       flag
>>>>                                       information for filtering. That
>>>>         solution
>>>>                          would start from a
>>>>                                       bam-file
>>>>                                       instead of a GAlignments object,
>>>>         and sure I
>>>>                          can do the
>>>>                                       filtering outside R.
>>>>                                       But it would be very convenient to
>>>>         do it
>>>>                          all from within R.
>>>>
>>>>                                       If there are nice solutions
>>>>         starting from
>>>>                          both a GAlignments
>>>>                                       and a
>>>>                                       bam-file it would be great! =)
>>>>
>>>>                                       /Jesper
>>>>
>>>>
>>>>
>>>>                                       On Tue, Feb 18, 2014 at 10:52 PM,
>>>>         Michael
>>>>                          Lawrence <
>>>>         lawrence.mich...@gene.com <mailto:lawrence.mich...@gene.com>
>>>>         <mailto:lawrence.michael@gene.__com
>>>>         <mailto:lawrence.mich...@gene.com>>
>>>>                                       <mailto:lawrence.michael@gene.
>>>>         <mailto:lawrence.michael@gene.>____com
>>>>
>>>>
>>>>                          <mailto:lawrence.michael@gene.__com
>>>>         <mailto:lawrence.mich...@gene.com>>>> wrote:
>>>>
>>>>                                           Hi Jesper,
>>>>
>>>>                                           Would you be willing to
>>>>         volunteer your
>>>>                          use case? As
>>>>                                           Herve hinted,
>>>>                                           cigarToRleList and friends are
>>>>                          low-level helpers. There
>>>>                                           may be an easier
>>>>                                           way to achieve what you want,
>>>>         or an
>>>>                          opportunity to
>>>>                                           improve things.
>>>>
>>>>                                           Michael
>>>>
>>>>
>>>>                                           On Mon, Feb 17, 2014 at 1:10
>>>>         AM, Jesper
>>>>                          Gådin
>>>>                                           <jesper.ga...@gmail.com
>>>>         <mailto:jesper.ga...@gmail.com>
>>>>                          <mailto:jesper.ga...@gmail.com
>>>>         <mailto:jesper.ga...@gmail.com>__>
>>>>                                           <mailto:
>>>> jesper.ga...@gmail.com
>>>>         <mailto:jesper.ga...@gmail.com>
>>>>                          <mailto:jesper.ga...@gmail.com
>>>>         <mailto:jesper.ga...@gmail.com>__>__>>wrote:
>>>>
>>>>
>>>>
>>>>                                               Hi,
>>>>
>>>>                                               Have come across a
>>>>         cigar-vector
>>>>                          that is problematic
>>>>                                               to process.
>>>>
>>>>                                               #load package
>>>>
>>>>
>>>> library(GenomicAlignments)
>>>>
>>>>
>>>>                                               #load data (see attached
>>>> file)
>>>>
>>>>
>>>>                          load("2014-02-17-cigarExample.______rdata")
>>>>
>>>>
>>>>
>>>>
>>>>                                               #run function
>>>> cigarToRleList
>>>>
>>>>                                                   cigarRle <-
>>>>                          cigarToRleList(cigarExample)
>>>>
>>>>                                               Error in
>>>>         .Call2("Rle_constructor",
>>>>                          values, lengths,
>>>>                                               check, 0L, PACKAGE =
>>>>                                               "IRanges") :
>>>>                                                   integer overflow while
>>>>         summing
>>>>                          elements in
>>>>                          'lengths'
>>>>
>>>>                                                   sessionInfo()
>>>>
>>>>                                               R Under development
>>>> (unstable)
>>>>                          (2013-11-13 r64209)
>>>>                                               Platform:
>>>>         x86_64-unknown-linux-gnu
>>>>                          (64-bit)
>>>>
>>>>                                               locale:
>>>>                                                  [1]
>>>> LC_CTYPE=en_US.UTF-8
>>>>                          LC_NUMERIC=C
>>>>                                                  [3] LC_TIME=en_US.UTF-8
>>>>                          LC_COLLATE=en_US.UTF-8
>>>>                                                  [5]
>>>> LC_MONETARY=en_US.UTF-8
>>>>                                                 LC_MESSAGES=en_US.UTF-8
>>>>                                                  [7]
>>>> LC_PAPER=en_US.UTF-8
>>>>                          LC_NAME=C
>>>>                                                  [9] LC_ADDRESS=C
>>>>                          LC_TELEPHONE=C
>>>>                                               [11]
>>>>         LC_MEASUREMENT=en_US.UTF-8
>>>>                          LC_IDENTIFICATION=C
>>>>
>>>>                                               attached base packages:
>>>>                                               [1] parallel  stats
>>>>         graphics
>>>>                            grDevices utils
>>>>                                                  datasets  methods
>>>>                                               [8] base
>>>>
>>>>                                               other attached packages:
>>>>                                               [1]
>>>> GenomicAlignments_0.99.18
>>>>                          Rsamtools_1.15.26
>>>>                                               [3] Biostrings_2.31.12
>>>>                            XVector_0.3.6
>>>>                                               [5] GenomicRanges_1.15.26
>>>>                          IRanges_1.21.23
>>>>                                               [7] BiocGenerics_0.9.3
>>>>
>>>>                                               loaded via a namespace
>>>>         (and not
>>>>                          attached):
>>>>                                                  [1] BatchJobs_1.1-1135
>>>>         BBmisc_1.5
>>>>                                               BiocParallel_0.5.8
>>>>                                               bitops_1.0-6
>>>>
>>>>                                                  [5] brew_1.0-6
>>>>                          codetools_0.2-8
>>>>                          DBI_0.2-7
>>>>                                                  digest_0.6.4
>>>>
>>>>                                                  [9] fail_1.2
>>>>         foreach_1.4.1
>>>>                                                 iterators_1.0.6
>>>>  plyr_1.8
>>>>
>>>>                                               [13] RSQLite_0.11.4
>>>>         sendmailR_1.1-2
>>>>                                                 stats4_3.1.0
>>>>         tools_3.1.0
>>>>
>>>>                                               [17] zlibbioc_1.9.0
>>>>
>>>>
>>>>
>>>>         _____________________________________________________
>>>>
>>>>         Bioc-devel@r-project.org <mailto:Bioc-devel@r-project.org>
>>>>         <mailto:Bioc-devel@r-project.__org
>>>>         <mailto:Bioc-devel@r-project.org>>
>>>>
>>>>           <mailto:Bioc-devel@r-project.
>>>>         <mailto:Bioc-devel@r-project.>____org
>>>>
>>>>                          <mailto:Bioc-devel@r-project.__org
>>>>         <mailto:Bioc-devel@r-project.org>>> mailing list
>>>>         https://stat.ethz.ch/mailman/______listinfo/bioc-devel
>>>>         <https://stat.ethz.ch/mailman/____listinfo/bioc-devel>
>>>>
>>>>
>>>>         <https://stat.ethz.ch/mailman/____listinfo/bioc-devel
>>>>         <https://stat.ethz.ch/mailman/__listinfo/bioc-devel>>
>>>>
>>>>
>>>>
>>>>         <https://stat.ethz.ch/mailman/____listinfo/bioc-devel
>>>>         <https://stat.ethz.ch/mailman/__listinfo/bioc-devel>
>>>>
>>>>         <https://stat.ethz.ch/mailman/__listinfo/bioc-devel
>>>>         <https://stat.ethz.ch/mailman/listinfo/bioc-devel>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>                                            [[alternative HTML version
>>>>         deleted]]
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>           _____________________________________________________
>>>>
>>>>         Bioc-devel@r-project.org <mailto:Bioc-devel@r-project.org>
>>>>                          <mailto:Bioc-devel@r-project.__org
>>>>         <mailto:Bioc-devel@r-project.org>>
>>>>                          <mailto:Bioc-devel@r-project.
>>>>         <mailto:Bioc-devel@r-project.>____org
>>>>
>>>>                          <mailto:Bioc-devel@r-project.__org
>>>>         <mailto:Bioc-devel@r-project.org>>>
>>>>                                   mailing list
>>>>         https://stat.ethz.ch/mailman/______listinfo/bioc-devel
>>>>         <https://stat.ethz.ch/mailman/____listinfo/bioc-devel>
>>>>
>>>>         <https://stat.ethz.ch/mailman/____listinfo/bioc-devel
>>>>         <https://stat.ethz.ch/mailman/__listinfo/bioc-devel>>
>>>>
>>>>
>>>>
>>>>         <https://stat.ethz.ch/mailman/____listinfo/bioc-devel
>>>>         <https://stat.ethz.ch/mailman/__listinfo/bioc-devel>
>>>>
>>>>         <https://stat.ethz.ch/mailman/__listinfo/bioc-devel
>>>>         <https://stat.ethz.ch/mailman/listinfo/bioc-devel>>>
>>>>
>>>>
>>>>                               --
>>>>                               Hervé Pagès
>>>>
>>>>                               Program in Computational Biology
>>>>                               Division of Public Health Sciences
>>>>                               Fred Hutchinson Cancer Research Center
>>>>                               1100 Fairview Ave. N, M1-B514
>>>>                               P.O. Box 19024
>>>>                               Seattle, WA 98109-1024
>>>>
>>>>                               E-mail: hpa...@fhcrc.org
>>>>         <mailto:hpa...@fhcrc.org> <mailto:hpa...@fhcrc.org
>>>>         <mailto:hpa...@fhcrc.org>>
>>>>                          <mailto:hpa...@fhcrc.org
>>>>         <mailto:hpa...@fhcrc.org> <mailto:hpa...@fhcrc.org
>>>>         <mailto:hpa...@fhcrc.org>>>
>>>>
>>>>                               Phone: (206) 667-5791
>>>>         <tel:%28206%29%20667-5791> <tel:%28206%29%20667-5791>
>>>>                          <tel:%28206%29%20667-5791>
>>>>                               Fax: (206) 667-1319
>>>>         <tel:%28206%29%20667-1319> <tel:%28206%29%20667-1319>
>>>>                          <tel:%28206%29%20667-1319>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>              --
>>>>              Hervé Pagès
>>>>
>>>>              Program in Computational Biology
>>>>              Division of Public Health Sciences
>>>>              Fred Hutchinson Cancer Research Center
>>>>              1100 Fairview Ave. N, M1-B514
>>>>              P.O. Box 19024
>>>>              Seattle, WA 98109-1024
>>>>
>>>>              E-mail: hpa...@fhcrc.org <mailto:hpa...@fhcrc.org>
>>>>         <mailto:hpa...@fhcrc.org <mailto:hpa...@fhcrc.org>>
>>>>              Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
>>>>         <tel:%28206%29%20667-5791>
>>>>              Fax: (206) 667-1319 <tel:%28206%29%20667-1319>
>>>>         <tel:%28206%29%20667-1319>
>>>>
>>>>
>>>>
>>>>     --
>>>>     Hervé Pagès
>>>>
>>>>     Program in Computational Biology
>>>>     Division of Public Health Sciences
>>>>     Fred Hutchinson Cancer Research Center
>>>>     1100 Fairview Ave. N, M1-B514
>>>>     P.O. Box 19024
>>>>     Seattle, WA 98109-1024
>>>>
>>>>     E-mail: hpa...@fhcrc.org <mailto:hpa...@fhcrc.org>
>>>>     Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
>>>>     Fax: (206) 667-1319 <tel:%28206%29%20667-1319>
>>>>
>>>>     _________________________________________________
>>>>     Bioc-devel@r-project.org <mailto:Bioc-devel@r-project.org> mailing
>>>> list
>>>>     https://stat.ethz.ch/mailman/__listinfo/bioc-devel
>>>>
>>>>     <https://stat.ethz.ch/mailman/listinfo/bioc-devel>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Gabriel Becker
>>>> Graduate Student
>>>> Statistics Department
>>>> University of California, Davis
>>>>
>>>
>>> --
>>> Hervé Pagès
>>>
>>> Program in Computational Biology
>>> Division of Public Health Sciences
>>> Fred Hutchinson Cancer Research Center
>>> 1100 Fairview Ave. N, M1-B514
>>> P.O. Box 19024
>>> Seattle, WA 98109-1024
>>>
>>> E-mail: hpa...@fhcrc.org
>>> Phone:  (206) 667-5791
>>> Fax:    (206) 667-1319
>>>
>>
>>
>
>
> --
> Gabriel Becker
> Graduate Student
> Statistics Department
> University of California, Davis
>

        [[alternative HTML version deleted]]

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to