{"id":19671238,"url":"https://github.com/cgohlke/psf","last_synced_at":"2025-04-29T00:32:42.956Z","repository":{"id":62578211,"uuid":"242421990","full_name":"cgohlke/psf","owner":"cgohlke","description":"Point Spread Function calculations for fluorescence microscopy","archived":false,"fork":false,"pushed_at":"2024-05-25T03:26:53.000Z","size":168,"stargazers_count":30,"open_issues_count":0,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-06-11T18:33:05.568Z","etag":null,"topics":["fluorescence-microscopy-imaging","point-spread-function","python"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/psf","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cgohlke.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-22T22:41:19.000Z","updated_at":"2024-05-28T16:41:41.000Z","dependencies_parsed_at":"2022-11-03T21:00:25.073Z","dependency_job_id":null,"html_url":"https://github.com/cgohlke/psf","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgohlke%2Fpsf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgohlke%2Fpsf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgohlke%2Fpsf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgohlke%2Fpsf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cgohlke","download_url":"https://codeload.github.com/cgohlke/psf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224142765,"owners_count":17262884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fluorescence-microscopy-imaging","point-spread-function","python"],"created_at":"2024-11-11T17:08:13.881Z","updated_at":"2025-04-29T00:32:42.948Z","avatar_url":"https://github.com/cgohlke.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"..\n  This file is generated by setup.py\n\nPoint Spread Function calculations for fluorescence microscopy\n==============================================================\n\nPsf is a Python library to calculate Point Spread Functions (PSF) for\nfluorescence microscopy.\n\nThe psf library is no longer actively developed.\n\n:Author: `Christoph Gohlke \u003chttps://www.cgohlke.com\u003e`_\n:License: BSD 3-Clause\n:Version: 2025.1.1\n\nQuickstart\n----------\n\nInstall the psf package and all dependencies from the\n`Python Package Index \u003chttps://pypi.org/project/psf/\u003e`_::\n\n    python -m pip install -U \"psf[all]\"\n\nSee `Examples`_ for using the programming interface.\n\nSource code and support are available on\n`GitHub \u003chttps://github.com/cgohlke/psf\u003e`_.\n\nRequirements\n------------\n\nThis revision was tested with the following requirements and dependencies\n(other versions may work):\n\n- `CPython \u003chttps://www.python.org\u003e`_ 3.10.11, 3.11.9, 3.12.8, 3.13.1 64-bit\n- `NumPy \u003chttps://pypi.org/project/numpy/\u003e`_ 2.1.3\n- `Matplotlib \u003chttps://pypi.org/project/matplotlib/\u003e`_  3.10.0\n  (optional for plotting)\n\nRevisions\n---------\n\n2025.1.1\n\n- Improve type hints.\n- Drop support for Python 3.9, support Python 3.13.\n\n2024.5.24\n\n- Fix docstring examples not correctly rendered on GitHub.\n\n2024.4.24\n\n- Support NumPy 2.\n\n2024.1.6\n\n- Change PSF.TYPES from dict to set (breaking).\n\n2023.4.26\n\n- Use enums.\n- Derive Dimensions from UserDict.\n- Add type hints.\n- Convert to Google style docstrings.\n- Drop support for Python 3.8 and numpy \u003c 1.21 (NEP29).\n\n2022.9.26\n\n- Fix setup.py.\n\n2022.9.12\n\n- Drop support for Python 3.7 (NEP 29).\n- Update metadata.\n\n2021.6.6\n\n- Drop support for Python 3.6 (NEP 29).\n\n2020.1.1\n\n- Drop support for Python 2.7 and 3.5.\n- Update copyright.\n\n2019.10.14\n\n- Support Python 3.8.\n\n2019.4.22\n\n- Fix setup requirements.\n- Fix compiler warning.\n\nReferences\n----------\n\n1. Electromagnetic diffraction in optical systems. II. Structure of the\n   image field in an aplanatic system.\n   B Richards and E Wolf. Proc R Soc Lond A, 253 (1274), 358-379, 1959.\n2. Focal volume optics and experimental artifacts in confocal fluorescence\n   correlation spectroscopy.\n   S T Hess, W W Webb. Biophys J (83) 2300-17, 2002.\n3. Electromagnetic description of image formation in confocal fluorescence\n   microscopy.\n   T D Viser, S H Wiersma. J Opt Soc Am A (11) 599-608, 1994.\n4. Photon counting histogram: one-photon excitation.\n   B Huang, T D Perroud, R N Zare. Chem Phys Chem (5), 1523-31, 2004.\n   Supporting information: Calculation of the observation volume profile.\n5. Gaussian approximations of fluorescence microscope point-spread function\n   models.\n   B Zhang, J Zerubia, J C Olivo-Marin. Appl. Optics (46) 1819-29, 2007.\n6. The SVI-wiki on 3D microscopy, deconvolution, visualization and analysis.\n   https://svi.nl/NyquistRate\n\nExamples\n--------\n\n.. code-block:: python\n\n    \u003e\u003e\u003e import psf\n    \u003e\u003e\u003e args = dict(\n    ...     shape=(32, 32),\n    ...     dims=(4, 4),\n    ...     ex_wavelen=488,\n    ...     em_wavelen=520,\n    ...     num_aperture=1.2,\n    ...     refr_index=1.333,\n    ...     pinhole_radius=0.55,\n    ...     pinhole_shape='round',\n    ... )\n    \u003e\u003e\u003e obsvol = psf.PSF(psf.GAUSSIAN | psf.CONFOCAL, **args)\n    \u003e\u003e\u003e obsvol.sigma.ou\n    (2.588..., 1.370...)\n    \u003e\u003e\u003e obsvol = psf.PSF(psf.ISOTROPIC | psf.CONFOCAL, **args)\n    \u003e\u003e\u003e print(obsvol, end='')\n    PSF\n     ISOTROPIC|CONFOCAL\n     shape: (32, 32) pixel\n     dimensions: (4.00, 4.00) um, (55.64, 61.80) ou, (8.06, 8.06) au\n     excitation wavelength: 488.0 nm\n     emission wavelength: 520.0 nm\n     numeric aperture: 1.20\n     refractive index: 1.33\n     half cone angle: 64.19 deg\n     magnification: 1.00\n     underfilling: 1.00\n     pinhole radius: 0.550 um, 8.498 ou, 1.1086 au, 4.40 px\n     computing time: ... ms\n    \u003e\u003e\u003e obsvol[0, :3]\n    array([1.     , 0.51071, 0.04397])\n    \u003e\u003e\u003e # write the image plane to file\n    \u003e\u003e\u003e obsvol.slice(0).tofile('_test_slice.bin')\n    \u003e\u003e\u003e # write a full 3D PSF volume to file\n    \u003e\u003e\u003e obsvol.volume().tofile('_test_volume.bin')\n\nRefer to `psf_example.py` in the source distribution for more examples.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcgohlke%2Fpsf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcgohlke%2Fpsf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcgohlke%2Fpsf/lists"}