{"action":"created","comment":{"url":"https://api.github.com/repos/ga4gh/schemas/pulls/comments/78448042","id":78448042,"diff_hunk":"@@ -0,0 +1,159 @@\n+syntax = \"proto3\";\n+\n+package ga4gh;\n+\n+import \"ga4gh/metadata.proto\";\n+import \"google/protobuf/struct.proto\";\n+\n+/*\n+This protocol defines the associations between genotype\n+and phenotype (G2P).  Associations can be made as a\n+result of literature curation, computational modeling,\n+inference, etc., and modeled and shared using this schema.\n+\n+\n+Here, we follow the dogma of:\n+      Genotype + Environment = Phenotype\n+\n+Where a G2P association is between the G(enotype) in the context of\n+some E(environment), which gives rise to a P(henotype). These\n+associations have further evidence, provenance, and attribution.\n+We leverage the GenomicFeature in the sequenceAnnotation schema here\n+as it can accomodate any genomic feature from a single nucleotide variation\n+(SNV), up through a gene, and/or complex rearrangements.  Each can\n+be modeled as genomic features, and generally linked to a phenotype.\n+Collections of these features can represent a genotype at different levels\n+of completeness.  Therefore, we can represent single allelic variation,\n+allelic complement, and multiple variants in a genotype that can each or\n+collectively be associated with a phenotype.\n+To enable standardized integration, this schema relies heavily on\n+OntologyTerms, for typing phenotype, genomic features, and levels\n+of evidence.  Suggested ontologies to leverage include (with browser links):\n+\n+  - Human Phenotype Ontology (HPO): http://www.ontobee.org/browser/index.php?o=hp\n+  - Disease Ontology (DO): http://purl.obolibrary.org/obo/DOID_4\n+  - Sequence Ontology (SO): http://www.sequenceontology.org/browser/\n+  - Evidence Code Ontology (ECO): http://www.ontobee.org/browser/index.php?o=ECO\n+  - Phenotypic Qualities (PATO): http://www.ontobee.org/browser/index.php?o=PATO\n+*/\n+\n+// The top level container for phenotype association data.\n+message PhenotypeAssociationSet {\n+    // The phenotype association set ID.\n+    string id = 1;\n+\n+    // The phenotype association set name.\n+    string name = 2;\n+\n+    // The ID of the dataset this phenotype association set belongs to.\n+    string dataset_id = 3;\n+\n+    // Optional additional information for this phenotype association set.\n+    map<string, google.protobuf.ListValue> info = 4;\n+}\n+\n+// The context in which a genotype gives rise to a phenotype.\n+// This is fairly open-ended; as a stub we have a simple ontology term.\n+// For example, a controlled term for a drug, or perhaps an instance of a\n+// complex environment including temperature and air quality, or perhaps\n+// the anatomical environment (gut vs tissue type vs whole organism).\n+message EnvironmentalContext {\n+    // The Environment ID.\n+    string id = 1;\n+\n+    // Examples of some environment types could be drawn from:\n+    // Ontology for Biomedical Investigations (OBI): http://purl.obofoundry.org/obo/obi/browse\n+    // Chemical Entities of Interest (ChEBI): http://www.ontobee.org/browser/index.php?o=chebi\n+    // Environment Ontology (ENVO):  http://www.ontobee.org/browser/index.php?o=ENVO\n+    // Anatomy (Uberon): http://www.ontobee.org/browser/index.php?o=uberon\n+    OntologyTerm environment_type = 2;\n+\n+    // A textual description of the environment. This is used to complement\n+    // the structured description in the environmentType field\n+    string description = 3;\n+}\n+\n+// An association to a phenotype and related information.\n+// This record is intended primarily to be used in conjunction with variants, but\n+// the record can also be composed with other kinds of entities such as diseases\n+message PhenotypeInstance {\n+    // The Phenotype ID.\n+    string id = 1;\n+    \n+    // HPO is recommended\n+    OntologyTerm type = 2;\n+\n+    // PATO is recommended.  Often this qualifier might be for abnormal/normal,\n+    // or severity.\n+    // For example, severe: http://purl.obolibrary.org/obo/PATO_0000396\n+    // or abnormal: http://purl.obolibrary.org/obo/PATO_0000460\n+    repeated OntologyTerm qualifier = 3;\n+\n+    // HPO is recommended, for example, subclasses of\n+    // http://purl.obolibrary.org/obo/HP_0011007\n+    // TODO: also allow quantitative recording?\n+    OntologyTerm age_of_onset = 4;\n+","path":"src/main/proto/ga4gh/genotype_phenotype.proto","position":null,"original_position":96,"commit_id":"909b0601acdf78f4bc9bec179f76976e1501d924","original_commit_id":"11402061293da9dbd77327c7439f4ce7dd60c086","user":{"login":"mbaudis","id":675030,"avatar_url":"https://avatars.githubusercontent.com/u/675030?v=3","gravatar_id":"","url":"https://api.github.com/users/mbaudis","html_url":"https://github.com/mbaudis","followers_url":"https://api.github.com/users/mbaudis/followers","following_url":"https://api.github.com/users/mbaudis/following{/other_user}","gists_url":"https://api.github.com/users/mbaudis/gists{/gist_id}","starred_url":"https://api.github.com/users/mbaudis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbaudis/subscriptions","organizations_url":"https://api.github.com/users/mbaudis/orgs","repos_url":"https://api.github.com/users/mbaudis/repos","events_url":"https://api.github.com/users/mbaudis/events{/privacy}","received_events_url":"https://api.github.com/users/mbaudis/received_events","type":"User","site_admin":false},"body":"@bwalsh That removes the inconsistencies I mentioned (link, quantitative format example) & fixes the commit.\r\n\r\nHowever, we still need a schema-wide way to represent ages in both quantitative (more important!) and qualitative ways. I see 2 options:\r\n\r\n* separate attributes (`age...` + `age_classe...`)\r\n* `Age` object with both ontology and ISO (and again API/user handled preference/parsing)\r\n\r\nUnfortunately one cannot automatically derive age classes unambiguously, and also quantitative values are in every way superior. But then, lots of resources will only have qualitative values attached ...","created_at":"2016-09-12T20:28:22Z","updated_at":"2016-09-12T20:28:22Z","html_url":"https://github.com/ga4gh/schemas/pull/698#discussion_r78448042","pull_request_url":"https://api.github.com/repos/ga4gh/schemas/pulls/698","_links":{"self":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/comments/78448042"},"html":{"href":"https://github.com/ga4gh/schemas/pull/698#discussion_r78448042"},"pull_request":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/698"}}},"pull_request":{"url":"https://api.github.com/repos/ga4gh/schemas/pulls/698","id":82584440,"html_url":"https://github.com/ga4gh/schemas/pull/698","diff_url":"https://github.com/ga4gh/schemas/pull/698.diff","patch_url":"https://github.com/ga4gh/schemas/pull/698.patch","issue_url":"https://api.github.com/repos/ga4gh/schemas/issues/698","number":698,"state":"open","locked":false,"title":"G2p","user":{"login":"dcolligan","id":7422120,"avatar_url":"https://avatars.githubusercontent.com/u/7422120?v=3","gravatar_id":"","url":"https://api.github.com/users/dcolligan","html_url":"https://github.com/dcolligan","followers_url":"https://api.github.com/users/dcolligan/followers","following_url":"https://api.github.com/users/dcolligan/following{/other_user}","gists_url":"https://api.github.com/users/dcolligan/gists{/gist_id}","starred_url":"https://api.github.com/users/dcolligan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcolligan/subscriptions","organizations_url":"https://api.github.com/users/dcolligan/orgs","repos_url":"https://api.github.com/users/dcolligan/repos","events_url":"https://api.github.com/users/dcolligan/events{/privacy}","received_events_url":"https://api.github.com/users/dcolligan/received_events","type":"User","site_admin":false},"body":"Merge of G2P into master\r\n\r\n@bwalsh ","created_at":"2016-08-24T17:30:20Z","updated_at":"2016-09-12T20:28:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3c724c9fa09a0a822a63f1f5c06dafa64ee5b452","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ga4gh/schemas/pulls/698/commits","review_comments_url":"https://api.github.com/repos/ga4gh/schemas/pulls/698/comments","review_comment_url":"https://api.github.com/repos/ga4gh/schemas/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ga4gh/schemas/issues/698/comments","statuses_url":"https://api.github.com/repos/ga4gh/schemas/statuses/909b0601acdf78f4bc9bec179f76976e1501d924","head":{"label":"ga4gh:g2p","ref":"g2p","sha":"909b0601acdf78f4bc9bec179f76976e1501d924","user":{"login":"ga4gh","id":6921777,"avatar_url":"https://avatars.githubusercontent.com/u/6921777?v=3","gravatar_id":"","url":"https://api.github.com/users/ga4gh","html_url":"https://github.com/ga4gh","followers_url":"https://api.github.com/users/ga4gh/followers","following_url":"https://api.github.com/users/ga4gh/following{/other_user}","gists_url":"https://api.github.com/users/ga4gh/gists{/gist_id}","starred_url":"https://api.github.com/users/ga4gh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ga4gh/subscriptions","organizations_url":"https://api.github.com/users/ga4gh/orgs","repos_url":"https://api.github.com/users/ga4gh/repos","events_url":"https://api.github.com/users/ga4gh/events{/privacy}","received_events_url":"https://api.github.com/users/ga4gh/received_events","type":"Organization","site_admin":false},"repo":{"id":17925227,"name":"schemas","full_name":"ga4gh/schemas","owner":{"login":"ga4gh","id":6921777,"avatar_url":"https://avatars.githubusercontent.com/u/6921777?v=3","gravatar_id":"","url":"https://api.github.com/users/ga4gh","html_url":"https://github.com/ga4gh","followers_url":"https://api.github.com/users/ga4gh/followers","following_url":"https://api.github.com/users/ga4gh/following{/other_user}","gists_url":"https://api.github.com/users/ga4gh/gists{/gist_id}","starred_url":"https://api.github.com/users/ga4gh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ga4gh/subscriptions","organizations_url":"https://api.github.com/users/ga4gh/orgs","repos_url":"https://api.github.com/users/ga4gh/repos","events_url":"https://api.github.com/users/ga4gh/events{/privacy}","received_events_url":"https://api.github.com/users/ga4gh/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ga4gh/schemas","description":"Work on data models and APIs for Genomic data.","fork":false,"url":"https://api.github.com/repos/ga4gh/schemas","forks_url":"https://api.github.com/repos/ga4gh/schemas/forks","keys_url":"https://api.github.com/repos/ga4gh/schemas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ga4gh/schemas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ga4gh/schemas/teams","hooks_url":"https://api.github.com/repos/ga4gh/schemas/hooks","issue_events_url":"https://api.github.com/repos/ga4gh/schemas/issues/events{/number}","events_url":"https://api.github.com/repos/ga4gh/schemas/events","assignees_url":"https://api.github.com/repos/ga4gh/schemas/assignees{/user}","branches_url":"https://api.github.com/repos/ga4gh/schemas/branches{/branch}","tags_url":"https://api.github.com/repos/ga4gh/schemas/tags","blobs_url":"https://api.github.com/repos/ga4gh/schemas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ga4gh/schemas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ga4gh/schemas/git/refs{/sha}","trees_url":"https://api.github.com/repos/ga4gh/schemas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ga4gh/schemas/statuses/{sha}","languages_url":"https://api.github.com/repos/ga4gh/schemas/languages","stargazers_url":"https://api.github.com/repos/ga4gh/schemas/stargazers","contributors_url":"https://api.github.com/repos/ga4gh/schemas/contributors","subscribers_url":"https://api.github.com/repos/ga4gh/schemas/subscribers","subscription_url":"https://api.github.com/repos/ga4gh/schemas/subscription","commits_url":"https://api.github.com/repos/ga4gh/schemas/commits{/sha}","git_commits_url":"https://api.github.com/repos/ga4gh/schemas/git/commits{/sha}","comments_url":"https://api.github.com/repos/ga4gh/schemas/comments{/number}","issue_comment_url":"https://api.github.com/repos/ga4gh/schemas/issues/comments{/number}","contents_url":"https://api.github.com/repos/ga4gh/schemas/contents/{+path}","compare_url":"https://api.github.com/repos/ga4gh/schemas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ga4gh/schemas/merges","archive_url":"https://api.github.com/repos/ga4gh/schemas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ga4gh/schemas/downloads","issues_url":"https://api.github.com/repos/ga4gh/schemas/issues{/number}","pulls_url":"https://api.github.com/repos/ga4gh/schemas/pulls{/number}","milestones_url":"https://api.github.com/repos/ga4gh/schemas/milestones{/number}","notifications_url":"https://api.github.com/repos/ga4gh/schemas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ga4gh/schemas/labels{/name}","releases_url":"https://api.github.com/repos/ga4gh/schemas/releases{/id}","deployments_url":"https://api.github.com/repos/ga4gh/schemas/deployments","created_at":"2014-03-20T00:13:40Z","updated_at":"2016-08-29T21:49:33Z","pushed_at":"2016-09-12T20:11:19Z","git_url":"git://github.com/ga4gh/schemas.git","ssh_url":"git@github.com:ga4gh/schemas.git","clone_url":"https://github.com/ga4gh/schemas.git","svn_url":"https://github.com/ga4gh/schemas","homepage":"http://ga4gh.org/#/api","size":16123,"stargazers_count":186,"watchers_count":186,"language":"Protocol Buffer","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":103,"mirror_url":null,"open_issues_count":183,"forks":103,"open_issues":183,"watchers":186,"default_branch":"master"}},"base":{"label":"ga4gh:master","ref":"master","sha":"65acb2a9671fc0b18d0eec7c869087697ae12a94","user":{"login":"ga4gh","id":6921777,"avatar_url":"https://avatars.githubusercontent.com/u/6921777?v=3","gravatar_id":"","url":"https://api.github.com/users/ga4gh","html_url":"https://github.com/ga4gh","followers_url":"https://api.github.com/users/ga4gh/followers","following_url":"https://api.github.com/users/ga4gh/following{/other_user}","gists_url":"https://api.github.com/users/ga4gh/gists{/gist_id}","starred_url":"https://api.github.com/users/ga4gh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ga4gh/subscriptions","organizations_url":"https://api.github.com/users/ga4gh/orgs","repos_url":"https://api.github.com/users/ga4gh/repos","events_url":"https://api.github.com/users/ga4gh/events{/privacy}","received_events_url":"https://api.github.com/users/ga4gh/received_events","type":"Organization","site_admin":false},"repo":{"id":17925227,"name":"schemas","full_name":"ga4gh/schemas","owner":{"login":"ga4gh","id":6921777,"avatar_url":"https://avatars.githubusercontent.com/u/6921777?v=3","gravatar_id":"","url":"https://api.github.com/users/ga4gh","html_url":"https://github.com/ga4gh","followers_url":"https://api.github.com/users/ga4gh/followers","following_url":"https://api.github.com/users/ga4gh/following{/other_user}","gists_url":"https://api.github.com/users/ga4gh/gists{/gist_id}","starred_url":"https://api.github.com/users/ga4gh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ga4gh/subscriptions","organizations_url":"https://api.github.com/users/ga4gh/orgs","repos_url":"https://api.github.com/users/ga4gh/repos","events_url":"https://api.github.com/users/ga4gh/events{/privacy}","received_events_url":"https://api.github.com/users/ga4gh/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ga4gh/schemas","description":"Work on data models and APIs for Genomic data.","fork":false,"url":"https://api.github.com/repos/ga4gh/schemas","forks_url":"https://api.github.com/repos/ga4gh/schemas/forks","keys_url":"https://api.github.com/repos/ga4gh/schemas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ga4gh/schemas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ga4gh/schemas/teams","hooks_url":"https://api.github.com/repos/ga4gh/schemas/hooks","issue_events_url":"https://api.github.com/repos/ga4gh/schemas/issues/events{/number}","events_url":"https://api.github.com/repos/ga4gh/schemas/events","assignees_url":"https://api.github.com/repos/ga4gh/schemas/assignees{/user}","branches_url":"https://api.github.com/repos/ga4gh/schemas/branches{/branch}","tags_url":"https://api.github.com/repos/ga4gh/schemas/tags","blobs_url":"https://api.github.com/repos/ga4gh/schemas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ga4gh/schemas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ga4gh/schemas/git/refs{/sha}","trees_url":"https://api.github.com/repos/ga4gh/schemas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ga4gh/schemas/statuses/{sha}","languages_url":"https://api.github.com/repos/ga4gh/schemas/languages","stargazers_url":"https://api.github.com/repos/ga4gh/schemas/stargazers","contributors_url":"https://api.github.com/repos/ga4gh/schemas/contributors","subscribers_url":"https://api.github.com/repos/ga4gh/schemas/subscribers","subscription_url":"https://api.github.com/repos/ga4gh/schemas/subscription","commits_url":"https://api.github.com/repos/ga4gh/schemas/commits{/sha}","git_commits_url":"https://api.github.com/repos/ga4gh/schemas/git/commits{/sha}","comments_url":"https://api.github.com/repos/ga4gh/schemas/comments{/number}","issue_comment_url":"https://api.github.com/repos/ga4gh/schemas/issues/comments{/number}","contents_url":"https://api.github.com/repos/ga4gh/schemas/contents/{+path}","compare_url":"https://api.github.com/repos/ga4gh/schemas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ga4gh/schemas/merges","archive_url":"https://api.github.com/repos/ga4gh/schemas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ga4gh/schemas/downloads","issues_url":"https://api.github.com/repos/ga4gh/schemas/issues{/number}","pulls_url":"https://api.github.com/repos/ga4gh/schemas/pulls{/number}","milestones_url":"https://api.github.com/repos/ga4gh/schemas/milestones{/number}","notifications_url":"https://api.github.com/repos/ga4gh/schemas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ga4gh/schemas/labels{/name}","releases_url":"https://api.github.com/repos/ga4gh/schemas/releases{/id}","deployments_url":"https://api.github.com/repos/ga4gh/schemas/deployments","created_at":"2014-03-20T00:13:40Z","updated_at":"2016-08-29T21:49:33Z","pushed_at":"2016-09-12T20:11:19Z","git_url":"git://github.com/ga4gh/schemas.git","ssh_url":"git@github.com:ga4gh/schemas.git","clone_url":"https://github.com/ga4gh/schemas.git","svn_url":"https://github.com/ga4gh/schemas","homepage":"http://ga4gh.org/#/api","size":16123,"stargazers_count":186,"watchers_count":186,"language":"Protocol Buffer","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":103,"mirror_url":null,"open_issues_count":183,"forks":103,"open_issues":183,"watchers":186,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/698"},"html":{"href":"https://github.com/ga4gh/schemas/pull/698"},"issue":{"href":"https://api.github.com/repos/ga4gh/schemas/issues/698"},"comments":{"href":"https://api.github.com/repos/ga4gh/schemas/issues/698/comments"},"review_comments":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/698/comments"},"review_comment":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/698/commits"},"statuses":{"href":"https://api.github.com/repos/ga4gh/schemas/statuses/909b0601acdf78f4bc9bec179f76976e1501d924"}}}}
{"actor":{"display_login":"mbaudis"}}