Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pedigree #364

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions docs/ga4gh-interoperability.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
######################
GA4GH Interoperability
######################

.. toctree::
:maxdepth: 1

GA4GH Pedigree Standard <ga4gh-pedigree>
108 changes: 108 additions & 0 deletions docs/ga4gh-pedigree.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
.. _rsga4ghpedigree:

##############
GA4GH Pedigree
##############


The Phenopacket-schema includes an implementation of the `GA4GH Pedigree Standard <https://pedigree.readthedocs.io/en/latest/index.html>`_.
GA4GH Pedigree defines a conceptual model of individuals and their relationships to allow other standards, such as
Phenopackets to be able to create an implementation of this model using native concepts. For example, the Phenopacket
schema representation of an individual in the GA4GH Pedigree is a :ref:`rstphenopacket`.

The GA4GH Pedigree Standard enables much greater expressivity of the relationships between individuals compared to the
PED model used in the :ref:`rstfamily` message due to defining the relationships using the `Kinship ontology (KIN) <http://purl.org/ga4gh/kin.owl>`_


Data model
##########

The data model described here is transcribed from the `documentation <https://pedigree.readthedocs.io/en/latest/pedigree-model.html#pedigree>`_

Pedigree
========

.. csv-table::
:header: Field, Type, Multiplicity, Description

id, string, 1..1, External identifier for the family being investigated
narrative, string, 0..1, Summary of the pedigree resource for human interpretation
date, string, 0..1, The date the pedigree was collected or last updated as ISO full or partial date i.e. YYYY or YYYY-MM or YYYY-MM-DD
status, string, 0..1, Status of the pedigree resource collection
index_patients, string, 0..*, Identified Individual(s) in the family of a health condition of focus being investigated.
individuals, :ref:`rstphenopacket`, 0..*, Collection of Individual who are the members of this pedigree
relationships, :ref:`rstga4ghrelationship`, 0..*, Collection of Relationship between the individuals who are the members of this pedigree


index_patients
~~~~~~~~~~~~~~

A list of identifiers for the individual(s) in the family affected with the health condition being investigated. These
individuals(s) are often termed the Proband, Consultand or First Person Tested Positive.


.. _rstga4ghrelationship:

Relationship
============

.. csv-table::
:header: Field, Type, Multiplicity, Description

individual, string, 1..1, Identifier of the subject Individual; equivalent to the Biolink "subject"
relation, :ref:`rstontologyclass`, 1..1, The relationship the individual has to the relative.
relative, string, 1..1, Identifier of the relative Individual; equivalent to the Biolink "object"


individual and relative
~~~~~~~~~~~~~~~~~~~~~~~

The identifier values used in the ``individual`` and ``relative`` fields **must** match a value in the **id** element
used in the :ref:`rstindividual` ``subject`` of the phenopackets listed in the ``pedigree`` ``individuals`` field.

relation
~~~~~~~~

An :ref:`rstontologyclass` from the `KIN Ontology <http://purl.org/ga4gh/kin.owl>`_ indicating the relationship the
``individual`` has to the ``relative`` e.g. if the individual is the relative's biological mother, then relation should
be isBiologicalMotherOf [KIN:027].


Example
#######

In this example we have simplified the phenopackets to include only the minimum required information to make a pedigree.
Ordinarily there should be more fields (e.g. the :ref:`rstmetadata`) within the phenopacket.

.. code-block:: yaml

---
id: "FAM1"
narrative: "A Phenopacket GA4GH Pedigree of a trio with an affected child"
date: "2022-06-23"
indexPatients:
- "CHILD"
individuals:
- id: "1"
subject:
id: "MOTHER"
sex: "FEMALE"
- id: "2"
subject:
id: "FATHER"
sex: "MALE"
- id: "3"
subject:
id: "CHILD"
relationships:
- individualId: "MOTHER"
relation:
id: "KIN:027"
label: "isBiologicalMother"
relativeId: "CHILD"
- individualId: "FATHER"
relation:
id: "KIN:028"
label: "isBiologicalFather"
relativeId: "CHILD"

2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ use `this link <https://phenopacket-schema.readthedocs.io/en/1.0.0/>`_.
recommended-ontologies
working
examples

ga4gh-interoperability
82 changes: 0 additions & 82 deletions docs/pharmaceutical-treatment.rst

This file was deleted.

40 changes: 0 additions & 40 deletions docs/version2.rst

This file was deleted.

3 changes: 2 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -212,8 +212,9 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<version>3.0.0-M7</version>
<configuration>
<useModulePath>false</useModulePath>
<excludes>
<exclude>**/FooTest.java</exclude>
</excludes>
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@

exports org.ga4gh.vrs.v1;
exports org.ga4gh.vrsatile.v1;

exports org.ga4gh.pedigree.v1;
}
49 changes: 49 additions & 0 deletions src/main/proto/ga4gh/pedigree/v1/pedigree.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
syntax = "proto3";

package org.ga4gh.pedigree.v1;

import "phenopackets/schema/v2/phenopackets.proto";
import "phenopackets/schema/v2/core/base.proto";

option java_multiple_files = true;
option java_package = "org.ga4gh.pedigree.v1";

// A GA4GH Pedigree - equivalent to the Phenopacket::Family message
message Pedigree {

// External identifier for the family being investigated
string id = 1;

// Summary of the pedigree resource for human interpretation
string narrative = 2;

// The date the pedigree was collected or last updated, as ISO full or partial date, i.e. YYYY, YYYY-MM, or YYYY-MM-DD
string date = 3;

// Status of the pedigree resource collection
string status = 5;

// Identified Individual in the family of a health condition of focus being investigated: Proband, Consultand,
// First Person Tested Positive
repeated string index_patients = 6;

// Collection of Individual who are the members of this pedigree
repeated org.phenopackets.schema.v2.Phenopacket individuals = 7;

// Collection of Relationship between the individuals who are the members of this pedigree
repeated Relationship relationships = 8;

}

message Relationship {
// Identifier of the subject Individual; equivalent to the Biolink "subject"
string individual_id = 1;

// The relationship the individual has to the relative (e.g., if the individual is the relative's biological mother,
// then relation could be isBiologicalMotherOf [KIN:027]).
// Terms should come from the KIN Ontology (http://purl.org/ga4gh/kin.owl).
org.phenopackets.schema.v2.core.OntologyClass relation = 2;

// Identifier of the relative Individual; equivalent to the Biolink "object"
string relative_id = 3;
}
Loading