Macromol-voxelize

Latest version: v0.3.0

Safety actively analyzes 641220 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

0.3.0

Feature

* feat: pass atoms dataframe to C++ via numpy

The previous commit introduced code to pass atoms to C++ via Arrow
tables. This would&39;ve been a better solution, because it would never
require copying data. Unfortunately, it requires linking to the arrow
and pyarrow libraries, and this turned out to be prohibitively
difficult. I did get it to work on my laptop, but (i) it didn&39;t work on
the cluster due to CXX11 ABI mismatches and (ii) it made it impossible
to distribute binary wheels.

Passing atom data with numpy arrays does often require copying. The
reason is that the initial filtering step often causes the atoms
dataframe to be split into multiple chunks. I assume this is a
side-effect of some sort of parallel processing. Even so, the numpy
approach should still be better than having the whole loop in python,
which is what I had before. For one thing, this should cause many fewer
heap allocations. ([`6ac2f3e`](https://github.com/kalekundert/macromol_voxelize/commit/6ac2f3e32179148cca80a2f723a03138f000b8c8))

* feat: pass atoms dataframe to C++ via arrow

- This commit also replaces the regular-expression based channel
assignment algorithm with a much more efficient one. ([`3642a2a`](https://github.com/kalekundert/macromol_voxelize/commit/3642a2a2cee2e09b92032ca49b2319a42476014e))

0.2.0

Chore

* chore: remove changelog ([`6a926eb`](https://github.com/kalekundert/macromol_voxelize/commit/6a926ebce4cf5837943fa0c34e2aeaab4e4e44d1))

Feature

* feat: add option to render only outline/axes, not image ([`b0ab7c6`](https://github.com/kalekundert/macromol_voxelize/commit/b0ab7c6eb7299d03fbe8097e755628b6621ad174))

* feat: allow custom output dtypes

Other minor changes:

- Add some documentation.
- Provide a way to assign channels only to those atoms that pass the
initial filtering step. This is a slight performance optimization,
since assigning channels usually involves regular expressions, so can
be a bit slow.
- Make the occupancy column optional. ([`ea52659`](https://github.com/kalekundert/macromol_voxelize/commit/ea52659047e6a918cd567451f2ecc5525d74ae4e))

Fix

* fix: check that the atom radius parameter is a number ([`ccccbec`](https://github.com/kalekundert/macromol_voxelize/commit/ccccbecf9e9626ce073c1dbcd3fb91dce796ef40))

Test

* test: avoid testing on float128; not available on Mac ([`8984fe5`](https://github.com/kalekundert/macromol_voxelize/commit/8984fe56cfb99e33b7e736e2113af082d2741920))

0.1.1

Fix

* fix: bump version before making wheels ([`02ac3e7`](https://github.com/kalekundert/macromol_voxelize/commit/02ac3e71d87a1e1cd3c8549bb5202680a76ea1e3))

0.1.0

Chore

* chore: debug automated releases ([`0bc301a`](https://github.com/kalekundert/macromol_voxelize/commit/0bc301a4526f35672a792ade7eeff872637b64be))

* chore: configure automated releases ([`37f1d47`](https://github.com/kalekundert/macromol_voxelize/commit/37f1d47dc1c7a4a84845ea56bed423f5b343bb90))

* chore: apply cookiecutter ([`6b12ba3`](https://github.com/kalekundert/macromol_voxelize/commit/6b12ba363c8b486e9258b2c4358c046ab2ee42b8))

Documentation

* docs: write a README file ([`a04cd22`](https://github.com/kalekundert/macromol_voxelize/commit/a04cd226698728db1d7da5de10668e3e19d8ec51))

Feature

* feat: use pymol to visualize voxels ([`f81e445`](https://github.com/kalekundert/macromol_voxelize/commit/f81e44530c1aea75fc587e4c1d0a2015d78ceb03))

* feat: expect channel and radius columns

Previously, I envisioned the main input to the voxelization method being
the raw atoms dataframe; i.e. just columns that generically describe
macromolecules. Alongside this dataframe, there would also have to be
lists/dicts/functions describing how to pick radii and channels for each
atom.

I realized that this approach was inflexible. Better is to expect a
dataframe than specifies all the information I need, including the
channels and radii. This simplifies the voxelization API, and gives the
user the power to work out these parameters in whatever complicated ways
they want. The library can also provide some functions to calculate
some common radius/channel mappings. ([`66c74a5`](https://github.com/kalekundert/macromol_voxelize/commit/66c74a55a6cde1203be12df1fbe88b9f09c61820))

* feat: initial implementation

Most of the code is copied from atompaint, but I did modify it to use
polars instead of pandas. ([`30a77fd`](https://github.com/kalekundert/macromol_voxelize/commit/30a77fdc914c901064920ba2df4d706eb6abd743))

Fix

* fix: require channel patterns to match full element names ([`e7dc291`](https://github.com/kalekundert/macromol_voxelize/commit/e7dc29164729dcf4dad4d6c8fb282a0e069b47b3))

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.