Installation by users: Difference between revisions

From HPCwiki
Jump to navigation Jump to search
No edit summary
Line 72: Line 72:


== See also ==
== See also ==
* [[B4F_cluster | B4F Cluster]]
* [[Anunna | Anunna]]
* [[Lx6_and_Lx7_compute_nodes | Lx6 and Lx7 compute nodes]]
* [[Environment_Modules | Environment Modules]]
* [[Environment_Modules | Environment Modules]]
* [[Control_R_environment_using_modules | Control R environment using modules]]
* [[Control_R_environment_using_modules | Control R environment using modules]]

Revision as of 14:47, 19 March 2019

Domain specific folders for executables and libraries

Many packages and applications can be installed locally in the $HOME directory. Users of each of the groups (e.g. 'WUR/ABGC') can deposit a map with executables or library files that can be of interest to multiple users

 /cm/shared/apps/WUR/ABGC/

Preparing modules for local or domain specific use

Example of making a very simple module that would load a specific version of the short-read aligner bwa to your environment. Simple example, but demonstrates the principle. The example assumes that the executable file(s) are in:

 /cm/shared/apps/WUR/ABGC/bwa/bwa-0.5.9/

create a module file

All users can store executable or library files in:

 /cm/shared/apps/WUR/ABGC/

Within that folder, a modules folder was created where modules can be stored.

 /cm/shared/apps/WUR/ABGC/modules

In the case of bwa, there are quite a few versions, and users may have a preference for a newer or older version, depending on your pipeline.

The first step is to create a 'root' bwa directory, where multiple module files, one for each version, can be created.

<source lang='bash'> mkdir /cm/shared/apps/WUR/ABGC/modulefiles/bwa </source>

note that this may already have been done by somebody else; pay attention not to remove existing module files.

The next step involves making a small TCL-based script. The name of the script is the version of the software that the module pertains. In this case 0.5.9.

<source lang='bash'> vi /cm/shared/apps/WUR/ABGC/modulefiles/bwa/0.5.9 </source>

A basic module script may look like this: <source lang='tcl'>

  1. %Module1.0#######################################################################
    1. bwa 0.5.9 modulefile

proc ModulesHelp { } {

       puts stderr "\tAdds bwa v0.5.9 to your environment"

}

module-whatis "Adds bwa v0.5.9 to your environment"

set bwa_059_root /cm/shared/apps/WUR/ABGC/bwa/bwa-0.5.9/

prepend-path PATH $bwa_059_root

</source>

Adding a custom module directory to your environment

To allow the module program to find the custom module directory, the location of that directory has to be added to MODULEPATH variable.

<source lang='bash'> export MODULEPATH=$MODULEPATH:/cm/shared/apps/WUR/ABGC/modulefiles </source> This can be made permanent by adding this line of code to the .bash_profile file in the root of your home folder. To then load the modified MODULEPATH variable you have to load .bash_profile again: <source lang='bash'> source .bash_profile </source> This needs to be done only once. Next time you login, .bash_profile will be loaded automatically.

You can check if the modules are found. <source lang='bash'> module avail </source> This should give output that includes something similar to this:

 ----------------------------------- /cm/shared/apps/WUR/ABGC/modulefiles -----------------------------------
 bwa/0.5.9  bwa/0.7.5a

See also

External links