cabinetry

design and steer profile likelihood fits

https://github.com/scikit-hep/cabinetry

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    4 of 11 committers (36.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (20.6%) to scientific vocabulary

Keywords from Contributors

scikit-hep jax closember asymptotic-formulas cls frequentist-statistics hep hep-ex high-energy-physics histfactory
Last synced: 6 months ago · JSON representation ·

Repository

design and steer profile likelihood fits

Basic Info
Statistics
  • Stars: 30
  • Watchers: 4
  • Forks: 23
  • Open Issues: 82
  • Releases: 21
Created almost 6 years ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License Citation

README.md

cabinetry logo

CI status Documentation Status Codecov PyPI version Conda version Python version Code style: black

DOI Scikit-HEP

cabinetry is a Python library for building and steering binned template fits. It is written with applications in High Energy Physics in mind. cabinetry interfaces many other powerful libraries to make it easy for an analyzer to run their statistical inference pipeline.

Statistical models in HistFactory format can be built by cabinetry from instructions in a declarative configuration. cabinetry makes heavy use of pyhf for statistical inference, and provides additional utilities to help study and disseminate fit results. This includes commonly used visualizations. Due to its modular approach, analyzers are free to use all of cabinetry's functionality or only some pieces. cabinetry can be used for inference and visualization with any pyhf-compatible model, whether it was built with cabinetry or not.

Installation

cabinetry can be installed with pip:

bash python -m pip install cabinetry

This will only install the minimum requirements for the core part of cabinetry. The following will install additional optional dependencies needed for ROOT file reading:

bash python -m pip install cabinetry[contrib]

Hello world

To run the following example, first generate the input files via the script utils/create_ntuples.py.

```python import cabinetry

config = cabinetry.configuration.load("config_example.yml")

create template histograms

cabinetry.templates.build(config)

perform histogram post-processing

cabinetry.templates.postprocess(config)

build a workspace

ws = cabinetry.workspace.build(config)

run a fit

model, data = cabinetry.modelutils.modelanddata(ws) fitresults = cabinetry.fit.fit(model, data)

visualize the post-fit model prediction and data

predictionpostfit = cabinetry.modelutils.prediction(model, fitresults=fitresults) cabinetry.visualize.datamc(predictionpostfit, data, config=config) ```

The above is an abbreviated version of an example included in example.py, which shows how to use cabinetry. It requires additional dependencies obtained with pip install cabinetry[contrib].

Documentation

Find more information in the documentation and tutorial material in the cabinetry-tutorials repository. cabinetry is also described in a paper submitted to vCHEP 2021: 10.1051/epjconf/202125103067.

Acknowledgements

NSF-1836650 PHY-2323298

This work was supported by the U.S. National Science Foundation (NSF) cooperative agreements OAC-1836650 and PHY-2323298 (IRIS-HEP).

Owner

  • Name: Scikit-HEP Project
  • Login: scikit-hep
  • Kind: organization
  • Email: scikit-hep-forum@googlegroups.com

A community project for High Energy Physics data analysis in Python

Citation (CITATION.cff)

cff-version: 1.2.0
message: "Please cite the following works when using this software."
type: software
authors:
- family-names: "Held"
  given-names: "Alexander"
  orcid: "https://orcid.org/0000-0002-8924-5885"
  affiliation: "University of Wisconsin-Madison"
title: "cabinetry: v0.6.0"
version: 0.6.0
doi: 10.5281/zenodo.4742752
repository-code: "https://github.com/scikit-hep/cabinetry/releases/tag/v0.6.0"
url: "https://cabinetry.readthedocs.io/"
keywords:
  - python
  - fitting
  - physics
  - profile likelihood
license: "BSD-3-Clause"
abstract: |
  Statistical models in [HistFactory](https://cds.cern.ch/record/1456844)
  format can be built by `cabinetry` from instructions in a declarative
  configuration.
  `cabinetry` makes heavy use of [`pyhf`](https://pyhf.readthedocs.io/) for
  statistical inference, and provides additional utilities to help study and
  disseminate fit results.
  This includes commonly used visualizations.
  Due to its modular approach, analyzers are free to use all of `cabinetry`'s
  functionality or only some pieces.
  `cabinetry` can be used for inference and visualization with any
  `pyhf`-compatible model, whether it was built with `cabinetry` or not.
references:
  - type: article
    authors:
    - family-names: "Held"
      given-names: "Alexander"
      orcid: "https://orcid.org/0000-0002-8924-5885"
      affiliation: "New York University"
    - family-names: "Cranmer"
      given-names: "Kyle"
      orcid: "https://orcid.org/0000-0002-5769-7094"
      affiliation: "New York University"
    title: "Building and steering binned template fits with cabinetry"
    doi: 10.1051/epjconf/202125103067
    url: "https://doi.org/10.1051/epjconf/202125103067"
    year: 2021
    publisher:
      name: "EDP Sciences"
    volume: 251
    pages: 03067
    journal: EPJ Web of Web of Conferences

GitHub Events

Total
  • Create event: 15
  • Issues event: 25
  • Watch event: 2
  • Delete event: 12
  • Member event: 1
  • Issue comment event: 71
  • Push event: 47
  • Pull request review comment event: 42
  • Pull request review event: 67
  • Pull request event: 43
  • Fork event: 2
Last Year
  • Create event: 15
  • Issues event: 25
  • Watch event: 2
  • Delete event: 12
  • Member event: 1
  • Issue comment event: 71
  • Push event: 47
  • Pull request review comment event: 42
  • Pull request review event: 67
  • Pull request event: 43
  • Fork event: 2

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 374
  • Total Committers: 11
  • Avg Commits per committer: 34.0
  • Development Distribution Score (DDS): 0.088
Past Year
  • Commits: 19
  • Committers: 4
  • Avg Commits per committer: 4.75
  • Development Distribution Score (DDS): 0.474
Top Committers
Name Email Commits
Alexander Held 4****d 341
Matthew Feickert m****t@c****h 16
Mohamed Aly 8****8 5
Henry Schreiner H****I@g****m 3
lhenkelm l****n@c****h 2
Lorenz Gaertner l****r@p****e 2
muellerr 7****r 1
Vangelis Kourlitis e****s@c****h 1
Nathan Simpson e****n@g****m 1
Elliott Kauffman 6****a 1
Angus Hollands g****5@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 82
  • Total pull requests: 153
  • Average time to close issues: 4 months
  • Average time to close pull requests: 19 days
  • Total issue authors: 16
  • Total pull request authors: 12
  • Average comments per issue: 1.95
  • Average comments per pull request: 1.46
  • Merged pull requests: 117
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 21
  • Pull requests: 52
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 24 days
  • Issue authors: 5
  • Pull request authors: 3
  • Average comments per issue: 0.38
  • Average comments per pull request: 1.5
  • Merged pull requests: 27
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • alexander-held (45)
  • MoAly98 (11)
  • rmnmllr (3)
  • lhenkelm (3)
  • lorenzennio (2)
  • Tomoya-Iizawa (2)
  • matthewfeickert (2)
  • eduardo-rodrigues (1)
  • nkang9 (1)
  • miholzbo (1)
  • ekourlit (1)
  • andrzejnovak (1)
  • kratsg (1)
  • pariRieck (1)
  • MarcelHoh (1)
Pull Request Authors
  • alexander-held (119)
  • MoAly98 (26)
  • matthewfeickert (10)
  • ekourlit (3)
  • henryiii (3)
  • lorenzennio (2)
  • lhenkelm (2)
  • agoose77 (1)
  • andrzejnovak (1)
  • ekauffma (1)
  • rmnmllr (1)
  • MarcelHoh (1)
Top Labels
Issue Labels
enhancement (34) visualization (11) bug (6) config (6) question (4) performance (4) help wanted (2) good first issue (2)
Pull Request Labels
enhancement (12) blocked (3) visualization (2) bug (2) documentation (1) performance (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 546 last-month
  • Total docker downloads: 43
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 6
    (may contain duplicates)
  • Total versions: 28
  • Total maintainers: 2
pypi.org: cabinetry

design and steer profile likelihood fits

  • Versions: 25
  • Dependent Packages: 0
  • Dependent Repositories: 5
  • Downloads: 546 Last month
  • Docker Downloads: 43
Rankings
Docker downloads count: 3.3%
Dependent repos count: 6.6%
Average: 8.6%
Forks count: 9.3%
Downloads: 9.8%
Dependent packages count: 10.0%
Stargazers count: 12.4%
Maintainers (2)
Last synced: 7 months ago
conda-forge.org: cabinetry

cabinetry is a Python library for building and steering binned template fits. It is written with applications in High Energy Physics in mind. cabinetry interfaces many other powerful libraries to make it easy for an analyzer to run their statistical inference pipeline. Statistical models in HistFactory format can be built by cabinetry from instructions in a declarative configuration. cabinetry makes heavy use of pyhf for statistical inference, and provides additional utilities to help study and disseminate fit results. This includes commonly used visualizations. Due to its modular approach, analyzers are free to use all of cabinetry's functionality or only some pieces. cabinetry can be used for inference and visualization with any pyhf-compatible model, whether it was built with cabinetry or not.

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Dependent repos count: 24.3%
Average: 41.8%
Forks count: 42.7%
Stargazers count: 48.7%
Dependent packages count: 51.6%
Last synced: 7 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • pre-commit/action v3.0.0 composite
.github/workflows/dependencies-head.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/test-package.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite