Specialized Scientific Software
This page covers selected scientific applications installed on Pegasus.
Important
The examples below were tested on Pegasus. Always confirm availability on
the target system with module avail and inspect a module with
module show.
The module spider command is not supported on Pegasus.
Note
Run computational workloads through LSF. Do not run production calculations on a login node merely because an executable starts there.
Gaussian
Pegasus provides Gaussian 09 through the gaussian module.
Check the available versions and load the verified module:
module avail gaussian
module load gaussian/09.e.01
Confirm the executable:
which g09
The installed module provides g09. It does not provide g16.
Complete LSF example
Create a working directory. Replace dssas with a project that you can use:
PROJECT=dssas
WORKDIR=/scratch/$PROJECT/$USER/software-tests/gaussian
mkdir -p "$WORKDIR"
cd "$WORKDIR"
Create water.com:
cat > water.com <<'EOF'
%mem=1GB
%nprocshared=1
#p hf/sto-3g sp
Gaussian smoke test
0 1
O 0.000000 0.000000 0.000000
H 0.000000 0.000000 0.960000
H 0.000000 0.750000 -0.240000
EOF
Create gaussian_test.job:
cat > gaussian_test.job <<'EOF'
#!/bin/bash
#BSUB -P hpc
#BSUB -J gaussian_test
#BSUB -q general
#BSUB -n 1
#BSUB -R "rusage[mem=2000]"
#BSUB -W 00:10
#BSUB -o gaussian.%J.out
#BSUB -e gaussian.%J.err
set -euo pipefail
module purge
module load gaussian/09.e.01
PROJECT=dssas
WORKDIR=/scratch/$PROJECT/$USER/software-tests/gaussian
export GAUSS_SCRDIR="$WORKDIR/scratch/$LSB_JOBID"
mkdir -p "$GAUSS_SCRDIR"
g09 < water.com > water.log
grep -q "Normal termination of Gaussian 09" water.log
rm -rf "$GAUSS_SCRDIR"
echo "Gaussian LSF verification successful"
EOF
Submit the job:
bsub < gaussian_test.job
After the job finishes, verify the calculation:
grep "Normal termination" water.log
cat gaussian.*.err
A successful calculation reports:
Normal termination of Gaussian 09
Note
g09 -v is not a supported version command and should not be used.
LAMMPS
Pegasus provides LAMMPS dated July 21, 2020.
Load the module and inspect the executable:
module load lammps/20200721
which lmp
lmp -h
The verified command is lmp. Separate lmp_mpi and lmp_serial
commands are not provided.
Complete LSF example
Create a working directory:
mkdir -p "$HOME/software-tests/lammps"
cd "$HOME/software-tests/lammps"
Create in.lammps:
cat > in.lammps <<'EOF'
units lj
atom_style atomic
boundary p p p
lattice fcc 0.8442
region box block 0 4 0 4 0 4
create_box 1 box
create_atoms 1 box
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
velocity all create 1.44 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
fix 1 all nve
thermo 5
thermo_style custom step atoms temp pe ke etotal press
timestep 0.005
run 20
write_data final.data
print "LAMMPS smoke test successful"
EOF
Create lammps_test.job:
cat > lammps_test.job <<'EOF'
#!/bin/bash
#BSUB -P hpc
#BSUB -J lammps_test
#BSUB -q general
#BSUB -n 1
#BSUB -R "rusage[mem=1000]"
#BSUB -W 00:05
#BSUB -o lammps.%J.out
#BSUB -e lammps.%J.err
set -euo pipefail
module purge
module load lammps/20200721
echo "Host: $(hostname)"
echo "Executable: $(command -v lmp)"
lmp -in in.lammps
test -s log.lammps
test -s final.data
grep -q "LAMMPS smoke test successful" log.lammps
echo "LAMMPS LSF verification successful"
EOF
Submit and verify the job:
bsub < lammps_test.job
# Run these commands after the job finishes.
cat lammps.*.out
cat lammps.*.err
tail -n 40 log.lammps
ls -lh log.lammps final.data
A successful run creates log.lammps and final.data and reports:
LAMMPS smoke test successful
LAMMPS LSF verification successful
MAPSplice
Pegasus provides MAPSplice 2.1.5.
MAPSplice is a legacy Python 2 application. A working environment requires both the Python 2 and MAPSplice modules:
module purge
module load python/2.7.15
module load mapsplice/2.1.5
Verify the environment:
python --version
which mapsplice_multi_thread
which bowtie-build
The expected Python version is:
Python 2.7.15
The module exposes the compiled programs in the MAPSplice bin directory,
but it does not place the main mapsplice.py wrapper on PATH. Use the
full wrapper path:
MAPSPLICE_ROOT=/share/apps/mapsplice/2.1.5
python "$MAPSPLICE_ROOT/mapsplice.py" --help
Required inputs
A normal run requires:
a directory containing reference chromosome FASTA files;
a Bowtie index built from the same reference;
single-end reads supplied with
-1, or paired-end reads supplied with both-1and-2;the correct FASTQ quality scale;
an output directory.
Build a Bowtie index
The following example assumes reference/chr1.fa already exists:
mkdir -p index
bowtie-build \
reference/chr1.fa \
index/genome
The index prefix passed to MAPSplice is index/genome, not the name of an
individual .ebwt file.
Single-end LSF example
Create mapsplice_test.job:
cat > mapsplice_test.job <<'EOF'
#!/bin/bash
#BSUB -P hpc
#BSUB -J mapsplice_test
#BSUB -q general
#BSUB -n 4
#BSUB -R "rusage[mem=4000]"
#BSUB -W 02:00
#BSUB -o mapsplice.%J.out
#BSUB -e mapsplice.%J.err
set -euo pipefail
module purge
module load python/2.7.15
module load mapsplice/2.1.5
MAPSPLICE_ROOT=/share/apps/mapsplice/2.1.5
WORKDIR="$PWD"
REF_DIR="$WORKDIR/reference"
INDEX_PREFIX="$WORKDIR/index/genome"
READS="$WORKDIR/reads.fastq"
OUTPUT_DIR="$WORKDIR/output"
rm -rf "$OUTPUT_DIR"
python "$MAPSPLICE_ROOT/mapsplice.py" \
-c "$REF_DIR" \
-x "$INDEX_PREFIX" \
-1 "$READS" \
--qual-scale phred33 \
-p 4 \
-o "$OUTPUT_DIR"
test -s "$OUTPUT_DIR/alignments.sam"
echo "MAPSplice LSF verification successful"
EOF
Submit the job:
bsub < mapsplice_test.job
After it finishes:
cat mapsplice.*.out
cat mapsplice.*.err
ls -lh output/alignments.sam
sed -n '1,20p' output/stats.txt
Note
Set --qual-scale to the actual encoding of the FASTQ files. The verified
smoke test used phred33.
Caution
The legacy python/2.7.15 module may print hashlib warnings about
unavailable MD5 and SHA implementations on current Rocky Linux compute
nodes. During the verified MAPSplice test, these messages were nonfatal:
the workflow completed, produced alignments.sam, and generated its
statistics and log files.
Because Python 2 is obsolete, inspect the MAPSplice logs and final outputs carefully before using the results in production.
GROMACS
Pegasus includes the gromacs/2018.2 module and the gmx executable.
Inspect the installation with:
module avail gromacs
module show gromacs/2018.2
The module automatically loads openmpi-gcc/3.1.1 and cuda/9.1.85.
The installed command is gmx; a separate gmx_mpi command is not
provided.
Warning
The current GROMACS installation is not usable on the tested Pegasus compute nodes.
LSF tests through the general queue failed before GROMACS could process
an input file because libblas.so.3 and liblapack.so.3 were missing
from the compute-node environment.
The libraries were present on the login node, but computational GROMACS workloads must not be run there. Contact IDSC support before relying on this module.
SAS
Pegasus provides the sas/9.4_2024 module and the sas executable.
The module can be inspected with:
module avail sas
module show sas/9.4_2024
Warning
The current Pegasus SAS license expired on April 29, 2025. SAS batch jobs fail during kernel initialization and cannot currently be used.
Do not add SAS execution examples until the license has been renewed and a batch program has completed successfully.
SimVascular
Pegasus provides the exact module name:
simvascular/2021.6.10.lua
Inspect the module and launcher with:
module show simvascular/2021.6.10.lua
module load simvascular/2021.6.10.lua
which sv
The module provides:
/share/apps/SimVascular/SimVascularSrc/BuildWithMake/sv
Warning
The current SimVascular installation is not usable on the tested Pegasus compute nodes.
A headless Python launch through LSF failed before SimVascular initialized
because libGLU.so.1 was missing from the compute-node environment.
Therefore, neither the Python interface nor the graphical interface has
been verified as usable.
Contact IDSC support before attempting to use this installation.