Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

@gmod/twobit

1.1.1 • Public • Published

@gmod/twobit

NPM version Build Status

Read .2bit sequence files using pure JavaScript, works in node or in the browser.

Install

$ npm install --save @gmod/twobit

Usage

const { TwoBitFile } = require('@gmod/twobit')
const t = new TwoBitFile({
  path: require.resolve('./data/foo.2bit'),
})
 
// get the first 10 bases of a sequence from the file.
// coordinates are UCSC standard 0-based half-open
const chr1Region = await t.getSequence('chr1', 0, 10)
// chr1Region is now a string of bases, 'ACTG...'
 
// get a whole sequence from the file
const chr1Bases = await t.getSequence('chr1')
 
// get object with all seq lengths as { seqName => length, ... }
const allSequenceSizes = await t.getSequenceSizes()
 
// get the size of a single sequence
const chr1Size = await t.getSequenceSize('chr1')
 
// get an array of all sequence names in the file
const seqNames = await t.getSequenceNames()

API

TwoBitFile

Table of Contents

constructor

Parameters

  • args object
    • args.filehandle Filehandle? node fs.promises-like filehandle for the .2bit file. Only needs to support filehandle.read(buffer, offset, length, position)
    • args.path string? filesystem path for the .2bit file to open
    • args.seqChunkSize

getHeader

Returns Promise for object with the file's header information, like { magic: 0x1a412743, version: 0, sequenceCount: 42, reserved: 0 }

getIndex

Returns Promise for object with the file's index of offsets, like { seqName: fileOffset, ...}

getSequenceNames

Returns Promise for an array of string sequence names that are found in the file

getSequenceSizes

Returns Promise for an object listing the lengths of all sequences like {seqName: length, ...}

getSequenceSize

Parameters

  • seqName string name of the sequence

Returns Promise for the sequence's length, or undefined if it is not in the file

getSequence

Parameters

  • seqName string name of the sequence you want
  • regionStart number? optional 0-based half-open start of the sequence region to fetch. (optional, default 0)
  • regionEnd number? optional 0-based half-open end of the sequence region to fetch. defaults to end of the sequence

Returns Promise for a string of sequence bases

License

MIT © Robert Buels

Keywords

install

npm i @gmod/twobit

Downloadsweekly downloads

152

version

1.1.1

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
Report a vulnerability