1. Speed improvements in all SOLAR operations thanks to improved
compiler optimization. Polygenic runs 1.73 times faster compared
with previous official version 7.6.4. The biggest improvement is
in C++ intensive mathmatrix operations based on Eigen; as a
result of this and other changes "fphi -p" is now 25 times faster
than in version 8.0.6.
2. The implentation of fphi p value estimation, working since
is made cleaner and slightly faster. The use of a new mathmatrix
operation PermuteY which eliminates the need to create an
intermediate shuffled vector for each column of the permuted
matrix (as had been done in 8.0.6). Far fewer temporary matrices
are created. These changes had only a small effect on speed
compared with the improved compiler optimizations.
3. fphi p value estimation now uses better random numbers to
Y matrix: Mersenne Twister mt19937 which has a period of 2^19937.
AFAIK this is the best quality fast random generator available, and
it is included in the recent C++11 standard so is widely available.
4. fphi p value calculation numerator was off by one. Now p values
from "fphi -p" are slightly smaller (better).
5. Other changes to fphi: Tcl code is cleaned up with much junk
variables given meaningful names, obsolete -method argument
removed, -testonly is now called -indicator.
6. option ShuffleReseeding controls how the mt19937 random number
generator used for matrix shuffling is seeded. The default value
is 1 which means the generator is reseeded to the default value
5489u at the beginning of each matrix shuffle operation. This
gives consistent p value results every time, and the most
comparable results when the same sample is used across a range of
models. The options are:
1...seeded on every shuffle to 5489u for consistent results
0...seeded first shuffle to 5489u, then free running
-1...seeded every shuffle to time() for purely stochastic results
-2...seeded first shuffle to time(), then free running
Other values: seed to this value at beginning of each shuffle
7. Errors in test models in mga (either the regular test model or
interaction test model) would cause mga to exit. Now such errors
reported to the screen and a line with SNP name but blank results
written to the output file.
8. option MatrixNumberFormat controls the formatting precision of
output by matrix operations such as "show". The default of 15
long unrounded numbers such as 0.4999999999999999.
9. This version is the first ever to have a public source code
release, along with the usual binary releases for Linux, Mac, and
Microsoft Windows. The binary releases are fully tested and
replace Official Version 7.6.4 on the general download links at http://solar.txbiomedgenetics.org. Due to the now distributed
nature of SOLAR Eclipse development, this release is not called
Official but instead General as in intended-for-general-use. An
Official version with coordinated updates from all developers may
be available soon.