GithubHelp home page GithubHelp logo

ucla-vast / recut Goto Github PK

View Code? Open in Web Editor NEW
18.0 7.0 0.0 260.06 MB

Large-scale medical image processing and reconstruction toolbox

License: MIT License

Python 40.93% CMake 0.74% C++ 56.33% Shell 0.49% Nix 0.26% PowerShell 0.03% C 1.21%
hpc medical-imaging neuroscience reconstruction sparse vdb

recut's Issues

Fail gracefully for output windows that require too much memory

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.

  • Allow individual windows to fail and allow overall execution to continue
  • Still output that components component-mask.vdb (tiny) so that the window can be generated post-hoc

recut aborts after 2 mins

The working folder has read/write permission.

However after running recut, the program aborts after 2 mins.
image

Anisotropic data (e.g., .2 .2 1, .3 .3 1, etc.) bug

Anisotropic 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

No seeds are on with respect to foreground ...

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

K1M: recut failed trying to use provided seeds

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

K1M: Memory management

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

Parent is also invalid

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.

K1M: Recut fails working with provided seeds

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

"Included" side branch (StdSwc 2.7)

Small side branch not long enough to "escape" the current diameter of parent segment.
Fix: Type A irregularity; Point is automatically removed.

passed radii value of 0 is invalid

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

Allow cropping by bounding box

--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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.