diff options
| -rwxr-xr-x | examples/molecular-traits.scm | 64 |
1 files changed, 28 insertions, 36 deletions
diff --git a/examples/molecular-traits.scm b/examples/molecular-traits.scm index 47efb98..9e826f6 100755 --- a/examples/molecular-traits.scm +++ b/examples/molecular-traits.scm @@ -11,67 +11,58 @@ (transform triples) (transform special-forms)) -(define-transformer molecular-entities + +(define-transformer tissues->gn:molecular-traits (tables (Tissue)) (schema-triples (gnc:molecular_trait a owl:Class) (gnc:molecular_trait a skos:Concept) (gnc:molecular_trait rdfs:subClassOf obo:UBERON_0000479) (gnc:molecular_trait rdfs:label "Molecular Trait. This describes a melecular trait of a given species. We combine the species name and the tissue name in order to differentiate the traits across different inbredset groups.")) - (triples (string->identifier "tissue" (field Tissue Short_Name) #:separator "_") + (triples (string->identifier "trait" (field Tissue Short_Name) #:separator "_") (set rdf:type 'gnc:molecular_trait) (set skos:prefLabel (field Tissue Name)) (set skos:altLabel (field Tissue Short_Name)))) -(define-transformer molecular-traits +(define-transformer gnc:molecular_trait->gn:molecular_trait + (tables (Tissue)) + (triples "gnc:molecular_trait" + (set skos:member (string->identifier "trait" (field Tissue Short_Name) #:separator "_")))) + +(define-transformer gn:set->gn:dataset (tables (Species (inner-join InbredSet "ON InbredSet.SpeciesId = Species.Id") (inner-join ProbeFreeze "ON ProbeFreeze.InbredSetId = InbredSet.Id") (inner-join ProbeSetFreeze "ON ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id") (inner-join Tissue "ON ProbeFreeze.TissueId = Tissue.Id")) "WHERE ProbeSetFreeze.public > 0 GROUP BY Species.Name, Tissue.Short_Name") - (schema-triples - (gnt:has_molecular_trait rdf:type owl:ObjectProperty) - (gnt:has_molecular_trait rdfs:domain gnc:set) - (gnt:has_molecular_trait rdfs:range gnc:molecular_traits) - (gnt:has_molecular_trait rdfs:label "has molecular trait")) - (triples (string->identifier - (format #f "trait_~a" (field Species Name)) - (field Tissue Short_Name) - #:separator "_") - (set rdf:type 'gnc:molecular_entity) - (set gnt:has_strain - (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_")) - (set gnt:has_species - (string->identifier "" (remap-species-identifiers (field Species Fullname)))) + (triples (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_") (multiset gnt:has_probeset_data (map (cut string->identifier "dataset" <> #:separator "_") (string-split (field ("GROUP_CONCAT(ProbeSetFreeze.Name SEPARATOR ',')" dataset_name)) - #\,))) - (set gnt:has_molecular_trait - (string->identifier "tissue" - (field Tissue Short_Name) - #:separator "_")))) + #\,))))) -(define-transformer list-molecular-traits +(define-transformer gn:dataset->set/species/molecular_trait (tables (Species (inner-join InbredSet "ON InbredSet.SpeciesId = Species.Id") (inner-join ProbeFreeze "ON ProbeFreeze.InbredSetId = InbredSet.Id") (inner-join ProbeSetFreeze "ON ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id") (inner-join Tissue "ON ProbeFreeze.TissueId = Tissue.Id")) - "WHERE ProbeSetFreeze.public > 0 GROUP BY Species.Name, Tissue.Short_Name") + "WHERE ProbeSetFreeze.public > 0") (schema-triples - (gnc:molecular_entity a owl:Class) - (gnc:molecular_entity a skos:Concept) - (gnc:molecular_entity rdfs:subClassOf obo:UBERON_0000479) - (gnc:molecular_entity rdfs:label "This points this to resource which has molecular trait.")) - (triples (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_") - (set gnt:has_molecular_entity - (string->identifier (format #f "trait_~a" - (field Species Name)) - (field Tissue Short_Name) #:separator "_")))) + (gnt:has_molecular_trait rdf:type owl:ObjectProperty) + (gnt:has_molecular_trait rdfs:domain gnc:set) + (gnt:has_molecular_trait rdfs:range gnc:molecular_trait) + (gnt:has_molecular_trait rdfs:label "has molecular trait")) + (triples (string->identifier "dataset" (field ProbeSetFreeze Name) #:separator "_") + (set gnt:has_strain + (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_")) + (set gnt:has_species + (string->identifier "" (remap-species-identifiers (field Species Fullname)))) + (set gnt:has_molecular_trait + (string->identifier "trait" (field Tissue Short_Name) #:separator "_")))) @@ -102,9 +93,10 @@ ("rdfs:" "<http://www.w3.org/2000/01/rdf-schema#>"))) (inputs (list - molecular-entities - molecular-traits - list-molecular-traits)) + tissues->gn:molecular-traits + gnc:molecular_trait->gn:molecular_trait + gn:set->gn:dataset + gn:dataset->set/species/molecular_trait)) (outputs `(#:documentation ,documentation #:rdf ,output)))) |
