#! /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)) (define-transformer gn:platform->metadata (tables (GeneChip (left-join Species "USING (SpeciesId)"))) (schema-triples (gnc:gene_chip a skos:ConceptScheme) (gnc:gene_chip skos:prefLabel "Gene Chip Vocabulary") (gnc:gene_chip skos:definition "A controlled vocabulary used to describe gene chip and microarray platforms.") (gnt:has_geo_series_id rdf:type owl:ObjectProperty) (gnt:has_geo_series_id rdf:label "has GEO Series ID") (gnt:has_geo_series_id rdfs:domain skos:Concept) (gnt:has_go_tree_value a owl:ObjectProperty) (gnt:has_go_tree_value rdfs:label "has GO tree value") (gnt:has_go_tree_value rdfs:comment "Associates a gene chip concept with a Gene Ontology term used for categorization.") (gnt:has_go_tree_value rdfs:domain skos:Concept) (gnt:has_go_tree_value rdfs:range xsd:string)) (triples (string->identifier "platform" (field GeneChip Name) #:separator "_") (set rdf:type 'skos:Concept) (set skos:inScheme (field GeneChip GeneChipName)) (set skos:prefLabel (field GeneChip Name)) (set skos:altLabel (field ("IF(GeneChip.GeneChipName != GeneChip.Title, Title, NULL)" Title))) (set gnt:has_go_tree_value (field GeneChip Go_tree_value)) (set gnt:has_species (string->identifier "" (remap-species-identifiers (field Species Fullname)))) (set gnt:has_geo_series_id (ontology 'geoSeries: (string-trim-both (field GeneChip GeoPlatform)))))) (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))) (with-documentation (name "GeneChip Metadata") (connection %connection-settings) (table-metadata? #f) (prefixes '(("xsd:" "") ("skos:" "") ("geoSeries:" "") ("gnt:" "") ("gn:" "") ("gnc:" "") ("rdf:" "") ("owl:" "") ("rdfs:" ""))) (inputs (list gene-chip)) (outputs `(#:documentation ,documentation #:rdf ,output))))