Metadata-Version: 2.4
Name: picassosr
Version: 0.10.1
Summary: Collection of tools for painting super-resolution images
Author-email: Joerg Schnitzbauer <joschnitzbauer@gmail.com>, "Maximilian T. Strauss" <straussmaximilian@gmail.com>, Rafal Kowalewski <rafalkowalewski998@gmail.com>
Maintainer-email: Rafal Kowalewski <rafalkowalewski998@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/jungmannlab/picasso
Project-URL: Documentation, https://picassosr.readthedocs.io/en/latest/index.html
Project-URL: Changelog, https://github.com/jungmannlab/picasso/blob/master/changelog.md
Project-URL: Publications, https://doi.org/10.1038/nprot.2017.024
Keywords: super-resolution,DNA-PAINT,microscopy
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Requires-Python: <3.15,>=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE.txt
Requires-Dist: PyQt6<7,>=6.10.2
Requires-Dist: numpy<3,>=2.2.6
Requires-Dist: matplotlib<4,>=3.10.7
Requires-Dist: h5py<4,>=3.15.1
Requires-Dist: numba<1,>=0.62.1
Requires-Dist: scipy<2,>=1.15.3
Requires-Dist: pandas<3,>=2.3.3
Requires-Dist: tables<4,>=3.10.1
Requires-Dist: pyyaml<7,>=6.0.3
Requires-Dist: scikit-learn<1.8,>=1.5.0
Requires-Dist: tqdm<5,>=4.67.1
Requires-Dist: streamlit<2,>=1.50.0
Requires-Dist: nd2<1,>=0.10.4
Requires-Dist: sqlalchemy<3,>=2.0.44
Requires-Dist: plotly-express<1,>=0.4.1
Requires-Dist: watchdog<7,>=6.0.0
Requires-Dist: psutil<8,>=7.1.1
Requires-Dist: playsound3<4,>=3.2.8
Requires-Dist: imageio<3,>=2.37.0
Requires-Dist: imageio-ffmpeg<1,>=0.6.0
Requires-Dist: tifffile<2027,>=2024.7.24
Requires-Dist: PyImarisWriter==0.7.0; sys_platform == "win32"
Requires-Dist: hdf5plugin; sys_platform == "win32"
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: twine; extra == "dev"
Provides-Extra: installer
Requires-Dist: PyQt6==6.11.0; extra == "installer"
Requires-Dist: numpy==2.4.4; extra == "installer"
Requires-Dist: matplotlib==3.10.8; extra == "installer"
Requires-Dist: h5py==3.16.0; extra == "installer"
Requires-Dist: numba==0.65.0; extra == "installer"
Requires-Dist: scipy==1.17.1; extra == "installer"
Requires-Dist: pandas==2.3.3; extra == "installer"
Requires-Dist: tables==3.11.1; extra == "installer"
Requires-Dist: pyyaml==6.0.3; extra == "installer"
Requires-Dist: scikit-learn==1.7.2; extra == "installer"
Requires-Dist: tqdm==4.67.3; extra == "installer"
Requires-Dist: streamlit==1.56.0; extra == "installer"
Requires-Dist: nd2==0.11.3; extra == "installer"
Requires-Dist: sqlalchemy==2.0.49; extra == "installer"
Requires-Dist: plotly-express==0.4.1; extra == "installer"
Requires-Dist: watchdog==6.0.0; extra == "installer"
Requires-Dist: psutil==7.2.2; extra == "installer"
Requires-Dist: playsound3==3.3.1; extra == "installer"
Requires-Dist: imageio==2.37.3; extra == "installer"
Requires-Dist: imageio-ffmpeg==0.6.0; extra == "installer"
Requires-Dist: tifffile==2026.4.11; extra == "installer"
Requires-Dist: pyinstaller==6.19.0; extra == "installer"
Requires-Dist: PyImarisWriter==0.7.0; sys_platform == "win32" and extra == "installer"
Requires-Dist: hdf5plugin==6.0.0; sys_platform == "win32" and extra == "installer"
Dynamic: license-file

Picasso
=======
.. image:: https://readthedocs.org/projects/picassosr/badge/?version=latest
   :target: https://picassosr.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation Status

.. image:: https://github.com/jungmannlab/picasso/workflows/CI/badge.svg
   :target: https://github.com/jungmannlab/picasso/workflows/CI/badge.svg
   :alt: CI

.. image:: http://img.shields.io/badge/DOI-10.1038/nprot.2017.024-52c92e.svg
   :target: https://doi.org/10.1038/nprot.2017.024
   :alt: DOI

.. image:: https://static.pepy.tech/personalized-badge/picassosr?period=total&units=international_system&left_color=black&right_color=brightgreen&left_text=Downloads
   :target: https://pepy.tech/project/picassosr
   :alt: Downloads

.. image:: https://img.shields.io/pypi/pyversions/picassosr
   :target: https://pypi.org/project/picassosr/
   :alt: Python versions

.. image:: https://img.shields.io/pypi/v/picassosr
   :target: https://pypi.org/project/picassosr/
   :alt: PyPI version

.. image:: https://img.shields.io/badge/Changelog-View-blue
   :target: https://github.com/jungmannlab/picasso/blob/master/changelog.md
   :alt: Changelog

.. image:: https://raw.githubusercontent.com/jungmannlab/picasso/master/main_render.png
   :width: 750
   :height: 564
   :alt: UML Render view

Collection of tools for painting super-resolution images. The Picasso software is complemented by our `Nature Protocols publication <https://www.nature.com/nprot/journal/v12/n6/abs/nprot.2017.024.html>`__.

A comprehensive documentation can be found here: `Read the Docs <https://picassosr.readthedocs.io/en/latest/?badge=latest>`__.

To see all changes introduced across releases, see `the changelog <https://github.com/jungmannlab/picasso/blob/master/changelog.md>`_.

Picasso 0.10
------------
In this version, a lot of new architectural (behind the scenes) changes were introduced to make Picasso more modular, maintainable and accessible to both developers and end-users. The adaptations include flexible dependencies and Python versions, integration of GPUfit, faster SPINNA and **many** more. You can explore these improvements in the `changelog <https://github.com/jungmannlab/picasso/blob/master/changelog.md>`_.

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

Check out the `Picasso release page <https://github.com/jungmannlab/picasso/releases/>`__ to download and run the latest compiled one-click installer for Windows or MacOS (the latter is experimental and feedback is welcome). Here you will also find the Nature Protocols legacy version (v0.1.0).

Python is also distributed as a PyPI package that is platform-independent (``pip install picassosr``) which grants not only GUI but also access to Picasso’s internal routines in custom Python programs. For more details, see the `Via PyPI <https://github.com/jungmannlab/picasso#via-pypi>`__ section below. For examples of how to use Picasso in Python scripts, see the section `Example Usage <https://github.com/jungmannlab/picasso#example-usage>`__ below.

Note: Since v0.10.0 Picasso is more flexible in terms of dependencies and Python versions. Previously only Python 3.10 was supported, now newer versions are encouraged.

Via PyPI
^^^^^^^^

1. Open the console/terminal and create a new conda environment: ``conda create --name picasso python=3.14``. Note you can use other Python versions as well.
2. Activate the environment: ``conda activate picasso``.
3. Install Picasso package using: ``pip install picassosr``.
4. You can now run any Picasso function directly from the console/terminal by running: ``picasso render``, ``picasso localize``, etc, or import Picasso functions in your own Python scripts.
5. To update Picasso (you should get a notification about available updates since v0.10.0) run ``pip install --upgrade picassosr``.

For Developers (local, editable installation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If you wish to use your local version of Picasso with your own modifications:

1. Open the console/terminal and create a new conda environment: ``conda create --name picasso python=3.14``. Note you can use other Python versions as well.
2. Activate the environment: ``conda activate picasso``.
3. Change to the directory of choice using ``cd``.
4. Clone this GitHub repository by running ``git clone https://github.com/jungmannlab/picasso``. Alternatively, `download <https://github.com/jungmannlab/picasso/archive/master.zip>`__ the zip file and unzip it.
5. Open the Picasso directory: ``cd picasso``.
6. You can modify Picasso code in this directory.
7. To create a *local* Picasso package to use it in other Python scripts, run ``pip install -e ".[dev]"``. When you change the code in the ``picasso`` directory, the changes will be reflected in the package.
8. You can now run any Picasso module directly from the console/terminal by running: ``picasso render``, ``picasso localize``, etc, or import Picasso functions in your own Python scripts.

Creating shortcuts on Windows (*optional*)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Run the PowerShell script “createShortcuts.ps1” in the gui directory. This should be doable by right-clicking on the script and choosing “Run with PowerShell”. Alternatively, run the command
``powershell ./createShortcuts.ps1`` in the command line. Use the generated shortcuts in the top level directory to start GUI components. Users can drag these shortcuts to their Desktop, Start Menu or Task Bar.

Example Usage
-------------

Besides using the GUI, you can use picasso like any other Python module. Consider the following example:::

  from picasso import io, postprocess

  path = 'testdata_locs.hdf5'
  locs, info = io.load_locs(path)
  
  # Link localizations and calculate dark times
  linked_locs = postprocess.link(picked_locs, info, r_max=0.05, max_dark_time=1)
  linked_locs_dark = postprocess.compute_dark_times(linked_locs)

  print(f"Average bright time {linked_locs_dark['n'].mean():.2f} frames")
  print(f"Average dark time {linked_locs_dark['dark'].mean():.2f} frames")

For more examples, visit the `sample notebooks <https://github.com/jungmannlab/picasso/tree/master/samples>`__.

Contributing
------------

If you have a feature request or a bug report, please post it as an issue on the GitHub issue tracker. If you want to contribute, put a PR for it. You can find more guidelines for contributing `here <https://github.com/jungmannlab/picasso/blob/master/CONTRIBUTING.rst>`__. We will gladly guide you through the codebase and credit you accordingly. Additionally, you can check out the ``Projects``-page on GitHub.  You can also contact us via picasso@jungmannlab.org.

.. SYNC-START: contributions

Contributions & Copyright
-------------------------

| Contributors: Joerg Schnitzbauer, Maximilian Strauss, Rafal Kowalewski, Adrian Przybylski, Andrey Aristov, Hiroshi Sasaki, Alexander Auer, Johanna Rahm
| Copyright (c) 2015-2025 Jungmann Lab, Max Planck Institute of Biochemistry

.. SYNC-END: contributions

.. SYNC-START: citing

Citing Picasso
--------------

If you use Picasso in your research, please cite our Nature Protocols publication describing the software.

| J. Schnitzbauer*, M.T. Strauss*, T. Schlichthaerle, F. Schueder, R. Jungmann
| Super-Resolution Microscopy with DNA-PAINT
| Nature Protocols (2017). 12: 1198-1228 DOI: `10.1038/nprot.2017.024 <https://doi.org/10.1038/nprot.2017.024>`__
|
| If you use some of the functionalities provided by Picasso, please also cite the respective publications:

- NeNA. DOI: `10.1007/s00418-014-1192-3 <https://doi.org/10.1007/s00418-014-1192-3>`__
- FRC. DOI: `10.1038/nmeth.2448 <https://doi.org/10.1038/nmeth.2448>`__
- Theoretical lateral localization precision (Gauss LQ). DOI: `10.1038/nmeth.1447 <https://doi.org/10.1038/nmeth.1447>`__
- Theoretical axial localization precision (Gauss LQ and MLE). DOI: `10.1038/s41467-026-70198-5 <https://doi.org/10.1038/s41467-026-70198-5>`__
- MLE fitting. DOI: `10.1038/nmeth.1449 <https://doi.org/10.1038/nmeth.1449>`__
- GPU fitting (LQ). DOI: `10.1038/s41598-017-15313-9 <https://doi.org/10.1038/s41598-017-15313-9>`__. License can be found `here <https://github.com/jungmannlab/picasso/tree/master/picasso/ext/pygpufit>`__.
- 3D fitting via astigmatism. DOI: `10.1126/science.1153529 <https://www.science.org/doi/10.1126/science.1153529>`__.
- RCC undrifting: DOI: `10.1364/OE.22.015982 <https://doi.org/10.1364/OE.22.015982>`__
- AIM undrifting. DOI: `10.1126/sciadv.adm776 <https://www.science.org/doi/10.1126/sciadv.adm7765>`__
- SMLM clusterer. DOIs: `10.1038/s41467-021-22606-1 <https://doi.org/10.1038/s41467-021-22606-1>`__ and `10.1038/s41586-023-05925-9 <https://doi.org/10.1038/s41586-023-05925-9>`__
- DBSCAN: Ester, et al. Inkdd, 1996. (Vol. 96, No. 34, pp. 226-231).
- Anisotropic DBSCAN inspired by: `10.1021/acs.jpcb.4c02030 <https://doi.org/10.1021/acs.jpcb.4c02030>`__
- HDBSCAN. DOI: `10.1007/978-3-642-37456-2_14 <https://doi.org/10.1007/978-3-642-37456-2_14>`__
- RESI. DOI: `10.1038/s41586-023-05925-9 <https://doi.org/10.1038/s41586-023-05925-9>`__
- Nanotron. DOI: `10.1093/bioinformatics/btaa154 <https://doi.org/10.1093/bioinformatics/btaa154>`__
- Picasso: Server. DOI: `10.1038/s42003-022-03909-5 <https://doi.org/10.1038/s42003-022-03909-5>`__
- SPINNA. DOI: `10.1038/s41467-025-59500-z <https://doi.org/10.1038/s41467-025-59500-z>`__
- SPINNA for LE fitting. DOI: `10.1038/s41592-024-02242-5 <https://doi.org/10.1038/s41592-024-02242-5>`__
- G5M. DOI: `10.1038/s41467-026-70198-5 <https://doi.org/10.1038/s41467-026-70198-5>`__

.. SYNC-END: citing

.. SYNC-START: credits

Credits
-------

-  Design icon based on “Hexagon by Creative Stalls" from the Noun Project
-  Simulate icon based on “Microchip by Futishia" from the Noun Project
-  Localize icon based on “Mountains" by MONTANA RUCOBO from the Noun Project
-  Filter icon based on “Funnel" by José Campos from the Noun Project
-  Render icon based on “Paint Palette" by Vectors Market from the Noun Project
-  Average icon based on “Layers" by Creative Stall from the Noun Project
-  Server icon based on “Database" by Nimal Raj from the Noun Project
-  SPINNA icon based on "Spinner" by Viktor Ostrovsky from the Noun Project

.. SYNC-END: credits
