I'm not sure if these features exist in DSI Studio, but would appreciate if they did

77 views
Skip to first unread message

Forrest Shooster

unread,
Jun 8, 2022, 7:53:50 PM6/8/22
to DSI Studio
Desired features for Step T3a:
- #1 Region-wise subtraction (subtract all parts of 3d shape contained within another region)
- #2 Region folders (Can group & further subgroup regions into groups of regions; even better if region actions can be applied to all elements of a group of regions at once; even better if folder can be "folded" [display only the name of the folder & Type and Color apply to the entire group when changed - if regions have differing color or type settings they should display something ambiguous like a question mark instead of their usual default setting to make it clear they have various values - changing either item should change settings on all sub-items below the level of hierarchy of those items) - Even better would be if regions could be folders (parent regions with sub-regions) in addition to empty folders which do not have to be regions themselves.
- #3 Multi-select on regions for changing color / type (Changing multiple region settings at once)

Desired features for Step T3b:
- #4 Reversible region editing (after altering a region it would help if CTRL-Z undid the most recent change to a region - it is okay if this functionality is limited in scope such as to one region at a time or a limited number of reversals - even better if it has a history similar to how mechanical CAD programs do)

Would be nice feature for Steps T3a/b & main view: 
- #5 Region definition & editing using 3D primitives, such as that used in Unity3D (See the source image: https://docs.unity3d.com/530/Documentation/StaticFiles/ScriptRefImages/ScaleHandle.png - desired features - scaling & copying primitives)
- #6 using #5 combined with recommendation #2 - should be possible to collapse folders into a single region - using #5 with #1 should be possible to use primitives to subtract much in the same way they are used currently in Step T3b but within 3D space manipulation instead of 2D space when used in combination with a handle as suggested in #5 similar to the kind used by GameObjects in the Unity3D game engine.

If anyone knows a good way to do these things, I would appreciate guidance anyone can offer. 

Thanks,
Forrest Z Shooster

Shooster, Forrest Zachary

unread,
Jun 8, 2022, 8:23:42 PM6/8/22
to dsi-s...@googlegroups.com

Some other 3D manipulation requests off-shooting from the primitive based editing:
- #7 Creating planes in the 3D space (which would be grabbable at a centroid and movable in X,Y,Z and scalable along X,Y,Z) that can be moved and rotated along X,Y,Z and moved to a specific position where they could be used to split a region in half [or multiple parts (if disconnected)]. – Ideally would be nice if these like the primitives could be moved, scaled, and rotated much in the same way they are in Unity3D or Unreal Engine.
- #8 Using Primitives for splitting regions into two parts – Subtracted region & left behind region – ex: put a sphere in the middle of a region – I should be able to extract the sphere and subtract it from the original region without deleting the original region & without having to redraw the sphere
- #9 Probably harder to do but if it could be done it could be cool to be able to draw regions along an isosurface – ie: using mouse to draw on the isosurface some shape and then generating a region of some specified thickness in the draw region – functionally it would be nice if this operated the same way as the circling / drawing features in Step T3b.

--
You received this message because you are subscribed to a topic in the Google Groups "DSI Studio" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dsi-studio/6Hit4VmDNok/unsubscribe.
To unsubscribe from this group and all its topics, send an email to dsi-studio+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dsi-studio/882a5f8b-45ae-4bfd-bc99-18429598db45n%40googlegroups.com.

 

Frank Yeh

unread,
Jun 8, 2022, 9:41:12 PM6/8/22
to dsi-s...@googlegroups.com
> Desired features for Step T3a:
> - #1 Region-wise subtraction (subtract all parts of 3d shape contained within another region)

[Region Misc][Modify Region][All Exclude First]: All regions will be
subtracted by the first region.
or [First Exclude All]: First region will be subtracted by other regions.

> - #2 Region folders (Can group & further subgroup regions into groups of regions; even better if region actions can be applied to all elements of a group of regions at once; even better if folder can be "folded" [display only the name of the folder & Type and Color apply to the entire group when changed - if regions have differing color or type settings they should display something ambiguous like a question mark instead of their usual default setting to make it clear they have various values - changing either item should change settings on all sub-items below the level of hierarchy of those items) - Even better would be if regions could be folders (parent regions with sub-regions) in addition to empty folders which do not have to be regions themselves.

Good suggestion! However, the immediate challenge is that the NIFTI
format does not support tree structures.
If in the near future there are more users requesting this feature, we
can explore ways to support it.

> - #3 Multi-select on regions for changing color / type (Changing multiple region settings at once)
>

It is rare to change multiple regions to the same color, and there is
a [Region Misc][Load Region Color] that can assign color in a more
efficient way.
Similarly, it is not common to assign multiple region type to ROI/ROA...etc.

I will implement a new feature if there are good application
scenarios, or if there are multiple users requesting such a feature.


> Desired features for Step T3b:
> - #4 Reversible region editing (after altering a region it would help if CTRL-Z undid the most recent change to a region - it is okay if this functionality is limited in scope such as to one region at a time or a limited number of reversals - even better if it has a history similar to how mechanical CAD programs do)

[Regions][Undo]

>
> Would be nice feature for Steps T3a/b & main view:
> - #5 Region definition & editing using 3D primitives, such as that used in Unity3D (See the source image: https://docs.unity3d.com/530/Documentation/StaticFiles/ScriptRefImages/ScaleHandle.png - desired features - scaling & copying primitives)

The regions in DSI Studio are voxels, whereas the regions in Unity3D
are meshes such as cubic.
Unfortunately, there are no "faces" in DSI Studio's region to realize
3D primitives.

> - #6 using #5 combined with recommendation #2 - should be possible to collapse folders into a single region -

I would use [Region][Merge Checked Region] to realize this function

using #5 with #1 should be possible to use primitives to subtract much
in the same way they are used currently in Step T3b but within 3D
space manipulation instead of 2D space when used in combination with a
handle as suggested in #5 similar to the kind used by GameObjects in
the Unity3D game engine.

I would use [Edit][Mover Object] to move a 3D region and use [Region
Misc][Modify Region][All Intersect First] and others to realize 3D
region subtractions.

Thanks for all the suggestions.

For features you request, I will keep track of them and consider
implementing them.
Frank

Frank Yeh

unread,
Jun 8, 2022, 9:46:06 PM6/8/22
to dsi-s...@googlegroups.com
On Wed, Jun 8, 2022 at 8:24 PM Shooster, Forrest Zachary
<Shooster...@medstudent.pitt.edu> wrote:
>
> Some other 3D manipulation requests off-shooting from the primitive based editing:
> - #7 Creating planes in the 3D space (which would be grabbable at a centroid and movable in X,Y,Z and scalable along X,Y,Z) that can be moved and rotated along X,Y,Z and moved to a specific position where they could be used to split a region in half [or multiple parts (if disconnected)]. – Ideally would be nice if these like the primitives could be moved, scaled, and rotated much in the same way they are in Unity3D or Unreal Engine.

[Edit][Move Object] can move regions in 3D space. However, because DSI
Studio regions are voxels, rotating it will induce transaction error
and cause the voxel count to change. It is unlikely a quick solution
to realize this feature.


> - #8 Using Primitives for splitting regions into two parts – Subtracted region & left behind region – ex: put a sphere in the middle of a region – I should be able to extract the sphere and subtract it from the original region without deleting the original region & without having to redraw the sphere

[Region Misc][Modify Region] has intersect or exclude function that
can produce a similar result.

> - #9 Probably harder to do but if it could be done it could be cool to be able to draw regions along an isosurface – ie: using mouse to draw on the isosurface some shape and then generating a region of some specified thickness in the draw region – functionally it would be nice if this operated the same way as the circling / drawing features in Step T3b.

[Region Misc][New Region from Thresholding] will provide an isosurface.
Frank
>
>
>
>
>
> From: Forrest Shooster
> Sent: Wednesday, June 8, 2022 7:53 PM
> To: DSI Studio
> Subject: [dsi-studio] I'm not sure if these features exist in DSI Studio, but would appreciate if they did
>
>
>
> Desired features for Step T3a:
> - #1 Region-wise subtraction (subtract all parts of 3d shape contained within another region)
> - #2 Region folders (Can group & further subgroup regions into groups of regions; even better if region actions can be applied to all elements of a group of regions at once; even better if folder can be "folded" [display only the name of the folder & Type and Color apply to the entire group when changed - if regions have differing color or type settings they should display something ambiguous like a question mark instead of their usual default setting to make it clear they have various values - changing either item should change settings on all sub-items below the level of hierarchy of those items) - Even better would be if regions could be folders (parent regions with sub-regions) in addition to empty folders which do not have to be regions themselves.
> - #3 Multi-select on regions for changing color / type (Changing multiple region settings at once)
>
> Desired features for Step T3b:
> - #4 Reversible region editing (after altering a region it would help if CTRL-Z undid the most recent change to a region - it is okay if this functionality is limited in scope such as to one region at a time or a limited number of reversals - even better if it has a history similar to how mechanical CAD programs do)
>
> Would be nice feature for Steps T3a/b & main view:
> - #5 Region definition & editing using 3D primitives, such as that used in Unity3D (See the source image: https://docs.unity3d.com/530/Documentation/StaticFiles/ScriptRefImages/ScaleHandle.png - desired features - scaling & copying primitives)
> - #6 using #5 combined with recommendation #2 - should be possible to collapse folders into a single region - using #5 with #1 should be possible to use primitives to subtract much in the same way they are used currently in Step T3b but within 3D space manipulation instead of 2D space when used in combination with a handle as suggested in #5 similar to the kind used by GameObjects in the Unity3D game engine.
>
> If anyone knows a good way to do these things, I would appreciate guidance anyone can offer.
>
> Thanks,
> Forrest Z Shooster
>
> --
> You received this message because you are subscribed to a topic in the Google Groups "DSI Studio" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/dsi-studio/6Hit4VmDNok/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to dsi-studio+...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/dsi-studio/882a5f8b-45ae-4bfd-bc99-18429598db45n%40googlegroups.com.
>
>
>
> --
> You received this message because you are subscribed to the Google Groups "DSI Studio" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to dsi-studio+...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/dsi-studio/SJ0PR04MB756535561D14465B0F7AD1DEDCA79%40SJ0PR04MB7565.namprd04.prod.outlook.com.

Shooster, Forrest Zachary

unread,
Jun 8, 2022, 9:55:49 PM6/8/22
to dsi-s...@googlegroups.com

REGARDING: #2
RE: “Good suggestion! However, the immediate challenge is that the NIFTI


format does not support tree structures. If in the near future there are more users requesting this feature, we

can explore ways to support it.”


A scene descriptor for folder definitions could be useful for this in case a non-NIFTI solution is okay but this may be easier if it were required for regions to be in a folder findable by a scene (listed in the scene definition by location) or be stored somewhere within a folder collecting parts of a scene (this operation is similar to the Assets subfolders in Unity wherein they detect items in certain named folders and can automatically find those files based on their containing folders. You could have it so that a collected scene of tracts and Regions can only be saved if the regions and tracts are saved or previously existed in the atlases within DSI studio.

An alternative option is to have a scene descriptor completely ignore the content of the regions used and just auto-create hierarchies on load based on region name. Then a scene could just effectively be an xml file of hierarchies of region names or some equivalent settings file. This could be further extended by adding a location to the hierarchical items if a specific region file is desired and could be cross compared with regions currently in the scene if desirable.

REGARDING: #3
I could imagine it being useful to use the same color in related regions.
Also the same type requirement is probably still useful regardless of the color feature.

REGARDING: #1, #4
Thanks!

New suggestion unrelated to these:
Multiselect removal – since checks already exist in DSI studio, a “Delete Checked Regions” option on right click in T3a and T3d (as “Delete Checked Tracts”) Would be nice.



The regions in DSI Studio are voxels, whereas the regions in Unity3D
are meshes such as cubic.
Unfortunately, there are no "faces" in DSI Studio's region to realize
3D primitives.

> - #6 using #5 combined with recommendation #2 - should be possible to collapse folders into a single region -

I would use [Region][Merge Checked Region] to realize this function

using #5 with #1 should be possible to use primitives to subtract much
in the same way they are used currently in Step T3b but within 3D
space manipulation instead of 2D space when used in combination with a
handle as suggested in #5 similar to the kind used by GameObjects in
the Unity3D game engine.

I would use [Edit][Mover Object] to move a 3D region and use [Region
Misc][Modify Region][All Intersect First] and others to realize 3D
region subtractions.

Thanks for all the suggestions.

For features you request, I will keep track of them and consider
implementing them.
Frank

--
You received this message because you are subscribed to the Google Groups "DSI Studio" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dsi-studio+...@googlegroups.com.

Shooster, Forrest Zachary

unread,
Jun 8, 2022, 10:36:47 PM6/8/22
to dsi-s...@googlegroups.com

REGARDING #7 + #8– Region rotation is not necessary – just rotating primitives / surfaces / planes for editing regions in 3D space. Primitive 3D shapes / planes could be similar to drawing the cube / sphere as already exists within T3b but they would not be represented by voxels but by vectors until they are used for modification. As for rotating these primitives, I would suggest they remain primitives and not be converted to voxels until they are used in modifying/changing regions. If using only one to cut a region in half at a time, perhaps it would be better if DSI studio had a “Split Region with Plane” tool that allows you to take a plane or cube (“Cut region with cube”), rotate it, scale it, and translate it in 3D space would be more appropriate than a separate plane / primitive object. Then for the plane or cube perhaps assigning voxels along a given plane/edge of the cube to either side during splitting would suffice and any leftover voxels from imprecision of the cut could be fixed in post-split within T3b? Aside from the use of this feature for splitting regions into chunks, I can foresee it being very useful for looking at regions in a diagonal cross section without having to edit the existing regions irreversibly (you could split and then recombine regions into their two halves); separately that could become a separate feature in its own right (“View regions in cross section” or “View regions & tracts in cross section” or even “view tracts in cross section”).

Perhaps a separate window for those (if multiple need to be visible at once) would be appropriate? I’m not sure what the best approach for that would be since, as I’ve sat here thinking about it, I imagine tools for merging these would be useful as well – ex: cutting out a curved structure – Maybe instead of merging faces, drawing two or more Bezier curves and drawing a surface between the 2+ lines would be more appropriate?

For #8 It would help if for predefined regions I could rotate a cube in 3D space and cut off chunks of the regions into separate regions. Doing this chunking with the region drawing tools as is requires me to go through multiple steps through 2D images first (which would be fine for modification thereafter but for initial chunking it takes a long time). The only exception to this being if an upright cube or sphere is sufficient for me to cut out the desired chunk which has been quite rare.

REGARDING #9 – Region from thresholding does help a bit. I’m not sure it addresses this particular issue fully but it is at least better to have this in absence of the alternative.

From: Frank Yeh
Sent: Wednesday, June 8, 2022 9:48 PM
To: dsi-s...@googlegroups.com


> - #6 using #5 combined with recommendation #2 - should be possible to collapse folders into a single region - using #5 with #1 should be possible to use primitives to subtract much in the same way they are used currently in Step T3b but within 3D space manipulation instead of 2D space when used in combination with a handle as suggested in #5 similar to the kind used by GameObjects in the Unity3D game engine.
>
> If anyone knows a good way to do these things, I would appreciate guidance anyone can offer.
>
> Thanks,
> Forrest Z Shooster
>
> --
> You received this message because you are subscribed to a topic in the Google Groups "DSI Studio" group.


> To unsubscribe from this group and all its topics, send an email to dsi-studio+...@googlegroups.com.


>
>
>
> --
> You received this message because you are subscribed to the Google Groups "DSI Studio" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to dsi-studio+...@googlegroups.com.



--
You received this message because you are subscribed to the Google Groups "DSI Studio" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dsi-studio+...@googlegroups.com.

Frank Yeh

unread,
Jun 8, 2022, 11:04:53 PM6/8/22
to dsi-s...@googlegroups.com
>
> A scene descriptor for folder definitions could be useful for this in case a non-NIFTI solution is okay but this may be easier if it were required for regions to be in a folder findable by a scene (listed in the scene definition by location) or be stored somewhere within a folder collecting parts of a scene (this operation is similar to the Assets subfolders in Unity wherein they detect items in certain named folders and can automatically find those files based on their containing folders. You could have it so that a collected scene of tracts and Regions can only be saved if the regions and tracts are saved or previously existed in the atlases within DSI studio.
>
> An alternative option is to have a scene descriptor completely ignore the content of the regions used and just auto-create hierarchies on load based on region name. Then a scene could just effectively be an xml file of hierarchies of region names or some equivalent settings file. This could be further extended by adding a location to the hierarchical items if a specific region file is desired and could be cross compared with regions currently in the scene if desirable.

DSI Studio has a "presentation mode" that specifies a folder structure
to look for tract and regions:
https://dsi-studio.labsolver.org/doc/gui_t3_visualization.html
For more advanced features, I may wait to see if more users would need them.

>
> REGARDING: #3
> I could imagine it being useful to use the same color in related regions.
> Also the same type requirement is probably still useful regardless of the color feature.

In this case, what I usually did was to merge them as a new separated
region or NIFTI file.

> New suggestion unrelated to these:
> Multiselect removal – since checks already exist in DSI studio, a “Delete Checked Regions” option on right click in T3a and T3d (as “Delete Checked Tracts”) Would be nice.

This is readily achievable and I will list it on the to-do list.
Thanks for the suggestions!
Frank

Frank Yeh

unread,
Jun 8, 2022, 11:24:12 PM6/8/22
to dsi-s...@googlegroups.com
On Wed, Jun 8, 2022 at 10:36 PM Shooster, Forrest Zachary
<Shooster...@medstudent.pitt.edu> wrote:
>
> REGARDING #7 + #8– Region rotation is not necessary – just rotating primitives / surfaces / planes for editing regions in 3D space. Primitive 3D shapes / planes could be similar to drawing the cube / sphere as already exists within T3b but they would not be represented by voxels but by vectors until they are used for modification.

Unfortunately, there is no surface or vector defined in DSI Studio's
regions. Thus implementing this is much more difficult.
The cube/sphare shown in DSI Studio are actually voxel coordinates,
and the meshes are only generated in 3D rendering.

> As for rotating these primitives, I would suggest they remain primitives and not be converted to voxels until they are used in modifying/changing regions. If using only one to cut a region in half at a time, perhaps it would be better if DSI studio had a “Split Region with Plane” tool that allows you to take a plane or cube (“Cut region with cube”), rotate it, scale it, and translate it in 3D space would be more appropriate than a separate plane / primitive object. Then for the plane or cube perhaps assigning voxels along a given plane/edge of the cube to either side during splitting would suffice and any leftover voxels from imprecision of the cut could be fixed in post-split within T3b?

Thanks for the suggestion. This is technically achievable, but to the
best of my knowledge, most users only use atlas to get a region and
modify it using the [Region Misc] functions. Rarely one would manually
draw or modify 3D regions.

Thus, I may currently have this as a pending feature unless it would
find a more broader utilization.


> Aside from the use of this feature for splitting regions into chunks, I can foresee it being very useful for looking at regions in a diagonal cross section without having to edit the existing regions irreversibly (you could split and then recombine regions into their two halves); separately that could become a separate feature in its own right (“View regions in cross section” or “View regions & tracts in cross section” or even “view tracts in cross section”).

Good point.

What I usually did for “View regions in cross section” is manually
erase a cubic area from a region. It will create a cross section.
For “view tracts in cross section”, I always use [Edit][Cut] or
[Edit][Cut by Slice]

>
> Perhaps a separate window for those (if multiple need to be visible at once) would be appropriate?

[Layout][3D view][Double] may help a bit.

> I’m not sure what the best approach for that would be since, as I’ve sat here thinking about it, I imagine tools for merging these would be useful as well – ex: cutting out a curved structure – Maybe instead of merging faces, drawing two or more Bezier curves and drawing a surface between the 2+ lines would be more appropriate?

I haven't encountered such a need in my research yet.
Due to limited time, I am sorry that can only prioritize
implementation for my own research, or if multiple users from
different groups request the same.

>
> For #8 It would help if for predefined regions I could rotate a cube in 3D space and cut off chunks of the regions into separate regions. Doing this chunking with the region drawing tools as is requires me to go through multiple steps through 2D images first (which would be fine for modification thereafter but for initial chunking it takes a long time). The only exception to this being if an upright cube or sphere is sufficient for me to cut out the desired chunk which has been quite rare.

Doing this manually may not be efficient. It seems to me that you
would need external 3D segmentation tools that separate regions based
on intensity or other information.

Best regards,
Frank
Reply all
Reply to author
Forward
0 new messages