Created printFamily() method to visualize families and understand errors.
Important check-in. Now have two blocks of code to find/reconcile ohnologs using comparative data. The new block "Advanced Search" in comparativeOhnologs2 is better as the  old code ignores pre-existing mistakes and inconsistencies. The new code gets better results but uses heuristics instead of formal statistics.
Lots of changes. Tried to add stats to new comparativeOhnologs2 code but do not have needed randomisation code. Reimplementing with species-specific stats. Not pretty but results look OK.
comparativeOhnologs2 working failry well but still some kinks to be worked out.
ohnologComparative2 still very much in flux. Trying to treat 3 scenarios separately: <2 OGs, 2 OGs, >2 OGs. Helpful for clarification but many complex cases. Getting ready to revise Genome::quality() to created needed tools.
Multiple changes to Genome::quality(). Using length as filtering criterion only and using created unified quality metric using synteny and homology data. Synteny builds of hypergob() metric (via syntenyMatrix) and homology uses logscore(ygob) values. The metric in both cases is 1/CoefVar. Created quantileNormalization method to rescale homology data and allow for creation of equally weighted quality score. Next step is to create code to allow individual query gene compute its quality.
Quality score works as intended - single unified score for OG quality - but does not fix all problems sorting out ohnologs. Need to incoporate an explicit sanity test that identifies sister chromosome. In some cases the preferred Ohnolog is clearly not possible due to a chromosome with no homolog on it. An extended synteny test - possibly with some kind of gradient descent (like syntenic_orthologs) - in ohnologs method may be useful.
Empty commit.