mehta-lab / waveorder

Wave optical models and inverse algorithms for label-agnostic imaging of density & orientation.
BSD 3-Clause "New" or "Revised" License
12 stars 3 forks source link

Prepare for `waveorder==1.0.0` release #114

Closed talonchandler closed 1 year ago

talonchandler commented 1 year ago

I am grouping our remaining tasks to prepare for 1.0.0 into this PR. Please feel free to edit or suggest additional tasks.

This PR needs to merge before alg-dev merges.

mattersoflight commented 1 year ago

identify example scripts that we need to maintain - @mattersoflight can you help with this?

Here are the scripts we don't need to maintain in this repo:

Here are the scripts/docs we should maintain:

I'll generate a few PDFs, so you can see where they fit well. I suggest we update them with every release.

Transition the maintained example scripts to iohub and test

Are you thinking of running these examples via pytest? That's an interesting idea and will allow us to test refactors. We should discuss offline which of the tests should be run during CI and which should be run manually before release.

mattersoflight commented 1 year ago

@edyoshikun can you help with moving the multiProcessing scripts to recOrder?

edyoshikun commented 1 year ago

I think we should only have 1 example for the multiprocessing on the recOrder side since the codebase is the same. The current example from @talonchandler here is a great example and the slurm scripts can serve as compliment slurm scripts PR. Also from the testing and future development and refactoring perspective, we agree it is easier to mantain.

talonchandler commented 1 year ago

This PR is ready for review. After discussing with @mattersoflight and looking closely at all of the examples, I partitioned the examples into two sets:

  1. Maintained example scripts that "just work". I have updated scripts that demonstrate QLIPP, 3D phase, and PTI simulations and reconstructions, and I've added them to CI/CD so that we will know when they're failing. I am planning to maintain these scripts as we move through the refactor. All of these are .py files.
  2. experimental_reconstructions notebooks that are dependent on specific datasets, take a longer time to run, and include a lot of duplicated code. I am planning to keep these as a form of documentation, but I am not planning to add these to CI/CD or maintain them through the upcoming refactoring.

@edyoshikun I agree that the multiprocessing example in recOrder is a cleaner version of the work here, so I removed these examples.

I'm very open to suggestions. Does the folder structure makes sense (I'm hoping the new examples/README.md helps)? I haven't added any timestamped PDFs as you suggested, but I think that the notebooks in experimental_reconstructions serve the same purpose?

talonchandler commented 1 year ago

@ziw-liu would you mind taking a quick look at this as well? (Also I accidentally "dismissed" the earlier review by fixing a small problem.)

@ziw-liu when this merges it will be ready for waveorder==1.0.0 release.