Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added blogpost week 4, 5, 6, 7 #827

Merged
merged 3 commits into from Jul 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
30 changes: 30 additions & 0 deletions docs/source/posts/2023/2023-06-27-week-4-tvcastillod.rst
@@ -0,0 +1,30 @@
Week 4: First draft of the DTI uncertainty visualization
========================================================

.. post:: June 27, 2023
:author: Tania Castillo
:tags: google
:category: gsoc

What did I do this week?
------------------------

`#PR 810: DTI uncertainty visualization <https://github.com/fury-gl/fury/pull/810>`_

I made a second PR with the implementation of DTI uncertainty calculation and visualization. Below is an image of diffusion tensor ellipsoids and their associated uncertainty cones.

.. image:: https://user-images.githubusercontent.com/31288525/254747296-09a8674e-bfc0-4b3f-820f-8a1b1ad8c5c9.png
:width: 530
:align: center

I had to use some **dipy** functions, specifically: `estimate_sigma <https://github.com/dipy/dipy/blob/321e06722ef42b5add3a7f570f6422845177eafa/dipy/denoise/noise_estimate.py#L272>`_ for the noise variance calculation, `design_matrix <https://github.com/dipy/dipy/blob/321e06722ef42b5add3a7f570f6422845177eafa/dipy/reconst/dti.py#L2112>`_ to get the b-matrix, and `tensor_prediction <https://github.com/dipy/dipy/blob/321e06722ef42b5add3a7f570f6422845177eafa/dipy/reconst/dti.py#L639>`_ for the signal estimation. The details of this calculations can be found `here <https://onlinelibrary.wiley.com/doi/full/10.1002/mrm.21111>`_.

What is coming up next?
-----------------------

I will continue working on the uncertainty PR which is still in its early stage, I'm going to make a couple of adjustments to the description of the parameters and the actor, and keep working on based on the feedback I receive. There are also minor details to be discussed with my mentors about the first PR, which I hope to finish refining.

Did I get stuck anywhere?
-------------------------

It took me a while to make the PR because I had some problems with the uncertainty function definition. I tried to use the least amount of parameters for the function, since with data, bvals and bvecs it is possible to obtain the rest of the parameters needed to generate the cones, which led me to readjust some calculations from the base implementation I had, to keep everything working correctly.
22 changes: 22 additions & 0 deletions docs/source/posts/2023/2023-07-03-week-5-tvcastillod.rst
@@ -0,0 +1,22 @@
Week 5: Preparing the data for the Ellipsoid tutorial
=====================================================

.. post:: July 03, 2023
:author: Tania Castillo
:tags: google
:category: gsoc

What did I do this week?
------------------------

During the weekly meeting with my mentors, there was a small discussion over the naming of the actor and its usage. On the one hand, although the purpose of the actor is to visualize diffusion tensor ellipsoids, the idea is that it can also be used for any other type of visualization that requires the use of ellipsoids, so in the end, we decided to keep the name *ellipsoid* as it is more generic. On the other hand, as there is already an actor made for the purpose of tensor visualization, namely `tensor_slicer <https://github.com/fury-gl/fury/blob/e595bad0246899d58d24121dcc291eb050721f9f/fury/actor.py#L1172>`_, it might not be obvious how and why one would use this new ellipsoid actor for this purpose, thus it was proposed to make a tutorial that can clarify this. The main difference between both actors relies on the quality and the amount of data that can be displayed, so the idea is to show the difference between both alternatives so the user can choose which one to use depending on their needs. To prepare the tutorial the first step was to `add the data <https://github.com/fury-gl/fury-data/pull/12>`_ I will use on `fury-data <https://github.com/fury-gl/fury-data>`_ so I can then fetch and load the datasets I need to work on the tutorial.

What is coming up next?
-----------------------

I need `#PR 791 <https://github.com/fury-gl/fury/pull/791>`_ to be reviewed by my GSoC fellows at FURY, so I will address their comments, and additionally make adjustments on `#PR 810 <https://github.com/fury-gl/fury/pull/810>`_ based on the feedback I receive. I will also start working on the tutorial, the idea is to show the use that can be made of the ellipsoid actor in the visualization of diffusion tensor ellipsoids, compared to the *tensor_slicer* actor. I plan to create a WIP PR to start getting feedback on the general structure of the tutorial and the way everything will be explained.

Did I get stuck anywhere?
-------------------------

I did not encounter any obstacles this week.
26 changes: 26 additions & 0 deletions docs/source/posts/2023/2023-07-10-week-6-tvcastillod.rst
@@ -0,0 +1,26 @@
Week 6: First draft of the Ellipsoid tutorial
=============================================

.. post:: July 10, 2023
:author: Tania Castillo
:tags: google
:category: gsoc

What did I do this week?
------------------------

`#PR 818: Tutorial on using ellipsoid actor to visualize tensor ellipsoids for DTI <https://github.com/fury-gl/fury/pull/818>`_

I created the PR for the tutorial that will show the use that can be made of the *ellipsoid* actor in the visualization of diffusion tensor ellipsoids. It is still in its most basic stage, but the structure that I have thought of for now consists of: displaying a slice using *tensor_slicer* with spheres of 100, 200, and 724 vertices, and using *ellipsoid* actor, and show a comparison of the visual quality of the tensor ellipsoids. Then, display a ROI using both actors and a whole brain using the *ellipsoid* actor, to show that this new actor gives the possibility to display more data.

I also submitted the `uncertainty PR <https://github.com/fury-gl/fury/pull/810>`_ for review, in order to start making the necessary corrections.

What is coming up next?
-----------------------

I need `#PR 791 <https://github.com/fury-gl/fury/pull/791>`_ to be merged first, but meanwhile, I will start working on the explanation of the tutorial, since I already have the code structure and the idea of what I want to illustrate. I will discuss further work with my mentors at the upcoming meeting, so I can organize myself better and plan how I'm going to address the pending parts of my project.

Did I get stuck anywhere?
-------------------------

I found no major difficulties this week.
24 changes: 24 additions & 0 deletions docs/source/posts/2023/2023-07-17-week-7-tvcastillod.rst
@@ -0,0 +1,24 @@
Week 7: Adjustments on the Uncertainty Cones visualization
==========================================================

.. post:: July 17, 2023
:author: Tania Castillo
:tags: google
:category: gsoc

What did I do this week?
------------------------

I was told to refactor some parts of the uncertainty PR, since I was relying too much on **dipy** functions which is not good because it makes maintenance more difficult as **dipy** requires **FURY** for some functionalities. So I did some adjustments on the uncertainty function parameters and the corresponding tests, hopefully I managed to get with the most appropriate definition but I need to receive a first feedback to see how much I have to adjust the implementation. As I had to delete some relevant code lines inside the uncertainty calculation which consisted of preprocessing the data in order to define the necessary variables for the uncertainty formula, I was also suggested to make a tutorial of this new feature, so I can explain in detail how to obtain and adjust the necessary information, before passing it to the actor, and in general how and what is the purpose of this new function.

I also continued working on the ellipsoid tutorial, which I hope to finish this week so that I can ask for a first revision.

What is coming up next?
-----------------------

I will finish defining some details of the tutorial so that it is ready for review, and now I will start working on the tutorial related to the uncertainty, while I receive feedback on the other PRs. Also, as preparation for the next step I will start exploring on how to address visualization of spherical harmonics for ODF glyphs visualization, I found that a previous GSoC participant at FURY started working on that and also did several work with raymarching and SDF (:doc:`here is a summary of the work <../2020/2020-08-24-final-work-lenix>`), so I will take a deeper look on that to see if I can get something useful I can start with.

Did I get stuck anywhere?
-------------------------

Not this week, but I foresee some problems with the uncertainty PR, we will see how it goes.