Last updated: 2018-09-21
workflowr checks: (Click a bullet for more information) ✔ R Markdown file: up-to-date
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
✔ Repository version: 382f0f7
wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Ignored files:
Ignored: .DS_Store
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: docs/.DS_Store
Ignored: docs/figure/.DS_Store
Untracked files:
Untracked: code/pois_lik.R
Untracked: data/greedy19.rds
Untracked: temp_debug.RDS
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
File | Version | Author | Date | Message |
---|---|---|---|---|
Rmd | 382f0f7 | Jason Willwerscheid | 2018-09-21 | wflow_publish(“analysis/index.Rmd”) |
html | 23eb8cb | Jason Willwerscheid | 2018-09-20 | Build site. |
Rmd | 73535b4 | Jason Willwerscheid | 2018-09-20 | workflowr::wflow_publish(“analysis/index.Rmd”) |
html | 61c0e2e | Jason Willwerscheid | 2018-09-18 | Build site. |
Rmd | fc79d31 | Jason Willwerscheid | 2018-09-18 | wflow_publish(“analysis/index.Rmd”) |
html | dc193d9 | Jason Willwerscheid | 2018-09-12 | Build site. |
Rmd | 5e96e40 | Jason Willwerscheid | 2018-09-12 | wflow_publish(“analysis/index.Rmd”) |
html | efbae90 | Jason Willwerscheid | 2018-09-11 | Build site. |
Rmd | 734b172 | Jason Willwerscheid | 2018-09-11 | wflow_publish(“analysis/index.Rmd”) |
html | eb78de4 | Jason Willwerscheid | 2018-08-29 | Build site. |
Rmd | 9302ecc | Jason Willwerscheid | 2018-08-29 | wflow_publish(“analysis/index.Rmd”) |
html | 10a535b | Jason Willwerscheid | 2018-08-29 | Build site. |
Rmd | 47f0b23 | Jason Willwerscheid | 2018-08-29 | wflow_publish(“analysis/index.Rmd”) |
html | 07ffbc2 | Jason Willwerscheid | 2018-08-23 | Build site. |
Rmd | c73018d | Jason Willwerscheid | 2018-08-23 | wflow_publish(“analysis/index.Rmd”) |
html | 9e39a5f | Jason Willwerscheid | 2018-08-22 | Build site. |
Rmd | ac09d4b | Jason Willwerscheid | 2018-08-22 | wflow_publish(“analysis/index.Rmd”) |
html | b0fbbe0 | Jason Willwerscheid | 2018-08-22 | Build site. |
Rmd | 4fe662c | Jason Willwerscheid | 2018-08-22 | wflow_publish(“analysis/index.Rmd”) |
html | 02be9e9 | Jason Willwerscheid | 2018-08-17 | Build site. |
Rmd | 6e0036f | Jason Willwerscheid | 2018-08-17 | wflow_publish(“analysis/index.Rmd”) |
html | a6d55b6 | Jason Willwerscheid | 2018-08-16 | Build site. |
Rmd | c972927 | Jason Willwerscheid | 2018-08-16 | wflow_publish(c(“analysis/index.Rmd”, “analysis/parallel2.Rmd”)) |
html | 10d46c0 | Jason Willwerscheid | 2018-08-15 | Build site. |
Rmd | acd7f0c | Jason Willwerscheid | 2018-08-15 | wflow_publish(c(“analysis/index.Rmd”)) |
html | 86ef31a | Jason Willwerscheid | 2018-08-12 | Build site. |
Rmd | 73aa339 | Jason Willwerscheid | 2018-08-12 | wflow_publish(“analysis/index.Rmd”) |
html | 5a2e2a9 | Jason Willwerscheid | 2018-08-12 | Build site. |
Rmd | 6a9bf1c | Jason Willwerscheid | 2018-08-12 | wflow_publish(c(“analysis/index.Rmd”, “analysis/parallel.Rmd”)) |
html | 9246c68 | Jason Willwerscheid | 2018-08-12 | Build site. |
Rmd | eaba09b | Jason Willwerscheid | 2018-08-12 | wflow_publish(c(“analysis/index.Rmd”, “analysis/parallel.Rmd”)) |
html | cfa8e83 | Jason Willwerscheid | 2018-07-27 | Build site. |
Rmd | f497f36 | Jason Willwerscheid | 2018-07-27 | wflow_publish(c(“analysis/warmstart2.Rmd”, |
html | 974e1db | Jason Willwerscheid | 2018-07-27 | Build site. |
Rmd | 2d81ef4 | Jason Willwerscheid | 2018-07-27 | wflow_publish(c(“analysis/index.Rmd”, “analysis/init_fn2.Rmd”)) |
html | 9fc59e7 | Jason Willwerscheid | 2018-07-26 | Build site. |
Rmd | 21cbf89 | Jason Willwerscheid | 2018-07-26 | wflow_publish(c(“analysis/index.Rmd”)) |
html | 8f471cb | Jason Willwerscheid | 2018-07-26 | Build site. |
Rmd | ff417b6 | Jason Willwerscheid | 2018-07-26 | wflow_publish(c(“analysis/warmstart.Rmd”, “analysis/index.Rmd”)) |
html | aae4dfc | Jason Willwerscheid | 2018-07-25 | Build site. |
Rmd | 6417d4e | Jason Willwerscheid | 2018-07-25 | wflow_publish(c(“analysis/index.Rmd”, “analysis/init_fn.Rmd”)) |
html | 3983695 | Jason Willwerscheid | 2018-07-25 | Build site. |
Rmd | 566c202 | Jason Willwerscheid | 2018-07-25 | wflow_publish(“analysis/index.Rmd”) |
html | dd91b19 | Jason Willwerscheid | 2018-07-20 | Build site. |
Rmd | 032edd6 | Jason Willwerscheid | 2018-07-20 | wflow_publish(c(“analysis/index.Rmd”, “analysis/flash_em.Rmd”, |
html | f995dbb | Jason Willwerscheid | 2018-07-20 | manual commits to remove licence |
html | c9f10b0 | Jason Willwerscheid | 2018-07-20 | Build site. |
Rmd | 4fc94bd | Jason Willwerscheid | 2018-07-20 | wflow_publish(c(“analysis/index.Rmd”, “analysis/flash_em.Rmd”)) |
html | 1de2af0 | Jason Willwerscheid | 2018-07-20 | Build site. |
Rmd | 9ac7bb0 | Jason Willwerscheid | 2018-07-20 | wflow_publish(“analysis/index.Rmd”) |
html | f98f61f | Jason Willwerscheid | 2018-07-20 | Build site. |
Rmd | 8e383cd | Jason Willwerscheid | 2018-07-20 | wflow_publish(c(“analysis/index.Rmd”)) |
html | 58b3ea4 | Jason Willwerscheid | 2018-07-19 | Build site. |
Rmd | eb264b1 | Jason Willwerscheid | 2018-07-19 | wflow_publish(“analysis/index.Rmd”) |
html | 36a6312 | Jason Willwerscheid | 2018-07-19 | Build site. |
Rmd | a9f8cc6 | Jason Willwerscheid | 2018-07-19 | wflow_publish(“analysis/index.Rmd”) |
html | c420802 | Jason Willwerscheid | 2018-07-17 | Build site. |
Rmd | 38942eb | Jason Willwerscheid | 2018-07-17 | wflow_publish(“analysis/index.Rmd”) |
html | e2e1286 | Jason Willwerscheid | 2018-07-16 | Build site. |
Rmd | 55f42ca | Jason Willwerscheid | 2018-07-16 | wflow_publish(“analysis/index.Rmd”) |
html | de8f823 | Jason Willwerscheid | 2018-07-16 | Build site. |
Rmd | f5379fa | Jason Willwerscheid | 2018-07-16 | wflow_publish(“analysis/index.Rmd”) |
html | 7db12a1 | Jason Willwerscheid | 2018-07-16 | Build site. |
html | 873da40 | Jason Willwerscheid | 2018-07-16 | Build site. |
html | 58e136a | Jason Willwerscheid | 2018-07-15 | Build site. |
Rmd | 82c7cdd | Jason Willwerscheid | 2018-07-15 | wflow_publish(c(“analysis/index.Rmd”, “analysis/about.Rmd”)) |
html | 76eacb7 | Jason Willwerscheid | 2018-07-15 | Build site. |
Rmd | f6928cc | Jason Willwerscheid | 2018-07-15 | wflow_publish(c(“analysis/index.Rmd”, “analysis/about.Rmd”)) |
Rmd | 56d7ded | Jason Willwerscheid | 2018-07-14 | Start workflowr project. |
Investigations 8 and 9 implement parallel backfitting updates.
Investigation 8. Parallelizing the backfitting algorithm shows promise.
Investigation 9. An additional trick is needed to parallelize the backfitting updates performed in this MASH v FLASH GTEx analysis.
Investigation 10. SQUAREM does poorly on FLASH backfits. DAAREM (a more recent algorithm by one of the authors of SQUAREM) does better, but offers smaller performance gains than parallelization.
Investigation 11. The order in which factor/loading pairs are updated (during backfitting) makes some difference, but not much.
Investigation 12. To fit a FLASH model with an arbitrary error covariance matrix, I follow up on a suggestion by Matthew Stephens.
Investigations 14 and 16 illustrate two approaches to factorizing the GTEx donation matrix. The first is more naive, and is primarily intended as an illustration of how to do nonnegative matrix factorization using FLASH. The second is a more sophisticated approach that models the counts as drawn from Poisson distributions.
Investigation 14. An example of how to use nonnegative ASH priors to obtain a nonnegative matrix factorization.
Investigation 16. Instead of directly fitting FLASH, I fit count data via a Gaussian approximation to the Poisson log likelihood.
Investigation 15. Tests an implementation of changes to the way tau
is stored, as discussed here.
Notes 1 and 2 and Investigation 4 describe a way to compute the FLASH objective directly (rather than using the indirect method implemented in flashr
).
Note 1. Notes on computing the FLASH objective function. I derive an explicit expression for the KL divergence between prior and posterior.
Note 2. An alternate algorithm for optimizing the FLASH objective, using the explicit expression derived in the previous note.
Investigation 4. The alternate algorithm agrees with FLASH with respect to both the objective and fit obtained.
Investigations 5a-b and 13 attempt to determine the best default initialization function.
Investigation 5a. An argument for changing the default init_fn
to udv_si_svd
when there is missing data and udv_svd
otherwise. Based on an analysis of GTEx data.
Investigation 5b. More evidence supporting the recommendations in Investigation 5a.
Investigation 13. A counterargument. Results in Investigations 5a-b probably depend on the fact that \(n\) is small (\(n = 44\)). For large \(n\), setting init_fn
to udv_si
is best.
The bug causing the problem described in Investigations 1-3 was fixed in version 0.1-13 of package ebnm
.
Investigation 1. The FLASH objective function can behave very erratically.
Investigation 2. This problem only occurs when using ebnm_pn
, not ebnm_ash
.
Investigation 3. The objective can continue to get worse as loadings are repeatedly updated. Nonetheless, convergence takes place (from above!).
Investigations 6 and 7 deal with warmstarts, which were implemented in version 0.5-14 of flashr
.
Investigation 6. Poor optim
results can produce large decreases in the objective function. We should use warmstarts when ebnm_fn = ebnm_pn
.
Investigation 7. The advantages of warmstarts are not nearly as compelling when ebnm_fn = ebnm_ash
.
This reproducible R Markdown analysis was created with workflowr 1.0.1