evoweb
EvoWeb
EvoWeb - An Open Knowledge Graph of Co-evolving Genes (NIAID)
3.4M
triples
1
classes
5
properties
18.3K
subjects
EvoWeb is a weighted network of protein-protein functional relations, reconstructed from prior knowledge available from genomic sequences, allowing users to find hypothetical proteins involved in protein complexes or separate steps of a biochemical pathway, as well as 12 signals of coevolution to quantify the degree of shared evolution between genes.
This project is a continuation of work done in the EvoWeaver project (https://www.nature.com/articles/s41467-025-59175-6) going beyond individual protein pairs.
Which protein accessions are members of the dnaA gene group?
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
select ?member {
<https://purl.org/okn/frink/kg/evoweb/schema/Node1> skos:member ?member .
} limit 100
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v1("?member"):::projected
c1([https://purl.org/okn/frink/kg/evoweb/schema/Node1]):::iri
c1 --"skos:member"--> v1
Which other groups are connected to the dnaA gene group?
#
# This query assumes connectivity is commutative, even if the reverse of a connection pair is not explicit in the graph.)
PREFIX ns0: <https://purl.org/okn/frink/kg/evoweb/schema/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?group ?groupLabel {
ns0:Node1 (ns0:connectedTo | ^ns0:connectedTo) ?group . ?group rdfs:label ?groupLabel .
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v1("?group"):::projected
v2("?groupLabel"):::projected
c1([https://purl.org/okn/frink/kg/evoweb/schema/Node1]):::iri
subgraph union0[" Union "]
subgraph union0l[" "]
style union0l fill:#abf,stroke-dasharray: 3 3;
v1 --"https://purl.org/okn/frink/kg/evoweb/schema/connectedTo"--> c1
end
subgraph union0r[" "]
style union0r fill:#abf,stroke-dasharray: 3 3;
c1 --"https://purl.org/okn/frink/kg/evoweb/schema/connectedTo"--> v1
end
union0r <== or ==> union0l
end
v1 --"rdfs:label"--> v2
Which EvoWeb group is associated with the dnaA gene?
#
# This query is not ideal due to relying on a string search.
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?group ?groupLabel {
?group rdfs:label ?groupLabel . filter(contains(str(?groupLabel),"chromosomal replication initiator protein DnaA"))
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v2("?group"):::projected
v1("?groupLabel"):::projected
f0[["contains(str(?groupLabel),'chromosomal replication initiator protein DnaA')"]]
f0 --> v1
v2 --"rdfs:label"--> v1
Which group contains protein accession number WP_151056081.1?
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ncbi-nih: <https://www.ncbi.nlm.nih.gov/protein/>
select ?group ?groupLabel ?member {
?group skos:member ncbi-nih:WP_151056081.1 ; rdfs:label ?groupLabel .
}
graph TD
Which group has the most connections in the EvoWeb?
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?group ?groupLabel (count(?member) as ?members) {
?group skos:member ?member ; rdfs:label ?groupLabel .
} group by ?group ?groupLabel order by desc(?members) limit 10
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v2("?group"):::projected
v4("?groupLabel"):::projected
v3("?member"):::projected
v5("?members")
v2 --"skos:member"--> v3
v2 --"rdfs:label"--> v4
bind1[/"count(?member)"/]
v3 --o bind1
bind1 --as--o v5
Get all organisms associated with protein groups (via UniProt)
PREFIX uni: <http://purl.org/weso/uni/uni.html#>
PREFIX re: <http://www.w3.org/2000/10/swap/reason#>
PREFIX ref: <http://purl.org/vocab/relationship/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX uniprot: <http://purl.uniprot.org/uniprot/>
PREFIX uniprot-core: <http://purl.uniprot.org/core/>
PREFIX refs: <https://www.ncbi.nlm.nih.gov/protein/>
PREFIX ncbi: <http://purl.obolibrary.org/obo/NCBITaxon_>
PREFIX refs-uni: <http://purl.uniprot.org/refseq/>
PREFIX ncbi-uni: <http://purl.uniprot.org/taxonomy/>
select ?group ?groupLabel ?organism ?organismLabel {
{
?group rdfs:label ?groupLabel ; skos:member ?member .
bind(iri(replace(str(?member),str(refs:),str(refs-uni:))) as ?member_uni)
service <https://sparql.uniprot.org/sparql> {
?member_uni uniprot-core:organism ?organism_uni .
}
}
bind(iri(replace(str(?organism_uni),str(ncbi-uni:),str(ncbi:))) as ?organism)
?organism rdfs:label ?organismLabel
} limit 100
graph TD
Which groups are second-level connections to the dnaA gene group?
#
# This query assumes connectivity is commutative, even if the reverse of a connection pair is not explicit in the graph.)
PREFIX ns0: <https://purl.org/okn/frink/kg/evoweb/schema/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select distinct ?group ?groupLabel {
ns0:Node1 (ns0:connectedTo | ^ns0:connectedTo) ?intermediate . ?intermediate (ns0:connectedTo | ^ns0:connectedTo) ?group .
filter(?group != ns0:Node1) filter(?group != ?intermediate)
?group rdfs:label ?groupLabel .
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v1("?group"):::projected
v3("?groupLabel"):::projected
v2("?intermediate")
c1([https://purl.org/okn/frink/kg/evoweb/schema/Node1]):::iri
f0[["?group != ?intermediate"]]
f0 --> v1
f0 --> v2
f1[["?group != https://purl.org/okn/frink/kg/evoweb/schema/Node1"]]
f1 --> v1
subgraph union0[" Union "]
subgraph union0l[" "]
style union0l fill:#abf,stroke-dasharray: 3 3;
v2 --"https://purl.org/okn/frink/kg/evoweb/schema/connectedTo"--> c1
end
subgraph union0r[" "]
style union0r fill:#abf,stroke-dasharray: 3 3;
c1 --"https://purl.org/okn/frink/kg/evoweb/schema/connectedTo"--> v2
end
union0r <== or ==> union0l
end
subgraph union1[" Union "]
subgraph union1l[" "]
style union1l fill:#abf,stroke-dasharray: 3 3;
v1 --"https://purl.org/okn/frink/kg/evoweb/schema/connectedTo"--> v2
end
subgraph union1r[" "]
style union1r fill:#abf,stroke-dasharray: 3 3;
v2 --"https://purl.org/okn/frink/kg/evoweb/schema/connectedTo"--> v1
end
union1r <== or ==> union1l
end
v1 --"rdfs:label"--> v3
| SPARQL Endpoint | https://apps.okn.us/evoweb/sparql |
|---|---|
| Triple Pattern Fragments | https://apps.okn.us/ldf/evoweb |
| Class | Entities |
|---|
| Property | Triples |
|---|