Projects

Contributions

  1. Contributed to DIPY/DIPY

    • Opened and merged pull request #3237, which deprecates the old interp_rbf function, which only supports interpolation of scalar-valued spherical functions, and replaces it with a new rbf_interpolation function that supports interpolation of tensor-valued spherical functions.
    • GitHub:
  2. Contributed to Project MONAI/tutorials

    • Opened and merged pull request #1566, which adds a tutorial on leveraging the newly implemented VoxelMorph class to perform 3D image registration task on Learn2Reg 2021 Task 3 (OASIS dataset).
    • GitHub:
    • Opened and merged pull request #1589, which adds a notebook demonstrating the scaling laws regarding the newly added BendingEnergyLoss and DiffusionLoss.
    • GitHub:
  3. Contributed to Project MONAI/MONAI

    • Opened and merged pull request #7178 in response to a feature request proposed in issue #5484, which adds a new VoxelMorph class to the existing MONAI Core and can serve as a general framework based on which one can easily construct a deep learning network for 2D/3D image registration.
    • GitHub:
    • Opened and merged pull request #7272, which adds a new registration regularizer DiffusionLoss in addition to the existing BendingEnergyLoss.
    • GitHub:

Tools

  1. Pituitary Segmentation

    • Created an atlas-based command-line segmentation tool for automatic pituitary segmentation in 3D MR images. The tool is based on the MNI152 2009a Nonlinear Asymmetric atlas and a corresponding pituitary mask annotated by a radiologist.\
    • Added functionality
      • Now providing the option to use multiple atlases for more robust segmentation results.
      • The new command-line tool is written entirely in bash without dependency on Python and is based on the C++-based ANTs (instead of ANTsPy).
    • GitHub:
  2. Spherical Harmonics Fitting

    • Re-implemented selected tools from DIPY for fitting spherical harmonics in DIPY. In addition, a helpful tool for converting gradient directions bvec from the Cartesian coordinate system to the corresponding spherical coordinate system was also implemented. The re-implementation offers the same functionality as the original DIPY tools but allows the user to directly run the tools from MATLAB without dependency on DIPY.
    • GitHub:
    • MATLAB File Exchange: View Spherical Harmonics Fitting on File Exchange
  3. Patch2Self_MATLAB

    • Re-implemented Patch2Self in MATLAB based on the original paper and the official DIPY implementation. Patch2Self is a widely used self-supervised learning method for denoising diffusion MRI data. However, the use case of my current project (and many others) requires running Patch2Self as part of a MATLAB pipeline. Re-implementation of Patch2Self in MATLAB allows for seamless integration of Patch2Self into such pipeline.
    • GitHub:
    • MATLAB File Exchange: View Patch2Self_MATLAB on File Exchange
  4. ICON_OASIS

    • A reproduction of ICON and GradICON on the OASIS dataset based on the ICON original paper and GradICON original paper. This re-implementation uses MONAI.networks.nets.VoxelMorph and MONAI.losses.DiffusionLoss. The purpose of this project is to try out Marc’s group’s latest work and provide an example of how to integrate the ICON and GradICON loss functions into an existing training pipeline.
    • GitHub:
  5. UnstructuredInterpolation

    • Created a utility for unstructured interpolation of 2D/3D data at any number of arbitrary locations based on torch.nn.functional.grid_sample. Cases where this is useful include applying a displacement field predicted at discrete voxel locations to a densely and continuously sampled surface represented by a set of vertices.
    • GitHub:
  6. PerfusionDSA

    • Created an interactive command line tool that takes as input a series of 2D$+t$ images produced by cerebral X-ray Digital Subtraction Angiogram (DSA) and produces parametric images including cerebral blood flow (CBF), cerebral blood volume (CBV), mean transit time (MTT), and time to maximum flow-scaled residue function (Tmax).
    • GitHub:
  7. N4BiasFieldCorrection

    • Created an easy-to-use command line tool that performs N4 bias field correction on a 3D volume based on a SimpleITK tutorial.
    • GitHub:
  8. XRayPanorama

    • Created an interactive command line tool with simple GUI that, given the hip, knee, and ankle images of the same subject, stitches the three images together based on a SimpleITK tutorial. Additional functionalities were added to enhance the appearance of the resulting panorama.
    • GitHub:
  9. SpectralProfile

    • Created a little script that can be easily used on any PyTorch project to visualize the spectral profile of a generated (or any) image (either 2D or 3D) based on Fast Fourier Transform (FFT).
    • GitHub:

Documentation

  1. OpenNFT-Note

    • Created a personal notebook of my experience with Open-NFT, a Python/MATLAB-based tool for real-time fMRI neurofeedback training. The notebook includes details from how to setup the environment to how to run a trial run and is available both in Chinese and English.
    • Read the Docs: