Skip to content

[Bioc-devel] Package submission with library requirement

16 messages · avinash sahu, Dan Tenenbaum, Karim Mezhoud +4 more

#
Hi all,

I am trying to submit a package (https://github.com/vinash85/GOAL) in
bioconductor. It requires a ransampl (
http://sourceforge.net/projects/ransampl/) and gsl libraries already
installed in system.
The package is failing to install at automated package installer of
bioconductor (
http://bioconductor.org/spb_reports/GOAL_0.99.0_buildreport_20150121045701.html).
How to take care of additional Libraries?

Further, the package is meant for Linux and Mac ( it is NOT currently
compiling in windows). Is it possible to submit the package in pre-compiled
binaries form for Mac and Linux.

This is the first package that I am submitting to BioConductor, so I am not
aware of these issues.

thanks in advance
avi
#
Hi,

Before you submit your package, please make sure that it satisfies all our

guidelines here.

http://www.bioconductor.org/developers/package?guidelines/

Be sure that you tested it with the appropriate version of R. To work

out which version that is, please have a look at this site here:

http://www.bioconductor.org/developers/how?to/useDevel/

Then use our tracking system for package submission (which can be

found here):

https://tracker.bioconductor.org/

recommended video:
https://www.youtube.com/watch?v=QfqaK_BHebU

Karim

  ?__
 c/ /'_;~~~~kmezhoud
(*) \(*)   ?????  ??????
http://bioinformatics.tn/



On Wed, Jan 21, 2015 at 2:24 PM, avinash sahu <avinash.sahu at gmail.com>
wrote:

  
  
#
Thanks for mail Karim.

I have GOAL staisfies all guidelines.
However, GOAL is not compiling in windows and because of its heavy
computational  requirement its cannot be used with Windows.
Regarding third party code, bioconductor website mentions (i.e. ransampl):
"In cases where the external library is complex the author may need to
supply pre-built binary versions for some platforms." How to provide such
binaries for linux and Mac to bioconductor.

thanks
avi
On Wed, Jan 21, 2015 at 2:39 PM, Karim Mezhoud <kmezhoud at gmail.com> wrote:

            

  
  
#
See my comments below.

----- Original Message -----
Can you please be very specific about why the package cannot be used with windows? Wherever possible we want packages to run on all the platforms we support. Have you attempted to compile it under windows and if so, what is the problem you ran into?
I'm not sure you need to provide binaries for ransampl. However, can you clarify the type of dependency that your package has on ransampl and GSL?
Is the dependency build-time only? If that is the case, then users on Mac and Windows will not need to have ransampl and GSL installed, but they will if they need them at runtime.
In the sense that Bioconductor is open source and belongs to everyone, these are 'our' guidelines, but just to be clear, Karim is not affiliated with the core team.
I will install ransampl on our build machines (GSL is already installed).

Dan
#
Hi Dan,

Thanks for the reply and quick support. I am sorry for so many issues, I am
somewhat novice in bioconductor.  I am replying to your comments inline.


On Wed, Jan 21, 2015 at 6:55 PM, Dan Tenenbaum <dtenenba at fredhutch.org>
wrote:
Little bit of background first. GOAL is package, that will be a
accompanying software for the manuscript that we are submitting to nature
methods, so I would like to be as user friendly as possible. I spend couple
of days to compile the package in Windows, however it is getting stuck
because it uses Rcpp libraries along with third party libraries from other
packages. I tried to get help from Windows regular user but it need someone
expert in Windows OS to make it work. And I am no longer user of  Windows
so completely novice in it.
addition I added details in README about installation instruction of those
libraries.
Regards
Avi
#
On 01/21/2015 10:17 AM, avinash sahu wrote:
have you thought carefully about the need for third-party libraries? For 
instance, R has extensive random number facilities, and these are available at 
the C level. This is documented in section 6 of RShowDoc("R-exts")

Martin

  
    
#
Yes. I tried R internal libraries for random number generator also those
provided by Rcpp but they are were not thread safe so it with
multi-threading. I can try using other libraries, if anyone know random
generator that are thread safe and not slow.

thanks
avi

On Wed, Jan 21, 2015 at 7:38 PM, Martin Morgan <mtmorgan at fredhutch.org>
wrote:

  
  
#
Does the boost RNGs qualify?

He's a vignette showing how to use them through R/Rcpp

  http://gallery.rcpp.org/articles/timing-normal-rngs/

Boost headers are provided via the BH library:

  https://github.com/eddelbuettel/bh

-steve
On Wed, Jan 21, 2015 at 10:48 AM, avinash sahu <avinash.sahu at gmail.com> wrote:

  
    
#
Both the libraries are not thread safe. Although boost random genrator in
limited situation can be thread safe. I have tried them earlier they were
failing with multi-threading.
One way out might be, if I include the source code of ransampl with package
source code. There license allows this,  I can also mail ask the developer
of Ransampl about the permission.
Will this be acceptable to bioconductor folks?
thanks
avi
On Wed, Jan 21, 2015 at 7:57 PM, Steve Lianoglou <lianoglou.steve at gene.com>
wrote:

  
  
#
On Wed, Jan 21, 2015 at 2:16 PM, avinash sahu <avinash.sahu at gmail.com> wrote:
I like the rlecuyer package for parallel random number generation:
http://cran.r-project.org/web/packages/rlecuyer/index.html
1 day later
#
On 01/21/2015 11:16 AM, avinash sahu wrote:
yes, provided the license of the library allows for it, it is a good solution. 
There is guidance in RShowDoc("R-exts") on acknowledging this in the 
DESCRIPTION (and possibly LICENSE) file.

Martin

  
    
#
----- Original Message -----
However, you should consider using Rlecuyer as it has no external dependencies (see Levi's post to this thread). Then your package should build on windows.
Dan
#
On Fri, Jan 23, 2015 at 1:58 PM, Dan Tenenbaum <dtenenba at fredhutch.org> wrote:
I think so too - it's also a standard solution in R, implemented
natively in r-core's parallel library and suggested by the snow
library.  I used it in my pensim library before transitioning to
parallel, and have tested its streams on hyperthreaded CPUs and
clusters.
2 days later
#
Hi Dan,

Now I have included source code of the rsampl.h in the GOAL package.
Although, rlecuyer is good candidate for random number generator, I
currently avoid using it because I wanted results of our  submitted
manuscript to be completely reproducible. I can reproduce the results using
ransampl library by setting seed that I have stored. Changing to other
random generator libraries will imply that I have recheck results of the
manuscript are reproducible and possibly change some of them which is not
possible at this stage. I will reserve that inclusion for the future. I
have resubmitted the GOAL package.

thanks
avi

On Fri, Jan 23, 2015 at 9:37 PM, Levi Waldron <levi.waldron at hunter.cuny.edu>
wrote:

  
  
4 days later
#
Hi Avinash,

So the argument for the importance of reproducible research *definitely* 
resonates with us here as it is a major goal of ours.  However while the 
decision to use the same library as your paper helps to make the 
immediate work more reproducible, it simultaneously hampers others from 
benefiting from that because of the engineering problems that it creates 
for end users.

Ultimately, this project has a longstanding commitment to try and 
provide not only a way for your previous work to be validated, but also 
a way for others to build upon and eventually extend that previous 
work.  And both of these goals are crucial if your package is to be 
valuable to the greater scientific community over the long term.

Anyhow I will try and work with you on our issue tracker to see if we 
can find a way to resolve this with you.  Thanks for contributing!


  Marc
On 01/26/2015 08:14 AM, avinash sahu wrote: