From 3a7bcfb8f3eb8eb9a198542fcb9abc0c7242bbfa Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 9 Sep 2021 15:10:21 +0530 Subject: Dump Tissue. * dump.scm (tissue-short-name->id, dump-tissue): New functions. Invoke dump-tissue. --- dump.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/dump.scm b/dump.scm index d0d320a..d49e8bf 100755 --- a/dump.scm +++ b/dump.scm @@ -273,6 +273,25 @@ Lab_code, Submitter, Owner, Authorized_Users FROM Phenotype")) FROM PublishXRef INNER JOIN InbredSet USING (InbredSetId)")) +(define (tissue-short-name->id short-name) + (string->symbol (string-append "gn:tissue" short-name))) + +(define (dump-tissue db) + ;; The Name and TissueName fields seem to be identical. BIRN_lex_ID + ;; and BIRN_lex_Name are mostly NULL. + ;; TODO: Use standard ontology. + (triple 'gn:name 'rdfs:subPropertyOf 'rdfs:label) + (sql-for-each (match-lambda + (((_ . name) + (_ . short-name)) + ;; Hopefully the Short_Name field is distinct and + ;; can be used as an identifier. + (let ((id (tissue-short-name->id short-name))) + (triple id 'rdf:type 'gn:tissue) + (triple id 'gn:name name)))) + db + "SELECT Name, Short_Name FROM Tissue")) + (define (dump-data-table db table-name data-field) (let ((dump-directory (string-append %dump-directory "/" table-name)) (port #f) @@ -321,3 +340,4 @@ INNER JOIN InbredSet USING (InbredSetId)")) (dump-phenotype db) (dump-publication db) (dump-publish-xref db))))) + (dump-tissue db) -- cgit v1.2.3