This repository contains scripts to help migrate from the old HPC cluster to the new HIVE cluster.
- HIVE vs Cacao Comparison
- Quick Start
- Available Scripts
- Common Migration Tasks
- Important Notes
- Troubleshooting
- File Structure
- Example Scripts
| Component | Cacao (Old Cluster) | HIVE (New Cluster) |
|---|---|---|
| Storage Path | /share/siegellab/ |
/quobyte/jbsiegelgrp/ |
| Home Directory Size | 1GB limit | 20GB limit |
| Shell Config | .bash_profile |
.bashrc (with minimal .bash_profile) |
| Conda/Python | Local installations (~/miniconda3, etc.) | module load conda/latest |
| CUDA | Various local installations | module load cuda/12.6.2 |
| GPU Partition | jbsiegel-gpu |
gpu-a100 |
| GPU Account | Not required | --account=genome-center-grp required |
| CPU Partitions | production |
low (3 day max) or high (30 day max) |
| Job Requeue | Not standard | --requeue flag for low partition |
| Software | Cacao Path | HIVE Path |
|---|---|---|
| ColabFold | /toolbox/LocalColabFold/ |
/quobyte/jbsiegelgrp/software/LocalColabFold/ |
| LigandMPNN | /toolbox/ligandMPNN/ |
/quobyte/jbsiegelgrp/ligandMPNN/ |
| RFdiffusion | Various (~/RFdiffusion, /toolbox/RFdiffusion, etc.) | /quobyte/jbsiegelgrp/software/RFdiffusion/ |
| RFdiff Conda Env | Various (SE3nv, rfdiffusion, etc.) | /quobyte/jbsiegelgrp/software/envs/SE3nv |
| Rosetta | /share/siegellab/software/kschu/Rosetta/main/ |
/quobyte/jbsiegelgrp/software/Rosetta_314/rosetta/main/ |
| Rosetta Version | Older version | Rosetta 3.14 |
| Rosetta Binaries | .default.linuxgccrelease |
.static.linuxgccrelease |
| Storage Type | Cacao | HIVE |
|---|---|---|
| Conda Packages | ~/.conda/pkgs |
/quobyte/jbsiegelgrp/{user}/.conda/pkgs |
| Conda Environments | ~/.conda/envs or local |
/quobyte/jbsiegelgrp/{user}/.conda/envs |
| Pip Cache | ~/.cache/pip |
/quobyte/jbsiegelgrp/{user}/.cache/pip |
| HuggingFace Cache | ~/.cache/huggingface |
/quobyte/jbsiegelgrp/{user}/.cache/huggingface |
| PyTorch Cache | ~/.cache/torch |
/quobyte/jbsiegelgrp/{user}/.cache/torch |
| Transformers Cache | ~/.cache/transformers |
/quobyte/jbsiegelgrp/{user}/.cache/transformers |
| Parameter | Cacao | HIVE |
|---|---|---|
| GPU Jobs | #SBATCH -p jbsiegel-gpu |
#SBATCH -p gpu-a100#SBATCH --account=genome-center-grp |
| CPU Jobs | #SBATCH -p production |
#SBATCH -p low (default) or#SBATCH -p high (long jobs) |
| Low Priority | N/A | #SBATCH --requeue (auto-requeue if preempted) |
| Time Limits | 30 days max | low: 3 days maxhigh: 30 days max |
The bash_profile_migration.py script adds these convenient aliases for requesting interactive sessions:
| Command | Resources | Partition |
|---|---|---|
sandbox |
8 CPU, 16GB RAM, 1 day | high |
sandboxlow |
16 CPU, 32GB RAM, 1 day | low |
sandboxgpu |
8 CPU, 16GB RAM, 1 GPU, 1 day | high |
sandboxlowgpu |
8 CPU, 16GB RAM, 1 GPU, 1 day | low |
IMPORTANT: Run this from your old cluster (cacao/barbera), NOT from HIVE!
# SSH to cacao or barbera first
ssh username@cacao.genomecenter.ucdavis.edu
# Download just the bash profile migration script
wget https://raw.githubusercontent.com/ianandersonlol/HiveTransition/main/bash_profile_migration.py
# Run it
python bash_profile_migration.py <ssh_username> <quobyte_dir>
# Example:
python bash_profile_migration.py jdoe johnFor fixing job scripts, clone the repository where YOUR scripts are located:
git clone https://github.com/ianandersonlol/HiveTransition.git
cd HiveTransition
# Fix individual scripts
python colab_fix.py /path/to/colabfold_job.sh # For ColabFold
python ligandmpnn_fix.py /path/to/ligandmpnn_job.sh # For LigandMPNN
python rfdiffusion_fix.py /path/to/rfdiff_job.sh # For RFdiffusion
python rosetta_fix.py /path/to/rosetta_job.sh # For Rosetta
# Or update all paths at once (no SLURM changes)
python pathMigrator.py /path/to/scripts/directory # Update all software pathsUpdates ALL software paths in a directory:
- Combines path fixes from all other scripts
- Does NOT modify SLURM settings
- Can process entire directories at once
- Includes all software: ColabFold, LigandMPNN, RFdiffusion, Rosetta
Migrates your shell configuration to HIVE:
- Converts
.bash_profileto.bashrc - Sets up conda in quobyte directory
- Adds interactive session aliases
- Updates paths and modules
Updates ColabFold scripts:
- Fixes ColabFold installation path
- Updates GPU partition settings
- Migrates storage paths
Updates LigandMPNN scripts:
- Fixes LigandMPNN installation path
- Updates GPU partition settings
- Migrates storage paths
Updates RFdiffusion scripts:
- Standardizes RFdiffusion installation path
- Updates conda environment to shared SE3nv
- Updates GPU partition settings
Example script for running RFdiffusion for amino acid design:
- Demonstrates how to set up and run RFdiffusion jobs on a SLURM cluster.
- Configurable parameters for protein design tasks.
Updates Rosetta scripts:
- Migrates to Rosetta 3.14
- Changes binary names (
.default.→.static.) - Handles CPU partition selection
- Enforces time limits
Reports issues with scripts:
- Generates GitHub issue URL
- Pre-fills script content
- Auto-assigns to maintainer
-
Run the migration script from old cluster (cacao/barbera):
python bash_profile_migration.py myusername mydirectory
-
Log into HIVE:
ssh myusername@hive.hpc.ucdavis.edu
-
Source your configuration:
source ~/.bashrc
-
Identify script type (ColabFold, Rosetta, etc.)
-
Run appropriate fix script:
python <tool>_fix.py myscript.sh
-
Review changes:
diff myscript.sh myscript_fixed.sh
-
Test on HIVE:
sbatch myscript_fixed.sh
Use the aliases added by bash_profile_migration.py:
sandbox # 8 CPU, 16GB RAM, high priority
sandboxlow # 16 CPU, 32GB RAM, low priority
sandboxgpu # 8 CPU, 16GB RAM, 1 GPU, high priority
sandboxlowgpu # 8 CPU, 16GB RAM, 1 GPU, low priority- Home directory: 20GB limit
- Store everything in
/quobyte/jbsiegelgrp/{your_directory}/ - Conda environments go in
.conda/envs/ - Package caches go in
.cache/
Instead of local conda:
module load conda/latest
module load cuda/12.6.2 # For GPU jobs Good to have even when you're not using a GPU so you have the drivers up!IF YOU USED MY BASH MIGRATION TOOL IT WILL PUT IT IN YOUR BASHRC
- Use
lowfor most jobs (< 3 days) - Use
highfor long jobs (> 3 days) - GPU jobs need
--account=genome-center-grp
-
"Module not found"
- Use
module avail <name>to find the new module name - Some modules have different names on HIVE
- Use
-
"Permission denied"
- Check you're writing to your quobyte directory
- Create directories if they don't exist
-
"Command not found"
- Ensure you've sourced
~/.bashrc - Check if software is in a different location
- Ensure you've sourced
-
Time limit errors
- Use
--highflag for Rosetta jobs > 3 days - Break large jobs into smaller chunks
- Use
-
Check documentation:
- See
docs/folder for detailed guides - Each script has
--helpoption
- See
-
Report issues:
python broken.py problematic_script.sh
-
GitHub Issues:
If you find issues or have improvements:
- Use
broken.pyto report script issues - Submit pull requests for fixes
- Share working examples with the community
/Users/iananderson/Desktop/HiveTransition/
├───.gitignore
├───bash_profile_migration.py
├───broken.py
├───colab_fix.py
├───ligandmpnn_fix.py
├───pathMigrator.py
├───README.md
├───rfdiffusion_fix.py
├───rosetta_fix.py
├───.claude/
│ └───settings.local.json
├───.git/...
├───.github/
│ └───ISSUE_TEMPLATE/
│ └───script_not_working.yml
├───docs/
│ ├───bash_profile_migration.md
│ ├───broken.md
│ ├───chai_with_msa.md
│ ├───colab_fix.md
│ ├───colabfold.md
│ ├───galigand_dock.md
│ ├───ligandmpnn_fix.md
│ ├───ligandmpnn.md
│ ├───pathMigrator.md
│ ├───relax.md
│ ├───rfdiffusion_fix.py
│ ├───rosetta_fix.py
│ ├───run_chai.md
│ └───submit_chai.md
└───example_scripts/
├───design/
│ ├───Diffusion/
│ │ └───rf_diffusion_aa.sh
│ └───LigandMPNN/
│ └───submit_ligandMPNN.sh
├───docking/
│ ├───galigand_dock/
│ │ ├───4Epimv7.cst
│ │ ├───DF6.params
│ │ ├───docking.xml
│ │ ├───flags
│ │ ├───GatZ_F6P.pdb
│ │ └───submit.sh
│ └───relaxation/
│ └───relax.sh
└───folding/
├───Alphafold2/
│ └───colabfold.sh
└───Chai/
├───chai_with_msa.py
├───run_chai.py
├───submit_chai_with_msa.sh
└───submit_chai.sh
This project includes example scripts to demonstrate how to run common bioinformatics tools in a cluster environment.
- Script:
example_scripts/folding/Alphafold2/colabfold.sh - Description: A SLURM submission script for running ColabFold. It is pre-configured with resource requests and sets up the necessary environment.
- Full Documentation
- Script:
example_scripts/folding/Chai/run_chai.py - Description: A script to run protein structure prediction using the
chai_lablibrary. - Full Documentation
- Script:
example_scripts/folding/Chai/chai_with_msa.py - Description: A script to run protein structure prediction using the
chai_lablibrary with MSA support. - Full Documentation
- Scripts:
example_scripts/folding/Chai/submit_chai.sh,example_scripts/folding/Chai/submit_chai_with_msa.sh - Description: SLURM submission scripts for
run_chai.pyandchai_with_msa.py. - Full Documentation
- Script:
example_scripts/design/LigandMPNN/submit_ligandMPNN.sh - Description: A SLURM submission script for running LigandMPNN. It is pre-configured with resource requests and sets up the necessary environment.
- Full Documentation
- Script:
example_scripts/design/Diffusion/rf_diffusion_aa.sh - Description: A SLURM submission script for running RFdiffusion for de novo protein design. It is pre-configured with common parameters for protein design tasks.
- Full Documentation
- Script:
example_scripts/docking/galigand_dock/submit.sh - Description: A SLURM submission script for running the GaliGand docking protocol. It is pre-configured with resource requests and sets up the necessary environment.
- Full Documentation
- Script:
example_scripts/docking/relaxation/relax.sh - Description: A SLURM submission script for running Rosetta relaxation. It is pre-configured with resource requests and sets up the necessary environment.
- Full Documentation