davidackerman / fetchupgrades Goto Github PK
View Code? Open in Web Editor NEWLicense: BSD 3-Clause "New" or "Revised" License
License: BSD 3-Clause "New" or "Revised" License
Reset button for percentile in histogram should go to zero, or nothing or -1.
If a hole is created during tiling, it should be filled so that it is imaged.
Rather than updating that starting z for surface find based on the surface of the previous tile, it would be better to just have a single value for the whole section.
Relatively often the mirror script will create an empty acquisition file on the network and delete the file on scratch meaning that we have to manually reenter all the information. Maybe introduce a file size check here.
Currently sanity_checks has a check of the vertical offset so that it is between 1 and 2, but might be more reliable if it is between 1.5 and 3.
Currently tile dilation only occurs once per slice, but should occur every time explore completes.
For the sake of simplicity and for the problems stated above it would be preferable to have the tiling file store info in 2d and be agnostic to things like slice thickness and overlap.
Desired default auto contrast values should be 5% and 99.99%. Double check percentages are used correctly because they seem unexpectedly small/large.
The default.microscope file is not compatible with the current version of Fetch. Need to make it compatible.
When starting the mirror script, files that are already on the scratch are not copied to network. Instead it could write the last file first but continue until the disk is empty. This way the mirror script can catch up when the scope is doing surface find.
When going from one z position to the next, the explorable area only grows from the previous one or remains constant. It would be good if it could also shrink since at the end of the experiment, the remaining portion of the brain is small but the software has to continue searching through whole (largest) explorable area.
It would be better if exploration could be done without having to take high resolution images of each tile. Instead, a movie could be continuously acquired while the stage is being moved. When a certain predefined brightness is reached, the tile corresponding to the current stage position would be marked active.
The channel that is being used for autotiling should be the same channel for surface find. Otherwise you may not find the surface properly.
As mentioned in Issue #7, the Z lattice position can easily be corrupted. One way to remedy this is by simply linking the lattice Z position to the 'cut count'.
A new colormap is desired in which the order is green, red, blue and magenta which will be the default.
The final z height of the stage right before imaging varies based on whether the stage moves up or down. To avoid this issue, it would be better to always move the stage a fixed height from its final location before it is moved to the final location. In this way, it the offset in its height should be constant.
To use the vibratome, the stage is lowered to a safe position. This should be implemented better, with at least a minimum safe z height so that it can't be lowered below that.
When dragging a selection box it is often very unclear which tiles actually fall in the selection. Either change the algorithm or have some visual indicator of what tiles fall under the current selection box.
On one of the scopes, the stage speed on startup is not correct and is corrected by increasing/decreasing it back to its original value in the GUI. Make sure this is fixed.
During 'auto tile' when the program finds tissue in a certain tile it changes the color of the tile to some shade of orange that barely stands out from red.
File handles are accumulated over time by the mirror script which can cause the system to become unstable after several days of running.
In GUI, when selecting channel histogram information, add a "Trip Detection Value" or "Trip Detection Intensity Value" to be set so don't have to set it in parameter file.
Since autotiling is an automated procedure, it is necessary to have sanity checks before it proceeds. These include:
For cut cycle, want a warning if offset is not set to 0.
Avoid accidental overwriting of data by having the file id number 'hard coded' so that it always increases by one even across software sessions.
If someone enters in invalid number into a field, that number is left in the edit box even though the internal value in the code is not changed.
When the software should stop, the next tile that will be explored when imaging resumes is marked as explored. It should not be marked.
Currently, there is no color distinction in the GUI between explored and explorable. It would be nice if the explored tile were a different color so it was more evident how much progress has been made.
In Autotile GUI, change Intensity threshold to Autotile threshold and below it add a feild for surface find threshold.
In Video Acquisition GUI, frame average counts should be settable.
Sporadically get message along the lines of: (First) or Unhandled exception at 0x000007FEFF3C7C8A (ole32.dll) in fetch.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF. This may be an issue with Visual Studio 2013: http://stackoverflow.com/questions/35441196/access-violation-reading-location-0xffffffffffffffff. This also happens if the software is idle for a while.
During explore, continuously have movie going, then when get to tile and stop, take last frame. This should save time. Also, when it expands to search around found tissue, it goes from one side of the tissue to the other rather than going based on proximity. Would be faster to go to nearest tiles first
Every 6k tiles or so fetch will stop because the Alazar digitizer will throw an error. This will cause fetch to stop even though you can always simply restart the autotile right away. Would be best if the software simply waits a few seconds and retries to start imaging a volume.
Would be good if a file was created as the software crashes, which could then be used to notify users via their monitoring system.
Right now after stopping imaging halfway through a slice the software does the surface find again which can now give a very different number (off by ~10 um). This can cause problems for us in the stitching procedure. Would therefor be nice to have the option to start at the current z position.
Min/max contrast can only be set automatically by pressing the number of the channel. Often this method does not give you the desired result. Having a menu with a histogram and sliders would be a big improvement.
Have an option to make the microscope stop the next time it does a cut and starts doing the 'auto tile' process. This is the safest possible time to stop. We can use this to safely stop the microscope and perform some 'maintenance' (e.g. clean the objective and bath).
Tile expansion should only occur once per section, unless explore is performed.
Sometimes there will be no surface to be found for a tile so it will keep searching deeper and deeper during surface find. This is not ideal. Instead, if it deviates too much from where it started slice that slice, the surface find for that tile should stop.
Sometimes there are two non-continuous chunks of brain in a slice that need to be imaged. When tile dilation occurs, it can wind up joining these two junks in which case surface find is searching locations where there is no brain. In general, doing surface find on these dilated tiles is not necessary since they will be imaged anyway. Better to just have dilation occur after surface find.
Improvements can be made to the software so that it is made more clear when parameters get overwritten. For instance, loading in a .tiling file will result in the settings' "overlap" being overwritten. This should throw some kind of warning. Also, when saving a settings file, all parameters get updated with those from the settings file. Would be nice if only those that were changed in the file were updated; this would prevent overwriting changes made with the GUI. Could possibly do this by storing the previous settings, and only updating those parameters that were changed in the settings file.
Even though the scope kept collecting data correctly, the view (except for the GUIetc.) was white. And the square in the bottom left may also have still been visible.
After referencing the stage in Fetch the Stage position boxes do not update or show the correct value. It is correct though after restarting the software.
From Johan: "I cant be a hundred procent sure this description is correct so you may have to test it yourself but it seems that when the scope did a cut and start imaging again on a new day (meaning that date changed since the last tile on the previous slice was imaged) then the software simply crashes."
When exploration is stopped, many of the tiles (including many unexplored ones) are set to active. The correct behavior would be to stop the exploration where at the current state. This would ensure that it can resume where it left off, rather than skipping all the tiles that are incorrectly marked active.
Over time the measured slice thickness can change but it is currently not possible to modify the offset or cut thickness as the recording is happening. Also changing the offset often causes changes in the tiling file that can make the made progress (or 'done' tiles) disappear and corrupt the lattice position causing 2 files in separate slices to be in the same lattice positions.
Typing in the window freezes the program until spacebar is pressed.
Rather than having it off by default, would be better if it started when the software started.
The live view doesn't work properly until the stage is moved. Otherwise, nothing appears.
When skip surface find on image resume is checked, then the surface find resumes based on tilepos, but would should be set equal to the z value in the UI so that it is settable.
There will be a separate reference on the stage at a specific xyz position that will be imaged and used for calibration. So the process will be: after slice and before explore or surface find, move to specific xyz and take a stack at a separate laser intensity. This will be a setting in the .microscope file that will allow the user to choose v_open (percentage) for this specific task. This will be used to change one of the pockels.
Add fov fields from .microscope to .acquisition files, by prepending fov_ to each field (probably don't need rotation_radians field)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.