  In diffusion MRI (dMRI), a good sampling scheme is important for efficient
acquisition and robust reconstruction. Diffusion weighted signal is normally
acquired on single or multiple shells in q-space. Signal samples are typically
distributed uniformly on different shells to make them invariant to the
orientation of structures within tissue, or the laboratory coordinate frame.
The Electrostatic Energy Minimization (EEM) method, originally proposed for
single shell sampling scheme in dMRI, was recently generalized to multi-shell
schemes, called Generalized EEM (GEEM). GEEM has been successfully used in the
Human Connectome Project (HCP). However, EEM does not directly address the goal
of optimal sampling, i.e., achieving large angular separation between sampling
points. In this paper, we propose a more natural formulation, called Spherical
Code (SC), to directly maximize the minimal angle between different samples in
single or multiple shells. We consider not only continuous problems to design
single or multiple shell sampling schemes, but also discrete problems to
uniformly extract sub-sampled schemes from an existing single or multiple shell
scheme, and to order samples in an existing scheme. We propose five algorithms
to solve the above problems, including an incremental SC (ISC), a sophisticated
greedy algorithm called Iterative Maximum Overlap Construction (IMOC), an 1-Opt
greedy method, a Mixed Integer Linear Programming (MILP) method, and a
Constrained Non-Linear Optimization (CNLO) method. To our knowledge, this is
the first work to use the SC formulation for single or multiple shell sampling
schemes in dMRI. Experimental results indicate that SC methods obtain larger
angular separation and better rotational invariance than the state-of-the-art
EEM and GEEM. The related codes and a tutorial have been released in DMRITool.
