Python 3, main loop optimization, configs sanification, io sanification, main db to laplacian logic, sampling and background logic
Pre-release
Pre-release
This is a squashed version bump for three major releases:
- v.0.3.0: Python 2 to Python 3 transition.
- Due to change in multiprocessing and memoization behavior, it gave rise to memory leaks
- In turn, their elimination led to a profiling pass that resulted a 20x speed-up in the main sampling loop
- v.0.4.0: Added sanity to the configurations and the IO.
- User-facing files now have a home, living in either $BIOFLOWHOME or in $HOME/bioflow
- It has the source database downloads, logs, and outputs
- As well as all the files used by docker deployments
- v.0.5.0: New parsing logic to build the Annotome and Interactome Laplacians, allowing for custom weighting functions
- A more efficient and complete entity graph traversal made possible by the database interface update
- This lead to >30x performance improvement for the Laplacian build and a much simpler logic, removing several methods with cyclomatic complexity in the 20s and removal of a bunch of unnecessary class-wide variables.
- Support for custom-build functions implementing different weighting strategies based on the node parameters, fully customizable
- Significance evaluation routines are now pluggable as well
- Background ceased being stateful and is now only used for sampling.