GitHub Repo for the Genotype to Phenotype Task Team
Please read more in our Wiki
GitHub Repo for the Genotype to Phenotype Task Team
License: Apache License 2.0
GitHub Repo for the Genotype to Phenotype Task Team
Please read more in our Wiki
The current API doesn't appear to support studies investigating the relationship between multiple disorders (eg. PMID:25158072).
Changing the PhenotypeInstance record
from
OntologyTerm type;
to
{array } type;
would enable this.
In genotype to phenotype datasets, we often see a variant or genotype being linked to a disease along with a statement of clinical significance. For example, a variant may fall on a spectrum of benign to pathogenic for a given disease. Another example is a variant and treatment having a response to a given disease (see CIViC).
In these cases, I assume we want to conflate the concept of a phenotype and disease, so the disease would be stored in the PhenotypeInstance record. However, I'm not aware of a place to put the clinical significance of the association (benign, pathogenic, sensitive to drug). Would it make sense to add this to a field in the FeaturePhenotypeAssociation?
Other parts of the API use the concept of the Dataset as a container for sets of records - here that would be FeaturePhenotypeAssociation's . This is used for access control and limiting queries to results with the same provenance, so would be useful here too.
While ga4gh/schema was updated to support our schemas the ga4gh/server is ~ 15 commits behind the schema project. In order to proceed, we need to work with the community to help restart this effort. I'd like to contribute to the server project with an implementation of /genotypephenotype/search backed with ohsu's cancer genomics database ontology. I've commented on the PR #379, and will track progress.
On the July 9 G2P team call, the topic of a comparison of ClinGen to G2P data models was raised. Initial notes captured on wiki here.
Is this something that is applicable for our group? Please comment/vote below.
MS has questions on how to navigate data directory /mnt/lustre1/BeatAML : 8.7TB
@rnpandya , can you itemize?
As you know, we have been trying to re-introduce the g2p schemas back into the mainline of the ga4gh schema repository.
A change in policy is before any schema changes are made they must be accompanied by a reference server implementation and schema documentation
"It has become apparent that the documentation for the GA4GH schemas is not sufficient. Mark Diekhans has in response been developing a documentation branch which aims to give a complete description of the rational, use cases, semantics and high-level tutorial for the APIs. However the effort needs work. "
This second requirement was discussed recently by the reference server team. In order to break out of this chicken and egg scenario, we (OHSU) will create a document along these lines we can use participation by the larger community. For a starting point, I had some developer documentation for the code plus applicable excerpts from the schema group's github discussions.
We would like to pull this into a concise document with a few high level use case examples.
Your help is invaluable
Supporting query by id string only:
curl 'http://193.62.52.232:8082/ga4gh/genotypephenotype/search' -H 'Content- type:application/json' \-H 'Accept:application/json' -X POST -d '{ "feature":[], "phenotype": ["http://www.ebi.ac.uk/efo/EFO_0000398"], "evidence" : [], "pageSize": 10 }'
curl 'http://193.62.52.232:8082/ga4gh/genotypephenotype/search' -H 'Content- type:application/json' \-H 'Accept:application/json' -X POST -d '{ "feature":["rs6920220", "rs886774"], "phenotype": [], "evidence" : [], "pageSize": 10 }'
curl 'http://193.62.52.232:8082/ga4gh/genotypephenotype/search' -H 'Content- type:application/json' \-H 'Accept:application/json' -X POST -d '{ "feature": ["ENSG00000115286"], "phenotype": [], "evidence" : [], "pageSize": 10 }'
curl 'http://193.62.52.232:8082/ga4gh/genotypephenotype/search' -H 'Content- type:application/json' \-H 'Accept:application/json' -X POST -d '{ "feature":[], "phenotype": [], "evidence" : ["PMID:19684604", "PMID:19915572"], "pageSize": 10 }'
AssociationSet
Track implementation of meta data minimum BioSample and Individual model
"As a G2P engineer, in order to create a Literome implementation , it would be useful to have a mapping defined between the request and response payloads of the '/genotypephenotype/search' and literome gwas endpoints
There was also a comment that there was activity in this area by the MatchMakerExchange team.
Team:
The schemas have received feedback that the semantics of SearchGenotypePhenotypeRequest are very unclear. In this section of the api documentation that applies to our schema, I've added some examples and guidance.
We are proposing deprecating the un-scoped string that is used in the query and replacing it with a scoped TermQuery
. We hope to introduce this, along with adding a placeholder for external identifiers in Evidence and PhenotypeInstance along with our current pull request. Your comments are invaluable. readme
In addition, we have also been asked to consider a PhenotypeAssociation which has a wider scope; it connects evidence to entities other than Feature. Here we propose a new entrypoint that follows the modified pattern of the G2P and adds phenotype/search. This allows for discover of evidence associated with (Variant,FeatureEvent,BioSample,Individual,CallSet). Again, your comments will be useful. readme
The DWG is seeking to line up with the HL7/FHIR specification for exchanging Ehealth records, and in particular, their Genomics component which provides a means of reporting variants with optional assessed associated medical condition. I think this component bears most relevance here and so I am sharing the link below for the current interest of the G2P group and also for future reference as our APIs begin to align.
http://www.hl7.org/FHIR/2015May/observation-genetics-cg-prf-1a.html
Is this something that is applicable for our group? Please comment/vote below.
Not clear if this is an issue for our team. If inapplicable, please comment.
The G2P schema contains two classes with the same name as classes in SequenceAnnotationMethods
One in the file genotypephenotypemethods.avdl, protocol GenotypePhenotypeMethods
/** This is the response from `POST /genotypephenotype/search` expressed as JSON. */
record SearchFeaturesResponse {
/**
The list of matching FeaturePhenotypeAssociation.
*/
array<org.ga4gh.models.FeaturePhenotypeAssociation> associations = [];
...
The second one is found in sequenceAnnotationmethods.avdl
/** This is the response from `POST /features/search` expressed as JSON. */
record SearchFeaturesResponse {
/**
The list of matching annotations, sorted by start position. Annotations which
share a start position are returned in a deterministic order.
*/
array<org.ga4gh.models.Feature> features = [];
...
The avro spec is somewhat imprecise when describing this:
Record, enums and fixed are named types. Each has a fullname that is composed of two parts; a name and a namespace. Equality of names is defined on the fullname.
// then later on ...
... In this case the namespace is taken from the most tightly enclosing schema or protocol.
It would be simpler to avoid this and name the g2p class something like SearchEvidenceResponse.
The FeaturePhenotypeAssociation record needs time stamps. The new convention appears to be recordCreateTime and recordUpdateTime - is that correct @mbaudis ?
The evidence record currently only supports an evidence type and text description. Are there advanced plans to extend this?
In other parts of the API a metadata key-value pair structure is used to allow customisation in different implementations. The idea is that the API has some flexibility from the start and commonly used data types can be promoted to named fields as required.
Leaving this open for commentary/additions
Recommend: collapsing ontologySource and identifier into a single field 'ontologyURI'
During the call @mellybelly mentioned there was an yaml file to provide a mapping of commonly used sources.
Leaving open for review during our next call. If no comments at that point, we can close
There are four datatypes types for each entity [string, external identifier, ontology identifier and 'entity'].
Currently the implementation handles queries of [string, external identifier and ontology identifier].
The 'entity' query is a type of query-by-example defined in [GenomicFeatureQuery,EvidenceQuery,PhenotypeQuery]. We have not implemented them. Challenges that arose:
Recommendation: Leave the schema definitions as-is. However, leave the entity query-by-example unimplemented. Implement when demand exists with sufficient use case details.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.