From ce9c373a3dee7d44d78bf109a8710294c0878133 Mon Sep 17 00:00:00 2001 From: Caralyn Reisle Date: Mon, 18 Jan 2021 12:07:39 -0800 Subject: [PATCH 1/5] Use matrix of node versions --- .github/workflows/npm-test.yml | 9 +++++++-- README.md | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/npm-test.yml b/.github/workflows/npm-test.yml index 4d9cfbc..327ca5f 100644 --- a/.github/workflows/npm-test.yml +++ b/.github/workflows/npm-test.yml @@ -5,16 +5,20 @@ on: [push] jobs: build: runs-on: ubuntu-latest + strategy: + matrix: + node: [10, 12, 14] + name: node-${{ matrix.node }} steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: 12 + node-version: ${{ matrix.node }} - run: npm ci - run: npm test - name: Publish Unit Test Results uses: EnricoMi/publish-unit-test-result-action@v1.6 - if: always() + if: matrix.node == 12 with: github_token: ${{ secrets.GITHUB_TOKEN }} files: coverage/junit.xml @@ -22,3 +26,4 @@ jobs: with: yml: codecov.yml token: ${{ secrets.CODECOV_TOKEN }} + if: matrix.node == 12 diff --git a/README.md b/README.md index 7bc3c31..0e296ec 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # GraphKB Parser -[![codecov](https://codecov.io/gh/bcgsc/pori_graphkb_parser/branch/master/graph/badge.svg?token=D3IG5YL6JT)](https://codecov.io/gh/bcgsc/pori_graphkb_parser) ![build](https://github.com/bcgsc/pori_graphkb_parser/workflows/build/badge.svg?branch=master) [![npm version](https://badge.fury.io/js/%40bcgsc-pori%2Fgraphkb-parser.svg)](https://badge.fury.io/js/%40bcgsc-pori%2Fgraphkb-parser) +[![codecov](https://codecov.io/gh/bcgsc/pori_graphkb_parser/branch/master/graph/badge.svg?token=D3IG5YL6JT)](https://codecov.io/gh/bcgsc/pori_graphkb_parser) ![build](https://github.com/bcgsc/pori_graphkb_parser/workflows/build/badge.svg?branch=master) [![npm version](https://badge.fury.io/js/%40bcgsc-pori%2Fgraphkb-parser.svg)](https://badge.fury.io/js/%40bcgsc-pori%2Fgraphkb-parser) ![node versions](https://img.shields.io/badge/node-10%20%7C%2012%20%7C%2014-blue) - [About](#about) - [Getting Started](#getting-started) From 7cfea9dd3bcf3d2c2b024d6052eb729a8af9a30a Mon Sep 17 00:00:00 2001 From: Caralyn Reisle Date: Thu, 15 Apr 2021 15:43:34 -0700 Subject: [PATCH 2/5] Add link to main PORI repo --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0e296ec..d13af70 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ [![codecov](https://codecov.io/gh/bcgsc/pori_graphkb_parser/branch/master/graph/badge.svg?token=D3IG5YL6JT)](https://codecov.io/gh/bcgsc/pori_graphkb_parser) ![build](https://github.com/bcgsc/pori_graphkb_parser/workflows/build/badge.svg?branch=master) [![npm version](https://badge.fury.io/js/%40bcgsc-pori%2Fgraphkb-parser.svg)](https://badge.fury.io/js/%40bcgsc-pori%2Fgraphkb-parser) ![node versions](https://img.shields.io/badge/node-10%20%7C%2012%20%7C%2014-blue) +This repository is part of the [platform for oncogenomic reporting and interpretation](https://github.com/bcgsc/pori). + - [About](#about) - [Getting Started](#getting-started) From eac815c95f850a3f0f514c5f4a96c8fe5d7ba43a Mon Sep 17 00:00:00 2001 From: Caralyn Reisle Date: Fri, 23 Apr 2021 11:08:19 -0700 Subject: [PATCH 3/5] Support five prime UTR cds variants Resolved: #5 --- README.md | 2 +- src/index.js | 2 +- src/position.js | 15 +++++++++++---- test/variant/continuous.test.js | 22 +++++++++++++++++++--- 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index d13af70..11dc8be 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ parsed notation. ## Getting Started -Import the package +Import the package (Or try it out online with [RunKit](https://runkit.com/creisle/6083062ff39ff0001b93ea6f)) ```js const kbp = require('@bcgsc-pori/graphkb-parser'); diff --git a/src/index.js b/src/index.js index d1df320..2c4cd54 100644 --- a/src/index.js +++ b/src/index.js @@ -4,5 +4,5 @@ const error = require('./error'); const constants = require('./constants'); module.exports = { - variant, position, error, constants, + variant, position, error, constants, parse: variant.parse, }; diff --git a/src/position.js b/src/position.js index 381cf43..11fc11b 100644 --- a/src/position.js +++ b/src/position.js @@ -5,7 +5,7 @@ const { ParsingError, InputValidationError } = require('./error'); const { AA_PATTERN, AA_CODES } = require('./constants'); -const CDS_PATT = /(\d+)?([-+]\d+)?/; +const CDS_PATT = /(-?\d+)?([-+]\d+)?/; const PROTEIN_PATT = new RegExp(`(${AA_PATTERN})?(\\d+|\\?)`); const CYTOBAND_PATT = /[pq]((\d+|\?)(\.(\d+|\?))?)?/; @@ -145,16 +145,22 @@ class IntronicPosition extends BasicPosition { } -class CdsPosition extends BasicPosition { +class CdsPosition extends Position { /** * @param {Object} opt options * @param {string} opt.prefix the position prefix * @param {Number} opt.offset the offset from the nearest cds position */ constructor(opt) { - const { offset } = opt; + const { offset, pos } = opt; super(opt); + if (pos === '?' || pos === null) { + this.pos = null; + } else { + this.pos = Number(pos); + } + if (offset === null) { this.offset = null; } else if (offset !== undefined) { @@ -169,6 +175,7 @@ class CdsPosition extends BasicPosition { } } + toString() { let offset = ''; @@ -180,7 +187,7 @@ class CdsPosition extends BasicPosition { } offset = `${offset}${this.offset}`; } - return `${super.toString(this)}${offset}`; + return `${this.pos || '?'}${offset}`; } static get prefix() { diff --git a/test/variant/continuous.test.js b/test/variant/continuous.test.js index 88b5522..99a7fab 100644 --- a/test/variant/continuous.test.js +++ b/test/variant/continuous.test.js @@ -260,6 +260,22 @@ describe('coding sequence like', () => { expect(result.toString()).toBe(notation); }); + test('five prime UTR intron', () => { + const notation = 'FEATURE:c.-23+1A>G'; + const result = parse(notation); + const exp = { + type: 'substitution', + break1Start: { '@class': 'CdsPosition', pos: -23, offset: 1 }, + break1Repr: 'c.-23+1', + reference1: 'FEATURE', + refSeq: 'A', + untemplatedSeqSize: 1, + untemplatedSeq: 'G', + }; + expect(result.toJSON()).toEqual(exp); + expect(result.toString()).toBe(notation); + }); + test('noncoding deletion single bp', () => { const notation = 'FEATURE:n.3+1del'; const result = parse(notation); @@ -458,15 +474,15 @@ describe('coding sequence like', () => { const result = parse(notation); const exp = { type: NOTATION_TO_TYPES['>'], - break1Start: { '@class': 'CdsPosition', pos: 1, offset: -124 }, - break1Repr: 'c.1-124', + break1Start: { '@class': 'CdsPosition', pos: -124, offset: 0 }, + break1Repr: 'c.-124', untemplatedSeq: 'T', untemplatedSeqSize: 1, refSeq: 'C', reference1: 'FEATURE', }; expect(result.toJSON()).toEqual(exp); - expect(result.toString()).toBe('FEATURE:c.1-124C>T'); + expect(result.toString()).toBe('FEATURE:c.-124C>T'); }); }); From e86e09565950c5f751c886180fb5b0a5e8549caa Mon Sep 17 00:00:00 2001 From: Caralyn Reisle Date: Mon, 26 Apr 2021 14:27:20 -0700 Subject: [PATCH 4/5] Bump version to 1.1.2 --- package-lock.json | 10 ++++------ package.json | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3b5d51e..593a68d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@bcgsc-pori/graphkb-parser", - "version": "1.1.1", + "version": "1.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3220,7 +3220,6 @@ "version": "2.9.0", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -3239,7 +3238,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -17299,9 +17297,9 @@ "dev": true }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { diff --git a/package.json b/package.json index 160368a..2259598 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bcgsc-pori/graphkb-parser", - "version": "1.1.1", + "version": "1.1.2", "description": "A package for parsing and recreating HGVS-like variant notation used in GraphKB", "main": "./src/index.js", "directories": { From e1846419eb944f41813501bdadf49747191e7d26 Mon Sep 17 00:00:00 2001 From: Caralyn Reisle Date: Mon, 26 Apr 2021 14:33:18 -0700 Subject: [PATCH 5/5] Add codecov yml to fix coverage checks --- codecov.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 codecov.yml diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..c12fe6e --- /dev/null +++ b/codecov.yml @@ -0,0 +1,6 @@ +coverage: + status: + project: + default: + target: 90% + threshold: 1%