Re: [Bioc-devel] Contradicting descriptions of "Enhances"

2014-08-04 Thread Martin Maechler
> Dan Tenenbaum 
> on Sun, 3 Aug 2014 22:59:52 -0700 writes:

> - Original Message -
>> From: "Jonathan Rosenblatt"  To:
>> bioc-devel@r-project.org Sent: Sunday, August 3, 2014
>> 10:39:57 PM Subject: [Bioc-devel] Contradicting
>> descriptions of "Enhances"
>> 
>> At the time of writing:
>> 
>> *Writing R Extensions:* "...the ‘Enhances’ field lists
>> packages “enhanced” by the package at hand..."


> This is backwards, maybe just a grammar fail? IMO it
> should say "the 'Enhances' field lists packages which
> 'enhance' the package at hand, if they are present."

I don't think so!
Dan, what you describe is basically 'Suggests'.  'Enhances' is
used more rarely, and indeed meant for what it says in WRE.

Otherwise, please bring this to the R-devel m.list.

>> *Bioconductor:* "Enhances: is for packages such as Rmpi
>> or parallel that enhance the performance of the current
>> package, but are not strictly needed for its
>> functionality."

and the above is not correct, IMO.

Martin

>> Have these definitions been resolved?
>> 

> IMO R-exts should be corrected along the lines I suggest
> above (and R-devel is the appropriate place for such a
> suggestion); however, the text on the bioc site is also
> probably less than ideal (will confer with bioc core as to
> how to rewrite it). Rmpi and parallel are not _always_
> "take it or leave it" packages. Other than the grammar
> blooper, R-exts goes on to give more detailed and correct
> information, the most important bit of which is that all
> invocations of packages in enhances should be wrapped in

> if (require(somePkg)).

> Dan



>> 
>> 
>> --
>> --
>> Jonathan Rosenblatt Postdoctoral Researcher Faculty of
>> Mathematics and CS Weizmann Institute of Science
>> www.john-ros.com
>> 
>> [[alternative HTML version deleted]]
>> 
>> 
>> ___
>> Bioc-devel@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>> 

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

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


Re: [Bioc-devel] Latest R-devel revision breaks flowCore and other flow packages

2015-01-22 Thread Martin Maechler
>>>>> Mike  
>>>>> on Tue, 20 Jan 2015 17:16:37 -0800 writes:

> I don't think it has been addressed yet in the later commits of R-devel. 
> And that piece of code in flowCore package was written long time ago and 
> there is nothing wrong with it as far as I can see.

You are right.

I thought Michael Lawrence (member of R Core since last summer!)
was also reading Bioc-devel, so wonder why he has not yet
replied --> CC'ing him

The changes to R-devel also did break the Matrix package in
exactly the same way.  You said 

> > Here is the |initialize|method for |parameterFilter| which causes the
> > various errors from flow package vignettes.
> > 
> > |setMethod("initialize",
> >signature=signature(.Object="parameterFilter"),
> >definition=function(.Object, parameters,...)
> >{
> >  if  (!missing(parameters))
> >parameters(.Object) <- parameters
> >  callNextMethod()
> >})
> > |

and I also had  a  _no argument_ call
  callNextMethod()
inside an  initialize method.

I'm pretty sure that if you change (the same as I)

   callNextMethod()
to
   callNextMethod(.Object, ...)

you'll have a version of the code that works both in current R 3.1.2
(and older versions)  *and* in the R-devel version.

Michael L and I were not sure how many other packages or R code this
would influence and he was expecting very very few.

Best regards,

Martin Maechler, ETH Zurich


> On 01/20/2015 05:06 PM, Dan Tenenbaum wrote:
>> I'm not sure if you were implying that this has already been fixed in 
R-devel. Note that the devel build machines currently have r67501 installed, 
which is later than all the commits you cite above, yet the flow packages are 
still broken.

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


Re: [Bioc-devel] [Rd] For integer vectors, `as(x, "numeric")` has no effect.

2015-12-11 Thread Martin Maechler
>>>>> Martin Maechler 
>>>>> on Tue, 8 Dec 2015 15:25:21 +0100 writes:

>>>>> John Chambers 
>>>>> on Mon, 7 Dec 2015 16:05:59 -0800 writes:

>> We do need an explicit method here, I think.
>> The issue is that as() uses methods for the generic function coerce() 
but cannot use inheritance in the usual way (if it did, you would be 
immediately back with no change, since "integer" inherits from "numeric").

>> Copying in the general method for coercing to "numeric" as an explicit 
method for "integer" gives the expected result:

>>> setMethod("coerce", c("integer", "numeric"), getMethod("coerce", 
c("ANY", "numeric")))
>> [1] "coerce"
>>> typeof(as(1L, "numeric"))
>> [1] "double"

>> Seems like a reasonable addition to the code, unless someone sees a 
problem.
>> John

> I guess that that some package checks (in CRAN + Bioc + ... -
> land) will break,
> but I still think we should add such a coercion to R.

> Martin

Hmm...  I've tried to add the above to R
and do notice that there are consequences that may be larger than
anticipated:

Here is example code:

   myN   <- setClass("myN",   contains="numeric")
   myNid <- setClass("myNid", contains="numeric", 
representation(id="character"))
   NN <-setClass("NN", representation(x="numeric"))

   (m1 <- myN  (1:3))
   (m2 <- myNid(1:3, id = "i3"))
   tools::assertError(NN (1:3))# in all R versions

   ## # current R  |  new R
   ## # ---|--
   class(getDataPart(m1)) # integer|  numeric
   class(getDataPart(m2)) # integer|  numeric


In other words, with the above setting, the traditional
gentleperson's agreement in S and R,

  __ "numeric" sometimes conveniently means "integer" or "double"  __

will be slightly less often used ... which of course may be a
very good thing.

However, it breaks strict back compatibility also in cases where
the previous behavior may have been preferable:
After all integer vectors need only have the space of doubles.

Shall we still go ahead and do apply this change to R-devel
and then all package others will be willing to update where necessary?

As this may affect the many hundreds of bioconductor packages
using S4 classes, I am -- exceptionally -- cross posting to the
bioc-devel list.

Martin Maechler


>> On Dec 7, 2015, at 3:37 PM, Benjamin Tyner  wrote:

>>> Perhaps it is not that surprising, given that
>>> 
>>> > mode(1L)
>>> [1] "numeric"
>>> 
>>> and
>>> 
>>> > is.numeric(1L)
>>> [1] TRUE
>>> 
>>> On the other hand, this is curious, to say the least:
>>> 
>>> > is.double(as(1L, "double"))
>>> [1] FALSE
>>> 
>>>> Here's the surprising behavior:
>>>> 
>>>> x <- 1L
>>>> xx <- as(x, "numeric")
>>>> class(xx)
>>>> ## [1] "integer"
>>>> 
>>>> It occurs because the call to `as(x, "numeric")` dispatches the coerce
>>>> S4 method for the signature `c("integer", "numeric")`, whose body is
>>>> copied in below.
>>>> 
>>>> function (from, to = "numeric", strict = TRUE)
>>>> if (strict) {
>>>> class(from) <- "numeric"
>>>> from
>>>> } else from
>>>> 
>>>> This in turn does nothing, even when strict=TRUE, because that
>>>> assignment to class "numeric" has no effect:
>>>> 
>>>> x <- 10L
>>>> class(x) <- "numeric"
>>>> class(x)
>>>> [1] "integer"
>>>> 
>>>> Is this the desired behavior for `as(x, "numeric")`?
>>> 
>>> __
>>> r-de...@r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel

>> __
>> r-de...@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel

> __
> r-de...@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

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


Re: [Bioc-devel] [Rd] For integer vectors, `as(x, "numeric")` has no effect.

2015-12-12 Thread Martin Maechler
>>>>> John Chambers 
>>>>> on Fri, 11 Dec 2015 10:11:05 -0800 writes:

> Somehow, the most obvious fixes are always back-incompatible these days.
> The example intrigued me, so I looked into it a bit (should have been 
doing something else, but )

> You're right that this is the proverbial thin-edge-of-the-wedge.

> The problem is in setDataPart(), which will be called whenever a class 
extends one of the vector types.

> It does
> as(value, dataClass)
> The key point is that the third argument to as(), strict=TRUE by default. 
 So, yes, the change will cause all integer vectors to become double when the 
class extends "numeric".  Generally, strict=TRUE makes sense here and of course 
changing THAT would open up yet more incompatibilities.

> For back compatibility, one would have to have some special code in 
setDataPart() for the case of integer/numeric.

> John

> (Historically, the original sin was probably not making a distinction 
between "numeric" as a virtual class and "double" as a type/class.)

Yes, indeed.  In the mean time, I've seen more cases where
  "the change will cause all integer vectors to become double when the class  
extends "numeric". 
seems detrimental.

OTOH, I still think we could go in the right direction ---
hopefully along the wishes of bioconductor S4 development, see
Martin Morgan's e-mail:

[This is all S4 - only; should not much affect base R / S3]
Currently,   "integer" is a subclass of "numeric"  and so the
"integer become double" part seems unwanted to me.
OTOH,  it would really make sense to more formally
have the basic subclasses of  "numeric" to be "integer" and "double",
and  to let  as(*, "double") to become different to as(*, "numeric")
[Again, this is just for the S4 classes and as() coercions, *not* e.g. 
 for as.numeric() / as.double() !]

In the DEPRECATED part of the NEWS for R 2.7.0 (April 2008) we
have had

o   The S4 pseudo-classes "single" and double have been removed.
(The S4 class for a REALSXP is "numeric": for back-compatibility
as(x, "double") coerces to "numeric".)

I think the removal of "single" was fine, but in hindsight,
maybe the removal of "double" -- which was partly broken then --
possibly could rather have been a fixup of "double" along the
following

   Current "thought experiment proposal" :

   1) "numeric" := {"integer", "double"}   { class - subclasses }
   2) as(1L, "numeric")  continues to return 1L .. since integer is
 one case of "numeric"
   3) as(1L, "double")  newly returns 1.0   {and in fact would be
     "equivalent" to   as.double(1L)}

After the above change,  S4  as(*, "double") would correspond to S3 as.double
but  as(*, "numeric")  would continue to differ from
as.numeric(*), the former *not* changing integers to double.

Martin

> On Dec 11, 2015, at 1:25 AM, Martin Maechler  
wrote:

>>>>>>> Martin Maechler 
>>>>>>> on Tue, 8 Dec 2015 15:25:21 +0100 writes:
>> 
>>>>>>> John Chambers 
>>>>>>> on Mon, 7 Dec 2015 16:05:59 -0800 writes:
>> 
>>>> We do need an explicit method here, I think.
>>>> The issue is that as() uses methods for the generic function coerce() 
but cannot use inheritance in the usual way (if it did, you would be 
immediately back with no change, since "integer" inherits from "numeric").
>> 
>>>> Copying in the general method for coercing to "numeric" as an explicit 
method for "integer" gives the expected result:
>> 
>>>>> setMethod("coerce", c("integer", "numeric"), getMethod("coerce", 
c("ANY", "numeric")))
>>>> [1] "coerce"
>>>>> typeof(as(1L, "numeric"))
>>>> [1] "double"
>> 
>>>> Seems like a reasonable addition to the code, unless someone sees a 
problem.
>>>> John
>> 
>>> I guess that that some package checks (in CRAN + Bioc + ... -
>>> land) will break,
>>> but I still think we should add such a coercion to R.
>> 
>>> Martin
>> 
>> Hmm...  I've tried to add the above to R
>> and do notice that there are consequences that may be larger than
>> 

Re: [Bioc-devel] [Rd] For integer vectors, `as(x, "numeric")` has no effect.

2015-12-19 Thread Martin Maechler
>>>>> Martin Maechler 
>>>>> on Sat, 12 Dec 2015 10:32:51 +0100 writes:

>>>>> John Chambers 
>>>>> on Fri, 11 Dec 2015 10:11:05 -0800 writes:

>> Somehow, the most obvious fixes are always back-incompatible these days.
>> The example intrigued me, so I looked into it a bit (should have been 
doing something else, but )

>> You're right that this is the proverbial thin-edge-of-the-wedge.

>> The problem is in setDataPart(), which will be called whenever a class 
extends one of the vector types.

>> It does
>> as(value, dataClass)
>> The key point is that the third argument to as(), strict=TRUE by 
default.  So, yes, the change will cause all integer vectors to become double 
when the class extends "numeric".  Generally, strict=TRUE makes sense here and 
of course changing THAT would open up yet more incompatibilities.

>> For back compatibility, one would have to have some special code in 
setDataPart() for the case of integer/numeric.

>> John

>> (Historically, the original sin was probably not making a distinction 
between "numeric" as a virtual class and "double" as a type/class.)

> Yes, indeed.  In the mean time, I've seen more cases where
> "the change will cause all integer vectors to become double when the 
class  extends "numeric". 
> seems detrimental.

> OTOH, I still think we could go in the right direction ---
> hopefully along the wishes of bioconductor S4 development, see
> Martin Morgan's e-mail:

> [This is all S4 - only; should not much affect base R / S3]
> Currently,   "integer" is a subclass of "numeric"  and so the
> "integer become double" part seems unwanted to me.
> OTOH,  it would really make sense to more formally
> have the basic subclasses of  "numeric" to be "integer" and "double",
> and  to let  as(*, "double") to become different to as(*, "numeric")
> [Again, this is just for the S4 classes and as() coercions, *not* e.g. 
> for as.numeric() / as.double() !]

> In the DEPRECATED part of the NEWS for R 2.7.0 (April 2008) we
> have had

> o The S4 pseudo-classes "single" and double have been removed.
> (The S4 class for a REALSXP is "numeric": for back-compatibility
> as(x, "double") coerces to "numeric".)

> I think the removal of "single" was fine, but in hindsight,
> maybe the removal of "double" -- which was partly broken then --
> possibly could rather have been a fixup of "double" along the
> following

> Current "thought experiment proposal" :

> 1) "numeric" := {"integer", "double"}   { class - subclasses }
> 2) as(1L, "numeric")  continues to return 1L .. since integer is
> one case of "numeric"
> 3) as(1L, "double")  newly returns 1.0   {and in fact would be
> "equivalent" to   as.double(1L)}

> After the above change,  S4  as(*, "double") would correspond to S3 
as.double
> but  as(*, "numeric")  would continue to differ from
> as.numeric(*), the former *not* changing integers to double.

> Martin

Also note that e.g.

class(pi)would return "double" instead of "numeric"

and this will break all the bad programming style usages of

  if(class(x) == "numeric")

which I tend to see in gazillions of user and even package codes
This bad (aka error prone !)  because "correct" usage would be

  if(inherits(x, "numeric"))

and that of course would *not* break after the change above.

- - - - 

A week later, I'm still pretty convinced it would be worth going
in the direction proposed above. 

But I was actually hoping for some encouragement or "mental support"...
or then to hear why you think the proposition is not good or not
viable ...


>> On Dec 11, 2015, at 1:25 AM, Martin Maechler 
 wrote:

>>>>>>>> Martin Maechler 
>>>>>>>> on Tue, 8 Dec 2015 15:25:21 +0100 writes:
>>> 
>>>>>>>> John Chambers 
>>>>>>>> on Mon, 7 Dec 2015 16:05:59 -0800 writes:
>>> 
>>>>> We do need an explicit method here, I think.
>>>>> The issue is that as() uses methods for the generic function coerce() 
but cannot use inheritance in the usual way (if it did, you would be 
immediately back with no change, since "integer" inh

Re: [Bioc-devel] \donttest and the "80% of man pages documenting exported objects must have runnable examples" rule

2016-05-17 Thread Martin Maechler
>>>>> Martin Morgan 
>>>>> on Sun, 15 May 2016 14:25:01 -0400 writes:

> On 05/15/2016 02:20 PM, Dan Tenenbaum wrote:
>> 
>> 
>> - Original Message -
>>> From: "Richard Cotton"  To:
>>> "bioc-devel"  Sent: Sunday,
>>> May 15, 2016 4:45:09 AM Subject: [Bioc-devel] \donttest
>>> and the "80% of man pages documenting exported objects
>>> must have runnable examples" rule
>> 
>>> I have a package with a lot of examples in exported
>>> functions marked as \donttest.
>>> 
>>> BiocCheck doesn't count these functions towards the
>>> target of having 80% of exported objects with runnable
>>> examples.  I do have more than 80% runnable examples;
>>> it's just that BiocCheck can't see them.  (For
>>> background, the package is mostly about file import, and
>>> it takes a second or two to import the sample files
>>> included in the package. Having examples that run for a
>>> couple of seconds is fine for users, but makes package
>>> testing very slow (once dozens of the example are run).
>>> 
>>> This check is considered REQUIRED to be solved, so I'd
>>> like to know if it's OK to include an explanation about
>>> the use of \donttest during submission, or if my pacakge
>>> will just get rejected outright.
>>> 
>> 
>> 
>> Ultimately, humans make all decisions about package
>> inclusion. So you will have a chance to discuss your
>> package with someone.

> Examples traditionally have dual roles in illustrating
> functionality and testing code. It would be particularly
> favorable if you could point to other parts of your
> package where the code was tested -- unit tests via RUnit
> or testthat being a natural place, see
> http://bioconductor.org/developers/how-to/unitTesting-guidelines/
> -- and it's use illustrated -- vignettes or other
> examples.

> Martin

I also wonder *why*  you use \donttest{} so extensively.
It's clearly better than  \dontrun{}  (which really distresses
me, if used more than occasionally).

 I was involved 20 years ago ensuring that in R, almost all
help pages have examples *and* that all examples ran, and you
could use   example(<..>)  to let them run,  get quickly some
example objects into your R session, etc, etc, etc.

Hence, I've recently felt  chagrined repeatedly, seeing package
authors providing whole packages with no runnable examples..


the other Martin M
(Martin Maechler, ETH Zurich)

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


Re: [Bioc-devel] The story of tracing a derfinder bug on OSX that sometimes popped up, sometimes it didn't. Related to IRanges/S4Vectors '$<-'

2017-03-22 Thread Martin Maechler
> Andrzej Oleś 
> on Wed, 22 Mar 2017 10:29:57 +0100 writes:

> Just for the record, on R-3.3.2 Herve's code fails with the following 
error:
> Error in x[TRUE] <- new("A") :
> incompatible types (from S4 to logical) in subassignment type fix

yes, (of course) and I would be interested in a small
reproducible example which uses _valid_ code.
We have seen such examples with something (more complicated
than, but basically like)

  df <- data.frame(x=1:5, y=5:1, m=matrix(-pi*1:30, 5,6))
  M <- Matrix::Matrix(exp(0:3),2)
  df[1:2,1:2] <- M

which actually calls `[<-`, and then `[<-.data.frame`  and
always works for me but does seg.fault (in the CRAN checks of
package FastImputation (on 3 of the dozen platforms,
https://cran.r-project.org/web/checks/check_results_FastImputation.html

one of them is

 
https://www.r-project.org/nosvn/R.check/r-devel-macos-x86_64-clang/FastImputation-00check.html

I strongly suspect this is the same bug as yours, but for a case
where the correct behavior is *not* giving an error.

I have also written and shown  Herve's example  to the R-core team.

Unfortunately, I have no platform where I can trigger the bug.
Martin



> Cheers,
> Andrzej



> On Wed, Mar 22, 2017 at 1:28 AM, Martin Morgan <
> martin.mor...@roswellpark.org> wrote:

>> On 03/21/2017 08:21 PM, Hervé Pagès wrote:
>> 
>>> Hi Leonardo,
>>> 
>>> Thanks for hunting down and isolating that bug! I tried to simplify
>>> your code even more and was able to get a segfault with just:
>>> 
>>> setClass("A", representation(stuff="numeric"))
>>> x <- logical(10)
>>> x[TRUE] <- new("A")
>>> 
>>> I get the segfault about 50% of the time on a fresh R session on Mac.
>>> I tried this with R 3.3.3 on Mavericks, and with R devel (r72372)
>>> on El Capitan. I get the segfault on both.
>>> 
>>> So it looks like a bug in the `[<-` primitive to me (subassignment).
>>> 
>> 
>> Any insight from
>> 
>> R -d valgrind -f herve.R
>> 
>> where herve.R contains the code above?
>> 
>> Martin
>> 
>> 
>> 
>>> Cheers,
>>> H.
>>> 
>>> On 03/21/2017 03:06 PM, Leonardo Collado Torres wrote:
>>> 
 Hi bioc-devel,
 
 This is a story about a bug that took me a long time to trace. The
 behaviour was really weird, so I'm sharing the story in case this
 helps others in the future. I was originally writing it to request
 help, but then I was able to find the issue ^^. The story ends right
 now with code that will reproduce the problem with '$<-' from
 IRanges/S4Vectors.
 
 
 
 
 During this Bioc cycle, frequently my package derfinder has failed to
 pass R CMD check in OSX. The error is always the same when it appears
 and sometimes it shows up in release, but not devel and viceversa.
 Right now (3/21/2017) it's visible in both
 https://urldefense.proofpoint.com/v2/url?u=http-3A__biocondu
 ctor.org_checkResults_release_bioc-2DLATEST_derfinder_
 morelia-2Dchecksrc.html&d=DwIGaQ&c=eRAMFD45gAfqt84VtBcfh
 Q&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=Bw-1Kqy-M_
 t4kmpYWTpYkt5bvj_eTpxriUM3UvtOIzQ&s=RS-lsygPtDdgWKAhjA2BcSLk
 Vy9RxxshXWAJaBZa_Yc&e=
 
 and
 https://urldefense.proofpoint.com/v2/url?u=http-3A__biocondu
 ctor.org_checkResults_devel_bioc-2DLATEST_derfinder_toluca
 2-2Dchecksrc.html&d=DwIGaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3X
 eAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=Bw-1Kqy-M_
 t4kmpYWTpYkt5bvj_eTpxriUM3UvtOIzQ&s=a_K-yK7w2LEV72lpHrpp0UoK
 Rru_7Aad74T5Uk0R-Fo&e=
 .
 The end of "test-all.Rout.fail" looks like this:
 
 Loading required package: foreach
 Loading required package: iterators
 Loading required package: locfit
 locfit 1.5-9.1 2013-03-22
 getSegments: segmenting
 getSegments: splitting
 2017-03-20 02:36:52 findRegions: smoothing
 2017-03-20 02:36:52 findRegions: identifying potential segments
 2017-03-20 02:36:52 findRegions: segmenting information
 2017-03-20 02:36:52 .getSegmentsRle: segmenting with cutoff(s)
 16.3681899295041
 2017-03-20 02:36:52 findRegions: identifying candidate regions
 2017-03-20 02:36:52 findRegions: identifying region clusters
 2017-03-20 02:36:52 findRegions: smoothing
 2017-03-20 02:36:52 findRegions: identifying potential segments
 2017-03-20 02:36:52 findRegions: segmenting information
 2017-03-20 02:36:52 .getSegmentsRle: segmenting with cutoff(s)
 19.7936614060235
 2017-03-20 02:36:52 findRegions: identifying candidate regions
 2017-03-20 02:36:52 findRegions: identifying region clusters
 2017-03-20 02:36:52 findRegion

Re: [Bioc-devel] any interest in a BiocMatrix core package?

2017-11-02 Thread Martin Maechler
>>>>> "ML" == Michael Lawrence 
>>>>> on Wed, 1 Nov 2017 14:13:54 -0700 writes:

> Probably way easier to add the generics to the Matrix
> package and everyone just depends on that.

Yes!  It is 'Recommended' and comes with every R installation,
and has had many such matrix S4 methods in place for > 10 years,
notably for dealing with (large) sparse matrices.

Honestly, I (as co-maintainer of Matrix, principal maintainer
 for several years now)
had been a bit surprised and frustrated that the 'matrixStats'
initiative had started w/o any contact with the Matrix package
maintainers and initially has not ever tried to use Matrix
package classes or functionality
(and this is still the case now AFAICS).

I'm happy to coordinate with maintainers of bioc packages about
which generics (and classes !) to use and export, etc.

Best,
Martin Maechler
ETH Zurich (and R core team)



> On Wed, Nov 1, 2017 at 1:59 PM, Hervé Pagès
>  wrote:

>> That's probably a good idea but a clean solution would
>> need to involve all players, including the Matrix
>> package. Right now there are conflicts for some S4
>> generics defined in Matrix and in BiocGenerics
>> (e.g. rowSums). I'm not sure that moving rowSums from
>> BiocGenerics to a new MatrixGenerics package would
>> address this.  Unless MatrixGenerics is on CRAN and
>> Matrix depends on it ;-)
>> 
>> How likely is this to happen?
>> 
>> H.
>> 
>> 
[]

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


Re: [Bioc-devel] any interest in a BiocMatrix core package?

2017-11-02 Thread Martin Maechler
>>>>> Martin Morgan 
>>>>> on Thu, 2 Nov 2017 06:17:19 -0400 writes:

> On 11/02/2017 05:00 AM, Martin Maechler wrote:
>>>>>>> "ML" == Michael Lawrence 
>>>>>>> on Wed, 1 Nov 2017 14:13:54 -0700 writes:
>> 
>> > Probably way easier to add the generics to the Matrix >
>> package and everyone just depends on that.
>> 
>> Yes!  It is 'Recommended' and comes with every R
>> installation, and has had many such matrix S4 methods in
>> place for > 10 years, notably for dealing with (large)
>> sparse matrices.
>> 
>> Honestly, I (as co-maintainer of Matrix, principal
>> maintainer for several years now) had been a bit
>> surprised and frustrated that the 'matrixStats'
>> initiative had started w/o any contact with the Matrix
>> package maintainers and initially has not ever tried to
>> use Matrix package classes or functionality (and this is
>> still the case now AFAICS).
>> 
>> I'm happy to coordinate with maintainers of bioc packages
>> about which generics (and classes !) to use and export,
>> etc.

> One issue is that Matrix is a relatively large package
> (well, I wonder if that's a reasonable statement, given
> the Bioc dependencies and data involved, but perhaps in
> general...) and hence 'overkill' to obtain a collection of
> generics. Is there any prospect for factoring out the
> definition of the generics from implementation of the
> methods?  Re-purposing stats4 ?

> Martin Morgan

Hmm..  we have quite a few  setGenericImplicit()  statements in
the methods package already, notably for  'colSums' and friends,
and so other decent citizen packages do *NOT*  setGeneric() at
all on these ... and of course, Matrix _is_ a decent citizen in
the R package universe.

Instead of to stats4, I'm pretty sure we should only consider
what functions should be added to the implicit generics already
provided by the 'methods' package itself.

Could it be that (some of) you are not properly aware of
implicit generics?

If you start 'R --vanilla' you can say

> implicitGeneric("colSums")
standardGeneric for "colSums" defined from package "base"

function (x, na.rm = FALSE, dims = 1, ...) 
standardGeneric("colSums")


Methods may be defined for arguments: x, na.rm, dims
Use  showMethods("colSums")  for currently available ones.
-

so I think it is clear how *any* decent package has to define
methods for colSums(), and if they do, there should not be any conflicts.

I think the problem is with S3 methods, not with S4 ones, where
the implicit generics I understand where made for dealing with
several packages writing methods for the same generic without
one of the packages taking precedence.

Martin Mächler



>> 
>> Best, Martin Maechler ETH Zurich (and R core team)
>> 
>> 
>> 
>> > On Wed, Nov 1, 2017 at 1:59 PM, Hervé Pagès >
>>  wrote:
>> 
>> >> That's probably a good idea but a clean solution would
>> >> need to involve all players, including the Matrix >>
>> package. Right now there are conflicts for some S4 >>
>> generics defined in Matrix and in BiocGenerics >>
>> (e.g. rowSums). I'm not sure that moving rowSums from >>
>> BiocGenerics to a new MatrixGenerics package would >>
>> address this.  Unless MatrixGenerics is on CRAN and >>
>> Matrix depends on it ;-)
>> >>
>> >> How likely is this to happen?
>> >>
>> >> H.
>> >>
>> >>
>> []
>> 
>> ___
>> Bioc-devel@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>> 


> This email message may contain legally privileged and/or
> confidential information.  If you are not the intended
> recipient(s), or the employee or agent responsible for the
> delivery of this message to the intended recipient(s), you
> are hereby notified that any disclosure, copying,
> distribution, or use of this email message is prohibited.
> If you have received this message in error, please notify
> the sender immediately by e-mail and delete this email
> message from your computer. Thank you.

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


Re: [Bioc-devel] BioC 3.7 Windows check warning "file link zz in package yy does not exist "

2018-04-09 Thread Martin Maechler
> Ramon Diaz-Uriarte 
> on Mon, 9 Apr 2018 16:51:38 +0200 writes:

> Dear Martin,

> On Fri, 06-April-2018, at 18:59:00, Martin Morgan
>  wrote:
>> On 04/06/2018 10:44 AM, Lluís Revilla wrote:
>>> I have recently faced a similar warning.  This is when a
>>> link to a help page of another package is broken (there
>>> is not such help page). Although those could be false
>>> positives: mclapply help page does exists in parallel
>>> package.  as.MAList does exists in devel limma
>> 
>> when \link-ing to another package, from
>> RShowDoc("R-exts") section 2.5 the [] has to name the
>> html help page, not the name of the function. For
>> instance, `mclapply` is documented on a man page called
>> mcdummies.Rd (!), so '\link[parallel:mcdummies]{nearest}
>> would presumably not

> I am confused here: as far as I can tell, there is an
> mclapply.html file:

> http://stat.ethz.ch/R-manual/R-devel/library/parallel/html/mclapply.html

> In addition, when I use the \link[parallel:mcdummies] I
> get a warning when testing under Linux.


> On rereading section 2.5, I think \link[pkg]{foo} should
> work too (if there is a foo.html file.)

> Nevertheless, section 2.5 indicates that \link[pkg]{foo}
> and \link[pkg:bar]{foo} are rarely needed, so I'll try to
> remove them (except in those cases, covered in section
> 2.5, where "more than one package offers help on a topic")

Only on Windows, indeed,
mclapply() is just a dummy function, calling lapply() IIRC.

It is unfortunate that given the above you would be lead to use
different \link{}s if you are on Windows than on non-Win...

This would be a good question on the   R-package-devel   mailing
list.

Martin


>> generate the warning. Similarly
>> \link[limma:asmalist]{as.MAList}.
>> 
>> There are several things that still need exploration.
>> 
>> - platform-specific (I have a vague understanding that
>> Windows is special, but that might be outdated... [at
>> least in this context...])
>> 

> I am only getting the warnings under Windows (which lead
> me to think it was windows misbehaving).


>> - recent. I have to admit to changing the text of the
>> warning with this commit
>> 
>> 
>> 
https://github.com/wch/r-source/commit/cbd7ca1b1aedf0405e11ee2440fbde891cba524e
>> 
>> but what I was intending to do was to change what it
>> says, from the warning in release ('missing file link')
>> to what it says, correctly, in devel 'file link ... does
>> not exist and so has been treated as a topic'.  The old
>> text appears in release, and the new in devel, as
>> anticipated.  If I messed up somehow please let me
>> know...
>> 
>> - even with the warning, the link isn't broken in the
>> dynamic help system (it might have been broken prior to
>> my commit...).

> OK, thanks.

> Best,


> R.


>> 
>> Martin
>> 
>>> 
>>> HTH
>>> 
>>> On 6 April 2018 at 16:35, Vincent Carey
>>>  wrote:
>>> 
 ive seen this too apropos bigrquery on windows
 
 On Fri, Apr 6, 2018 at 10:22 AM Ramon Diaz-Uriarte
  wrote:
 
> 
> Dear All,
> 
> Two packages I maintain are showing, in Windows, a
> warning during check with messages like
> 
> Rd warning:
> 
C:/Users/biocbuild/bbs-3.7-bioc/tmpdir/Rtmp21WlQD/R.INSTALL23343f935731/
 OncoSimulR/man/oncoSimulIndiv.Rd:570:
> file link 'mclapply' in package 'parallel' does not
> exist and so has been treated as a topic
> 
> or
> 
> Rd warning:
> C:/Users/biocbuild/bbs-3.7-bioc/tmpdir/RtmpQfQaA1/R.
 INSTALL1ec81d5b6233/ADaCGH2/man/inputToADaCGH.Rd:45:
> file link 'as.MAList' in package 'limma' does not
> exist and so has been treated as a topic
> 
> 
> 
> that I cannot reproduce under Linux and that I think
> are false positives. Is there a way to avoid this
> warning? As far as I can tell, those links really
> exist.
> 
> Best,
> 
> 
> R.
> 
> --
> Ramon Diaz-Uriarte Department of Biochemistry, Lab
> B-25 Facultad de Medicina Universidad Autónoma de
> Madrid Arzobispo Morcillo, 4 28029 Madrid Spain
> 
> Phone: +34-91-497-2412
> 
> Email: rdia...@gmail.com ramon.d...@iib.uam.es
> 
> http://ligarto.org/rdiaz
> 
> ___
> Bioc-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
> 
 
 [[alternative HTML version deleted]]
 
 ___
 Bioc-

Re: [Bioc-devel] Pushing towards a better home for matrix generics

2019-01-29 Thread Martin Maechler
> Michael Lawrence 
> on Mon, 28 Jan 2019 19:00:59 -0800 writes:

> I agree (2) is a good compromise. CC'ing Martin for his
> perspective.  Michael

Hmm  there's quite a bit more it, really:

I'd not be unwilling to do so myself, but in the long history of
Matrix development -- most of which has happened quite a few
years ago,
I had come to the pretty strong conclusion that you should *NOT*
do setGeneric() for functions in base R, but rather use 
*implicit* generics in the methods package, and then in Matrix
only do setMethod() on those.. 

E.g., this commit to R's sources of the methods package:

r49869 | maechler | 2009-09-29 10:34:48 +0200 (Tue, 29 Sep 2009) | 1 line

make chol2inv, rcond, (col|row)(Means|Sums) implicit Generics

had made  rowSums etc into implicit generic,
to be used in Matrix but in other packages as well,
the whole idea being that this would be "the best way", at least
according to knowledge back then, including advice from John
Chambers, unless my memory is wrong.

Having many "base R" functions be implicit generics via the
methods package  has been *the* approach to achieve most
interoperability between different R package and been strongly
recommended by John Chambers, e.g., at the time.

In "vanilla" R, only standard packages loaded, including
'methods' of course, calling  implicitGeneric("colSums")  gives

  > implicitGeneric("colSums")
  standardGeneric for "colSums" defined from package "base"

  function (x, na.rm = FALSE, dims = 1, ...) 
  standardGeneric("colSums")
  
  
  Methods may be defined for arguments: x, na.rm, dims
  Use  showMethods("colSums")  for currently available ones.
  > 

And it seems you would want to limit dispatch to 'x' and hence
have the following line in the above be changed from
   Methods may be defined for arguments: x, na.rm, dims
to
   Methods may be defined for arguments: x

We should probably move this to R-devel -- as it indeed it
concerns code more in R than in Matrix, I think.

Martin

> On Mon, Jan 28, 2019 at 6:58 PM Pages, Herve
>  wrote:
>> 
>> Hi Aaron,
>> 
>> The 4 matrix summarization generics currently defined in
>> BiocGenerics are defined as followed:
>> 
>> setGeneric("rowSums", signature="x")
>> setGeneric("colSums", signature="x")
>> setGeneric("rowMeans", signature="x")
>> setGeneric("colMeans", signature="x")
>> 
>> The only reason for having these definitions in
>> BiocGenerics is to restrict dispatch the first
>> argument. This is cleaner than what we would get with the
>> implicit generics where dispatch is on all arguments (it
>> doesn't really make sense to dispatch on toggles like
>> 'na.rm' or 'dims'). Sticking to simple dispatch when
>> possible makes life easier for the developer (especially
>> in times of troubleshooting) and for the user (methods
>> are easier to discover and their man pages easier to
>> access).
>> 
>> However, the 4 statements above create new generics that
>> mask the implicit generics defined in the Matrix package
>> (Matrix doesn't contain any setGeneric statements for
>> these generics, only setMethod statements). This is a
>> very unsatisfying situation and it has hit me repeatedly
>> over the last couple of years.
>> 
>> We have basically 3 ways to go. From simpler to more
>> complicated:
>> 
>> 1) Give up on single dispatch for these generics. That
>> is, we remove the 4 statements above from
>> BiocGenerics. Then we use setMethod() in package code
>> like Matrix does.
>> 
>> 2) Convince the Matrix folks to put the 4 statements
>> above in Matrix.  Then any BioC package that needs to
>> define methods for these generics would just need to
>> import them from the Matrix package. Maybe we could even
>> push this one step further by having BiocGenerics import
>> and re-export these generics. This would make them
>> "available" in BioC as soon as the BiocGenerics is loaded
>> (and any package that needs to define methods on them
>> would just need to import them from BiocGenerics).
>> 
>> 3) Put the 4 statements above in a MatrixGenerics
>> package. Then convince the Matrix folks to define methods
>> on the generics defined in MatrixGenerics. Very unlikely
>> to happen!
>> 
>> IMO 2) is the best compromise. Want to give it a shot?
>> 
>> H.
>> 
>> 
>> On 1/27/19 13:45, Aaron Lun wrote: > This is a
>> resurrection of some old threads:
>> >
>> >
>> 
https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_pipermail_bioc-2Ddevel_2017-2DNovember_012273.html&d=DwIDaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=O21AQgvbUp3XRwM4jf0WeZA2ePj9yT3fc2

Re: [Bioc-devel] Pushing towards a better home for matrix generics

2019-01-29 Thread Martin Maechler
> Michael Lawrence 
> on Mon, 28 Jan 2019 20:47:58 -0800 writes:

> That will have some consequences; for example,
> documentation aliases will need to change. Not sure how
> many packages will need to be fixed outside of Matrix, but
> it's not an isolated change. Martin might comment on the
> rationale for the full signature, since he defined those
> generics.

> On Mon, Jan 28, 2019 at 7:21 PM Pages, Herve
>  wrote:
>> 
>> Actually there is a 4th solution which is to modify the
>> definition of the implicit generics in the methods
>> package (file makeBasicFunsList.R) to make them dispatch
>> on their 1st arg only. Should be easy. Then no package
>> will need to use a setGeneric statement
>> anymore. Everybody will automatically get a clean
>> implicit generic. Including the Matrix package which
>> shouldn't need to be touched (except maybe for some
>> aliases in its man page that might need to be changed
>> from \alias{colSums,dgCMatrix,ANY,ANY-method} to
>> \alias{colSums,dgCMatrix-method}).
>> 
>> Anybody wants to try to make a patch for this?

>> H.

I've already replied without having read the above two messages.
In my reply I had indeed more or less argued as Hervé does above.

Michael, Hervé, .. : Why is it really so much better to disallow
dispatch for the other compulsory arguments?
Dispatch there allows to use methods for class "missing" which
is nicer in my eyes than the traditional default argument + missing() "tricks".

Is it mainly speed you are concerned about.  If yes, do we have
data (and data analysis) about performance here?

Martin

>> 
>> On 1/28/19 19:00, Michael Lawrence wrote: > I agree (2)
>> is a good compromise. CC'ing Martin for his perspective.
>> >
>> > Michael
>> >
>> > On Mon, Jan 28, 2019 at 6:58 PM Pages, Herve
>>  wrote: >> Hi Aaron,
>> >>
>> >> The 4 matrix summarization generics currently defined
>> in BiocGenerics >> are defined as followed:
>> >>
>> >> setGeneric("rowSums", signature="x") >>
>> setGeneric("colSums", signature="x") >>
>> setGeneric("rowMeans", signature="x") >>
>> setGeneric("colMeans", signature="x")
>> >>
>> >> The only reason for having these definitions in
>> BiocGenerics is to >> restrict dispatch the first
>> argument. This is cleaner than what we would >> get with
>> the implicit generics where dispatch is on all arguments
>> (it >> doesn't really make sense to dispatch on toggles
>> like 'na.rm' or >> 'dims'). Sticking to simple dispatch
>> when possible makes life easier for >> the developer
>> (especially in times of troubleshooting) and for the user
>> >> (methods are easier to discover and their man pages
>> easier to access).
>> >>
>> >> However, the 4 statements above create new generics
>> that mask the >> implicit generics defined in the Matrix
>> package (Matrix doesn't contain >> any setGeneric
>> statements for these generics, only setMethod >>
>> statements). This is a very unsatisfying situation and it
>> has hit me >> repeatedly over the last couple of years.
>> >>
>> >> We have basically 3 ways to go. From simpler to more
>> complicated:
>> >>
>> >> 1) Give up on single dispatch for these generics. That
>> is, we remove the >> 4 statements above from
>> BiocGenerics. Then we use setMethod() in package >> code
>> like Matrix does.
>> >>
>> >> 2) Convince the Matrix folks to put the 4 statements
>> above in Matrix.  >> Then any BioC package that needs to
>> define methods for these generics >> would just need to
>> import them from the Matrix package. Maybe we could >>
>> even push this one step further by having BiocGenerics
>> import and >> re-export these generics. This would make
>> them "available" in BioC as >> soon as the BiocGenerics
>> is loaded (and any package that needs to define >>
>> methods on them would just need to import them from
>> BiocGenerics).
>> >>
>> >> 3) Put the 4 statements above in a MatrixGenerics
>> package. Then convince >> the Matrix folks to define
>> methods on the generics defined in >>
>> MatrixGenerics. Very unlikely to happen!
>> >>
>> >> IMO 2) is the best compromise. Want to give it a shot?
>> >>
>> >> H.
>> >>
>> >>
>> >> On 1/27/19 13:45, Aaron Lun wrote: >>> This is a
>> resurrection of some old threads:
>> >>>
>> >>>
>> 
https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_pipermail_bioc-2Ddevel_2017-2DNovember_012273.html&d=DwIDaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=O21AQgvbUp3XRwM4jf0WeZA2ePj9yT3fc2X5hOsKNJk&s=pcpUyjpkQe6U79lZ_n2SANNp6Zj_s6i1Sq2yZx2NSjw&e=
>> >>>
>> >>>
>> 
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Bioconductor_

Re: [Bioc-devel] Pushing towards a better home for matrix generics

2019-01-29 Thread Martin Maechler
>>>>> Pages, Herve 
>>>>> on Tue, 29 Jan 2019 16:44:47 + writes:

> Hi Martin.  Speed is not the concern: I just did some
> quick benchmarking and didn't observe any significant
> difference in method dispatch performance after doing
> setGeneric("toto", function(x, a=0, b=0, c=0)
> standardGeneric("toto")) vs doing setGeneric("toto",
> signature="x", function(x, a=0, b=0, c=0)
> standardGeneric("toto")).

> Here is the real concern to me:

> Aliases of the form
> \alias{colSums,dgCMatrix,ANY,ANY-method} are a real pain
> to maintain. It's also a pain for the end user to have to
> do ?`colSums,dgCMatrix,ANY,ANY-method` to access the man
> page for a particular method. I know Matrix uses "short"
> aliases i.e. aliases of the form
> \alias{colSums,dgCMatrix-method} so the user only needs to
> do ?`colSums,dgCMatrix-method` but there is a lot of
> fragility to the situation.

> Here is why: The exact form that needs to be used for
> these aliases can change anytime depending on what happens
> in one of the upstream packages (not a concern for the
> Matrix package because no upstream package defines colSums
> methods). More precisely: If all the colSums methods
> defined in the upstream packages and in my own package are
> defined with setMethod statements of the form:

>     setMethod("colSums", signature(x="SomeClass"), ...)

> then the aliases in the man pages must be of the form
> \alias{colSums,SomeClass-method} and the end user can just
> do ?`colSums,SomeClass-method`, which is good. But if
> **one** upstream package decides to use a setMethod
> statement of the form:

>    setMethod("colSums", signature(x="SomeClass",
> na.rm="ANY", dims="ANY"), ...)

> then the aliases for **all** the colSums methods in
> **all** the downstream packages now must be of the form
> \alias{colSums,SomeOtherClass,ANY,ANY-method}, even if the
> method for SomeOtherClass is defined with
> signature(x="SomeOtherClass"). 

Hmm... but to me, the behavior you describe in the above paragraph
seems rather an implementation "infelicity" in R's help / documentation system,
than an intrinsic necessity.  Or have you thought more about
this and discussed it with other S4 experts (John Chambers,
Michael L., Martin Morgan, ...)  and came to a different conclusion?

Very generally:

  Just because the documentation (help system)
  rules are implemented as they are should *NOT* influence "the
  best way" to program things in R. 

and particularly for something such as S4 which has been adapted
and tuned for a long time ...

So, rather the documentation "setup" should adapt to what seems
best from an R coding point of view.

More specifically, if we are allowed to use short signatures in R code, i.e.,
  signature(x=)
short for
  signature(x=, na.m="ANY", dims="ANY")

then the documentation \alias{} should allow to use the same
principle, as the documentation / help "keys" which \alias{.} constructs
will be similarly uniquely determined
(at least as long as other packages do not describe methods for
 "my" )

So, the help / documentation (and "R CMD check" checks) should
have been changed long ago, if you had sent patches to do so,
n'est-ce pas?   :-) ;-)  [[yes, half jokingly]].

Martin

> Also, as a consequence, now
> the end user has to use the long syntax to access the man
> pages for these methods. And if later the author of the
> upstream package decides to switch back to the
> setMethod("colSums", signature(x="SomeClass"), ...) form,
> then I have to switch back all the aliases in all my
> downstream packages to the short form again!

> This fragility of the alias syntax was one of the
> motivations for me to put many setGeneric statements of
> the form setGeneric("someGeneric", signature="x") in
> BiocGenerics over the years. So I don't have many dozens
> of aliases that suddenly break for mysterious reasons ('R
> CMD check' would suddenly starts reporting warnings for
> these aliases despite no changes in my package or in R).

> Best,

> H.

> On 1/29/19 03:16, Martin Maechler wrote:
>>>>>>> Michael Lawrence on Mon, 28 Jan 2019 20:47:58 -0800
>>>>>>> writes:
>> > That will have some consequences; for example, >
>> documentation aliases will need to change. Not 

Re: [Bioc-devel] use -Wa, -mbig-obj -O3 when building package under Windows

2019-05-28 Thread Martin Maechler
>>>>> Kasper Daniel Hansen 
>>>>> on Fri, 24 May 2019 10:31:31 -0400 writes:

> [ This is a crazy bug where you have to increase optimization. ]
> I some to add here. I am involved in at least two packages which requires
> overriding the optimization switch to downgrade optimization. You have an
> additional problem where you need to add additional flags.

> The solution in affxparser (see the source) is a custom compiler call 
where
> we place -O0 before the system/package compiler flags. This is not a great
> solution as it assumes that the compiler knows about -O notation (which is
> true for GCC but not a true assumption everywhere).

> In Rgraphviz I have the same problem (but not solved yet because of ...
> time). The issue here is that recent GCCs (v8 and higher) cannot be used
> with -O3 but needs -O2. I have started to think about a better solution
> than affxparser, to be used by the community, but have been a bit stumped.
> Preferably I would like to use autoconf macro for detecting GCC, but when
> we compile a package we are using the compiler encoded in R (aka $CC). So
> somehow I want to run autoconf "detect which compiler is used" but for a
> specific compiler. This is probably possible, but I don't know how right
> now.

> Then, conditional on GCC I plan to do a regex which replaces -O3 with -O2.
> This is not perfect either because the different -O3 optimizations can be
> supplied as individual flags, and I don't know which flag it is which
> breaks GCC. But it is must closer to the right solution. I don't know if
> regex/sed'ing is better than overriding by changing the order as in
> affxparser, but having the ability to do a conditional in Makevars would 
be
> good. Of course, the autoconf route does not address Windows, but I think
> we can assume / count on the fact that the RTools pipeline is used (aka, 
it
> is always GCC).

> I would be happy to communicate more on this, to get this sorted out. It
> has been a todo list item for me, for a while, and I should really try to
> resolve it.

> But for a quick fix, look at affxparser.

> Best,
> Kasper

Dear Kasper,
maybe you could ask about this "over at"  the R-devel (or
R-package-devel ?) mailing list?
These problems are relevant to many R package authors not just
bioconductor ones, and so it may worth to expose this to even
more experts than here ...

(I'm interested myself, as you may remember, because of our need
 for a working 'Rgraphviz' ...)

Best,
Martin
--
Martin Maechler
ETH Zurich  and  R Core Team

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


Re: [Bioc-devel] Reference manual as HTML

2019-09-26 Thread Martin Maechler
>>>>> Martin Morgan 
>>>>> on Wed, 25 Sep 2019 21:10:24 + writes:

> Our recollection is that there is no 'flag' in R CMD build to create HTML 
rather than PDF vignettes; without that it would be non-trivial to create html 
output, e.g., links across pages. (I *think* the installed package html help 
pages are generated on the fly...)

Yes, by default.
But you may (or not) remember that for R itself, I (and my
university, ETH Zurich) have provided static HTML help pages and
manuals since "forever" -> https://stat.ethz.ch/R-manual/
and my cron job that creates (and daily updates) them "starts
with"

  ../R/configure --with-prebuilt-html

As it does provide static html help pages for all "base R" +
Recommended packages,

 see, e.g., https://stat.ethz.ch/R-manual/R-devel/doc/html/packages.html

it should not be hard to have it do the same for all other
packages in principle.

"The other R Core" Martin

Martin Maechler
ETH Zurich


> What is your experience with pkgdown?

> Martin

> On 9/25/19, 9:44 AM, "Bioc-devel on behalf of Laurent Gatto" 
 
wrote:

> I think this would be very useful. This is one of the reasons I create 
pkgdown sites for my packages: manual pages, news and html vignettes are 
readily available for all (including me) to browse.

> Best wishes,

> Laurent

> 
> From: Bioc-devel  on behalf of Ludwig 
Geistlinger 
> Sent: 25 September 2019 13:31
> To: bioc-devel@r-project.org
> Subject: [Bioc-devel] Reference manual as HTML

> Dear Bioc-Team,


> I repeatedly wondered whether it would be possible to display the 
reference manual
> as HTML instead of PDF on a package's landing page. This is already 
possible for vignettes.

> HTML reference manuals have at least two advantages:

> 1. links to functions of other package in the man pages of my package 
would
> actually work. Links to functions / classes of other packages of the form

> \code{\link{p.adjust}}

> or

> \code{\linkS4class{SummarizedExperiment}}

> within the pdf reference manual currently point nowhere (bring me back to 
the
> first page of the pdf). Within the html reference manual

> help(package="myPackage", help_type="html")

> these links work as expected, ie bring me to the help pages of functions 
/ classes
> of other packages.

> 2. I could easily refer users to the documentation link of a specific 
function
> (without them having to search through the pdf) such as "check the 
documentation of
> the DESeq function here: https://rdrr.io/bioc/DESeq2/man/DESeq.html";.

> (where the link would be preferably: 
bioconductor.org/packages/DESeq2/man/DESeq.html).


> Thank you,

> Ludwig

> [[alternative HTML version deleted]]

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

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

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

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


Re: [Bioc-devel] Compatibility of S4 and tidyverse

2020-02-06 Thread Martin Maechler
> Michael Lawrence via Bioc-devel 
> on Wed, 5 Feb 2020 20:52:52 -0800 writes:

> Yep that about sums it up.

:-) ;-)

Thank you, Michael !!
I haven't laughed  as much from reading e-mails in a long while !!

Martin


> On Wed, Feb 5, 2020 at 8:37 PM Stefano Mangiola 

> wrote:

{an empty message}

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


> -- 
> Michael Lawrence
> Senior Scientist, Bioinformatics and Computational Biology
> Genentech, A Member of the Roche Group
> Office +1 (650) 225-7760
> micha...@gene.com

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


Re: [Bioc-devel] Subscription to the list problem

2020-06-11 Thread Martin Maechler
>>>>> ELENI ADAM 
>>>>> on Tue, 9 Jun 2020 17:24:49 -0400 writes:

> Hello, I have tried multiple times to subscribe to the
> bioc-devel list by filling out the web form
> (https://stat.ethz.ch/mailman/listinfo/bioc-devel) but I
> have never received a confirmation email (I have checked
> the Spam folder as well). After checking again, I am still
> not in the list.

> I am not sure what the problem is. Could you please help
> me? Is there another way of subscribing to the list?

Did you also fill the 'Captcha' ?

This had been an important addition for security;  as we had
spammers (auto-) subscribing to some of the R mailing lists, and
then spamming whoever *posted* to the list (and reusing their
subject and other tricks as to pass any spam filters).

Last but not least:  You *are* subscribed to the list now.

Best regards,
Martin

> Thank you, Eleni

>   [[alternative HTML version deleted]]


Martin Maechler
ETH Zurich  and  R Core Team

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


Re: [Bioc-devel] S4 Methods Documentation Convention Triggers Warnings

2022-11-30 Thread Martin Maechler
> Michael Lawrence \(MICHAFLA\) via Bioc-devel 
> on Mon, 28 Nov 2022 12:11:00 -0800 writes:

> It may be worth revisiting why we arrived at this convention in the first
> place and see whether the Rd system can be enhanced somehow so that we can
> achieve the same effect with a more natural syntax.

> Michael


Yes, I agree.

It may be that in the distant past, Henrik's suggestion
(a version of which I am using myself a lot in *.Rd -- mostly
 *not* related to S4)
did not work correctly, but I know it has worked for years now,
as I use it "all the time".
and not just I.

If I grep in R's *base* package alone,

inside ./R/src/library/base/man/

grep --color -nH --null -e '\\item{\\code{' *.Rd

starts with

agrep.Rd42:  \item{\code{cost}:}{maximum number/fraction of match cost
agrep.Rd44:  \item{\code{all}:}{maximal number/fraction of \emph{all}
agrep.Rd46:  \item{\code{insertions}:}{maximum number/fraction of 
insertions}

gives *many* matches for the  base/man/options.Rd page
and (in Emacs where I use the very powerful M-x grep ) end saying

  Grep finished with 265 matches found at Wed Nov 30 12:25:01


Martin


> On Mon, Nov 28, 2022 at 11:25 AM Deepayan Sarkar 

> wrote:

>> On Sun, Nov 27, 2022 at 12:30 PM Dario Strbenac via Bioc-devel <
>> bioc-devel@r-project.org> wrote:
>> 
>> > Good day,
>> >
>> > For a long time, it has been a convention to document S4 methods in the
>> > format:
>> >
>> > \section{Displaying}{
>> >   In the code snippets below, \code{x} is a GRanges object.
>> >   \describe{
>> > \item{}{
>> >   \code{show(x)}:
>> >   Displays the first five and last five elements.
>> > }
>> >   }
>> > }
>> >
>> > In R Under Development, this is now a warning:
>> >
>> > * checking Rd files ... WARNING
>> > checkRd: (5) GRanges-class.Rd:115-165: \item in \describe must have
>> > non-empty label.
>> >
>> 
>> > This affects my own package as well as the core Bioconductor packages
>> > which I used as inspiration for designing my pacakge documentation 
seven
>> > years ago. What should the new convention be? Or could R developers be
>> > convinced to get rid of this check before this prototype is released?
>> >
>> 
>> The warning is primarily meant for \items inside \arguments, as in HTML
>> output these now have an id that can be used to link to specific 
arguments.
>> The code is shared with \describe, which is why the warning is showing up
>> here.
>> 
>> So I guess it might be possible to fine-tune the warning to accept this
>> kind of usage inside \describe. But I think this is a horrible
>> "convention", and unless this is really widespread that wouldn't be my
>> first choice.
>> 
>> An alternative to Henrik's suggestion is to just use \itemize instead of
>> \describe and drop  the first {} after \item.
>> 
>> Best,
>> -Deepayan
___
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel


Re: [Bioc-devel] BiocManager::install

2023-05-09 Thread Martin Maechler
>>>>> Wolfgang Huber 
>>>>> on Sun, 7 May 2023 14:29:37 +0200 writes:

> Hi Martin As you correctly point out, Bioconductor package
> developers are probably not those with the most relevant
> use cases. I think there are use cases for everyone
> else—anyone who decides to write code on R-devel, for
> whatever reason, and just wants to use a Bioconductor
> package between mid-April to mid-October (they could
> develop for CRAN, or just be a user and write scripts and
> packages for a private project). There are many useful
> packages on Bioconductor that are of general interest,
> even for people whose work does not center around
> Bioconductor or biology (say, ggtree, rhdf5,
> sparseMatrixStats, EBImage, …)

> I added these ponderings also to
> https://github.com/Bioconductor/pkgrevdocs/issues/108

> Thanks and best wishes Wolfgang

As the older ones among you know, I've been a BioC developer
only many years ago ('hexbin' e.g.), but as an R package
maintainer and co-maintainer and R Core team member,
I really like to chime in here, declaring that it *has* been
quite painful for me over the years to test CRAN packages which
depend on BioC packages - with R-devel -- which is my primary R
version for testing, notably also for testing potential changes in R
across many packages, etc.
Notably during this half of the year where there is no
"official" way how to correctly install current Bioconductor packages 
(in their own package library, as I always do) under R-devel.

If I'd be able to sum up the time lost over this issue for the last say 10
years, it would add to a full working day at least. ...

(and I have added a comment also in the above issue #108)


> (PS in my particular case yesterday, it was just that my
> R-devel is better maintained (built from source etc) and
> has in its library some (non-BioC) packages with complex
> systems dependencies that I need for a workflow I am
> working on, packages that currently elude me on my binary
> installation of R4.3. And then in addition I just wanted
> to *use* a package from Bioconductor and didn’t like how
> clumsy that experience was.)

My other experience is that I always have to help people in my
group to install our pcalg CRAN package because it depends
e.g. on Bioc packages 'graph' and 'Rgraphviz' .. and on their
laptops they somehow don't have the correct  getOption("repos")
or there are other reasons why install.packages('pcalg')
does not find its Bioc dependencies.
On our Linux desktop+server environment, I do setup
options(repos = )
such that everything works .. but alas, also *not* when in
R-devel but when you develop a package for CRAN / or only just
follow the more wide recommendation to also check your package
with current R-devel, then non-expert package developers need a
lot of stamina if their package depends (directly or
recursively) on a Bioc package
which is really unfortunate and tends to put the Bioconductor
project in a shady light it really has not deserved at all!

Martin

--
Martin Maechler
ETH Zurich  and  R Core team
  


>> Il giorno 06.05.2023, alle ore 16:45, Martin Morgan
>>  ha scritto:
>> 
>> I opened two issues for further discussion of the
>> technical aspects.
>> https://github.com/Bioconductor/BiocManager/issues/165
>> https://github.com/Bioconductor/pkgrevdocs/issues/108
>> Just to be clear, as noted at the end of the second issue
>> and on the web page you mention, a Bioconductor package
>> developer wishing to use 'Bioc-devel' should, during the
>> mid-April to mid-October release cycle, be using the
>> **release** version of R. This combination of R and
>> Bioconductor is supported by BiocManager. Similarly, in
>> the mid-October to mid-April release cycle, the
>> Bioconductor developer should be R-devel, and BoicManager
>> supports this, too.  There are scenarios where a
>> developer might wish to combine R-devel and Bioc-devel in
>> the mid-May, to mid-October time frame, e.g., when
>> developing a CRAN package with Bioconductor dependencies,
>> or when conscientiously testing CRAN packages that depend
>> on Bioconductor packages. One may also just want to be on
>> the bleeding edge, so using R-devel and living with any
>> consequence that arise from R / Bioconductor version
>> mismatches. Are these less-common scenarios the one that
>> you are engaged in?  Martin From: Bioc-devel
>>  on behalf of Wolfgang
>> Huber  Date: Saturday, May 6,
>> 2023 at 

Re: [Bioc-devel] issue with .local() hack used in S4 methods

2023-05-19 Thread Martin Maechler
> Hervé Pagès 
> on Fri, 19 May 2023 11:43:50 -0700 writes:

> Hi,

> Just ran across this:

>     foo <- function(x, ..., z=22) z

>     setMethod("foo", "character", function(x, y=-5, z=22) y)
>     # Creating a generic function from function ‘foo’ in the global 
> environment

> Then:

>     foo("a")
>     # [1] 22

> Should return -5, not 22.

> That's because the call to .local() used internally by the foo() method 
> does not name the arguments placed after the ellipsis:

>> selectMethod("foo", "character")
> Method Definition:

> function (x, ..., z = 22)
> {
>     .local <- function (x, y = 5, z = 22)
>     y
>     .local(x, ..., z)  <--- should be .local(x, ..., z=z)
> }

> Thanks,
> H.


>> sessionInfo()
> R version 4.3.0 (2023-04-21)
  [...]

I can confirm this *bug*  (also in R 4.2.z, R 4.1.z, R 3.6.3).

One might be tempted to say this falls into the
  "Doctor, it hurts when I do this --- then, don't do that!"
category.

Maybe a simple way to fix the would be to  forbid the  '...'
in S4 generics and methods apart from at the end,
or then make sure that after the ...  in the .local() call, all
argument must be named  {{as you suggest above}}.

Could you file a bug at R's bugzilla?
{I know we have too many open bugs there, notably related to S4,
 but still you'd do a service to the R community.}

Best,
Martin




> -- 
> Hervé Pagès

> Bioconductor Core Team
> hpages.on.git...@gmail.com

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

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


Re: [Bioc-devel] [Rd] is.atomic(NULL) will become FALSE

2023-09-26 Thread Martin Maechler
I've sent a longish post to the R-devel mailing list with this
topic here:
https://stat.ethz.ch/pipermail/r-devel/2023-September/082892.html

In the mean time, the plan is to effectuate the change in
R-devel (the in-development version of R) on Sep.28, ~ 9:30 CEST ( =UTC+2)

AFAIK, this will only affect bioconductor packages *after* the
upcoming release of BioC ... when they will all begin to run /
be tested "against R-devel".

But if you use CI / R-bug / rocker / ... tests for your packages
using the development version of R,  this may affect some of
your bioconductor packages already sooner.

Best regards,
Martin

--
Martin Maechler
ETH Zurich  and  R Core team

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


Re: [Bioc-devel] "R CMD check" and par(mfrow=…) in vignettes

2013-08-07 Thread Martin Maechler
>>>>> Martin Morgan 
>>>>> on Wed, 7 Aug 2013 05:14:35 -0700 writes:

> On 08/06/2013 05:25 AM, Wolfgang Huber wrote:
>> Hi
>> 
>> one of my packages [1] has several places in its vignette where 
multi-panel figures are generated via the likes of "par(mfrow=c(4,2))" within 
<> code chunks. The package builds fine with 'R CMD build', and the 
vignette builds fine when calling Sweave manually. However, 'R CMD check' fails 
with
>> * checking running R code from vignettes ...
>> ‘Hiiragi2013.Rnw’ ... failed
>> ERROR
>> Errors in running code in vignettes:
>> [..snip..]
>> When sourcing ‘Hiiragi2013.R’:
>> Error: figure margins too large
>> 
>> I believe this is because R CMD check calls Stangle on the .Rnw and then 
sources the .R file disregarding any device size settings. I can think of 
several ways to work around this, but this seems like a rather basic deficiency 
of the current system that asks for a more generic answer. Does anybody have 
any insight here?
>> 

> I guess these qualify as work-arounds

> 1. From ?RweaveLatex, \setkeys{Gin}{width=\textwidth} though this doesn't 
> actually help much

> 2. par(mfrow=c(7,5), mar=par("mar")/2)

> 3. output to pdf and then include separately

> <>=
> pdf("foo.pdf", ...)
> ...
> dev.off()
> @
> \includgegraphics{foo}

Ok though
I'd find '3.' extremely ugly;  '1.' is what I'd use anyway, but
as you say, it may not be sufficient.

I'm indirectly using a better version of '2.', namely
I extensively use  
sfsmisc::mult.fig()
instead of any par(mfrow= .) or par(mfcol= .)
but than I'm the author of that utility function...

What I really recommend is taking this to R-devel,
in spite of *some* people there, and their vitriolic way of
e-talking..

Martin Maechler


> Not sure what you had in mind for a generic solution?
> Martin

>> Best wishes
>> Wolfgang
>> 
>> PS I am sorry if this has been discussed elsewhere, but digging in the 
R-exts manual and in Google did not turn up a solution for me.
>> 
>> [1] https://hedgehog.fhcrc.org/bioc-data/trunk/experiment/pkg/Hiiragi2013
>> ___
>> Bioc-devel@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>> 


> -- 
> Computational Biology / Fred Hutchinson Cancer Research Center
> 1100 Fairview Ave. N.
> PO Box 19024 Seattle, WA 98109

> Location: Arnold Building M1 B861
> Phone: (206) 667-2793

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

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


Re: [Bioc-devel] Struggles with correct import .....

2013-12-03 Thread Martin Maechler
> Kasper Daniel Hansen 
> on Wed, 20 Nov 2013 15:37:00 -0500 writes:

> Ok, I analyzed the package using codetoolsBioC and there
> were a number of missing imports, including what Leonardo
> has described.  I have fixed those in bumphunter 1.3.3

> Kasper

Impressing and interesting.   I don't see  'codetoolsBioC' to be
available via biocLite().

What's the recommended way to have it among the bioconductor
packages ?

Martin

> On Wed, Nov 20, 2013 at 3:28 PM, Kasper Daniel Hansen <
> kasperdanielhan...@gmail.com> wrote:

>> I'll have a look.
>> 
>> Basically, issues such as this is never the end-users
>> problem and is likely to either be caused by bumphunter
>> not importing correctly (most likely) or IRanges not
>> exporting correctly.
>> 
>> Kasper
>> 
>> 
>> On Wed, Nov 20, 2013 at 3:02 PM, Leonardo Collado Torres
>> < lcoll...@jhsph.edu> wrote:
>> 
>>> Hello,
>>> 
>>> Found how to solve this. Basically, the NAMESPACE of the
>>> bumphunter package is not complete (I think).
>>> 
>>> I downloaded
>>> 
>>> 
http://bioconductor.org/packages/release/bioc/src/contrib/bumphunter_1.2.0.tar.gz
>>> , changed the version to 1.2.1 and added/modified the
>>> following lines to the NAMESPACE:
>>> 
>>> importFrom(IRanges, IRanges, distance,
>>> distanceToNearest, subjectHits)
>>> importMethodsFrom(GenomicRanges, seqnames, sort, strand,
>>> elementMetadata)
>>> 
>>> Once bumphunter was importing IRanges::distance, I got
>>> past the error I reported. Then I found other errors
>>> related to bumphunter not importing the GenomicRanges
>>> strand and elementMetadata functions, as well as the
>>> IRanges distanceToNearest, IRanges and subjectHits
>>> functions.
>>> 
>>> Best, Leo
>>> 
>>> 
>>> 
>>> 
>>> On Wed, Nov 20, 2013 at 2:46 PM, Leonardo Collado Torres
>>> < lcoll...@jhsph.edu > wrote:
>>> 
>>> > Hi Harris,
>>> >
>>> > Answering your question from your first email, I do
>>> not think that it > would help if bumphunter exported
>>> matchGenes() or .matchGenes().
>>> >
>>> > Currently by just importing annotateNearest(), R is
>>> correctly able to use > annotateNearest(), then
>>> .matchGenes(), and also nearestgene(). The problem > is
>>> that nearestgene() uses IRanges::distance() but that
>>> function is not > being found even after importing it.
>>> >
>>> > So as far as I understand, everything should be
>>> working since the > NAMESPACE<
>>> https://github.com/lcolladotor/derfinder/blob/v0.0.34/NAMESPACE>has:
>>> >
>>> > importFrom(bumphunter,annotateNearest) >
>>> importMethodsFrom(IRanges,distance) >
>>> importFrom(IRanges,distance)
>>> >
>>> > That is why I am confused and do not know what is the
>>> cause of the problem.
>>> >
>>> >
>>> > One possible explanation could be that bumphunter's
>>> NAMESPACE
>>> >
>>> 
https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/bumphunter/NAMESPACEdoesn't
>>> > import the IRanges::distance method.
>>> >
>>> >
>>> >
>>> > Regarding your second email (quoted below), I do not
>>> import the > IRanges::nearest method, but it doesn't
>>> seem to be causing problems.  That > could be because
>>> bumphunter does import the IRanges::nearest method
>>> >
>>> > If I comment out line 147 of >
>>> https://github.com/lcolladotor/derfinder/blob/v0.0.34/R/analyzeChr.R,
>>> > aka, comment out library("bumphunter") the example for
>>> analyzeChr() fails > with:
>>> >
>>> > Error in withCallingHandlers(expr, warning =
>>> function(w) > invokeRestart("muffleWarning")) : > could
>>> not find function "distance"
>>> >
>>> > So yes, I get the same error in real life and not only
>>> in CMD check.
>>> >
>>> >
>>> > Adding to the NAMESPACE the following line doesn't
>>> help either.
>>> >
>>> > importMethodsFrom(IRanges,nearest)
>>> >
>>> >
>>> >
>>> >
>>> > Best, > Leo
>>> >
>>> >
>>> >
>>> > On Wed, Nov 20, 2013 at 2:06 PM, Harris A. Jaffee
>>>  wrote:
>>> >
>>> >> In nearestgene(), before the call to distance, there
>>> is a call to nearest.  >> How is that getting resolved?
>>> Did you import nearest from IRanges?  Can >> you run
>>> nearestgene under debug and step through it, seeing how
>>> nearest is >> resolved?  Do you only get an error from
>>> CMD check and not in real life?
>>> >>
>>> >>
>>> >> On Nov 20, 2013, at 12:16 PM, Leonardo Collado Torres
>>> wrote:
>>> >>
>>> >> > Dear BioC-devel list,
>>> >> >
>>> >> > I have what I hope is a simple problem. Basically,
>>> a function in my >> package uses
>>> bumphunter::annotateNearest. This function i

Re: [Bioc-devel] Struggles with correct import .....

2013-12-04 Thread Martin Maechler
>>>>> Kasper Daniel Hansen 
>>>>> on Tue, 3 Dec 2013 18:57:51 -0500 writes:

> It is super super super useful for NAMESPACE issues.  I
> don't really use the other stuff.

> Kasper

Thank you, both, Dan and Kasper.

As the package is not so large, and it really is not related in
any way to Bioconductor apart from its authorship,
I wonder if "one" should not rather consider donating most of the
functions to the 'codetools' package (whose maintainer is Luke
Tierney). The 'Author' entry in all the (new) help pages could
still remain there...

BTW: If you "fix" it:  Consider rewriting many usages of
ulapply() with the more efficient and "robust" vapply().

And just in case my 'suggestion's above don't sound enough
grateful:

Thank you very much, once more!
Martin

> On Tue, Dec 3, 2013 at 11:34 AM, Dan Tenenbaum
>  wrote:

>> 
>> 
>> - Original Message - > From: "Martin Maechler"
>>  > To: "Kasper Daniel Hansen"
>>  > Cc:
>> bioc-devel@r-project.org > Sent: Tuesday, December 3,
>> 2013 8:13:55 AM > Subject: Re: [Bioc-devel] Struggles
>> with correct import .
>> >
>> > >>>>> Kasper Daniel Hansen
>>  > >>>>> on Wed, 20 Nov
>> 2013 15:37:00 -0500 writes:
>> >
>> > > Ok, I analyzed the package using codetoolsBioC and
>> there > > were a number of missing imports, including
>> what Leonardo > > has described.  I have fixed those in
>> bumphunter 1.3.3
>> >
>> > > Kasper
>> >
>> > Impressing and interesting.  I don't see
>> 'codetoolsBioC' to be > available via biocLite().
>> >
>> > What's the recommended way to have it among the
>> bioconductor > packages ?
>> >
>> 
>> 
>> Check it out from svn:
>> 
>> 
https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/codetoolsBioC/
>> 
>> (username/password: readonly)
>> 
>> The package has some issues and needs some attention;
>> this is why it has not been released.  It's still useful
>> though.
>> 
>> Dan
>> 
>> 
>> > Martin
>> >
>> > > On Wed, Nov 20, 2013 at 3:28 PM, Kasper Daniel Hansen
>> < > > kasperdanielhan...@gmail.com> wrote:
>> >
>> > >> I'll have a look.
>> > >>
>> > >> Basically, issues such as this is never the
>> end-users > >> problem and is likely to either be caused
>> by bumphunter > >> not importing correctly (most likely)
>> or IRanges not > >> exporting correctly.
>> > >>
>> > >> Kasper
>> > >>
>> > >>
>> > >> On Wed, Nov 20, 2013 at 3:02 PM, Leonardo Collado
>> Torres > >> < lcoll...@jhsph.edu> wrote:
>> > >>
>> > >>> Hello,
>> > >>>
>> > >>> Found how to solve this. Basically, the NAMESPACE
>> of the > >>> bumphunter package is not complete (I
>> think).
>> > >>>
>> > >>> I downloaded
>> > >>>
>> > >>>
>> 
http://bioconductor.org/packages/release/bioc/src/contrib/bumphunter_1.2.0.tar.gz
>> > >>> , changed the version to 1.2.1 and added/modified
>> the > >>> following lines to the NAMESPACE:
>> > >>>
>> > >>> importFrom(IRanges, IRanges, distance, > >>>
>> distanceToNearest, subjectHits) > >>>
>> importMethodsFrom(GenomicRanges, seqnames, sort, strand,
>> > >>> elementMetadata)
>> > >>>
>> > >>> Once bumphunter was importing IRanges::distance, I
>> got > >>> past the error I reported. Then I found other
>> errors > >>> related to bumphunter not importing the
>> GenomicRanges > >>> strand and elementMetadata functions,
>> as well as the > >>> IRanges distanceToNearest, IRanges
>> and subjectHits > >>> functions.
>> > >>>
>> > >>> Best