Welcome to the Lane Cluster Documentation — a guide designed to help students, researchers, and collaborators effectively use the Lane Cluster, a high-performance computing (HPC) resource maintained by the Ray and Stephanie Lane Computational Biology Department at Carnegie Mellon University.
This documentation provides practical instructions and reference material for navigating and using the Lane Cluster environment.
It is intended for both new and experienced users conducting computational biology research or data-intensive analyses.
Topics covered include:
- Connecting to the cluster via SSH or remote environments
- Submitting and monitoring computational jobs
- Managing storage and data organization
- Using software modules and HPC tools
- Best practices for collaboration and resource usage
You can view the full documentation by building it locally or accessing it online (if published).
Required for all builds.
# Clone this repository
git clone https://github.com/CBDatCMU/lanec2-docs.git
cd lanec2-docs
# Create and activate a conda environment
conda create -n lane-documentation python=3.12 -y
conda activate lane-documentation
# Install dependencies
pip install -r docs/requirements.txtPython 3.12 or newer is required.
sphinx-autodoc-typehints==3.10.2declaresRequires-Python >=3.12; on 3.11 the install fails withNo matching distribution found.
docs/requirements.txt is what builds the documentation. The root requirements.txt is a superset that also carries tooling for working on the cluster itself — install that one instead if you want the full environment.
Note that several pages under docs/source/advanced/ use {jupyter-execute} blocks, which run real code during the build. That is why dask, duckdb, numpy, pandas and polars are documentation build dependencies and not optional extras.
Required only for PDF output. Skip this if you only need HTML — use ./build.sh --html-only.
Sphinx emits LaTeX that depends on a wide set of packages (fncychap, tabulary, framed, titlesec, wrapfig, capt-of, needspace) plus the FreeFont family, because conf.py sets latex_engine = 'xelatex'. A minimal distribution such as BasicTeX or TinyTeX will not work — install a full distribution.
brew install --cask mactex-no-guiThe -no-gui cask installs the full TeX Live distribution (~6 GB) without the TeXShop, BibDesk and LaTeXiT applications. It includes latexmk. If you prefer the GUI tools, use mactex instead. Without Homebrew, download the MacTeX installer from tug.org/mactex.
After installing, open a new terminal so /Library/TeX/texbin is on your PATH.
Already have BasicTeX? Installing MacTeX over it is the simplest fix. Upgrading BasicTeX in place with
tlmgrtends to fail once your local TeX Live release is older than the remote repository, which produces aCross release updates are only supported with...error.
# MiKTeX (recommended - installs missing packages on demand)
winget install MiKTeX.MiKTeX
# or the full TeX Live distribution
winget install TeXLive.TeXLiveWith MiKTeX, also install latexmk and set the package installer to automatic:
miktex packages install latexmk
miktex packages install fncychap tabulary framed titlesec wrapfig capt-of needspaceRun the build from Git Bash or WSL, since build.sh is a Bash script.
sudo apt install texlive-full latexmk # Debian/Ubuntu
sudo dnf install texlive-scheme-full latexmk # Fedora/RHEL./build.sh # HTML and PDF
./build.sh --html-only # HTML only (no LaTeX required)
./build.sh --pdf-only # PDF only
./build.sh --clean # Remove build output and temporary filesOutput lands in docs/build/html/index.html and docs/build/pdf/. The script wipes docs/build/ before each run and sweeps up LaTeX intermediates, __pycache__/ and .DS_Store files afterwards. It checks for its dependencies up front and tells you what to install if anything is missing.
To build the HTML without the script, the original Make target still works:
make -C docs html
open docs/build/html/index.htmlsphinx-autobuild docs/source docs/build/htmlThen open the URL shown in your terminal to see live updates as you edit the documentation.
The documentation is published at lanec2.readthedocs.io.
Builds are driven by .readthedocs.yaml at the repository root. Read the Docs calls sphinx-build directly and ignores docs/Makefile, so the containers table that the html target normally generates is produced by a build.jobs.pre_build step instead.
That step runs docs/generate_containers_table.py, which queries the GitHub API for CBDatCMU/singularity-* repositories. Set GITHUB_TOKEN under Admin → Environment Variables in the Read the Docs project, otherwise the build hits the 60 requests/hour anonymous rate limit and the table is published incomplete.
To set the project up from scratch:
- Sign in to readthedocs.org with GitHub.
- Import a Project, connect the
CBDatCMUorganization, and selectlanec2-docs. An organization owner must authorize the Read the Docs GitHub App so it can install the webhook. - Set the project Name to
lanec2so the published URL islanec2.readthedocs.io. Read the Docs derives the slug from the name, so leaving it as the repository name would publish tolanec2-docs.readthedocs.io. - Add the
GITHUB_TOKENenvironment variable described above. - Push to
main. The webhook triggers a build.
Contributions and corrections are welcome!
If you find errors or want to suggest improvements, please open an issue or pull request.
© 2025 Ray and Stephanie Lane Computational Biology Department at School of Computer Science in Carnegie Mellon University.