- Jan 23, 2023
-
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - a case in which x and y dimensions are unequal is better at revealing dimension storage/conversion issues HOW DOES THE CHANGE SOLVE THE PROBLEM?: - tile existing image to size x = 1800, y = 1200 WHAT SIDE EFFECTS DOES THIS CHANGE HAVE?: - filenames have changed EVIDENCE THAT COMMIT WORKS: - doesn't seem to break existing tests, specifically test_image.py and test_tiler.py
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - TypeError raised when Tiler.dummy object was instantiated ('method' object is not iterable) HOW DOES THE CHANGE SOLVE THE PROBLEM?: - dummy_omero_metadata was a tuple of dicts, changed it to a dict. this also makes available the .update() method of a dict. and is also consistent with the datatype it should be in the return statement. EVIDENCE THAT COMMIT WORKS: - Tiler.dummy object can be instantiated from a parametes dict without errors
-
Arin Wongprommoon authored
-
Arin Wongprommoon authored
REFERENCES: - issue #62
-
Alán Muñoz authored
-
Alán Muñoz authored
-
- Jan 18, 2023
-
-
Alán Muñoz authored
-
- Jan 17, 2023
-
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - using dev_testimage.py in skeletons: when dummy tiler is created and tiler.initialise_traps() is invoked, segment_traps() (still) raises 'No valid 'tiling regions found' HOW DOES THE CHANGE SOLVE THE PROBLEM?: - in tiler.initialise_traps(), initial_image was defined based on self.ref_channel and self.ref_z; however, if ref_z was not 0, then initial_image would be a zero array. - this was because ImageDummy.pad_array() put the input image at the 0 position and pads with zeros regardless of the value of ref_z. - so i wanted the output of ImageDummy.get_data_lazy() to be defined in such a way that the (ref_z)th slice in the z-direction is the input image. - therefore, i added a new argument to Image.Dummy.pad_array() so that ref_z can be used to achieve the above. WHAT SIDE EFFECTS DOES THIS CHANGE HAVE?: - tech debt: no (easy) way to deal with ref_channel because it's a string. workaround is to keep the ref_channel the first channel in the dummy tiler, and assume that throughout. EVIDENCE THAT COMMIT WORKS: - modified test_image.py works - skeletons: dummy tiler can be defined and dummy_tiler._run_tp(0) runs without errors
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - when tiler.initialise_traps() is invoked, "No valid tiling regions found" is raised from traps.segment_traps() (aliby.tile.traps). HOW DOES THE CHANGE SOLVE THE PROBLEM?: - the image called by segment_traps() was a blank image. - this was because tiler.initialise_traps() uses the first timepoint to define the initial image (line 400 in tiler.py). - the first timepoint was a blank image because ImageDummy.pad_array() added zero arrays BEFORE the input array. - so fixed it by reversing the behaviour of ImageDummy.pad_array() - and modified the test_image test to reflect this change. WHAT SIDE EFFECTS DOES THIS CHANGE HAVE?: - none known -- only potential effect is the test, which was modified EVIDENCE THAT COMMIT WORKS: - test_image passed
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - tiler dimensions are ctzyx, but image dimensions are tczyx by default. this leads to incorrect storage of shapes HOW DOES THE CHANGE SOLVE THE PROBLEM?: - re-arrange the dimensions in the shape property to match image - justifying this for the purpose of getting ImageDummy to play well with Tiler WHAT SIDE EFFECTS DOES THIS CHANGE HAVE?: - this exposes technical debt: there are places in which the order of dimensions are hard-coded and later assumed like this, and leads to indexing dimensions by index rather than by name. in addition, the assumed order of dimensions is inconsistent throughout tiler. this is a recipe for confusion. worth a refactor soon.
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - when new slices are added using ImageDummy.pad_array(), the original array is at the end HOW DOES THE CHANGE SOLVE THE PROBLEM?: - for consistency, made the 'nil' elements precede the reference channel
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - it complained that ImageDummy object has no .shape attribute when Tiler methods like ._run_tp() were called HOW DOES THE CHANGE SOLVE THE PROBLEM?: - first argument of the object to be returned by .dummy() is mistakenly an Image instance (i.e. ImageDummy); it should be a dask array like those returned by e.g. .from_image(), .from_h5() - fixed by using the .data attribute, consistent with the other methods mentioned WHAT SIDE EFFECTS DOES THIS CHANGE HAVE?: - order of dimensions is inconsistent: it is tczxy in io.image.py but ctzxy in the .shape() method in tiler.py. this may break things down the line
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - consistency HOW DOES THE CHANGE SOLVE THE PROBLEM?: - fill in unspecified channels with 'nil' -- normally this information is fetched from metadata, which we don't have for this dummy
-
- Jan 16, 2023
-
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - currently has one time point, one channel, one z-stack and thus mimicking usual Image.data structure. this isn't what we want to test. HOW DOES THE CHANGE SOLVE THE PROBLEM?: - use pad_array() to pad with zeros so that the shape is as desired REFERENCES: - MR !10
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - not obvious that there is an example HOW DOES THE CHANGE SOLVE THE PROBLEM?: - highlight example in ``` - remove unnecessary example detail that isn't needed to understand the function REFERENCES: - MR !10
-
Arin Wongprommoon authored
HOW DOES THE CHANGE SOLVE THE PROBLEM?: - remove FIXME REFERENCES: - MR !10
-
- Jan 13, 2023
-
-
Alán Muñoz authored
-
Alán Muñoz authored
-
Alán Muñoz authored
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - test dummy tiler, see if it crashes REFERENCES: - issue #53
-
Arin Wongprommoon authored
REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - need to test whether ImageDummy object makes Tiler happy - existing implementation lacked a metadata argument, which Tiler expected HOW DOES THE CHANGE SOLVE THE PROBLEM?: - create a dummy_omero_metadata dict, based on the arguments of the metadata() property of the Image object from aliby.io.omero WHAT SIDE EFFECTS DOES THIS CHANGE HAVE?: - metadata dict is hard-coded, ideally take some info from ImageDummy object and parameters - instantiating Tiler raises "Tiler: No z_perchannel data: 'zsections'", and several attributes are missing -- this may be expected EVIDENCE THAT COMMIT WORKS: - need to write tests, not sure what we should be looking for. at the very least, an instantiation that doesn't break REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - consistent with standard indexing, and should make tiler happy HOW DOES THE CHANGE SOLVE THE PROBLEM?: - get the z-dimension in REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - https://git.ecdf.ed.ac.uk/swain-lab/aliby/aliby/-/jobs/56786 because AttributeError: 'function' object has no attribute 'shape' REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - https://git.ecdf.ed.ac.uk/swain-lab/aliby/aliby/-/jobs/56781 failed REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - https://git.ecdf.ed.ac.uk/swain-lab/aliby/aliby/-/jobs/56767 failed because ValueError: The truth value of a Array is ambiguous. HOW DOES THE CHANGE SOLVE THE PROBLEM?: - use numpy.array_equal() to compare arrays instead REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - https://git.ecdf.ed.ac.uk/swain-lab/aliby/aliby/-/jobs/56762 failed because TypeError: compute() takes 1 positional argument but 2 were given HOW DOES THE CHANGE SOLVE THE PROBLEM?: - corrected a stupid typo: compute() is a function that takes no arguments that gives out an array, and i want to index that array REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - https://git.ecdf.ed.ac.uk/swain-lab/aliby/aliby/-/jobs/56757 failed because TypeError raised: 'int' object is not iterable HOW DOES THE CHANGE SOLVE THE PROBLEM?: - @pytest.mark.parametrize() takes an iterable, e.g. a list -- I forgot about it. fixed it by putting the values in a list. REFERENCES: - issue #53
-
Arin Wongprommoon authored
EVIDENCE THAT COMMIT WORKS: - issue #53 REFERENCES:
-
Arin Wongprommoon authored
REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - to help create a dummy image instance with dimensions tiler likes HOW DOES THE CHANGE SOLVE THE PROBLEM?: - decided to separate these two steps: (1) add more dimensions to loaded image, (2) pad the dask array. otherwise, i'd have to tell the pad_array function the existing dimensions -- it's easier to just assume it has five before running - pad_array: just concat zero arrays with same dimensions as image_array REFERENCES: - issue #53
-
Ivan Clark authored
WHY IS THIS CHANGE NEEDED?: With numpy version 1.21.6 the pipeline was failing to complete because the statement at line 567 of writer.py: if ( df.columns.dtype == np.int or df.columns.dtype == np.dtype("uint") or df.columns.name == "timepoint" ): was false - this was due to a mismatch between the numpy and pandas integer data types. This might be fixed if the correct version of numpy is used. On windows this seems to be affected by the installation of omero-py HOW DOES THE CHANGE SOLVE THE PROBLEM?: The if statement is removed so the timepoint column is always written EVIDENCE THAT COMMIT WORKS: Whole pipeline now works with unit test on Windows 10 (sce-bio-c04115)
-
Arin Wongprommoon authored
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - an overview of what image instances do will help us understand and use such objects HOW DOES THE CHANGE SOLVE THE PROBLEM?: - add long docstring at beginning of module (similar to e.g. tiler) - modify line in docstring for ImageDir. it doesn't inherit from ImageLocal; it inherits from BaseLocalImage. WHAT SIDE EFFECTS DOES THIS CHANGE HAVE?: - need to check whether descriptions are accurate
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - organise notes from last commit & give context to writing code REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - organise notes from last commit & provide context to help with developing code REFERENCES: - issue #53
-
- Jan 12, 2023
-
-
Arin Wongprommoon authored
- clarification of what needs to be done as comments/docstrings REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - need a way to produce a dummy form of the next step after creating an image instance to test pipeline; this next step is the tiler HOW DOES THE CHANGE SOLVE THE PROBLEM?: - make template method REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - need function that creates the expected output from dummy image file, as an interface for other classes' get_data_lazy() methods HOW DOES THE CHANGE SOLVE THE PROBLEM?: - create abstract method that loads the dummy image file and returns 2d dask array - define function to get examples directory, following logfile_parser.legacy WHAT SIDE EFFECTS DOES THIS CHANGE HAVE?: - only able to handle one TIF file (i.e. 1 z-section) EVIDENCE THAT COMMIT WORKS: - created a test class that extends BaseLocalImage and has a get_data_lazy() function that extends the base class's function; it is able to load the dummy image into a dask array REFERENCES: - issue #53
-
Arin Wongprommoon authored
WHY IS THIS CHANGE NEEDED?: - need a TIFF image file to serve as a dummy image input for dummy image processing functions HOW DOES THE CHANGE SOLVE THE PROBLEM?: - add TIFF file from unit test (staffa:560) REFERENCES: - issue #53
-