Basic (✓)

  • If you have a Windows device, install WSL so you can have a bash shell.
  • Log into cluster.csb.pitt.edu and change your password (passwd).
  • Setup key-based authentication for ssh (tutorial). 
  • Install open source pymol on your personal device.
    • May be available through package manager (apt, brew, port)
    • conda install conda-forge::pymol-open-source
  • Log into the cluster
  • Create an interactive session to a cluster node to avoid running on the head node: srun --pty  -p dept_cpu    /bin/bash
  • install miniconda
  • Create an environment named struct with python version 3.12
  • Using the conda-forge channel install the packages:  openff-toolkit-examples dill mdanalysis pdbfixer  

 

Extra (✓+)

  • Install Boltz-1 into its own conda environment (named boltz) on the cluster (must clone git repository, not download).

 

Notes

Important environment variables

  • PATH - where shell looks for executables
  • LD_LIBRARY_PATH - where dynamic linker looks for libraries - overrides rpath set by conda
  • PYTHONPATH - where python looks for modules

 

Useful commands for figuring out what is what

which - show the location of an executable
ldd - show the libraries (with their location) an executable/library uses
strace - trace system calls (lots of output, but will tell you what a program is trying to access)

 

Within python

  • make sure you are using the right python executable
  • print(sys.path)
  • MODULE.__file__ (path to imported module)

 

pip

  • Installs into $HOME/.local 
  • Recently some distributions have started requiring use of virtual environments (have to pass --break-system-packages to use old behavior)
  • Less likely to refuse to install something - instead will happily break dependencies of other packages
  • Does not change your environment (e.g. have to add .local/bin to your path to access pip installed executables)
  • Takes system installed packages into account when determining dependencies

conda

  • Manipulates your environment variables (mostly PATH)
  • Need to use virtual environments
  • conda env list to see locations
  • conda activate ENV to switch to environment
  • Manages version of python (different environment can have different python executables)
  • Keep base environment minimal - always create a new environment for your project
  • Make sure you are using libmamba solver (conda info)
  • Takes system installed packages into account when determining dependencies. This includes packages in .local installed by pip unless PYTHONUSERBASE is overridden
  • Can set auto_activate_base: false in .condarc if you don't want to enter conda automatically
  • Installation
    • conda install PACKAGE
    • refuses to break dependencies (libmamba is much faster to give up trying to find a solution)
    • most packages are in the conda-forge channel, not the default
    • if you have kept your base environment minimal most issues can be fixed be creating a new environment dedicated to only the tool/module you are having issues with