statgen / locuszoom

A Javascript/d3 embeddable plugin for interactively visualizing statistical genetic data from customizable sources.
https://statgen.github.io/locuszoom/
MIT License
154 stars 29 forks source link

Update demo to use newest rm.js #162

Closed abought closed 5 years ago

abought commented 5 years ago

🦑 Companion to, and must be merged after: https://github.com/statgen/raremetal.js/pull/9

Purpose

The new raremetal.js will make some changes to support additional aggregation tests.

This updates the LocusZoom demo with WIP support for two new tests (SKAT-O and VT), as well as updating the code to work with incoming rm.js API changes.

abought commented 5 years ago

Burden and SKAT tests are returning the same results as with previous rm.js versions.

However, the VT test presently fails in the demo region when running all possible masks + tests + LDL as phenotype: it tries to access cov[3][3], which is out of bounds for the 3x3 covariance matrix of input data.

Line with error: https://github.com/abought/raremetal.js/blob/f4b715011245be88b6dd677b26c218df2b89db03/src/app/stats.js#L206

lz-aggregation-tests.min.js? [sm]:149 TypeError: Cannot read property '3' of undefined
    at get_conditional_dist (stats.js:206)
    at calculate_mvt_pvalue (stats.js:275)
    at stats.js:494
abought commented 5 years ago

A version of the integration is available here: https://abought.github.io/locuszoom/examples/aggregation_tests.html?chrom=19&start=45312079&end=45512079

As of this writing there are run bugs with VT, and under rare conditions memory usage issues with SKATO. (I am working on resolving the latter)

Below is some information about the VT error for debugging, per @welchr request.

TypeError: Cannot read property '3' of undefined at get_conditional_dist (stats.js:206) at calculate_mvt_pvalue (stats.js:275) at stats.js:494

It seems to be trying to read element indices larger than the actual provided covariance matrix.

var scores = [0, 0, 0, 1.5462063784800575, 0.21031859503159187, 9.04952262687792]`
var cov = [[1,0.47234514133873046,0.3847563633178216],[0.47234514133873046,1,0.4872017342012682],[0.3847563633178216,0.4872017342012682,1]]
var comb = [0, 3]
abought commented 5 years ago

Closing in favor of changes merged to develop.