[Bioc-devel] MAGMA executable

Hervé Pagès hp@ge@@on@g|thub @end|ng |rom gm@||@com
Tue Dec 14 14:09:48 CET 2021


Hi Kristian,

The package installation folder should never been written to once the 
package has been installed. On many systems this is a read-only folder.

I didn't see any mention of Cygwin in your DESCRIPTION or README.md file.

Also I noticed some inconsistency between the system requirements listed 
in DESCRIPTION and those listed in README.md (e.g. libgit2-dev).

At first glance, the process of getting all the external deps in place 
seems pretty involved, even on Linux! I would suggest you focus on this 
platform for now and try to make things easier for the user. Granted 
they have all the required system libraries on their Linux machine (i.e. 
libcurl4-openssl-dev, libssl-dev, libxml2-dev, libglu1-mesa-dev on 
Ubuntu), anybody should be able to run 'R CMD build' and 'R CMD check' 
on the package.

Cheers,

H.

On 13/12/2021 23:12, Kristian Ullrich wrote:
> Hi,
>
> I have a similar issue with my package 
> https://gitlab.gwdg.de/mpievolbio-it/crbhits
>
> It relies on three dependencies, however in my situation the licensing 
> was not a problem with these dependencies.
>
> They can be compiled on any unix system and so far the user need to 
> compile them after the installation.
>
> They will be compiled into the R extdata folder, see e.g. here:
>
> https://gitlab.gwdg.de/mpievolbio-it/crbhits/-/blob/master/R/make_last.R
>
> Anyhow, I did not try yet to put it on Bioc, since the compilation for 
> one of the dependencies would need the Cygwin dll to run on a windows 
> machine.
>
> Does anyone have run into such a situation yet, since Cygwin and mingw 
> come with their own licensing restrictions?
>
> I would need to put and distribute a pre-compiled exe and the dll file 
> with my package and even do not know if this would pass the CRAN/Bioc 
> checks, which I do not know would be covered by the licensing scheme.
>
> Thank you in anticipation
>
> Best regards
> --
> Kristian Ullrich, Ph.D.
> Max Planck Institute
> For Evolutionary Biology
>
> Scientific IT group
> Department of Evolutionary Biology
> August Thienemann Str. 2
> 24306 Plön
> Germany
> +49 4522 763 313
> ullrich using evolbio.mpg.de
>
> "It is part of it that thoughts run riot" (Mia)
>
> --
> CONFIDENTIALITY NOTICE:
> The contents of this email message and any attachments are intended 
> solely for the addressee(s) and may contain confidential and/or 
> privileged information and may be legally protected from disclosure. 
> If you are not the intended recipient, you are hereby notified 
> that any use, dissemination, copying, or storage of this message or 
> its attachments is strictly prohibited.
>
> --
> Kristian Ullrich, Ph.D.
> Max Planck Institute
> For Evolutionary Biology
>
> Scientific IT group
> Department of Evolutionary Biology
> August Thienemann Str. 2
> 24306 Plön
> Germany
> +49 4522 763 313
> ullrich using evolbio.mpg.de
>
> "It is part of it that thoughts run riot" (Mia)
>
> --
> CONFIDENTIALITY NOTICE:
> The contents of this email message and any attachments are intended 
> solely for the addressee(s) and may contain confidential and/or 
> privileged information and may be legally protected from disclosure. 
> If you are not the intended recipient, you are hereby notified 
> that any use, dissemination, copying, or storage of this message or 
> its attachments is strictly prohibited.
>
>> On 13. Dec 2021, at 18:46, Hervé Pagès <hpages.on.github using gmail.com> 
>> wrote:
>>
>> Hi Brian,
>>
>> Note that Rsamtools does not relies on any CLI tools. It contains 
>> C/C++ code that is _compiled_ and _linked_ against Rhtslib rather 
>> than relying on the standalone `samtools` and `tabix` commands.
>>
>> Installing MAGMA at package installation time in the package 
>> installation folder of MAGMA.Celltyping means downloading MAGMA each 
>> time MAGMA.Celltyping gets installed, including after each update of 
>> MAGMA.Celltyping. This would be very unusual and would break the 
>> general expectation that a local install with 'R CMD INSTALL 
>> MAGMA.Celltyping' should work without the need to access the internet 
>> to download additional stuff.
>>
>> Instead I would recommend the following:
>>
>> - Install in a more permanent location like 
>> tools::R_user_dir("MAGMA.Celltyping", which="cache")
>>
>> - Do not install at package installation time or at package load 
>> time. Instead, delay installation until it's needed, that is, until 
>> the user calls a function that actually needs MAGMA. One way to 
>> achieve this is by making sure that all your functions that rely on 
>> MAGMA check its presence with magma_installed_version() and call 
>> magma_install() if needed. If MAGMA's license requires that the user 
>> accepts an end-user agreement, then your functions should not try to 
>> install MAGMA automatically. They should just fail with an error 
>> asking the user to call magma_install().
>>
>> Another approach is to bundle MAGMA's source in MAGMA.Celltyping and 
>> compile it at installation time but that's an entirely different story.
>>
>> Hope this helps,
>>
>> H.
>>
>>
>> On 13/12/2021 08:37, Brian Schilder wrote:
>>> Thank you both for the helpful feedback. I’ll follow up with the 
>>> developers of MAGMA for clarification on license.
>>>
>>> Regarding installation, I agree Kasper, this is not an ideal 
>>> solution. Installing MAGMA at the R package installation time would 
>>> be ideal, but I’ve been unable to come up with a way to do this.
>>>
>>> I’ve been look to Rsamtools 
>>> <https://github.com/Bioconductor/Rsamtools> for some sources of 
>>> inspiration, since it relies on multiple CLI tools (rsamtools, 
>>> tabix). I’m unfamiliar with getting bash scripts to run while 
>>> installing R packages, but looking into this now.
>>>
>>> Best,
>>> Brian
>>>
>>>> On 13 Dec 2021, at 13:59, Kasper Daniel Hansen 
>>>> <kasperdanielhansen using gmail.com> wrote:
>>>>
>>>> Ignoring the license issues (which may be significant), I strongly 
>>>> dislike this installation strategy. It (IMO) unreasonable that you 
>>>> potentially write in system locations on package load. You're 
>>>> looking in
>>>>   /usr/local/bin
>>>>   R.home/bin <- this makes not sense, this is the R home location, 
>>>> why should anything else but R be here?
>>>>   $HOME
>>>>   working directory
>>>>
>>>> In my opinion, if you want to do something like this, you need to 
>>>> do it at installation time and you should install MAGMA in the 
>>>> package location.
>>>>
>>>>
>>>>
>>>> On Thu, Dec 9, 2021 at 8:30 AM Vincent Carey 
>>>> <stvjc using channing.harvard.edu <mailto:stvjc using channing.harvard.edu 
>>>> <mailto:stvjc using channing.harvard.edu>>> wrote:
>>>> I didn't find an obvious licensing statement at the magma site.  I 
>>>> did see
>>>>
>>>> note that standard copyright applies; the MAGMA binaries and source 
>>>> code
>>>> may not be distributed or modified)
>>>>
>>>> the licensing situation would affect my advice on this process, but 
>>>> others
>>>> may have other more
>>>> specific advice
>>>>
>>>> On Thu, Dec 9, 2021 at 7:37 AM Brian Schilder <
>>>> brian_schilder using alumni.brown.edu 
>>>> <mailto:brian_schilder using alumni.brown.edu 
>>>> <mailto:brian_schilder using alumni.brown.edu>>> wrote:
>>>>
>>>>> Hi everyone,
>>>>>
>>>>> I’m a developer for the R package MAGMA.Celltyping <
>>>>> https://github.com/neurogenomics/MAGMA_Celltyping/tree/bschilder_dev 
>>>>> <https://github.com/neurogenomics/MAGMA_Celltyping/tree/bschilder_dev>> 
>>>>> (on
>>>>> the bschilder_dev branch). It’s currently only distributed via 
>>>>> GitHub but
>>>>> I’m trying to get it on Bioc if possible. The dilemma is, it relies on
>>>>> MAGMA <https://ctg.cncr.nl/software/magma 
>>>>> <https://ctg.cncr.nl/software/magma>>, which is only available as a
>>>>> CLI program.
>>>>>
>>>>> I have everything passing CRAN/Bioc checks on my local machine, 
>>>>> but the
>>>>> final hurdle is installing MAGMA 
>>>>> <https://ctg.cncr.nl/software/magma 
>>>>> <https://ctg.cncr.nl/software/magma>> on
>>>>> other machines (e.g. via GitHub Actions checks) such that it can 
>>>>> be called
>>>>> from within R.
>>>>>
>>>>> Here’s the steps I’ve taken:
>>>>> Upon .onLoad <
>>>>> https://github.com/neurogenomics/MAGMA_Celltyping/blob/bschilder_dev/R/zzz.R 
>>>>> <https://github.com/neurogenomics/MAGMA_Celltyping/blob/bschilder_dev/R/zzz.R>>
>>>>> of MAGMA.Celltyping, magma_installed_version() <
>>>>> https://github.com/neurogenomics/MAGMA_Celltyping/blob/bschilder_dev/R/magma_installed_version.R 
>>>>> <https://github.com/neurogenomics/MAGMA_Celltyping/blob/bschilder_dev/R/magma_installed_version.R>>
>>>>> will check whether MAGMA is installed. If not, it proceeds to try and
>>>>> install it via magma_install() <
>>>>> https://github.com/neurogenomics/MAGMA_Celltyping/blob/bschilder_dev/R/magma_install.R 
>>>>> <https://github.com/neurogenomics/MAGMA_Celltyping/blob/bschilder_dev/R/magma_install.R>>
>>>>> .
>>>>> magma_install() finds the latest version of MAGMA in their archives <
>>>>> https://ctg.cncr.nl/software/MAGMA/prog/ 
>>>>> <https://ctg.cncr.nl/software/MAGMA/prog/>>, installs it wherever 
>>>>> the user
>>>>> has permissions (from a list of possible installation locations <
>>>>> https://github.com/neurogenomics/MAGMA_Celltyping/blob/bschilder_dev/R/find_install_dir.R 
>>>>> <https://github.com/neurogenomics/MAGMA_Celltyping/blob/bschilder_dev/R/find_install_dir.R>>),
>>>>> and sets up the symlink.
>>>>> Checks that MAGMA is indeed installed and callable from within R using
>>>>> functions like system(“magma ….”).
>>>>> This all seems to work fine locally, but when I launch to GitHub 
>>>>> actions,
>>>>> MAGMA.Celltyping can’t seems to install/find MAGMA. it doesn’t 
>>>>> seem to be
>>>>> able to find it.
>>>>>
>>>>> Does anyone know of any solutions to this that are Bioc (or at 
>>>>> least CRAN)
>>>>> -compatible?
>>>>>
>>>>> Many thanks in advance,
>>>>> Brian
>>>>> ___________
>>>>> Brian Schilder
>>>>> PhD Candidate
>>>>> UK Dementia Research Institute at Imperial College London
>>>>> Faculty of Medicine, Department of Brain Sciences, Neurogenomics Lab
>>>>> Profile | bit.ly/imperial_profile <http://bit.ly/imperial_profile> 
>>>>> <http://bit.ly/imperial_profile> <https://bit.ly/imperial_profile 
>>>>> <https://bit.ly/imperial_profile>>
>>>>> LinkedIn | linkedin.com/in/brian-schilder 
>>>>> <http://linkedin.com/in/brian-schilder> 
>>>>> <http://linkedin.com/in/brian-schilder> <
>>>>> https://www.linkedin.com/in/brian-schilder/ 
>>>>> <https://www.linkedin.com/in/brian-schilder/>>
>>>>> Twitter | twitter.com/BMSchilder <http://twitter.com/BMSchilder> 
>>>>> <http://twitter.com/BMSchilder> <http://www.twitter.com/BMSchilder 
>>>>> <http://www.twitter.com/BMSchilder>>
>>>>> Lab | neurogenomics.co.uk <http://neurogenomics.co.uk> 
>>>>> <http://neurogenomics.co.uk/> <http://neurogenomics.co.uk/ 
>>>>> <http://neurogenomics.co.uk/>>
>>>>> UK DRI | www.ukdri.ac.uk <http://www.ukdri.ac.uk> 
>>>>> <http://www.ukdri.ac.uk/> <http://www.ukdri.ac.uk/ 
>>>>> <http://www.ukdri.ac.uk/>>
>>>>>         [[alternative HTML version deleted]]
>>>>>
>>>>> _______________________________________________
>>>>> Bioc-devel using r-project.org <mailto:Bioc-devel using r-project.org 
>>>>> <mailto:Bioc-devel using r-project.org>> mailing list
>>>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel 
>>>>> <https://stat.ethz.ch/mailman/listinfo/bioc-devel>
>>>>>
>>>> --
>>>> The information in this e-mail is intended only for t...{{dropped:11}}
>>
>> _______________________________________________
>> Bioc-devel using r-project.orgmailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>
-- 
Hervé Pagès

Bioconductor Core Team
hpages.on.github using gmail.com

	[[alternative HTML version deleted]]



More information about the Bioc-devel mailing list