pygpc
A Sensitivity and uncertainty analysis toolbox for Python based on the generalized polynomial chaos method
Science Score: 46.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: sciencedirect.com, ieee.org -
✓Committers with academic emails
5 of 13 committers (38.5%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.2%) to scientific vocabulary
Keywords
Repository
A Sensitivity and uncertainty analysis toolbox for Python based on the generalized polynomial chaos method
Basic Info
Statistics
- Stars: 81
- Watchers: 1
- Forks: 25
- Open Issues: 2
- Releases: 0
Topics
Metadata Files
README.md
pygpc
A Sensitivity and uncertainty analysis toolbox for Python based on the generalized polynomial chaos method
Basic features:
- Highly efficient uncertainty analysis of N-dimensional systems
- Sensitivity analysis using Sobol indices and Global derivative based sensitivity indices
- Easy coupling to user defined models written in Python, Matlab, etc...
- The parallelization concept allows to run model evaluations in parallel
- Highly efficient adaptive algorithms allow for analysis of complex systems
- Includes highly efficient CPU and GPU (CUDA) implementations to significantly accelerate algorithmic and post-processing routines for high-dimensional and complex problems
- Includes state-of-the-art techniques such as:
- Projection: determination of optimal reduced basis
- L1-minimization: reduction of necessary model evaluations by making use of concepts from compressed sensing
- Gradient enhanced gPC: use of gradient information of the model function to increase accuracy
- Multi-element gPC: analyzing systems with discontinuities and sharp transitions
- Optimized Latin Hypercube Sampling for fast convergence
Areas of application:
pygpc can be used to analyze a variety of different of problems. It is used for example in the frameworks of:
Nondestructive testing:
Noninvasive brain stimulation:
Transcranial magnetic stimulation:
- Weise, K., Di Rienzo, L., Brauer, H., Haueisen, J., & Toepfer, H. (2015). Uncertainty analysis in transcranial magnetic stimulation using nonintrusive polynomial chaos expansion. IEEE Transactions on Magnetics, 51(7), 1-8.
- Weise, K., Numssen, O., Thielscher, A., Hartwigsen, G., & Knsche, T. R. (2020). A novel approach to localize cortical TMS effects. NeuroImage, 209, 116486.
Transcranial direct current stimulation:
- Kalloch, B., Weise, K., Bazin, P.-L., Lampea, L., Villringera, A., Hlawitschk, M., & Sehm, B. (2019). The influence of white matter lesions on the electrical fieldduring transcranial electric stimulation - Preliminary results of a computational sensitivity analysis, SfN Annual Meeting 2019, Chicago, Illinois, USA, October 19th-23rd 2019
- Kalloch, B., Weise, K., Lampe, L., Bazin, P. L., Villringer, A., Hlawitschka, M., & Sehm, B. (2022). The influence of white matter lesions on the electric field in transcranial electric stimulation. NeuroImage: Clinical, 103071.
Cancer treatment
If you use pygpc in your studies, please contact Konstantin Weise to extend the list above.
Installation
Installation using pip:
Pygpc can be installed via the pip command with Python >= 3.6. Simply run the following command in your terminal:
pip install pygpc
If you want to use the plot functionalities of pygpc, please also install matplotlib and seaborn:
pip install matplotlib seaborn
Installation using the GitHub repository:
Alternatively, it is possible to clone this repository and run the setup manually.
This requires a compiler that supports OpenMP which is used by the C-extensions and NumPy for some headers. You can install NumPy by running the following command:
pip install numpy
Alternatively you can install the build dependencies with the following command:
pip install -r requirements.txt
Afterwards, pygpc can be installed by running the following line from the directory in which the repository was cloned:
python setup.py install
Installation of the CUDA backend:
Pygpc also provides a CUDA-backend to speed up some computations. To use the backend you need to build it manually. This requires the CUDA-toolkit and CMake.
CMake can be installd via the pip command. Simply run the following command in your terminal:
pip install cmake
For the installation of the CUDA-toolkit, please refer to this website.
If CMake and the CUDA-toolkit are installed on your machine you can build the extension with:
python build_pygpc_extensions_cuda.py
Troubleshooting for OSX:
On a Mac you need GCC to install pygpc. If you are using the brew package manager you can simply run:
brew install gcc libomp
Then install pygpc with:
CC=gcc-9 CXX=g++-9 python setup.py install
Troubleshooting for Windows:
On windows you might need a compiler to install pygpc. To install the Visual C++ Build Tools, please refer to this website.
Documentation
For a full API of pygpc, see https://pygpc.readthedocs.io/en/latest/. For examplary simulations and model configurations, please have a look at the jupyter notebooks provided in the /tutorial folder and the templates in the /example folder.
Reference
If you use this framework, please cite:
Contact
If you have questions, problems or suggestions regarding pygpc, please contact Konstantin Weise.
GitHub Events
Total
- Issues event: 1
- Watch event: 4
- Delete event: 10
- Issue comment event: 1
- Push event: 34
- Pull request event: 9
- Fork event: 3
- Create event: 5
Last Year
- Issues event: 1
- Watch event: 4
- Delete event: 10
- Issue comment event: 1
- Push event: 34
- Pull request event: 9
- Fork event: 3
- Create event: 5
Committers
Last synced: over 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Lucas | l****r@c****e | 261 |
| konstantinweise | k****g@g****m | 225 |
| kweise | k****e@c****e | 63 |
| erikjackmueller | e****r@g****m | 36 |
| lpossner | l****r | 22 |
| Benjamin Kalloch | k****h@s****e | 8 |
| numssen | n****n@c****e | 8 |
| Erik Müller | e****r@t****e | 3 |
| Lucas Possner | L****r@r****m | 3 |
| Erik | e****r@g****m | 2 |
| ch-salomon | c****n@a****e | 2 |
| Lucas Poßner | l****r@l****e | 1 |
| Nik Dierks | n****s@g****e | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 6
- Total pull requests: 7
- Average time to close issues: 2 months
- Average time to close pull requests: 6 days
- Total issue authors: 6
- Total pull request authors: 1
- Average comments per issue: 1.0
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 7
- Average time to close issues: N/A
- Average time to close pull requests: 6 days
- Issue authors: 2
- Pull request authors: 1
- Average comments per issue: 0.5
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- Fololo (1)
- MatthiVH (1)
- Sesha02 (1)
- alejandro-pd (1)
- loganirado (1)
- Prashanth-LakshmiNarasimhan (1)
Pull Request Authors
- sicheng-an (12)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 649 last-month
- Total dependent packages: 1
- Total dependent repositories: 1
- Total versions: 25
- Total maintainers: 1
pypi.org: pygpc
A sensitivity and uncertainty analysis toolbox for Python
- Documentation: https://pygpc.readthedocs.io/en/latest/
- License: GPL3
-
Latest release: 0.4.2
published 8 months ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v2 composite
- actions/setup-python v1 composite