knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
If this is the first time you build and install an R package you can follow this link, which has simple installation instructions for Windows, Mac OSX and Linux.
To specifically install the command-line tools of Xcode for Mac OSX you might also need to run this line in terminal:
xcode-select --install
\
For OSX, Windows or Linux:
pip3 install pandas python-igraph networkx python-louvain leidenalg scikit-learn smfishHmrf
If pip install does not work, try installing them within a conda conda environment. Something like this might work, see also this link
name: giotto_env channels: — defaults dependencies: — pip=3.4 — pandas — networkx - python-igraph - leidenalg - python-louvain - python.app (!!only for OSX!!) - scikit-learn prefix: /Users/your_username/anaconda3/envs/giotto_env
python
conda env create -f environment.yml
for OSX:
/Users/your_username/anaconda3/envs/giotto_env/bin/pythonw
for linux:
/Users/your_username/anaconda3/envs/giotto_env/bin/python
for windows:
/Users/your_username/anaconda3/envs/giotto_env/python.exe
\
Some of the errors outlined below might arise because of issues with building Giotto from source.
The Giotto branch cless is a version of Giotto without C++ code, which should fix many of the installation errors.
remotes::install_github("RubD/Giotto@cless")
If you see this error on your MacOS:
clang: error: unsupported option ‘-fopenmp’
You can install another clang and point R to use that clang, which supports the -fopenmp paramter. This solution was provided on stackoverflow
brew install llvm
touch ~/.R/Makevars
CC=/usr/local/opt/llvm/bin/clang -fopenmp CXX=/usr/local/opt/llvm/bin/clang++
CXX11=/usr/local/opt/llvm/bin/clang++
CFLAGS=-g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe CXXFLAGS=-g -O3 -Wall -pedantic -std=c++11 -mtune=native -pipe LDFLAGS=-L/usr/local/opt/gettext/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib CPPFLAGS=-I/usr/local/opt/gettext/include -I/usr/local/opt/llvm/include
### 2.2 issue 2: clang error If you see this error on your MacOS: ```{bash, eval = FALSE} Error message: ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0' ld: warning: directory not found for option '-L/usr/local/gfortran/lib' ld: library not found for -lgfortran clang-9: error: linker command failed with exit code 1 (use -v to see invocation)
solution: Installing the latest version of gofortran. https://github.com/fxcoudert/gfortran-for-macOS/releases/download/8.2/gfortran-8.2-Mojave.dmg
Reference: https://stackoverflow.com/questions/35999874/mac-os-x-r-error-ld-warning-directory-not-found-for-option "I am having Mac OS Catalina and in my case installation of Homebrew, the newest gcc and Gfortran 8.2.0 solved the issue." -- Magda Orzechowska "This worked for me in Mac OS Catalina as well! I used the gfortran 8.2 Mojave installation github.com/fxcoudert/gfortran-for-macOS/releases" -- Danny
If you use the latest MacOS 'Catalina' and the latest R version 3.6.3 then you need to install Clang 7.0.0 and GNU Fortran 6.1 as per instructions.
Additionally, you might have to specify some flags in "~/.R/Makevars"
```{bash, eval = FALSE}
CFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk CCFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk CXXFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk CPPFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
We hope that these issues will be resolved soon. ### 2.4 build issues and openMP support on Apple Silicon Macs *Assuming [Homebrew](https://brew.sh/) installed and R installed via Homebrew: `brew install --cask r`* Details on Fortran: https://mac.r-project.org/tools/ More details on openMP: https://pat-s.me/transitioning-from-x86-to-arm64-on-macos-experiences-of-an-r-user/#virtual-machines--parallels New release of Apple Silicon Macs requires a few extra steps otherwise installing packages with building will throw errors. This is specific to Apple silicon Macs, an experimental build of GNU Fortran compiler is required otherwise errors like these would pop up during installation: ```error ld: warning: directory not found for option '-L/opt/R/arm64/gfortran/lib/gcc/aarch64-apple-darwin20.6.0/12.0.1'
This is due to no Fortran compiler and it can be solved with a experimental build of Fortran complier.
# for R>=4.2.0 curl -O https://mac.r-project.org/tools/gfortran-12.0.1-20220312-is-darwin20-arm64.tar.xz # unpack sudo tar fxz gfortran-12.0.1-20220312-is-darwin20-arm64.tar.xz -C / # /opt/R/arm64/gfortran/SDK has to point to your macOS SDK sudo gfortran-update-sdk
openMP, gcc can be installed. homebrew would be the easiest way to install it.
brew install libomp
Create ~/.R/Makevars
if not present, and add the chunk below.
# homebrew FLIBS =-L/opt/homebrew/opt/gfortran/lib F77 = /opt/homebrew/bin/gfortran FC = /opt/homebrew/bin/gfortran CFLAGS = -I/opt/homebrew/include CPPFLAGS = -I/opt/homebrew/include CXXFLAGS = -I/opt/homebrew/include # opemmp support LDFLAGS += -L/opt/homebrew/opt/libomp/lib -lomp CPPFLAGS += -Xclang -fopenmp
Changing the sym-linked to BLAS lib would improve significantly in matrix calculation, up to ~30x Fold in some cases.
To use the optimized BLAS
# create a symbolic link pointing libRblas.dylib to the optimized BLAS implementation cd /Library/Frameworks/R.framework/Resources/lib/ ln -s -i -v libRblas.vecLib.dylib libRblas.dylib # If you ever want to revert this, do cd /Library/Frameworks/R.framework/Resources/lib/ ln -s -i -v libRblas.0.dylib libRblas.dylib
If you encounter this error:
Error in system(cmd) : (converted from warning) ‘make’ not found
Solution:
Install the necessary package development tools.
## make sure Rtools is visible (from within R) ## you can set the paths manually Sys.setenv(PATH = paste("C:/Rtools/bin","C:/Rtools/mingw_64/bin", Sys.getenv("PATH"), sep=";")) Sys.setenv(BINPREF = "C:/Rtools/mingw_$(WIN)/bin/")
If you encounter this or similar error:
Error: Failed to install 'Giotto' from GitHub: (converted from warning) ...
## avoid converting warnings to errors by setting this environment variable to true (from within R) Sys.setenv("R_REMOTES_NO_ERRORS_FROM_WARNINGS"=TRUE) library(devtools) # if not installed do install.package('devtools') library(remotes) # if not installed do install.package('remotes') remotes::install_github("RubD/Giotto", build_vignettes = F)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.