UNPKG

gtf-nostream

Version:

utilities to read GTF data

164 lines (121 loc) 3.66 kB
# gtf-nostream [![Build Status](https://img.shields.io/github/actions/workflow/status/cmdcolin/gtf-nostream/push.yml?branch=master&logo=github&style=for-the-badge)](https://github.com/cmdcolin/gtf-nostream/actions?query=branch%3Amaster+workflow%3APush+) Parse GTF data. This is a simplified version of [@gmod/gtf](https://github.com/GMOD/gtf-js) for with just basic parsing and no node.js stream module usage ## Install $ npm install --save gtf-nostream ## Usage ```js const { parseStringSync } = require('gtf-nostream') // or in ES6 (recommended) import { parseStringSync } from 'gtf-nostream' const fs = require('fs') // parse a string of gtf synchronously const stringOfGTF = fs.readFileSync('my_annotations.gtf', 'utf8') const arrayOfThings = gtf.parseStringSync(stringOfGTF) ``` ## Object format ### features In GTF, features can have more than one location. We parse features as arrayrefs of all the lines that share that feature's ID. Values that are `.` in the GTF are `null` in the output. A simple feature that's located in just one place: ```json [ { "seq_id": "ctg123", "source": null, "type": "gene", "start": 1000, "end": 9000, "score": null, "strand": "+", "phase": null, "attributes": { "ID": ["gene00001"], "Name": ["EDEN"] }, "child_features": [], "derived_features": [] } ] ``` A CDS called `cds00001` located in two places: ```json [ { "seq_id": "ctg123", "source": null, "type": "CDS", "start": 1201, "end": 1500, "score": null, "strand": "+", "phase": "0", "attributes": { "ID": ["cds00001"], "Parent": ["mRNA00001"] }, "child_features": [], "derived_features": [] }, { "seq_id": "ctg123", "source": null, "type": "CDS", "start": 3000, "end": 3902, "score": null, "strand": "+", "phase": "0", "attributes": { "ID": ["cds00001"], "Parent": ["mRNA00001"] }, "child_features": [], "derived_features": [] } ] ``` ## API <!-- Generated by documentation.js. Update this documentation by updating the source code. --> #### Table of Contents - [ParseOptions](#parseoptions) - [disableDerivesFromReferences](#disablederivesfromreferences) - [encoding](#encoding) - [parseFeatures](#parsefeatures) - [parseDirectives](#parsedirectives) - [parseComments](#parsecomments) - [parseSequences](#parsesequences) - [parseAll](#parseall) ### ParseOptions Parser options #### disableDerivesFromReferences Whether to resolve references to derives from features Type: [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean) #### encoding Text encoding of the input GTF. default 'utf8' Type: BufferEncoding #### parseFeatures Whether to parse features, default true Type: [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean) #### parseDirectives Whether to parse directives, default false Type: [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean) #### parseComments Whether to parse comments, default false Type: [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean) #### parseSequences Whether to parse sequences, default true Type: [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean) #### parseAll Parse all features, directives, comments, and sequences. Overrides other parsing options. Default false. Type: [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)