@jbrowse/plugin-rdf 2.6.1 → 2.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -175,4 +175,3 @@ class SPARQLAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
175
175
  freeResources( /* { region } */) { }
176
176
  }
177
177
  exports.default = SPARQLAdapter;
178
- //# sourceMappingURL=SPARQLAdapter.js.map
@@ -31,4 +31,3 @@ exports.default = (0, configuration_1.ConfigurationSchema)('SPARQLAdapter', {
31
31
  description: 'Additional parameters to add to the query, e.g. "format=JSON"',
32
32
  },
33
33
  }, { explicitlyTyped: true });
34
- //# sourceMappingURL=configSchema.js.map
@@ -8,4 +8,3 @@ var SPARQLAdapter_1 = require("./SPARQLAdapter");
8
8
  Object.defineProperty(exports, "AdapterClass", { enumerable: true, get: function () { return __importDefault(SPARQLAdapter_1).default; } });
9
9
  var configSchema_1 = require("./configSchema");
10
10
  Object.defineProperty(exports, "configSchema", { enumerable: true, get: function () { return __importDefault(configSchema_1).default; } });
11
- //# sourceMappingURL=index.js.map
package/dist/index.js CHANGED
@@ -36,4 +36,3 @@ class RdfPlugin extends Plugin_1.default {
36
36
  }
37
37
  }
38
38
  exports.default = RdfPlugin;
39
- //# sourceMappingURL=index.js.map
@@ -169,4 +169,3 @@ export default class SPARQLAdapter extends BaseFeatureDataAdapter {
169
169
  }
170
170
  freeResources( /* { region } */) { }
171
171
  }
172
- //# sourceMappingURL=SPARQLAdapter.js.map
@@ -29,4 +29,3 @@ export default ConfigurationSchema('SPARQLAdapter', {
29
29
  description: 'Additional parameters to add to the query, e.g. "format=JSON"',
30
30
  },
31
31
  }, { explicitlyTyped: true });
32
- //# sourceMappingURL=configSchema.js.map
@@ -1,3 +1,2 @@
1
1
  export { default as AdapterClass } from './SPARQLAdapter';
2
2
  export { default as configSchema } from './configSchema';
3
- //# sourceMappingURL=index.js.map
package/esm/index.js CHANGED
@@ -30,4 +30,3 @@ export default class RdfPlugin extends Plugin {
30
30
  });
31
31
  }
32
32
  }
33
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-rdf",
3
- "version": "2.6.1",
3
+ "version": "2.6.3",
4
4
  "description": "JBrowse 2 RDF resources",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -20,7 +20,6 @@
20
20
  "main": "dist/index.js",
21
21
  "files": [
22
22
  "dist",
23
- "src",
24
23
  "esm"
25
24
  ],
26
25
  "scripts": {
@@ -33,7 +32,7 @@
33
32
  "useSrc": "node ../../scripts/useSrc.js",
34
33
  "prebuild": "npm run clean",
35
34
  "build:esm": "tsc --build tsconfig.build.esm.json",
36
- "build:es5": "tsc --build tsconfig.build.es5.json",
35
+ "build:commonjs": "tsc --build tsconfig.build.commonjs.json",
37
36
  "clean": "rimraf dist esm *.tsbuildinfo"
38
37
  },
39
38
  "dependencies": {
@@ -52,5 +51,5 @@
52
51
  "publishConfig": {
53
52
  "access": "public"
54
53
  },
55
- "gitHead": "1cbe7ba097fb2d2763c776e5e429e4670cdd583c"
54
+ "gitHead": "ed402c87efb0904858d602c363bd1757d5742129"
56
55
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"SPARQLAdapter.js","sourceRoot":"","sources":["../../src/SPARQLAdapter/SPARQLAdapter.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/SPARQLAdapter/configSchema.ts"],"names":[],"mappings":";;AAAA,+DAAiE;AAEjE,kBAAe,IAAA,mCAAmB,EAChC,eAAe,EACf;IACE,QAAQ,EAAE;QACR,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,6BAA6B;YAClC,YAAY,EAAE,aAAa;SAC5B;QACD,WAAW,EAAE,4BAA4B;KAC1C;IACD,aAAa,EAAE;QACb,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,gFAAgF;KACnF;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,sEAAsE;KACzE;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,gGAAgG;KACnG;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,+DAA+D;KAClE;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/SPARQLAdapter/index.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAyD;AAAhD,8HAAA,OAAO,OAAgB;AAChC,+CAAwD;AAA/C,6HAAA,OAAO,OAAgB"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,kGAAyE;AACzE,kEAAyC;AAGzC,mDAGwB;AACxB,sDAAuE;AAEvE,MAAqB,SAAU,SAAQ,gBAAM;IAA7C;;QACE,SAAI,GAAG,WAAW,CAAA;IAkCpB,CAAC;IAhCC,OAAO,CAAC,aAA4B;QAClC,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,qBAAW,CAAC;YACd,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,gBAAgB;YAC7B,YAAY,EAAE,4BAAyB;YACvC,YAAY,EAAE,4BAAkB;SACjC,CAAC,CACL,CAAA;QACD,aAAa,CAAC,mBAAmB,CAC/B,8BAA8B,EAC9B,CAAC,cAA8B,EAAE,EAAE;YACjC,OAAO,CACL,IAAkB,EAClB,KAAoB,EACpB,WAAoB,EACpB,EAAE;gBACF,MAAM,UAAU,GAAG,YAAY,CAAA;gBAC/B,MAAM,WAAW,GAAG,eAAe,CAAA;gBACnC,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAA;gBAClC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,WAAW,KAAK,WAAW,EAAE;oBAC5D,OAAO;wBACL,IAAI,EAAE,WAAW;wBACjB,QAAQ,EAAE,IAAI;qBACf,CAAA;iBACF;gBACD,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;YACjD,CAAC,CAAA;QACH,CAAC,CACF,CAAA;IACH,CAAC;CACF;AAnCD,4BAmCC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SPARQLAdapter.js","sourceRoot":"","sources":["../../src/SPARQLAdapter/SPARQLAdapter.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/SPARQLAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,eAAe,mBAAmB,CAChC,eAAe,EACf;IACE,QAAQ,EAAE;QACR,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,6BAA6B;YAClC,YAAY,EAAE,aAAa;SAC5B;QACD,WAAW,EAAE,4BAA4B;KAC1C;IACD,aAAa,EAAE;QACb,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,gFAAgF;KACnF;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,sEAAsE;KACzE;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,gGAAgG;KACnG;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,+DAA+D;KAClE;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/SPARQLAdapter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
package/esm/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAGzC,OAAO,EACL,YAAY,IAAI,kBAAkB,EAClC,YAAY,IAAI,yBAAyB,GAC1C,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAkB,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvE,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,MAAM;IAA7C;;QACE,SAAI,GAAG,WAAW,CAAA;IAkCpB,CAAC;IAhCC,OAAO,CAAC,aAA4B;QAClC,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;YACd,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,gBAAgB;YAC7B,YAAY,EAAE,yBAAyB;YACvC,YAAY,EAAE,kBAAkB;SACjC,CAAC,CACL,CAAA;QACD,aAAa,CAAC,mBAAmB,CAC/B,8BAA8B,EAC9B,CAAC,cAA8B,EAAE,EAAE;YACjC,OAAO,CACL,IAAkB,EAClB,KAAoB,EACpB,WAAoB,EACpB,EAAE;gBACF,MAAM,UAAU,GAAG,YAAY,CAAA;gBAC/B,MAAM,WAAW,GAAG,eAAe,CAAA;gBACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;gBAClC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,WAAW,KAAK,WAAW,EAAE;oBAC5D,OAAO;wBACL,IAAI,EAAE,WAAW;wBACjB,QAAQ,EAAE,IAAI;qBACf,CAAA;iBACF;gBACD,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;YACjD,CAAC,CAAA;QACH,CAAC,CACF,CAAA;IACH,CAAC;CACF"}
@@ -1,115 +0,0 @@
1
- # SPARQL Adapter
2
-
3
- JBrowse can display genomic information stored in RDF data stores by accessing
4
- them via a SPARQL endpoint. This is done by configuring a SPARQL adapter.
5
-
6
- ## Query template
7
-
8
- The most basic configuration starts with a SPARQL query that returns features in
9
- a genomic range, i.e. on a particular chromosome/contig and between a start and
10
- end position. In such a query, replace the chromosome/contig name with
11
- `{refName}` and the start and end with `{start}` and `{end}`. For example
12
-
13
- ```sparql
14
- PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
15
- PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
16
- PREFIX faldo: <http://biohackathon.org/resource/faldo#>
17
- PREFIX dc: <http://purl.org/dc/elements/1.1/>
18
-
19
- SELECT DISTINCT ?gene (?id AS ?uniqueId) (?label AS ?name) (?desc AS ?note) ?strand ?start ?end
20
- WHERE
21
- { VALUES ?location_type { faldo:ForwardStrandPosition faldo:ReverseStrandPosition faldo:BothStrandsPosition }
22
- ?location faldo:begin _:b0 .
23
- _:b0 rdf:type ?location_type ;
24
- faldo:position ?faldo_begin .
25
- ?location faldo:end _:b1 .
26
- _:b1 rdf:type ?location_type ;
27
- faldo:position ?faldo_end .
28
- ?location faldo:reference <http://rdf.ebi.ac.uk/resource/ensembl/97/homo_sapiens/GRCh38/{refName}> .
29
- ?gene rdf:type ?type ;
30
- rdfs:label ?label ;
31
- dc:description ?desc ;
32
- dc:identifier ?id ;
33
- faldo:location ?location
34
- BIND(if(( ?location_type = faldo:ForwardStrandPosition ), 1, if(( ?location_type = faldo:ReverseStrandPosition ), -1, 0)) AS ?strand)
35
- BIND(if(( ?strand = -1 ), ?faldo_end, ?faldo_begin) AS ?start)
36
- BIND(if(( ?strand = -1 ), ?faldo_begin, ?faldo_end) AS ?end)
37
- FILTER ( ( ?start >= {start} ) && ( ?end <= {end} ) )
38
- }
39
- ```
40
-
41
- The SELECT in the the query must provide at least the variables `?start`,
42
- `?end`, and `?uniqueId`. Any other variables will be added to the feature data.
43
-
44
- ## Adding a track
45
-
46
- From a JBrowse track selector, click the "+" icon and choose "Add track". When
47
- asked for the location of the data source, enter the SPARQL endpoint. If the
48
- endpoint ends with `/sparql`, JBrowse will automatically choose the SPARQL
49
- adapter. If not, choose "SPARQL adapter" in the resulting dialog. (You can use
50
- https://www.ebi.ac.uk/rdf/services/sparql as the endpoint to demonstrate the
51
- above example.)
52
-
53
- You will then be able to choose a track name and type as well as the assembly to
54
- which the track should be added. BasicTrack is suggested for most
55
- configurations, and using other track types is covered below. Click the "Add"
56
- button to add the track.
57
-
58
- Next, in the track selector click the settings icon next to the track which was
59
- just added. Paste the query template (see above) in the "queryTemplate" section.
60
- You can also configure other aspects of the track such as a description,
61
- category, etc.
62
-
63
- ## Advanced configuration
64
-
65
- ### Subfeatures
66
-
67
- There are two ways to provide subfeature information. The first is to include a
68
- `?parentUniqueId` variable with a feature. It will be created as a subfeature of
69
- the feature with a matching `?uniqueId`.
70
-
71
- The second way is useful if a single query response line contains information
72
- for more than one feature, e.g. gene, transcript, and exon information on a
73
- single line. For this type of data prefix all variables for the subfeature with
74
- `sub_`, which will allow you to define multiple features from the same line. It
75
- also works for deeper nested features, too, by using `sub_sub_`, etc. Parent
76
- features that are duplicated across lines will be resolved into a single
77
- feature. For example, take the following SPARQL query result lines:
78
-
79
- | uniqueId | type | start | end | sub_uniqueId | sub_type | sub_start | sub_end | sub_sub_uniqueId | sub_sub_type | sub_sub_start | sub_sub_end |
80
- | ---------- | ---- | -------- | -------- | ---------------- | ---------- | --------- | -------- | ---------------- | ------------ | ------------- | ----------- |
81
- | geneId0001 | gene | 10430102 | 10452003 | transcriptId0001 | transcript | 10430518 | 10442405 | exonId0001 | exon | 10430518 | 10430568 |
82
- | geneId0001 | gene | 10430102 | 10452003 | transcriptId0001 | transcript | 10430518 | 10442405 | exonId0002 | exon | 10432568 | 10433965 |
83
-
84
- These two lines will resolve into a singe feature "geneId0001" with one child
85
- feature "transcriptId0001", which will then itself have two child features
86
- "exonId0001" and "exonId0002".
87
-
88
- ### Additional query parameters
89
-
90
- JBrowse will automatically send a header stating that it expects responses to be
91
- in the `application/json` or `application/sparql-results+json` format. Some
92
- SPARQL endpoints, however, require additional query parameters to be passed in
93
- order for the results be returned in JSON format, for example `format=json`.
94
- These can be added to the "additionalQueryParams" section and will be appended
95
- to each SPARQL request.
96
-
97
- ### Reference sequence renaming
98
-
99
- In order for the track to take advantage of JBrowse's reference name aliasing,
100
- it must know what reference name the SPARQL store uses. These can be entered in
101
- one of two ways. The first is by entering a SPARQL query in the
102
- "refNamesQueryTemplate" config section. This query should return a line for each
103
- reference name in a `refName` column.
104
-
105
- The second option is to enumerate the reference names explicitly in the
106
- "refNames" config section. These will be ignored if a "refNamesQueryTemplate" is
107
- defined.
108
-
109
- ### Other track types
110
-
111
- BasicTracks are flexible because they don't require any additional information,
112
- any any additional info provided in the query is just added to the feature. You
113
- can use other tracks as well, though, as long as you make sure the SPARQL query
114
- provides any info the track requires. For example, if you want to use a
115
- VariantTrack, the SPARQL query must provide REF, ALT, QUAL, etc.
@@ -1,84 +0,0 @@
1
- import { toArray } from 'rxjs/operators'
2
- import 'whatwg-fetch'
3
- import Adapter from './SPARQLAdapter'
4
- import emptyQueryResponse from './test_data/emptyQueryResponse.json'
5
- import queryResponse from './test_data/queryResponse.json'
6
- import refNamesResponse from './test_data/refNamesResponse.json'
7
-
8
- import configSchema from './configSchema'
9
-
10
- // window.fetch = jest.fn(url => new Promise(resolve => resolve()))
11
-
12
- test('adapter can fetch variants from volvox.vcf.gz', async () => {
13
- function mockFetch(url: RequestInfo | URL) {
14
- let response = {}
15
- if (`${url}`.includes('chr1')) {
16
- response = queryResponse
17
- }
18
- if (`${url}`.includes('chr80')) {
19
- response = emptyQueryResponse
20
- } else if (`${url}`.includes('fakeRefNamesQuery')) {
21
- response = refNamesResponse
22
- }
23
-
24
- return Promise.resolve(new Response(JSON.stringify(response)))
25
- }
26
-
27
- const spy = jest.spyOn(global, 'fetch')
28
- spy.mockImplementation(mockFetch)
29
- const adapter = new Adapter(
30
- configSchema.create({
31
- endpoint: {
32
- uri: 'http://somesite.com/sparql',
33
- locationType: 'UriLocation',
34
- },
35
- queryTemplate: 'fakeSPARQLQuery-start{start}-end{end}-{refName}',
36
- refNamesQueryTemplate: 'fakeRefNamesQuery',
37
- additionalQueryParams: ['format=json'],
38
- refNames: [],
39
- }),
40
- )
41
-
42
- const refNames = await adapter.getRefNames()
43
- expect(spy).toHaveBeenLastCalledWith(
44
- 'http://somesite.com/sparql?query=fakeRefNamesQuery&format=json',
45
- {
46
- headers: { accept: 'application/json,application/sparql-results+json' },
47
- signal: undefined,
48
- },
49
- )
50
- expect(refNames.length).toBe(17)
51
- expect(refNames[0]).toBe('NC_004353.4')
52
-
53
- const features = adapter.getFeatures({
54
- refName: 'chr1',
55
- start: 0,
56
- end: 20000,
57
- })
58
- const featuresArray = await features.pipe(toArray()).toPromise()
59
- expect(featuresArray).toMatchSnapshot()
60
- expect(spy).toHaveBeenLastCalledWith(
61
- 'http://somesite.com/sparql?query=fakeSPARQLQuery-start0-end20000-chr1&format=json',
62
- {
63
- headers: { accept: 'application/json,application/sparql-results+json' },
64
- signal: undefined,
65
- },
66
- )
67
-
68
- const featuresNonExist = adapter.getFeatures({
69
- refName: 'chr80',
70
- start: 0,
71
- end: 20000,
72
- })
73
- const featuresArrayNonExist = await featuresNonExist
74
- .pipe(toArray())
75
- .toPromise()
76
- expect(featuresArrayNonExist).toEqual([])
77
- expect(spy).toHaveBeenLastCalledWith(
78
- 'http://somesite.com/sparql?query=fakeSPARQLQuery-start0-end20000-chr80&format=json',
79
- {
80
- headers: { accept: 'application/json,application/sparql-results+json' },
81
- signal: undefined,
82
- },
83
- )
84
- })
@@ -1,257 +0,0 @@
1
- import {
2
- BaseFeatureDataAdapter,
3
- BaseOptions,
4
- } from '@jbrowse/core/data_adapters/BaseAdapter'
5
- import { NoAssemblyRegion } from '@jbrowse/core/util/types'
6
- import { ObservableCreate } from '@jbrowse/core/util/rxjs'
7
- import SimpleFeature, { Feature } from '@jbrowse/core/util/simpleFeature'
8
- import format from 'string-template'
9
-
10
- import { Instance } from 'mobx-state-tree'
11
- import { readConfObject } from '@jbrowse/core/configuration'
12
- import MyConfigSchema from './configSchema'
13
- import PluginManager from '@jbrowse/core/PluginManager'
14
- import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache'
15
-
16
- interface SPARQLEntry {
17
- type: string
18
- value: string
19
- dataTypes?: string
20
- }
21
-
22
- interface SPARQLBinding {
23
- [key: string]: SPARQLEntry
24
- }
25
-
26
- interface SPARQLResponseHead {
27
- vars: string[]
28
- }
29
-
30
- interface SPARQLResponseResults {
31
- bindings: SPARQLBinding[]
32
- }
33
-
34
- interface SPARQLResponse {
35
- head: SPARQLResponseHead
36
- results: SPARQLResponseResults
37
- }
38
-
39
- interface SPARQLFeatureData {
40
- start: number
41
- end: number
42
- strand: number
43
- subfeatures?: SPARQLFeatureData[]
44
- uniqueId: string
45
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
- [propName: string]: any
47
- }
48
-
49
- interface SPARQLFeature {
50
- data: SPARQLFeatureData
51
- }
52
-
53
- export default class SPARQLAdapter extends BaseFeatureDataAdapter {
54
- private endpoint: string
55
-
56
- private queryTemplate: string
57
-
58
- private refNamesQueryTemplate: string
59
-
60
- private additionalQueryParams: string[]
61
-
62
- private configRefNames: string[]
63
-
64
- private refNames: string[] | undefined
65
-
66
- public constructor(
67
- config: Instance<typeof MyConfigSchema>,
68
- getSubAdapter?: getSubAdapterType,
69
- pluginManager?: PluginManager,
70
- ) {
71
- super(config, getSubAdapter, pluginManager)
72
- this.endpoint = readConfObject(config, 'endpoint').uri
73
- this.queryTemplate = readConfObject(config, 'queryTemplate')
74
- this.additionalQueryParams = readConfObject(config, 'additionalQueryParams')
75
- this.refNamesQueryTemplate = readConfObject(config, 'refNamesQueryTemplate')
76
- this.configRefNames = readConfObject(config, 'refNames')
77
- }
78
-
79
- public async getRefNames(opts: BaseOptions = {}): Promise<string[]> {
80
- if (this.refNames) {
81
- return this.refNames
82
- }
83
- let refNames = [] as string[]
84
- if (this.refNamesQueryTemplate) {
85
- const queryTemplate = encodeURIComponent(this.refNamesQueryTemplate)
86
- const results = await this.querySparql(queryTemplate, opts)
87
- refNames = this.resultsToRefNames(results)
88
- } else if (this.configRefNames) {
89
- refNames = this.configRefNames
90
- }
91
- this.refNames = refNames
92
- return refNames
93
- }
94
-
95
- public getFeatures(query: NoAssemblyRegion, opts: BaseOptions = {}) {
96
- return ObservableCreate<Feature>(async observer => {
97
- const filledTemplate = encodeURIComponent(
98
- format(this.queryTemplate, query),
99
- )
100
- const { refName } = query
101
- const results = await this.querySparql(filledTemplate, opts)
102
- this.resultsToFeatures(results, refName).forEach(feature => {
103
- observer.next(feature)
104
- })
105
- observer.complete()
106
- }, opts.signal)
107
- }
108
-
109
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
110
- private async querySparql(query: string, opts?: BaseOptions): Promise<any> {
111
- let additionalQueryParams = ''
112
- if (this.additionalQueryParams.length) {
113
- additionalQueryParams = `&${this.additionalQueryParams.join('&')}`
114
- }
115
- const signal = opts && opts.signal
116
- const response = await fetch(
117
- `${this.endpoint}?query=${query}${additionalQueryParams}`,
118
- {
119
- headers: { accept: 'application/json,application/sparql-results+json' },
120
- signal,
121
- },
122
- )
123
- return response.json()
124
- }
125
-
126
- private resultsToRefNames(response: SPARQLResponse): string[] {
127
- const rows = ((response || {}).results || {}).bindings || []
128
- if (!rows.length) {
129
- return []
130
- }
131
- const fields = response.head.vars
132
- if (!fields.includes('refName')) {
133
- throw new Error('"refName" not found in refNamesQueryTemplate response')
134
- }
135
- return rows.map(row => row.refName.value)
136
- }
137
-
138
- private resultsToFeatures(
139
- results: SPARQLResponse,
140
- refName: string,
141
- ): SimpleFeature[] {
142
- const rows = ((results || {}).results || {}).bindings || []
143
- if (!rows.length) {
144
- return []
145
- }
146
- const fields = results.head.vars
147
- const requiredFields = ['start', 'end', 'uniqueId']
148
- requiredFields.forEach(requiredField => {
149
- if (!fields.includes(requiredField)) {
150
- console.error(
151
- `Required field ${requiredField} missing from feature data`,
152
- )
153
- }
154
- })
155
- const seenFeatures: Record<string, SPARQLFeature> = {}
156
- rows.forEach(row => {
157
- const rawData: Record<string, string>[] = [{}]
158
- fields.forEach(field => {
159
- if (field in row) {
160
- const { value } = row[field]
161
- let idx = 0
162
- while (field.startsWith('sub_')) {
163
- field = field.slice(4)
164
- idx += 1
165
- }
166
- while (idx > rawData.length - 1) {
167
- rawData.push({})
168
- }
169
- rawData[idx][field] = value
170
- }
171
- })
172
-
173
- rawData.forEach((rd, idx) => {
174
- const { uniqueId } = rd
175
- if (idx < rawData.length - 1) {
176
- rawData[idx + 1].parentUniqueId = uniqueId
177
- }
178
- seenFeatures[uniqueId] = {
179
- data: {
180
- ...rd,
181
- uniqueId,
182
- refName,
183
- start: parseInt(rd.start, 10),
184
- end: parseInt(rd.end, 10),
185
- strand: parseInt(rd.strand, 10) || 0,
186
- },
187
- }
188
- })
189
- })
190
-
191
- // resolve subfeatures, keeping only top-level features in seenFeatures
192
- for (const [uniqueId, f] of Object.entries(seenFeatures)) {
193
- const pid = f.data.parentUniqueId
194
- delete f.data.parentUniqueId
195
- if (pid) {
196
- const p = seenFeatures[pid]
197
- if (p) {
198
- if (!p.data.subfeatures) {
199
- p.data.subfeatures = []
200
- }
201
- p.data.subfeatures.push({
202
- ...f.data,
203
- uniqueId,
204
- })
205
- delete seenFeatures[uniqueId]
206
- } else {
207
- const subfeatures = Object.values(seenFeatures)
208
- .map(sf => sf.data.subfeatures)
209
- .filter(sf => !!sf)
210
- .flat()
211
- let found = false
212
- for (const subfeature of subfeatures) {
213
- if (subfeature && subfeature.uniqueId === pid) {
214
- if (!subfeature.subfeatures) {
215
- subfeature.subfeatures = []
216
- }
217
- subfeature.subfeatures.push({
218
- ...f.data,
219
- uniqueId,
220
- })
221
- delete seenFeatures[uniqueId]
222
- found = true
223
- break
224
- } else if (subfeature && subfeature.subfeatures) {
225
- subfeatures.push(...subfeature.subfeatures)
226
- }
227
- }
228
- if (!found) {
229
- console.error(`Could not find parentID ${pid}`)
230
- }
231
- }
232
- }
233
- }
234
-
235
- return Object.keys(seenFeatures).map(
236
- seenFeature =>
237
- new SimpleFeature({
238
- ...seenFeatures[seenFeature].data,
239
- uniqueId: seenFeature,
240
- subfeatures: seenFeatures[seenFeature].data.subfeatures,
241
- }),
242
- )
243
- }
244
-
245
- public async hasDataForRefName(
246
- refName: string,
247
- opts: BaseOptions = {},
248
- ): Promise<boolean> {
249
- const refNames = await this.getRefNames(opts)
250
- if (refNames.length && !refNames.includes(refName)) {
251
- return false
252
- }
253
- return true
254
- }
255
-
256
- public freeResources(/* { region } */): void {}
257
- }