removing todo note
Multiple evaluation of tests and implementations

-- Added a "--all" option to run all implementations of the PairHMM sequentially
-- Added the option to run multiple PairHMM implementations sequentially (by using "--caching --logless" for example to run both these implementations)
-- Added the option of running multiple test sets against all the requested PairHMM implementation. Test sets are entered in the command line.
Added ABS to the precision calculation
Fixing PairHMM and refactor of test routines

-- Fixed Logless bug as suggested by Diego and Scott
-- Fixed '-all' option to run all implementations without keeping it all in memory
-- Fixed the option to run with multiple test cases
-- Restructured input/ouput to work from different files
-- Evaluate doesn't test correctness anymore, it outputs the likelihoods for downstream testing, output now goes to a uniquely named file prefixed by the hmm class name (e.g. LoglessPairHMM.7.out)
-- Separated input dataset (.in) from output dataset (.out). Truth can always be re-generated by running with --standard
-- Renamed implementations with more indicative names of what they actually do
-- Added description of exact features differentiating each implementation
-- Refactored logger output

The test files are now immutable (since the output is separate) and are avaiable in the public dropbox (will send link via e-mail soon). The truth output can always be re-generated by the StandardPairHMM, but I will provide ground truth files in the public dropbox as well.
New scripts to test sensitivity and accuracy

-- added checkLikelihoods lua script to compare two outputs (likelihood sensitivity test -- default 0.001)
-- added checkHaplotypes lua script to check if the maximum likelihood haplotype in two implementations is the same (accuracy test)

The sensitivity test is ready to use, but I am still working on the haplotype check script. The idea here is to check that different implementations of the PairHMM always choose the same most likely haplotype for each batch of N reads and M haplotypes
checkHaplotypes implementation

Use this script to check if your implementation is choosing the same most likely haplotypes for each block of N reads and M haplotypes.

Usage:
  lua checkHaplotypes <test.in> <expected.out> <actual.out>
Fixed issue with output not writing all tests
General fixes to the Experimental PairHMM and cleanup of the other algorithms for clarity
Bug fixes to the ExperimentalPairHMM

fixed first column of the match matrix was being wrongfully initialized with 1's
fixed indices for insertion and deletion (i and j) in updateCell
Implementation of the FourMatrices hmm

-- simple implementation not yet using 4 matrices, but created constant class for clarity
-- added to Evaluate for testing
Better implementation of the FourMatrices hmm

cleaned up the code to make it more readable
A better (simpler) implementation of FourMatrices

Instead of creating a state to allow free deltions, simply ignore all paths that end in deletions by removing Y[N][N] from the result.
Fixes to all the HMM implementation and cleanup

* HMMs are now called Logless and Log10. These are the only two implementations.
* Logless should be the reference implementation for the CUDA/FPGA/Rootbeer implementation
* Log10 is the 'exact' implementation for comparison
* FourMatrices hmm had wrong transition probabilities (they weren't adding to one) because Tau was dependent on Di and Dd.
   * fixed it by moving Di and Dd to emission probabilities and reassigning all transition probabilities with no preference to any state.
* NoDel hmm was ignoring the case where a read's most likely alignment would end before the end of the haplotype. In fact it was ignoring all alignments that fell into that category (no matter how likely).
   * fixed it by summing over all independent observations of alignments that end in matches and insertions. They are now independent because they are no longer receiving the contribution from the deletion matrix.

Fixes to all implementation and code cleanup
Manuscript abstract

Starting to put together the manuscript so we're all on the same page.
Added paper outline with assignments to each group
Some fixes and options to the HMMs

   * Fixed caching issue
   * Added --nocache option to evaluate as requested by Scott

ps: still not 100% happy with the whole thing, it passes tests but the sensitivity in real data is not as good as it use to be (10^-3 instead of 10^-9). I'll keep working on this.
Fixed the sensitivity issue. Now everything is 100%!
Fixing typo and optimizing update

* Only update the first row if haplotypes differ in length (slight optimization)
* Fixing typo transitition => transition.
This doesn't affect us but keeps it compatible with the GATK implementation inside the HaplotypeCaller.
Another issue with caching, if the read is new, we can't cache the matrix even if the haplotypes had the same length.

1 line fix.