Skip to content
Benjamin Chu edited this page Oct 21, 2018 · 1 revision

Welcome to the IHT.jl wiki!

TO DO for IHT (code):

  • Review cross-validation code
  • Run on GAW data = 959 people and 8 million sips (must impute genotypes first!)
  • Profile code for project_group_sparse. Make the sorting more efficient by calling functions that just partially sorts things, and change the whole function to operate in-place.
  • Change b and b0 to type SparseVector
  • Change X_kb_k to double precision matrix-vector multiplication
  • Since v.xk .= view(x, :, v.idx), we don’t need to store a copy of xk, and can instead use view() in A_mul_B. However this requires A_mul_B! in snparrays to accept subarrays as input -> submitted issue on github
  1. In the first iteration, the denominator of step size is very big (roughly 2.1e9). For single precision, this is pushing its limit
  2. How did the test_control.txt run in 0.0004 seconds? Did Julia internally do some optimizations that are only available for small datasets?
  3. dbsnps - extract weights from this data base?
  4. Compare our IHT implementation to hard_l0_1Mterm in matlab which also implements IHT for numeric data
  5. mask_n is setting residuals to 0 for entries that one wants to mask, but to maximize efficiency, we should use mask_n to mask y and X to do a smaller matrix/vector multiplication.
  6. Should declare IHTVariable only 1 time
  7. Don’t pass keyword all over the place. Instead, pass maf = false/true
  8. If we set cv_fold = 1, we get a thread access bug.
Clone this wiki locally