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 <kasperdanielhan...@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 <st...@channing.harvard.edu 
<mailto:st...@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_schil...@alumni.brown.edu <mailto:brian_schil...@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> 
<https://bit.ly/imperial_profile <https://bit.ly/imperial_profile>>
LinkedIn | 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://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/>>
UK DRI | 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@r-project.org <mailto:Bioc-devel@r-project.org> mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel 
<https://stat.ethz.ch/mailman/listinfo/bioc-devel>

--
The information in this e-mail is intended only for t...{{dropped:11}}

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

Reply via email to