diff options
| author | Munyoki Kilyungi | 2026-02-16 14:51:31 +0300 |
|---|---|---|
| committer | Munyoki Kilyungi | 2026-02-16 14:51:31 +0300 |
| commit | f5e0df7a66f4dbecb27c8e4f41ac760746d6c9de (patch) | |
| tree | fae8c8ec9a7ca210b05bf70eadb37a91d7e02a7d | |
| parent | fb76a578747e50fb68925cbef7f0c6a720c84255 (diff) | |
| download | gn-transform-databases-f5e0df7a66f4dbecb27c8e4f41ac760746d6c9de.tar.gz | |
Add probesetXRef metadata.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| -rwxr-xr-x | examples/probesets-experiment-metadata.scm | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/examples/probesets-experiment-metadata.scm b/examples/probesets-experiment-metadata.scm new file mode 100755 index 0000000..e019928 --- /dev/null +++ b/examples/probesets-experiment-metadata.scm @@ -0,0 +1,93 @@ +#! /usr/bin/env guile +!# + +(use-modules (srfi srfi-1) + (srfi srfi-26) + (ice-9 getopt-long) + (ice-9 match) + (ice-9 regex) + (transform strings) + (transform sql) + (transform triples) + (transform special-forms) + (web uri)) + + +(define-transformer probesetxref->metadata + (tables (ProbeSetXRef + (inner-join ProbeSetFreeze "ON ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id") + (inner-join ProbeSet "ON ProbeSet.Id = ProbeSetXRef.ProbeSetId"))) + (triples (string->identifier + "probeset_data" + (uri-encode + (format #f "~a_~a" (field ProbeSetFreeze Name ProbeSetFreezeName) (field ProbeSet Name ProbeSetName))) #:separator "_") + (set rdf:type 'gnc:molecular_trait_metadata) + (set gnt:has_probeset (string->identifier "probeset" (field ProbeSet Name ProbeSetName))) + (set dcat:isPartOf (string->identifier "dataset" (field ProbeSetFreeze Name ProbeSetFreezeName) + #:separator "_")) + (set gnt:mean (annotate-field (field ("IFNULL(ProbeSetXRef.mean, '')" mean)) + '^^xsd:double)) + (set gnt:SE (annotate-field (field ("IFNULL(ProbeSetXRef.se, '')" se)) + '^^xsd:double)) + (set gnt:locus (sanitize-rdf-string (field ProbeSetXRef Locus))) + (set gnt:lod_score (annotate-field + (field ("IFNULL((ProbeSetXRef.LRS/4.604), '')" lrs)) + '^^xsd:double)) + (set gnt:pvalue (annotate-field + (field ("IFNULL((ProbeSetXRef.pValue), '')" pValue)) + '^^xsd:double)) + (set gnt:additive (annotate-field + (field ("IFNULL((ProbeSetXRef.additive), '')" additive)) + '^^xsd:double)) + (set gnt:h2 (annotate-field + (field ("IFNULL((ProbeSetXRef.h2), '')" h2)) + '^^xsd:double)))) + + + +(let* ((option-spec + '((settings (single-char #\s) (value #t)) + (output (single-char #\o) (value #t)) + (documentation (single-char #\d) (value #t)))) + (options (getopt-long (command-line) option-spec)) + (settings (option-ref options 'settings #f)) + (output (option-ref options 'output #f)) + (documentation (option-ref options 'documentation #f)) + (%connection-settings + (call-with-input-file settings + read))) + (call-with-target-database + %connection-settings + (lambda (db) + (with-documentation + (name "ProbeSet Experiments Metadata") + (connection %connection-settings) + (table-metadata? #f) + (total-rows (assoc-ref + (sql-find db "SELECT count(*) AS count from ProbeSetXRef") + "count")) + (rows-per-chunk 1000000) + (prefixes + '(("gn:" "<http://rdf.genenetwork.org/v1/id/>") + ("gnc:" "<http://rdf.genenetwork.org/v1/category/>") + ("gnt:" "<http://rdf.genenetwork.org/v1/term/>") + ("rdf:" "<http://www.w3.org/1999/02/22-rdf-syntax-ns#>") + ("kegg:" "<http://bio2rdf.org/ns/kegg#>") + ("pubchem:" "<https://pubchem.ncbi.nlm.nih.gov/>") + ("omim:" "<https://www.omim.org/entry/>") + ("rdfs:" "<http://www.w3.org/2000/01/rdf-schema#>") + ("uniprot:" "<http://purl.uniprot.org/uniprot/>") + ("chebi:" "<http://purl.obolibrary.org/obo/CHEBI_>") + ("dcat:" "<http://www.w3.org/ns/dcat#>") + ("dct:" "<http://purl.org/dc/terms/>") + ("owl:" "<http://www.w3.org/2002/07/owl#>") + ("homologene:" "<https://bio2rdf.org/homologene:>") + ("xsd:" "<http://www.w3.org/2001/XMLSchema#>") + ("qb:" "<http://purl.org/linked-data/cube#>") + ("sdmx-measure:" "<http://purl.org/linked-data/sdmx/2009/measure#>") + ("skos:" "<http://www.w3.org/2004/02/skos/core#>"))) + (inputs + (list probesetxref->metadata)) + (outputs + `(#:documentation ,documentation + #:rdf ,output)))))) |
