Skip to main content

NAVis core functions reimplemented in Rust.

Project description

fastcore-rs [WIP]

Rust re-implementation of navis core functions. This is an experiment to test replacing Cython with Rust for navis-fastcore to enable cross-platform usage of the library.

Notes

  • internally, we use i32 to represent node indices which means we can't process neurons with more than 2,147,483,647 nodes (should be fine though)

TO-DOs

  • geodesic distances
  • generation of segments
  • nearest-neighbor lookup (via bosque)
  • synapse flow centrality
  • flow centrality
  • NBLAST
  • shortest paths
  • classify nodes
  • cater for i32 node IDs which are currently cast up to i64
  • faster version of segments_to_coords
  • faster version of connectected_subgraph

Build

  1. cd into directory
  2. Activate virtual environment: source .venv/bin/activate
  3. Run maturin develop --release (use maturin build --release to build wheel)

Test

First make sure pytest is installed:

pip install pytest -U

Then run the test-suite like so:

pytest --verbose -s

Note that unless you compiled with maturin develop --release the timings will be much slower (up to 10x) than in a release build.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

navis_fastcore-0.0.1.tar.gz (28.0 kB view hashes)

Uploaded Source

Built Distributions

navis_fastcore-0.0.1-cp39-abi3-win_amd64.whl (324.5 kB view hashes)

Uploaded CPython 3.9+ Windows x86-64

navis_fastcore-0.0.1-cp39-abi3-win32.whl (309.1 kB view hashes)

Uploaded CPython 3.9+ Windows x86

navis_fastcore-0.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (491.5 kB view hashes)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ x86-64

navis_fastcore-0.0.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (586.5 kB view hashes)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ s390x

navis_fastcore-0.0.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (550.0 kB view hashes)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ ppc64le

navis_fastcore-0.0.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (516.4 kB view hashes)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ i686

navis_fastcore-0.0.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (496.8 kB view hashes)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ ARMv7l

navis_fastcore-0.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (500.8 kB view hashes)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ ARM64

navis_fastcore-0.0.1-cp39-abi3-macosx_11_0_arm64.whl (432.3 kB view hashes)

Uploaded CPython 3.9+ macOS 11.0+ ARM64

navis_fastcore-0.0.1-cp39-abi3-macosx_10_12_x86_64.whl (444.2 kB view hashes)

Uploaded CPython 3.9+ macOS 10.12+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page