In addition to the core software tools that are available by default, additional software is available via environment modules. For example, although MATLAB is installed on the system, it is not available by default. Instead, we need to “load” its module first, e.g.
[alice@c4-dev1 ~]$ module load matlab
[alice@c4-dev1 ~]$ module list
Currently Loaded Modules:
1) matlab/2024a
Then we can launch MATLAB using:
[alice@c4-dev1 ~]$ matlab -nosplash -nodesktop
To see what other “built-in” modules are available, use:
[alice@c4-dev1 ~]$ module avail
In additional a set of built-in environment modules, there are also modules for software tools that are installed and maintained by other users or research groups. To access these, we first need to load the corresponding “Software Repository” module. For example, to get access to the repository and the software shared by the UCSF Computation Biology and Informatics core (CBI), make sure to load (“enable”) the repository first, e.g.
module load CBI
Then use module avail
to list what modules and versions are available (or see below). Next, to actually get access to one or more of the shared software modules, use module load <name>
or module load <name>/<version>
. Here are a few examples:
module load bowtie2
module load bowtie2/2.4.2
module load r
It is possible to (i) enable a software repository and (ii) load a set of software tools in one call, e.g.
module load CBI r bwa bowtie2/2.4.2
Below are 3 software repositories, each providing a set of software tools.
#%Module 1.0
module-whatis "Language for technical computing"
prepend-path PATH /software/c4/matlab/2024a/bin
setenv MLM_LICENSE_FILE 27000@c4-license1
java -version
and javac -version
(SDK only).help("openjdk: Open Java Development Kit")
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: programming, java")
whatis("URL: https://openjdk.java.net/, https://openjdk.java.net/projects/jdk/ (changelog), https://github.com/openjdk/jdk (source code)")
whatis([[
Description: OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition. It is the result of an effort Sun Microsystems began in 2006.
Examples: `java -version` and `javac -version` (SDK only).
Note: This module loads the Software Development Kit (SDK) version, if available, otherwise the Run-Time Environment (JRE).
]])
local root = "/usr/lib/jvm"
-- Use SDK, if available, otherwise JRE
local home = pathJoin(root, "java" .. "-" .. version)
if not isDir(home) then -- isDir() supports symlinked folders
home = pathJoin(root, "jre" .. "-" .. version)
end
-- Assert that OpenJDK version still exists, because
-- it happens at times that older versions are removed
if not isDir(home) then
LmodError("INTERNAL ERROR: Module " .. name .. "/" .. version .. " is broken, because folder " .. home .. " does not exist on host " .. os.getenv("HOSTNAME") .. ". Please report this to the sysadms.")
end
setenv("JAVA_HOME", home)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
prepend_path("CPATH", pathJoin(home, "include"))
module load CBI
annotate_variation.pl --help
.help([[
ANNOVAR: Functional Annotation of Genetic Variants from Next-Generation Sequencing Data
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, genome")
whatis("URL: https://annovar.openbioinformatics.org/en/latest/")
whatis("Description: ANNOVAR is an efficient software tool to utilize update-to-date information to functionally annotate genetic variants detected from diverse genomes (including human genome hg18, hg19, hg38, as well as mouse, worm, fly, yeast and many others). Example: `annotate_variation.pl --help`.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
ant -h
help([[
Apache Ant: A Java Library and Command-Line Tool to Build Software
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: programming")
whatis("URL: https://ant.apache.org/bindownload.cgi, https://ant.apache.org/antnews.html (changelog)")
whatis([[
Description: Apache Ant is a Java library and command-line tool that help building software.
Example: `ant -h`
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
ASCIIGenome --help
, and ASCIIGenome bigWigExample.bw
.help([[
ASCIIGenome: Text Only Genome Viewer
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, viewer, cli, tui")
whatis("URL: https://github.com/dariober/ASCIIGenome, https://github.com/dariober/ASCIIGenome/blob/master/CHANGELOG.md (changelog), https://asciigenome.readthedocs.io/en/latest/ (documentation)")
whatis([[
Description: ASCIIGenome is a genome browser based on command line interface and designed for running from console terminals. Since ASCIIGenome does not require a graphical interface it is particularly useful for quickly visualizing genomic data on remote servers while offering flexibility similar to popular GUI viewers like IGV.
Examples: `ASCIIGenome --help`, and `ASCIIGenome bigWigExample.bw`.
Warning: Only the most recent version of this software will be kept.
]])
-- too long for small screens: `ASCIIGenome http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/release/20130502/supporting/functional_annotation/filtered/ALL.chr21.phase3_shapeit2_mvncall_integrated_v5.20130502.sites.annotation.vcf.gz`
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, "ASCIIGenome" .. "-" .. version)
prepend_path("PATH", home)
bam
.bam help
.help([[
bamUtil: Programs for Working on SAM/BAM Files
]])
local name = "bamUtil"
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: version control")
whatis("URL: https://genome.sph.umich.edu/wiki/BamUtil, https://github.com/statgen/bamUtil")
whatis("Description: bamUtil is a repository that contains several programs that perform operations on SAM/BAM files. All of these programs are built into a single executable, `bam`. Example: `bam help`.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
bat README.md
, bat scripts/*.sh
, and bat src/*.c
.help([[
bat: A cat(1) Clone with Syntax Highlighting and Git Integration
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, file viewer, cli, tui")
whatis("URL: https://github.com/sharkdp/bat, https://github.com/sharkdp/bat/blob/master/CHANGELOG.md (changelog)")
whatis([[
Description: A cat(1) clone with syntax highlighting and Git integration.
Examples: `bat README.md`, `bat scripts/*.sh`, and `bat src/*.c`.
Warning: Only the most recent version of this software will be kept.
]])
-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
prepend_path("MANPATH", pathJoin(home, "share", "man", "man1"))
setup()
function: load "${BATS_SUPPORT_HOME}/load.bash"
and load "${BATS_ASSERT_HOME}/load.bash"
help([[
bats-assert: Assertion Library for Bats (Bash Automated Testing System)
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: bash, shell, testing")
whatis("URL: https://github.com/bats-core/bats-assert, https://github.com/bats-core/bats-assert/releases (changelog), https://bats-core.readthedocs.io/en/stable/faq.html?highlight=assert#how-can-i-use-helper-libraries-like-bats-assert (documentation)")
whatis([[
Description: This is a helper library providing common assertions for Bats.
Examples: In Bats `setup()` function: `load "${BATS_SUPPORT_HOME}/load.bash"` and `load "${BATS_ASSERT_HOME}/load.bash"`
]])
depends_on("bats-support")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("BATS_ASSERT_HOME", home)
bats --version
, bats --help
, man bats
, man 7 bats
, and bats tests/
.help([[
bats: Bash Automated Testing System
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: bash, shell, testing")
whatis("URL: https://github.com/bats-core/bats-core, https://github.com/bats-core/bats-core/blob/master/docs/CHANGELOG.md (changelog), https://bats-core.readthedocs.io/en/stable/ (documentation)")
whatis([[
Description: Bats is a TAP-compliant testing framework for Bash. It provides a simple way to verify that the UNIX programs you write behave as expected.
Examples: `bats --version`, `bats --help`, `man bats`, `man 7 bats`, and `bats tests/`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
setup()
function: load "${BATS_SUPPORT_HOME}/load.bash"
and load "${BATS_FILE_HOME}/load.bash"
help([[
bats-file: File-System Assertion Library for Bats (Bash Automated Testing System)
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: bash, shell, testing")
whatis("URL: https://github.com/bats-core/bats-file, https://github.com/bats-core/bats-file/releases (changelog), https://bats-core.readthedocs.io/en/stable/faq.html?highlight=assert#how-can-i-use-helper-libraries-like-bats-file (documentation)")
whatis([[
Description: This is a helper library providing common filesystem related assertions and helpers foor Bats.
Examples: In Bats `setup()` function: `load "${BATS_SUPPORT_HOME}/load.bash"` and `load "${BATS_FILE_HOME}/load.bash"`
]])
depends_on("bats-support")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("BATS_FILE_HOME", home)
setup()
function: load "${BATS_SUPPORT_HOME}/load.bash"
help([[
bats-support: Supporting Library for Bats (Bash Automated Testing System)
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: bash, shell, testing")
whatis("URL: https://github.com/bats-core/bats-support, https://github.com/bats-core/bats-support/releases (changelog), https://bats-core.readthedocs.io/en/stable/faq.html?highlight=assert#how-can-i-use-helper-libraries-like-bats-assert (documentation)")
whatis([[
Description: This is a supporting library providing common functions to test helper libraries written for Bats.
Examples: In Bats `setup()` function: `load "${BATS_SUPPORT_HOME}/load.bash"`
]])
depends_on("bats-core")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("BATS_SUPPORT_HOME", home)
bcftools --version
help([[
BCFtools: Utilities for Variant Calling and Manipulating VCFs and BCFs
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://www.htslib.org/, https://github.com/samtools/bcftools/blob/develop/NEWS (changelog), https://github.com/samtools/bcftools (source code)")
whatis([[
Description: BCFtools is a set of utilities that manipulate variant calls in the Variant Call Format (VCF) and its binary counterpart BCF. All commands work transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.
Examples: `bcftools --version`
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
pushenv("BCFTOOLS_PLUGINS", pathJoin(home, "libexec", name))
-- Warn about bug https://github.com/samtools/htslib/issues/1236
if (mode() == "load" and version == "1.11") then
LmodMessage("MODULE WARNING: " .. name .. " " .. version .. " has a bug that results in valid but incorrect CIGAR strings. Because of this, it is recommended to use an older or a newer version instead. For details, see https://github.com/samtools/htslib/issues/1236")
end
bcl2fastq --version
help([[
bcl2fastq: Illumina Conversion Software
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, Illumina")
whatis("URL: https://support.illumina.com/sequencing/sequencing_software/bcl2fastq-conversion-software.html, https://support.illumina.com/sequencing/sequencing_software/bcl2fastq-conversion-software/downloads.html (changelog)")
whatis([[
Description: bcl2fastq Conversion Software both demultiplexes data and converts BCL files generated by Illumina sequencing systems to standard FASTQ file formats for downstream analysis.
Example: `bcl2fastq --version`
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
bedops --version
help([[
BEDOPS: The Fast, Highly Scalable and Easily-Parallelizable Genome Analysis Toolkit
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: ")
whatis("URL: https://bedops.readthedocs.io/, https://bedops.readthedocs.io/en/latest/content/revision-history.html (changelog), https://github.com/bedops/bedops (source code)")
whatis([[
Description: BEDOPS is an open-source command-line toolkit that performs highly efficient and scalable Boolean and other set operations, statistical calculations, archiving, conversion and other management of genomic data of arbitrary scale. Tasks can be easily split by chromosome for distributing whole-genome analyses across a computational cluster.
Example: `bedops --version`
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
bedtools --version
and ls $BEDTOOLS2_HOME/genomes/
.help([[
bedtools2: The Swiss Army Knife for Genome Arithmetic
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://github.com/arq5x/bedtools2/")
whatis("Description: Collectively, the bedtools utilities are a swiss-army knife of tools for a wide-range of genomics analysis tasks. The most widely-used tools enable genome arithmetic: that is, set theory on the genome. For example, bedtools allows one to intersect, merge, count, complement, and shuffle genomic intervals from multiple files in widely-used genomic file formats such as BAM, BED, GFF/GTF, VCF. Example: `bedtools --version` and `ls $BEDTOOLS2_HOME/genomes/`.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
-- custom; helps find $BEDTOOLS2_HOME/genomes
pushenv("BEDTOOLS2_HOME", home)
blastx -version
help([[
BLAST+: Basic Local Alignment Search Tool
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: programming, scripting")
whatis("URL: https://blast.ncbi.nlm.nih.gov/Blast.cgi, https://www.ncbi.nlm.nih.gov/books/NBK131777/ (changelog)")
whatis([[
Description: BLAST finds regions of similarity between biological sequences. The program compares nucleotide or protein sequences to sequence databases and calculates the statistical significance.
Examples: `blastx -version`
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
blat
help([[
BLAT: Fast Sequence Search Command Line Tool
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, alignment")
whatis("URL: https://genome.ucsc.edu/goldenPath/help/blatSpec.html (docs), https://genome.ucsc.edu/FAQ/FAQblat.html (faq), https://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/blat/ (download)")
whatis([[
Description: BLAT - client and server combined into a single program, first building the index, then using the index, and then exiting.
Examples: `blat`
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
bowtie --version
and ls $BOWTIE_HOME/{genomes,indexes}
help([[
Bowtie: A Fast and Sensitive Gapped Read Aligner
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: http://bowtie-bio.sourceforge.net/index.shtml")
whatis("Description: Bowtie is an ultrafast, memory-efficient short read aligner. Note: This is Bowtie v1 - _not v2_. Example: `bowtie --version` and `ls $BOWTIE_HOME/{genomes,indexes}`")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
pushenv("BOWTIE_HOME", home)
bowtie2 --version
help([[
Bowtie 2: A Fast and Sensitive Gapped Read Aligner
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://bowtie-bio.sourceforge.net/bowtie2/index.shtml, https://bowtie-bio.sourceforge.net/bowtie2/index.shtml (changelog), https://github.com/BenLangmead/bowtie2 (source code)")
whatis([[
Description: Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences.
Examples: `bowtie2 --version`
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
bwa
.help([[
BWA: Burrows-Wheeler Aligner
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: http://bio-bwa.sourceforge.net/, https://github.com/lh3/bwa/blob/master/NEWS.md (changelog), https://github.com/lh3/bwa (source code)")
whatis([[
Description: Burrows-Wheeler Aligner (BWA) is a software package for mapping low-divergent sequences against a large reference genome, such as the human genome.
Example: `bwa`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
prepend_path("MANPATH", pathJoin(home, "man"))
byobu --version
.help([[
byobu: Elegant Enhancement of the Otherwise Functional, Plain, Practical GNU Screen
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: terminal, SSH")
whatis("URL: https://www.byobu.org/, https://bazaar.launchpad.net/~kirkland/byobu/trunk/view/head:/debian/changelog (changelog), https://github.com/dustinkirkland/byobu (source code)")
whatis([[
Description: Byobu is an elegant enhancement of the otherwise functional, plain, practical GNU Screen. Byobu includes an enhanced profile, configuration utilities, and system status notifications for the GNU screen window manager as well as the Tmux terminal multiplexer.
Example: `byobu --version`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
cellranger --help
and cellranger --version
.MROFLAGS='--localcores=1 --localmem=8 --limit-loadavg'
making those the default.help([[
Cell Ranger: 10x Genomics Pipeline for Single-Cell Data Analysis
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, 10x genomics")
whatis("URL: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger, https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/release-notes (changelog), https://github.com/10XGenomics/cellranger (source code)")
whatis([[
Description: Cell Ranger is a set of analysis pipelines that process Chromium Single Cell 3' RNA-seq output to align reads, generate gene-cell matrices and perform clustering and gene expression analysis.
Examples: `cellranger --help` and `cellranger --version`.
Warning: To prevent a single Cell Ranger process from hijacking all CPU and RAM by default, this module sets environment variable `MROFLAGS='--localcores=1 --localmem=8 --limit-loadavg'` making those the default.
]])
load("bcl2fastq")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
-- Make CellRanger run on a single core with little memory by default
-- This prevents a single Cell Ranger process from hijacking all
-- available CPU and memory resources.
-- REFERENCES:
-- * https://martian-lang.org/advanced-features/#job-management
pushenv("MROFLAGS", "--localcores=1 --localmem=8 --limit-loadavg")
clp
help([[
Clp: COIN-OR Linear Programming Solver
]])
local name = myModuleName()
name = "Clp"
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: library")
whatis("URL: https://www.coin-or.org/, https://github.com/coin-or/Clp (source code)")
whatis([[
Description: Clp (Coin-or linear programming) is an open-source linear programming solver. It is primarily meant to be used as a callable library, but a basic, stand-alone executable version is also available.
Examples: `clp`
]])
depends_on("coinutils")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
-- Runtime
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
-- Buildtime
prepend_path("CPATH", pathJoin(home, "include"))
prepend_path("LD_RUN_PATH", pathJoin(home, "lib"))
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
ctop
and ctopx
(silence 'Invalid user id' output).help([[
cluster-utils: Collection of Utilities / Helper Scripts to Make Life Easier on HPC Clusters
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: slurm, scheduler, utility")
whatis("URL: https://github.com/molgenis/cluster-utils/, https://github.com/molgenis/cluster-utils/releases (changelog)")
whatis([[
Description: Collection of utilities / helper scripts to make life easier on HPC clusters.
Examples: `ctop` and `ctopx` (silence 'Invalid user id' output).
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
local bash = 'ctop 2> >(grep -vF "Invalid user id")'
-- FIXME: Redirect to stderr might not work this way in csh /HB 2023-06-11
local csh = 'ctop 2> >(grep -vF "Invalid user id")'
set_shell_function("ctopx", bash, csh)
cmake --version
.help([[
CMake: Open-source, Cross-platform Family of Tools Designed to Build, Test and Package Software
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: development, make")
whatis("URL: https://cmake.org/, https://cmake.org/cmake/help/latest/release/index.html (changelog) https://github.com/Kitware/CMake/releases (download)")
whatis([[
Description: CMake is cross-platform free and open-source software for managing the build process of software using a compiler-independent method. It supports directory hierarchies and applications that depend on multiple libraries.
Examples: `cmake --version`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "man"))
help([[
CoinUtils: COIN-OR Utilities
]])
local name = myModuleName()
name = "CoinUtils"
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: library")
whatis("URL: https://www.coin-or.org/, https://github.com/coin-or/CoinUtils")
whatis("Description: CoinUtils is an open-source collection of classes and helper functions that are generally useful to multiple COIN-OR projects. CoinUtils is written in C++ and is released as open source under the Eclipse Public License 2.0.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
-- Runtime
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
-- Buildtime
prepend_path("CPATH", pathJoin(home, "include"))
prepend_path("LD_RUN_PATH", pathJoin(home, "lib"))
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
conda-stage --auto-stage=enable
, and conda-stage --help
.help([[
conda-stage: Stage Conda Environment on Local Disk
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: cli, shell")
whatis("URL: https://github.com/HenrikBengtsson/conda-stage, https://github.com/HenrikBengtsson/conda-stage/blob/develop/NEWS.md (changelog), https://github.com/HenrikBengtsson/conda-stage/tags (releases)")
whatis([[
Description: The 'conda-stage' tool stages a Conda environment to local disk. Working with a Conda environment on local disk can greatly improve the performance as local disk is often much faster than a global, network-based file system, including multi-tenant parallel file systems such as BeeGFS and Lustre often found in high-performance compute (HPC) environments.
Examples: `conda-stage --auto-stage=enable`, and `conda-stage --help`.
Warning: This is work under construction. Your milage may vary! /HB 2022-04-13
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
if not isDir(root) then
LmodError("Environment variable 'SOFTWARE_ROOT_CBI' specifies a non-existing folder: " .. os.getenv("SOFTWARE_ROOT_CBI"))
end
local home = pathJoin(root, name .. "-" .. version)
if not isDir(home) then
LmodError("No such folder: " .. home)
end
prepend_path("PATH", pathJoin(home, "bin"))
pushenv("CONDA_STAGE_PROLOGUE", "module load CBI " .. name)
local script = pathJoin(home, "bin", "conda-stage." .. myShellType())
if not isFile(script) then
LmodError("The " .. name .. " module is not supported for your shell (" .. myShellType() .. "; SHELL=" .. os.getenv("SHELL") .. "). No such file: " .. script)
end
-- Create conda-stage() function, which will overwrite itself after the
-- first invocation
local body = 'source "' .. script .. '"; '
body = body .. 'conda-stage "$@"'
set_shell_function("conda-stage", body, '')
freec
.help([[
Control FREEC: Control-FREE Copy Number and Genotype Caller
]])
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: ")
whatis("URL: http://boevalab.com/FREEC/, https://github.com/BoevaLab/FREEC/")
whatis("Description: Prediction of copy numbers and allelic content using deep-sequencing data. Example: `freec`.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local name = "FREEC"
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
cufflinks
help([[
Cufflinks: Transcriptome Assembly and Differential Expression Analysis for RNA-Seq
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: http://cole-trapnell-lab.github.io/cufflinks/, https://github.com/cole-trapnell-lab/cufflinks (source code)")
whatis([[
Description: Cufflinks assembles transcripts, estimates their abundances, and tests for differential expression and regulation in RNA-Seq samples. It accepts aligned RNA-Seq reads and assembles the alignments into a parsimonious set of transcripts. Cufflinks then estimates the relative abundances of these transcripts based on how many reads support each one, taking into account biases in library preparation protocols.
Examples: `cufflinks`
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
cutadapt --version
and cutadapt --help
.help([[
Cutadapt: Remove Adapter Sequences from Sequencing Reads
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, genome")
whatis("URL: https://cutadapt.readthedocs.io/en/stable/, https://github.com/marcelm/cutadapt/blob/main/CHANGES.rst (changelog), https://github.com/marcelm/cutadapt (source code)")
whatis([[
Description: Cutadapt finds and removes adapter sequences, primers, poly-A tails and other types of unwanted sequence from your high-throughput sequencing reads.
Requirements: CentOS 7.
Examples: `cutadapt --version` and `cutadapt --help`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
-- Specific to the Linux distribution?
if string.match(myFileName(), "/_" .. os.getenv("CBI_LINUX") .. "/") then
root = pathJoin(root, "_" .. os.getenv("CBI_LINUX"))
end
-- if os.getenv("CBI_LINUX") ~= "centos7" then
-- LmodError("The '" .. name .. "' module is not yet supported on " .. os.getenv("CBI_LINUX") .. ". See https://github.com/HenrikBengtsson/CBI-software/issues/102 for updates on this problem.")
-- end
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
easycatfs --help
and easycatfs mount /shared/data
.help([[
easycatfs: Easy Read-Only Mounting of Slow Folders onto a Local Drive
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, files, hpc")
whatis("URL: https://github.com/HenrikBengtsson/easycatfs")
whatis("Description: This is Linux command-line tool for mounting one or more folders on a network file system on a local disk such that the local-disk folders mirrors everything (read-only) on the network folder. This will result in (i) faster repeated access to files, and (ii) decreased load on the network file system. This is particularly beneficial when working on high-performance compute (HPC) clusters used by hundreds and thousands of processes and users simultaneously.. Example: `easycatfs --help` and `easycatfs mount /shared/data`. Warning: Only the most recent version of this software will be kept.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
emacs --version
and emacs -nw
.help([[
GNU Emacs: An Extensible, Customizable, Free/Libre Text Editor
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: editor, text, cli, tui")
whatis("URL: https://www.gnu.org/software/emacs/, https://www.gnu.org/savannah-checkouts/gnu/emacs/emacs.html#Releases (changelog)")
whatis([[
Description: At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing.
Examples: `emacs --version` and `emacs -nw`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
-- Specific to the Linux distribution?
if string.match(myFileName(), "/_" .. os.getenv("CBI_LINUX") .. "/") then
root = pathJoin(root, "_" .. os.getenv("CBI_LINUX"))
end
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
expect -version
, and man expect
.help([[
expect: Programmed Dialogue with Interactive Programs
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: scripting, programming")
whatis("URL: https://core.tcl-lang.org/expect/index, https://core.tcl-lang.org/expect/file?name=ChangeLog&ci=tip (changelog), https://core.tcl-lang.org/expect/dir?ci=tip (source code), https://sourceforge.net/projects/expect/files/Expect/ (download)")
whatis([[
Description: Expect is a tool for automating interactive applications such as telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really makes this stuff trivial. Expect is also useful for testing these same applications.
Example: `expect -version`, and `man expect`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "libs"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
fastqc --version
.help([[
FastQC: A Quality Control Analysis Tool for High Throughput Sequencing Data
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, qc")
whatis("URL: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/, https://raw.githubusercontent.com/s-andrews/FastQC/master/RELEASE_NOTES.txt (changelog), https://github.com/s-andrews/FastQC/ (source code)")
whatis([[
Description: FastQC is a program designed to spot potential problems in high throughput sequencing datasets. It runs a set of analyses on one or more raw sequence files in fastq or bam format and produces a report which summarises the results.
Examples: `fastqc --version`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, "FastQC" .. "-" .. version)
prepend_path("PATH", home)
fzf --version
and emacs "$(fzf)"
.$FZF_HOME/install
. To uninstall, use $FZF_HOME/uninstall
.help([[
fzf: A Command-Line Fuzzy Finder
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: , cli, tui, shell")
whatis("URL: https://github.com/junegunn/fzf, https://github.com/junegunn/fzf/wiki (documentation), https://github.com/junegunn/fzf/blob/master/CHANGELOG.md (changelog), https://github.com/junegunn/fzf/releases (download)")
whatis([[
Description: fzf is a general-purpose command-line fuzzy finder. It's an interactive Unix filter for command-line that can be used with any list; files, command history, processes, hostnames, bookmarks, git commits, etc.
Examples: `fzf --version` and `emacs "$(fzf)"`. Note: To install tab completions and key bindinds to your shell, call `$FZF_HOME/install`. To uninstall, use `$FZF_HOME/uninstall`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "man"))
-- Custom
pushenv("FZF_HOME", home)
gatk --help
and gatk --list
.help([[
Genome Analysis Toolkit (GATK): Variant Discovery in High-Throughput Sequencing Data
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, genome")
whatis("URL: https://software.broadinstitute.org/gatk/, https://github.com/broadinstitute/gatk, https://github.com/broadgsa/gatk, https://console.cloud.google.com/storage/browser/gatk-software/package-archive, ftp://ftp.broadinstitute.org/pub/gsa/GenomeAnalysisTK/")
whatis("Description: Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools with a primary focus on variant discovery and genotyping. Its powerful processing engine and high-performance computing features make it capable of taking on projects of any size. Example: `gatk --help` and `gatk --list`.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
local version_x = string.gsub(version, "[.].*", "")
if (version_x == "1") then
-- GATK v1.* requires Java (<= 1.7)
local cluster = os.getenv("CLUSTER")
if (cluster == "tipcc") then
load("jdk/1.7.0")
else
depends_on("openjdk/1.6.0")
end
pushenv("GATK_HOME", home)
else
prepend_path("PATH", home)
end
gcta64
.help([[
GCTA: Genome-wide Complex Trait Analysis
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: genome")
whatis("URL: https://yanglab.westlake.edu.cn/software/gcta/#Overview, https://cnsgenomics.com/software/gcta/, https://github.com/jianyangqt/gcta (source code)")
whatis([[
Description: A tool for Genome-wide Complex Trait Analysis (GCTA).
Examples: `gcta64`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
gdalinfo --version
and man gdalinfo
.help("GDAL: Geospatial Data Abstraction Library")
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: spatial, library")
whatis("URL: https://gdal.org/, https://github.com/OSGeo/gdal/blob/master/NEWS.md (changelog), https://github.com/OSGeo/gdal (source code)")
whatis([[
Description: GDAL is an open source X/MIT licensed translator library for raster and vector geospatial data formats.
Examples: `gdalinfo --version`
]])
-- GDAL (>= 3.0.0), requires PROJ (>= 6.0.0)
local v = version
v = string.gsub(v, "[.].*", "")
if v >= "3" then
depends_on("proj")
end
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
-- linking
prepend_path("LD_RUN_PATH", pathJoin(home, "lib"))
-- building
prepend_path("CPATH", pathJoin(home, "include"))
prepend_path("CFLAGS", "-I" .. pathJoin(home, "include"), " ")
prepend_path("LDFLAGS", "-L" .. pathJoin(home, "lib"), " ")
geos-config --version
.help([[
GEOS: Geometry Engine, Open Source
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: statistics, spatial")
whatis("URL: https://libgeos.org/, https://libgeos.org/usage/download/ (changelog), https://github.com/libgeos/geos/issues (bug reports)")
whatis([[
Description: GEOS (Geometry Engine - Open Source) is a C++ port of the JTS Topology Suite (JTS). It aims to contain the complete functionality of JTS in C++. This includes all the OpenGIS Simple Features for SQL spatial predicate functions and spatial operators, as well as specific JTS enhanced functions. GEOS provides spatial functionality to many other projects and products.
Examples: `geos-config --version`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
-- execution
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
-- linking
prepend_path("LD_RUN_PATH", pathJoin(home, "lib"))
-- building
prepend_path("CPATH", pathJoin(home, "include"))
prepend_path("CFLAGS", "-I" .. pathJoin(home, "include"), " ")
prepend_path("LDFLAGS", "-L" .. pathJoin(home, "lib"), " ")
gistic2
.help([[
GISTIC2: Genomic Identification of Significant Targets in Cancer (GISTIC), version 2
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://software.broadinstitute.org/cancer/cga/gistic, https://github.com/broadinstitute/gistic2/blob/master/support/README.txt (changelog), https://github.com/broadinstitute/gistic2 (source code), https://www.genepattern.org/modules/docs/GISTIC_2.0/7")
whatis([[
Description: GISTIC2.0 facilitates sensitive and confident localization of the targets of focal somatic copy-number alteration in human cancers.
Examples: `gistic2`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
git flow
.help([[
git-flow: Git Extension Git Flow (AVH Edition)
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: version control")
whatis("URL: https://github.com/petervanderdoes/gitflow-avh, https://github.com/nvie/gitflow")
whatis("Description: A collection of Git extensions to provide high-level repository operations for Vincent Driessen's branching model. Example: `git flow`. Warning: Only the most recent version of this software will be kept.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
gh
is GitHub on the command line. It brings pull requests, issues, and other GitHub concepts to the terminal next to where you are already working with git
and your code.gh --version
, gh --help
, gh auth login
, and gh extension install dlvhdr/gh-dash
.help([[
github-cli: GitHub's Official Command Line Tool
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, file viewer, cli, tui")
whatis("URL: https://cli.github.com/, https://cli.github.com/manual/ (documentation), https://github.com/cli/cli/releases (changelog), https://github.com/cli/cli/ (source code), https://github.com/topics/gh-extension (GitHub CLI extensions)")
whatis([[
Description: `gh` is GitHub on the command line. It brings pull requests, issues, and other GitHub concepts to the terminal next to where you are already working with `git` and your code.
Examples: `gh --version`, `gh --help`, `gh auth login`, and `gh extension install dlvhdr/gh-dash`.
Warning: Only the most recent version of this software will be kept.
]])
-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man", "man1"))
glow README.md
, glow --pager README.md
.help([[
glow: Render Markdown on the CLI, with Pizzazz!
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, file viewer, pager, markdown, cli, tui")
whatis("URL: https://github.com/charmbracelet/glow, https://github.com/charmbracelet/glow/releases (changelog)")
whatis([[
Description: Glow is a terminal based markdown reader designed from the ground up to bring out the beauty—and power—of the CLI. Use it to discover markdown files, read documentation directly on the command line and stash markdown files to your own private collection so you can read them anywhere. Glow will find local markdown files in subdirectories or a local Git repository.
Examples: `glow README.md`, `glow --pager README.md`.
Warning: Only the most recent version of this software will be kept.
]])
-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
--cmd
flag, and (iii) custom colours.gping --version
, gping --help
, gping 8.8.8.8 9.9.9.9
, and gping --cmd "curl -o /dev/null https://www.github.com" "wget -O /dev/null https://github.com"
.help([[
gping: Ping, but with a Graph
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: terminal, cli, utility")
whatis("URL: https://github.com/orf/gping, https://github.com/orf/gping/releases (changelog), https://github.com/orf/gping (source code)")
whatis([[
Description: gping comes with the following super-powers: (i) graph the ping time for multiple hosts, (ii) graph the execution time for commands via the `--cmd` flag, and (iii) custom colours.
Examples: `gping --version`, `gping --help`, `gping 8.8.8.8 9.9.9.9`, and `gping --cmd "curl -o /dev/null https://www.github.com" "wget -O /dev/null https://github.com"`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
gsl-config --version
.help([[
GSL: Gnu Scientific Library
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: library")
whatis("URL: https://www.gnu.org/software/gsl/")
whatis("Description: The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the GNU General Public License. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite. Example: `gsl-config --version`")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
h5stat --version
.help([[
hdf5: A General Purpose Library and File Format for Storing Scientific Data
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: library")
whatis("URL: https://www.hdfgroup.org/downloads/hdf5/")
whatis("Description: Hierarchical Data Format (HDF) is a set of file formats (HDF4, HDF5) designed to store and organize large amounts of data. The HDF5 format is designed to address some of the limitations of the HDF4 library, and to address current and anticipated requirements of modern systems and applications. Example: `h5stat --version`")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
-- prepend_path("MANPATH", pathJoin(home, "share", "man"))
prepend_path("CPATH", pathJoin(home, "include"))
-- prepend_path("CFLAGS", "-I" .. pathJoin(home, "include"), " ")
-- prepend_path("LDFLAGS", "-L" .. pathJoin(home, "lib"), " ")
hisat2 --version
and hisat2 --help
.help([[
HISAT2: Graph-based Alignment of Next Generation Sequencing Reads to a Population of Genomes
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: Programming, Statistics")
whatis("URL: https://daehwankimlab.github.io/hisat2/, https://github.com/DaehwanKimLab/hisat2/releases (changelog), https://github.com/DaehwanKimLab/hisat2/ (source code)")
whatis([[
Description: HISAT2 is a fast and sensitive alignment program for mapping next-generation sequencing reads (both DNA and RNA) to a population of human genomes (as well as to a single reference genome). Based on an extension of BWT for graphs [Sirén et al. 2014], we designed and implemented a graph FM index (GFM), an original approach and its first implementation to the best of our knowledge. In addition to using one global GFM index that represents a population of human genomes, HISAT2 uses a large set of small GFM indexes that collectively cover the whole genome (each index representing a genomic region of 56 Kbp, with 55,000 indexes needed to cover the human population). These small indexes (called local indexes), combined with several alignment strategies, enable rapid and accurate alignment of sequencing reads. This new indexing scheme is called a Hierarchical Graph FM index (HGFM).
Examples: `hisat2 --version` and `hisat2 --help`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
htop
is an interactive process viewer for Unix systems. It is a text-mode application (for console or X terminals) and requires ncurses.htop
.help([[
htop: An Interactive Process Viewer for Unix
]])
local name = myModuleName()
local version = myModuleVersion()
version = string.gsub(version, "^[.]", "") -- for hidden modules
whatis("Version: " .. version)
whatis("Keywords: system, utility, cli, tui")
whatis("URL: https://htop.dev, https://github.com/htop-dev/htop/blob/main/ChangeLog (changelog), https://github.com/htop-dev/htop (source code)")
whatis([[
Description: `htop` is an interactive process viewer for Unix systems. It is a text-mode application (for console or X terminals) and requires ncurses.
Examples: `htop`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
-- Specific to the Linux distribution?
if string.match(myFileName(), "/_" .. os.getenv("CBI_LINUX") .. "/") then
root = pathJoin(root, "_" .. os.getenv("CBI_LINUX"))
end
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
bgzip --version
, htsfile --version
, and tabix --version
.help([[
HTSlib: C Library for High-Throughput Sequencing Data Formats
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, programming")
whatis("URL: https://www.htslib.org/, https://github.com/samtools/htslib/blob/develop/NEWS (changelog), https://github.com/samtools/htslib (source code)")
whatis([[
Description: HTSlib is an implementation of a unified C library for accessing common file formats, such as SAM, CRAM and VCF, used for high-throughput sequencing data, and is the core library used by samtools and bcftools. HTSlib also provides the bgzip, htsfile, and tabix utilities.
Examples: `bgzip --version`, `htsfile --version`, and `tabix --version`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
-- Warn about bug https://github.com/samtools/htslib/issues/1236
if (mode() == "load" and version == "1.11") then
LmodMessage("MODULE WARNING: " .. name .. " " .. version .. " has a bug that results in valid but incorrect CIGAR strings. Because of this, it is recommended to use an older or a newer version instead. For details, see https://github.com/samtools/htslib/issues/1236")
end
snp-pileup --help
.help([[
htstools: Tools to Process BAM Files for Downstream Copy-Number Analysis
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://github.com/mskcc/htstools, https://github.com/mskcc/htstools/releases (changelog)")
whatis([[
Description: Contains three tools (dnafrags, ppflag-fixer, snp-pileup) written by Alex Studer to process bam files for downstream copy number analysis.
Examples: `snp-pileup --help`.
]])
depends_on("htslib")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
igv --help
, igv --version
, and igv
.help([[
IGV: The Integrative Genomics Viewer
]])
-- local name = myModuleName()
local name = "IGV"
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://software.broadinstitute.org/software/igv/, https://github.com/igvteam/igv/tags (changelog), https://github.com/igvteam/igv/ (source code)")
whatis([[
Description: The Integrative Genomics Viewer (IGV) is a high-performance visualization tool for interactive exploration of large, integrated genomic datasets. It supports a wide variety of data types, including array-based and next-generation sequence data, and genomic annotations.
Examples: `igv --help`, `igv --version`, and `igv`.
Warning: IGV (>= 2.5.0) requires Java 11.
]])
--depends_on("openjdk/11")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
local bash = home .. '/igv.sh "$@"'
local csh = home .. '/igv.sh $*'
set_shell_function("igv", bash, csh)
-- Tweak Java for the current environment
depends_on("java-tweaks")
igvtools
moved to IGV as of IGV (>= 2.5.0).igvtools help
.help([[
IGVTools: Tools for Pre-processing HT-Seq Data Files
]])
-- local name = myModuleName()
local name = "IGVTools"
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://software.broadinstitute.org/software/igv/igvtools")
whatis("Description: The igvtools utility provides a set of tools for pre-processing data files. Note, `igvtools` moved to IGV as of IGV (>= 2.5.0). Example: `igvtools help`.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
jags
and man jags
.help([[
JAGS: Just Another Gibbs Sampler
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: statistics")
whatis("URL: http://mcmc-jags.sourceforge.net/, https://sourceforge.net/p/mcmc-jags/code-0/ci/default/tree/NEWS (changelog), https://sourceforge.net/projects/mcmc-jags/ (source code)")
whatis([[
Description: JAGS is Just Another Gibbs Sampler. It is a program for analysis of Bayesian hierarchical models using Markov Chain Monte Carlo (MCMC) simulation not wholly unlike BUGS.
Examples: `jags` and `man jags`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
-- Specific to the Linux distribution?
if string.match(myFileName(), "/_" .. os.getenv("CBI_LINUX") .. "/") then
root = pathJoin(root, "_" .. os.getenv("CBI_LINUX"))
end
local home = pathJoin(root, "JAGS" .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
-- AD HOC:
-- R package 'rjags' uses 'JAGS_LIBDIR' and 'JAGS_INCLUDEDIR' (INSTALL)
-- Comment: Appears not to be needed /HB 2020-03-09
-- pushenv("JAGS_INCLUDEDIR", pathJoin(home, "include"))
-- pushenv("JAGS_LIBDIR", pathJoin(home, "lib"))
-- R package 'runjags' uses 'JAGS_LIB' and 'JAGS_INCLUDE' (README)
-- Comment: Email maintainer about diff to 'rjags' /HB 2020-03-09
-- pushenv("JAGS_INCLUDE", pathJoin(home, "include")) -- Not needed /HB 2020-03-09
pushenv("JAGS_LIB", pathJoin(home, "lib"))
jq --help
, jq --version
, cat in.json | jq .
, and man jq
help([[
jq: Command-line JSON Processor
]])
local name = myModuleName()
local version = myModuleVersion()
version = string.gsub(version, "^[.]", "") -- for hidden modules
whatis("Version: " .. version)
whatis("Keywords: utility, cli")
whatis("URL: https://github.com/jqlang/jq, https://github.com/jqlang/jq/blob/master/NEWS.md (changelog), https://jqlang.github.io/jq (documentation)")
whatis([[
Description: jq is a lightweight and flexible command-line JSON processor.
Examples: `jq --help`, `jq --version`, `cat in.json | jq .`, and `man jq`
Warning: Only the most recent version of this software will be kept.
]])
-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
-- Run time
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
-- Compile time
prepend_path("CPATH", pathJoin(home, "include"))
prepend_path("LIBRARY_PATH", pathJoin(home, "lib"))
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
kallisto version
help([[
kallisto: Near-optimal RNA-Seq Quantification
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://pachterlab.github.io/kallisto/about.html, https://github.com/pachterlab/kallisto/releases (changelog), https://github.com/pachterlab/kallisto (source code)")
whatis([[
Description: kallisto is a program for quantifying abundances of transcripts from RNA-Seq data, or more generally of target sequences using high-throughput sequencing reads. It is based on the novel idea of pseudoalignment for rapidly determining the compatibility of reads with targets, without the need for alignment.
Examples: `kallisto version`
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
lg3 --help
.help([[
lg3: The UCSF Costello Lab's LG3 Pipeline
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, mutations, tumor, normal")
whatis("URL: https://github.com/UCSF-Costello-Lab/LG3_Pipeline")
whatis("Description: This is the LG3 Pipeline developed by the UCSF Costello Lab. Example: `lg3 --help`. Warning: This software can currently only run on the C4 cluster and legacy TIPCC cluster as the UCSF Cancer Center.")
depends_on("tree")
local path = os.getenv("SOFTWARE_ROOT_CBI")
local home = path .. "/" .. name .. "-" .. version
setenv("LG3_HOME", home)
prepend_path("PATH", pathJoin(home, "bin"))
help([[
libSBML: An Open-Source Library for Working with SBML (the Systems Biology Markup Language)
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: programming, library")
whatis("URL: http://sbml.org/Software/libSBML, https://github.com/sbmlteam/libsbml")
whatis("Description: LibSBML is a native library for reading, writing and manipulating files and data streams containing the Systems Biology Markup Language (SBML). It offers language bindings for C, C++, C#, Java, JavaScript, MATLAB, Perl, PHP, Python, R and Ruby.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
-- Runtime
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
-- Build time
prepend_path("CPATH", pathJoin(home, "include"))
--prepend_path("LDFLAGS", "-L" .. pathJoin(home, "lib"), " ")
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
-- In-house env var
--setenv("TILEDB_HOME", home)
markdownlint --version
, markdownlint --help
, markdownlint -- *.md
.help([[
markdownlint-cli: MarkdownLint Command Line Interface
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: cli, utility")
whatis("URL: https://github.com/igorshubovych/markdownlint-cli (documentation), https://github.com/igorshubovych/markdownlint-cli/releases/ (releases), https://github.com/igorshubovych/markdownlint-cli (source code)")
whatis([[
Description:
Examples: `markdownlint --version`, `markdownlint --help`, `markdownlint -- *.md`.
]]
)
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "node_modules", ".bin"))
mc
and mc --version
.help([[
mc: Midnight Commander
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, files, cli, tui")
whatis("URL: https://midnight-commander.org/, https://github.com/MidnightCommander/mc/blob/master/doc/NEWS (changelog), https://github.com/MidnightCommander/mc (source code), https://github.com/MidnightCommander/mc/tags (download)")
whatis([[
Description: GNU Midnight Commander is a visual file manager. It's a feature rich full-screen text mode application that allows you to copy, move and delete files and whole directory trees, search for files and run commands in the subshell. Internal viewer and editor are included.
Examples: `mc` and `mc --version`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
help([[
[DEFUNCT] Miniconda: A Free Minimal Installer for Conda
]])
local name = myModuleName()
local version = myModuleVersion()
version = string.gsub(version, "^[.]", "") -- for hidden modules
local new = "miniconda3/" .. version .. "-py39"
whatis("Version: " .. version)
whatis("Keywords: deprecated, defunct")
whatis([[
Warning: This module is defunct and has been superseeded by module 'miniconda3'. Please use that module instead.
]])
depends_on(new)
LmodError("[DEFUNCT ERROR] The CBI '" .. name .. "/" .. version .. "' module has been renamed to '" .. new .. "'; please use that module instead")
help([[
[DEFUNCT] Miniconda: A Free Minimal Installer for Conda
]])
local name = myModuleName()
local version = myModuleVersion()
version = string.gsub(version, "^[.]", "") -- for hidden modules
local new = "miniconda3/" .. version .. "-py310"
whatis("Version: " .. version)
whatis("Keywords: deprecated, defunct")
whatis([[
Warning: This module is defunct and has been superseeded by module 'miniconda3'. Please use that module instead.
]])
LmodError("[DEFUNCT ERROR] The CBI '" .. name .. "/" .. version .. "' module has been renamed to '" .. new .. "'; please use that module instead")
conda --version
, conda create --name=myenv
, conda env list
, conda activate myenv
, conda info
, and conda deactive
.conda init
. If you do this by mistake, please undo by conda init --reverse
.help([[
Miniconda: A Free Minimal Installer for Conda
]])
local warning = "Use at your own peril! Software tools installed via Conda are known to cause conflicts with other software on the system, including core software provided by the operating system as well as other software from the CBI stack. For example, do not install R packages running R from the CBI stack, while conda is activated."
local name = myModuleName()
local version = myModuleVersion()
version = string.gsub(version, "^[.]", "") -- for hidden modules
whatis("Version: " .. version)
whatis("Keywords: files, utility")
whatis("URL: https://docs.conda.io/en/latest/, https://docs.conda.io/en/latest/miniconda.html (documentation), https://docs.conda.io/en/latest/miniconda.html#latest-miniconda-installer-links (releases), https://github.com/conda/conda/blob/master/CHANGELOG.md (changelog), https://github.com/conda/conda (source code)")
whatis([[
Description: Miniconda is a free minimal installer for conda. It is a small, bootstrap version of Anaconda that includes only conda, Python, the packages they depend on, and a small number of other useful packages, including pip, zlib and a few others.
Examples: `conda --version`, `conda create --name=myenv`, `conda env list`, `conda activate myenv`, `conda info`, and `conda deactive`.
Warning: For now, this module works only in Bash. Also, do _not_ do `conda init`. If you do this by mistake, please undo by `conda init --reverse`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
if mode() == "load" then
-- ASSERT: Make sure there is no other active conda environment
if os.getenv("CONDA_EXE") then
LmodError("Cannot load " .. name .. " module, because another conda installation is already enabled (detected environment variable CONDA_EXE='" .. os.getenv("CONDA_EXE") .. "'). Have you installed conda on your own? If so, run 'conda config --set auto_activate_base false' and then log out and log back in again. If that is not sufficient, please run 'conda init --reverse' and log out and back in again.")
end
pushenv("CONDA_EXE", pathJoin(home, "bin", "conda"))
pushenv("CONDA_PYTHON_EXE", pathJoin(home, "bin", "python"))
pushenv("_CE_M", "")
pushenv("_CE_CONDA", "")
elseif mode() == "unload" then
pushenv("CONDA_EXE", false)
pushenv("CONDA_PYTHON_EXE", false)
pushenv("_CE_M", false)
pushenv("_CE_CONDA", false)
end
-- Don't edit! Created using:
-- /usr/share/lmod/lmod/libexec/sh_to_modulefile /software/c4/cbi/software/miniconda3-23.3.1-0-py39/etc/profile.d/conda.sh
pushenv("CONDA_EXE","/software/c4/cbi/software/miniconda3-23.3.1-0-py39/bin/conda")
pushenv("CONDA_PYTHON_EXE","/software/c4/cbi/software/miniconda3-23.3.1-0-py39/bin/python")
pushenv("CONDA_SHLVL","0")
prepend_path("PATH","/software/c4/cbi/software/miniconda3-23.3.1-0-py39/condabin")
pushenv("_CE_CONDA","")
pushenv("_CE_M","")
set_shell_function("__conda_activate"," \
if [ -n \"${CONDA_PS1_BACKUP:+x}\" ]; then\
PS1=\"$CONDA_PS1_BACKUP\";\
\\unset CONDA_PS1_BACKUP;\
fi;\
\\local ask_conda;\
ask_conda=\"$(PS1=\"${PS1:-}\" __conda_exe shell.posix \"$@\")\" || \\return;\
\\eval \"$ask_conda\";\
__conda_hashr\
","")
set_shell_function("__conda_exe"," \
( \"$CONDA_EXE\" $_CE_M $_CE_CONDA \"$@\" )\
","")
set_shell_function("__conda_hashr"," \
if [ -n \"${ZSH_VERSION:+x}\" ]; then\
\\rehash;\
else\
if [ -n \"${POSH_VERSION:+x}\" ]; then\
:;\
else\
\\hash -r;\
fi;\
fi\
","")
set_shell_function("__conda_reactivate"," \
\\local ask_conda;\
ask_conda=\"$(PS1=\"${PS1:-}\" __conda_exe shell.posix reactivate)\" || \\return;\
\\eval \"$ask_conda\";\
__conda_hashr\
","")
set_shell_function("conda"," \
\\local cmd=\"${1-__missing__}\";\
case \"$cmd\" in \
activate | deactivate)\
__conda_activate \"$@\"\
;;\
install | update | upgrade | remove | uninstall)\
__conda_exe \"$@\" || \\return;\
__conda_reactivate\
;;\
*)\
__conda_exe \"$@\"\
;;\
esac\
","")
conda --version
, conda create --name=myenv
, conda env list
, conda activate myenv
, conda info
, and conda deactive
.conda init
. If you do this by mistake, please undo by conda init --reverse
.help([[
Miniforge: A Free Minimal Installer for Conda
]])
local warning = "Use at your own peril! Software tools installed via Conda are known to cause conflicts with other software on the system, including core software provided by the operating system as well as other software from the CBI stack. For example, do not install R packages running R from the CBI stack, while conda is activated."
local name = myModuleName()
local version = myModuleVersion()
version = string.gsub(version, "^[.]", "") -- for hidden modules
whatis("Version: " .. version)
whatis("Keywords: files, utility")
whatis("URL: https://conda-forge.org/, https://conda-forge.org/docs/user/introduction/ (documentation), https://github.com/conda-forge/miniforge/releases (releases), https://github.com/conda/conda/blob/master/CHANGELOG.md (changelog), https://github.com/conda/conda (source code)")
whatis([[
Description: Miniforge is a free minimal installer for conda. Miniforge is a community effort to provide Miniconda-like installers, with the added feature that conda-forge is the default channel.
Examples: `conda --version`, `conda create --name=myenv`, `conda env list`, `conda activate myenv`, `conda info`, and `conda deactive`.
Warning: For now, this module works only in Bash. Also, do _not_ do `conda init`. If you do this by mistake, please undo by `conda init --reverse`.
]])
conflict("miniconda3")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
-- Miniconda (>= 23.11.0) [2023-11-30]:
-- Prevent conda from add shortcuts to user's Desktop.
pushenv("CONDA_SHORTCUTS", "false")
if mode() == "load" then
-- ASSERT: Make sure there is no other active conda environment
if os.getenv("CONDA_EXE") then
LmodError("Cannot load " .. name .. " module, because another conda installation is already enabled (detected environment variable CONDA_EXE='" .. os.getenv("CONDA_EXE") .. "'). Have you installed conda on your own? If so, run 'conda config --set auto_activate_base false' and then log out and log back in again. If that is not sufficient, please run 'conda init --reverse' and log out and back in again.")
end
pushenv("CONDA_EXE", pathJoin(home, "bin", "conda"))
pushenv("CONDA_PYTHON_EXE", pathJoin(home, "bin", "python"))
pushenv("_CE_M", "")
pushenv("_CE_CONDA", "")
elseif mode() == "unload" then
pushenv("CONDA_EXE", "false")
pushenv("CONDA_PYTHON_EXE", "false")
pushenv("_CE_M", "false")
pushenv("_CE_CONDA", "false")
end
-- Don't edit! Created using:
-- /usr/share/lmod/lmod/libexec/sh_to_modulefile /software/c4/cbi/software/miniforge3-24.9.2-0/etc/profile.d/conda.sh
pushenv("CONDA_EXE","/software/c4/cbi/software/miniforge3-24.9.2-0/bin/conda")
pushenv("CONDA_PYTHON_EXE","/software/c4/cbi/software/miniforge3-24.9.2-0/bin/python")
pushenv("CONDA_SHLVL","0")
prepend_path("PATH","/software/c4/cbi/software/miniforge3-24.9.2-0/condabin")
pushenv("_CE_CONDA","")
pushenv("_CE_M","")
set_shell_function("__conda_activate"," \
if [ -n \"${CONDA_PS1_BACKUP:+x}\" ]; then\
PS1=\"$CONDA_PS1_BACKUP\";\
\\unset CONDA_PS1_BACKUP;\
fi;\
\\local ask_conda;\
ask_conda=\"$(PS1=\"${PS1:-}\" __conda_exe shell.posix \"$@\")\" || \\return;\
\\eval \"$ask_conda\";\
__conda_hashr\
","")
set_shell_function("__conda_exe"," \
( \"$CONDA_EXE\" $_CE_M $_CE_CONDA \"$@\" )\
","")
set_shell_function("__conda_hashr"," \
if [ -n \"${ZSH_VERSION:+x}\" ]; then\
\\rehash;\
else\
if [ -n \"${POSH_VERSION:+x}\" ]; then\
:;\
else\
\\hash -r;\
fi;\
fi\
","")
set_shell_function("__conda_reactivate"," \
\\local ask_conda;\
ask_conda=\"$(PS1=\"${PS1:-}\" __conda_exe shell.posix reactivate)\" || \\return;\
\\eval \"$ask_conda\";\
__conda_hashr\
","")
set_shell_function("conda"," \
\\local cmd=\"${1-__missing__}\";\
case \"$cmd\" in \
activate | deactivate)\
__conda_activate \"$@\"\
;;\
install | update | upgrade | remove | uninstall)\
__conda_exe \"$@\" || \\return;\
__conda_reactivate\
;;\
*)\
__conda_exe \"$@\"\
;;\
esac\
","")
mutect
, which is short for java -Xmx2g -jar "$MUTECT_JAR"
.help([[
muTect: Identification of Somatic Point Mutations in Next Generation Sequencing Data of Cancer Genomes
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, genome")
whatis("URL: https://github.com/broadinstitute/mutect, https://software.broadinstitute.org/cancer/cga/mutect")
whatis("Description: MuTect is a method developed at the Broad Institute for the reliable and accurate identification of somatic point mutations in next generation sequencing data of cancer genomes. Example: `mutect`, which is short for `java -Xmx2g -jar \"$MUTECT_JAR\"`.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
name = "muTect"
pushenv("MUTECT_HOME", home)
local jarfile = pathJoin(home, name .. "-" .. version .. ".jar")
pushenv("MUTECT_JAR", jarfile)
set_alias("mutect", "java -Xmx2g -jar " .. jarfile)
ncdu --version
, ncdu --help
, and ncdu
. For large cleanup tasks, call ncdu --one-file-system -o ncdu.cache
once to scan all files, and then use ncdu --enable-delete -f ncdu.cache
to clean them out.help([[
ncdu: NCurses Disk Usage
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, cli, files")
whatis("URL: https://dev.yorhel.nl/ncdu, https://dev.yorhel.nl/ncdu/man2 (documentation), https://dev.yorhel.nl/ncdu/changes2 (changelog), https://code.blicky.net/yorhel/ncdu/ (source code)")
whatis([[
Description: Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don’t have an entire graphical setup available, but it is a useful tool even on regular desktop systems. Ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like environment with ncurses installed.
Examples: `ncdu --version`, `ncdu --help`, and `ncdu`. For large cleanup tasks, call `ncdu --one-file-system -o ncdu.cache` once to scan all files, and then use `ncdu --enable-delete -f ncdu.cache` to clean them out.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
pandoc --version
.help([[
Pandoc: A Universal Document Converter
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: cli, shell")
whatis("URL: https://pandoc.org/, https://pandoc.org/releases.html (changelog), https://github.com/jgm/pandoc (source code)")
whatis([[
Description: Pandoc is a Haskell library and software tool for converting from one markup format to another, and a command-line tool that uses this library.
Examples: `pandoc --version`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
pdfcrop --help
and pdfcrop A4 input.pdf
.help([[
PDFCrop: Crop and Rescale PDFs
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, tool")
whatis("URL: https://pdfcrop.sourceforge.net/ (documentation), https://sourceforge.net/projects/pdfcrop/files/pdfcrop/ (changelog)")
whatis([[
Description: PDFCrop crops the white margins of PDF pages and rescales them to fit a standard size sheet of paper. It makes printed pages much easier to read. PDFCrop is particularly useful for resizing journal articles and converting between letter-size and A4 paper.
Examples: `pdfcrop --help` and `pdfcrop A4 input.pdf`.
]])
-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
PicardCommandLine -h
, which is short for java -jar "$PICARD_HOME/picard.jar" -h
.picard
alias is deprecated. Use function PicardCommandLine
instead. Picard 3 requires Java 17, Picard 2 requires Java 1.8.help([[
Picard: Command-Line Tools for Manipulating High-throughput Sequencing Data and Formats
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://broadinstitute.github.io/picard/, https://github.com/broadinstitute/picard/releases (changelog), https://github.com/broadinstitute/picard (source code)")
whatis([[
Description: Picard is a set of command line tools for manipulating high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF.
Examples: `picard -h`, which is an alias for `java -jar $PICARD_HOME/picard.jar -h`
]])
local version_x = string.gsub(version, "[.].*", "")
if (version_x == "1") then
-- Pindel 1.64 requires Java (<= 1.6)
depends_on("openjdk/1.6.0")
else
-- As of version 2.0.1 (Nov. 2015) Picard requires Java 1.8 (jdk8u66)
depends_on("openjdk/1.8.0")
end
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
pushenv("PICARD_HOME", home)
set_alias("picard", "java -jar \"$PICARD_HOME/picard.jar\"")
-- Tweak Java for the current environment
depends_on("java-tweaks")
pindel
.help([[
pindel: Detection of Indels and Structural Variations
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://www.sanger.ac.uk/science/tools/pindel, https://github.com/genome/pindel")
whatis("Description: Pindel can detect breakpoints of large deletions, medium sized insertions, inversions, tandem duplications and other structural variants at single-based resolution from next-gen sequence data. It uses a pattern growth approach to identify the breakpoints of these variants from paired-end short reads. Example: `pindel`.")
if (version == "0.2.4t") then
load("samtools/0.1.18")
else
load("htslib")
end
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
plink --help
.help([[
PLINK: Whole Genome Association Analysis Toolset
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: genomics")
whatis("URL: https://www.cog-genomics.org/plink/")
whatis("Description: PLINK is a free, open-source whole genome association analysis toolset, designed to perform a range of basic, large-scale analyses in a computationally efficient manner. The focus of PLINK is purely on analysis of genotype/phenotype data, so there is no support for steps prior to this (e.g. study design and planning, generating genotype or CNV calls from raw data). Example: `plink --help`.")
-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
plink2 --help
, plink2 --version
, and plink2 --threads 1 ...
.--threads ncores
to avoid this, e.g. --threads 1
.help([[
PLINK2: Whole Genome Association Analysis Toolset
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: genomics")
whatis("URL: https://www.cog-genomics.org/plink/2.0/, https://www.cog-genomics.org/plink/2.0/#recent (changelog), https://github.com/chrchang/plink-ng (source code)")
whatis([[
Description: PLINK is a free, open-source whole genome association analysis toolset, designed to perform a range of basic, large-scale analyses in a computationally efficient manner. The focus of PLINK is purely on analysis of genotype/phenotype data, so there is no support for steps prior to this (e.g. study design and planning, generating genotype or CNV calls from raw data).
Examples: `plink2 --help`.
]])
-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
port4me --help
, port4me
, port4me --tool=jupyter
).help([[
port4me: Get the Same, Personal, Free TCP Port over and over
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, cli")
whatis("URL: https://github.com/HenrikBengtsson/port4me, https://github.com/HenrikBengtsson/port4me/blob/develop/NEWS.md (changelog)")
whatis([[
Description: 'port4me' attempts, with high probability, to provide the user with the same, free port each time, even when used on different days.
Examples: `port4me --help`, `port4me`, `port4me --tool=jupyter`).
Warning: This tool is under development.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
geod
, proj
and man proj
.help([[
PROJ: PROJ Coordinate Transformation Software Library
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: statistics, spatial")
whatis("URL: https://proj.org/, https://proj.org/news.html (changelog), https://github.com/OSGeo/PROJ (source code)")
whatis("Description: PROJ is a generic coordinate transformation software that transforms geospatial coordinates from one coordinate reference system (CRS) to another. This includes cartographic projections as well as geodetic transformations. PROJ includes command line applications for easy conversion of coordinates from text files or directly from user input. In addition to the command line utilities PROJ also exposes an application programming interface, or API in short. The API lets developers use the functionality of PROJ in their own software without having to implement similar functionality themselves. Example: `geod`, `proj` and `man proj`.")
if (version >= "7.2.0") then
depends_on("sqlite")
end
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
-- From 'make install':
-- If you ever happen to want to link against installed libraries
-- in a given directory, LIBDIR, you must either use libtool, and
-- specify the full pathname of the library, or use the '-LLIBDIR'
-- flag during linking and do at least one of the following:
-- - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
-- during execution
-- - add LIBDIR to the 'LD_RUN_PATH' environment variable
-- during linking
-- - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
-- - have your system administrator add LIBDIR to '/etc/ld.so.conf'
quarto --version
and quarto --help
.help([[
quarto-cli: Open-Source Scientific and Technical Publishing System Built on Pandoc
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: markdown")
whatis("URL: https://quarto.org/, https://quarto.org/docs/guide/ (documentation), https://github.com/quarto-dev/quarto-cli/releases (changelog), https://github.com/quarto-dev/quarto-cli/ (source code)")
whatis([[
Description: Quarto is an open-source scientific and technical publishing system built on Pandoc; (i) Create dynamic content with Python, R, Julia, and Observable, (ii) Author documents as plain text markdown or Jupyter notebooks, (iii) Publish high-quality articles, reports, presentations, websites, blogs, and books in HTML, PDF, MS Word, ePub, and more, (iv) Author with scientific markdown, including equations, citations, crossrefs, figure panels, callouts, advanced layout, and more.
Examples: `quarto --version` and `quarto --help`.
Warning: Only the most recent version of this software will be kept.
]])
depends_on("pandoc")
-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
R
, R --version
, and Rscript --version
.help([[
R: The R Programming Language
]])
local name = myModuleName()
local version = "4.2.0-gcc13"
version = string.gsub(version, "^[.]", "") -- for hidden modules
whatis("Version: " .. version)
whatis("Keywords: Programming, Statistics")
whatis("URL: https://www.r-project.org/, https://cran.r-project.org/doc/manuals/r-release/NEWS.html (changelog)")
whatis([[
Description: The R programming language.
Examples: `R`, `R --version`, and `Rscript --version`.
]])
has_devtoolset = function(version)
local path = pathJoin("/opt", "rh", "devtoolset-" .. version)
return(isDir(path))
end
has_gcc_toolset = function(version)
local path = pathJoin("/opt", "rh", "gcc-toolset-" .. version)
return(isDir(path))
end
local name = "R"
local root = os.getenv("SOFTWARE_ROOT_CBI")
-- Specific to the Linux distribution?
if string.match(myFileName(), "/_" .. os.getenv("CBI_LINUX") .. "/") then
root = pathJoin(root, "_" .. os.getenv("CBI_LINUX"))
end
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
local path = pathJoin(home, "lib")
if not isDir(path) then
path = pathJoin(home, "lib64")
end
prepend_path("LD_LIBRARY_PATH", pathJoin(path, "R", "lib"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
local v = version
v = string.gsub(v, "-.*", "")
-- WORKAROUND: R 3.6.0 is not compatible with BeeGFS
if v == "3.6.0" then
pushenv("R_INSTALL_STAGED", "false")
else
pushenv("R_INSTALL_STAGED", "true")
end
local r_libs_user
if os.getenv("CBI_LINUX") == "centos7" then
r_libs_user="~/R/%p-library/%v-CBI"
else
r_libs_user="~/R/" .. os.getenv("CBI_LINUX") .. "-" .. "%p-library/%v-CBI"
end
if (v >= "4.1.0") then
local gv = string.gsub(version, v, "")
gv = string.gsub(gv, "-alpha", "")
gv = string.gsub(gv, "-beta", "")
gv = string.gsub(gv, "-rc", "")
gv = string.gsub(gv, "-gcc", "")
if (gv ~= "") then
gv = tonumber(gv)
if (gv > 4) then
r_libs_user = r_libs_user .. "-gcc" .. gv
if has_devtoolset(gv) then
depends_on("scl-devtoolset/" .. gv)
elseif has_gcc_toolset(gv) then
depends_on("scl-gcc-toolset/" .. gv)
end
end
end
end
-- Avoid R CMD build warning on "invalid uid value replaced by that for user 'nobody'"
-- https://stackoverflow.com/questions/30599326
pushenv("R_BUILD_TAR", "tar")
-- In-house env var for R repositories mirrored locally
local r_repos_root = os.getenv("CBI_SHARED_ROOT")
if (r_repos_root) then
LmodMessage("r_repos_root=" .. r_repos_root)
r_repos_root = pathJoin(r_repos_root, "mirrors", "r-mirrors")
pushenv("R_REPOS_ROOT", r_repos_root)
pushenv("R_REPOS_CRAN", "file://" .. pathJoin(r_repos_root, "cran"))
pushenv("R_LOCAL_CRAN", "file://" .. pathJoin(r_repos_root, "cran"))
end
-- R packages built from native code and installed using R from EPEL is *not*
-- always compatible with ditto installed using R from the CBI software stack.
-- Because of this, we will use R_LIBS_USER specific to the CBI stack.
-- However, since some users has already installed to the built-in R_LIBS_USER
-- we will not change this for such users. The heuristic is to check if the
-- built-in R_LIBS_USER folder already exists. If not, then it's safe to use
-- one specific to the CBI stack.
pushenv("R_LIBS_USER", r_libs_user)
-- The R package 'renv' (https://cran.r-project.org/package=renv) is used to create
-- folder-specific R package library folder that help with reproducibility and long-term
-- stability. By setting RENV_PATHS_PREFIX_AUTO=TRUE, these folders are also specific
-- for the current Linux distribution, which avoids problems occurring when updating
-- from, say, CentOS 7 to Rocky 8. This is likely to become the default behavior in
-- 'renv' (https://github.com/rstudio/renv/issues/1211)
pushenv("RENV_PATHS_PREFIX_AUTO", "TRUE")
-- WORKAROUND: utils::download.file(), which is for instance used by install.packages()
-- have a built-in timeout at 60 seconds. This might be too short for some larger
-- Bioconductor annotation packages, e.g.
-- * 'SNPlocs.Hsapiens.dbSNP150.GRCh38' (2.10 GB)
-- * 'MafDb.gnomAD.r2.1.GRCh38' (6.04 GB) => 6 GB/10 min = 600 MB/min = 10 MB/s = 80 Mb/s
-- Use 20 minutes timeout instead of 1 minute, i.e. enought with 40 Mb/s for a 6 GB file
pushenv("R_DEFAULT_INTERNET_TIMEOUT", "1200")
-- WORKAROUND: gert 1.1.0 (2021-01-25) installs toward a static libgit2 that
-- gives 'Illegal instruction' on some hosts (with older CPUs?)
-- See https://github.com/r-lib/gert/issues/117
pushenv("USE_SYSTEM_LIBGIT2", "true")
-- WORKAROUND: Package udunits2 does not install out of the box and requires
-- manually specifying 'configure.args' during install unless we set the
-- following environment variable
local path = "/usr/include/udunits2"
if (isDir(path)) then
pushenv("UDUNITS2_INCLUDE", path)
end
-- WORKAROUND: nloptr 2.0.0 requires CMake (>= 3.15)
-- See https://github.com/astamm/nloptr/issues/104#issuecomment-1111498876
pushenv("CMAKE_BIN", "cmake3")
-- Assert that there is no active Conda environment
assert_no_conda_environment = function()
local conda_env = os.getenv("CONDA_DEFAULT_ENV")
if conda_env ~= nil then
local action = os.getenv("CBI_ON_CONDA") or "warning"
local msg = "Using the " .. "'" .. myModuleName() .. "'" .. " module when a Conda environment is active risks resulting in hard-to-troubleshoot errors due to library conflicts. Make sure to deactivate the currently active Conda " .. "'" .. conda_env .. "'" .. " environment before loading this module, e.g. 'conda deactivate'."
if action == "error" then
LmodError(msg)
elseif action == "warning" then
LmodWarning(msg)
end
end
end
-- Protect against a conflicting Conda stack
if (mode() == "load") then
assert_no_conda_environment()
end
rclone --version
, rclone --help
, rclone config
, and man rclone
.help("rclone: Rsync for Cloud Storage and More")
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: files, transfers")
whatis("URL: https://rclone.org/, https://rclone.org/changelog/ (changelog), https://github.com/rclone/rclone (source code)")
whatis([[
Description: Rclone is a command line program to sync files and directories to and from a large number of end points on the local file system, or remote file systems, and in the cloud.
Examples: `rclone --version`, `rclone --help`, `rclone config`, and `man rclone`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
prepend_path("MANPATH", pathJoin(home, "share", "man"))
redis-cli --version
, redis-cli --help
, redis-server --version
, and redis-server --help
.help([[
redis: Remote Dictionary Server
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: database")
whatis("URL: https://redis.io/, https://redis.io/docs/ (docs), https://github.com/redis/redis/releases (changelog), https://github.com/redis/redis (source code)")
whatis([[
Description: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.
Examples: `redis-cli --version`, `redis-cli --help`, `redis-server --version`, and `redis-server --help`.
Warning: Only the most recent version of this software will be kept.
]])
-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
restic --help
and restic version
.help([[
restic: Fast, Secure, Efficient Backup Program
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: cli, backup, files")
whatis("URL: https://restic.net, https://restic.readthedocs.io/en/latest/ (documentation), https://github.com/restic/restic/releases (changelog), https://github.com/restic/restic (source code)")
whatis([[
Description: restic is a backup program that is fast, efficient and secure. It supports the three major operating systems (Linux, macOS, Windows) and a few smaller ones (FreeBSD, OpenBSD).
Examples: `restic --help` and `restic version`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
prepend_path("MANPATH", pathJoin(home, "man"))
rg --version
and rg -i 'lorem ipsum'
.help([[
ripgrep: Recursively Searches Directories for a Regex Pattern
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, files, search")
whatis("URL: https://github.com/BurntSushi/ripgrep, https://github.com/BurntSushi/ripgrep/blob/master/CHANGELOG.md (changelog)")
whatis([[
Description: ripgrep is a line-oriented search tool that recursively searches your current directory for a regex pattern. By default, ripgrep will respect your .gitignore and automatically skip hidden files/directories and binary files. ripgrep is similar to other popular search tools like The Silver Searcher, ack and grep.
Examples: `rg --version` and `rg -i 'lorem ipsum'`.
Warning: Only the most recent version of this software will be kept.
]])
-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
rstudio
. If you get a blank window, retry with QMLSCENE_DEVICE=softwarecontext rstudio
.ssh -X -C ...
.help([[
rstudio: RStudio Desktop
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: programming, R, GUI")
whatis("URL: https://rstudio.com/products/rstudio/#rstudio-desktop, https://www.rstudio.com/products/rstudio/release-notes/, https://www.rstudio.com/products/rstudio/download/")
whatis("Description: The RStudio Desktop is an integrated development environment (IDE) for R, a programming language for statistical computing and graphics. Example: `rstudio`. If you get blank window, retry with `QMLSCENE_DEVICE=softwarecontext rstudio`. Warning: This software works only on the development nodes and requires that X11 Forwarding or NX is enabled. For best performance, use SSH compression when using X11 Forwarding, i.e. `ssh -X -C ...`.")
depends_on("r")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
rserver
.help([[
RStudio Server: The RStudio Server
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: programming, R, GUI")
whatis("URL: https://posit.co/products/open-source/rstudio/#rstudio-server, https://www.rstudio.com/products/rstudio/release-notes/ (changelog), https://github.com/rstudio/rstudio/ (source code)")
whatis([[
Description: The RStudio Server is an integrated development environment (IDE) for R that can be used from the web browser.
Examples: `rserver`.
]])
depends_on("r")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
rsc --help
, rsc start
, and rsc stop
.help([[
RSC: An RStudio Server Controller
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: programming, R, RStudio Server, GUI")
whatis("URL: https://github.com/UCSF-CBI/rstudio-server-controller, https://github.com/UCSF-CBI/rstudio-server-controller/blob/main/NEWS.md (changelog)")
whatis([[
Description: The RStudio Server Controller (RSC) is a tool for launching a personal instance of the RStudio Server on a Linux machine, which then can be access via the web browser, either directly or via SSH tunneling.
Examples: `rsc --help`, `rsc start`, and `rsc stop`.
]])
depends_on("r")
depends_on("rstudio-server")
local home = os.getenv("HOME")
-- System-specific settings
if isDir("/wynton") then
-- Update default to: rsc start --auth=auth-via-env --random-password
pushenv("RSC_AUTH", "auth-via-env")
pushenv("RSC_PASSWORD", "random")
if home and string.find(home, "/protected/") then
pushenv("RSC_SSH_LOGIN_HOSTNAME", "plog1.wynton.ucsf.edu")
else
pushenv("RSC_SSH_LOGIN_HOSTNAME", "log1.wynton.ucsf.edu")
end
elseif isDir("/c4") then
pushenv("RSC_SSH_LOGIN_HOSTNAME", "c4-log1.ucsf.edu")
else
try_load("expect")
end
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
-- Temporary workaround for https://github.com/UCSF-CBI/rstudio-server-controller/issues/91 /2023-12-15
setenv("PORT4ME_PORT_COMMAND", "netstat")
salmon --version
.help([[
salmon: Salmon Provides Fast and Bias-Aware Quantification of Transcript Expression
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://combine-lab.github.io/salmon/, https://github.com/COMBINE-lab/salmon")
whatis("Description: Highly-accurate & wicked fast transcript-level quantification from RNA-seq reads using selective alignment. Example: `salmon --version`.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
samtools --version
.help([[
SAMtools: Tools (written in C using htslib) for Manipulating Next-Generation Sequencing Data
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://www.htslib.org/, https://github.com/samtools/samtools/blob/develop/NEWS (changelog), https://github.com/samtools/samtools (source code)")
whatis([[
Description: SAMtools is a suite of programs for interacting with high-throughput sequencing data.
Examples: `samtools --version`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
local version_x = string.gsub(version, "[.].*", "")
if (version_x == "0") then
prepend_path("PATH", home)
prepend_path("PATH", pathJoin(home, "bcftools"))
prepend_path("PATH", pathJoin(home, "misc"))
else
prepend_path("PATH", pathJoin(home, "bin"))
end
prepend_path("MANPATH", pathJoin(home, "share", "man"))
-- Warn about bug https://github.com/samtools/htslib/issues/1236
if (mode() == "load" and version == "1.11") then
LmodMessage("MODULE WARNING: " .. name .. " " .. version .. " has a bug that results in valid but incorrect CIGAR strings. Because of this, it is recommended to use an older or a newer version instead. For details, see https://github.com/samtools/htslib/issues/1236")
end
gcc-toolset-<version>
in the current environment. This is an alternative to calling source scl_source enable gcc-toolset-<version>
, which is an approach that is not officially supported by RedHat.gcc --version
.help([[
SCL GCC Toolset: GNU Compiler Collection, GNU Debugger, etc.
]])
local name = myModuleName()
local version = myModuleVersion()
local scl_name = "gcc-toolset" .. "-" .. version
whatis("Version: " .. version)
whatis("Keywords: programming, gcc")
whatis("URL: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/developing_c_and_cpp_applications_in_rhel_8/additional-toolsets-for-development_developing-applications#gcc-toolset_assembly_additional-toolsets-for-development, https://gcc.gnu.org/develop.html#timeline (GCC release schedule)")
whatis([[
Description: These Developer Toolset provides modern versions of the GNU Compiler Collection, GNU Debugger, and other development, debugging, and performance monitoring tools. Loading these modules enables the corresponding RedHat Software Collection (SCL) `gcc-toolset-<version>` in the current environment. This is an alternative to calling `source scl_source enable gcc-toolset-<version>`, which is an approach that is not officially supported by RedHat.
Examples: `gcc --version`. Warning: Older versions may be removed in the future.
Requirement: Rocky 8.
]])
-- This module is only available on Rocky 8
if os.getenv("CBI_LINUX") ~= "rocky8" then
LmodError("Module '" .. myModuleFullName() .. "' is only available on Rocky 8 machines, but not on host '" .. os.getenv("HOSTNAME") .. "', which runs '" .. os.getenv("CBI_LINUX") .. "'")
end
local home = pathJoin("/opt", "rh", scl_name)
if not isDir(home) then
LmodError("Module '" .. myModuleFullName() .. "' is not supported because this host '" .. os.getenv("HOSTNAME") .. "' does not have path '" .. home .. "'")
end
-- Don't edit! Created using:
-- /usr/share/lmod/lmod/libexec/sh_to_modulefile /opt/rh/gcc-toolset-10/enable
setenv("INFOPATH","/opt/rh/gcc-toolset-10/root/usr/share/info")
prepend_path("LD_LIBRARY_PATH","/opt/rh/gcc-toolset-10/root/usr/lib64")
prepend_path("LD_LIBRARY_PATH","/opt/rh/gcc-toolset-10/root/usr/lib/dyninst")
prepend_path("LD_LIBRARY_PATH","/opt/rh/gcc-toolset-10/root/usr/lib64/dyninst")
prepend_path("LD_LIBRARY_PATH","/opt/rh/gcc-toolset-10/root/usr/lib")
prepend_path("LD_LIBRARY_PATH","/opt/rh/gcc-toolset-10/root/usr/lib64")
prepend_path("MANPATH","/opt/rh/gcc-toolset-10/root/usr/share/man")
prepend_path("PATH","/opt/rh/gcc-toolset-10/root/usr/bin")
setenv("PCP_DIR","/opt/rh/gcc-toolset-10/root")
setenv("PKG_CONFIG_PATH","/opt/rh/gcc-toolset-10/root/usr/lib64/pkgconfig")
shellcheck --version
and shellcheck -x ~/.bashrc
.help([[
ShellCheck: A Shell Script Static Analysis Tool
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: programming, shell, sh, bash, dash, ksh")
whatis("URL: https://www.shellcheck.net/, https://github.com/koalaman/shellcheck/blob/master/CHANGELOG.md (changelog), https://github.com/koalaman/shellcheck/ (source code)")
whatis([[
Description: ShellCheck finds bugs in your shell scripts.
Examples: `shellcheck --version` and `shellcheck -x ~/.bashrc`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
snpEff -help
and SnpSift -help
, which are short for java -jar $SNPEFF_HOME/snpEff/snpEff.jar -help
and java -jar $SNPEFF_HOME/snpEff/SnpSift.jar -help
. In SnpEff (< 5.0), there is also ClinEff -help
, which is short for java -jar $SNPEFF_HOME/ClinEff/ClinEff.jar -help
.help([[
SnpEff: Genetic Variant Annotation and Effect Prediction Toolbox
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: high-throughput sequencing")
whatis("URL: http://snpeff.sourceforge.net/")
whatis("Description: SnpEff is a variant annotation and effect prediction tool. It annotates and predicts the effects of variants on genes (such as amino acid changes). Example: `snpEff -help`, `SnpSift -help`, and `ClinEff -help`, which are aliases for `java -jar $SNPEFF_HOME/snpEff/snpEff.jar -help`, `java -jar $SNPEFF_HOME/snpEff/SnpSift.jar -help`, and `java -jar $SNPEFF_HOME/clinEff/ClinEff.jar -help`.")
local name = "snpEff"
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
pushenv("SNPEFF_HOME", home)
local jarfile = pathJoin(home, "snpEff", "snpEff.jar")
pushenv("SNPEFF", jarfile)
set_alias("snpEff", "java -jar " .. jarfile)
local jarfile = pathJoin(home, "snpEff", "SnpSift.jar")
pushenv("SNPSIFT", jarfile)
set_alias("SnpSift", "java -jar " .. jarfile)
local jarfile = pathJoin(home, "clinEff", "ClinEff.jar")
pushenv("CLINEFF", jarfile)
set_alias("ClinEff", "java -jar " .. jarfile)
sqlite3 --version
.help([[
sqlite: SQLite Database Engine & Library
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: database, utilize")
whatis("URL: https://sqlite.org/, https://sqlite.org/docs.html (docs), https://github.com/sqlite/sqlite/tags (changelog), https://github.com/sqlite/sqlite (source code)")
whatis([[
Description: SQLite is a relational database management system (RDBMS) contained in a C library. In contrast to many other database management systems, SQLite is not a client–server database engine. Rather, it is embedded into the end program.
Example: `sqlite3 --version`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
-- Specific to the Linux distribution?
if string.match(myFileName(), "/_" .. os.getenv("CBI_LINUX") .. "/") then
root = pathJoin(root, "_" .. os.getenv("CBI_LINUX"))
end
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
fastq-dump --help
.fasterq-dump
crashes the local machine, it has been tweaked such that it uses $TMPDIR
rather than $PWD
as the default temporary folder and it will only use two threads instead of six by default.help([[
SRA Toolkit: Tools and Libraries for Using Data in the INSDC Sequence Read Archives
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://github.com/ncbi/sra-tools/wiki (documentation), https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=toolkit_doc (documentation), https://github.com/ncbi/sra-tools/blob/master/CHANGES.md (changelog), https://github.com/ncbi/sra-tools (source code)")
whatis([[
Description: The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for using data in the INSDC Sequence Read Archives.
Examples: `fastq-dump --help`.
Warning: To work around a bug where `fasterq-dump` crashes the local machine, it has been tweaked such that it uses `$TMPDIR` rather than `$PWD` as the default temporary folder and it will only use two threads instead of six by default.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
-- WORKAROUND: fasterq-dump crashes machines!
-- Not sure exactly why, but one hypothesis is that the file system is
-- being hit too hard. The workaround forces 'fasterq-dump' to use
-- 'TMPDIR' for temporary files rather than the current directory [2]
-- [1] https://github.com/ncbi/sra-tools/issues/463#issuecomment-824321890
-- [2] https://github.com/ncbi/sra-tools/issues/161#issuecomment-808294889
-- In-house tests with sratoolkit 2.11.0 shows that it's *not* sufficient
-- to control TMPDIR but also the number of parallel threads [Harry Putnam,
-- 2021-08-20]. Ideally, we would limit it to a single thread, but the
-- tool will ignore '--threads 1' and use the default six threads. [3]
-- [3] https://github.com/ncbi/sra-tools/issues/494
-- In sratoolkit (>= 2.11.2) it might be that we no longer need to use
-- '--threads 2' [4]. As soon as we have verified that in a safe
-- environment, we'll drop it
-- [4] https://github.com/ncbi/sra-tools/issues/463#issuecomment-942410725
set_shell_function("fasterq-dump", 'command fasterq-dump --threads 2 --temp "$(mktemp -d)" "$@"', '')
STAR --help
and STAR --version
.help([[
STAR: Spliced Transcripts Alignment to a Reference
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://github.com/alexdobin/STAR")
whatis("Description: STAR (Spliced Transcripts Alignment to a Reference) is a fast NGS read aligner for RNA-seq data. Example: `STAR --help`.")
local name = "STAR"
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin", "Linux_x86_64"))
help([[
TileDB: The Universal Storage Engine
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: programming, database")
whatis("URL: https://tiledb.com/, https://github.com/TileDB-Inc/TileDB")
whatis("Description: TileDB is a powerful engine for storing and accessing dense and sparse multi-dimensional arrays, which can help you model any complex data efficiently. It is an embeddable C++ library that works on Linux, macOS, and Windows.")
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
-- Runtime
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
-- Build time
--prepend_path("CPATH", pathJoin(home, "include"))
--prepend_path("LDFLAGS", "-L" .. pathJoin(home, "lib"), " ")
prepend_path("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))
-- In-house env var
setenv("TILEDB_HOME", home)
tmux
and man tmux
.help([[
tmux: A Terminal Multiplexer
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: screen, tmux")
whatis("URL: https://github.com/tmux/tmux/wiki, https://github.com/tmux/tmux/blob/master/CHANGES (changelog), https://github.com/tmux/tmux (source code)")
whatis([[
Description: tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal. And do a lot more.
Examples: `tmux` and `man tmux`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
tophat --version
.help([[
TopHat: A Spliced Read Mapper for RNA-Seq
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: Programming, Statistics")
whatis("URL: https://ccb.jhu.edu/software/tophat/index.shtml, https://ccb.jhu.edu/software/tophat/index.shtml (changelog), https://github.com/infphilo/tophat (source code)")
whatis([[
Description: TopHat is a fast splice junction mapper for RNA-Seq reads. It aligns RNA-Seq reads to mammalian-sized genomes using the ultra high-throughput short read aligner Bowtie, and then analyzes the mapping results to identify splice junctions between exons.
Examples: `tophat --version`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
LS_COLORS
environment variable is set and output is to tty.tree --help
.help([[
tree: List Content of Directories in a Tree-like Format
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: files, utility, cli")
whatis("URL: http://mama.indstate.edu/users/ice/tree/, http://mama.indstate.edu/users/ice/tree/changes.html (changelog)")
whatis([[
Description: Tree is a recursive directory listing command that produces a depth indented listing of files, which is colorized ala dircolors if the `LS_COLORS` environment variable is set and output is to tty.
Examples: `tree --help`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "man"))
trim_galore --version
, trim_galore --help
, and more "$TRIMGALORE_HOME/Docs/Trim_Galore_User_Guide.md"
.help([[
TrimGalore: Taking Appropriate QC Measures for RRBS-Type or Other -Seq Applications with Trim Galore!
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing, genome")
whatis("URL: https://github.com/FelixKrueger/TrimGalore")
whatis("Description: A wrapper around Cutadapt and FastQC to consistently apply adapter and quality trimming to FastQ files, with extra functionality for RRBS data. Example: `trim_galore --version`, `trim_galore --help`, and `more \"$TRIMGALORE_HOME/Docs/Trim_Galore_User_Guide.md\"`.")
depends_on("cutadapt")
depends_on("fastqc")
name = "TrimGalore"
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
pushenv("TRIMGALORE_HOME", home)
varscan
, which is short for java -jar $VARSCAN_HOME/VarScan.jar
.help([[
VarScan: Variant Detection in Massively Parallel Sequencing Data
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: high-throughput sequencing")
whatis("URL: https://dkoboldt.github.io/varscan/, https://github.com/dkoboldt/varscan/releases (changelog), https://github.com/dkoboldt/varscan (source code)")
whatis([[
Description: VarScan is a platform-independent mutation caller for targeted, exome, and whole-genome resequencing data generated on Illumina, SOLiD, Life/PGM, Roche/454, and similar instruments.
Examples: `varscan`, which is an alias to `java -jar $VARSCAN_HOME/VarScan.jar`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
name = "VarScan"
local home = pathJoin(root, name .. "-" .. version)
pushenv("VARSCAN_HOME", home)
set_alias("varscan", "java -jar \"$VARSCAN_HOME/VarScan.jar\"")
-- Tweak Java for the current environment
depends_on("java-tweaks")
vcf_validator --help
, vcf-debugulator --help
, and vcf-assembly-checker --help
.help([[
vcf-validator: Validation Suite for Variant Call Format (VCF) Files
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://github.com/EBIvariation/vcf-validator, https://github.com/EBIvariation/vcf-validator/releases (changelog)")
whatis([[
Description: Validator for the Variant Call Format (VCF) implemented using C++11. It includes all the checks from the vcftools suite, and some more that involve lexical, syntactic and semantic analysis of the VCF input.
Examples: `vcf_validator --help`, `vcf-debugulator --help`, and `vcf-assembly-checker --help`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
vcftools --version
.help([[
VCFtools: Tools Written in Perl and C++ for Working with VCF Files
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: sequencing")
whatis("URL: https://vcftools.github.io/, https://github.com/vcftools/vcftools/releases (changelog), https://github.com/vcftools/vcftools (source code)")
whatis([[
Description: VCFtools is a program package designed for working with VCF files, such as those generated by the 1000 Genomes Project. The aim of VCFtools is to provide easily accessible methods for working with complex genetic variation data in the form of VCF files.
Examples: `vcftools --version`.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
pushenv("PERL5LIB", pathJoin(home, "share", "perl5"))
x86-64-level
and x86-64-level --help
.help([[
x86-64-level: Get the x86-64 Microarchitecture Level on the Current Machine
]])
local name = myModuleName()
local version = myModuleVersion()
version = string.gsub(version, "^[.]", "")
whatis("Version: " .. version)
whatis("Keywords: tools, shell, bash")
whatis("URL: https://github.com/HenrikBengtsson/x86-64-level/, https://github.com/HenrikBengtsson/x86-64-level/blob/develop/NEWS.md (changelog)")
whatis([[
Description: x86-64 is a 64-bit version of the x86 CPU instruction set supported by AMD and Intel CPUs among others. Since the first generations of CPUs, more low-level CPU features have been added over the years. The x86-64 CPU features can be grouped into four CPU microarchitecture levels: x86-64 v1, x86-64 v2, x86-64 v3, and x86-64 v4. This tool checks which CPU level the current machine supports.
Examples: `x86-64-level` and `x86-64-level --help`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
-- Assert x86-64-level on load?
if (mode() == "load") then
local level = os.getenv("X86_64_LEVEL_ASSERT")
if level ~= nul and level ~= "" then
local error = capture("x86-64-level --assert=" .. level .. " 2>&1")
if error ~= "" then
LmodError(error)
end
end
end
yq
is a lightweight and portable command-line YAML, JSON and XML processor. yq
uses jq
like syntax, but works with YAML files as well as JSON, XML, properties, CSV, and TSV.yq --version
, yq --help
.help([[
yq: Lightweight and Portable Command-Line YAML, JSON and XML Processor.
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: terminal, cli, utility")
whatis("URL: https://github.com/mikefarah/yq, https://github.com/mikefarah/yq/releases (changelog), https://github.com/mikefarah/yq (source code)")
whatis([[
Description: `yq` is a lightweight and portable command-line YAML, JSON and XML processor. `yq` uses `jq` like syntax, but works with YAML files as well as JSON, XML, properties, CSV, and TSV.
Examples: `yq --version`, `yq --help`.
Warning: Only the most recent version of this software will be kept.
]])
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "share", "man"))
module load WitteLab
ascp --help
.help([[
ascp: Command line data transfer client
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: download")
whatis("URL: https://developer.asperasoft.com/desktop-advance/command-line-client")
whatis("Description: The IBM Aspera Command-Line Interface (CLI) is a lightweight shell scripting tool that be used to automate Faspex and Shares tasks without having to do additional coding. The CLI is for users and organizations that want to automate their transfer workflows; it provides an alternative to using the API for the same functionality. Example: `ascp --help`.")
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
prepend_path("PATH", home)
bcftools --help
.help([[
bcftools: Command line suite for working with bgzipped vcf files, includes tabix and bgzip
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: download")
whatis("URL: http://www.htslib.org/download/")
whatis("Description: BCFtools is a set of utilities that manipulate variant calls in the Variant Call Format (VCF) and its binary counterpart BCF. All commands work transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed. Example: `bcftools --help`.")
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
prepend_path("PATH", home)
help([[
charger: a software tool for interpreting and predicting clinical pathogenicity of germline variants.
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: download")
whatis("URL: https://github.com/ding-lab/CharGer/tree/7d7d2911b89261fa5dceea6395a5d188a82757f2")
whatis("Description: CharGer gathers evidence from databases and annotations, provided by local tools and files or via ReST APIs, and classifies variants according to ACMG guidelines for assessing variant pathogenicity. User-designed pathogenicity criteria can be incorporated into CharGer’s flexible framework, thereby allowing users to create a customized classification protocol. If you use CharGer, please cite our publication so we can continue to support CharGer development: Adam D Scott, Kuan-Lin Huang, Amila Weerasinghe, R Jay Mashl, Qingsong Gao, Fernanda Martins Rodrigues, Matthew A Wyczalkowski, Li Ding, CharGer: clinical Characterization of Germline variants, Bioinformatics, Volume 35, Issue 5, 01 March 2019, Pages 865–867, https://doi.org/10.1093/bioinformatics/bty649")
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
local env = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version,"venv/bin")
prepend_path("PATH", home)
prepend_path("PATH", env)
help([[
FlashPCA2: performs fast PCA of SNP data
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: download")
whatis("URL: https://github.com/gabraham/flashpca")
whatis("Description: FlashPCA performs fast principal component analysis (PCA) of single nucleotide polymorphism (SNP) data, similar to smartpca from EIGENSOFT (http://www.hsph.harvard.edu/alkes-price/software/) and shellfish (https://github.com/dandavison/shellfish). FlashPCA is based on the https://github.com/yixuan/spectra/ library.")
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
prepend_path("PATH", home)
help([[
focus: a set of tools to finemap twas statistics
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: twas")
whatis("URL: https://github.com/bogdanlab/focus")
whatis("Description: FOCUS (Fine-mapping Of CaUsal gene Sets) is software to fine-map transcriptome-wide association study statistics at genomic risk regions. The software takes as input summary GWAS data along with eQTL weights and outputs a credible set of genes to explain observed genomic risk. Example: source $ENV; focus --help; deactivate")
-- Local variables
setenv("ENV","/software/c4/wittelab/software/focus-0.7.0/focus_venv/bin/activate")
setenv("PYTHONPATH","/software/c4/wittelab/software/focus-0.7.0/focus_venv/bin/python")
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version,"/bin/")
prepend_path("PATH", home)
help([[
gcta: GCTA (Genome-wide Complex Trait Analysis) was initially designed to estimate the proportion of phenotypic variance explained by all genome-wide SNPs for complex traits (i.e., the GREML method). It has been subsequently extended for many other analyses to better understand the genetic architecture of complex traits. GCTA currently supports the following analyses.
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: download")
whatis("https://cnsgenomics.com/software/gcta/")
whatis("Description: Additional information can be found in the tutorial: https://cnsgenomics.com/software/gcta/#Tutorial")
whatis([[ Examples: Using test data found in software folder (/software/c4/wittelab/software/gcta-1.93.2/)
# To create a GRM with the testing data
gcta64 --bfile test --make-grm --out test
# To calculate the variance explained by snps
gcta64 --reml --grm test --pheno test.phen --out test]])
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
prepend_path("PATH", home)
help([[
gfetch: Download multi-person genetic data for the UK Biobank
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: download")
whatis("URL: https://biobank.ndph.ox.ac.uk/ukb/refer.cgi?id=668")
whatis("Description: gfetch client has been developed to allow Approved researchers to download elements of it piecemeal to their local systems from secure online repositories outside the main UK Biobank showcase system")
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
prepend_path("PATH", home)
GWAMA --help
.help([[
GWAMA: Genome-Wide Association Meta Analysis
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: meta")
whatis("URL: https://genomics.ut.ee/en/tools/gwama")
whatis("Description: software has been developed to perform meta-analysis of the results of GWA studies of binary or quantitative phenotypes. The software incorporates error trapping facilities to identify strand alignment errors and allele flipping, and performs tests of heterogeneity of effects between studies. Example: `GWAMA --help`.")
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
prepend_path("PATH", home)
help([[
gwastools: This repository contains tools to harmonize GWAS summary statistics to a given reference. The main application is harmonization of a public gwas' variants to those in the GTEx study, and allow imputation of summary statistics for missing variants.
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: gwas")
whatis("URL: https://github.com/hakyimlab/summary-gwas-imputation")
whatis("Description: Here you can find many python files for GWAS harmination and summary stat imputation. See github page for more details. Example: source $ENV; ls $GWAS_TOOLS/; python $GWAS_TOOLS/gwas_parsing.py --help; deactivate")
-- Local variables
setenv("GWAS_TOOLS", "/software/c4/wittelab/software/gwastools-0.0.0/summary-gwas-imputation/src/")
setenv("ENV","/software/c4/wittelab/software/gwastools-0.0.0/gwastools_env/bin/activate")
help([[
HESS: is a Python package that provides utilities for estimating and analyzing local SNP-heritability and genetic covariance from GWAS summary association data.
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: download")
whatis("URL: https://github.com/huwenboshi/hess")
whatis("Example: source $ENV; python $HESS_DIR/hess.py --help; deactivate;")
-- Local variables
setenv("HESS_DIR", "/software/c4/wittelab/software/hess-0.5.4")
setenv("ENV","/software/c4/wittelab/software/hess-0.5.4/hess_venv/bin/activate")
help([[
LDAK: program for running heritability, genetic correlation, and genetic prediction (BayesR, MultiBLUP) analyses
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: heritability")
whatis("URL: https://dougspeed.com/ldak/")
whatis("Description: This is a command-line tool for analyses of individual-level and summary data (formatted accordingly: https://dougspeed.com/summary-statistics/). Analyses of summary data require pre-computed tagging files (LD reference panels). You can generate these from individual-level data (https://dougspeed.com/calculate-taggings/) or use pre-computed files from external reference datasets (https://dougspeed.com/pre-computed-tagging-files/). Recommended tagging files for EUR/GBB and AFR populations have been downloaded.")
whatis([[ Examples:
# To estimate heritability run:
> ldak --sum-hers <h2_output> --summary <gwas_sumstats> --tagfile ${REF_DATA}/bld.ldak.hapmap.eur.tagging --check-sums NO
# To get help and see other options just activate the program:
> ldak ]])
-- Local variables
setenv("REF_DATA", "/software/c4/wittelab/software/ldak-5.1/ref_panels/")
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
prepend_path("PATH", home)
help([[
ldsc: a command line tool for estimating heritability and genetic correlation from GWAS summary statistics. ldsc also computes LD Scores.
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: download")
whatis("URL: https://github.com/bulik/ldsc")
whatis("Description: Additional information can be found at the wiki: https://github.com/bulik/ldsc/wiki")
whatis([[ Examples:
# To work with function load virutal environment
> source $ENV
# Test scripts/ get help info
> ldsc.py -h
> munge_sumstats.py -h ]])
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
local env = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version,"ldsc_venv/bin/activate")
prepend_path("PATH", home)
prepend_path("ENV", env)
liftOver
.help([[
liftOver: program can be used to convert coordinate ranges between genome assemblies
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: convert")
whatis("URL: https://genome-store.ucsc.edu/products/")
whatis("Description: This is a command-line tool, and supports forward/reverse conversions, batch conversions, and conversions between species. The LiftOver program requires a UCSC-generated over.chain file as input. Pre-generated files are available for selected assemblies here: http://hgdownload.cse.ucsc.edu/downloads.html. Example: `liftOver`.")
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
prepend_path("PATH", home)
help([[
metaxcan: a set of tools to perform twas
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: download")
whatis("URL: https://github.com/hakyimlab/MetaXcan/tree/master/software")
whatis("Description: Here you can find the latest implementation of PrediXcan: PrediXcan.py. This uses individual-level genotype and phenotype, along a mechanism's prediction model (e.g. models predicting expression or splicing quantification), to compute associations between omic features and a complex trait. Example: source $ENV; python ${METAXCAN_DIR}/SPrediXcan.py --help; deactivate")
-- Local variables
setenv("METAXCAN_DIR", "/software/c4/wittelab/software/metaxcan-0.6.5/software")
setenv("ENV","/software/c4/wittelab/software/metaxcan-0.6.5/metaxcan_env/bin/activate")
help([[
liftOver: program can be used to fine map putative causal variants using GWAS summary statistics.
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: trans-ethnic fine-mapping")
whatis("URL: https://github.com/gkichaev/PAINTOR_V3.0")
whatis("Description: PAINTOR is a statistical fine-mapping method that integrates functional genomic data with association strength from potentially multiple populations (or traits) to prioritize variants for follow-up analysis. The software runs on multiple fine-mapping loci and/or populations/traits simultaneously and takes as input the following data for each set of SNPs at a locus. Examples can be found at https://github.com/gkichaev/PAINTOR_V3.0")
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
prepend_path("PATH", home)
help([[
python3: programming language
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: language")
whatis("URL: https://www.python.org/about/")
whatis("Description: Python is powerful... and fast; plays well with others; runs everywhere; is friendly & easy to learn; is Open.Example: python3 --help")
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version,"/bin")
prepend_path("PATH", home)
regenie --help
.help([[
regenie: a C++ program for whole genome regression modelling of large genome-wide association studies developed and supported by a team of scientists at the Regeneron Genetics Center.
]])
local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: download")
whatis("URL: https://github.com/rgcgithub/regenie")
whatis("Description: performs fast gene-based and single-variants tests specifically designed for case-control imbalance Example: `regenie --help`.")
-- Local variables
local home = pathJoin("/software/c4/wittelab/software/", name .. "-" .. version)
prepend_path("PATH", home)
The above information is updated automatically every three hours by querying module avail
and module spider
.