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
ClassEntities
PropertyTriples