Package: colonyscanalyser
ColonyScanalyserAn image analysis tool for measuring microorganism colony growth.ColonyScanalyser will analyse and collate statistical data from agar plate images. It provides fast, high-throughput image processing.ColonyScanalyser can provide information on:Colony appearance timeGrowth parameters (lag time, rate, carrying capacity)Growth and appearance time distributionColony colour (e.g. staining or other visual indicators)ColonyScanalyser is suitable for analysing series of images from a fixed point that show the development of microorganism colonies over time.Several image plots will be output after analysis is complete to enable quick verification of the data. A complete set of data is provided in CSV format for further study.Getting StartedInstall theprerequisitesandpackageLocate your image series in a folder e.g./user/images/series1Run the analysis using ColonyScanalyserscanalyser /user/images/series1There are various command line arguments that can alter the way the package is run. To see a list of arguments and information on each, run the commandscanalyser --helpDocumentationA full set of documentation is available athttps://erik-white.github.io/ColonyScanalyser/PrerequisitesColonyScanalyser requires Python version 3.7 or greater, and the Pip package manager. Pip is included with Python version 3.4 and up.The remaining Python package dependencies are automatically handled by Pip when installing the Colonyscanalyser package.Optionally use a virtual environment, such asPipenv, or acontainerised instance of the package.For testing:PytestPytest-covInstallingUsing pippip install colonyscanalyserFrom github (requiresgitinstall)git clone https://github.com/erik-white/colonyscanalyser.git
cd colonyscanalyser
pip install -e .TestingInstall the package with the extra test packages:pip install colonyscanalyser[test]Run the tests:pytest --cov colonyscanalyserContributingPlease read thecontribution guidelinesfor details on our code of conduct, and the process for submitting pull requests to us.VersioningWe useSemVerfor versioning. For the versions available, see thereleases.LicenseThis project is licensed under the GPLv3 - see thelicencefile for detailsAcknowledgmentsLevin-Reisman et al. fortheir workdeveloping the ScanLag techniqueFabio Zaninifor his original attempts at a Python implementationChangelogAll notable changes to this project will be documented in this file.The format is based onKeep a Changelog,
and this project adheres toSemantic Versioning.[0.6.2] - 2021-01-25AddedSavitzky–Golay filtering for curve fitting and plottingFixedRemoved leftover debugging message[0.6.0] - 2021-01-24AddedAnalignsubpackage containing image alignment functionalityImage alignment verification and correction before processing imagesCommand line arguments to adjust image alignment strategy and toleranceChangedGrowth curves now use a windowed median which should help to smooth the curveFixedVarious warnings emitted when running the tests[0.5.3] - 2020-09-07ChangedUpdated and improved IdentifiedCollection, now backed by a Dictionary for easier lookupFixedImages are now correctly converted when creating image animations, fixing buffer errors[0.5.2] - 2020-07-05ChangedRemoves the temporary fix used when identifying plate centres[0.5.1] - 2020-06-07FixedRGB images are correctly handled during colour mode conversion[0.5.0] - 2020-06-05AddedUtilize multiprocessing for grouping and filteringTimepoints to Coloniessilentcommand line argument to prevent output to consoleanimationcommand line argument to outputNew class function, from_path, for building an ImageFileCollectionChangedImproved plot labels/legendsplotscommand line argument replaced withno-plotsswitchmultiprocessingcommand line argument replaced withsingle-processswitchReworked command line arguments, using simplified switches for boolean argumentsReworked command line arguments to follow GNU conventionsRefactoredmainmoduleImprove access model and remove forward typingFixedEnsure image files are converted to RGB[0.4.4] - 2020-06-03FixedPlots are now saved to the correct directory again[0.4.3] - 2020-06-02Added--versioncommand line argument to display installed package version number--image_formatscommand line argument to display supported image formatsPackage configuration and now consolidated and loaded from a settings moduleChangedImproved the output from the--helpcommand line argument to make it a little clearer[0.4.2] - 2020-05-18AddedSupport forbmpimage filesFixedWrong type reference in colony.colonies_from_timepointsChangedimage_file._load_imagewill now retry once if it fails[0.4.1] - 2020-05-11AddedDockerfile and utility scriptsDocker image is now available:https://hub.docker.com/r/erikwhite/colonyscanalyser[0.4.0] - 2020-03-26Addedplate_labelscommand line argumentbasemodule with base classes to provide core functionality throughout the packagegeometrymodule with base shape classesplatemodule withPlateandPlateCollectionclassesimage_filemodule withImageFileandImageFileCollectionclassesgrowth_curvemodule to provide curve fitting and parametersplot_plate_images_animationoutputs animated gifs for each plate in two sizesOutput a summary of plate properties toplates_summary.csvFull type hinting for all modulesChangedExtended compatibility to Python 3.8Cached data is now not used by defaultIndividual plots for each plate are now output by defaultuse_savedcommand line argument renamed touse_cached_dataCompressed serialised data filename changed tocached_datasave_plotscommand line argument renamed toplotsplate_sizenow defaults to 90 mm, the visible size of a 100 mm plate in a plate holderplate_edge_cutis now a percentage of the plate diameter, instead of a fixed pixel valueRefactored most of the functions frommainas static methods in theplateorimage_filemodulesImproved flexibility when detecting date and time stamp information in file namesReplaced growth properties inColony, now implemented asgrowth_curve.GrowthCurveModelModified plots to use newGrowthCurveModelpropertiesImproved colony segmentation in low contrast images and under poor growth conditionsGrouping of colony Timepoints is now faster and more accurateColonies are no longer identified based on circularityFixedA rare error when opening images using skimage.io.imreadCorrected default DPI settings and conversion factorRemovedA number of Colony properties - now implemented bygrowth_curve.GrowthCurveModel[0.3.4] - 2020-01-18Addedplate_edge_cut command line argumentPlate and colony ID map to show how they have been identifiedChangedAdd border exclusion and slightly relax colony circularity filtering in segment_image[0.3.3] - 2019-12-19AddedColony colour identification and groupingWebcolors package and rgb_to_name function to provide CSS colour groupingsFixedcrop_image will now correctly handle images without an alpha channel[0.3.2] - 2019-11-11AddedDocumentationPublished documentation to GitHub pages (https://erik-white.github.io/ColonyScanalyser/)Unit tests for the colony module[0.3.1] - 2019-11-04FixedAdjust setup to correctly find packages in implicit namespaces[0.3.0] - 2019-11-04AddedAdded changelogChangedUpdate package to use src structureUpdate setup for readme compatability with PyPi[0.2.2] - 2019-11-02AddedGitHub action for automatically linting and testing pushesGitHub action for building and releasing package to PyPiFixedLinting errors highlighted by flake8[0.2.1] - 2019-10-31AddedGraceful exit if no colonies are foundWorkaround function to ensure correct plates are found in imagesChangedImprove Timepoint grouping by using distance comparison instead of roundingUpdated Scikit-image to v0.16RemovedDepreciated Tk importRemoved depreciated regionprop coordinates[0.2.0] - 2019-10-28AddedMultiprocessing: greatly improves image processing speedNow shows a progress bar when processing imagesSnyk security checks for dependenciesChangedPer image processing: now processes a single image at a timeImprove colony filtering, removes virtually all merged coloniesUpdated readme with images and code examplesFixedGreatly reduced memory usage by using per-image processingFilter out system files when locating images to processRare divide by zero error when processing colony object data[0.1.2] - 2019-10-13Inital releaseAddedImage processing, plotting and data aggregationPython package uploaded to PyPi