Collection, update and visualization of family history (pedigree data) are of crucial importance for genetic counseling and genetic research on families with inherited diseases. A variety of pedigree-drawing tools including stand-alone and web-based programs have been developed. These programs fall into two classes: those that generate pedigree diagrams from the input family data, and those that provide graphical interface for users to draw pedigree directly.
For the first type of programs such as Madeline 2.0 [1] and CraneFoot [2], family data is stored and manipulated in a multi-column table, in which each line is used to describe information for each family member, including healthy ones. However, only limited information for healthy members is needed to build a pedigree, and healthy members usually constitute the vast majority in most families under study. Moreover, even for the information such as proband status, the table needs one column to label it although there is only one proband member in the whole family. Therefore, such a multi-column table dramatically increases the size and decrease the readability of the data file, and manual creation of these files therefore becomes time consuming and error prone.
For the second type of programs, drawing on the graphical interface improves the user-friendliness, but the users have no option to save their state files in some programs, or in some other programs they have to save their graphical state files within the registered account, which makes the future update inconvenient. Some recent programs such as pedigreejs [3] and panogram (http://panogram.github.io/panogram/) made improvements and allow users to draw pedigree on the graphical interface and export the family data file for future update. But these data files are designed only for the programs and not readable for users, therefore users have to import the data file back into the program and work on graphical interface for any change or update. In many cases, another data set understandable for users still needs to be maintained separately.
A recent survey showed that nearly half of cancer genetic counselors (CGCs) were considering adopting or changing their pedigree drawing tool [4], and meanwhile they were concerned about budget and compatibility of the new tool to their old data [5]. Therefore, there is a need to provide freely-accessible pedigree-drawing tools with satisfying user-friendliness and compatibility for the geneticists and counselors. The difference in the structure of the family data in which each line represents an individual and the structure of the pedigree diagram in which each line represents one generation forms an obvious obstacle between pedigree datasets and diagrams, leading to different limitations of the two types of programs as mentioned above. Here we overcome these limitations through introducing a novel family data format and merging the two types of programs into one, and release a brand new pedigree-drawing web server, PedigreeOnline.
THE PedigreeOnline WEB SERVER
PedigreeOnline is a lightweight pedigree-drawing web server of considerable user-friendliness. It is written in JScript, and works with any web-browser supporting HTML5. PedigreeOnline provides a convenient and free access to all final users, and no registration is needed. PedigreeOnline is featured with a novel family data format, two-way interactive mode between family data and pedigree, and compatibility to other family data formats.
The Pedigree-Like-Layout (PLL) family data format
PedigreeOnline has two windows: family data window and pedigree drawing window. To show the family data consicely within the on-screen window and make data easy for editing, we've introduced a novel pedigree-like-layout (PLL) family data format. This PLL format is absolutely different from any other previously reported family data format in which each line represents one individual. In the pedigree-like-layout format, as its name suggests, family information is arranged with plain text following the structure of a pedigree, that is, different generations are arranged vertically, and information of the same generation is depicted in one line. In the PLL format (Fig. 1A), from top to bottom, each line starting with the signal "#" stands for one generation. A typical generation line is composed of kinship information and phenotype information. The kinship information lists all members of this generation in this way: siblings from the same parent are placed within one parenthesis, with their parents names (father’s name on the left, mother’s name on the right) designated before the “:” sign. If the parents are close relatives, their names are connected with "-", otherwise with "+". The kinship information and phenotype information are separated with the "/" sign. In phenotype part, individuals with certain phenotypes are explicitly listed after the corresponding phenotype code (Fig. 1B). Different phenotype fields are separated with the ";" sign. After the generation data block, remark information is given after the "*" sign. Such a novel description method drastically decreases the size of the data, and the family data can be easily shown and edited within the on-screen window. Moreover, because family relationship is represented in a more straightforward way, data readability is effectively improved. Because the family data is small in size and the data arrangement directly reflects the pedigree layout, updating information for an existed family such as adding a new member or changing siblings order can be easily accomplished. In contrast, in the traditional multi-column table, updating family information such as adding a new member needs to be very careful, especially when the new entry is far from her/his parents and siblings in space.
Two-way interactive connections between family data and pedigree diagram
PedigreeOnline has two major windows: the family-data window and the graphical diagram window. Through introducing the concise and friendly PLL family data format and taking advantage of the HTML5 canvas element in development, we build two-way interactive connections between the family data and the graphical interface (Fig. 2). Users could type or edit the PLL family data within the family-data window, and build a pedigree diagram through a simple click. They could also work on the graphical interface, and any change on the pedigree diagram causes synchronized change in the family data. Users could switch very easily between these two windows at any time when drawing a pedigree.
The algorithm for symbol layout in pedigree diagram
In PedigreeOnline, the symbol layout is calculated and adjusted anytime when a new member is added. To get a beautiful symbol layout, we’ve used the algorithm shown in Fig. 3. In the first step, positions of symbols of the latest generation are calculated (Fig. 3A). These symbols are grouped by parents and arranged in the order of birth from left (youngest) to right (oldest), with equal space leaving to every symbol. Above the siblings in the same family, horizontal lines and vertical lines connects these symbols. Calculate the center of horizontal (sibling) lines in same family, based on which symbols positions of their parents can be determined. In the second step, positions of symbols of the previous generation are calculated. Those individuals without children are added, and the siblings in this generation are also arranged in the order of birth from left (youngest) to right (oldest). Positions of the added symbols are determined by the position of the first parent symbol with children. If there is enough space for the added individuals, no movement is necessary (Fig. 3B). Otherwise some parents together with their children need to move the same distance to the right to avoid any overlap (Fig. 3C). Then repeat the the second step, until the first generation.
Compatibility with other family data formats
In addition to this new PLL family data format, the common Linkage format and comma-separated value (CSV) format can also be loaded into PedigreeOnline for pedigree drawing, after transforming to the PLL format through the interface provided. Moreover, due to the significance of the Linkage format in genetic analysis, PedigreeOnline also provides a function to transform our PLL data to the Linkage format. Such a two-way transform function dramatically improves the flexibility and compatibility of the software.