about summary refs log tree commit diff
path: root/examples/genotype.scm
diff options
context:
space:
mode:
Diffstat (limited to 'examples/genotype.scm')
-rwxr-xr-xexamples/genotype.scm102
1 files changed, 28 insertions, 74 deletions
diff --git a/examples/genotype.scm b/examples/genotype.scm
index 7e72cf8..4a91b63 100755
--- a/examples/genotype.scm
+++ b/examples/genotype.scm
@@ -12,74 +12,22 @@
              (transform sql)
              (transform triples)
              (transform special-forms))
-
 
-
-(define-transformer genotypes
+(define-transformer gn:markers/snps->metadata
   (tables (Geno
-           (left-join Species "USING (SpeciesId)")))
-  (schema-triples
-   (gnt:chr a owl:ObjectProperty)
-   (gnt:chr skos:description "This resource is located on a given chromosome")
-   (gnt:chr rdfs:domain gnc:Genotype)
-   (gnt:mb a owl:ObjectProperty)
-   (gnt:mb skos:definition "The size of this resource in Mb")
-   (gnt:mb rdfs:domain gnc:Genotype)
-   (gnt:mbMm8 a owl:ObjectProperty)
-   (gnt:mbMm8 skos:definition "TODO")
-   (gnt:mbMm8 rdfs:domain gnc:Genotype)
-   (gnt:mb2016 a owl:ObjectProperty)
-   (gnt:mb2016 skos:definition "TODO")
-   (gnt:mb2016 rdfs:domain gnc:Genotype)
-   (gnt:hasSequence a owl:ObjectProperty)
-   (gnt:hasSequence skos:definition "This resource has a given sequence")
-   (gnt:hasSequence rdfs:domain gnc:Genotype)
-   (gnt:hasSource a owl:ObjectProperty)
-   (gnt:hasSource rdfs:domain gnc:Genotype)
-   (gnt:hasSource skos:definition "This resource was obtained from this given source")
-   (gnt:hasAltSourceName a owl:ObjectProperty)
-   (gnt:hasAltSourceName rdfs:domain gnc:Genotype)
-   (gnt:hasAltSourceName
-    skos:definition
-    "The alternative name this resource was obtained from")
-   (gnt:chrNum a owl:ObjectProperty)
-   (gnt:chrNum rdfs:domain gnc:Genotype)
-   (gnt:chrNum skos:definition "The chromosome number for this resource"))
-  (triples
-      (string->identifier
-       ""
-       (regexp-substitute/global
-        #f "[^A-Za-z0-9:]"
-        (field Geno Name)
-        'pre "_" 'post)
-       #:separator ""
-       #:proc string-capitalize-first)
-    (set rdf:type 'gnc:Genotype)
-    (set rdfs:label (sanitize-rdf-string (field Geno Name)))
+           (inner-join Species "ON Geno.SpeciesId = Species.Id"))
+          "WHERE Species.Name != 'monkey'")
+  (triples (string->identifier "marker" (field Geno Name) #:separator "_")
+    (set gnt:has_species
+         (string->identifier "" (remap-species-identifiers (field Species Fullname))))
+    (set rdf:type 'gnc:dna_marker)
+    (set skos:prefLabel (field Geno Name))
+    (set skos:altLabel (field Geno Marker_Name))
     (set gnt:chr (field Geno Chr))
-    (set gnt:mb (annotate-field
-                 (field ("IFNULL(Geno.Mb, '')" Mb)) '^^xsd:double))
-    (set gnt:mbMm8 (annotate-field (field ("IFNULL(Geno.Mb_mm8, '')" Mb_mm8))
-                                   '^^xsd:double))
-    (set gnt:mb2016
-         (annotate-field (field ("IFNULL(Geno.Mb_2016, '')" Mb_2016))
-                         '^^xsd:double))
-    (set gnt:hasSequence (field Geno Sequence))
-    (set gnt:hasSource (field Geno Source))
-    ;; Only transform Source2 if it differs from Source
-    (set gnt:hasAltSourceName
-         (field ("IF((Source2 = Source), NULL, Source2)"
-                 Source2)))
-    (set gnt:belongsToSpecies
-         (string->identifier
-          "" (remap-species-identifiers (field Species Fullname))
-          #:separator ""
-          #:proc string-capitalize-first))
-    (set gnt:chrNum
-         (annotate-field
-          (field Geno chr_num)
-          '^^xsd:int))
-    (set rdfs:comments (field Geno Comments))))
+    (set gnt:mb (annotate-field (field Geno Mb) '^^xsd:doubleg))
+    (set gnt:sequence (field Geno Sequence))
+    (set gnt:source (field Geno Source))
+    (set rdfs:comment (field Geno Comments))))
 
 
 
@@ -95,22 +43,28 @@
         (call-with-input-file settings
           read)))
   (with-documentation
-   (name "Genotype Metadata")
+   (name "Phenotypes Metadata")
    (connection %connection-settings)
    (table-metadata? #f)
    (prefixes
-    '(("dct:" "<http://purl.org/dc/terms/>")
-      ("gn:" "<http://genenetwork.org/id/>")
-      ("gnc:" "<http://genenetwork.org/category/>")
-      ("gnt:" "<http://genenetwork.org/term/>")
-      ("rdf:" "<http://www.w3.org/1999/02/22-rdf-syntax-ns#>")
-      ("rdfs:" "<http://www.w3.org/2000/01/rdf-schema#>")
+    '(("dcat:" "<http://www.w3.org/ns/dcat#>")
+      ("dct:" "<http://purl.org/dc/terms/>")
+      ("gn:" "<http://rdf.genenetwork.org/v1/id/>")
       ("owl:" "<http://www.w3.org/2002/07/owl#>")
+      ("gnc:" "<http://rdf.genenetwork.org/v1/category/>")
+      ("gnd:" "<https://cd.genenetwork.org/lmdb/v1/data/traits/>")
+      ("gnt:" "<http://rdf.genenetwork.org/v1/term/>")
+      ("sdmx-measure:" "<http://purl.org/linked-data/sdmx/2009/measure#>")
       ("skos:" "<http://www.w3.org/2004/02/skos/core#>")
+      ("rdf:" "<http://www.w3.org/1999/02/22-rdf-syntax-ns#>")
+      ("rdfs:" "<http://www.w3.org/2000/01/rdf-schema#>")
+      ("xsd:" "<http://www.w3.org/2001/XMLSchema#>")
+      ("qb:" "<http://purl.org/linked-data/cube#>")
       ("xkos:" "<http://rdf-vocabulary.ddialliance.org/xkos#>")
-      ("xsd:" "<http://www.w3.org/2001/XMLSchema#>")))
+      ("pubmed:" "<http://rdf.ncbi.nlm.nih.gov/pubmed/>")))
    (inputs
-    (list genotypes))
+    (list gn:markers/snps->metadata))
    (outputs
     `(#:documentation ,documentation
       #:rdf ,output))))
+