mjo22 / cryojax

Cryo electron microscopy image simulation and analysis built on JAX.
https://mjo22.github.io/cryojax/
GNU Lesser General Public License v2.1
29 stars 9 forks source link

Create cryojax.experimental submodule #209

Closed mjo22 closed 4 months ago

mjo22 commented 5 months ago

I think we need a way of structuring cryojax so that currently untested features are part of a semi-public API. A typical JAX convention would be to create something called cryojax.experimental. Things we can add to this are AbstractDetector implementations, AbstractDQE implementations, AbstractIce, and ElectronDose. It would be good to then include usage of an AbstractDistribution to simulate a noisy image, as this this is the most stable use-case right now.

aevans1 commented 5 months ago

For reference, what are some existing jax-based libraries you are thinking of for inspiration with the .experimental to put the semi-public API?

mjo22 commented 5 months ago

JAX itself has a jax.experimental submodule! Package in the equinox ecosystem have something similar called *.internal, but I think the idea there is different—equinox.internal I don’t think necessarily has intent to become public API. Some things in there I think plan to stay semi-public and are for advanced usages of the library.

mjo22 commented 4 months ago

Closing for now without doing this, but good to keep this in mind for the future.