neuromorphopy
neuromorphopy is a lightweight, standalone Python CLI tool and library for efficiently searching and downloading neuron morphologies from the NeuroMorpho.org archives.
Features
- Efficient Downloads: Uses asynchronous I/O (
httpx+asyncio) for fast, concurrent downloads. - Flexible Querying: Search using simple YAML or JSON configuration files.
- Metadata Management: Automatically cleans and saves neuron metadata to CSV.
- Smart Validation: Validates search queries against the API schema before execution.
- Robust: Handles legacy SSL requirements of the NeuroMorpho API automatically.
Installation
neuromorphopy requires Python 3.11 or later.
CLI Installation (Recommended)
The best way to install the tool for command-line use is with uv:
# Install the latest release
uv tool install neuromorphopy
# Or install the latest development version from GitHub
uv tool install git+https://github.com/kpeez/neuromorphopy.git
Development Installation
To work on the codebase or run from source:
-
Clone the repository:
git clone https://github.com/kpeez/neuromorphopy.git cd neuromorphopy
-
Sync dependencies:
uv sync # OR using just just install
Usage
1. Create a Query File
Define your search criteria in a query.yaml (or .json) file:
filters:
species: ["mouse", "rat"]
brain_region: ["neocortex"]
cell_type: ["pyramidal"]
sort:
field: "brain_region"
order: "ascending"
2. Run Commands
Use the neuromorpho command to explore, preview, and download.
Explore Fields: See what fields and values are available for filtering.
# List all filterable fields
neuromorpho fields
# List valid values for a specific field
neuromorpho fields species
Preview Download: Check how many neurons match your query without downloading files.
neuromorpho preview query.yaml
Download Data: Download the SWC morphology files and metadata.
# Download to default ./neurons directory
neuromorpho download query.yaml
# Download to a specific directory with higher concurrency
neuromorpho download query.yaml --output-dir ./data --concurrent 50
# Group downloaded files by species and brain region
neuromorpho download query.yaml --group-by species,brain_region
Documentation
For more detailed usage, see our documentation.
Metadata
Release files for neuromorphopy 0.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| neuromorphopy-0.3.3.tar.gz | 766.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| neuromorphopy-0.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 783.7 kB
Release files / neuromorphopy-0.3.3.tar.gz
| Download URL | neuromorphopy-0.3.3.tar.gz |
|---|---|
| Size | 766.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc56af2e0f5d8e08586b00591cd9a7bd93fe4ec34cc6f89647b5960505b55805
|
|
BLAKE2b-256 checksum How to use checksums |
adaaf1523331c302e6811b1183bc37416847a6837270ce902d25faf01ecd04bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / neuromorphopy-0.3.3-py3-none-any.whl
| Download URL | neuromorphopy-0.3.3-py3-none-any.whl |
|---|---|
| Size | 17.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b128945eecca126ce999d584b0e540eae9fb640f804df63a2acc97ba0ffff231
|
|
BLAKE2b-256 checksum How to use checksums |
780cc706a6368b75ae2ae9d0a1711335635560ad594373c41d99872f403d668d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|