{"id":22021625,"url":"https://github.com/lieberinstitute/jhpce_module_config","last_synced_at":"2025-05-07T06:41:37.048Z","repository":{"id":43389322,"uuid":"154387001","full_name":"LieberInstitute/jhpce_module_config","owner":"LieberInstitute","description":"JHPCE module configuration files","archived":false,"fork":false,"pushed_at":"2025-04-23T19:17:16.000Z","size":212,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":13,"default_branch":"SLURM","last_synced_at":"2025-04-23T19:35:57.757Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LieberInstitute.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-10-23T19:43:17.000Z","updated_at":"2025-04-23T19:17:19.000Z","dependencies_parsed_at":"2023-09-22T07:23:06.847Z","dependency_job_id":"89367dc3-eebb-4a6f-856a-3168bf2ecfe6","html_url":"https://github.com/LieberInstitute/jhpce_module_config","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LieberInstitute%2Fjhpce_module_config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LieberInstitute%2Fjhpce_module_config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LieberInstitute%2Fjhpce_module_config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LieberInstitute%2Fjhpce_module_config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LieberInstitute","download_url":"https://codeload.github.com/LieberInstitute/jhpce_module_config/tar.gz/refs/heads/SLURM","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252830668,"owners_count":21810773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-30T06:13:21.253Z","updated_at":"2025-05-07T06:41:37.029Z","avatar_url":"https://github.com/LieberInstitute.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JHPCE module config\n\nThis repository contains the [Lmod module](https://lmod.readthedocs.io/) configuration files (`.lua`) for modules contributed to [JHPCE](https://jhpce.jhu.edu/) mostly by members of the [R/Bioconductor-powered Team Data Science](https://lcolladotor.github.io) at the [Lieber Institute for Brain Development](https://www.libd.org/). Though other people from LIBD can contribute to these modules and request to be added to the `lieber_modules` user group. \n\nThe source files are hosted in the [jhpce_module_source](https://github.com/LieberInstitute/jhpce_module_source) GitHub repository.\n\n# Questions\n\nIf you have any questions, please send an email to the [JHPCE bithelp](mailto:bithelp@lists.johnshopkins.edu) mailing list.\n\n# Usage\n\nTo use these modules, you have to tell [Lmod module](https://lmod.readthedocs.io/) where this files are listed with the `module use` command. Then you can run the `module avail` command to see all the list of modules.\n\n```bash\nmodule use /jhpce/shared/libd/core\nmodule avail\n```\n\n## Example\n\nAs an example, if we run `module avail` first we don't see the LIBD modules listed.\n\n```bash\n$ module avail\n--------------------------------- /jhpce/shared/jhpce/modulefiles --------------\n(output deleted)\n\n  Where:\n   L:  Module is loaded\n\nIf the avail list is too long consider trying:\n\n\"module --default avail\" or \"ml -d av\" to just list the default modules.\n\"module overview\" or \"ml ov\" to display the number of modules for each name.\n\nUse \"module spider\" to find all possible modules and extensions.\nUse \"module keyword key1 key2 ...\" to search for all possible modules matching any of the \"keys\".\n```\n\nThen we run the commands listed above and we notice that we have a module for HISAT2 version 2.0.4 listed.\n\n```bash\n$ module use /jhpce/shared/libd/modulefiles\n$ module avail\n\n--------------------- /jhpce/shared/libd/modulefiles ---------------------------\n   hisat2/2.2.1\n```\n\nWithout loading the module, we don't see HISAT2 on the `$PATH` environment variable.\n\n```bash\n$ which hisat2\n/usr/bin/which: no hisat2 in (deleted output)\n```\n\nIf we load the module, then we find HISAT2 in the `$PATH` and we can start using it.\n\n```bash\n$ module use /jhpce/shared/libd/modulefiles\n$ module load hisat2/2.2.1\n$ which hisat2\n/jhpce/shared/libd/core/hisat2/2.2.1/hisat2-2.2.1/hisat2\n$ hisat2 --version\n/jhpce/shared/libd/core/hisat2/2.2.1/hisat2-2.2.1/hisat2-align-s version 2.2.1\n64-bit\nBuilt on compute-094.cm.cluster\nThu Jun 29 02:28:02 PM EDT 2023\nCompiler: gcc version 11.3.1 20221121 (Red Hat 11.3.1-4) (GCC) \nOptions: -O3 -m64 -msse2 -funroll-loops -g3 -DPOPCNT_CAPABILITY -std=c++11\nSizeof {int, long, long long, void*, size_t, off_t}: {4, 8, 8, 8, 8, 8}\n```\n\n## Recurrent usage\n\nIf you want to always include our modules, you can edit your `.bashrc` file and add the following lines:\n\n```bash\n## List the LIBD modules by default when inside srun/sbatch\nif [[ $HOSTNAME == compute-* ]] || [[ $HOSTNAME == transfer-* ]]; then\n    echo \"Adding LIBD modules\"\n    module use /jhpce/shared/libd/modulefiles\nfi\n```\n\nBe cautious about `export` statements in your `.bashrc`! In particular, setting variables like `PATH`, `R_HOME`, `LD_LIBRARY_PATH`, and other path-related environment variables can interfere with the functioning of modules or cause other issues that other users won't be able to replicate!\n\n# Create a new module\n\n__Step 1.__ Create a directory in lowercase with the name of the source you are installing. In this example, we are creating a module for [`HISAT2`](https://daehwankimlab.github.io/hisat2/) version [2.2.1](https://github.com/DaehwanKimLab/hisat2/archive/refs/tags/v2.2.1.tar.gz) that was installed at [jhpce_module_source/tree/SLURM/hisat2/2.2.1](https://github.com/LieberInstitute/jhpce_module_source/tree/SLURM/hisat2/2.2.1).\n\n```bash\nmkdir hisat2\n```\n\n__Step 2.__ Create a [`.lua`](https://lmod.readthedocs.io/en/latest/050_lua_modulefiles.html) configuration file with the version number of the software you are installing. In this example, that would be `2.2.1.lua`.\n\n```bash\ntouch hisat2/2.2.1.lua\n```\n\nTo jump start this process, you can simply copy one of the existing `.lua` files. For example, you could copy the `.lua` file for the ` hisat2/2.2.1` module.\n\n```bash\n## You could use the HISAT2 v2.0.4 module file for future use\ncp /jhpce/shared/libd/modulefiles/hisat2/2.2.1.lua your_software/your_version.lua\n```\n\n__Step 3.__ Edit the `.lua` file you just created and test it. As an example, check the [hisat2/2.2.1.lua](hisat2/2.2.1.lua) file.\n\n__Step 4.__ Make sure that the permissions are set correctly at the end.\n\n```bash\n## Use 7 for group: so Nick and Leo can edit the files\nchmod 775 -R hisat2\n```\n\n# `lieber_modules` membership rules\n\nTo be added to `lieber_modules` JHPCE user group you have to agree to:\n\n1. Be subscribed to the `bithelp` mailing list.\n1. Respond to questions from users who have questions about modules you contributed.\n1. Be willing to create modules for new versions of the software or help advice new maintainers if you are passing down the torch to someone new.\n\nIf you do not agree to these rules, worry not! We will still gladly train and guide you to make your own private modules with files hosted elsewhere. Please sign up for a [Data Science guidance session](https://lcolladotor.github.io/bioc_team_ds/data-science-guidance-sessions.html) with Nick Eagles after having watched the relevant `module`-related videos from the [LIBD rstats club - JHPCE playlist](https://www.youtube.com/watch?v=mWYDMp0jp8Q\u0026list=PLNNI62fcZPdAslHFllqv0-2iZqby1h0CV).\n\nAs noted by Mark Miller from JHPCE BitSupport, using shared modules has some advantages, such as:\n\n\u003e * It prevents duplication of effort, where 2 people on 2 different teams need the same software and build the same duplicate module.\n\u003e * It allows for the effort put into building the module to be used and appreciated by others.\n\u003e * Having a module used by more people will help to encourage the maintainer to keep the module up to date.\n\u003e * We do have the annual JHPCE High Achiever award that has been awarded to those that have contributed modules. 😊\n\nTo be added to `lieber_modules`, please send an email to BitHelp mentioning that you agree to the rules stated above and cc Leonardo Collado Torres.\n\nWelcome to the club! We are glad to have you! 🙌🏽\n\nPS This whole process is inspired by the rules you have to agree to when submitting an [R package to Bioconductor](https://github.com/Bioconductor/Contributions/issues/new/choose).\n\n# Contributors\n\n## Current\n\n- [Nick Eagles](https://nick-eagles.github.io/)\n- [Leonardo Collado Torres](http://lcolladotor.github.io)\n- [Geo Pertea](https://github.com/gpertea)\n- [Ryan Miller](https://github.com/RyAMiller)\n\n## Former\n\n- [Emily E Burke](https://github.com/emilyburke)\n- [Andrew E Jaffe](http://aejaffe.com/)\n\n# JHPCE location\n\n`/jhpce/shared/libd/modulefiles`\n\nUseful aliases for your `~/.bashrc` file:\n\n```bash\n## Creating modules\n# https://lmod.readthedocs.io/en/latest/050_lua_modulefiles.html\nalias modsrc=\"cd /jhpce/shared/libd/core\"\nalias modlua=\"cd /jhpce/shared/libd/modulefiles\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flieberinstitute%2Fjhpce_module_config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flieberinstitute%2Fjhpce_module_config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flieberinstitute%2Fjhpce_module_config/lists"}