GithubHelp home page GithubHelp logo

daknuett / bielefeld-analysistoolbox Goto Github PK

View Code? Open in Web Editor NEW

This project forked from latticeqcd/analysistoolbox

0.0 0.0 0.0 32.39 MB

A set of Python tools for statistically analyzing correlated data. This includes aspects of lattice QCD applications related to QCD phenomenology.

License: MIT License

Shell 1.42% Python 98.25% Makefile 0.15% HTML 0.01% Batchfile 0.18%

bielefeld-analysistoolbox's Introduction

AnalysisToolbox

Maintenance DOI

The AnalysisToolbox set of Python tools for statistically analyzing correlated data. This includes aspects of lattice QCD applications related to QCD phenomenology.

We advertise briefly here some features of the AnalysisToolbox:

  • General mathematics: Numerical differentiation, convenience wrappers for SciPy numerical integration and solving IVPs.
  • General statistics: Jackknife, bootstrap, Gaussian bootstrap, error propagation, estimate integrated autocorrelation time, and curve fitting with and without Bayesian priors. We stress that our math and statistics methods are generally useful, independent of physics contexts.
  • QCD physics: Hadron resonance gas model, HotQCD equation of state, QCD beta function, physical constants, unit conversions, and critical exponents for various univesality classes. These methods are useful for QCD phenomenology, independent of lattice contexts.
  • Lattice QCD: Continuum-limit extrapolation, Polyakov loop observables, SU(3) gauge fields, reading in gauge fields, and the static quark-antiquark potential. These methods rather target lattice QCD.

In any of the above cases, after installing the AnalysisToolbox, you can easily incorporate its features in your own Python scripts like any other library. Some simple examples are in the tutorial. A realistic use-case that weaves the AnalysisToolbox into a lattice QCD workflow can be found in this data publication.

Setting up the AnalysisToolbox

In order to use these scripts, please ensure that you have the following:

  1. Python 3.9+
  2. colorama
  3. cycler
  4. matplotlib
  5. numba
  6. numpy
  7. pathos
  8. pyyaml
  9. scipy
  10. sympy
  11. LaTeX (Probably best if you install TeXLive-Full)

The recommended way to proceed is to create a Python virtual environment, in which you install all the required packages. This is what the Python people seem to prefer, which you can read about in their PEP 668. If you're old fashioned like David is, you can also just directly pip3 install on your machine, potentially modifying your OS Python.

Either way, for your convenience, packages (2-10) can be installed via

pip3 install -r requirements.txt

There are some further packages required if you would like to make contributions to the AnalysisToolbox; in particular there are many packages needed to compile the documentation. If you are interested in helping develop, you should instead

pip3 install -r developerRequirements.txt

Additionally you need to make sure your PYTHONPATH environment variable points to the correct place. This can be accomplished by

python3 installToolbox.py

You then need to close your terminal and open a new one. Once this has all been settled, try running the tests. You can do this by going to the testing folder and calling

bash runTests.bash

If you would also like to use the AnalysisToolbox to make plots, also try calling

bash tryPlots.bash

Getting started and documentation

To acquaint yourself with the AnalysisToolbox, you can start by having a look at the tutorial, which walks through some scripts in the examples directory. You can also look at some of the scripts in the applications and testing directories.

To learn about the code in more detail, especially learning how to contribute, please have a look the documentation.

Getting help and bug reports

Open an issue, if...

  • you have troubles running the code.
  • you have questions on how to implement your own routine.
  • you have found a bug.
  • you have a feature request.

If none of the above cases apply, you may also send an email to clarke(dot)davida(at)gmail(dot)com.

Contributors

D. A. Clarke, L. Altenkort, J. Goswami, O. Kaczmarek, L. Mazur, H. Sandmeyer, M. Sarkar, C. Schmidt, H.-T. Shu, T. Ueding

Crediting AnalysisToolbox

If you used this code in your research, your teaching, or found it generally useful, please help us out by citing

@inproceedings{Altenkort:2023xxi,
    author = "Altenkort, Luis and Clarke, David Anthony and Goswami, Jishnu and Sandmeyer, Hauke",
    title = "{Streamlined data analysis in Python}",
    eprint = "2308.06652",
    archivePrefix = "arXiv",
    primaryClass = "hep-lat",
    month = "8",
    year = "2023"
}

Acknowledgments

  • We acknowledge support by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) through the CRC-TR 211 'Strong-interaction matter under extreme conditions'โ€“ project number 315477589 โ€“ TRR 211.
  • This work was partly performed in the framework of the PUNCH4NFDI consortium supported by DFG fund "NFDI 39/1", Proj.No. 460248186 (PUNCH4NFDI).

bielefeld-analysistoolbox's People

Contributors

clarkedavida avatar luhuhis avatar jishnuxx avatar mugdhasarkar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.