This release candidate features lots of bugfixes that grew out of some problems reported by matthieu Authier. Thanks, Matthieu! Here are the highlights:
05/07/2008 Added a check to pyp_graphics/draw_pedigree()
to catch empty gtitles, which cause dot to crash. If the
gtitle is empty then it is set equal to the 'pedname'
attribute of the NewPedigree object.
05/07/2008 Fixed pyp_network/get_node_betweenness() to use
the correct betweenness function from NetworkX.... read more
Logging now works again, ID maps are cleaned-up automatically after pedigree renumbering, and pyp_metrics/effective_founder_genomes() has some new parameters and a small bugfix.
Added the parameter debugLoad to the loadPedigree() function in pyp_newclasses.py. It defaults to False; when True it loads the pedigree without using a try-except block so that errors are not suppressed.
Fixed pyp_network/mean_geodesic() to properly catch an exception raised by NetworkX when no path exists between two nodes in a graph.
Installation of PyPedal using the standard "python setup.py install" should now work correctly. Thanks to Ken Severin for reporting problems with the installer.
Release candidate 3 includes an important bugfix for pyp_metrics/inbreeding_vanraden(), as well as a major overhaul of the database backend that included changes to pyp_db, pyp_newclasses, pyp_reports, and the manual. PyPedalnow uses ADOdb for Python to talk to databases, and MySQL, Postgres, and SQLite are supported out0of-the-box. ADOdb is bundled with PyPedal.
The relationship metadata returned by pyp_metrics/
inbreeding() are not guaranteed to be correct when
method = 'vanraden' is used. This is because
inbreeding_vanraden() uses a speed-up when there
are full-sibs in the pedigree to avoid
repeating calculations. The metadata should be
pretty accurate for pedigrees with few or no
full-sibs. The summary statistics will not be very
accurate in the case of pedigrees that contain
lots of full-sibs. I'm not sure that this is so
much a bug as an optimization tradeoff.... read more
This is the first release candidate. From now on no new features or API changes. Really!
Changes from b23:
Added a new chapter to the manual;
Added tostream() to NewPedigree;
Fixed a small bug in NewPedigree::fromgraph();
Loading pedigrees from a database now works;
Saving pedigrees to a database now works.
In addition to the usual number of bugfixes and documentation updates I've ripped out the GUI, added GEDCOM import/export, support for pedigree input as strings, and added calculation of partial and ancestral inbreeding.
The git news in this relase are major bugfixes to pyp_utils/reorder(). I've fixed cases where the pedigree was not correctly reordered. When this happened, pyp_utils/renumber() caught KeyErrors while looking up sires/dams and set parents to unknown, ignoring known relationships in the pedigree. George Wiggans's persistent reports that the relationships being calculated were just not right led to the root cause of the problem. Thanks, George!... read more
Fixed a bug in the NewAnimal::string_to_int() and LightAnimal::string_to_int() methods. The bug (reported by Matt Kelly) manifested on Windows XP/Python 2.5 and Max OS/X platforms and resulted in the failure of pyp_utils/reorder) to successfully reorder pedigrees when the 'ASD' pedigree format code was used. I believe that the problem was related to the value of sys.maxint, which varies between 32-bit and 64-bit platforms. string_to_int() now uses a hash calculated using the Python MD5 module as the main hashing method, and the old method as a backup should the first throw an exception (such as could be caused by an unsuccessful cast of a long hexadecimal value to a (long) integer). In that case, the old method will now use a hard-coded value in calculating the hash rather than sys.maxint.... read more
03/22/2007 Minor documentation fixes and additions.
03/22/2007 Added a new method, savegraph(), to
pyp_newclasses/NewPedigree for saving graphs to
adjacency matrices.
03/22/2007 Added a new value of pedsource,
'graphfile', which can load a pedigree stored as
a directed graph in a text file in an adjacency
list.
03/22/2007 Added a new argument to
pyp_utils/renumber(), animaltype, that allows for
proper handling of NewAnimal versus LightAnimal
instances.... read more
A couple of lingering references to Numarray were removed. PyPedal is now 100% NumPy.
Two bugs were fixed in this release, including a metadata bug which caused problems using those data on renumbered pedigrees, and a dependency on Numarray was replaced with a NumPy call; thanks to Matt Kelly for reporting that problem.
Minor bugfix for the "u" pedigree format code, revised documentation including better Windows installation instructions, and a cleaned-up set of files in the tarball. The MANIFEST.in file was rewritten to include only the necessary files for running PyPedal.
Several new graph theory routines; graphics updates; new keywords and pedigree format codes; many bugfixes; documentation updates.
The fix introduced in Beta 12 only solved the problem in some cases. I think a more dobust fix is in place now. I also fixed a problem with the way that NewPedigree::addanimal() was mapping renumbered sire and dam IDs back to names in ASD pedigrees.
Matt Kelly reported a bug in pyp_metrics/relationship() that resulted in erroneous relationships in some cases; it has been fixed.
This is an important update -- some minor problems in the animal reordering code have been fixed. In addition, the hashing algorithm used to convert string IDs to integers has been changed; the previous algorithm was having collision problems with very similar inputs.
A major bug has been discovered and fixed in the reordering routine. This was a tricky bug to find and fix. Many thanks to Mattjew Kelly for providing a pedigree that demonstrated the problem.
The code has also been audited to make sure that all routines correctly use the missing parent codes.
pyp_jbc/draw_colored_pedigree() now correctly handles user-specified missing parent codes.
pyp_network/ped_to_graph() now correctly handles user-specified missing parent codes.
Fixed PedigreeMetadata::nud() and PedigreeMetadata::nus() so that they correctly handle user-specified missing parent codes.
Added a new parameter, missingparent, to
pyp_utils/reorder(). reorder() can now correctly handle user-specified missing parent codes.... read more
New release includes several bugfixes for handling strings as animal IDs (ASD format codes). Also added pyp_metrics/mating_coi_group(), which can be used to identify the minimum-inbreeding matings from a set of proposed parents.
There's a new three-generation pedigree report, as well as a number of bugfixes.
Beta 6 is out, and includes some bugfixes, documentation cleanups, extra class goodness, and the long-awaited pedigree simulator.
There are enough bugfixes in Beta 5 that all users are encouraged to upgrade.
Beta 4 is released. It is a recommended upgrade because there are some significant bugfixes in this release.