diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/precompute/README.md | 4 | ||||
-rwxr-xr-x | scripts/precompute/precompute-hits.scm | 34 |
2 files changed, 31 insertions, 7 deletions
diff --git a/scripts/precompute/README.md b/scripts/precompute/README.md index c1f2efc..4c4dc87 100644 --- a/scripts/precompute/README.md +++ b/scripts/precompute/README.md @@ -5,3 +5,7 @@ Some work on precompute is documented [here](https://issues.genenetwork.org/topi # Install and run See the header of [precompute-hits.scm](precompute-hits.scm). + +# Development + +My preferred way of developing is tunneling mysql from a remote, running guile3 in a separate guix shell and geiser-connect from emacs. See my [guix-shell](../../.guix-shell). diff --git a/scripts/precompute/precompute-hits.scm b/scripts/precompute/precompute-hits.scm index 7986f6a..fed05ba 100755 --- a/scripts/precompute/precompute-hits.scm +++ b/scripts/precompute/precompute-hits.scm @@ -1,20 +1,40 @@ #! Run from base dir with -. .guix-shell -- guile -L . -s ./scripts/precompute/precompute-hits.scm +.guix-shell -- guile -L . -s ./scripts/precompute/precompute-hits.scm !# (use-modules (dbi dbi) (gn db mysql) + (rnrs base) + (ice-9 match) ) ;; potentially you want to test connection with mysql client: ;; -;; mysql -uwebqtlout -pwebqtlout -A -h 127.0.0.1 -P 3306 +;; mysql -uwebqtlout -pwebqtlout -A -h 127.0.0.1 -P 3306 db_webqtl -e "show tables;" ;; -(define db_webqtl (dbi-open "mysql" "webqtlout:webqtlout:db_webqtl:tcp:127.0.0.1:3306")) -(dbi-query db_webqtl "SELECT * FROM ProbeSetXRef LIMIT 3") -(display (dbi-get_status db_webqtl)) -(let [(row (dbi-get_row db_webqtl))] +(define db (dbi-open "mysql" "webqtlout:webqtlout:db_webqtl:tcp:127.0.0.1:3306")) +(db-check db) +(dbi-query db "SELECT * FROM ProbeSetXRef LIMIT 3") +(db-check db) +; (display (dbi-get_status db_webqtl)) +(let [(row (dbi-get_row db))] (display row) -) + ) + +(dbi-query db "SELECT StrainId,Strain.Name FROM Strain, StrainXRef WHERE StrainXRef.StrainId = Strain.Id AND StrainXRef.InbredSetId = 1 AND Used_for_mapping='Y' ORDER BY StrainId;") +(db-check db) + +(define (get-rows db) + (let [(row (dbi-get_row db))] + (if row + (begin + (display row) + (get-rows db) + ) + #f + ) + )) + +(get-rows db) |