PyPedal

PyPedal is a Python module that provides tools for the manipulation of pedigrees.
Download

PyPedal Ranking & Summary

Advertisement

  • Rating:
  • License:
  • LGPL
  • Price:
  • FREE
  • Publisher Name:
  • John B. Cole
  • Publisher web site:

PyPedal Tags


PyPedal Description

PyPedal is a Python module that provides tools for the manipulation of pedigrees. PyPedal project is a Python module that provides tools for the manipulation of pedigrees, simple visualization of pedigrees, and the calculation of measures of genetic diversity from pedigrees.What's New in This Release:· Added PyPedalError and PyPedalPedigreeInputFileNameError classes. Now the exception raised in NewPedigree::__init__() actually works sort-of correctly.Did some more work in pyp_newclasses/NewAnimal::__init__() to make sure that string methods are not called on non-strings.pyp_newclasses/NewAnimal::string_to_int() now uses a new hashing algorithm taken from "Character String Keys" in "Data Structures and Algorithms with Object-Oriented Design Patterns in Python" by Bruno R. Preiss: http://www.brpreiss.com/books/opus7/html/page220.html#progstrnga.This fixes the collision problem with the previous algorithm (but any algorithm that produces, say, 32-bit integers will collide under the right circumstances).OK, the problem with pyp_utils/reorder() has been identified: Ori Peleg's hashing approach used in pyp_newclasses/NewAnimal::string_to_int() is colliding. For example, the strings 'ANJHL5876DC' and 'ONNLDF348RC' hash to the same value.Made a change to pyp_newclasses/NewAnimal::__init__() so that animal, sire, and dam names are correctly assigned even if integral IDs are passed rather than strings.pyp_newclasses/NewPedigree::preprocess() no longer casts animal, sire, and dam IDs to strings when adding pedigree entries for missing sires and dams. The cast was breaking the founder assignment code in pyp_newclasses/NewAnimal::__init__().Turned off a bunch of debugging messages left on in pyp_utils/reorder().pyp_utils/assign_offspring() was rather thoroughly broken due to errors introduced when the new object model conversion was made.What's New in This Release:06/26/2007 More bugfixes to pyp_utils/reorder(). Theorderdict and orderbackdict dictionaries are now correctlyupdated when an animal in the pedigree is moved. This 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!06/25/2007 Removed pyp_utils/reorder_list().06/21/2007 pyp_utils/reorder() will now write error messages to the logfile and STDIO if a pedigree could not be renumbered in renumber_max_rounds of iteration. 06/21/2007 Added new parameter, max_rounds, to pyp_utils/reorder(). pyp_newclasses/NewPedigree passes renumber_max_rounds to reorder, but the routines in pyp_nrm/* do not.06/21/2007 Added new option, renumber_max_rounds, to pyp_newclasses/NewPedigree::__init__(). The default value is 100 rounds.06/21/2007 Completely rewrote pyp_utils/reorder(), which has been the bane of my existences and source of most PyPedal bugs for a Long Time Now.06/21/2007 Fixed bug in pyp_nrm/inbreeding() so that it correctly works with pre-calculated NRM.06/20-/2007 Added a new function, pyp_io/write_ijk(), which saves an NRM to a disk in ijk format, where i and j are animal IDs and k is either (1. + the coefficient of inbreeding) when (i == j) or coefficient of relationship when (i != j).06/20/2007 Rewrote an error message in pyp_newclasses/NewPedigree::preprocess() so that it now makes sense.


PyPedal Related Software