{"name":"cylindra","display_name":"cylindra","visibility":"public","icon":"","categories":[],"schema_version":"0.2.1","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"cylindra.main_widget","title":"Open main widget","python_name":"cylindra.core:start_as_plugin","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"cylindra.main_widget","display_name":"cylindra","autogenerate":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.4","name":"cylindra","version":"1.1.1","dynamic":null,"platform":null,"supported_platform":null,"summary":"Spectral analysis, simulation and subtomogram averaging of heterogenic cylindrical structures","description":"[![BSD-3-Clause License](https://img.shields.io/pypi/l/cylindra.svg?color=green)](https://github.com/hanjinliu/cylindra/blob/main/LICENSE)\n[![Python package index download statistics](https://img.shields.io/pypi/dm/cylindra.svg)](https://pypistats.org/packages/cylindra)\n[![PyPI version](https://badge.fury.io/py/cylindra.svg)](https://badge.fury.io/py/cylindra)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/cylindra.svg)](https://pypi.org/project/cylindra)\n[![codecov](https://codecov.io/gh/hanjinliu/cylindra/graph/badge.svg?token=X1F259JYT5)](https://codecov.io/gh/hanjinliu/cylindra)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/cylindra)](https://napari-hub.org/plugins/cylindra)\n\n![](https://github.com/hanjinliu/cylindra/blob/main/resources/fig.png)\n\n# cylindra\n\n`cylindra` is a GUI-integrated cryo-ET image analysis tool for cylindric periodic\nstructures such as microtubules.\n\n### [&rarr; Documentation](https://hanjinliu.github.io/cylindra/)\n\n## Installation\n\n- Use `pip`\n\n```shell\npip install cylindra -U\n```\n\n- From source\n\nIf you install from the source, you'll need Rust to compile a part of the code.\n\n```shell\ngit clone https://github.com/hanjinliu/cylindra.git\ncd cylindra\npip install -e .\n```\n\n## Usage\n\n#### Launch GUI\n\n- From shell\n\n  ```shell\n  cylindra\n  ```\n\n- From a Python interpreter\n\n  ```python\n  from cylindra import start\n\n  # launch a napari viewer with a cylindra dock widget.\n  ui = start()\n  ```\n\n#### Command line interface\n\n`cylindra` is implemented with some basic command line interface (CLI).\n\n```shell\ncylindra --help\n```\n\n## Implemented Functions\n\n- Automatic/manual fitting of splines to cylindrical structures in 3D.\n- Analyze lattice structures (such as lattice spacing and skew angle) using Cylindric\n  Fourier transformation.\n- Automatic determination of polarity, protofilament number etc.\n- Monomer mapping along splines for subtomogram averaging and alignment.\n- Microtubule seam search with or without binding proteins.\n- Subtomogram alignment with 2D constraint.\n- Tomogram simulation of cylindric structures.\n- Efficient manual picking along cylindrical structures.\n\n## Prerequisite and Recommendations\n\n- **Python &ge; 3.11**. This project follows [spec-0000](https://scientific-python.org/specs/spec-0000/).\n- **Sufficient memory size**. Most of the intense calculations are done out-of-core\n  using `dask`, so that you can even run on 8-GB memory PC in many cases. However,\n  larger memory size will make parallel processing more efficient. &ge;32 GB is\n  recommended.\n- **Images should be loaded from SSD**. Raw image stacks are loaded lazily in most of\n  the processes. Loading from HDD will slow down many analyses as well. In the latest version, you can use \"Cache image on SSD\" option to directly analyze tomograms stored in HDD.\n\n## Issues\n\nIf you encountered any bugs or have any requests, feel free to\n[report an issue](https://github.com/hanjinliu/cylindra/issues/new).\n(We'll appreciate if you find some methods are over-fitted to microtubules and do not\nwork well on other cylindric structures)\n\nFor better reproducibility, please copy your environments from `Others > cylindra info`\nand the recorded macro from `Others > Macro > Show macro`.\n\n## Citation\n\nIf you find `cylindra` useful in your work, please consider citing [our paper](https://www.biorxiv.org/content/10.1101/2024.04.30.591984v1).\n\n```\nHeterogeneous local structures of the microtubule lattice revealed by cryo-ET and non-averaging analysis\nHanjin Liu, Hiroshi Yamaguchi, Masahide Kikkawa, Tomohiro Shima\nbioRxiv 2024.04.30.591984; doi: https://doi.org/10.1101/2024.04.30.591984\n```\n\n","description_content_type":"text/markdown; charset=UTF-8; variant=GFM","keywords":"gui,napari,cryo-ET,tomography","home_page":null,"download_url":null,"author":"Hanjin Liu","author_email":"liuhanjin.sc@gmail.com","maintainer":null,"maintainer_email":null,"license":null,"classifier":["Programming Language :: Rust","Programming Language :: Python :: Implementation :: CPython","Programming Language :: Python :: Implementation :: PyPy","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.14","Framework :: napari"],"requires_dist":["impy-array>=2.5.1","acryo>=0.6.1","macro-kit>=0.4.6","magicgui>=0.8.1","magic-class>=0.7.20","psygnal>=0.9.1","superqt[iconify]>=0.6.1","pydantic>=2.8.2","pyqtgraph>=0.12.4","pyarrow>=11.0.0","numpy>=1.23.0","scipy>=1.14.3","pandas>=2.2.0","polars>=1.35.1","scikit-image>=0.21.0","napari>=0.7.0","qtpy>=2.3.1","qt-command-palette>=0.0.7","matplotlib>=3.8.1","rich>=13.6.0","dask","platformdirs>=4.3.6","pyqt6 ; extra == 'all'","mrcfile>=1.3.0 ; extra == 'all'","tifffile>=2023.2.28 ; extra == 'all'","starfile ; extra == 'all'","imodmodel ; extra == 'all'","cookiecutter ; extra == 'all'","pyqt6 ; extra == 'docs'","mrcfile>=1.5.4 ; extra == 'docs'","mkdocs>=1.6.1 ; extra == 'docs'","mkdocs-autorefs>=1.4.4 ; extra == 'docs'","mkdocs-gen-files>=0.5.0 ; extra == 'docs'","mkdocs-material>=9.6.15 ; extra == 'docs'","mkdocs-material-extensions>=1.3.1 ; extra == 'docs'","mkdocstrings>=1.0.4 ; extra == 'docs'","mkdocstrings-python>=2.0.3 ; extra == 'docs'","maturin>=1.12.6,<2.0.0 ; extra == 'docs'","click<8.3.0 ; extra == 'docs'","cylindra[all] ; extra == 'recommended'","dask<2025 ; extra == 'recommended'","pytest ; extra == 'testing'","pytest-qt ; extra == 'testing'","pytest-cov ; extra == 'testing'","pyqt6 ; extra == 'testing'","mrcfile>=1.3.0 ; extra == 'testing'","tifffile>=2023.2.28 ; extra == 'testing'","starfile>=0.5.11 ; extra == 'testing'","imodmodel>=0.1.0 ; extra == 'testing'","cookiecutter ; extra == 'testing'","maturin>=1.9.6,<2.0.0 ; extra == 'testing'","dask<2025 ; extra == 'testing'"],"requires_python":">=3.11","requires_external":null,"project_url":null,"provides_extra":["all","docs","recommended","testing"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}