Skip to main content

Produce simplified likelihoods of different formats

Project description

simplify

CI status Documentation Status codecov PyPI version python version Code style: black

A package that creates simplified likelihoods from full likelihoods. Currently, only one form of simplified likelihoods is implemented, but the idea is to implement additional versions of the simplified likelihoods, such that varying degrees of simplification can be supported.

Installation

Follow good practice and start by creating a virtual environment

python3 -m venv simplify

and then activating it

source simplify/bin/activate

Default install

Install the package with pip

python3 -m pip install simplify-hep[contrib]

Development install

If you want to contribute to simplify, install the development version of the package. Fork the repository, clone the fork, and then install

python3 -m pip install --ignore-installed -U -e .[complete]

Next, setup the git pre-commit hook for Black

pre-commit install

You can run all the tests with

python3 -m pytest

How to run

CLI

Run with e.g.

simplify convert < fullLH.json > simplifiedLH.json

or e.g.

curl http://foo/likelihood.json | simplify convert

where fullLH.json is the full likelihood you want to convert into a simplified likelihood. Simplify is able to read/write from/to stdin/stdout.

In python script

You can also use simplify in a python script, e.g. to create some validation and cross-check plots and tables.

import pyhf
import json

import simplify

pyhf.set_backend(pyhf.tensorlib, "minuit")
spec = json.load(open("likelihood.json", "r"))

ws = pyhf.Workspace(spec) # ws from full LH

# get model and data for each ws we just created
model = ws.model(modifier_settings = {"normsys": {"interpcode": "code4"},"histosys": {"interpcode": "code4p"},})
data = ws.data(model)

# run fit
fit_result = simplify.fitter.fit(ws)

plt = simplify.plot.pulls(
    fit_result,
    "plots/"
)

plt = simplify.plot.correlation_matrix(
    fit_result,
    "plots/",
    pruning_threshold=0.1
)

tables = simplify.plot.yieldsTable(
    ws,
    "plots/",
    fit_result,
)

Dependencies

Naturally relies heavily on pyhf. Part of the code for plotting and validating results is inspired by Alexander Held's cabinetry.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simplify-hep-0.1.5.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

simplify_hep-0.1.5-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file simplify-hep-0.1.5.tar.gz.

File metadata

  • Download URL: simplify-hep-0.1.5.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2

File hashes

Hashes for simplify-hep-0.1.5.tar.gz
Algorithm Hash digest
SHA256 d1c87348cd0eca31967b798f2891a19bc994c3a4dae4b9fb75d4aef25fd746bc
MD5 bea0d75d7daa0105b3f4d4df13c6dd99
BLAKE2b-256 79b4991afd20401c7702b247a498204000c67e45e88e1df1e2fec4abcce6851d

See more details on using hashes here.

File details

Details for the file simplify_hep-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: simplify_hep-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2

File hashes

Hashes for simplify_hep-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b03ff8f45bd76b70730989a192f2aeafdf9b39cff4291d1b1870457de7dbe3ec
MD5 650affd7716e1ca9ca09bb3b1bc5b911
BLAKE2b-256 f3a6444043d00fa52a57408b67ffc218f8c751f220609c2d64b159d7880fc0a8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page