ucla-vast / recut Goto Github PK
View Code? Open in Web Editor NEWLarge-scale medical image processing and reconstruction toolbox
License: MIT License
Large-scale medical image processing and reconstruction toolbox
License: MIT License
Thrown sometime after writing connected_sdf.vdb
fastmarching -> fastsweeping
Some output windows will be too large to create a dense TIFF in memory especially on low RAM, or highly parallel runs with many components.
component-mask.vdb
(tiny) so that the window can be generated post-hocAnisotropic data requires upsampling the z to make it the voxel length match across all three dimensions. However upsample data that gets morphological closed in recut has different output than the same VDB library command in Houdini. The total # of somas will be far lower than actual until this is fixed
recut lazily relies on probeLeaf to do a final check whether the passed seeds correspond to an active region of topology, however if the coordinate is in a leaf whose values are all uniform it can be compressed into a tile value with results in a returned null leaf, even though the value is clearly on
Can not open in Neutube
run-14/component-10/img*.tif
Fix: Flagged as a type B1 irregularity. Generally second point is removed (and type changed to B2), but other corrections may be necessary.
Use --preserve-topology
only with --seeds X
runs
The following command failed on the master branch:
time nice -n 19 recut ./mask.vdb --input-type mask --seeds /data/20220818_SW220405_05_LS_6x_1000z_stitched/soma_recut --fg-percent 0.1 --output-type eswc --close-steps 5 --open-steps 5
Thread count 256
User specified image ./mask.vdb
image: [17557, 11965, 8400]
--prune-radius was set to: 1 by calculating the anisotropic factor of --voxel-size
All outputs will be written to: ./run-2
Only 41 of 41 seeds in directory have an active voxel and are connected to a component in the provided image
recut: /build/r7qczr56i0ida94i5gl10alam5mlv8gk-source/src/recut.hpp:3249: void Recut<image_t>::operator()() [with image_t = short unsigned int]: Assertion `((void)"Root pairs must be set before beginning reconstruction", !seeds.empty())' failed.
Aborted
Using recut starting from 2D tiff series on a whole brain image consumes 700GB more RAM compared with the time starting with a mask.vdb file.
tested commands:
recut /path/to/2D_tiff_series --fg-percent 0.1 --output-type eswc --open-steps 6 --close-steps 6
recut /path/to/mask.vdb --input-type mask --fg-percent 0.1 --output-type eswc --open-steps 6 --close-steps 6
Do so immediately such that output windows have as much memory ceiling as possible
Runtime error on large scale reconstruction "parent is also invalid". Occurs in a tiny fraction of components but will stop execution entirely during SWC generation.
Can be fixed quickly by convert directly to graph, skipping the mesh manifold conversion which is largely for visualization/observability
tested command:
time nice -n 19 recut /data/20220725_17_41_55_SW220510_02_LS_6x_1000z_stitched/Ex_488_Em_525_6x_8bit2bsh_tif_deconvolved_flip_up --seeds /data/20220725_17_41_55_SW220510_02_LS_6x_1000z_stitched/soma_recut --fg-percent 0.1 --output-type eswc --open-steps 4 --close-steps 1
Error:
Start merge Grid finalize time: 102.57 s Finished stage: convert Finished total updating within 3564.17 sec recut: /build/521gxvnvw53pza2mcdkl8b5300pz0s5j-source/src/recut.hpp:3255: void Recut<image_t>::operator()() [with image_t = short unsigned int]: Assertion ((void)"Root pairs must be set before beginning reconstruction", !root_pairs.empty())' failed. Aborted
Nodes with radius below 1 get written into SWC as 0.xxx
That combines the neighbor clearing strategy of force, but that uses the actual computed radius size
Small side branch not long enough to "escape" the current diameter of parent segment.
Fix: Type A irregularity; Point is automatically removed.
Runtime error on large scale reconstruction "passed radii value of 0 is invalid". Occurs in a tiny fraction of components but will stop outputting more SWCS entirely instead of logging and continuing
--image-offsets
coupled with --image-lengths
allows you to crop an image to a specific bounding box, for example a bounding box containing only the proofread seeds or connected_sdf from a previous run. This could boost the signal to noise ration due to high saturation in regions outside of the bounding box.
Bug is when passing offsets of x and y, currently only z works.
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.