Here, I list describe some of the code that I've written for my research.

- Confounder Adjustment in Regression: Code for removing unwanted variation, either with or without control genes.
- Higher-order Spectral Estimators: These functions will calculate estimators that shrink the core array in the higher-order singular value decomposition. This is useful if your data exhibit tensor structure, such as low multilinear rank. Tuning parameters in these estimators are chosen by minimizing an unbiased estimate of the mean squared error.
- The Incredible HOLQ: These functions will calculate Tucker decompositions. These are tensor generalizations of common matrix decompositions, such as the SVD, the LQ, and the Polar decompositions. The higher-order LQ decomposition provides the maximum likelihood estimators from the array normal model. Also included is a function to run a likelihood ratio test in separable covariance models.
- Equivariant Estimation: Under the array normal model, these functions will use a non-informative prior over the space of Kronecker structured covariance matrices to find equivariant estimators that perform remarkably better than the maximum likelihood estimator.