<> = Installing software = <> Installing software or pipeline can be a difficult task to accomplish. Therefore we suggest all users to make the programs they installed available to all users whenever it is possible. In general programs/pipelines that should be available to all are installed in '''/tools''' folder. On this page will be described how to make tools available on our system for installation procedure of your specific program please refer to the instructions coming with that program. == Who can install software == In principle any users except students and guests should be able to install bioinfo tools in folders made for that purpose. == Test data == We do ask users to provide test data for all install software. This way it becomes easy to check whether a software works or not. It is also good to define default command to test a tool, see next section to know more about this. == Install binaries == Installing software on potato can be separated into 3 parts: * Compiling/generating binaries (/tools/software/bioinfo-tools) * Adding binaries and libraries to the path (/tools/modulefiles) * Adding test data (/tools/test_data) === Path to place tool's binaries === The following scheme will help you understanding how tools should be placed in /tools/software/bioinfo-tools/<
> /tools/software/bioinfo-tools/''''''/''''''/''''''/ CATEGORY NAME:: Every tool is place in a specific category, users have to choose which category is adequate for there tool. If no category is suited for the new tool, make a new folder. GENERIC NAME:: This the name of the tool without any version information VERSION NAME:: This the tool's name and the version or simply the version an example for assembly tools could look like this, {{{ /tools/software/bioinfo-tools/assembly/ -- spades -- SPAdes-3.14.0-Linux |-- bin |-- lib `-- share -- SPAdes-2.19.0-Linux |-- bin |-- lib `-- share -- megahit -- 1.0 `-- bin -- 1.4 `-- bin ... }}} === Adding software to modules === Once the binaries has been placed in software folder, the next step is to add the path to modules. By doing so users can easily load the software using the command '''module'''. For each software installed a module file should be created, users module files are located in /tools/modulefiles. Make a new file following this scheme, /tools/modulefiles// Here is a test module file that you can modify to suit your case, {{{#!highlight bash #%Module1.0##################################################################### proc ModulesHelp { } { puts stderr " " puts stderr "This module loads version " puts stderr "toolchain." puts stderr "\nVersion 1.0\n" } module-whatis "Name: " module-whatis "Version: " module-whatis "Category: bioinfo-tools / " module-whatis "Description: " module-whatis "URL " set version # Path to binaries for the tool prepend-path PATH /tools/software/bioinfo-tools/ # Path to MAN folder if exists, most of the time in share/man prepend-path MANPATH /tools/software/bioinfo-tools/ # Path to INCLUDE folder if exists prepend-path INCLUDE /tools/software/bioinfo-tools/ # Path to LIB folder if exists prepend-path LD_LIBRARY_PATH /tools/software/bioinfo-tools/ # Set environment variable for your tool # setenv TOOLNAME_VAR value # Replace TOOLNAME with your program name setenv TOOLNAME_DIR /tools/software/bioinfo-tools/... setenv TOOLNAME_BIN /tools/software/bioinfo-tools/... setenv TOOLNAME_LIB /tools/software/bioinfo-tools/... setenv TOOLNAME_INC /tools/software/bioinfo-tools/... setenv TOOLNAME_TEST /tools/test_data/... setenv TOOLNAME_TEST_CMD "TOOLNAME [options] " }}} === Test data === We kindly as all users to provide test data for all software they install as we as a basic command to run the a test (cf. module file). Test data should be a very '''tiny''' (simulated or not) amount of data to use to test a tool, a test run should last less than 5min.<
> Make a folder for your tool in /tools/test_data/ then add your data and a "sbatch" file to run the test. ##== Use easybuild == ##Coming later == Install miniconda/anaconda packages == Anaconda (or Conda) is a well known program for managing environments and packages. It is very popular inn bioinformatics as it allows users with little experience to easily install needed tools and all dependencies. It also makes it easy for users to load the specific environments they need without modifying their '''bashrc''' themselves. On this server you will find 2 versions of miniconda installed, miniconda3 for python 3 and miniconda2 for python 2.7 environments. Conda's users guide can be found here, [[https://docs.conda.io/projects/conda/en/latest/user-guide/index.html|https://docs.conda.io/projects/conda/en/latest/user-guide/index.html|target="_blank"]]. ''' * Load conda module and set needed for conda to work. Be aware that this process rebase you default python bin folder into conda base folder. ''' {{{#!highlight bash module load miniconda3/4.8.2 source $CONDA_INIT }}} {{{#!highlight bash which python #/tools/software/bioinfo-tools/miniconda/miniconda3/bin/python }}} ''' * You can see all available environments * To make it easy for all users to locate needed environments, use descriptive names when making new environments, eg. software-exact_version_number. ''' {{{#!highlight bash conda info --envs # OR conda env list ## conda environments: ## #test /home/fhoma/.conda/envs/test #base * /tools/software/bioinfo-tools/miniconda/miniconda3 }}} ''' * Activate an existing environment ''' {{{#!highlight bash conda activate # For example, you can try conda activate base }}} ''' * Deactivate the current environment ''' {{{#!highlight bash conda deactivate }}} ''' * Load 2 conda environments (we do not recommend doing this as it may lead to big confusions) * Nested environment ''' {{{#!highlight bash conda activate --stack }}} ''' * Create new conda environment, there are 2 ways of doing this * from scratch or from a YAML config file. The latter one will create the environment and install all listed software * You can also give a list of software and versions when installing from scratch * Replace , with a descriptive name. ''' {{{#!highlight bash # Create an environment with only default packages conda create --name # You can be asked to confirm the location of the location of the envs folder # Use the command below to accept any question by default conda create --yes --name # Make an environment with python 3.6 conda create --yes --name python=3.6 # Create an environment from YAML file conda env create -f }}} ''' * Remove an unused environment ''' {{{#!highlight bash conda env remove --name # OR conda remove --name --all }}} * [[https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf|https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf|target="_blank"]] == Install R packages == * Packages for R are installed within R, so to install R packages, you will first need to load the module R and run R. {{{#!highlight bash module load R R }}} * Use the following R command to print where are the R libraries. Users libraries are installed in '''/tools/R_libs/3.6.1''' {{{#!highlight R .libPaths() #[1] "/tools/R_libs/3.6.1" #[2] "/opt/ohpc/pub/libs/gnu8/R/3.6.1/lib64/R/library" }}} * To see all available/installed packages {{{#!highlight R .packages(all.available=T) }}} * To install R packages and dependancies. Installation will automatically be done in a '''/tools/R_libs/3.6.1''' if permissions allows it. If not you could be asked to create a private one. {{{#!highlight R install.packages(c("", ",..."), dep=T) }}} * To install '''BIOINFORMATICS R PACKAGES''', we recommend to use "bioconductor" channels. {{{#!highlight R library(BiocManager) BiocManager::install(c("", "",...)) }}} Read more about R and bioconductor: * [[https://cran.r-project.org/|https://cran.r-project.org/|target="_blank"]] * [[https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf|https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf|target="_blank"]] * [[https://www.bioconductor.org/|https://www.bioconductor.org/|target="_blank"]] == Quick links == 1. [[Computers description]] 2. [[Request an account]] 3. [[storage description]] 4. [[First login]] 5. [[Receiving sequencing data]] 6. [[transferring data]] 7. [[Submitting jobs]] 8. [[Monitor jobs]] 9. [[Install tools]] 10. [[Space management]] [[#top]]