| 1 | Downloading and deploying tools is done with a tool called [https://hpcugent.github.io/easybuild/ EasyBuild]. This helps to get consistent installing and deploying of tools on the cluster. |
| 2 | |
| 3 | For most of the tools there is already an !EasyBuild file existing. These files are stored on github and are called easyconfigs and can be found [https://github.com/hpcugent/easybuild-easyconfigs/tree/master/easybuild/easyconfigs here] |
| 4 | |
| 5 | If there is not an easybuild file (.eb) on github and there is no eb file on the cluster (/apps/sources/EasyBuild/custom), we have to create one ourselves. |
| 6 | |
| 7 | First an example of an custom !EasyBuild file created for deploying NGS_DNA on the cluster. Below the code there will be the explanation of all the steps in the script. |
| 8 | |
| 9 | name = 'NGS_DNA' |
| 10 | version = '3.1.2' |
| 11 | namelower = name.lower() |
| 12 | homepage = 'https://github.com/molgenis/molgenis-pipelines' |
| 13 | description = """This distribution already contains several pipelines/protocols/parameter files which you can use 'out-of-the-box' to align and impute your NGS data using MOLGENIS Compute.""" |
| 14 | |
| 15 | toolchain = {'name': 'dummy', 'version': 'dummy'} |
| 16 | easyblock = 'Tarball' |
| 17 | |
| 18 | #dependencies |
| 19 | molname = 'Molgenis-Compute' |
| 20 | molversion = 'v15.04.1-Java-1.7.0_80' |
| 21 | versionsuffix = '-%s-%s' % (molname,molversion) |
| 22 | dependencies = [(molname,molversion)] |
| 23 | |
| 24 | source_urls = [('http://github.com/molgenis/molgenis-pipelines/releases/download/%s/' % (version))] |
| 25 | sources = [('%s-%s.tar.gz' % (name, version))] |
| 26 | |
| 27 | sanity_check_paths = { |
| 28 | 'files': ['workflow.csv', 'parameters.csv'], |
| 29 | 'dirs': [] |
| 30 | } |
| 31 | |
| 32 | moduleclass = 'bio' |
| 33 | |
| 34 | name and version are pretty clear, |
| 35 | homepage and description; are recommended when releasing a future release of the tool. |
| 36 | toolchain; can be left like it is in the example (only when multiple tools need to be installed before this, you should use toolchain (see manual online of Easybuild). |
| 37 | easyblock; this is the type of data, tar.gz = ‘Tarball’ , executable = ‘Binary’ . All the different easyblocks are [https://github.com/hpcugent/easybuild-easyblocks/tree/master/easybuild/easyblocks/generic here] |
| 38 | If there any dependencies (in this case Molgenis-Compute), you put it in the name of your eb file (name will look like this: NGS_DNA-3.1.2-Molgenis-Compute-v15.04.1-Java-1.7.0_80) |
| 39 | Using variables instead of typing the same string 5 times is done with %s and then between () the name of the variable. |
| 40 | One necessary step is to set sanity_check_paths, this is a check whether the file is unpacked/installed correctly. |
| 41 | All the installed eb configs are put automatically in the /apps/modules/all folder, but with moduleclass you can specify an extra module path. N.B. when typing the command module avail on the cluster will only display the non-all modules. So specifying an extra moduleclass is necessary to find your module back in module avail |
| 42 | |