aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMunyoki Kilyungi2026-02-06 05:32:44 +0300
committerMunyoki Kilyungi2026-02-06 05:32:44 +0300
commitde0a0805415f3b1b2381345d4efd402f1e1249e2 (patch)
tree751a01581e65d360feba8790bfc2fed3c7878b24
parent418568557b2b0d2ca977e5fe1594ed280b4f92f8 (diff)
downloadgn-transform-databases-de0a0805415f3b1b2381345d4efd402f1e1249e2.tar.gz
Clean-up phenotype transform.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
-rwxr-xr-xexamples/phenotype-datasets.scm54
-rwxr-xr-xexamples/phenotype.scm51
2 files changed, 52 insertions, 53 deletions
diff --git a/examples/phenotype-datasets.scm b/examples/phenotype-datasets.scm
index 410178a..4819627 100755
--- a/examples/phenotype-datasets.scm
+++ b/examples/phenotype-datasets.scm
@@ -15,13 +15,17 @@
(define-transformer gn:set->gn:dataset
- (tables (Datasets
- (inner-join InfoFiles "ON InfoFiles.DatasetId = Datasets.DatasetId")
- (inner-join InbredSet "ON InbredSet.Id = InfoFiles.InbredSetId")
+ (tables (Species
+ (inner-join InbredSet "ON InbredSet.SpeciesId = Species.Id")
(inner-join PublishFreeze "ON PublishFreeze.InbredSetId = InbredSet.Id"))
- "WHERE PublishFreeze.public > 0 GROUP BY Datasets.DatasetId")
+ "WHERE PublishFreeze.public > 0 AND Species.Name != 'monkey' GROUP BY Species.Name, PublishFreeze.ShortName")
(triples (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_")
- (set gnt:has_phenotype_data (string->identifier "dataset" (field PublishFreeze Name) #:separator "_"))))
+ (multiset gnt:has_phenotype_data
+ (map (cut string->identifier "dataset" <> #:separator "_")
+ (string-split
+ (field ("GROUP_CONCAT(PublishFreeze.Name SEPARATOR ',')"
+ dataset_name))
+ #\,)))))
(define-transformer gn:dataset->gn:set
(tables (Datasets
@@ -32,6 +36,40 @@
(triples (string->identifier "dataset" (field PublishFreeze Name) #:separator "_")
(set gnt:has_strain (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_"))))
+(define-transformer gn:dataset->metadata
+ (tables (PublishXRef
+ (inner-join InbredSet "ON InbredSet.InbredSetId = PublishXRef.InbredSetId")
+ (inner-join Species "ON InbredSet.SpeciesId = Species.Id")
+ (inner-join PublishFreeze "ON PublishFreeze.InbredSetId = InbredSet.Id")
+ (inner-join Publication "ON Publication.Id = PublishXRef.PublicationId")
+ (inner-join Phenotype "ON Phenotype.Id = PublishXRef.PhenotypeId"))
+ "WHERE InbredSet.public > 0 GROUP BY Species.Name, PublishFreeze.Name")
+ (triples (string->identifier "dataset" (field PublishFreeze Name) #:separator "_")
+ (set dct:created (annotate-field (field PublishFreeze CreateTime) '^^xsd:datetime))
+ (set gnt:has_strain (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_"))))
+
+(define-transformer gn:dataset->gn:trait
+ (tables (PublishXRef
+ (inner-join InbredSet "ON InbredSet.InbredSetId = PublishXRef.InbredSetId")
+ (inner-join Species "ON InbredSet.SpeciesId = Species.Id")
+ (inner-join PublishFreeze "ON PublishFreeze.InbredSetId = InbredSet.Id")
+ (inner-join Publication "ON Publication.Id = PublishXRef.PublicationId")
+ (inner-join Phenotype "ON Phenotype.Id = PublishXRef.PhenotypeId"))
+ "WHERE InbredSet.public > 0")
+ (triples (string->identifier "dataset" (field PublishFreeze Name) #:separator "_")
+ (set gnt:has_phenotype_trait
+ (let ((post-abbrev (blank-p (field Phenotype Post_publication_abbreviation)))
+ (pre-abbrev (blank-p (field Phenotype Pre_publication_abbreviation)))
+ (post-desc (blank-p (field Phenotype Post_publication_description)))
+ (pre-desc (blank-p (field Phenotype Post_publication_description))))
+ (string->identifier
+ "trait"
+ (format #f "~a_~a" (field PublishFreeze Name)
+ (or post-abbrev pre-abbrev post-desc pre-desc))
+ #:separator "_")))
+ (set dct:created (annotate-field (field PublishFreeze CreateTime) '^^xsd:datetime))
+ (set gnt:has_strain (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_"))))
+
(let* ((option-spec
'((settings (single-char #\s) (value #t))
@@ -61,7 +99,11 @@
("xkos:" "<http://rdf-vocabulary.ddialliance.org/xkos#>")
("xsd:" "<http://www.w3.org/2001/XMLSchema#>")))
(inputs
- (list gn:set->gn:dataset gn:dataset->gn:set))
+ (list
+ gn:set->gn:dataset
+ gn:dataset->gn:set
+ gn:dataset->metadata
+ gn:dataset->gn:trait))
(outputs
`(#:documentation ,documentation
#:rdf ,output))))
diff --git a/examples/phenotype.scm b/examples/phenotype.scm
index 43e92f1..834ff5a 100755
--- a/examples/phenotype.scm
+++ b/examples/phenotype.scm
@@ -12,55 +12,14 @@
(transform sql)
(transform triples)
(transform special-forms))
+
+
-(define-transformer gn:set->gn:dataset
- (tables (Species
- (inner-join InbredSet "ON InbredSet.SpeciesId = Species.Id")
- (inner-join PublishFreeze "ON PublishFreeze.InbredSetId = InbredSet.Id"))
- "WHERE PublishFreeze.public > 0 AND Species.Name != 'monkey' GROUP BY Species.Name, PublishFreeze.ShortName")
- (triples (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_")
- (multiset gnt:has_phenotype_data
- (map (cut string->identifier "dataset" <> #:separator "_")
- (string-split
- (field ("GROUP_CONCAT(PublishFreeze.Name SEPARATOR ',')"
- dataset_name))
- #\,)))))
-(define-transformer gn:dataset->metadata
- (tables (PublishXRef
- (inner-join InbredSet "ON InbredSet.InbredSetId = PublishXRef.InbredSetId")
- (inner-join Species "ON InbredSet.SpeciesId = Species.Id")
- (inner-join PublishFreeze "ON PublishFreeze.InbredSetId = InbredSet.Id")
- (inner-join Publication "ON Publication.Id = PublishXRef.PublicationId")
- (inner-join Phenotype "ON Phenotype.Id = PublishXRef.PhenotypeId"))
- "WHERE InbredSet.public > 0 GROUP BY Species.Name, PublishFreeze.Name")
- (triples (string->identifier "dataset" (field PublishFreeze Name) #:separator "_")
- (set dct:created (annotate-field (field PublishFreeze CreateTime) '^^xsd:datetime))
- (set gnt:has_strain (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_"))))
-(define-transformer gn:dataset->gn:trait
- (tables (PublishXRef
- (inner-join InbredSet "ON InbredSet.InbredSetId = PublishXRef.InbredSetId")
- (inner-join Species "ON InbredSet.SpeciesId = Species.Id")
- (inner-join PublishFreeze "ON PublishFreeze.InbredSetId = InbredSet.Id")
- (inner-join Publication "ON Publication.Id = PublishXRef.PublicationId")
- (inner-join Phenotype "ON Phenotype.Id = PublishXRef.PhenotypeId"))
- "WHERE InbredSet.public > 0")
- (triples (string->identifier "dataset" (field PublishFreeze Name) #:separator "_")
- (set gnt:has_phenotype_trait
- (let ((post-abbrev (blank-p (field Phenotype Post_publication_abbreviation)))
- (pre-abbrev (blank-p (field Phenotype Pre_publication_abbreviation)))
- (post-desc (blank-p (field Phenotype Post_publication_description)))
- (pre-desc (blank-p (field Phenotype Post_publication_description))))
- (string->identifier
- "trait"
- (format #f "~a_~a" (field PublishFreeze Name)
- (or post-abbrev pre-abbrev post-desc pre-desc))
- #:separator "_")))
- (set dct:created (annotate-field (field PublishFreeze CreateTime) '^^xsd:datetime))
- (set gnt:has_strain (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_"))))
+
(define-transformer gnc:phenotype->gn:phenotype
(tables (Phenotype))
@@ -196,9 +155,7 @@
("xkos:" "<http://rdf-vocabulary.ddialliance.org/xkos#>")
("pubmed:" "<http://rdf.ncbi.nlm.nih.gov/pubmed/>")))
(inputs
- (list gn:dataset->metadata
- gn:dataset->gn:trait
- gnc:phenotype->gn:phenotype
+ (list gnc:phenotype->gn:phenotype
gn:phenotype->metadata
gn:trait->gn:phenotype))
(outputs