corbinq / apex

Toolkit for QTL mapping and meta-analysis.
https://corbinq.github.io/apex/
16 stars 1 forks source link

Support for higher precision p-values, new build & test frameworks #13

Closed welchr closed 1 year ago

welchr commented 2 years ago

Purpose

This PR adds support for higher precision p-values during stepwise conditional analysis. Internally, the p-values are stored in log scale, and sorting is done on the log scale p-values. The p-values written out are at arbitrary precision in the original scale, or they can be written in log scale with --print-log-pvals.

PR also includes a previous branch (from maybe a year ago) that incorporated CMake and cget for running builds. It made it easier to incorporate GoogleTest for test cases, and Rmath for the various stats functions in log scale. The build system changes also make it possible to compile on MacOS and develop/debug with CLion.

A new --legacy-vcov option was added to support the previous vcov format. This way only one code branch needs to be maintained. I couldn't think of a good way to detect the old format by examining the file, rather the analyst must know which format they are using.

Finally, there is a Dockerfile added that allows for building container images. These are useful for running test cases and compiling the distributable linux static binary in a clean environment, and for remote development with CLion or VS Code. They could also potentially be included in GH's container registry, for people to use without having to run the distributed binary, but that is not included in this PR.

New binary is attached here:

apex-0.2-alpha-124-4e979d86c38-x86_64-unknown-linux-gnu.tar.gz

Not all of these changes need to be kept in this PR of course. If there's anything I should change or pare out for a separate PR, let me know.

Changes

Backward incompatible changes

New features

Bug fixes

welchr commented 2 years ago

Marking as draft for now - going to try and additionally patch conditional_analysis_het(...).

welchr commented 1 year ago

PR moved to https://github.com/lin-lab/apex/pull/1.