diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 03:29:40 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 03:29:40 +0000 |
commit | 685b75be6667c1b87130530efa15c6f9b89f6254 (patch) | |
tree | aaa453075798b07d7c8d043b27e9e4f8bb5e3a9b | |
parent | a8ada40729aa73774a07bfc6e436076ed330f9e0 (diff) |
automatic import of python-stochastic-arrowopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-stochastic-arrow.spec | 498 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 500 insertions, 0 deletions
@@ -0,0 +1 @@ +/stochastic-arrow-0.5.2.tar.gz diff --git a/python-stochastic-arrow.spec b/python-stochastic-arrow.spec new file mode 100644 index 0000000..46a1069 --- /dev/null +++ b/python-stochastic-arrow.spec @@ -0,0 +1,498 @@ +%global _empty_manifest_terminate_build 0 +Name: python-stochastic-arrow +Version: 0.5.2 +Release: 1 +Summary: please add a summary manually as the author left a blank one +License: MIT +URL: https://github.com/CovertLab/arrow +Source0: https://mirrors.aliyun.com/pypi/web/packages/54/d1/23afc4b2349578db96085c8ed6ee94e407ebc82b39275f707120baa075ae/stochastic-arrow-0.5.2.tar.gz +BuildArch: noarch + + +%description +# Arrow + +“... even if the previous millisecond is closer to us than the birth of the universe, it is equally out of reach.” +― Jean-Christophe Valtat, Luminous Chaos + +## Concept + +This library implements a generalized version of the [Gillespie +Algorithm](https://en.wikipedia.org/wiki/Gillespie_algorithm), a stochastic +approach to numerically solving discrete systems. Each iteration, the algorithm +will calculate the propensities for each reaction given a rate and the counts +of the reactants present in the current state of the system, then selects one +reaction to occur and the interval of time between the previous reaction and +the current reaction. Iterating this produces a trajectory (or `history`) of +the state vector over the course of the simulation. + +## Installation + +Add the following to your `requirements.txt`, or run +`pip install stochastic-arrow` to install it [from PyPI](https://pypi.org/project/stochastic-arrow/): + + stochastic-arrow + +## Usage + +The `arrow` library presents a single class as an interface, +`StochasticSystem`, which operates on a set of reactions (encoded as a `numpy` +matrix of stoichiometrix coefficients) and associated reaction rates: + +```python +from arrow import StochasticSystem +import numpy as np + +# Each row is a reaction and each column is a molecular species (or other +# entity). The first reaction here means that the first and second elements +# combine to create the third, while the fourth is unaffected. +stoichiometric_matrix = np.array([ + [1, 1, -1, 0], + [-2, 0, 0, 1], + [-1, -1, 1, 0]], np.int64) + +# Once we have a matrix of reactions, we can +# construct the system. +system = StochasticSystem(stoichiometric_matrix) +``` + +Now that the system has been instantiated, we can invoke it with any initial +state vector and set of reaction rates and then run it for a given time interval: + +```python +# This gives the initial state of the system (counts of each molecular species, +# for instance). +import numpy as np +state = np.array([1000, 1000, 0, 0]) + +# We also specify how long we want the simulation to run. Here we set it to one +# second. +duration = 1 + +# Each reaction has an associated rate for how probable that reaction is. +rates = np.array([3.0, 1.0, 1.0]) +``` + +Once we have an initial state and rates, we can run the simulation for the +given duration. `evolve` returns a dictionary with five keys: + +* steps - the number of steps the simulation took +* time - at what time point each event took place +* events - the events that occurred +* occurrences - the number of times each event occurred (derived directly from `events`) +* outcome - the final state of the system + +```python +result = system.evolve(duration, state, rates) +``` + +If you are interested in the history of states for plotting or otherwise, these can be +derived from the list of events and the stoichiometric matrix, along with the inital +state. `reenact_events` will do this for you: + +```python +from arrow import reenact_events + +history = reenact_events(stoichiometry, result['events'], state) +``` + +## Testing + +`arrow` uses [pytest](https://docs.pytest.org/en/latest/). To test it: + + > make clean compile + > pytest + +**NOTE:** `make compile` without an explicit `clean` might not fully build the extension. + +There are more command line features in test_arrow: + + > python -m arrow.test.test_arrow --complexation + + > python -m arrow.test.test_arrow --plot + + > python -m arrow.test.test_arrow --obsidian + + > python -m arrow.test.test_arrow --memory + + > python -m arrow.test.test_arrow --time + +More examples: + + > python -m arrow.test.test_hang + + > pytest -m arrow/test/test_arrow.py + + > pytest -k flagella + +## Changelog + +### Version 0.5.2 + +* Update to Cython 0.29.34. (Cython 3.0.0 is now in beta.) + +### Version 0.5.1 + +* Update to Cython 3.0.0a11 for compatibility with Python 3.11. + Add `arrow.pxd` to work around a Cython 3.0.0 bug. +* Stop using deprecated `numpy.distutils` to avoid warnings and prepare for its + removal in Python 3.12. +* Make `test_arrow.py --plot` compatible with Python 3. +* Fix `PytestReturnNotNoneWarning` warnings from pytest 7.2.0. + +### Version 0.5.0 + +* Add the arrow_hang unit test which catches a nasty edge-case (Issue #48), + fix the bug, and make the code more robust to some other potential bugs. + +### Version 0.4.4 + +* Can pickle StochasticSystem instances. + +### Version 0.3.0 + +* Introduced backwards-incompatible API change for supplying rates at `evolve()` time rather than `__init__()` for `StochasticSystem`. + + +%package -n python3-stochastic-arrow +Summary: please add a summary manually as the author left a blank one +Provides: python-stochastic-arrow +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-stochastic-arrow +# Arrow + +“... even if the previous millisecond is closer to us than the birth of the universe, it is equally out of reach.” +― Jean-Christophe Valtat, Luminous Chaos + +## Concept + +This library implements a generalized version of the [Gillespie +Algorithm](https://en.wikipedia.org/wiki/Gillespie_algorithm), a stochastic +approach to numerically solving discrete systems. Each iteration, the algorithm +will calculate the propensities for each reaction given a rate and the counts +of the reactants present in the current state of the system, then selects one +reaction to occur and the interval of time between the previous reaction and +the current reaction. Iterating this produces a trajectory (or `history`) of +the state vector over the course of the simulation. + +## Installation + +Add the following to your `requirements.txt`, or run +`pip install stochastic-arrow` to install it [from PyPI](https://pypi.org/project/stochastic-arrow/): + + stochastic-arrow + +## Usage + +The `arrow` library presents a single class as an interface, +`StochasticSystem`, which operates on a set of reactions (encoded as a `numpy` +matrix of stoichiometrix coefficients) and associated reaction rates: + +```python +from arrow import StochasticSystem +import numpy as np + +# Each row is a reaction and each column is a molecular species (or other +# entity). The first reaction here means that the first and second elements +# combine to create the third, while the fourth is unaffected. +stoichiometric_matrix = np.array([ + [1, 1, -1, 0], + [-2, 0, 0, 1], + [-1, -1, 1, 0]], np.int64) + +# Once we have a matrix of reactions, we can +# construct the system. +system = StochasticSystem(stoichiometric_matrix) +``` + +Now that the system has been instantiated, we can invoke it with any initial +state vector and set of reaction rates and then run it for a given time interval: + +```python +# This gives the initial state of the system (counts of each molecular species, +# for instance). +import numpy as np +state = np.array([1000, 1000, 0, 0]) + +# We also specify how long we want the simulation to run. Here we set it to one +# second. +duration = 1 + +# Each reaction has an associated rate for how probable that reaction is. +rates = np.array([3.0, 1.0, 1.0]) +``` + +Once we have an initial state and rates, we can run the simulation for the +given duration. `evolve` returns a dictionary with five keys: + +* steps - the number of steps the simulation took +* time - at what time point each event took place +* events - the events that occurred +* occurrences - the number of times each event occurred (derived directly from `events`) +* outcome - the final state of the system + +```python +result = system.evolve(duration, state, rates) +``` + +If you are interested in the history of states for plotting or otherwise, these can be +derived from the list of events and the stoichiometric matrix, along with the inital +state. `reenact_events` will do this for you: + +```python +from arrow import reenact_events + +history = reenact_events(stoichiometry, result['events'], state) +``` + +## Testing + +`arrow` uses [pytest](https://docs.pytest.org/en/latest/). To test it: + + > make clean compile + > pytest + +**NOTE:** `make compile` without an explicit `clean` might not fully build the extension. + +There are more command line features in test_arrow: + + > python -m arrow.test.test_arrow --complexation + + > python -m arrow.test.test_arrow --plot + + > python -m arrow.test.test_arrow --obsidian + + > python -m arrow.test.test_arrow --memory + + > python -m arrow.test.test_arrow --time + +More examples: + + > python -m arrow.test.test_hang + + > pytest -m arrow/test/test_arrow.py + + > pytest -k flagella + +## Changelog + +### Version 0.5.2 + +* Update to Cython 0.29.34. (Cython 3.0.0 is now in beta.) + +### Version 0.5.1 + +* Update to Cython 3.0.0a11 for compatibility with Python 3.11. + Add `arrow.pxd` to work around a Cython 3.0.0 bug. +* Stop using deprecated `numpy.distutils` to avoid warnings and prepare for its + removal in Python 3.12. +* Make `test_arrow.py --plot` compatible with Python 3. +* Fix `PytestReturnNotNoneWarning` warnings from pytest 7.2.0. + +### Version 0.5.0 + +* Add the arrow_hang unit test which catches a nasty edge-case (Issue #48), + fix the bug, and make the code more robust to some other potential bugs. + +### Version 0.4.4 + +* Can pickle StochasticSystem instances. + +### Version 0.3.0 + +* Introduced backwards-incompatible API change for supplying rates at `evolve()` time rather than `__init__()` for `StochasticSystem`. + + +%package help +Summary: Development documents and examples for stochastic-arrow +Provides: python3-stochastic-arrow-doc +%description help +# Arrow + +“... even if the previous millisecond is closer to us than the birth of the universe, it is equally out of reach.” +― Jean-Christophe Valtat, Luminous Chaos + +## Concept + +This library implements a generalized version of the [Gillespie +Algorithm](https://en.wikipedia.org/wiki/Gillespie_algorithm), a stochastic +approach to numerically solving discrete systems. Each iteration, the algorithm +will calculate the propensities for each reaction given a rate and the counts +of the reactants present in the current state of the system, then selects one +reaction to occur and the interval of time between the previous reaction and +the current reaction. Iterating this produces a trajectory (or `history`) of +the state vector over the course of the simulation. + +## Installation + +Add the following to your `requirements.txt`, or run +`pip install stochastic-arrow` to install it [from PyPI](https://pypi.org/project/stochastic-arrow/): + + stochastic-arrow + +## Usage + +The `arrow` library presents a single class as an interface, +`StochasticSystem`, which operates on a set of reactions (encoded as a `numpy` +matrix of stoichiometrix coefficients) and associated reaction rates: + +```python +from arrow import StochasticSystem +import numpy as np + +# Each row is a reaction and each column is a molecular species (or other +# entity). The first reaction here means that the first and second elements +# combine to create the third, while the fourth is unaffected. +stoichiometric_matrix = np.array([ + [1, 1, -1, 0], + [-2, 0, 0, 1], + [-1, -1, 1, 0]], np.int64) + +# Once we have a matrix of reactions, we can +# construct the system. +system = StochasticSystem(stoichiometric_matrix) +``` + +Now that the system has been instantiated, we can invoke it with any initial +state vector and set of reaction rates and then run it for a given time interval: + +```python +# This gives the initial state of the system (counts of each molecular species, +# for instance). +import numpy as np +state = np.array([1000, 1000, 0, 0]) + +# We also specify how long we want the simulation to run. Here we set it to one +# second. +duration = 1 + +# Each reaction has an associated rate for how probable that reaction is. +rates = np.array([3.0, 1.0, 1.0]) +``` + +Once we have an initial state and rates, we can run the simulation for the +given duration. `evolve` returns a dictionary with five keys: + +* steps - the number of steps the simulation took +* time - at what time point each event took place +* events - the events that occurred +* occurrences - the number of times each event occurred (derived directly from `events`) +* outcome - the final state of the system + +```python +result = system.evolve(duration, state, rates) +``` + +If you are interested in the history of states for plotting or otherwise, these can be +derived from the list of events and the stoichiometric matrix, along with the inital +state. `reenact_events` will do this for you: + +```python +from arrow import reenact_events + +history = reenact_events(stoichiometry, result['events'], state) +``` + +## Testing + +`arrow` uses [pytest](https://docs.pytest.org/en/latest/). To test it: + + > make clean compile + > pytest + +**NOTE:** `make compile` without an explicit `clean` might not fully build the extension. + +There are more command line features in test_arrow: + + > python -m arrow.test.test_arrow --complexation + + > python -m arrow.test.test_arrow --plot + + > python -m arrow.test.test_arrow --obsidian + + > python -m arrow.test.test_arrow --memory + + > python -m arrow.test.test_arrow --time + +More examples: + + > python -m arrow.test.test_hang + + > pytest -m arrow/test/test_arrow.py + + > pytest -k flagella + +## Changelog + +### Version 0.5.2 + +* Update to Cython 0.29.34. (Cython 3.0.0 is now in beta.) + +### Version 0.5.1 + +* Update to Cython 3.0.0a11 for compatibility with Python 3.11. + Add `arrow.pxd` to work around a Cython 3.0.0 bug. +* Stop using deprecated `numpy.distutils` to avoid warnings and prepare for its + removal in Python 3.12. +* Make `test_arrow.py --plot` compatible with Python 3. +* Fix `PytestReturnNotNoneWarning` warnings from pytest 7.2.0. + +### Version 0.5.0 + +* Add the arrow_hang unit test which catches a nasty edge-case (Issue #48), + fix the bug, and make the code more robust to some other potential bugs. + +### Version 0.4.4 + +* Can pickle StochasticSystem instances. + +### Version 0.3.0 + +* Introduced backwards-incompatible API change for supplying rates at `evolve()` time rather than `__init__()` for `StochasticSystem`. + + +%prep +%autosetup -n stochastic-arrow-0.5.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-stochastic-arrow -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.2-1 +- Package Spec generated @@ -0,0 +1 @@ +a61d31d9640b76e2f68dfad824170c5e stochastic-arrow-0.5.2.tar.gz |