Closed callahantiff closed 4 years ago
Also:
protein-complex, RO_0002436
Also:
protein-complex, RO_0002436
Good catch, I will add to the original issue, thanks!
@ignaciot and @bill-baumgartner - the updated KR is shown below (click on image to enlarge). Note that the main data types are ontologies (yellow), open data sources (purple), and experimental data (blue). Note, that this has been verified by Adrianne as well.
You will notice that I have added the cell ontology and BRENDA in addition to experimental data in order to satisfy a component of my comps -- creating a KG, which actually includes the central dogma. GTEx is a great source to start with since it includes many disease types and has the results of both microarray and RNA-seq (for several types of samples), and includes connections to phenotypes.
Anywho, happy to talk about this more this afternoon!
This is fantastic! Yes, letβs chat this afternoon.
UPDATES: Incorporating feedback from @bill-baumgartner and @LEHunter resulted in the updated KR shown below.
Some important questions that I would like help answering:
molecularly interacts with
and the definition of this relation includes alternative terms, which specify that this relation specifically means binding interactions.
genetically interacts with
-- @LEHunter, thoughts? causally influences
. I was unable to find anything in the RO
for options like alters
or has variant
.
BFO
terms for the proposed RO
terms, do you agree?:
BFO:realizes
to RO:realized in response to
realized in
a pathway BFO:has component
to RO:has function
has function
molecular function BFO:has part
to RO:has component
has component
cellular location Yup, that is the reason I chose molecularly interacts with
(binding). Looking at the definition of that other relation (An interaction that holds between two genetic entities (genes, alleles) through some genetic interaction (e.g. epistasis)
) I don't think that is appropriate for protein-protein interactions. It's probably fine for gene-gene interactions.
Maybe we could generate two graphs, one with the inverse relations where applicable and another without, to assess how much it could mess with random walk-based algorithms? I do suspect it may affect the node2vec results.
The rest looks fine to me (BTW, I like the new diagram!).
Yup, that is the reason I chose
molecularly interacts with
(binding). Looking at the definition of that other relation (An interaction that holds between two genetic entities (genes, alleles) through some genetic interaction (e.g. epistasis)
) I don't think that is appropriate for protein-protein interactions. It's probably fine for gene-gene interactions.
OK, great. I also agree about the protein-protein interactions. Maybe we do this:
genetically interacts with
molecularly interacts with
interacts with
molecularly interacts with
molecularly interacts with
molecularly interacts with
molecularly interacts with
Maybe we could generate two graphs, one with the inverse relations where applicable and another without, to assess how much it could mess with random walk-based algorithms? I do suspect it may affect the node2vec results.
Yep, that's what Bill and I were thinking too :D.
The rest looks fine to me (BTW, I like the new diagram!).
Great, thanks for your feedback!
Thanks, great! I think molecularly interacts with
is fine for protein-protein interactions, as that interaction implies physical binding.
And for chemical-gene is probably better to leave it as the more generic interacts with
, as you suggested. Because there are many possible ways for the chemical to affect expression (which is what we imply by this interaction).
I suggest getting Mike to weigh in on these. I would like to be consistent with what he is doing with CRAFT for relations.
On Nov 26, 2019, at 3:26 PM, Tiffany J. Callahan notifications@github.com<mailto:notifications@github.com> wrote:
Yup, that is the reason I chose molecularly interacts with (binding). Looking at the definition of that other relation (An interaction that holds between two genetic entities (genes, alleles) through some genetic interaction (e.g. epistasis)) I don't think that is appropriate for protein-protein interactions. It's probably fine for gene-gene interactions.
OK, great. I also agree about the protein-protein interactions. Maybe we do this:
Maybe we could generate two graphs, one with the inverse relations where applicable and another without, to assess how much it could mess with random walk-based algorithms? I do suspect it may affect the node2vec results.
Yep, that's what Bill and I were thinking too :D.
The rest looks fine to me (BTW, I like the new diagram!).
Great, thanks for your feedback!
β You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/callahantiff/PheKnowLator/issues/17?email_source=notifications&email_token=AACWZKP26NURHFGKTVCT3V3QVWPANA5CNFSM4JBOGE32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFHUT5A#issuecomment-558844404, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AACWZKOLYRZKK47H3G3ZB5DQVWPANANCNFSM4JBOGE3Q.
On Nov 26, 2019, at 12:38 PM, Tiffany J. Callahan notifications@github.com<mailto:notifications@github.com> wrote:
Inverse relations are a good idea. You can try random walk with and without them to see if itβs having any impact. Maybe also approaches like prohibiting the walk from traversing an edge twice.
I suggest getting Mike to weigh in on these. I would like to be consistent with what he is doing with CRAFT for relations.
OK, I will reach out to Mike. Thanks @LEHunter!
@LEHunter - I'd like to substitute the following BFO
terms for the proposed RO
terms, do you agree?:
BFO:realizes
to RO:realized in response to
realized in
a pathway BFO:has component
to RO:has function
has function
molecular function BFO:has part
to RO:has component
has component
cellular location Seems reasonable to me, but please do check with Mike. Itβs important to be consistent with CRAFT. And Mike has thought a lot about this stuff
L
On Nov 26, 2019, at 5:53 PM, Tiffany J. Callahan notifications@github.com wrote:
ο»Ώ
@LEHunterhttps://github.com/LEHunter - I'd like to substitute the following BFO terms for the proposed RO terms, do you agree?:
β You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/callahantiff/PheKnowLator/issues/17?email_source=notifications&email_token=AACWZKNGQ66QLKK6HBM4MCDQVXAI3A5CNFSM4JBOGE32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFH5K2I#issuecomment-558880105, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AACWZKPLUDL7DURSSB4S7XTQVXAI3ANCNFSM4JBOGE3Q.
Seems reasonable to me, but please do check with Mike. Itβs important to be consistent with CRAFT. And Mike has thought a lot about this stuff L
Sounds good, I will follow-up with him. Thanks!
UPDATE: Mike has been emailed to ask about the BFO-RO and interaction triples. In the meantime, I am going to move forward with the representation shown below. Will also create a Bada-version π, once I hear back from him.
NOTE. For space reasons, I am not showing all edges with labels, but am suggesting there are inverse edges via the inclusion of a dotted line.
- @bill-baumgartner - I kept the edge
causally influences
. I was unable to find anything in theRO
for options likealters
orhas variant
.
Turns out the relation I was thinking of is in the Sequence Ontology and not the RO: https://www.ebi.ac.uk/ols/ontologies/so/properties?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2Fso%23variant_of
- @bill-baumgartner - I kept the edge
causally influences
. I was unable to find anything in theRO
for options likealters
orhas variant
.Turns out the relation I was thinking of is in the Sequence Ontology and not the RO: https://www.ebi.ac.uk/ols/ontologies/so/properties?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2Fso%23variant_of
Thanks for letting me know! In that case, unless you are opposed, I will keep causally influences
.
@ignaciot - would mind telling me how you found these?
protein-protein
These came from Uniprot, and they are sourced from the IntAct database monthly (so it would be a good idea to keep those from STRING as well).
protein-cofactor/catalyst (ChEBI) protein-complex (reactome) chemical (ChEBI)-complex complex (reactome)-complex (reactome) protein-pathway (reactome) protein-reaction (reactome)
All of those came from Reactome, where they specified the participants (from Uniprot or ChEBI) to pathways, complexes and reactions.
protein-protein
These came from Uniprot, and they are sourced from the IntAct database monthly (so it would be a good idea to keep those from STRING as well).
Thanks! Update on protein-protein interactions. It looks like we will only need STRING as they already cover the data in IntAct (see screenshot below) π
protein-cofactor/catalyst (ChEBI) protein-complex (reactome) chemical (ChEBI)-complex complex (reactome)-complex (reactome) protein-pathway (reactome) protein-reaction (reactome)
All of those came from Reactome, where they specified the participants (from Uniprot or ChEBI) to pathways, complexes and reactions.
Perfect! I will update the file parsers.
Awesome! One less thing to worry about, then.
@ignaciot - to build the gene - has_gene_product - protein
triples, we need to identify all human protein coding genes and their gene products.
To get this, I'm using the human proteome (reviewed Swiss-Prot version) from Uniprot (here). Sound OK to you?
Yup! That makes sense.
@ignaciot - can you confirm that you agree with how I am building the protein-protein
and protein-complex
edges from the ComplexParticipantsPubMedIdentifiers_human.txt file:
File Columns: [0] identifier
; [1] name
; [2] participants
; [3] participatingComplex
; [4] pubMedIdentifiers
Example File Output: NOTE. '|" substituted for ";" to build table in example below
identifier | name | participants | participatingComplex | pubMedIdentifiers |
---|---|---|---|---|
R-HSA-1006173 | "CFH:Host cell surface [plasma membrane]" | uniprot:P08603;chebi:24505;chebi:28879 | R-ALL-1006146 | 762425;16192651 |
R-HSA-1008206 | "NF-E2:Promoter region of beta-globin [nucleoplasm]" | uniprot:Q16621;uniprot:Q9ULX9;uniprot:O15525;uniprot:O60675 | R-HSA-1008229 | 8816476 |
Protein-Complex:
column [0]
column [2]
Example from file (from table above):
complex | protein |
---|---|
R-HSA-1006173 | uniprot:P08603 |
R-HSA-1008206 | uniprot:Q16621 uniprot:Q9ULX9 uniprot:O15525 uniprot:O6067 |
Complex-Complex:
column [0]
column [3]
Example from file (from table above):
complex | complex |
---|---|
R-HSA-1006173 | R-ALL-1006146 |
R-HSA-1008206 | R-HSA-1008229 |
These all look correct!
Good news, the draft of the sources of data for the edges and documentation of sources are complete. The edge counts will be updated and the files listed on the release page will be added as the KG is built.
@ignaciot - would you mind taking a gander at the following pages and let me know if anything seems incorrect?
Release V2.0.0
Release V2.0.0 Knowledge Graph Data Sources
What's Left before KG Build:
f()
for:
Once I confirm a few last details with @bill-baumgartner tomorrow (who was super helpful today, thanks Bill!), I will begin the build!
This looks AWESOME!! I'm glad those Uniprot/Reactome triples resulted to be useful, can't wait to play with the built graph. I went through all of the above and didn't see any errors. Thanks for adding those inverse relations, too!
Happy to help check the items above that need testing. Maybe we could think of a set of unit tests to write for each build, too (can wait until the next subrelease).
This looks AWESOME!! I'm glad those Uniprot/Reactome triples resulted to be useful, can't wait to play with the built graph. I went through all of the above and didn't see any errors. Thanks for adding those inverse relations, too!
Happy to help check the items above that need testing. Maybe we could think of a set of unit tests to write for each build, too (can wait until the next subrelease).
Thanks so much for your help @ignaciot! I think writing tests is a great idea. I also think it would be great if we added continuous integration. Perhaps we can chat more about this on Monday?
@bill-baumgartner and @ignaciot - the human version of the PRO is finally done! π
Things to keep in mind:
only_in_taxon some Homo sapiens
(n=61,064 classes).
PR_000000019
) π pr:lacks_part
and owl:disjointWith
axioms. Given the articles I have read, I think this is totally acceptable for now. I will still remove owl:disjointWith
axioms from the full KG before closing it, but until that point, I will keep the individual ontologies as complete as possible. This ensures the new human PRO is useful for others who might want to use it. hermit
. I compared the results to running ELK
and they both stated the ontology was consistent and produced the same set of inferred axioms (n=174). If you'd like to use it, you can download the closed and unclosed versions here:
@LEHunter and @bill-baumgartner - should we offer this version and/or the script used to create it to the ProConsortium?
π’Now that the core ontologies are good to go, I will begin building KG. Updates to follow!
@ignaciot - I found a way to do this such that it includes all of the things we discussed needed to be included (e.g. PR_000000019) :-)
Awesome!! This is really cool.
I take it the pr:lacks_part
and owl:disjointWith
had to be kept to keep it a single connected component? (my only concert would be the incorrect assumption of a relation when creating node embeddings)
@ignaciot - I found a way to do this such that it includes all of the things we discussed needed to be included (e.g. PR_000000019) :-)
Awesome!! This is really cool.
I take it the
pr:lacks_part
andowl:disjointWith
had to be kept to keep it a single connected component? (my only concert would be the incorrect assumption of a relation when creating node embeddings)
Thanks! π After reading a bunch of articles, I chose to leave both types in for now as this is the way to create the most "correct"/authentic version of the human PRO. There is a way to keep 1 single component with removing each type. The owl:disjointWith
will continued to be removed prior to closing the graph (we have been doing that since the first release (the reasoners ignore this axiom anyways) so they should not give you trouble with the embeddings. I believe the pr:lacks_part
axioms should be OK. I read some of Hohendorf's papers about the pr:lacks_part
axioms and given how they are constructed in PRO and CL, we should be fine. The real problem with including these are when they are constructed in the way PATO uses them. Either way, I'm happy to discuss this again once the KG is built π
Oh, absolutely, I don't think this is a reason to halt building the next KG version! I'm excited to try this out once it's built!
Oh, absolutely, I don't think this is a reason to halt building the next KG version! I'm excited to try this out once it's built!
Awesome! Iβll let you know when itβs ready for you!
Final KR for V2.0 builds are shown below.
Instance-Based Construction
Subclass-Based Construction
Closing this issue.
Extending Knowledge Representation for current KG
Current Release: v2.0.0
Description
Adding the following entities/data sources to the current KG build:
TODO π π» π
@callahantiff Due Dates: