Skip to main content

A pedigree visualization tool based on dot format and visualized by graphviz

Project description

GraphPed: a novel graph-based visualization method for large and complex pedigrees

author: Yin Huang

citation:

Install

pip install graphped

How to use

1. In command line

!GraphPed -h
    1. standard pedigrees in the ped file
GraphPed -p data/example_fam.ped -o data/cli/ -f pdf
    1. extended pedigrees in the ped file
GraphPed -p data/example_fam_ext.ped -o data/cli/ -f svg -a data/default.yaml 

2.In jupyter notebook

from graphped.plot import *
fam=readped('data/example_fam.ped')
plotped(fam)

Or

show(GraphPed(fam))

GraphPed function can plot all the pedigrees in the fam dataframe.

Adding self-defined attributes. the number of traits in the input file should match with the number of traits in the attribute yaml file.

attrs=load_attributes('data/default.yaml')
famext=readped('data/example_fam_ext.ped',attrs)
plotped(famext,attrs)

Write to output folder with pdf format

plotped(famext,attrs,output='data/jpn',format='pdf')

Or output multiple pedigrees.

GraphPed(famext,attrs,output='data/jpn',format='pdf')

Tutorial

Setting the attribute yaml file

For one trait ped file, if the trait values are affected status, which should be coded as follows: -9 or 0 is missing,1 is unaffected, and 2 is affected. you don’t need to set the attribute file. Otherwise, you need to set your attribute file by following:

The format of the attribute of yaml file

trait name:
    attribute name:
        (the pairs of tait value and attribute value)
        tait value1: attribute value1
        tait value2: attribute value2
        ...

If you have more than one traits, you need to set each trait separately in the yaml file. The following is an example.

trait1:
    fillcolor:
        1: 'white'
        2: 'dimgrey'
        -9: 'aquamarine3'

trait2:
    style:
        True: filled,setlinewidth(4)
        False: filled
    

trait3:
    fontcolor:
        True: darkorange
        False: black
attrs=load_attributes('data/default.yaml')
attrs

Two example pedigrees

one is standard, one is extended with 3 traits.

Standard ped file

Fam F4  P3  F1  1   1
Fam F3  P3  F1  2   1
Fam F2  P3  F1  2   1
Fam F1  P1  P2  2   2
Fam P3  0   0   1   2
Fam P1  0   0   1   -9
Fam P2  0   0   2   -9
fam=readped('data/example_fam.ped')
fam
plotped(fam)
plotped(fam)

Extended ped file

Fam1    F4  P3  F1  1   1   True    False
Fam1    F3  P3  F1  2   1   True    True
Fam1    F2  P3  F1  2   1   True    False
Fam1    F1  P1  P2  2   2   True    False
Fam1    P3  0   0   1   2   True    False
Fam1    P1  0   0   1   -9  False   True
Fam1    P2  0   0   2   -9  False   True
famext=readped('data/example_fam_ext.ped',attrs)
famext
plotped(famext,attrs)
dots=GraphPed(fam)
show(dots)

Write out plots

plotped(fam,output='data/exampleplots',format='png')

Show the plot from data/exampleplots/Fam.png

Real data examples

all_fam=readped('data/Fig_2_3_fam.ped')
all_fam

Fig.1 The workflow of GraphPed

show workflow

Fig.2 The pedigrees of complex families

plotped(all_fam[all_fam.fid=='25_2'])

Fig.S2 The largest pedigree in ADSP

plotped(all_fam[all_fam.fid=='4_649'])

Fig.3 The pedigrees with incorrect information

plotped(all_fam[all_fam.fid=='10R_R99'])

Fig.4 The pedigrees with multiple phenotypes

self-defined multiple-trait yaml

ad:
    fillcolor:
        1: 'white'
        2: 'dimgrey'
        -9: 'aquamarine3'

vcf:
    style:
        True: filled,setlinewidth(4)
        False: filled
    

trim:
    fontcolor:
        True: darkorange
        False: black
attrs=load_attributes('data/self_defined_mutiple_traits.yaml')
ped=readped('data/Fig4_fam_ext.ped',attrs)
ped
plotped(ped,attrs)

Show multiple figures with self-defined attributes

self-defined single-trait yaml

ad:
    fillcolor:
        1: 'white'
        2: 'dimgrey'
        -9: 'aquamarine3'
attr=load_attributes('data/self_defined_single_trait.yaml')
all_fam=readped('data/Fig_2_3_fam.ped',attr)
all_fam
dots=GraphPed(all_fam,attr)
show(dots)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphped-0.0.2.tar.gz (13.0 kB view hashes)

Uploaded Source

Built Distribution

graphped-0.0.2-py3-none-any.whl (10.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page