Examples not working?

Software Repositories #

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/2021a

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 Software Repository: built-in (3) #

Maintained by: C4 Systems Administrators, C4
Enable repository: this software repository is always enabled

matlab #

Versions: 2021a
Module code: view
#%Module 1.0

module-whatis "Language for technical computing"
prepend-path  PATH                /software/c4/matlab/2021a/bin
setenv        MLM_LICENSE_FILE    27000@c4-license1

mpi #

Versions: openmpi3-x86_64, openmpi-x86_64
Module code: view
#%Module 1.0
#
#  OpenMPI module for use with 'environment-modules' package:
#
conflict		mpi
prepend-path 		PATH 		/usr/lib64/openmpi/bin
prepend-path 		LD_LIBRARY_PATH /usr/lib64/openmpi/lib
prepend-path		PYTHONPATH	/usr/lib64/python2.7/site-packages/openmpi
prepend-path		MANPATH		/usr/share/man/openmpi-x86_64
setenv 			MPI_BIN		/usr/lib64/openmpi/bin
setenv			MPI_SYSCONFIG	/etc/openmpi-x86_64
setenv			MPI_FORTRAN_MOD_DIR	/usr/lib64/gfortran/modules/openmpi-x86_64
setenv			MPI_INCLUDE	/usr/include/openmpi-x86_64
setenv	 		MPI_LIB		/usr/lib64/openmpi/lib
setenv			MPI_MAN		/usr/share/man/openmpi-x86_64
setenv			MPI_PYTHON_SITEARCH	/usr/lib64/python2.7/site-packages/openmpi
setenv			MPI_COMPILER	openmpi-x86_64
setenv			MPI_SUFFIX	_openmpi
setenv	 		MPI_HOME	/usr/lib64/openmpi

openjdk #

openjdk: Open Java Development Kit
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.
Example: java -version and javac -version.
URL: https://openjdk.java.net/
Versions: 1.6.0, 1.8.0, 11
Module code: view
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/")
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`.")

local root = "/usr/lib/jvm"
local home = pathJoin(root, "java" .. "-" .. version)

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 Software Repository: CBI (100) #

Maintained by: Henrik Bengtsson, Computational Biology and Informatics
Enable repository: module load CBI

annovar #

ANNOVAR: Functional Annotation of Genetic Variants from Next-Generation Sequencing Data
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.
URL: https://annovar.openbioinformatics.org/en/latest/, https://annovar.openbioinformatics.org/en/latest/misc/version_history/ (changelog)
Versions: 2011-10-02, 2015-06-17, 2020-06-07
Module code: view
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/, https://annovar.openbioinformatics.org/en/latest/misc/version_history/ (changelog)")
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)

apache-ant #

Apache Ant: A Java Library and Command-Line Tool to Build Software
Apache Ant is a Java library and command-line tool that help building software.
Example: ant -h
URL: https://ant.apache.org/bindownload.cgi, https://ant.apache.org/antnews.html (changelog)
Versions: 1.10.12
Module code: view
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 #

ASCIIGenome: Text Only Genome Viewer
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.
Example: ASCIIGenome --help, and ASCIIGenome bigWigExample.bw.
URL: https://github.com/dariober/ASCIIGenome, https://github.com/dariober/ASCIIGenome/blob/master/CHANGELOG.md (changelog), https://asciigenome.readthedocs.io/en/latest/ (documentation)
Warning: Only the most recent version of this software will be kept.
Versions: 1.18.0
Module code: view
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)


bamutil #

bamUtil: Programs for Working on SAM/BAM Files
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.
URL: https://genome.sph.umich.edu/wiki/BamUtil, https://genome.sph.umich.edu/wiki/BamUtil#Releases (changelog), https://github.com/statgen/bamUtil (source code)
Versions: 1.0.14, 1.0.15
Module code: view
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://genome.sph.umich.edu/wiki/BamUtil#Releases (changelog), https://github.com/statgen/bamUtil (source code)")
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 #

bat: A cat(1) Clone with Syntax Highlighting and Git Integration
A cat(1) clone with syntax highlighting and Git integration.
Example: bat README.md, bat scripts/*.sh, and bat src/*.c.
URL: https://github.com/sharkdp/bat, https://github.com/sharkdp/bat/blob/master/CHANGELOG.md (changelog)
Warning: Only the most recent version of this software will be kept.
Versions: 0.24.0
Module code: view
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"))

bats-assert #

bats-assert: Assertion Library for Bats (Bash Automated Testing System)
This is a helper library providing common assertions for Bats.
Example: In Bats setup() function: load "${BATS_SUPPORT_HOME}/load.bash" and load "${BATS_ASSERT_HOME}/load.bash"
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)
Versions: 2.1.0
Module code: view
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-core #

bats: Bash Automated Testing System
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.
Example: bats --version, bats --help, man bats, man 7 bats, and bats tests/.
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)
Versions: 1.10.0
Module code: view
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"))

bats-file #

bats-file: File-System Assertion Library for Bats (Bash Automated Testing System)
This is a helper library providing common filesystem related assertions and helpers foor Bats.
Example: In Bats setup() function: load "${BATS_SUPPORT_HOME}/load.bash" and load "${BATS_FILE_HOME}/load.bash"
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)
Versions: 0.4.0
Module code: view
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)

bats-support #

bats-support: Supporting Library for Bats (Bash Automated Testing System)
This is a supporting library providing common functions to test helper libraries written for Bats.
Example: In Bats setup() function: load "${BATS_SUPPORT_HOME}/load.bash"
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)
Versions: 0.3.0
Module code: view
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 #

BCFtools: Utilities for Variant Calling and Manipulating VCFs and BCFs
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 --version
URL: https://www.htslib.org/, https://github.com/samtools/bcftools/blob/develop/NEWS (changelog), https://github.com/samtools/bcftools (source code)
Versions: 1.10.2, 1.11, 1.12, 1.13, 1.14, 1.15, 1.15.1, 1.16, 1.17, 1.18, 1.19
Module code: view
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 #

bcl2fastq: Illumina Conversion Software
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
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)
Versions: 2.20.0
Module code: view
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 #

BEDOPS: The Fast, Highly Scalable and Easily-Parallelizable Genome Analysis Toolkit
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
URL: https://bedops.readthedocs.io/, https://bedops.readthedocs.io/en/latest/content/revision-history.html (changelog), https://github.com/bedops/bedops (source code)
Versions: 2.4.39, 2.4.40, 2.4.41
Module code: view
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.
Examples: `bedops --version`
]])

local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)

prepend_path("PATH", pathJoin(home, "bin"))

bedtools2 #

bedtools2: The Swiss Army Knife for Genome Arithmetic
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/.
URL: https://github.com/arq5x/bedtools2/, https://bedtools.readthedocs.io/en/latest/content/history.html (changelog), https://bedtools.readthedocs.org (documentation), https://code.google.com/archive/p/bedtools/downloads (legacy)
Versions: 2.16.2, 2.18.1, 2.26.0, 2.29.2, 2.30.0, 2.31.0, 2.31.1
Module code: view
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/, https://bedtools.readthedocs.io/en/latest/content/history.html (changelog), https://bedtools.readthedocs.org (documentation), https://code.google.com/archive/p/bedtools/downloads (legacy)")
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.
Examples: `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)






blast #

BLAST+: Basic Local Alignment Search Tool
BLAST finds regions of similarity between biological sequences. The program compares nucleotide or protein sequences to sequence databases and calculates the statistical significance.
Example: blastx -version
URL: https://blast.ncbi.nlm.nih.gov/Blast.cgi, https://www.ncbi.nlm.nih.gov/books/NBK131777/ (changelog)
Versions: 2.10.1, 2.11.0, 2.12.0, 2.13.0, 2.14.0, 2.15.0
Module code: view
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 #

BLAT: Fast Sequence Search Command Line Tool
BLAT - client and server combined into a single program, first building the index, then using the index, and then exiting.
Example: blat
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)
Versions: 36x4, 37x1
Module code: view
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 #

Bowtie: A Fast and Sensitive Gapped Read Aligner
Bowtie is an ultrafast, memory-efficient short read aligner.
Example: bowtie --version and ls $BOWTIE_HOME/{genomes,indexes}
Note: This is Bowtie v1 - not v2.
URL: https://bowtie-bio.sourceforge.net/index.shtml, https://bowtie-bio.sourceforge.net/index.shtml (changelog), https://github.com/BenLangmead/bowtie (source code)
Versions: 1.2.3, 1.3.0, 1.3.1
Module code: view
help([[
Bowtie: 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/index.shtml, https://bowtie-bio.sourceforge.net/index.shtml (changelog), https://github.com/BenLangmead/bowtie (source code)")
whatis([[
Description: Bowtie is an ultrafast, memory-efficient short read aligner.
Examples: `bowtie --version` and `ls $BOWTIE_HOME/{genomes,indexes}`
Note: This is Bowtie v1 - _not v2_.
]])

local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", home)
pushenv("BOWTIE_HOME", home)

bowtie2 #

Bowtie 2: A Fast and Sensitive Gapped Read Aligner
Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences.
Example: bowtie2 --version
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)
Versions: 2.4.1, 2.4.2, 2.4.4, 2.4.5, 2.5.0, 2.5.1, 2.5.2, 2.5.3
Module code: view
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 #

BWA: Burrows-Wheeler Aligner
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.
URL: http://bio-bwa.sourceforge.net/, https://github.com/lh3/bwa/blob/master/NEWS.md (changelog), https://github.com/lh3/bwa (source code)
Versions: 0.5.10, 0.7.17
Module code: view
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 #

byobu: Elegant Enhancement of the Otherwise Functional, Plain, Practical GNU Screen
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.
URL: https://www.byobu.org/, https://bazaar.launchpad.net/~kirkland/byobu/trunk/view/head:/debian/changelog (changelog), https://github.com/dustinkirkland/byobu (source code)
Warning: Only the most recent version of this software will be kept.
Versions: 5.133
Module code: view
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 #

Cell Ranger: 10x Genomics Pipeline for Single-Cell Data Analysis
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.
Example: cellranger --help and cellranger --version.
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)
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.
Versions: 4.0.0, 5.0.1, 6.1.1, 6.1.2, 7.0.0, 7.0.1, 7.1.0, 7.2.0
Module code: view
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")

-- Assert that the current machine supports x86-64 v2 or greater
setenv("X86_64_LEVEL_ASSERT", "2")
try_load("x86-64-level")
setenv("X86_64_LEVEL_ASSERT", "")

clp #

Clp: COIN-OR Linear Programming Solver
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.
Example: clp
URL: https://www.coin-or.org/, https://github.com/coin-or/Clp (source code)
Versions: 1.17.2, 1.17.6, 1.17.7
Module code: view
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"))

cluster-utils #

cluster-utils: Collection of Utilities / Helper Scripts to Make Life Easier on HPC Clusters
Collection of utilities / helper scripts to make life easier on HPC clusters.
Example: ctop and ctopx (silence 'Invalid user id' output).
URL: https://github.com/molgenis/cluster-utils/, https://github.com/molgenis/cluster-utils/releases (changelog)
Warning: Only the most recent version of this software will be kept.
Versions: 21.05.1, 22.10.2, 22.12.2, 23.03.1
Module code: view
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 #

CMake: Open-source, Cross-platform Family of Tools Designed to Build, Test and Package Software
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.
Example: cmake --version.
URL: https://cmake.org/, https://cmake.org/cmake/help/latest/release/index.html (changelog) https://github.com/Kitware/CMake/releases (download)
Versions: 3.27.7
Module code: view
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"))

coinutils #

CoinUtils: COIN-OR Utilities
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.
URL: https://www.coin-or.org/, https://github.com/coin-or/CoinUtils
Versions: 2.11.4
Module code: view
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 #

conda-stage: Stage Conda Environment on Local Disk
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.
Example: conda-stage --auto-stage=enable, and conda-stage --help.
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)
Warning: This is work under construction. Your milage may vary! /HB 2022-04-13
Versions: 0.7.1
Module code: view
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, '')

control-freec #

Control FREEC: Control-FREE Copy Number and Genotype Caller
Prediction of copy numbers and allelic content using deep-sequencing data.
Example: freec.
URL: http://boevalab.com/FREEC/, https://github.com/BoevaLab/FREEC/
Versions: 11.5, 11.6
Module code: view
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: Transcriptome Assembly and Differential Expression Analysis for RNA-Seq
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.
Example: cufflinks
URL: http://cole-trapnell-lab.github.io/cufflinks/, https://github.com/cole-trapnell-lab/cufflinks (source code)
Versions: 2.2.1
Module code: view
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 #

Cutadapt: Remove Adapter Sequences from Sequencing Reads
Cutadapt finds and removes adapter sequences, primers, poly-A tails and other types of unwanted sequence from your high-throughput sequencing reads.
Example: cutadapt --version and cutadapt --help.
URL: https://cutadapt.readthedocs.io/en/stable/, https://github.com/marcelm/cutadapt/blob/main/CHANGES.rst (changelog), https://github.com/marcelm/cutadapt (source code)
Versions: 1.2.1, 1.8.1, 3.4, 3.7
Module code: view
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.
Examples: `cutadapt --version` and `cutadapt --help`.
]])

local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)
prepend_path("PATH", pathJoin(home, "bin"))




easycatfs #

easycatfs: Easy Read-Only Mounting of Slow Folders onto a Local Drive
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.
URL: https://github.com/HenrikBengtsson/easycatfs
Warning: Only the most recent version of this software will be kept.
Versions: 0.1.5
Module code: view
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 #

GNU Emacs: An Extensible, Customizable, Free/Libre Text Editor
At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing.
Example: emacs --version and emacs -nw.
URL: https://www.gnu.org/software/emacs/, https://www.gnu.org/savannah-checkouts/gnu/emacs/emacs.html#Releases (changelog)
Warning: Only the most recent version of this software will be kept.
Versions: 28.2, 29.1
Module code: view
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 #

expect: Programmed Dialogue with Interactive Programs
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.
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)
Versions: 5.45.4
Module code: view
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 #

FastQC: A Quality Control Analysis Tool for High Throughput Sequencing Data
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.
Example: fastqc --version.
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)
Versions: 0.11.9, 0.12.1
Module code: view
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 #

fzf: A Command-Line Fuzzy Finder
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.
Example: 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.
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)
Warning: Only the most recent version of this software will be kept.
Versions: 0.44.1, 0.45.0, 0.46.0
Module code: view
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 #

Genome Analysis Toolkit (GATK): Variant Discovery in High-Throughput Sequencing Data
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. Requirements: Modern GATK versions require Java (>= 17).
Example: gatk --help and gatk --list.
URL: https://gatk.broadinstitute.org/hc/en-us, https://github.com/broadinstitute/gatk (source code), https://github.com/broadinstitute/gatk/releases (changelog), https://github.com/broadgsa/gatk (legacy), https://console.cloud.google.com/storage/browser/gatk-software/package-archive (legacy), ftp://ftp.broadinstitute.org/pub/gsa/GenomeAnalysisTK/ (legacy)
Versions: 1.1-37-ge63d9d8, 1.6-5-g557da77, 4.1.1.0, 4.1.7.0, 4.1.8.1, 4.1.9.0, 4.2.0.0, 4.2.2.0, 4.2.3.0, 4.2.4.1, 4.2.5.0, 4.2.6.1, 4.3.0.0, 4.4.0.0, 4.5.0.0
Module code: view
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://gatk.broadinstitute.org/hc/en-us, https://github.com/broadinstitute/gatk (source code), https://github.com/broadinstitute/gatk/releases (changelog), https://github.com/broadgsa/gatk (legacy), https://console.cloud.google.com/storage/browser/gatk-software/package-archive (legacy), ftp://ftp.broadinstitute.org/pub/gsa/GenomeAnalysisTK/ (legacy)")
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.
Requirements: Modern GATK versions require Java (>= 17).
Examples: `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") or ""
  if (cluster == "tipcc") then
    load("jdk/1.7.0")
  else
    depends_on("openjdk/1.6.0")
  end
  pushenv("GATK_HOME", home)
elseif version_x == "4" then
  if mode() == "load" then
    local success=false

    -- try all possible openjdk/(>= 17) versions
    for version = 17,30 do
      module="openjdk/" .. version
      if isAvail(module) then
        load(module)
        success=true
        break
      end
    end
    
    -- try oraclejdk/(>= 17) versions
    if not success then
      for version = 17,30 do
        module="oraclejdk/" .. version
        if isAvail(module) then
          load(module)
          success=true
          break
        end
      end
    end
    
    if not success then
      LmodError(name .. " requires openjdk/17 or newer, but that is not available on " .. os.getenv("CBI_LINUX") .. " machine " .. os.getenv("HOSTNAME"))
    end
  end
  prepend_path("PATH", home)
else
  prepend_path("PATH", home)
end

-- Tweak Java for the current environment
depends_on("java-tweaks")

gcta #

GCTA: Genome-wide Complex Trait Analysis
A tool for Genome-wide Complex Trait Analysis (GCTA).
Example: gcta64.
URL: https://yanglab.westlake.edu.cn/software/gcta/#Overview, https://cnsgenomics.com/software/gcta/, https://github.com/jianyangqt/gcta (source code)
Versions: 1.93.2beta, 1.93.3beta2, 1.94.0beta
Module code: view
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)

gdal #

GDAL: Geospatial Data Abstraction Library
GDAL is an open source X/MIT licensed translator library for raster and vector geospatial data formats.
Example: gdalinfo --version and man gdalinfo.
URL: https://gdal.org/, https://github.com/OSGeo/gdal/blob/master/NEWS.md (changelog), https://github.com/OSGeo/gdal (source code)
Versions: 2.4.4, 3.5.3, 3.6.4
Module code: view
help("GDAL: Geospatial Data Abstraction Library")

local name = myModuleName()
local version = myModuleVersion()
version = string.gsub(version, "^[.]", "") -- for hidden modules
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` and `man gdalinfo`.
]])

-- GDAL (>= 3.0.0), requires PROJ (>= 6.0.0)
local libdir = "lib"
local v = version
v = string.gsub(v, "[.].*", "")
if v >= "3" then
  depends_on("proj")
  -- ... and a modern SQLite3 and HDF5 (>= 1.8.13)
  depends_on("sqlite")
  depends_on("hdf5")
  libdir = "lib64"
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, libdir))

prepend_path("MANPATH", pathJoin(home, "share", "man", "man1"))

-- linking
prepend_path("LD_RUN_PATH", pathJoin(home, libdir))

-- building
prepend_path("CPATH",  pathJoin(home, "include"))
prepend_path("CFLAGS", "-I" .. pathJoin(home, "include"), " ")
prepend_path("LDFLAGS", "-L" .. pathJoin(home, libdir), " ")

geos #

GEOS: Geometry Engine, Open Source
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.
Example: geos-config --version.
URL: https://libgeos.org/, https://libgeos.org/usage/download/ (changelog), https://github.com/libgeos/geos/issues (bug reports)
Versions: 3.5.2, 3.7.3, 3.8.1, 3.9.1, 3.9.2, 3.9.4, 3.11.1, 3.11.2
Module code: view
help([[
GEOS: Geometry Engine, Open Source
]])

local name = myModuleName()
local version = myModuleVersion()
version = string.gsub(version, "^[.]", "") -- for hidden modules
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)
local libdir = "lib"
local v = version
v = string.gsub(v, "[.].*", "")
if v >= "3" then
  libdir = "lib64"
end

-- execution
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, libdir))
-- linking
prepend_path("LD_RUN_PATH", pathJoin(home, libdir))
-- building
prepend_path("CPATH",  pathJoin(home, "include"))
prepend_path("CFLAGS", "-I" .. pathJoin(home, "include"), " ")
prepend_path("LDFLAGS", "-L" .. pathJoin(home, libdir), " ")


gistic2 #

GISTIC2: Genomic Identification of Significant Targets in Cancer (GISTIC), version 2
GISTIC2.0 facilitates sensitive and confident localization of the targets of focal somatic copy-number alteration in human cancers.
Example: gistic2.
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
Versions: 2.0.23
Module code: view
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 #

git-flow: Git Extension Git Flow (AVH Edition)
A collection of Git extensions to provide high-level repository operations for Vincent Driessen's branching model.
Example: git flow.
URL: https://github.com/petervanderdoes/gitflow-avh, https://github.com/nvie/gitflow
Warning: Only the most recent version of this software will be kept.
Versions: 1.12.3
Module code: view
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"))

github-cli #

github-cli: GitHub's Official Command Line Tool
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.
Example: gh --version, gh --help, and gh auth login.
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)
Warning: Only the most recent version of this software will be kept.
Versions: 2.42.1
Module code: view
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)")
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`, and `gh auth login`.
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 #

glow: Render Markdown on the CLI, with Pizzazz!
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.
Example: glow README.md, glow --pager README.md.
URL: https://github.com/charmbracelet/glow, https://github.com/charmbracelet/glow/releases (changelog)
Warning: Only the most recent version of this software will be kept.
Versions: 1.5.1
Module code: view
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)

gping #

gping: Ping, but with a Graph
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.
Example: 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".
URL: https://github.com/orf/gping, https://github.com/orf/gping/releases (changelog), https://github.com/orf/gping (source code)
Warning: Only the most recent version of this software will be kept.
Versions: 1.14.0, 1.16.0
Module code: view
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 #

GSL: Gnu Scientific Library
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.
URL: https://www.gnu.org/software/gsl/, https://git.savannah.gnu.org/cgit/gsl.git/tree/NEWS (changelog), https://git.savannah.gnu.org/cgit/gsl.git/ (source code)
Versions: 2.6, 2.7
Module code: view
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/, https://git.savannah.gnu.org/cgit/gsl.git/tree/NEWS (changelog), https://git.savannah.gnu.org/cgit/gsl.git/ (source code)")
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.
Examples: `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"))

hdf5 #

hdf5: A General Purpose Library and File Format for Storing Scientific Data
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.
URL: https://www.hdfgroup.org/downloads/hdf5/, https://portal.hdfgroup.org/display/support/Downloads (changelog), https://www.hdfgroup.org/downloads/hdf5/source-code/ (source code)
Versions: 1.12.0, 1.12.1, 1.12.2
Module code: view
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/, https://portal.hdfgroup.org/display/support/Downloads (changelog), https://www.hdfgroup.org/downloads/hdf5/source-code/ (source code)")
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.
Examples: `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 #

HISAT2: Graph-based Alignment of Next Generation Sequencing Reads to a Population of Genomes
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).
Example: hisat2 --version and hisat2 --help.
URL: https://daehwankimlab.github.io/hisat2/, https://github.com/DaehwanKimLab/hisat2/releases (changelog), https://github.com/DaehwanKimLab/hisat2/ (source code)
Versions: 2.2.0
Module code: view
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 #

htop: An Interactive Process Viewer for Unix
htop is an interactive process viewer for Unix systems. It is a text-mode application (for console or X terminals) and requires ncurses.
Example: htop.
URL: https://htop.dev, https://github.com/htop-dev/htop/blob/main/ChangeLog (changelog), https://github.com/htop-dev/htop (source code)
Warning: Only the most recent version of this software will be kept.
Versions: 3.2.2, 3.3.0
Module code: view
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"))

htslib #

HTSlib: C Library for High-Throughput Sequencing Data Formats
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.
Example: bgzip --version, htsfile --version, and tabix --version.
URL: https://www.htslib.org/, https://github.com/samtools/htslib/blob/develop/NEWS (changelog), https://github.com/samtools/htslib (source code)
Versions: 1.10.2, 1.11, 1.12, 1.13, 1.14, 1.15, 1.15.1, 1.16, 1.17, 1.18, 1.19, 1.19.1
Module code: view
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

htstools #

htstools: Tools to Process BAM Files for Downstream Copy-Number Analysis
Contains three tools (dnafrags, ppflag-fixer, snp-pileup) written by Alex Studer to process bam files for downstream copy number analysis.
Example: snp-pileup --help.
URL: https://github.com/mskcc/htstools, https://github.com/mskcc/htstools/releases (changelog)
Versions: 0.1.1
Module code: view
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 #

IGV: The Integrative Genomics Viewer
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.
Example: igv --help, igv --version, and igv.
URL: https://software.broadinstitute.org/software/igv/, https://github.com/igvteam/igv/tags (changelog), https://github.com/igvteam/igv/ (source code)
Warning: IGV (>= 2.5.0) requires Java 11.
Versions: 2.16.2
Module code: view
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 #

IGVTools: Tools for Pre-processing HT-Seq Data Files
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.
URL: https://software.broadinstitute.org/software/igv/igvtools
Versions: 2.4.19
Module code: view
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 #

JAGS: Just Another Gibbs Sampler
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.
Example: jags and man jags.
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)
Versions: 4.3.0
Module code: view
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")
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"))

kallisto #

kallisto: Near-optimal RNA-Seq Quantification
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.
Example: kallisto version
URL: https://pachterlab.github.io/kallisto/about.html, https://github.com/pachterlab/kallisto/releases (changelog), https://github.com/pachterlab/kallisto (source code)
Versions: 0.46.2, 0.50.0, 0.50.1
Module code: view
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 #

lg3: The UCSF Costello Lab's LG3 Pipeline
This is the LG3 Pipeline developed by the UCSF Costello Lab.
Example: lg3 --help.
URL: https://github.com/UCSF-Costello-Lab/LG3_Pipeline
Warning: This software can currently only run on the C4 cluster and legacy TIPCC cluster as the UCSF Cancer Center.
Versions: 2021-10-09, 2021-10-10, 2021-10-11
Module code: view
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"))

libsbml #

libSBML: An Open-Source Library for Working with SBML (the Systems Biology Markup Language)
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.
URL: http://sbml.org/Software/libSBML, https://github.com/sbmlteam/libsbml/blob/development/NEWS.txt (changelog), https://github.com/sbmlteam/libsbml (source code)
Versions: 5.10.2, 5.19.0
Module code: view
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/blob/development/NEWS.txt (changelog), https://github.com/sbmlteam/libsbml (source code)")
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-cli #

markdownlint-cli: MarkdownLint Command Line Interface
Examples: markdownlint --version, markdownlint --help, markdownlint -- *.md.
URL: https://github.com/igorshubovych/markdownlint-cli (documentation), https://github.com/igorshubovych/markdownlint-cli/releases/ (releases), https://github.com/igorshubovych/markdownlint-cli (source code)
Versions: 0.35.0, 0.38.0
Module code: view
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 #

mc: Midnight Commander
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.
Example: mc and mc --version.
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)
Warning: Only the most recent version of this software will be kept.
Versions: 4.8.29
Module code: view
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"))

miniconda3-py39 #

Miniconda: A Free Minimal Installer for Conda
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.
Example: conda --version, conda create --name=myenv, conda env list, conda activate myenv, conda info, and conda deactive.
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)
Warning: For now, this module only work in Bash. Also, do not do conda init. If you do by mistake, please undo by conda init --reverse.
Versions: 4.12.0
Module code: view
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 only work in Bash. Also, do _not_ do `conda init`. If you do 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-py39-4.12.0/etc/profile.d/conda.sh
pushenv("CONDA_EXE","/software/c4/cbi/software/miniconda3-py39-4.12.0/bin/conda")
pushenv("CONDA_PYTHON_EXE","/software/c4/cbi/software/miniconda3-py39-4.12.0/bin/python")
pushenv("CONDA_SHLVL","0")
prepend_path("PATH","/software/c4/cbi/software/miniconda3-py39-4.12.0/condabin")
pushenv("_CE_CONDA","")
pushenv("_CE_M","")
set_shell_function("__add_sys_prefix_to_path"," \
    if [ -n \"${_CE_CONDA}\" ] && [ -n \"${WINDIR+x}\" ]; then\
        SYSP=$(\\dirname \"${CONDA_EXE}\");\
    else\
        SYSP=$(\\dirname \"${CONDA_EXE}\");\
        SYSP=$(\\dirname \"${SYSP}\");\
    fi;\
    if [ -n \"${WINDIR+x}\" ]; then\
        PATH=\"${SYSP}/bin:${PATH}\";\
        PATH=\"${SYSP}/Scripts:${PATH}\";\
        PATH=\"${SYSP}/Library/bin:${PATH}\";\
        PATH=\"${SYSP}/Library/usr/bin:${PATH}\";\
        PATH=\"${SYSP}/Library/mingw-w64/bin:${PATH}\";\
        PATH=\"${SYSP}:${PATH}\";\
    else\
        PATH=\"${SYSP}/bin:${PATH}\";\
    fi;\
    \\export PATH\
","")
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"," \
    ( __add_sys_prefix_to_path;\
    \"$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\
","")

miniconda3-py310 #

Miniconda: A Free Minimal Installer for Conda
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.
Example: conda --version, conda create --name=myenv, conda env list, conda activate myenv, conda info, and conda deactive.
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)
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.
Versions: 22.11.1
Module code: view
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-py310-22.11.1/etc/profile.d/conda.sh
pushenv("CONDA_EXE","/software/c4/cbi/software/miniconda3-py310-22.11.1/bin/conda")
pushenv("CONDA_PYTHON_EXE","/software/c4/cbi/software/miniconda3-py310-22.11.1/bin/python")
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\
","")

miniconda3 #

Miniconda: A Free Minimal Installer for Conda
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.
Example: conda --version, conda create --name=myenv, conda env list, conda activate myenv, conda info, and conda deactive.
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)
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.
Versions: 4.12.0-py39, 23.3.1-0-py39, 23.11.0-2-py311
Module code: view
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"))

-- 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/miniconda3-23.11.0-2-py311/etc/profile.d/conda.sh
pushenv("CONDA_EXE","/software/c4/cbi/software/miniconda3-23.11.0-2-py311/bin/conda")
pushenv("CONDA_PYTHON_EXE","/software/c4/cbi/software/miniconda3-23.11.0-2-py311/bin/python")
pushenv("CONDA_SHLVL","0")
prepend_path("PATH","/software/c4/cbi/software/miniconda3-23.11.0-2-py311/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 #

muTect: Identification of Somatic Point Mutations in Next Generation Sequencing Data of Cancer Genomes
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".
URL: https://software.broadinstitute.org/cancer/cga/mutect, https://github.com/broadinstitute/mutect (source code)
Versions: 1.0.27783, 1.1.1, 1.1.4, 1.1.5
Module code: view
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://software.broadinstitute.org/cancer/cga/mutect, https://github.com/broadinstitute/mutect (source code)")
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.
Examples: `mutect`, which is short for `java -Xmx2g -jar "$MUTECT_JAR"`.
]])

local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)

if (version == "1.0.27783") then
  -- muTect 1.0.27783 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
end

name = "muTect"
pushenv("MUTECT_HOME", home)
local jarfile = name .. "-" .. version .. ".jar"
pushenv("MUTECT_JAR", pathJoin(home, jarfile))

local bash = 'java -Xmx2g -jar "$MUTECT_HOME/' .. jarfile .. '" "$@"'
local csh  = 'java -Xmx2g -jar "$MUTECT_HOME/' .. jarfile .. '" $*'
set_shell_function("mutect", bash, csh)

-- Tweak Java for the current environment
depends_on("java-tweaks")

ncdu #

ncdu: NCurses Disk Usage
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.
Example: 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.
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)
Versions: 2.2.1
Module code: view
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)

oraclejdk #

oraclejdk: Oracle Java Development Kit
Oracle's implementation of Java and the Java Development Kit. This is an alternative to the OpenJDK Java version.
Example: java -version and javac -version.
URL: https://www.oracle.com/java/, https://www.oracle.com/java/technologies/downloads/ (downloads)
Versions: 17.0.8
Module code: view
help([[
oraclejdk: Oracle Java Development Kit
]])

local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: programming")
whatis("URL: https://www.oracle.com/java/, https://www.oracle.com/java/technologies/downloads/ (downloads)")
whatis([[
Description: Oracle's implementation of Java and the Java Development Kit.  This is an alternative to the OpenJDK Java version.
Examples: `java -version` and `javac -version`.
]])

-- Local variables
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)

setenv("JAVA_HOME", home)
prepend_path("PATH", pathJoin(home, "bin"))
prepend_path("MANPATH", pathJoin(home, "man"))
prepend_path("LD_LIBRARY_PATH", pathJoin(home, "lib"))
prepend_path("CPATH", pathJoin(home, "include"))

conflict("openjdk")

pandoc #

Pandoc: A Universal Document Converter
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.
Example: pandoc --version.
URL: https://pandoc.org/, https://github.com/jgm/pandoc/blob/master/changelog.md (changelog), https://github.com/jgm/pandoc (source code)
Warning: Only the most recent version of this software will be kept.
Versions: 3.1.9, 3.1.11.1
Module code: view
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://github.com/jgm/pandoc/blob/master/changelog.md (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 #

PDFCrop: Crop and Rescale PDFs
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.
Example: pdfcrop --help and pdfcrop A4 input.pdf.
URL: https://www.ctan.org/tex-archive/support/pdfcrop, https://github.com/ho-tex/pdfcrop (source code), https://github.com/ho-tex/pdfcrop/tags/ (changelog)
Versions: 0.4b, 1.42
Module code: view
help([[
PDFCrop: Crop and Rescale PDFs
]])

local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, tool")
whatis("URL: https://www.ctan.org/tex-archive/support/pdfcrop, https://github.com/ho-tex/pdfcrop (source code), https://github.com/ho-tex/pdfcrop/tags/ (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)

picard #

Picard: Command-line tools for Manipulating High-throughput Sequencing Data and Formats
Picard is a set of command line tools for manipulating high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF.
Example: PicardCommandLine -h, which is short for java -jar "$PICARD_HOME/picard.jar" -h.
URL: https://broadinstitute.github.io/picard/, https://github.com/broadinstitute/picard/releases (changelog), https://github.com/broadinstitute/picard (source code)
Warning: The old picard alias is deprecated. Use function PicardCommandLine instead.
Versions: 1.64, 2.23.1, 2.24.0, 2.25.0, 2.26.2, 2.26.5, 2.26.10, 2.26.11, 2.27.1, 2.27.3, 2.27.4, 2.27.5
Module code: view
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: `PicardCommandLine -h`, which is short for `java -jar "$PICARD_HOME/picard.jar" -h`.
Warning: The old `picard` alias is deprecated. Use function `PicardCommandLine` instead.
]])

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)

-- Functions
local bash = 'java -jar "$PICARD_HOME/picard.jar" "$@"'
local csh  = 'java -jar "$PICARD_HOME/picard.jar" $*'
set_shell_function("PicardCommandLine", bash, csh)

-- Aliases (deprecated)
set_alias("picard", "java -jar \"$PICARD_HOME/picard.jar\"")

-- Tweak Java for the current environment
depends_on("java-tweaks")

pindel #

pindel: Detection of Indels and Structural Variations
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.
URL: https://www.sanger.ac.uk/science/tools/pindel, https://github.com/genome/pindel/tags (changelog), https://github.com/genome/pindel (source code)
Versions: 0.2.4t, 0.2.5b8
Module code: view
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/tags (changelog), https://github.com/genome/pindel (source code)")
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.
Examples: `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: Whole Genome Association Analysis Toolset
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.
URL: https://www.cog-genomics.org/plink/
Versions: 1.90b6.18, 1.90b6.21, 1.90b6.24, 1.90b6.25, 1.90b6.26
Module code: view
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).
Examples: `plink --help`.
]])

-- Local variables
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)

prepend_path("PATH", home)

plink2 #

PLINK2: Whole Genome Association Analysis Toolset
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: plink2 --help.
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)
Versions: 2.00a3LM
Module code: view
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 #

port4me: Get the Same, Personal, Free TCP Port over and over
'port4me' attempts, with high probability, to provide the user with the same, free port each time, even when used on different days.
Example: port4me --help, port4me, port4me --tool=jupyter).
URL: https://github.com/HenrikBengtsson/port4me, https://github.com/HenrikBengtsson/port4me/blob/develop/NEWS.md (changelog)
Warning: This tool is under development.
Versions: 0.6.0, 0.7.1
Module code: view
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"))

proj #

PROJ: PROJ Coordinate Transformation Software Library
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.
URL: https://proj.org/, https://proj.org/news.html (changelog), https://github.com/OSGeo/PROJ (source code)
Versions: 4.9.3, 8.2.1
Module code: view
help([[
PROJ: PROJ Coordinate Transformation Software Library
]])

local name = myModuleName()
local version = myModuleVersion()
version = string.gsub(version, "^[.]", "")
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.
Examples: `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 #

quarto-cli: Open-Source Scientific and Technical Publishing System Built on Pandoc
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.
Example: quarto --version and quarto --help.
URL: https://quarto.org/, https://quarto.org/docs/guide/ (documentation), https://github.com/quarto-dev/quarto-cli/releases/latest (changelog), https://github.com/quarto-dev/quarto-cli/ (source code)
Warning: Only the most recent version of this software will be kept.
Versions: 1.3.361, 1.3.450, 1.4.549
Module code: view
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/latest (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: The R Programming Language
The R programming language.
Example: R, R --version, and Rscript --version.
URL: https://www.r-project.org/, https://cran.r-project.org/doc/manuals/r-release/NEWS.html (changelog)
Versions: 2.15.0, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.4.0, 3.5.0, 3.6.0, 4.0.0, 4.1.0-gcc8, 4.1.3-gcc8, 4.2.0-gcc10, 4.2.1-gcc10, 4.2.2-gcc10, 4.2.3-gcc10, 4.3.0-gcc10, 4.3.1-gcc10, 4.3.2-gcc10, 4.3.3-gcc10
Module code: view
help([[
R: The R Programming Language
]])

local name = myModuleName()
local version = "4.3.2-gcc10"
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", "")
  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

-- 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)

-- 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

r-siteconfig #

R Site Configuration: Tweaks to R for the Current Compute Environment
Sets R options and environment variables customized for the current compute environment. Notably, it configures R to install packages from local CRAN and Bioconductor mirrors without the need for internet access.
Example: In R, install.packages(\"ggplot2\").
Versions: 0.3
Module code: view
help([[
R Site Configuration: Tweaks to R for the Current Compute Environment
]])

local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: R, configuration")
whatis([[
Description: Sets R options and environment variables customized for the current compute environment. Notably, it configures R to install packages from local CRAN and Bioconductor mirrors without the need for internet access.
Examples: In R, `install.packages(\"ggplot2\")`.
]])

local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)

-- Set site-wide (sic!) Renviron and Rprofile files
pushenv("R_ENVIRON", pathJoin(home, "Renviron.site"))
pushenv("R_PROFILE", pathJoin(home, "Rprofile.site"))

rclone #

rclone: Rsync for Cloud Storage and More
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.
Example: rclone --version, rclone --help, rclone config, and man rclone.
URL: https://rclone.org/, https://rclone.org/changelog/ (changelog), https://github.com/rclone/rclone (source code)
Warning: Only the most recent version of this software will be kept.
Versions: 1.64.2, 1.65.1, 1.65.2
Module code: view
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 #

redis: Remote Dictionary Server
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.
Example: redis-cli --version, redis-cli --help, redis-server --version, and redis-server --help.
URL: https://redis.io/, https://redis.io/docs/ (docs), https://github.com/redis/redis/releases (changelog), https://github.com/redis/redis (source code)
Warning: Only the most recent version of this software will be kept.
Versions: 7.0.8, 7.0.10, 7.0.12, 7.2.2
Module code: view
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 #

restic: Fast, Secure, Efficient Backup Program
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).
Example: restic --help and restic version.
URL: https://restic.net, https://restic.readthedocs.io/en/latest/ (documentation), https://github.com/restic/restic/releases (change log), https://github.com/restic/restic (source code)
Versions: 0.16.2, 0.16.3
Module code: view
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 (change log), 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"))

ripgrep #

ripgrep: Recursively Searches Directories for a Regex Pattern
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.
Example: rg --version and rg -i 'lorem ipsum'.
URL: https://github.com/BurntSushi/ripgrep, https://github.com/BurntSushi/ripgrep/blob/master/CHANGELOG.md (changelog)
Warning: Only the most recent version of this software will be kept.
Versions: 13.0.0, 14.0.3, 14.1.0
Module code: view
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 #

rstudio: RStudio Desktop
The RStudio Desktop is an integrated development environment (IDE) for R, a programming language for statistical computing and graphics.
Example: rstudio. If you get a blank window, retry with QMLSCENE_DEVICE=softwarecontext rstudio.
URL: https://rstudio.com/products/rstudio/#rstudio-desktop, https://www.rstudio.com/products/rstudio/release-notes/ (changelog), https://github.com/rstudio/rstudio/ (source code)
Warning: This software works only on the development nodes. It requires an SSH connection with X11 Forwarding enabled. It does not work with X2Go (gives error "GLX 1.3 or later is required"). For best performance, use SSH compression when using X11 Forwarding, i.e. ssh -X -C ....
Versions: 1.4.1103, 1.4.1717, 2021.09.0+351, 2021.09.1-372, 2021.09.2-382, 2022.02.0-443, 2022.02.1-461, 2022.07.1-554
Module code: view
help([[
RStudio Desktop: The RStudio Desktop IDE for R
]])

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/ (changelog), https://github.com/rstudio/rstudio/ (source code)")
whatis([[
Description: The RStudio Desktop is an integrated development environment (IDE) for R, a programming language for statistical computing and graphics.
Examples: `rstudio`.  If you get a blank window, retry with `QMLSCENE_DEVICE=softwarecontext rstudio`.
Warning: This software works only on the development nodes. It requires an SSH connection with X11 Forwarding enabled. It does *not* work with X2Go (gives error \"GLX 1.3 or later is required\"). 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"))

rstudio-server #

RStudio Server: The RStudio Server
The RStudio Server is an integrated development environment (IDE) for R that can be used from the web browser.
Example: rserver.
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)
Versions: 2021.09.2-382, 2022.02.0-443, 2022.02.1-461, 2022.02.4-500, 2022.12.0-353, 2023.03.0-386, 2023.06.1-524, 2023.09.1-494, 2023.12.0-369
Module code: view
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"))

rstudio-server-controller #

RSC: An RStudio Server Controller
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.
Example: rsc --help, rsc start, and rsc stop.
URL: https://github.com/UCSF-CBI/rstudio-server-controller, https://github.com/UCSF-CBI/rstudio-server-controller/blob/main/NEWS.md (changelog)
Versions: 0.14.2, 0.15.1, 0.16.0
Module code: view
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 #

salmon: Salmon Provides Fast and Bias-Aware Quantification of Transcript Expression
Highly-accurate & wicked fast transcript-level quantification from RNA-seq reads using selective alignment.
Example: salmon --version.
URL: https://combine-lab.github.io/salmon/, https://github.com/COMBINE-lab/salmon/releases (changelog), https://github.com/COMBINE-lab/salmon (source code)
Versions: 0.10.0, 1.3.0, 1.4.0, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.9.0, 1.10.0
Module code: view
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/releases (changelog), https://github.com/COMBINE-lab/salmon (source code)")
whatis([[
Description: Highly-accurate & wicked fast transcript-level quantification from RNA-seq reads using selective alignment.
Examples: `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 #

SAMtools: Tools (written in C using htslib) for Manipulating Next-Generation Sequencing Data
SAMtools is a suite of programs for interacting with high-throughput sequencing data.
Example: samtools --version.
URL: https://www.htslib.org/, https://github.com/samtools/samtools/blob/develop/NEWS (changelog), https://github.com/samtools/samtools (source code)
Versions: 0.1.12a, 0.1.18, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.15.1, 1.16, 1.16.1, 1.17, 1.18, 1.19, 1.19.2
Module code: view
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

scl-devtoolset #

SCL Developer Toolset: GNU Compiler Collection, GNU Debugger, etc.
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 CentOS Software Collection (SCL) devtoolset-<version> in the current environment. This is an alternative to calling source scl_source enable devtoolset-<version>, which is an approach that is not officially supported by RedHat/CentOS.
Example: gcc --version.
URL: https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/11
Warning: Older versions may be removed in the future.
Versions: 7, 8, 9, 10, 11
Module code: view
help([[
SCL Developer Toolset: GNU Compiler Collection, GNU Debugger, etc.
]])

local name = myModuleName()
local version = myModuleVersion()
local scl_name = "devtoolset" .. "-" .. version

whatis("Version: " .. version)
whatis("Keywords: programming, gcc")
whatis("URL: https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/" .. version)
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 CentOS Software Collection (SCL) `devtoolset-<version>` in the current environment.  This is an alternative to calling `source scl_source enable devtoolset-<version>`, which is an approach that is not officially supported by RedHat/CentOS.  Example: `gcc --version`.  Warning: Older versions may be removed in the future.")


require "posix"
function isdir(fn)
  return (posix.stat(fn, "type") == "directory")
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/devtoolset-11/enable
prepend_path("INFOPATH","/opt/rh/devtoolset-11/root/usr/share/info")
prepend_path("LD_LIBRARY_PATH","/opt/rh/devtoolset-11/root/usr/lib64:/opt/rh/devtoolset-11/root/usr/lib:/opt/rh/devtoolset-11/root/usr/lib64/dyninst:/opt/rh/devtoolset-11/root/usr/lib/dyninst")
prepend_path("MANPATH","/opt/rh/devtoolset-11/root/usr/share/man")
prepend_path("PATH","/opt/rh/devtoolset-11/root/usr/bin")
setenv("PCP_DIR","/opt/rh/devtoolset-11/root")
prepend_path("PKG_CONFIG_PATH","/opt/rh/devtoolset-11/root/usr/lib64/pkgconfig")

scl-rh-python #

SCL Python: Python with Additional Utilities via CentOS Software Collections
Enables the CentOS Software Collection (SCL) rh-python<version> in the current environment. This is an alternative to calling source scl_source enable rh-python<version>, which is not officially supported by RedHat/CentOS.
Example: python --version, and pip --version.
URL: https://www.softwarecollections.org/en/scls/rhscl/rh-python38/
Warning: Older versions may be removed in the future.
Versions: 36, 38
Module code: view
help([[
SCL Python: Python with Additional Utilities via CentOS Software Collections
]])

local name = myModuleName()
local version = myModuleVersion()
local scl_name = "rh-python" .. version

whatis("Version: " .. version)
whatis("Keywords: programming, Python")
whatis("URL: https://www.softwarecollections.org/en/scls/rhscl/" .. scl_name .. "/")
whatis([[
Description: Enables the CentOS Software Collection (SCL) `rh-python<version>` in the current environment.  This is an alternative to calling `source scl_source enable rh-python<version>`, which is not officially supported by RedHat/CentOS.
Example: `python --version`, and `pip --version`.
Warning: Older versions may be removed in the future.
]])

local home = "/opt/rh/rh-python" .. version
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/rh-python38/enable
prepend_path("LD_LIBRARY_PATH","/opt/rh/rh-python38/root/usr/lib64")
prepend_path("MANPATH","/opt/rh/rh-python38/root/usr/share/man")
prepend_path("PATH","/opt/rh/rh-python38/root/usr/bin")
prepend_path("PATH","/opt/rh/rh-python38/root/usr/local/bin")
prepend_path("PKG_CONFIG_PATH","/opt/rh/rh-python38/root/usr/lib64/pkgconfig")
prepend_path("XDG_DATA_DIRS","/opt/rh/rh-python38/root/usr/share")

scl-rh-ruby #

SCL Ruby: Ruby
Enables the CentOS Software Collection (SCL) rh-ruby26 in the current environment. This is an alternative to calling source scl_source enable rh-ruby26, which is an approach that is not of ficially supported by RedHat/CentOS.
Example: irb --help, ruby --help, ruby script.rb.
URL: https://www.softwarecollections.org/en/scls/rhscl/rh-ruby26/
Versions: 25, 26
Module code: view
help([[
SCL Ruby: Ruby
]])

local name = myModuleName()
local version = myModuleVersion()
local scl_name = "rh-ruby" .. version

whatis("Version: " .. version)
whatis("Keywords: programming, Ruby")
whatis("URL: https://www.softwarecollections.org/en/scls/rhscl/" .. scl_name .. "/")
whatis("Description: Enables the CentOS Software Collection (SCL) `" .. scl_name .. "` in the current environment.  This is an alternative to calling `source scl_source enable " .. scl_name .. "`, which is an approach that is not of ficially supported by RedHat/CentOS.  Example: `irb --help`, `ruby --help`, `ruby script.rb`.")


require "posix"
function isdir(fn)
  return (posix.stat(fn, "type") == "directory")
end

local home = "/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/rh-ruby26/enable
setenv("LD_LIBRARY_PATH","/opt/rh/rh-ruby26/root/usr/local/lib64:/opt/rh/rh-ruby26/root/usr/lib64")
prepend_path("MANPATH","/opt/rh/rh-ruby26/root/usr/share/man")
prepend_path("MANPATH","/opt/rh/rh-ruby26/root/usr/local/share/man")
prepend_path("PATH","/opt/rh/rh-ruby26/root/usr/bin")
prepend_path("PATH","/opt/rh/rh-ruby26/root/usr/local/bin")
prepend_path("PKG_CONFIG_PATH","/opt/rh/rh-ruby26/root/usr/lib64/pkgconfig")
prepend_path("PKG_CONFIG_PATH","/opt/rh/rh-ruby26/root/usr/local/lib64/pkgconfig")
setenv("XDG_DATA_DIRS","/opt/rh/rh-ruby26/root/usr/local/share:/opt/rh/rh-ruby26/root/usr/share:/usr/local/share:/usr/share")

shellcheck #

ShellCheck: A Shell Script Static Analysis Tool
ShellCheck finds bugs in your shell scripts.
Example: shellcheck --version and shellcheck -x ~/.bashrc.
URL: https://www.shellcheck.net/, https://github.com/koalaman/shellcheck/blob/master/CHANGELOG.md (changelog), https://github.com/koalaman/shellcheck/ (source code)
Warning: Only the most recent version of this software will be kept.
Versions: 0.9.0
Module code: view
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 #

SnpEff: Genetic Variant Annotation and Effect Prediction Toolbox
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 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.
URL: https://pcingola.github.io/SnpEff/, https://github.com/pcingola/SnpEff/tags (changelog), https://github.com/pcingola/SnpEff (source code)
Versions: 4.3t, 5.0c, 5.0e
Module code: view
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: https://pcingola.github.io/SnpEff/, https://github.com/pcingola/SnpEff/tags (changelog), https://github.com/pcingola/SnpEff (source code)")
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).
Examples: `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`.
]])

local name = "snpEff"
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)

if (version < "5.1") then
  try_load("openjdk/11")
elseif (version >= "5.1") then
  try_load("openjdk/17")
  try_load("openjdk/18")
end

pushenv("SNPEFF_HOME", home)

local jarfile = pathJoin(home, "snpEff", "snpEff.jar")
pushenv("SNPEFF", jarfile)
local bash = 'java -jar "$SNPEFF_HOME/snpEff/snpEff.jar" "$@"'
local csh  = 'java -jar "$SNPEFF_HOME/snpEff/snpEff.jar" $*'
set_shell_function("snpEff", bash, csh)

local jarfile = pathJoin(home, "snpEff", "SnpSift.jar")
pushenv("SNPSIFT", jarfile)
local bash = 'java -jar "$SNPEFF_HOME/snpEff/SnpSift.jar" "$@"'
local csh  = 'java -jar "$SNPEFF_HOME/snpEff/SnpSift.jar" $*'
set_shell_function("SnpSift", bash, csh)

local jarfile = pathJoin(home, "clinEff", "ClinEff.jar")
if isFile(jarfile) then
  pushenv("CLINEFF", jarfile)
  local bash = 'java -jar "$SNPEFF_HOME/ClinEff/ClinEff.jar" "$@"'
  local csh  = 'java -jar "$SNPEFF_HOME/ClinEff/ClinEff.jar" $*'
  set_shell_function("ClinEff", bash, csh)
end

-- Tweak Java for the current environment
depends_on("java-tweaks")

sqlite #

sqlite: SQLite Database Engine & Library
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.
URL: https://sqlite.org/, https://sqlite.org/docs.html (docs), https://github.com/sqlite/sqlite/tags (changelog), https://github.com/sqlite/sqlite (source code)
Versions: 3.32.3, 3.40.0, 3.41.2, 3.42.0
Module code: view
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")
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"))

sratoolkit #

SRA Toolkit: Tools and Libraries for Using Data in the INSDC Sequence Read Archives
The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for using data in the INSDC Sequence Read Archives.
Example: fastq-dump --help.
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)
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.
Versions: 2.10.8, 2.10.9, 2.11.0, 2.11.1, 2.11.2, 2.11.3, 3.0.0, 3.0.1, 3.0.2, 3.0.5, 3.0.7, 3.1.0
Module code: view
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

-- Workaround only works in shells that support function, i.e. not in csh and tcsh
if myShellType() == "sh" then
  set_shell_function("fasterq-dump", 'command fasterq-dump --threads 2 --temp "$(mktemp -d)" "$@"', '')
end

star #

STAR: Spliced Transcripts Alignment to a Reference
STAR (Spliced Transcripts Alignment to a Reference) is a fast NGS read aligner for RNA-seq data.
Example: STAR --help and STAR --version.
URL: https://github.com/alexdobin/STAR, https://github.com/alexdobin/STAR/blob/master/CHANGES.md (changelog)
Versions: 2.7.4a, 2.7.5a, 2.7.5c, 2.7.7a, 2.7.9a, 2.7.10a, 2.7.10b, 2.7.11a
Module code: view
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, https://github.com/alexdobin/STAR/blob/master/CHANGES.md (changelog)")
whatis([[
Description: STAR (Spliced Transcripts Alignment to a Reference) is a fast NGS read aligner for RNA-seq data.
Examples: `STAR --help` and `STAR --version`.
]])

local name = "STAR"
local root = os.getenv("SOFTWARE_ROOT_CBI")
local home = pathJoin(root, name .. "-" .. version)

prepend_path("PATH", pathJoin(home, "bin"))

tiledb #

TileDB: The Universal Storage Engine
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.
URL: https://tiledb.com/, https://github.com/TileDB-Inc/TileDB
Versions: 2.4.3, 2.4.4, 2.5.2
Module code: view
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("PKG_CONFIG_PATH", pathJoin(home, "lib", "pkgconfig"))

-- Note: These are needed for R package 'tiledb' to compile
-- prepend_path("CPATH", pathJoin(home, "include"))
-- prepend_path("LDFLAGS", "-L" .. pathJoin(home, "lib") .. " ")

-- In-house env var
setenv("TILEDB_HOME", home)

tmux #

tmux: A Terminal Multiplexer
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.
Example: tmux and man tmux.
URL: https://github.com/tmux/tmux/wiki, https://github.com/tmux/tmux/blob/master/CHANGES (changelog), https://github.com/tmux/tmux (source code)
Warning: Only the most recent version of this software will be kept.
Versions: 2.8
Module code: view
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 #

TopHat: A Spliced Read Mapper for RNA-Seq
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.
Example: tophat --version.
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)
Versions: 2.1.1
Module code: view
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)

tree #

tree: List Content of Directories in a Tree-like Format
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.
Example: tree --help.
URL: http://mama.indstate.edu/users/ice/tree/, http://mama.indstate.edu/users/ice/tree/changes.html (changelog)
Warning: Only the most recent version of this software will be kept.
Versions: 2.1.1
Module code: view
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"))

trimgalore #

TrimGalore: Taking Appropriate QC Measures for RRBS-Type or Other -Seq Applications with Trim Galore!
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".
URL: https://github.com/FelixKrueger/TrimGalore, https://github.com/FelixKrueger/TrimGalore/blob/master/CHANGELOG.md (changelog)
Versions: 0.4.4, 0.6.6, 0.6.7, 0.6.10
Module code: view
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, https://github.com/FelixKrueger/TrimGalore/blob/master/CHANGELOG.md (changelog)")
whatis([[
Description: A wrapper around Cutadapt and FastQC to consistently apply adapter and quality trimming to FastQ files, with extra functionality for RRBS data.
Examples: `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)

up #

up: The Ultimate Plumber
A tool for writing Linux pipes in a terminal-based UI interactively, with instant live preview of command results. Interactively and incrementally explore textual data in Linux using text-processing utils such as grep, sort, cut, paste, awk, wc, perl, etc. When done, press Ctrl-C to view final pipe commands, or Ctrl-X to save it to file.
Example: up --help, ls | up (exit with Ctrl-C).
URL: https://github.com/akavel/up, https://github.com/akavel/up/releases (changelog)
Warning: Only the most recent version of this software will be kept.
Versions: 0.4
Module code: view
help([[
up: The Ultimate Plumber
]])

local name = myModuleName()
local version = myModuleVersion()
whatis("Version: " .. version)
whatis("Keywords: utility, cli")
whatis("URL: https://github.com/akavel/up, https://github.com/akavel/up/releases (changelog)")
whatis([[
Description: A tool for writing Linux pipes in a terminal-based UI interactively, with instant live preview of command results. Interactively and incrementally explore textual data in Linux using text-processing utils such as grep, sort, cut, paste, awk, wc, perl, etc.  When done, press Ctrl-C to view final pipe commands, or Ctrl-X to save it to file.
Examples: `up --help`, `ls | up` (exit with Ctrl-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)

varscan #

VarScan: Variant Detection in Massively Parallel Sequencing Data
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.
Example: varscan, which is short for java -jar $VARSCAN_HOME/VarScan.jar.
URL: https://dkoboldt.github.io/varscan/, https://github.com/dkoboldt/varscan/releases (changelog), https://github.com/dkoboldt/varscan (source code)
Versions: 2.4.2, 2.4.6
Module code: view
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 short for `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)

local bash = 'java -jar "$VARSCAN_HOME/VarScan.jar" "$@"'
local csh  = 'java -jar "$VARSCAN_HOME/VarScan.jar" $*'
set_shell_function("varscan", bash, csh)

-- Tweak Java for the current environment
depends_on("java-tweaks")

vcf-validator #

vcf-validator: Validation Suite for Variant Call Format (VCF) Files
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.
Example: vcf_validator --help, vcf-debugulator --help, and vcf-assembly-checker --help.
URL: https://github.com/EBIvariation/vcf-validator, https://github.com/EBIvariation/vcf-validator/releases (changelog)
Versions: 0.9.4, 0.9.5
Module code: view
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 #

VCFtools: Tools Written in Perl and C++ for Working with VCF Files
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.
Example: vcftools --version.
URL: https://vcftools.github.io/, https://github.com/vcftools/vcftools/releases (changelog), https://github.com/vcftools/vcftools (source code)
Versions: 0.1.16
Module code: view
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 #

x86-64-level: Get the x86-64 Microarchitecture Level on the Current Machine
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.
Example: x86-64-level and x86-64-level --help.
URL: https://github.com/HenrikBengtsson/x86-64-level/, https://github.com/HenrikBengtsson/x86-64-level/blob/develop/NEWS.md (changelog)
Warning: Only the most recent version of this software will be kept.
Versions: 0.2.2
Module code: view
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

Module Software Repository: WitteLab (17) #

Maintained by: Taylor Cavazos, Witte Lab Software Repository
Enable repository: module load WitteLab

ascp #

ascp: Command line data transfer client
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.
URL: https://developer.asperasoft.com/desktop-advance/command-line-client
Versions: 3.9.6
Module code: view
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 #

bcftools: Command line suite for working with bgzipped vcf files, includes tabix and bgzip
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.
URL: http://www.htslib.org/download/
Versions: 1.11
Module code: view
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)

charger #

charger: a software tool for interpreting and predicting clinical pathogenicity of germline variants.
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
URL: https://github.com/ding-lab/CharGer/tree/7d7d2911b89261fa5dceea6395a5d188a82757f2
Versions: 0.5.4
Module code: view
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)

flashpca #

FlashPCA2: performs fast PCA of SNP data
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.
URL: https://github.com/gabraham/flashpca
Versions: 2.0.0
Module code: view
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)

focus #

focus: a set of tools to finemap twas statistics
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
URL: https://github.com/bogdanlab/focus
Versions: 0.7.0
Module code: view
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)

gcta #

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.
Additional information can be found in the tutorial: https://cnsgenomics.com/software/gcta/#Tutorial
Versions: 1.93.2
Module code: view
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)

gfetch #

gfetch: Download multi-person genetic data for the UK Biobank
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
URL: https://biobank.ndph.ox.ac.uk/ukb/refer.cgi?id=668
Versions: 1.0.0
Module code: view
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 #

GWAMA: Genome-Wide Association Meta Analysis
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.
URL: https://genomics.ut.ee/en/tools/gwama
Versions: 2.2.2
Module code: view
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)

gwastools #

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.
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
URL: https://github.com/hakyimlab/summary-gwas-imputation
Versions: 0.0.0
Module code: view
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")

hess #

HESS: is a Python package that provides utilities for estimating and analyzing local SNP-heritability and genetic covariance from GWAS summary association data.
URL: https://github.com/huwenboshi/hess
Versions: 0.5.4
Module code: view
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")

ldak #

LDAK: program for running heritability, genetic correlation, and genetic prediction (BayesR, MultiBLUP) analyses
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.
URL: https://dougspeed.com/ldak/
Versions: 5.1
Module code: view
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)

ldsc #

ldsc: a command line tool for estimating heritability and genetic correlation from GWAS summary statistics. ldsc also computes LD Scores.
Additional information can be found at the wiki: https://github.com/bulik/ldsc/wiki
URL: https://github.com/bulik/ldsc
Versions: 1.0.1
Module code: view
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 #

liftOver: program can be used to convert coordinate ranges between genome assemblies
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.
URL: https://genome-store.ucsc.edu/products/
Versions: 1.0.0
Module code: view
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)

metaxcan #

metaxcan: a set of tools to perform twas
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
URL: https://github.com/hakyimlab/MetaXcan/tree/master/software
Versions: 0.6.5
Module code: view
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")

paintor #

liftOver: program can be used to fine map putative causal variants using GWAS summary statistics.
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
URL: https://github.com/gkichaev/PAINTOR_V3.0
Versions: 3.0
Module code: view
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)

python3 #

python3: programming language
Python is powerful... and fast; plays well with others; runs everywhere; is friendly & easy to learn; is Open.Example: python3 --help
URL: https://www.python.org/about/
Versions: 3.9.1
Module code: view
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 #

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.
performs fast gene-based and single-variants tests specifically designed for case-control imbalance
Example: regenie --help.
URL: https://github.com/rgcgithub/regenie
Versions: 2.2.4
Module code: view
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.