Eyegene Home >> Madeline 2.0 Home

Madeline 2.0 Pedigree Drawing Engine

2013.02.13 Improved Public Service! - Pedigrees displayed in the web service now also display the dates of birth of individuals. When dates of birth are present in the DOB column, siblings are automatically ordered by date of birth when possible.

Madeline's web service now display DOB by default.

2011.11.21 Enhanced flexibility in files and display! - Three new enhancements to Madeline 2.0 PDE are now available in SVN revision #99:

  1. More flexible coding in data files. Previous versions of Madeline accepted only abbreviations such as "Y" for "yes", "N" for "no", "M" for "male", "F" for "female" and so on. As of revision #99, Madeline now recognizes full-word codes such as "yes", "no", "true", "false", "male", "female", "divorced", "separated" and so on in the key categorical fields. This change should make Madeline easier to learn and use, especially in pedagogical and other situations where it is important to make data files as easy-to-read and transparent as possible.
  2. Display of IDs in tooltips. When a Madeline 2.0 SVG pedigree drawing is displayed in a conformant web browser, using the mouse to hover over an icon of an individual will now result in the display of a tooltip with the individual's ID shown. This can be quite useful, especially as very long IDs may be truncated in the tabular display that appears below the icons on a pedigree drawing.
  3. New command line flag to prevent label truncation.
  4. In the past, very long identifiers and other field data could be truncated when strings were excessively long. A new command-line option, --nolabeltruncation or simply -N now prevents truncation of labels on a drawing when they are too wide. While this option may comprise the overall layout quality of a pedigree and is not recommended for pedigrees intended for publication, it can nevertheless be quite useful on pedigree drawings used as part of a lab's internal process workflow.

2011.03.23 Improved Public Service! - A bug whereby the affection status of individuals was not shown correctly under certain circumstances when a pedigree was retrieved from online storage has been fixed on the Madeline public web service.

Ancestor cannot be descendant

2011.03.23 Improved Error Checking! - Accidental typing mistakes can lead to some very unusual error conditions in data sets. Certain error conditions may result in Madeline failing silently or even entering infinite loop conditions. Recently, the reincarnation of a paternal grandmother as a daughter of a certain father in a fairly large pedigree made me realize that such impossible conditions need to be checked in a generic manner. SVN revision #96 now includes an error-detection algorithm that looks for ancestral individuals who are also descendants. The program reports all individuals who are involved in such ancester-descendant loops so that the user can quickly determine where the error truly lies.

Fink Logo

2010.11.18 New Binary Package! - If you don't want to bother with building Madeline from the source tree, Daniel Johnson recently created a Fink package which will allow you to install the latest version of Madeline-2.0 PDE with relative ease on Apple OS X.

Quadrant shading implemented in Madeline.

2010.09.29 New Feature! - Madeline now supports quadrant shading of icons as an alternative to gray or color series shading. To use this feature, pass "--quadrantshading" or "-q" as a command line argument. The first "Affected" field encountered in the data set will be used. Any additional "Affected" fields will be ignored. Integer codes in the range from 0-15 inclusive produce the quadrant shaded patterns shown in the table below.

Note that zero produces an unshaded pattern. Non-integer codes as well as integer codes outside of the range 0-15 will simply be displayed in the middle of the icon without a shading pattern. This is illustrated in the pedigree above where:

  • The shading code for individual 17 is a zero
  • The code for individual 16 is "16" for which no shading pattern exists
  • The code for individual 18 is a missing value, and thus a dot is printed
  • The code for individual 19 is the letter "I" which is thus printed as shown
Quadrant shading patterns.

By default Madeline uses either shades of gray or bichromatic color series to indicate different levels of categorical affection variables. The gray and color shading models are useful for interactive pedigree displays such as might be encountered in a web applications. However for publication purposes, researchers often want to use quadrant shading patterns or hatching patterns to display levels of a categorical variable such as affection status. This new feature allows users to employ quadrant shading patterns. Hatching patterns are not supported. Also note that at the current time the program does NOT produce a legend when the quadrant shading option is specified.

Google plugin brings Madeline web app to IE.

2009.09.23 - Our experimental web-based Madeline service now works in all modern browsers, now including Internet Explorer versions 6, 7 and 8 thanks to Google's new Chrome Frame plugin. This Google plugin adds advanced features required by the Madeline web application that are missing from Microsoft's Internet Explorer series of browsers. Using Madeline's web service in other browsers such as Firefox, Safari, Google Chrome, and Opera does not require a plugin.

Support for display of adoptions

2009.05.23 New Feature! - Madeline 2.0 PDE now draws curved connectors in the background showing the placement of children adopted by relatives in a pedigree. Madeline 2.0 uses the Pedigree Standardization Task Force (PSTF) recommended graphics for children who are "adopted in". For showing "adopted out", Madeline uses square brackets that face outward. In addition, Madeline identifies "adopted in" children with individual ids prefixed with a plus sign, "+" while "adopted out" individual ids are prefixed with a negative sign, "-".

OpenHelix Tutorials

2009.05.22 - OpenHelix, LLC, has published a web tutorial on Madeline 2.0 PDE. OpenHelix provides on-demand multimedia narrated tutorials on a large number of popular free web-based bioinformatics tools. We are honored that OpenHelix decided to include Madeline 2.0 PDE as part of their suite of online tutorials.

Pedigree showing curved connectors.

2009.05.22 - New Feature! - Madeline 2.0 PDE now draws curved connectors in the background between individuals who are drawn more than once on a graph.

In the past, such individuals were only marked with unique indentifying letters, "A", "B", "C", etc. Tracking down matching individuals on large or complex graphs could be time-consuming. The new background connectors make large and complex graphs easier to read and understand with much less effort.

Pedigree showing PSTF-standard graphics for sterile and infertile individuals

2009.05.20 - New Feature! - Madeline 2.0 PDE now supports the display sterile and infertile individuals using PSTF-recommended graphics. To display sterile individuals, include a column called Sterility in the data file. To display infertile individuals, include a column called Infertility in the data file. Then simply include labels such as "azoospermia" or "tubal ligation" in the appropriate column for the relevant individuals. Labels will appear in small type below the symbols as shown in the pedigree above. Leave these columns blank (or containing the standard dot "." as a missing symbol) for fertile individuals.

Pedigree showing divorced, separated, and other relationship-ended couples

2009.05.12 - New Feature! - Madeline 2.0 PDE now supports the display of divorced (double-slash), separated (single slash), and other relationship-ended (squiggle slash) couples. To use this feature, simply include a column called RelationshipEnded in the data file.

Since individuals can have multiple partners, be sure to mark both individuals of a pair. For example, mark divorced couples using D or divorced. Mark separated couples using S or separated. If the reason why a relationship ended is unknown, or if the relationship represents a casual relationship which has ended, you can use any non-missing label of your choosing. A general label such as Y or yes is sufficient.

In order to indicate multiple relationship breakups such as is shown in the example above, we mark individual m103 with a generic label Y as shown, and then mark his partners respectively with one of the more specific labels (i.e., D for m106 or S for m105). When more specific information is not available, or the relationship represents a casual relationship which has ended, then we just use a generic label such as Y (m113).

The Madeline 2.0 Pedigree Drawing Engine is a pedigree drawing program designed to handle large and complex pedigrees with an emphasis on readability and aesthetics. Although the program takes inspiration from Madeline v. 0.935, the Madeline 2.0 Pedigree Drawing Engine, or just Madeline 2.0 for short, is in fact a completely new and different program written from scratch by Ed Trager, Ritu Khanna, and Adrian Marrs.

For complex pedigrees we use a hybrid algorithm in which consanguinous loops are drawn as cyclic graphs whenever possible, but we resort to acyclic graphs when matings can no longer be connected without line crossings. A similar hybrid approach is used to avoid line crossings for matings between far-flung descendants of different founding groups. Written in object-oriented C++ and released under the GNU General Public License (GPL), Madeline 2.0 reads input files specified on the command line and generates pedigree drawings without user interaction. Pedigree output in scalable vector graphics (SVG) format can be viewed in browsers with native SVG rendering support such as Firefox 1.5+ and Opera 9.0+, or in vector graphics editors such as Inkscape.

A Brief History

Sometime around 1996 Ed Trager began to writing a program for preparing, visualizing, and exploring human pedigree data used in genetic linkage studies. This became the program known as Madeline which remains in use by researchers worldwide. In addition to converting pedigree and marker data into various formats required by linkage analysis software, including Crimap, Genehunter, Allegro, Mendel, Merlin, PedCheck, and Simwalk2, Madeline also provides functionality for querying pedigree data sets and for drawing pedigrees. The current development version is 0.936 and the stable version is 0.935.

Madeline 0.935 remains a capable program, but it's pedigree drawing routines have many limitations because the program was originally only designed to handle single descent trees of simple nuclear families. Consanguinous loops, multiple mated individuals, and multiple founding groups often occur in the extended family pedigrees used in modern genetic studies, and much work has been invested in finding better ways to visualize these kinds of pedigrees.

In the Madeline 2.0 pedigree drawing engine, we have tried to create a much more robust pedigree drawing engine to address the limitations of the older program and to provide the worldwide research community with a better tool for pedgiree visualization.

Find Out More

Click on the following resources to find out more about Madeline 2.0:

Fun Facts About Madeline 2.0 from Ohloh

Using Madeline 2.0 on the Web

If you are using a web browser with the ability to render SVG graphics natively (currently this means Firefox 1.5+ or Opera 9.0+), then you can use our interactive public web service:

Madeline 2.0 Web Service

Please note that this is currently an experimental service. By using this service, you agree to use at your own risk as there is no warranty of performance or protection against data loss.

Getting Madeline 2.0

Checking out code from the Subversion Repository

We recommend that you check out Madeline 2.0 from our Sourceforge project Subversion repository using a command such as the following:

svn co https://madeline2.svn.sourceforge.net/svnroot/madeline2 madeline2

Checking out the code from the Subversion repository guarantees that you will be getting the latest code and access to the most recent features and bug fixes.

Downloading Stable Releases

At the current time Madeline 2.0 is under rapid development. We therefore recommend you check out the latest code from our Subversion repository.


For more information, contact the developers: