SPOKE GeneLab
The spoke-genelab KG complements the spokeokn (SPOKE Open Knowledge Network) KG and is designed to integrate omics data from NASA’s Open Science Data Repository (OSDR/GeneLab), which hosts results from spaceflight experiments.
The spoke-genelab KG complements the spoke-okn (SPOKE Open Knowledge Network) KG and is designed to integrate omics data from NASA’s Open Science Data Repository (OSDR/GeneLab), which hosts results from spaceflight experiments.
The current release includes transcriptional profiling (RNA-Seq, DNA microarray) and epigenomic profiling (DNA methylation) data from model organisms flown in space or maintained as ground controls. Differential expression and methylation signatures are pre-computed to facilitate comparisons between spaceflight and control conditions. Genes from model organisms are systematically mapped to their human orthologs, which allows integration with SPOKE’s rich network of human biology, including pathways, phenotypes, and therapeutic targets. Cell and tissue types are mapped to the Cell (CL) and Uber Anatomy Ontology (UBERON) ontology, respectively.
Within NASA study OSD-48 (Rodent Research 1), find mouse genes (and their human orthologs) that show BOTH a transcriptomic and an epigenomic response to spaceflight: down-regulated in expression (log2 fold change < −1 and FDR-adjusted p-value < 0.05) AND linked to a differentially methylated genomic region (methylation q-value < 0.05). Draw the two signals from two distinct assays, one differential-expression assay and one differential-methylation assay, that each compare the Space Flight condition against the Ground Control condition. Enforce experimental-condition consistency on the other (non-spaceflight) factors, not just on spaceflight status and biological material: within each assay, the two compared groups must have identical non-spaceflight experimental factors, so the groups differ only in spaceflight status and across the two assays, the differential-expression assay and the differential-methylation assay must use the same biological material and the same non-spaceflight factor value as each other. Return each human gene's IRI and symbol, the mouse gene symbol, the expression log2 fold change, the expression FDR-adjusted p-value, the methylation difference (percent), and the methylation q-value (and the shared condition factor), ordered by ascending log2 fold change, then ascending expression adjusted p-value, then human gene symbol, then human gene IRI, then mouse gene symbol, then methylation q-value, then ascending methylation difference, then methylation region IRI. [hard]
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX biolink: <https://w3id.org/biolink/vocab/>
PREFIX schema: <https://purl.org/okn/frink/kg/spoke-genelab/schema/>
SELECT ?human_gene_iri ?human_symbol ?mouse_symbol ?log2fc ?expr_adj_p_value
?methylation_diff ?meth_q_value ?meth_region_iri ?condition_factor
WHERE {
GRAPH <https://purl.org/okn/frink/kg/spoke-genelab> {
# --- Resolve study OSD-48 (Rodent Research 1) by its identifiers, not a hardcoded IRI ---
?study a biolink:Study ;
rdfs:label "OSD-48" ;
schema:project_title "Rodent Research 1" .
?study schema:PERFORMED_SpAS ?exprAssay , ?methAssay .
# --- Differential EXPRESSION assay: Space Flight vs Ground Control ---
?exprAssay schema:measurement "transcription profiling" ;
schema:factor_space_1 "Space Flight" ;
schema:factor_space_2 "Ground Control" ;
schema:material_1 ?material ;
schema:material_2 ?material ;
schema:factors_1 ?ecf1 ;
schema:factors_2 ?ecf2 .
# within-assay: the non-spaceflight factor is identical in both compared groups
FILTER(?ecf1 NOT IN ("Space Flight","Ground Control","Basal Control","Vivarium Control"))
FILTER(?ecf2 NOT IN ("Space Flight","Ground Control","Basal Control","Vivarium Control"))
FILTER(?ecf1 = ?ecf2)
BIND(?ecf1 AS ?condition_factor)
?exprStmt rdf:subject ?exprAssay ;
rdf:predicate schema:MEASURED_DIFFERENTIAL_EXPRESSION_ASmMG ;
rdf:object ?mouseGene ;
schema:log2fc ?log2fc ;
schema:adj_p_value ?expr_adj_p_value .
FILTER(?log2fc < -1.0)
FILTER(?expr_adj_p_value < 0.05)
# --- Differential METHYLATION assay: same material AND same condition factor ---
?methAssay schema:measurement "DNA methylation profiling" ;
schema:factor_space_1 "Space Flight" ;
schema:factor_space_2 "Ground Control" ;
schema:material_1 ?material ;
schema:material_2 ?material ;
schema:factors_1 ?mcf1 ;
schema:factors_2 ?mcf2 .
# within-assay consistency
FILTER(?mcf1 NOT IN ("Space Flight","Ground Control","Basal Control","Vivarium Control"))
FILTER(?mcf2 NOT IN ("Space Flight","Ground Control","Basal Control","Vivarium Control"))
FILTER(?mcf1 = ?mcf2)
# across-assay: expression and methylation share the SAME non-spaceflight condition factor
FILTER(?mcf1 = ?condition_factor)
?methStmt rdf:subject ?methAssay ;
rdf:predicate schema:MEASURED_DIFFERENTIAL_METHYLATION_ASmMR ;
rdf:object ?methRegion ;
schema:methylation_diff ?methylation_diff ;
schema:q_value ?meth_q_value .
FILTER(?meth_q_value < 0.05)
# --- Same mouse gene methylated in that differentially-methylated region ---
?mouseGene schema:METHYLATED_IN_MGmMR ?methRegion ;
schema:symbol ?mouse_symbol .
# --- Human ortholog ---
?mouseGene schema:IS_ORTHOLOG_MGiG ?humanGene .
?humanGene schema:symbol ?human_symbol .
BIND(?humanGene AS ?human_gene_iri)
BIND(?methRegion AS ?meth_region_iri)
}
}
ORDER BY ASC(?log2fc) ASC(?expr_adj_p_value) ?human_symbol ?human_gene_iri ?mouse_symbol ?meth_q_value ?methylation_diff ?meth_region_iri
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v18("?condition_factor"):::projected
v12("?ecf1")
v13("?ecf2")
v15("?exprAssay")
v18("?exprStmt")
v2("?expr_adj_p_value"):::projected
v22("?humanGene")
v23("?human_gene_iri"):::projected
v3("?human_symbol"):::projected
v1("?log2fc"):::projected
v17("?material")
v9("?mcf1")
v11("?mcf2")
v16("?methAssay")
v21("?methRegion")
v20("?methStmt")
v6("?meth_q_value"):::projected
v23("?meth_region_iri"):::projected
v7("?methylation_diff"):::projected
v19("?mouseGene")
v5("?mouse_symbol"):::projected
v14("?study")
c3(["Ground Control"]):::literal
c8([biolink:Study]):::iri
c11(["OSD-48"]):::literal
c29(["DNA methylation profiling"]):::literal
c30([spoke-genelab:MEASURED_DIFFERENTIAL_METHYLATION_ASmMR]):::iri
c16(["transcription profiling"]):::literal
c2(["Space Flight"]):::literal
c25([spoke-genelab:MEASURED_DIFFERENTIAL_EXPRESSION_ASmMG]):::iri
c13(["Rodent Research 1"]):::literal
f0[["?meth_q_value < '0.05^^xsd:decimal'"]]
f0 --> v6
f1[["?mcf1 = ?condition_factor"]]
f1 --> v9
f1 --> v18
f2[["?mcf1 = ?mcf2"]]
f2 --> v9
f2 --> v11
f3[["?mcf2 != 'Space Flight'?mcf2 != 'Ground Control'?mcf2 != 'Basal Control'?mcf2 != 'Vivarium Control'"]]
f3 --> v11
f4[["?mcf1 != 'Space Flight'?mcf1 != 'Ground Control'?mcf1 != 'Basal Control'?mcf1 != 'Vivarium Control'"]]
f4 --> v9
f5[["?expr_adj_p_value < '0.05^^xsd:decimal'"]]
f5 --> v2
f6[["?log2fc < '-1.0^^xsd:decimal'"]]
f6 --> v1
f7[["?ecf1 = ?ecf2"]]
f7 --> v12
f7 --> v13
f8[["?ecf2 != 'Space Flight'?ecf2 != 'Ground Control'?ecf2 != 'Basal Control'?ecf2 != 'Vivarium Control'"]]
f8 --> v13
f9[["?ecf1 != 'Space Flight'?ecf1 != 'Ground Control'?ecf1 != 'Basal Control'?ecf1 != 'Vivarium Control'"]]
f9 --> v12
v14 --"a"--> c8
v14 --"rdfs:label"--> c11
v14 --"spoke-genelab:project_title"--> c13
v14 --"spoke-genelab:PERFORMED_SpAS"--> v15
v14 --"spoke-genelab:PERFORMED_SpAS"--> v16
v15 --"spoke-genelab:measurement"--> c16
v15 --"spoke-genelab:factor_space_1"--> c2
v15 --"spoke-genelab:factor_space_2"--> c3
v15 --"spoke-genelab:material_1"--> v17
v15 --"spoke-genelab:material_2"--> v17
v15 --"spoke-genelab:factors_1"--> v12
v15 --"spoke-genelab:factors_2"--> v13
bind10[/"?ecf1"/]
v12 --o bind10
bind10 --as--o v18
v18 --"rdf:subject"--> v15
v18 --"rdf:predicate"--> c25
v18 --"rdf:object"--> v19
v18 --"spoke-genelab:log2fc"--> v1
v18 --"spoke-genelab:adj_p_value"--> v2
v16 --"spoke-genelab:measurement"--> c29
v16 --"spoke-genelab:factor_space_1"--> c2
v16 --"spoke-genelab:factor_space_2"--> c3
v16 --"spoke-genelab:material_1"--> v17
v16 --"spoke-genelab:material_2"--> v17
v16 --"spoke-genelab:factors_1"--> v9
v16 --"spoke-genelab:factors_2"--> v11
v20 --"rdf:subject"--> v16
v20 --"rdf:predicate"--> c30
v20 --"rdf:object"--> v21
v20 --"spoke-genelab:methylation_diff"--> v7
v20 --"spoke-genelab:q_value"--> v6
v19 --"spoke-genelab:METHYLATED_IN_MGmMR"--> v21
v19 --"spoke-genelab:symbol"--> v5
v19 --"spoke-genelab:IS_ORTHOLOG_MGiG"--> v22
v22 --"spoke-genelab:symbol"--> v3
bind11[/"?humanGene"/]
v22 --o bind11
bind11 --as--o v23
bind12[/"?methRegion"/]
v21 --o bind12
bind12 --as--o v23
Find the human ortholog gene(s) of the model-organism gene with symbol "Adh1". Return each human gene's IRI and symbol, ordered alphabetically by symbol. [easy]
PREFIX schema: <https://purl.org/okn/frink/kg/spoke-genelab/schema/>
SELECT DISTINCT ?human ?humanSymbol {
?modelGene schema:symbol ?modelSymbol ;
schema:IS_ORTHOLOG_MGiG ?human .
FILTER(LCASE(STR(?modelSymbol)) = "adh1")
?human schema:symbol ?humanSymbol ;
schema:organism "Homo sapiens" .
}
ORDER BY ?humanSymbol
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v4("?human"):::projected
v1("?humanSymbol"):::projected
v3("?modelGene")
v2("?modelSymbol")
c5(["Homo sapiens"]):::literal
f0[["lower-case(str(?modelSymbol)) = 'adh1'"]]
f0 --> v2
v3 --"spoke-genelab:symbol"--> v2
v3 --"spoke-genelab:IS_ORTHOLOG_MGiG"--> v4
v4 --"spoke-genelab:symbol"--> v1
v4 --"spoke-genelab:organism"--> c5
In study OSD-244, find model-organism genes that are significantly differentially expressed (FDR-adjusted p-value < 0.05) between spaceflight and matched ground control for the 60-day cohort. Consider only assays that directly contrast a Space Flight test group against a Ground Control reference group, oriented so the log2 fold change reflects spaceflight relative to ground control, and exclude reverse-direction duplicates. The two compared groups must be matched on biological material and on every experimental factor except the one distinguishing spaceflight from ground control: each non-spaceflight factor present on one side must also be present on the other, in both directions, so any assay whose groups differ on an additional covariate is rejected. Return each gene's IRI and symbol with the log2 fold change and adjusted p-value, ordered by ascending adjusted p-value and then by gene IRI to break ties, limited to the first 10 results. [medium]
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX biolink: <https://w3id.org/biolink/vocab/>
PREFIX sch: <https://purl.org/okn/frink/kg/spoke-genelab/schema/>
SELECT ?gene ?symbol ?log2fc ?adj_p_value WHERE {
GRAPH <https://purl.org/okn/frink/kg/spoke-genelab> {
?study a biolink:Study ; rdfs:label "OSD-244" ; sch:PERFORMED_SpAS ?assay .
# Space Flight (group 1 = numerator) vs Ground Control (group 2); fixes the log2fc
# orientation and drops reverse-direction duplicates.
?assay sch:factor_space_1 "Space Flight" ;
sch:factor_space_2 "Ground Control" ;
sch:material_1 ?mat1 ; sch:material_2 ?mat2 ;
sch:factors_1 "~60 day" . # 60-day cohort
FILTER(?mat1 = ?mat2) # matched biological material
# Both arms carry the same number of experimental factors (neither side adds a covariate).
{ SELECT ?assay (COUNT(DISTINCT ?a) AS ?n1) WHERE { ?assay sch:factors_1 ?a } GROUP BY ?assay }
{ SELECT ?assay (COUNT(DISTINCT ?b) AS ?n2) WHERE { ?assay sch:factors_2 ?b } GROUP BY ?assay }
FILTER(?n1 = ?n2)
# Factor-consistency: reject the assay if any factor on the Space-Flight arm that is
# absent from its own Ground-Control arm nonetheless appears on some other Ground-Control
# arm in the study -- i.e. it is a shared covariate the two arms disagree on, not a
# spaceflight-specific factor. (Flight-specific tokens never occur on any ground arm.)
MINUS {
?study sch:PERFORMED_SpAS ?assay .
?assay sch:factors_1 ?f1 .
?study sch:PERFORMED_SpAS ?gx .
?gx sch:factor_space_2 "Ground Control" ; sch:factors_2 ?f1 .
FILTER NOT EXISTS { ?assay sch:factors_2 ?f1 }
}
# Differential-expression edge for a model-organism gene
?stmt rdf:type rdf:Statement ;
rdf:subject ?assay ;
rdf:predicate sch:MEASURED_DIFFERENTIAL_EXPRESSION_ASmMG ;
rdf:object ?gene ;
sch:log2fc ?log2fc ; sch:adj_p_value ?adj_p_value .
FILTER(?adj_p_value < 0.05)
?gene a biolink:Gene ; sch:symbol ?symbol .
}
}
ORDER BY ASC(?adj_p_value) ASC(?gene)
LIMIT 10
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v9("?a")
v1("?adj_p_value"):::projected
v8("?assay")
v10("?b")
v11("?f1")
v2("?gene"):::projected
v12("?gx")
v14("?log2fc"):::projected
v5("?mat1")
v6("?mat2")
v10("?n1")
v11("?n2")
v13("?stmt")
v7("?study")
v15("?symbol"):::projected
c24([biolink:Gene]):::iri
c11(["Ground Control"]):::literal
c6(["OSD-244"]):::literal
c17([rdf:Statement]):::iri
c3([biolink:Study]):::iri
c15(["~60 day"]):::literal
c9(["Space Flight"]):::literal
c20([spoke-genelab:MEASURED_DIFFERENTIAL_EXPRESSION_ASmMG]):::iri
f0[["?adj_p_value < '0.05^^xsd:decimal'"]]
f0 --> v1
f1[["?n1 = ?n2"]]
f1 --> v10
f1 --> v11
f2[["?mat1 = ?mat2"]]
f2 --> v5
f2 --> v6
v7 --"a"--> c3
v7 --"rdfs:label"--> c6
v7 --"spoke-genelab:PERFORMED_SpAS"--> v8
v8 --"spoke-genelab:factor_space_1"--> c9
v8 --"spoke-genelab:factor_space_2"--> c11
v8 --"spoke-genelab:material_1"--> v5
v8 --"spoke-genelab:material_2"--> v6
v8 --"spoke-genelab:factors_1"--> c15
v8 --"spoke-genelab:factors_1"--> v9
bind4[/"count(?a)"/]
v9 --o bind4
bind4 --as--o v10
v8 --"spoke-genelab:factors_2"--> v10
bind6[/"count(?b)"/]
v10 --o bind6
bind6 --as--o v11
subgraph minus7["MINUS"]
style minus7 stroke-width:6px,fill:pink,stroke:red;
f8[["not "]]
subgraph f8e0["Exists Clause"]
e0v1 --"spoke-genelab:factors_2"--> e0v2
e0v1("?assay"):::projected
e0v2("?f1"):::projected
end
f8--"EXISTS"--> f8e0
f8 --> v8
f8 --> c16
f8 --> v11
f8 --> c4
v8 --"spoke-genelab:factors_2"--> v11
v7 --"spoke-genelab:PERFORMED_SpAS"--> v8
v8 --"spoke-genelab:factors_1"--> v11
v7 --"spoke-genelab:PERFORMED_SpAS"--> v12
v12 --"spoke-genelab:factor_space_2"--> c11
v12 --"spoke-genelab:factors_2"--> v11
end
v13 --"a"--> c17
v13 --"rdf:subject"--> v8
v13 --"rdf:predicate"--> c20
v13 --"rdf:object"--> v2
v13 --"spoke-genelab:log2fc"--> v14
v13 --"spoke-genelab:adj_p_value"--> v1
v2 --"a"--> c24
v2 --"spoke-genelab:symbol"--> v15
| SPARQL Endpoint | https://apps.okn.us/spoke-genelab/sparql |
|---|---|
| Triple Pattern Fragments | https://apps.okn.us/ldf/spoke-genelab |
| Class | Entities |
|---|
| Property | Triples |
|---|