STReNGTHS, a Python package to model and simulate complex reaction-diffusion systems

STReNGTHS, a Python package to model and simulate complex reaction-diffusion systems - Published in JOSS (2024)

https://github.com/thibaultfillion/strengths

Science Score: 93.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
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Engineering Computer Science - 32% confidence
Last synced: 6 months ago · JSON representation

Repository

inhomogeneous reaction diffusion python package

Basic Info
  • Host: GitHub
  • Owner: ThibaultFillion
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 3.58 MB
Statistics
  • Stars: 6
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 5
Created over 2 years ago · Last pushed 9 months ago
Metadata Files
Readme License

README.rst

The Strengths Package
=====================

Introduction
------------

Strengths is a modeling and simulation tool for reaction diffusion systems, interfaced as a Python package.
It stands for "Simulation and modeling Tool for Reaction diffusion Networks in Graphs and Tridimensional Heterogenous Systems".
The design of reaction-diffusion systems is facilitated by the use of dictionary as a way to define most of the key objects.

Installing and using Strengths
------------------------------

For Strengths to work properly, a few dependencies have to be installed first, including `NumPy `_ (required) and
`Matplotlib `_ (optional). All dependencies can be installed at once with

.. code:: bash

  pip install -r "https://raw.githubusercontent.com/ThibaultFillion/strengths/main/requirements.txt"

The package can then be installed from the `Python Package Index `_ with

.. code:: bash

  pip install strengths

Alternatively, you can build Strengths from source. More details on how to do so are given in the documentation, in the
`"Building Strengths from source" section `_.

Once it is successfully installed, you should be able to import it in Python.
Below is a short example, featuring the simulation of the trajectory for a simple
reaction system:

.. code:: python

  # importing strengths

  import strengths as strn
  import strengths.plot as strnplt

  # defining a reaction system:
  # this one have two species, A
  # and B. One can be converted to the other,
  # through the reversible reaction A <=> B.

  system = strn.rdsystem_from_dict({
      "network" : {
          "species" : [
              {"label" : "A", "density" : 150},
              {"label" : "B", "density" : 50}
              ],
          "reactions" : [
              {"eq" : "A -> B", "k+" : 0.01, "k-" : 0.012}
              ]
          }
      })

  # running a simulation
  trajectory = strn.simulate(system, t_sample=list(range(500)))

  # plotting the trajectories of A and B
  strnplt.plot_trajectory(trajectory, ["A", "B"])

More examples, using more advanced features - especially diffusion -, are available in the documentation, in the `"Using Strengths" section `_.

Documentation
-------------

Detailed information on the package and how to use it are given in the `documentation `_.
Especially, to get started with the package, you may look at the `"Using Strengths" section `_,
which presents the key functionalities through examples.
For detailed and more exhaustive information on the accessible interface,
please refer to the `"API Reference" section `_, where all relevant functions, classes,
methods and attributes are covered in detail.

Source code and contribution
----------------------------

Strengths has a `repository `_ hosted on GitHub.

If you wish to contribute to the package,
whether by giving your feedback, reporting bugs or errors,
improving the documentation or writing code,
please refer to the project's `community and contribution guidelines `_.

Testing
-------

Tests rely on the `pytest `_ package.
To run the unit tests, run either :code:`run_all_tests.py` or :code:`pytest` in the 
`tests` directory.

License
-------

Strengths's source code and documentation are licensed under the terms of the `MIT License `_.
You'll find the license text in your strengths installation root file, or in the root file of the
project's GitHub repository.

Initial authors
---------------

* Thibault Fillion
  * University of Orléans, Avenue du Parc Floral, BP 6749, 45067 Orléans, France
  * Center for Molecular Biophysics (CBM), Rue Charles Sadron CS 80054, 45071 Orléans, France
  * University of Florence, Department of Experimental and Clinical Medicine, Viale Giovanni Batista Morgagni 50, 50314 Firenze, Italy

* Francesco Piazza,
  * University of Florence, Department of Physics & Astronomy, Via Giovanni Sansone 1, 50019 Sesto Fiorentino, Italy
  * Instituto Nazionale di Fisica Nucleare (INFN) sezione di Firenze, Via Giovanni Sansone 1, 50019 Sesto Fiorentino, Italy

All authors
-----------

See GitHub contributors for now. A dedicated Author file
could be set up in the future.

Owner

  • Login: ThibaultFillion
  • Kind: user

JOSS Publication

STReNGTHS, a Python package to model and simulate complex reaction-diffusion systems
Published
May 25, 2024
Volume 9, Issue 97, Page 6495
Authors
Thibault Fillion
Université d'Orléans, UFR Sciences Techniques, Avenue du Parc Floral, BP 6749, 45067 Orléans, France, Centre de Biophysique Moléculaire (CBM), CNRS-UPR 4301, Rue Charles Sadron, 45071 Orléans, France, Dipartimento di Medicina Sperimentale e Clinica, Università di Firenze, Viale Giovanni Batista Morgagni 50, 50314 Firenze, Italy
Francesco Piazza
Dipartimento di fisica & Astronomia, Università di Firenze, Via G. Sansone 1, 50019 Sesto Fiorentino, Italy, INFN sezione di Firenze, Via G. Sansone 1, 50019 Sesto Fiorentino, Italy
Editor
Nikoleta Glynatsi ORCID

GitHub Events

Total
  • Watch event: 3
  • Delete event: 5
  • Push event: 39
  • Pull request event: 11
  • Create event: 4
Last Year
  • Watch event: 3
  • Delete event: 5
  • Push event: 39
  • Pull request event: 11
  • Create event: 4

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 91
  • Total Committers: 2
  • Avg Commits per committer: 45.5
  • Development Distribution Score (DDS): 0.011
Past Year
  • Commits: 11
  • Committers: 1
  • Avg Commits per committer: 11.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
ThibaultFillion 1****n 90
Parikshit Bajpai 4****i 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 5
  • Total pull requests: 23
  • Average time to close issues: 19 days
  • Average time to close pull requests: about 5 hours
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.8
  • Average comments per pull request: 0.13
  • Merged pull requests: 20
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 6
  • Average time to close issues: N/A
  • Average time to close pull requests: 11 minutes
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ThibaultFillion (4)
  • parikshitbajpai (2)
Pull Request Authors
  • ThibaultFillion (38)
  • parikshitbajpai (4)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 694 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 19
  • Total maintainers: 1
pypi.org: strengths

A package for the modeling and simulation of reaction-diffusion systems.

  • Versions: 19
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 694 Last month
Rankings
Dependent packages count: 10.1%
Average: 17.7%
Downloads: 21.4%
Dependent repos count: 21.5%
Maintainers (1)
Last synced: 6 months ago

Dependencies

pyproject.toml pypi
requirements.txt pypi
  • matplotlib *
  • numpy *