Skip to content

Instantly share code, notes, and snippets.

@jimfleming
Created April 8, 2013 04:37
Show Gist options
  • Save jimfleming/5334265 to your computer and use it in GitHub Desktop.
Save jimfleming/5334265 to your computer and use it in GitHub Desktop.
Reads a 23andme genome download into redis
fs = require 'fs'
path = require 'path'
redis = require('redis').createClient()
multi = redis.multi()
console.log 'Reading...'
fileName = process.argv.slice(-1)[0]
filePath = path.join process.cwd, fileName
fileStream = fs.createReadStream filePath
fileStream.on 'data', (data) ->
data.toString().split('\r\n').forEach (line) ->
if /^\s*#/.test line or not line
return
[rsid, chromosome, position, genotype] = line.split '\t'
unless rsid and chromosome and position and genotype
return
multi.zadd "genome:#{chromosome}", position, "#{rsid}:#{genotype}", (err) ->
console.error err.message, rsid, chromosome, position, genotype
fileStream.on 'end', ->
console.log 'Done. Writing...'
multi.exec (err) -> console.log "Done. #{err?.message}"
fileStream.on 'error', (err) ->
console.error err.message
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment