Skip to content

Python 3, main loop optimization, configs sanification, io sanification, main db to laplacian logic, sampling and background logic

Pre-release
Pre-release

Choose a tag to compare

@chiffa chiffa released this 08 Apr 17:02

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.