FlowCyPy


NameFlowCyPy JSON
Version 0.3.12 PyPI version JSON
download
home_pageNone
SummaryA package for flow-cytometry simulations.
upload_time2024-12-19 11:23:37
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License Copyright (c) 2020 Martin de Sivry Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords refracive index optics microbeads mie scattering
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            |logo|

FlowCyPy: Flow Cytometer Simulation Tool
========================================

.. list-table::
   :widths: 10 25 25 25
   :header-rows: 0

   * - Meta
     - |python|
     - |docs|
     -
   * - Testing
     - |ci/cd|
     - |coverage|
     -
   * - PyPi
     - |PyPi|
     - |PyPi_download|
     -
   * - Anaconda
     - |anaconda|
     - |anaconda_download|
     - |anaconda_date|

Overview
--------

**FlowCyPy** is a cutting-edge Python library designed to simulate flow cytometer experiments. By generating realistic Forward Scatter (FSC) and Side Scatter (SSC) signals, FlowCyPy enables detailed modeling of flow cytometry setups, making it ideal for researchers and engineers working with extracellular vesicles (EVs) or other scatterers.

Key Features
------------

- **Particle Event Simulation**: Create detailed FSC/SSC signals with customizable particle size and refractive index distributions.
- **Noise and Signal Modeling**: Incorporate realistic noise sources (thermal, shot, dark current) and baseline shifts.
- **Detector Configurations**: Simulate real-world detector behaviors, including saturation and responsivity.
- **Fluorescence Modeling**: Simulate fluorescence signals for labeled particles (e.g., EV surface markers).
- **Visualization Tools**: Generate advanced plots, including density maps and signal traces.

For full documentation and examples, visit the `FlowCyPy Documentation <https://martinpdes.github.io/FlowCyPy/>`_.

Installation
------------

Install FlowCyPy via `pip` or `conda``:

.. code-block:: bash

    pip install FlowCyPy
    conda install FlowCyPy --channels MartinPdeS

**Requirements**: Python 3.10 or higher with dependencies:
`numpy`, `scipy`, `pint`, `tabulate`, `seaborn`, `MPSPlots`, `PyMieSim`, `pydantic>=2.6.3`

Quick Start
-----------

Simulate a simple flow cytometer experiment:

.. code-block:: python

    from FlowCyPy import FlowCytometer, Scatterer, FlowCell
    from FlowCyPy.units import particle, liter, nanometer, RIU

    # Define the flow cell
    flow_cell = FlowCell(
        flow_speed=1.0, flow_area=10e-6, run_time=0.01
    )

    # Define scatterer properties
    scatterer = Scatterer(medium_refractive_index=1.33 * RIU)
    scatterer.add_population(
        name='EVs',
        concentration=1e9 * particle / liter,
        size=distribution.Normal(mean=100 * nanometer, std_dev=20 * nanometer),
        refractive_index=distribution.Normal(mean=1.45 * RIU, std_dev=0.01 * RIU)
    )
    scatterer.initialize(flow_cell=flow_cell)

    # Simulate the cytometer signals
    cytometer = FlowCytometer(
        scatterer=scatterer,
        source=source,
        detectors=[detector_fsc, detector_ssc]
    )
    cytometer.simulate_pulse()
    cytometer.plot()

Explore more examples in the `FlowCyPy Examples <https://martinpdes.github.io/FlowCyPy/gallery/index.html>`_.

Development and Contribution
-----------------------------

Clone the Repository
~~~~~~~~~~~~~~~~~~~~

.. code-block:: bash

    git clone https://github.com/MartinPdeS/FlowCyPy.git
    cd FlowCyPy

Install Locally
~~~~~~~~~~~~~~~

Install in editable mode with testing and documentation dependencies:

.. code-block:: bash

    pip install -e .[testing,documentation]

Run Tests
~~~~~~~~~

Use `pytest` to validate functionality:

.. code-block:: bash

    pytest

Build Documentation
~~~~~~~~~~~~~~~~~~~

Build the documentation locally:

.. code-block:: bash

    cd docs
    make html

Find the documentation in `docs/_build/html`.

Additional Resources
--------------------

- **Documentation**: Full guide and API reference at `FlowCyPy Documentation <https://martinpdes.github.io/FlowCyPy/>`_
- **Examples**: Explore use cases in the `Examples Section <https://martinpdes.github.io/FlowCyPy/gallery/index.html>`_

Contributions
-------------

Contributions are welcome! If you have suggestions, issues, or would like to collaborate, visit the `GitHub repository <https://github.com/MartinPdeS/FlowCyPy>`_.

Contact
-------

For inquiries or collaboration, contact `Martin Poinsinet de Sivry-Houle <mailto:martin.poinsinet.de.sivry@gmail.com>`_.

.. |logo| image:: https://github.com/MartinPdeS/FlowCyPy/raw/master/docs/images/logo.png
    :align: middle
    :alt: FlowCyPy Logo

.. |python| image:: https://img.shields.io/pypi/pyversions/flowcypy.svg
    :alt: Python
    :target: https://www.python.org/

.. |docs| image:: https://github.com/martinpdes/flowcypy/actions/workflows/deploy_documentation.yml/badge.svg
    :target: https://martinpdes.github.io/FlowCyPy/
    :alt: Documentation Status

.. |PyPi| image:: https://badge.fury.io/py/FlowCyPy.svg
    :alt: PyPi version
    :target: https://badge.fury.io/py/FlowCyPy

.. |PyPi_download| image:: https://img.shields.io/pypi/dm/FlowCyPy?style=plastic&label=PyPi%20downloads&labelColor=hex&color=hex
   :alt: PyPI - Downloads
   :target: https://pypistats.org/packages/flowcypy

.. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/FlowCyPy/python-coverage-comment-action-data/badge.svg
    :alt: Unittest coverage
    :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/FlowCyPy/blob/python-coverage-comment-action-data/htmlcov/index.html

.. |ci/cd| image:: https://github.com/martinpdes/flowcypy/actions/workflows/deploy_coverage.yml/badge.svg
    :alt: Unittest Status

.. |anaconda| image:: https://anaconda.org/martinpdes/flowcypy/badges/version.svg
   :alt: Anaconda version
   :target: https://anaconda.org/martinpdes/flowcypy

.. |anaconda_download| image:: https://anaconda.org/martinpdes/flowcypy/badges/downloads.svg
   :alt: Anaconda downloads
   :target: https://anaconda.org/martinpdes/flowcypy

.. |anaconda_date| image:: https://anaconda.org/martinpdes/flowcypy/badges/latest_release_relative_date.svg
    :alt: Latest release date
    :target: https://anaconda.org/martinpdes/flowcypy

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "FlowCyPy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "refracive index, optics, microbeads, Mie scattering",
    "author": null,
    "author_email": "Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/52/d8/e3d25af6e2ae3f01f079ef3d4623994a1dfdcd42b2f71c5d8afaeb2f51bc/flowcypy-0.3.12.tar.gz",
    "platform": null,
    "description": "|logo|\n\nFlowCyPy: Flow Cytometer Simulation Tool\n========================================\n\n.. list-table::\n   :widths: 10 25 25 25\n   :header-rows: 0\n\n   * - Meta\n     - |python|\n     - |docs|\n     -\n   * - Testing\n     - |ci/cd|\n     - |coverage|\n     -\n   * - PyPi\n     - |PyPi|\n     - |PyPi_download|\n     -\n   * - Anaconda\n     - |anaconda|\n     - |anaconda_download|\n     - |anaconda_date|\n\nOverview\n--------\n\n**FlowCyPy** is a cutting-edge Python library designed to simulate flow cytometer experiments. By generating realistic Forward Scatter (FSC) and Side Scatter (SSC) signals, FlowCyPy enables detailed modeling of flow cytometry setups, making it ideal for researchers and engineers working with extracellular vesicles (EVs) or other scatterers.\n\nKey Features\n------------\n\n- **Particle Event Simulation**: Create detailed FSC/SSC signals with customizable particle size and refractive index distributions.\n- **Noise and Signal Modeling**: Incorporate realistic noise sources (thermal, shot, dark current) and baseline shifts.\n- **Detector Configurations**: Simulate real-world detector behaviors, including saturation and responsivity.\n- **Fluorescence Modeling**: Simulate fluorescence signals for labeled particles (e.g., EV surface markers).\n- **Visualization Tools**: Generate advanced plots, including density maps and signal traces.\n\nFor full documentation and examples, visit the `FlowCyPy Documentation <https://martinpdes.github.io/FlowCyPy/>`_.\n\nInstallation\n------------\n\nInstall FlowCyPy via `pip` or `conda``:\n\n.. code-block:: bash\n\n    pip install FlowCyPy\n    conda install FlowCyPy --channels MartinPdeS\n\n**Requirements**: Python 3.10 or higher with dependencies:\n`numpy`, `scipy`, `pint`, `tabulate`, `seaborn`, `MPSPlots`, `PyMieSim`, `pydantic>=2.6.3`\n\nQuick Start\n-----------\n\nSimulate a simple flow cytometer experiment:\n\n.. code-block:: python\n\n    from FlowCyPy import FlowCytometer, Scatterer, FlowCell\n    from FlowCyPy.units import particle, liter, nanometer, RIU\n\n    # Define the flow cell\n    flow_cell = FlowCell(\n        flow_speed=1.0, flow_area=10e-6, run_time=0.01\n    )\n\n    # Define scatterer properties\n    scatterer = Scatterer(medium_refractive_index=1.33 * RIU)\n    scatterer.add_population(\n        name='EVs',\n        concentration=1e9 * particle / liter,\n        size=distribution.Normal(mean=100 * nanometer, std_dev=20 * nanometer),\n        refractive_index=distribution.Normal(mean=1.45 * RIU, std_dev=0.01 * RIU)\n    )\n    scatterer.initialize(flow_cell=flow_cell)\n\n    # Simulate the cytometer signals\n    cytometer = FlowCytometer(\n        scatterer=scatterer,\n        source=source,\n        detectors=[detector_fsc, detector_ssc]\n    )\n    cytometer.simulate_pulse()\n    cytometer.plot()\n\nExplore more examples in the `FlowCyPy Examples <https://martinpdes.github.io/FlowCyPy/gallery/index.html>`_.\n\nDevelopment and Contribution\n-----------------------------\n\nClone the Repository\n~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: bash\n\n    git clone https://github.com/MartinPdeS/FlowCyPy.git\n    cd FlowCyPy\n\nInstall Locally\n~~~~~~~~~~~~~~~\n\nInstall in editable mode with testing and documentation dependencies:\n\n.. code-block:: bash\n\n    pip install -e .[testing,documentation]\n\nRun Tests\n~~~~~~~~~\n\nUse `pytest` to validate functionality:\n\n.. code-block:: bash\n\n    pytest\n\nBuild Documentation\n~~~~~~~~~~~~~~~~~~~\n\nBuild the documentation locally:\n\n.. code-block:: bash\n\n    cd docs\n    make html\n\nFind the documentation in `docs/_build/html`.\n\nAdditional Resources\n--------------------\n\n- **Documentation**: Full guide and API reference at `FlowCyPy Documentation <https://martinpdes.github.io/FlowCyPy/>`_\n- **Examples**: Explore use cases in the `Examples Section <https://martinpdes.github.io/FlowCyPy/gallery/index.html>`_\n\nContributions\n-------------\n\nContributions are welcome! If you have suggestions, issues, or would like to collaborate, visit the `GitHub repository <https://github.com/MartinPdeS/FlowCyPy>`_.\n\nContact\n-------\n\nFor inquiries or collaboration, contact `Martin Poinsinet de Sivry-Houle <mailto:martin.poinsinet.de.sivry@gmail.com>`_.\n\n.. |logo| image:: https://github.com/MartinPdeS/FlowCyPy/raw/master/docs/images/logo.png\n    :align: middle\n    :alt: FlowCyPy Logo\n\n.. |python| image:: https://img.shields.io/pypi/pyversions/flowcypy.svg\n    :alt: Python\n    :target: https://www.python.org/\n\n.. |docs| image:: https://github.com/martinpdes/flowcypy/actions/workflows/deploy_documentation.yml/badge.svg\n    :target: https://martinpdes.github.io/FlowCyPy/\n    :alt: Documentation Status\n\n.. |PyPi| image:: https://badge.fury.io/py/FlowCyPy.svg\n    :alt: PyPi version\n    :target: https://badge.fury.io/py/FlowCyPy\n\n.. |PyPi_download| image:: https://img.shields.io/pypi/dm/FlowCyPy?style=plastic&label=PyPi%20downloads&labelColor=hex&color=hex\n   :alt: PyPI - Downloads\n   :target: https://pypistats.org/packages/flowcypy\n\n.. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/FlowCyPy/python-coverage-comment-action-data/badge.svg\n    :alt: Unittest coverage\n    :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/FlowCyPy/blob/python-coverage-comment-action-data/htmlcov/index.html\n\n.. |ci/cd| image:: https://github.com/martinpdes/flowcypy/actions/workflows/deploy_coverage.yml/badge.svg\n    :alt: Unittest Status\n\n.. |anaconda| image:: https://anaconda.org/martinpdes/flowcypy/badges/version.svg\n   :alt: Anaconda version\n   :target: https://anaconda.org/martinpdes/flowcypy\n\n.. |anaconda_download| image:: https://anaconda.org/martinpdes/flowcypy/badges/downloads.svg\n   :alt: Anaconda downloads\n   :target: https://anaconda.org/martinpdes/flowcypy\n\n.. |anaconda_date| image:: https://anaconda.org/martinpdes/flowcypy/badges/latest_release_relative_date.svg\n    :alt: Latest release date\n    :target: https://anaconda.org/martinpdes/flowcypy\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2020 Martin de Sivry  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "A package for flow-cytometry simulations.",
    "version": "0.3.12",
    "project_urls": {
        "Documentation": "https://martinpdes.github.io/FlowCyPy/",
        "Homepage": "https://github.com/MartinPdeS/FlowCyPy",
        "Repository": "https://github.com/MartinPdeS/FlowCyPy.git"
    },
    "split_keywords": [
        "refracive index",
        " optics",
        " microbeads",
        " mie scattering"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a07297946957d450d49bb920753f94977824de311cda06ba154aa79c8a2a9081",
                "md5": "a37f7e71b82654aa2756a00cf2cd920a",
                "sha256": "468921624666a1bc618916f79b54d919a493fb176e0ac81429de5629eea98010"
            },
            "downloads": -1,
            "filename": "FlowCyPy-0.3.12-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a37f7e71b82654aa2756a00cf2cd920a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 67146,
            "upload_time": "2024-12-19T11:23:34",
            "upload_time_iso_8601": "2024-12-19T11:23:34.374048Z",
            "url": "https://files.pythonhosted.org/packages/a0/72/97946957d450d49bb920753f94977824de311cda06ba154aa79c8a2a9081/FlowCyPy-0.3.12-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "52d8e3d25af6e2ae3f01f079ef3d4623994a1dfdcd42b2f71c5d8afaeb2f51bc",
                "md5": "5c851db8327897ecb75b6e5fff05ce40",
                "sha256": "8363f2080f6766c4ef718952de892061a02f3bd853b3f451a69f3ad793bff635"
            },
            "downloads": -1,
            "filename": "flowcypy-0.3.12.tar.gz",
            "has_sig": false,
            "md5_digest": "5c851db8327897ecb75b6e5fff05ce40",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 1845912,
            "upload_time": "2024-12-19T11:23:37",
            "upload_time_iso_8601": "2024-12-19T11:23:37.790559Z",
            "url": "https://files.pythonhosted.org/packages/52/d8/e3d25af6e2ae3f01f079ef3d4623994a1dfdcd42b2f71c5d8afaeb2f51bc/flowcypy-0.3.12.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-19 11:23:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MartinPdeS",
    "github_project": "FlowCyPy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "flowcypy"
}
        
Elapsed time: 0.64280s