{"name":"cylindra","display_name":"cylindra","visibility":"public","icon":"","categories":[],"schema_version":"0.2.0","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.3","name":"cylindra","version":"1.0.0b1","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[![codecov](https://codecov.io/gh/hanjinliu/cylindra/graph/badge.svg?token=X1F259JYT5)](https://codecov.io/gh/hanjinliu/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### [→ 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 git+https://github.com/hanjinliu/cylindra\ncd cylindra\npip install .\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 structure.\n\n## Prerequisite and Recommendations\n\n- **Python ≥ 3.10**. 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. ≥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.\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":"liuha@med.kobe-u.ac.jp","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.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Framework :: napari"],"requires_dist":["impy-array >=2.4.1","acryo >=0.4.7","macro-kit >=0.4.6","magicgui >=0.8.1","magic-class >=0.7.10","psygnal >=0.9.1","superqt[iconify] >=0.6.1","pydantic >=1.10.0","pydantic-compat","pyqtgraph >=0.12.4","pyarrow >=11.0.0","numpy >=1.23.0","scipy >=1.11.3","pandas >=1.5.0","polars >=0.20.13","scikit-image >=0.21.0","napari >=0.4.18","qtpy >=2.3.1","qt-command-palette >=0.0.7","matplotlib >=3.8.1","rich >=13.6.0","dask <2024","pytest ; extra == 'testing'","pytest-qt ; extra == 'testing'","pytest-cov ; extra == 'testing'","pyqt5 ; extra == 'testing'","scikit-learn >=1.2.2 ; extra == 'testing'","mrcfile >=1.3.0 ; extra == 'testing'","tifffile >=2023.2.28 ; extra == 'testing'","starfile ; extra == 'testing'","imodmodel ; extra == 'testing'","maturin >=1.5.0, <2.0.0 ; extra == 'testing'","pyqt5 ; extra == 'all'","scikit-learn >=1.2.2 ; extra == 'all'","mrcfile >=1.3.0 ; extra == 'all'","tifffile >=2023.2.28 ; extra == 'all'","starfile ; extra == 'all'","imodmodel ; extra == 'all'","pyqt5 ; extra == 'docs'","mkdocs >=1.5.3 ; extra == 'docs'","mkdocs-autorefs >=0.5.0 ; extra == 'docs'","mkdocs-gen-files >=0.5.0 ; extra == 'docs'","mkdocs-material >=9.5.2 ; extra == 'docs'","mkdocs-material-extensions >=1.3.1 ; extra == 'docs'","mkdocstrings >=0.24.0 ; extra == 'docs'","mkdocstrings-python >=1.7.5 ; extra == 'docs'","maturin >=1.5.0, <2.0.0 ; extra == 'docs'"],"requires_python":">=3.10","requires_external":null,"project_url":null,"provides_extra":["testing","all","docs"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}