{"id":34054698,"url":"https://github.com/usnistgov/etspy","last_synced_at":"2026-04-08T17:31:31.712Z","repository":{"id":45966077,"uuid":"189514713","full_name":"usnistgov/etspy","owner":"usnistgov","description":"A Hyperspy extension package for processing and reconstructing electron tomography data","archived":false,"fork":false,"pushed_at":"2026-03-12T00:31:35.000Z","size":323438,"stargazers_count":16,"open_issues_count":2,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-15T05:22:18.450Z","etag":null,"topics":["electron-microscopy","tomography"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/usnistgov.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-05-31T02:35:53.000Z","updated_at":"2026-03-10T17:33:15.000Z","dependencies_parsed_at":"2024-03-22T18:52:35.031Z","dependency_job_id":"59d79742-5075-476f-ad2c-befdc516b637","html_url":"https://github.com/usnistgov/etspy","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/usnistgov/etspy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usnistgov%2Fetspy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usnistgov%2Fetspy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usnistgov%2Fetspy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usnistgov%2Fetspy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/usnistgov","download_url":"https://codeload.github.com/usnistgov/etspy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usnistgov%2Fetspy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31566730,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["electron-microscopy","tomography"],"created_at":"2025-12-14T02:24:57.943Z","updated_at":"2026-04-08T17:31:31.695Z","avatar_url":"https://github.com/usnistgov.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ETSpy\n\n[![Documentation link](https://img.shields.io/badge/Documentation-blue?logo=readthedocs\u0026logoColor=white\u0026labelColor=gray\u0026style=flat-square)](https://pages.nist.gov/etspy)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/etspy?label=pypi%2Fetspy\u0026style=flat-square)](https://pypi.org/project/etspy/)\n[![Conda versions](https://img.shields.io/conda/vn/conda-forge/etspy?style=flat-square\n)](https://anaconda.org/conda-forge/etspy)\n\nETSpy is a [HyperSpy](https://hyperspy.org) extension package package for the processing, aligment, and reconstruction\nof electron tomography data from TEM/STEM instruments. Tools are provided for basic \ntilt series data processing, stack alignment, and reconstruction using the\n[ASTRA Toolbox](https://astra-toolbox.com/).\n\n## Installation\n\nDepending on your system, there are a few ways to install ETSpy. Due to \ndependencies that require compilation of binaries and the use of GPU-accelerated\nlibraries, [conda](https://anaconda.org/anaconda/conda) is the simplest way to\nget started. It will auto-detect CUDA-capable GPUs and install the correct version\nof whatever packages are required.\n\n\u003e ⚠️ ETSpy requires a Python version `\u003e= 3.10` and `\u003c 3.13` (3.13 and above are not supported due to dependencies).\n\u003e If installing manually using `pip`, please ensure you are using a supported version.\n\n### Anaconda (Preferred)\n\n  *Works on Windows, MacOS, and Linux*\n\n  * First, ensure you have either [Anaconda](https://www.anaconda.com/download/success)\n    or [Miniconda](https://docs.anaconda.com/miniconda/) installed on your system.\n\n  * Run the following command to create a new environment then activate the newly created\n    environment:\n    \n    ```shell\n    # if you would like your environment to be stored in a specific place, use the \"-p \u003cpath\u003e\" option\n    $ conda create -n etspy\n    $ conda activate etspy\n    ```\n\n  * With the `etspy` environment activated, install the ETSpy package from the `conda-forge` repo:\n\n    ```shell\n    (etspy) $ conda install -c conda-forge etspy\n    ``` \n\n  * (Alternatively) if you have a GPU and wish to make full use of the GPU-accelerated code, install\n    the `etspy-gpu` package, which will pull in a few added dependencies to enable these features:\n\n    ```shell\n    (etspy) $ conda install -c conda-forge etspy-gpu\n    ```\n\n####  Optional Jupyter components (higly recommended)\n\n  * To use ETSpy from within a Jupyter Lab/Notebook environment, you will need to\n    \"register\" the python kernel associated with the `etspy` conda environment. Run\n    the following after ensuring that environment is activated (with `conda activate etspy`):\n\n    ```shell\n    (etspy) $ conda install -c conda-forge ipykernel\n    (etspy) $ python -m ipykernel install --user --name ETSpy\n    ```\n\n    You will then be able to select the \"ETSpy\" kernel when running Jupyter and creating new\n    notebooks\n\n###  Using pip\n\n  *Works on Linux only, with additional prerequisites*\n\n  Assuming you have the prequisite packages on your system (including\n  the [CUDA libraries](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html)),\n  ETSpy should be able to be installed with a simple `pip` command (it is recommended to install\n  ETSpy in a dedicated virtual environment). Pick one of the following options depending on your needs:\n\n  ```{tip}\n  On Ubuntu-based systems, the NVIDIA/CUDA dependencies installed via the system-provided `nvidia-cuda-toolkit` apt package may be out of date and incompatible with the ASTRA toolkit. We recommend installing the version directly from NVIDIA.\n  ```\n\n  * ```shell\n    $ pip install etspy\n    ```\n\n  * To use ETSpy in Jupyter interface from within a dedicated virtual environment, installing\n    `ipykernel` is necessary (as with Anaconda). This can be done by specifying\n    the `[jupyter]` group when installing ETSpy:\n\n    ```shell\n    $ pip install etspy[jupyter]\n    ```\n\n  * To use the `cupy` accelerated code in ETSpy, you will need to install `cupy`. \n    This can be done by specifying the `[gpu]` group when installing ETSpy:\n\n    ```shell\n    $ pip install etspy[gpu]\n    ```\n\n  * A shortcut for doing both of the above is to install the `[all]` target:\n\n    ```shell\n    $ pip install etspy[all]\n    ```  \n\n  * To register the ETSpy virtual environment as a Jupyter kernel, run the following with\n    the virtual environment enabled:\n\n    ```shell\n    (etspy) $ python -m ipykernel install --user --name ETSpy\n    ```\n\n  Some dependencies of ETSpy require compilation of C code, meaning using the Anaconda approach\n  above will simplify things greatly if you have trouble with \"pure\" `pip`.\n\n### Removal\n\nThe package can be removed with:\n\n```shell\n$ pip uninstall etspy\n```\n\n## Basic Usage\n\nThe majority of the functionality of ETSpy can be accessed by importing the `etspy.api` module.\nFor example, to load a tilt series dataset into a `TomoStack`, you could do the following:\n\n```python\nimport etspy.api as etspy\nstack = etspy.load('TiltSeries.mrc')\n```\n\nFor more details, see the dedicated [documentation](https://pages.nist.gov/etspy), including\nthe [example Jupyter notebook](https://pages.nist.gov/etspy/examples/etspy_demo.html) and the more detailed\n[API Reference](https://pages.nist.gov/etspy/api.html).\n\n## Logging\n\nTo enable logging in ETSpy, use the following code:\n\n```python\nimport logging\nlogging.basicConfig(level=\"WARNING\")\n```\n## Developer documentation\n\nSee the [developer docs](https://pages.nist.gov/etspy/development) for more information.\n\n## Related projects\n\n- [https://hyperspy.org/](https://hyperspy.org/)\n- [https://astra-toolbox.com/](https://astra-toolbox.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusnistgov%2Fetspy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusnistgov%2Fetspy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusnistgov%2Fetspy/lists"}