Software

The Purdue Analysis Facility provides two Jupyter kernels with pre-installed analysis software. Users can also create their own kernels from scratch or from the existing kernels using the following instructions: Creating Conda environments and Jupyter kernels.

_images/kernels.png

The pre-installed kernels are listed below. The versions of the packages in these kernels will be occasionally upgraded.

1. Python3 kernel (default)

This kernel is based on Python 3.10 and designed for typical pythonic HEP analysis workflows.

  • In new Jupyter notebooks, this kernel will be automatically selected as default.

  • In Terminal, it can be activated as follows:

    conda activate /depot/cms/kernels/python3
    

The environment is built from the following YAML file:

name: python3
channels:
  - conda-forge
dependencies:
  # CONDA PACKAGES
  - python=3.10.10

  # Scientific computing and data analysis
  - awkward=1.10.3
  - awkward-cpp=15
  - lmfit
  - numba
  - numpy=1.23.5
  - pandas=1.5.3
  - scipy
  - scikit-learn
  - uncertainties

  # High energy physics tools
  - coffea=0.7.21
  - hist
  # - lhapdf - installed manually (see PATHs)
  - pyhf
  - root=6.28.0
  - uproot=4.3.7
  - vector

  # Plotting
  - bokeh=2.4.2
  - matplotlib
  - mplhep
  - plotly

  # Machine learning
  - mup
  # - tensorflow & keras - see pip packages
  # - torch & torch_geometric - see pip packages
  - xgboost

  # Distributed computing
  - dask=2023.3.2
  - dask-gateway=2023.9.0
  - dask-jobqueue=0.8.1
  - distributed=2023.3.2
  - dask-kubernetes
  - dask-ml
  - dask-xgboost

  # C++ libraries
  - boost
  - eigen
  - gsl
  - pcre
  - tbb
  - vdt

  # Other tools
  - ca-certificates
  - certifi
  - click=8.1.3
  - gpustat
  - ipykernel
  - ipywidgets
  - mamba
  - openssl
  - pip
  - pyarrow
  - pytest
  - tqdm
  - xrootd
  - yaml
  - pycurl 

  # PIP PACKAGES
  - pip:
    - rucio-clients
    - scalpl
    - tensorflow[and-cuda]
    - tensorflow-probability
    - qkeras
    - torch==2.0.1
    - torch-geometric==2.3.1
    - git+https://github.com/mattbellis/particle_physics_simplified.git
    - git+https://github.com/mattbellis/h5hep.git
    - PhyPraKit
    - dbs3-client

variables:
  PATH: /depot/cms/kernels/python3/bin:/usr/sue/bin:/etc/jupyter/dask:/opt/conda/condabin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/depot/cms/purdue-af/lhapdf/bin
  LD_LIBRARY_PATH: :/depot/cms/purdue-af/lhapdf/lib
  PYTHONPATH: :/depot/cms/purdue-af/lhapdf/lib/python3.10/site-packages

prefix: /depot/cms/kernels/python3

2. ROOT C++ kernel

This kernel provides an interactive interface to the ROOT command line, allowing to execute ROOT macros and produce plots inside Jupyter notebooks.