From f5e0df7a66f4dbecb27c8e4f41ac760746d6c9de Mon Sep 17 00:00:00 2001 From: Munyoki Kilyungi Date: Mon, 16 Feb 2026 14:51:31 +0300 Subject: Add probesetXRef metadata. Signed-off-by: Munyoki Kilyungi --- examples/probesets-experiment-metadata.scm | 93 ++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100755 examples/probesets-experiment-metadata.scm 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:" "") + ("gnc:" "") + ("gnt:" "") + ("rdf:" "") + ("kegg:" "") + ("pubchem:" "") + ("omim:" "") + ("rdfs:" "") + ("uniprot:" "") + ("chebi:" "") + ("dcat:" "") + ("dct:" "") + ("owl:" "") + ("homologene:" "") + ("xsd:" "") + ("qb:" "") + ("sdmx-measure:" "") + ("skos:" ""))) + (inputs + (list probesetxref->metadata)) + (outputs + `(#:documentation ,documentation + #:rdf ,output)))))) -- cgit 1.4.1