Contributing#

Contributions are always welcome!

All development is done on Github: https://github.com/LaboratoryOpticsBiosciences/bioimageloader

Test#

Currently bioimageloader lacks of unit tests. It means you need to manually make sure that your changes do not break anything, which is not easy without unit tests… So if you love writing unit tests (does anyone…?), you are more than welcome and your efforts will be well appreciated!

Code convention#

You can install minimal dev tools with pip. The choices are opinionated. You can totally ignore them and use whatever suits you, except automatic code formatters.

git clone --recurse-submodules https://github.com/LaboratoryOpticsBiosciences/bioimageloader.git
cd bioimageloader
pip install --editable .[dev]
pre-commit install  # install pre-commit hooks

I personally do not use automatic code formatter and think that bioimageloader does not need one for the moment considering the repo is small, but I may consider one in the future. Currently, I would like to have some tools to keep codes in consistent shapes.

Adding a new collection#

Collections are the core value of bioimageloader. Thank you for considering contribution! Please be aware that every collections that bioimageloader provides should be public and reachable by all potential users.

After writing a new collection, please follow below steps,

  1. Make sure it has docstrings: description of dataset; docs for every arguments; links to project page, paper, and etc; worth noting details. Place it under the directory bioimageloader/collections.

  2. Update bioimageloader.collections.__init__ module

  3. Update configs/all_collections.yml file

  4. Run docs/_notebooks/_plots.ipynb to update histogram in Collection Catalogue.

  5. And sample 2 images (and 2 annotation images, if they exist) place them under docs/_static/sample_images. Sample images will be displayed at collection overview table, once you compile docs.

  6. Update docs/_static/table_maskdataset.md and docs/_static/table_maskdataset.html.orig, following docs/README.md

  7. Compile docs and check if everything is okay

  8. Make a pull request in both library repo and docs repo.