NAVis core functions reimplemented in Rust.
Project description
fastcore-rs
Rust re-implementation of navis
core functions. Check out the documentation for details.
TO-DOs
- geodesic distances
- connected components
- generation of linear segments
- synapse flow centrality
- flow centrality
- CI tests
- NBLAST (started prototype)
- shortest paths
- classify nodes
- cater for
i32
node IDs which are currently cast up toi64
- faster version of
navis.connected_subgraph
Additional 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)
Install
We provide precompiled binaries for all major Python versions, CPU architectures and operating systems.
From PyPI:
pip install navis-fastcore
If that fails, try building from source (see below).
Usage
navis
will automatically use fastcore
if it is available.
The integration is still work in progress, so for now you
should install navis
from Github to make sure you have the
latest version.
Build
- Install rust
- Clone this repository
cd
intofastcore-rs
directory- Create a virtual environment:
python3 -m venv .venv
- Activate virtual environment:
source .venv/bin/activate
- Compile via either:
maturin develop --release
which will compile the extension into thefastcore/
directorymaturin build --release
to build wheel in/target/wheels
- To install the Python package either do:
pip install -e .
to install in editable modepip install targets/wheels/navis_fastcore....whl
Note that unless you compiled with the --release
flag,
timings will be much slower (up to 10x) than in a release build!
Test
First make sure pytest
is installed:
pip install pytest -U
Then run the test-suite like so:
pytest --verbose -s
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
Built Distributions
Hashes for navis_fastcore-0.0.2-cp39-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fb3a9903983c3489af0cf6614d0658ec1f65a3fe321a943c14a33d0e4aaa57f |
|
MD5 | 3e25a098a01a0ba88ee6b959dcbcd6af |
|
BLAKE2b-256 | ea51ef4cd7d3dad86c475bdd9bf8f696731626320002f5e382b9d8d2ef6b6774 |
Hashes for navis_fastcore-0.0.2-cp39-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ebd98e985c78562388f5a4362c2d1023d6695d6eb0feec7e3bebf9bac07834b |
|
MD5 | 7ec142cbf9105f43170959643ce1c226 |
|
BLAKE2b-256 | f2ee7281166316a57f7bece3bd8efce9766b07c4981f582f8402d6e42f796d8a |
Hashes for navis_fastcore-0.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20a40e83798f976416725a6d8f7c32c4cf3ed9d317ae1b9493d0a86d8f3e6a4a |
|
MD5 | 10cc7595a850ea7a23b485e7eb491b00 |
|
BLAKE2b-256 | a0c94dcd9db1707fcc556d84ad730b8f83183e1259f6e3aeec4464930092153b |
Hashes for navis_fastcore-0.0.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ae4434aa0154c4c032d2c8a5112959bcef47cbe20ff3f4737d228c5717bcf8c |
|
MD5 | a8fc4b7033717dbedd95b2ddbb9dd3ab |
|
BLAKE2b-256 | eac8a7b47cc6cea97363fe7504d15c39c84106854db9aee71a8594f8c75a6ad9 |
Hashes for navis_fastcore-0.0.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2c66b6fbe6175d802a3c1a091fc7d0694910c450e24a8a0e171e039f91fef3a |
|
MD5 | 7ddd5fcfcd770a037174374939171aec |
|
BLAKE2b-256 | ba0c737472838a492445cfda35b38f29a2df427743a6209896187448e81d58b7 |
Hashes for navis_fastcore-0.0.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d714ccd8c3357850a2acb1c05a1bf4281121d434a287f951829206c2b06f08e6 |
|
MD5 | 68e77534928a8fcefd8662551fdc6c98 |
|
BLAKE2b-256 | 94531c145ed958aa4dcc8291bbfc1c162f921087126ef9d20d7690eaed370df5 |
Hashes for navis_fastcore-0.0.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ede646f5ee945e9111711023ab1570e33c8a857ef84c12443f05b3d137a54c6b |
|
MD5 | ac40260951fb8459afbc1fd129238a77 |
|
BLAKE2b-256 | 47e710b509fb097b5df838c73257fd8b256e9414c827894d1950ce8d19f66ab5 |
Hashes for navis_fastcore-0.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a2b771dd434d8622d767ee2954c1162c289d74a664e6e2459952986746d4583 |
|
MD5 | 35cbc68048ec0e1447bba14c7fb69b31 |
|
BLAKE2b-256 | bfad8c37c263fac649bc456742c083f0853d003565fcc417b8f81d93b2568218 |
Hashes for navis_fastcore-0.0.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 282797f6898eedd086f11f2b33497ccb936321e79a316d9377492a0b985dc814 |
|
MD5 | f54eaa60f239a61811f01c514a3b9d83 |
|
BLAKE2b-256 | 564baf6e2cf01012ad7377eaab4b50aefcac2fd8c63a865075a7846f09a604d9 |
Hashes for navis_fastcore-0.0.2-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa4ddbc633bbbfc1003891c84ddc2c261b28aa4249bc686fd0e09d2c527ca4b4 |
|
MD5 | be1b1a71fc59b6afa92d93137e9cc9f5 |
|
BLAKE2b-256 | 380def252d5c822ffdf71531f3c76e2b72c88db460932aa180548012dfe9b204 |