Migration from AICSImageIO v4 to BioIO v1¶
How different is the API?¶
Very little about the API has changed between aicsimageio version 4.0.0+ and bioio. The API is largely the same with the biggest differences being:
You use a different Python package (
bioioinstead ofaicsimageio)Important - See the Reader Installation Instructions for which additional packages (
bioioplug-ins) you’ll need to support the files you want to interact with
Reader plugins are separate packages that are installed separately. OmeTiffReader and OmeZarrReader are preinstalled with the default distribution of bioio.
The main class exported was renamed from
AICSImagetoBioImage
Example of OLD code using aicsimageio
from aicsimageio import AICSImage
image = AICSImage("/some/path/to/my/path")
print(image.dims)
print(image.scenes)
Example of how that looks using bioio
from bioio import BioImage
image = BioImage("/some/path/to/my/path")
print(image.dims)
print(image.scenes)
Why use BioIO rather than AICSImageIO?¶
A few reasons:
Licensing is easier to understand and manage with
bioiosince each file reader is installed separately.Fewer dependencies are necessary for users that require only a subset of the total available readers.
Readers can evolve independently of each other. For example (totally hypothetical), if
bioio-czi(AKA the CZI reader) needs to start usingdaskversion4.0.0+, butbioio-tifffile(AKA the TIFF reader) needsdaskversion3.4.0-3.9.0then we can upgradebioio-cziwithout conflicting withbioio-tifffile.Community Reader development is now made easier. You can write and maintain your own custom reader without having to submit it to the core bioio package. We always encourage publicizing useful readers for the imaging community at large.
aicsimageiowill be moving into “maintenance” only mode, meaning only critical bugfixes will be made to the codebase.bioiowill be where new features / support for new version of Python are made.