@jbrowse/plugin-comparative-adapters 2.6.1
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.
- package/LICENSE +201 -0
- package/dist/ChainAdapter/ChainAdapter.d.ts +19 -0
- package/dist/ChainAdapter/ChainAdapter.js +22 -0
- package/dist/ChainAdapter/ChainAdapter.js.map +1 -0
- package/dist/ChainAdapter/configSchema.d.ts +39 -0
- package/dist/ChainAdapter/configSchema.js +45 -0
- package/dist/ChainAdapter/configSchema.js.map +1 -0
- package/dist/ChainAdapter/index.d.ts +3 -0
- package/dist/ChainAdapter/index.js +42 -0
- package/dist/ChainAdapter/index.js.map +1 -0
- package/dist/ChainAdapter/util.d.ts +16 -0
- package/dist/ChainAdapter/util.js +134 -0
- package/dist/ChainAdapter/util.js.map +1 -0
- package/dist/DeltaAdapter/DeltaAdapter.d.ts +20 -0
- package/dist/DeltaAdapter/DeltaAdapter.js +22 -0
- package/dist/DeltaAdapter/DeltaAdapter.js.map +1 -0
- package/dist/DeltaAdapter/configSchema.d.ts +39 -0
- package/dist/DeltaAdapter/configSchema.js +45 -0
- package/dist/DeltaAdapter/configSchema.js.map +1 -0
- package/dist/DeltaAdapter/index.d.ts +3 -0
- package/dist/DeltaAdapter/index.js +42 -0
- package/dist/DeltaAdapter/index.js.map +1 -0
- package/dist/DeltaAdapter/util.d.ts +17 -0
- package/dist/DeltaAdapter/util.js +152 -0
- package/dist/DeltaAdapter/util.js.map +1 -0
- package/dist/MCScanAnchorsAdapter/MCScanAnchorsAdapter.d.ts +33 -0
- package/dist/MCScanAnchorsAdapter/MCScanAnchorsAdapter.js +96 -0
- package/dist/MCScanAnchorsAdapter/MCScanAnchorsAdapter.js.map +1 -0
- package/dist/MCScanAnchorsAdapter/configSchema.d.ts +40 -0
- package/dist/MCScanAnchorsAdapter/configSchema.js +48 -0
- package/dist/MCScanAnchorsAdapter/configSchema.js.map +1 -0
- package/dist/MCScanAnchorsAdapter/index.d.ts +3 -0
- package/dist/MCScanAnchorsAdapter/index.js +42 -0
- package/dist/MCScanAnchorsAdapter/index.js.map +1 -0
- package/dist/MCScanSimpleAnchorsAdapter/MCScanSimpleAnchorsAdapter.d.ts +41 -0
- package/dist/MCScanSimpleAnchorsAdapter/MCScanSimpleAnchorsAdapter.js +121 -0
- package/dist/MCScanSimpleAnchorsAdapter/MCScanSimpleAnchorsAdapter.js.map +1 -0
- package/dist/MCScanSimpleAnchorsAdapter/configSchema.d.ts +40 -0
- package/dist/MCScanSimpleAnchorsAdapter/configSchema.js +48 -0
- package/dist/MCScanSimpleAnchorsAdapter/configSchema.js.map +1 -0
- package/dist/MCScanSimpleAnchorsAdapter/index.d.ts +3 -0
- package/dist/MCScanSimpleAnchorsAdapter/index.js +42 -0
- package/dist/MCScanSimpleAnchorsAdapter/index.js.map +1 -0
- package/dist/MashMapAdapter/MashMapAdapter.d.ts +5 -0
- package/dist/MashMapAdapter/MashMapAdapter.js +42 -0
- package/dist/MashMapAdapter/MashMapAdapter.js.map +1 -0
- package/dist/MashMapAdapter/configSchema.d.ts +37 -0
- package/dist/MashMapAdapter/configSchema.js +45 -0
- package/dist/MashMapAdapter/configSchema.js.map +1 -0
- package/dist/MashMapAdapter/index.d.ts +3 -0
- package/dist/MashMapAdapter/index.js +42 -0
- package/dist/MashMapAdapter/index.js.map +1 -0
- package/dist/PAFAdapter/PAFAdapter.d.ts +20 -0
- package/dist/PAFAdapter/PAFAdapter.js +152 -0
- package/dist/PAFAdapter/PAFAdapter.js.map +1 -0
- package/dist/PAFAdapter/SyntenyFeature.d.ts +4 -0
- package/dist/PAFAdapter/SyntenyFeature.js +17 -0
- package/dist/PAFAdapter/SyntenyFeature.js.map +1 -0
- package/dist/PAFAdapter/configSchema.d.ts +37 -0
- package/dist/PAFAdapter/configSchema.js +45 -0
- package/dist/PAFAdapter/configSchema.js.map +1 -0
- package/dist/PAFAdapter/index.d.ts +3 -0
- package/dist/PAFAdapter/index.js +42 -0
- package/dist/PAFAdapter/index.js.map +1 -0
- package/dist/PAFAdapter/util.d.ts +20 -0
- package/dist/PAFAdapter/util.js +134 -0
- package/dist/PAFAdapter/util.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/util.d.ts +16 -0
- package/dist/util.js +57 -0
- package/dist/util.js.map +1 -0
- package/esm/ChainAdapter/ChainAdapter.d.ts +19 -0
- package/esm/ChainAdapter/ChainAdapter.js +16 -0
- package/esm/ChainAdapter/ChainAdapter.js.map +1 -0
- package/esm/ChainAdapter/configSchema.d.ts +39 -0
- package/esm/ChainAdapter/configSchema.js +43 -0
- package/esm/ChainAdapter/configSchema.js.map +1 -0
- package/esm/ChainAdapter/index.d.ts +3 -0
- package/esm/ChainAdapter/index.js +14 -0
- package/esm/ChainAdapter/index.js.map +1 -0
- package/esm/ChainAdapter/util.d.ts +16 -0
- package/esm/ChainAdapter/util.js +130 -0
- package/esm/ChainAdapter/util.js.map +1 -0
- package/esm/DeltaAdapter/DeltaAdapter.d.ts +20 -0
- package/esm/DeltaAdapter/DeltaAdapter.js +16 -0
- package/esm/DeltaAdapter/DeltaAdapter.js.map +1 -0
- package/esm/DeltaAdapter/configSchema.d.ts +39 -0
- package/esm/DeltaAdapter/configSchema.js +43 -0
- package/esm/DeltaAdapter/configSchema.js.map +1 -0
- package/esm/DeltaAdapter/index.d.ts +3 -0
- package/esm/DeltaAdapter/index.js +14 -0
- package/esm/DeltaAdapter/index.js.map +1 -0
- package/esm/DeltaAdapter/util.d.ts +17 -0
- package/esm/DeltaAdapter/util.js +148 -0
- package/esm/DeltaAdapter/util.js.map +1 -0
- package/esm/MCScanAnchorsAdapter/MCScanAnchorsAdapter.d.ts +33 -0
- package/esm/MCScanAnchorsAdapter/MCScanAnchorsAdapter.js +94 -0
- package/esm/MCScanAnchorsAdapter/MCScanAnchorsAdapter.js.map +1 -0
- package/esm/MCScanAnchorsAdapter/configSchema.d.ts +40 -0
- package/esm/MCScanAnchorsAdapter/configSchema.js +46 -0
- package/esm/MCScanAnchorsAdapter/configSchema.js.map +1 -0
- package/esm/MCScanAnchorsAdapter/index.d.ts +3 -0
- package/esm/MCScanAnchorsAdapter/index.js +14 -0
- package/esm/MCScanAnchorsAdapter/index.js.map +1 -0
- package/esm/MCScanSimpleAnchorsAdapter/MCScanSimpleAnchorsAdapter.d.ts +41 -0
- package/esm/MCScanSimpleAnchorsAdapter/MCScanSimpleAnchorsAdapter.js +116 -0
- package/esm/MCScanSimpleAnchorsAdapter/MCScanSimpleAnchorsAdapter.js.map +1 -0
- package/esm/MCScanSimpleAnchorsAdapter/configSchema.d.ts +40 -0
- package/esm/MCScanSimpleAnchorsAdapter/configSchema.js +46 -0
- package/esm/MCScanSimpleAnchorsAdapter/configSchema.js.map +1 -0
- package/esm/MCScanSimpleAnchorsAdapter/index.d.ts +3 -0
- package/esm/MCScanSimpleAnchorsAdapter/index.js +14 -0
- package/esm/MCScanSimpleAnchorsAdapter/index.js.map +1 -0
- package/esm/MashMapAdapter/MashMapAdapter.d.ts +5 -0
- package/esm/MashMapAdapter/MashMapAdapter.js +36 -0
- package/esm/MashMapAdapter/MashMapAdapter.js.map +1 -0
- package/esm/MashMapAdapter/configSchema.d.ts +37 -0
- package/esm/MashMapAdapter/configSchema.js +43 -0
- package/esm/MashMapAdapter/configSchema.js.map +1 -0
- package/esm/MashMapAdapter/index.d.ts +3 -0
- package/esm/MashMapAdapter/index.js +14 -0
- package/esm/MashMapAdapter/index.js.map +1 -0
- package/esm/PAFAdapter/PAFAdapter.d.ts +20 -0
- package/esm/PAFAdapter/PAFAdapter.js +147 -0
- package/esm/PAFAdapter/PAFAdapter.js.map +1 -0
- package/esm/PAFAdapter/SyntenyFeature.d.ts +4 -0
- package/esm/PAFAdapter/SyntenyFeature.js +14 -0
- package/esm/PAFAdapter/SyntenyFeature.js.map +1 -0
- package/esm/PAFAdapter/configSchema.d.ts +37 -0
- package/esm/PAFAdapter/configSchema.js +43 -0
- package/esm/PAFAdapter/configSchema.js.map +1 -0
- package/esm/PAFAdapter/index.d.ts +3 -0
- package/esm/PAFAdapter/index.js +14 -0
- package/esm/PAFAdapter/index.js.map +1 -0
- package/esm/PAFAdapter/util.d.ts +20 -0
- package/esm/PAFAdapter/util.js +127 -0
- package/esm/PAFAdapter/util.js.map +1 -0
- package/esm/index.d.ts +6 -0
- package/esm/index.js +45 -0
- package/esm/index.js.map +1 -0
- package/esm/util.d.ts +16 -0
- package/esm/util.js +49 -0
- package/esm/util.js.map +1 -0
- package/package.json +63 -0
- package/src/ChainAdapter/ChainAdapter.ts +18 -0
- package/src/ChainAdapter/configSchema.ts +50 -0
- package/src/ChainAdapter/index.ts +18 -0
- package/src/ChainAdapter/util.ts +170 -0
- package/src/DeltaAdapter/DeltaAdapter.ts +18 -0
- package/src/DeltaAdapter/configSchema.ts +50 -0
- package/src/DeltaAdapter/index.ts +18 -0
- package/src/DeltaAdapter/util.ts +149 -0
- package/src/MCScanAnchorsAdapter/MCScanAnchorsAdapter.test.ts +45 -0
- package/src/MCScanAnchorsAdapter/MCScanAnchorsAdapter.ts +134 -0
- package/src/MCScanAnchorsAdapter/configSchema.ts +52 -0
- package/src/MCScanAnchorsAdapter/index.ts +20 -0
- package/src/MCScanAnchorsAdapter/test_data/grape.bed.gz +0 -0
- package/src/MCScanAnchorsAdapter/test_data/grape.peach.anchors.gz +0 -0
- package/src/MCScanAnchorsAdapter/test_data/peach.bed.gz +0 -0
- package/src/MCScanSimpleAnchorsAdapter/MCScanSimpleAnchorsAdapter.ts +157 -0
- package/src/MCScanSimpleAnchorsAdapter/configSchema.ts +52 -0
- package/src/MCScanSimpleAnchorsAdapter/index.ts +19 -0
- package/src/MashMapAdapter/MashMapAdapter.ts +40 -0
- package/src/MashMapAdapter/configSchema.ts +51 -0
- package/src/MashMapAdapter/index.ts +18 -0
- package/src/PAFAdapter/PAFAdapter.test.ts +37 -0
- package/src/PAFAdapter/PAFAdapter.ts +181 -0
- package/src/PAFAdapter/SyntenyFeature.ts +15 -0
- package/src/PAFAdapter/configSchema.ts +50 -0
- package/src/PAFAdapter/index.ts +18 -0
- package/src/PAFAdapter/test_data/grape.peach.anchors +14966 -0
- package/src/PAFAdapter/test_data/peach_grape.paf +30 -0
- package/src/PAFAdapter/util.test.ts +7 -0
- package/src/PAFAdapter/util.ts +176 -0
- package/src/index.ts +62 -0
- package/src/util.ts +66 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
+
/**
|
|
3
|
+
* #config MCScanAnchorsAdapter
|
|
4
|
+
*/
|
|
5
|
+
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
6
|
+
const MCScanAnchorsAdapter = ConfigurationSchema('MCScanAnchorsAdapter', {
|
|
7
|
+
/**
|
|
8
|
+
* #slot
|
|
9
|
+
*/
|
|
10
|
+
mcscanAnchorsLocation: {
|
|
11
|
+
type: 'fileLocation',
|
|
12
|
+
defaultValue: {
|
|
13
|
+
uri: '/path/to/mcscan.anchors',
|
|
14
|
+
locationType: 'UriLocation',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
/**
|
|
18
|
+
* #slot
|
|
19
|
+
*/
|
|
20
|
+
bed1Location: {
|
|
21
|
+
type: 'fileLocation',
|
|
22
|
+
defaultValue: {
|
|
23
|
+
uri: '/path/to/file.bed',
|
|
24
|
+
locationType: 'UriLocation',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
/**
|
|
28
|
+
* #slot
|
|
29
|
+
*/
|
|
30
|
+
bed2Location: {
|
|
31
|
+
type: 'fileLocation',
|
|
32
|
+
defaultValue: {
|
|
33
|
+
uri: '/path/to/file.bed',
|
|
34
|
+
locationType: 'UriLocation',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* #slot
|
|
39
|
+
*/
|
|
40
|
+
assemblyNames: {
|
|
41
|
+
type: 'stringArray',
|
|
42
|
+
defaultValue: [],
|
|
43
|
+
},
|
|
44
|
+
}, { explicitlyTyped: true });
|
|
45
|
+
export default MCScanAnchorsAdapter;
|
|
46
|
+
//# sourceMappingURL=configSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/MCScanAnchorsAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE;;GAEG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,MAAM,oBAAoB,GAAG,mBAAmB,CAC9C,sBAAsB,EACtB;IACE;;OAEG;IACH,qBAAqB,EAAE;QACrB,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,yBAAyB;YAC9B,YAAY,EAAE,aAAa;SAC5B;KACF;IACD;;OAEG;IACH,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,aAAa;SAC5B;KACF;IACD;;OAEG;IACH,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,aAAa;SAC5B;KACF;IACD;;OAEG;IACH,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;KACjB;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA;AAED,eAAe,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType';
|
|
2
|
+
import configSchema from './configSchema';
|
|
3
|
+
export default (pluginManager) => {
|
|
4
|
+
pluginManager.addAdapterType(() => new AdapterType({
|
|
5
|
+
name: 'MCScanAnchorsAdapter',
|
|
6
|
+
displayName: 'MCScan anchors adapter',
|
|
7
|
+
configSchema,
|
|
8
|
+
adapterMetadata: {
|
|
9
|
+
hiddenFromGUI: true,
|
|
10
|
+
},
|
|
11
|
+
getAdapterClass: () => import('./MCScanAnchorsAdapter').then(r => r.default),
|
|
12
|
+
}));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MCScanAnchorsAdapter/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,wBAAwB;QACrC,YAAY;QACZ,eAAe,EAAE;YACf,aAAa,EAAE,IAAI;SACpB;QAED,eAAe,EAAE,GAAG,EAAE,CACpB,MAAM,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACxD,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
+
import { Region } from '@jbrowse/core/util/types';
|
|
3
|
+
import { Feature } from '@jbrowse/core/util/simpleFeature';
|
|
4
|
+
interface BareFeature {
|
|
5
|
+
refName: string;
|
|
6
|
+
start: number;
|
|
7
|
+
end: number;
|
|
8
|
+
score: number;
|
|
9
|
+
name: string;
|
|
10
|
+
}
|
|
11
|
+
type Row = [
|
|
12
|
+
BareFeature,
|
|
13
|
+
BareFeature,
|
|
14
|
+
BareFeature,
|
|
15
|
+
BareFeature,
|
|
16
|
+
number,
|
|
17
|
+
number,
|
|
18
|
+
number
|
|
19
|
+
];
|
|
20
|
+
export default class MCScanAnchorsAdapter extends BaseFeatureDataAdapter {
|
|
21
|
+
private setupP?;
|
|
22
|
+
static capabilities: string[];
|
|
23
|
+
setup(opts: BaseOptions): Promise<{
|
|
24
|
+
assemblyNames: string[];
|
|
25
|
+
feats: Row[];
|
|
26
|
+
}>;
|
|
27
|
+
setupPre(opts: BaseOptions): Promise<{
|
|
28
|
+
assemblyNames: string[];
|
|
29
|
+
feats: Row[];
|
|
30
|
+
}>;
|
|
31
|
+
hasDataForRefName(): Promise<boolean>;
|
|
32
|
+
getRefNames(): Promise<never[]>;
|
|
33
|
+
getFeatures(region: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
|
|
34
|
+
/**
|
|
35
|
+
* called to provide a hint that data tied to a certain region
|
|
36
|
+
* will not be needed for the foreseeable future and can be purged
|
|
37
|
+
* from caches, etc
|
|
38
|
+
*/
|
|
39
|
+
freeResources(): void;
|
|
40
|
+
}
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
+
import { openLocation } from '@jbrowse/core/util/io';
|
|
3
|
+
import { doesIntersect2 } from '@jbrowse/core/util';
|
|
4
|
+
import { ObservableCreate } from '@jbrowse/core/util/rxjs';
|
|
5
|
+
import SimpleFeature from '@jbrowse/core/util/simpleFeature';
|
|
6
|
+
import { readFile, parseBed } from '../util';
|
|
7
|
+
class MCScanAnchorsAdapter extends BaseFeatureDataAdapter {
|
|
8
|
+
async setup(opts) {
|
|
9
|
+
if (!this.setupP) {
|
|
10
|
+
this.setupP = this.setupPre(opts).catch(e => {
|
|
11
|
+
this.setupP = undefined;
|
|
12
|
+
throw e;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return this.setupP;
|
|
16
|
+
}
|
|
17
|
+
async setupPre(opts) {
|
|
18
|
+
const assemblyNames = this.getConf('assemblyNames');
|
|
19
|
+
const pm = this.pluginManager;
|
|
20
|
+
const bed1 = openLocation(this.getConf('bed1Location'), pm);
|
|
21
|
+
const bed2 = openLocation(this.getConf('bed2Location'), pm);
|
|
22
|
+
const mcscan = openLocation(this.getConf('mcscanSimpleAnchorsLocation'), pm);
|
|
23
|
+
const [bed1text, bed2text, mcscantext] = await Promise.all([bed1, bed2, mcscan].map(r => readFile(r, opts)));
|
|
24
|
+
const bed1Map = parseBed(bed1text);
|
|
25
|
+
const bed2Map = parseBed(bed2text);
|
|
26
|
+
const feats = mcscantext
|
|
27
|
+
.split(/\n|\r\n|\r/)
|
|
28
|
+
.filter(f => !!f && f !== '###')
|
|
29
|
+
.map((line, index) => {
|
|
30
|
+
const [n11, n12, n21, n22, score, strand] = line.split('\t');
|
|
31
|
+
const r11 = bed1Map.get(n11);
|
|
32
|
+
const r12 = bed1Map.get(n12);
|
|
33
|
+
const r21 = bed2Map.get(n21);
|
|
34
|
+
const r22 = bed2Map.get(n22);
|
|
35
|
+
if (!r11 || !r12 || !r21 || !r22) {
|
|
36
|
+
throw new Error(`feature not found, ${n11} ${n12} ${n21} ${n22} ${r11} ${r12} ${r21} ${r22}`);
|
|
37
|
+
}
|
|
38
|
+
return [
|
|
39
|
+
r11,
|
|
40
|
+
r12,
|
|
41
|
+
r21,
|
|
42
|
+
r22,
|
|
43
|
+
+score,
|
|
44
|
+
strand === '-' ? -1 : 1,
|
|
45
|
+
index,
|
|
46
|
+
];
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
assemblyNames,
|
|
50
|
+
feats,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
async hasDataForRefName() {
|
|
54
|
+
// determining this properly is basically a call to getFeatures
|
|
55
|
+
// so is not really that important, and has to be true or else
|
|
56
|
+
// getFeatures is never called (BaseFeatureDataAdapter filters it out)
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
async getRefNames() {
|
|
60
|
+
// we cannot determine this accurately
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
getFeatures(region, opts = {}) {
|
|
64
|
+
return ObservableCreate(async (observer) => {
|
|
65
|
+
const { assemblyNames, feats } = await this.setup(opts);
|
|
66
|
+
// The index of the assembly name in the region list corresponds to
|
|
67
|
+
// the adapter in the subadapters list
|
|
68
|
+
const index = assemblyNames.indexOf(region.assemblyName);
|
|
69
|
+
if (index !== -1) {
|
|
70
|
+
const flip = index === 0;
|
|
71
|
+
feats.forEach(f => {
|
|
72
|
+
const [f11, f12, f21, f22, score, strand, rowNum] = f;
|
|
73
|
+
let r1 = {
|
|
74
|
+
refName: f11.refName,
|
|
75
|
+
start: Math.min(f11.start, f12.start),
|
|
76
|
+
end: Math.max(f11.end, f12.end),
|
|
77
|
+
};
|
|
78
|
+
let r2 = {
|
|
79
|
+
refName: f21.refName,
|
|
80
|
+
start: Math.min(f21.start, f22.start),
|
|
81
|
+
end: Math.max(f21.end, f22.end),
|
|
82
|
+
};
|
|
83
|
+
if (!flip) {
|
|
84
|
+
;
|
|
85
|
+
[r2, r1] = [r1, r2];
|
|
86
|
+
}
|
|
87
|
+
if (r1.refName === region.refName &&
|
|
88
|
+
doesIntersect2(r1.start, r1.end, region.start, region.end)) {
|
|
89
|
+
observer.next(new SimpleFeature({
|
|
90
|
+
...r1,
|
|
91
|
+
uniqueId: `${rowNum}`,
|
|
92
|
+
syntenyId: rowNum,
|
|
93
|
+
assemblyName: assemblyNames[+!flip],
|
|
94
|
+
score,
|
|
95
|
+
strand,
|
|
96
|
+
mate: {
|
|
97
|
+
...r2,
|
|
98
|
+
assemblyName: assemblyNames[+flip],
|
|
99
|
+
},
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
observer.complete();
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* called to provide a hint that data tied to a certain region
|
|
109
|
+
* will not be needed for the foreseeable future and can be purged
|
|
110
|
+
* from caches, etc
|
|
111
|
+
*/
|
|
112
|
+
freeResources( /* { region } */) { }
|
|
113
|
+
}
|
|
114
|
+
MCScanAnchorsAdapter.capabilities = ['getFeatures', 'getRefNames'];
|
|
115
|
+
export default MCScanAnchorsAdapter;
|
|
116
|
+
//# sourceMappingURL=MCScanSimpleAnchorsAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MCScanSimpleAnchorsAdapter.js","sourceRoot":"","sources":["../../src/MCScanSimpleAnchorsAdapter/MCScanSimpleAnchorsAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
declare const MCScanSimpleAnchorsAdapter: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
2
|
+
/**
|
|
3
|
+
* #slot
|
|
4
|
+
*/
|
|
5
|
+
mcscanSimpleAnchorsLocation: {
|
|
6
|
+
type: string;
|
|
7
|
+
defaultValue: {
|
|
8
|
+
uri: string;
|
|
9
|
+
locationType: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* #slot
|
|
14
|
+
*/
|
|
15
|
+
bed1Location: {
|
|
16
|
+
type: string;
|
|
17
|
+
defaultValue: {
|
|
18
|
+
uri: string;
|
|
19
|
+
locationType: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* #slot
|
|
24
|
+
*/
|
|
25
|
+
bed2Location: {
|
|
26
|
+
type: string;
|
|
27
|
+
defaultValue: {
|
|
28
|
+
uri: string;
|
|
29
|
+
locationType: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* #slot
|
|
34
|
+
*/
|
|
35
|
+
assemblyNames: {
|
|
36
|
+
type: string;
|
|
37
|
+
defaultValue: never[];
|
|
38
|
+
};
|
|
39
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
40
|
+
export default MCScanSimpleAnchorsAdapter;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
+
/**
|
|
3
|
+
* #config MCScanSimpleAnchorsAdapter
|
|
4
|
+
*/
|
|
5
|
+
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
6
|
+
const MCScanSimpleAnchorsAdapter = ConfigurationSchema('MCScanSimpleAnchorsAdapter', {
|
|
7
|
+
/**
|
|
8
|
+
* #slot
|
|
9
|
+
*/
|
|
10
|
+
mcscanSimpleAnchorsLocation: {
|
|
11
|
+
type: 'fileLocation',
|
|
12
|
+
defaultValue: {
|
|
13
|
+
uri: '/path/to/mcscan.anchors.simple',
|
|
14
|
+
locationType: 'UriLocation',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
/**
|
|
18
|
+
* #slot
|
|
19
|
+
*/
|
|
20
|
+
bed1Location: {
|
|
21
|
+
type: 'fileLocation',
|
|
22
|
+
defaultValue: {
|
|
23
|
+
uri: '/path/to/file.bed',
|
|
24
|
+
locationType: 'UriLocation',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
/**
|
|
28
|
+
* #slot
|
|
29
|
+
*/
|
|
30
|
+
bed2Location: {
|
|
31
|
+
type: 'fileLocation',
|
|
32
|
+
defaultValue: {
|
|
33
|
+
uri: '/path/to/file.bed',
|
|
34
|
+
locationType: 'UriLocation',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* #slot
|
|
39
|
+
*/
|
|
40
|
+
assemblyNames: {
|
|
41
|
+
type: 'stringArray',
|
|
42
|
+
defaultValue: [],
|
|
43
|
+
},
|
|
44
|
+
}, { explicitlyTyped: true });
|
|
45
|
+
export default MCScanSimpleAnchorsAdapter;
|
|
46
|
+
//# sourceMappingURL=configSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/MCScanSimpleAnchorsAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE;;GAEG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,MAAM,0BAA0B,GAAG,mBAAmB,CACpD,4BAA4B,EAC5B;IACE;;OAEG;IACH,2BAA2B,EAAE;QAC3B,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,gCAAgC;YACrC,YAAY,EAAE,aAAa;SAC5B;KACF;IACD;;OAEG;IACH,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,aAAa;SAC5B;KACF;IACD;;OAEG;IACH,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,aAAa;SAC5B;KACF;IAED;;OAEG;IACH,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;KACjB;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA;AACD,eAAe,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType';
|
|
2
|
+
import configSchema from './configSchema';
|
|
3
|
+
export default (pluginManager) => {
|
|
4
|
+
pluginManager.addAdapterType(() => new AdapterType({
|
|
5
|
+
name: 'MCScanSimpleAnchorsAdapter',
|
|
6
|
+
displayName: 'MCScan anchors.simple adapter',
|
|
7
|
+
configSchema,
|
|
8
|
+
adapterMetadata: {
|
|
9
|
+
hiddenFromGUI: true,
|
|
10
|
+
},
|
|
11
|
+
getAdapterClass: () => import('./MCScanSimpleAnchorsAdapter').then(r => r.default),
|
|
12
|
+
}));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MCScanSimpleAnchorsAdapter/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,+BAA+B;QAC5C,YAAY;QACZ,eAAe,EAAE;YACf,aAAa,EAAE,IAAI;SACpB;QACD,eAAe,EAAE,GAAG,EAAE,CACpB,MAAM,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KAC9D,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { openLocation } from '@jbrowse/core/util/io';
|
|
2
|
+
import { unzip } from '@gmod/bgzf-filehandle';
|
|
3
|
+
import PAFAdapter from '../PAFAdapter/PAFAdapter';
|
|
4
|
+
import { parseLineByLine } from '../util';
|
|
5
|
+
function isGzip(buf) {
|
|
6
|
+
return buf[0] === 31 && buf[1] === 139 && buf[2] === 8;
|
|
7
|
+
}
|
|
8
|
+
export default class MashMapAdapter extends PAFAdapter {
|
|
9
|
+
async setupPre(opts) {
|
|
10
|
+
const outLoc = openLocation(this.getConf('outLocation'), this.pluginManager);
|
|
11
|
+
const buffer = (await outLoc.readFile(opts));
|
|
12
|
+
const buf = isGzip(buffer) ? await unzip(buffer) : buffer;
|
|
13
|
+
return parseLineByLine(buf, parseMashMapLine);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function parseMashMapLine(line) {
|
|
17
|
+
const fields = line.split(' ');
|
|
18
|
+
if (fields.length < 9) {
|
|
19
|
+
// xref https://github.com/marbl/MashMap/issues/38
|
|
20
|
+
throw new Error('improperly formatted line: ' + line);
|
|
21
|
+
}
|
|
22
|
+
const [qname, , qstart, qend, strand, tname, , tstart, tend, mq] = fields;
|
|
23
|
+
return {
|
|
24
|
+
tname,
|
|
25
|
+
tstart: +tstart,
|
|
26
|
+
tend: +tend,
|
|
27
|
+
qname,
|
|
28
|
+
qstart: +qstart,
|
|
29
|
+
qend: +qend,
|
|
30
|
+
strand: strand === '-' ? -1 : 1,
|
|
31
|
+
extra: {
|
|
32
|
+
mappingQual: +mq,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=MashMapAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MashMapAdapter.js","sourceRoot":"","sources":["../../src/MashMapAdapter/MashMapAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,UAAU,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,UAAU;IACpD,KAAK,CAAC,QAAQ,CAAC,IAAkB;QAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC5E,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAW,CAAA;QACtD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACzD,OAAO,eAAe,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;IAC/C,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,kDAAkD;QAClD,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAA;KACtD;IACD,MAAM,CAAC,KAAK,EAAE,AAAD,EAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,AAAD,EAAG,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,CAAA;IAEzE,OAAO;QACL,KAAK;QACL,MAAM,EAAE,CAAC,MAAM;QACf,IAAI,EAAE,CAAC,IAAI;QACX,KAAK;QACL,MAAM,EAAE,CAAC,MAAM;QACf,IAAI,EAAE,CAAC,IAAI;QACX,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,EAAE;YACL,WAAW,EAAE,CAAC,EAAE;SACjB;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
declare const MashMapAdapter: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
2
|
+
/**
|
|
3
|
+
* #slot
|
|
4
|
+
*/
|
|
5
|
+
assemblyNames: {
|
|
6
|
+
type: string;
|
|
7
|
+
defaultValue: never[];
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* #slot
|
|
12
|
+
*/
|
|
13
|
+
targetAssembly: {
|
|
14
|
+
type: string;
|
|
15
|
+
defaultValue: string;
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* #slot
|
|
20
|
+
*/
|
|
21
|
+
queryAssembly: {
|
|
22
|
+
type: string;
|
|
23
|
+
defaultValue: string;
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* #slot
|
|
28
|
+
*/
|
|
29
|
+
outLocation: {
|
|
30
|
+
type: string;
|
|
31
|
+
defaultValue: {
|
|
32
|
+
uri: string;
|
|
33
|
+
locationType: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
37
|
+
export default MashMapAdapter;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
+
/**
|
|
3
|
+
* #config MashMapAdapter
|
|
4
|
+
*/
|
|
5
|
+
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
6
|
+
const MashMapAdapter = ConfigurationSchema('MashMapAdapter', {
|
|
7
|
+
/**
|
|
8
|
+
* #slot
|
|
9
|
+
*/
|
|
10
|
+
assemblyNames: {
|
|
11
|
+
type: 'stringArray',
|
|
12
|
+
defaultValue: [],
|
|
13
|
+
description: 'Target is the first value in the array, query is the second',
|
|
14
|
+
},
|
|
15
|
+
/**
|
|
16
|
+
* #slot
|
|
17
|
+
*/
|
|
18
|
+
targetAssembly: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
defaultValue: '',
|
|
21
|
+
description: 'Alternative to assemblyNames array: the target assembly',
|
|
22
|
+
},
|
|
23
|
+
/**
|
|
24
|
+
* #slot
|
|
25
|
+
*/
|
|
26
|
+
queryAssembly: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
defaultValue: '',
|
|
29
|
+
description: 'Alternative to assemblyNames array: the query assembly',
|
|
30
|
+
},
|
|
31
|
+
/**
|
|
32
|
+
* #slot
|
|
33
|
+
*/
|
|
34
|
+
outLocation: {
|
|
35
|
+
type: 'fileLocation',
|
|
36
|
+
defaultValue: {
|
|
37
|
+
uri: '/path/to/mashmap.out',
|
|
38
|
+
locationType: 'UriLocation',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
}, { explicitlyTyped: true });
|
|
42
|
+
export default MashMapAdapter;
|
|
43
|
+
//# sourceMappingURL=configSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/MashMapAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE;;GAEG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,MAAM,cAAc,GAAG,mBAAmB,CACxC,gBAAgB,EAChB;IACE;;OAEG;IACH,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,6DAA6D;KAChE;IAED;;OAEG;IACH,cAAc,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,yDAAyD;KACvE;IACD;;OAEG;IACH,aAAa,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,wDAAwD;KACtE;IACD;;OAEG;IACH,WAAW,EAAE;QACX,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,sBAAsB;YAC3B,YAAY,EAAE,aAAa;SAC5B;KACF;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType';
|
|
2
|
+
import configSchema from './configSchema';
|
|
3
|
+
export default (pluginManager) => {
|
|
4
|
+
pluginManager.addAdapterType(() => new AdapterType({
|
|
5
|
+
name: 'MashMapAdapter',
|
|
6
|
+
displayName: 'MashMap adapter',
|
|
7
|
+
configSchema,
|
|
8
|
+
adapterMetadata: {
|
|
9
|
+
hiddenFromGUI: true,
|
|
10
|
+
},
|
|
11
|
+
getAdapterClass: () => import('./MashMapAdapter').then(r => r.default),
|
|
12
|
+
}));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MashMapAdapter/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,iBAAiB;QAC9B,YAAY;QACZ,eAAe,EAAE;YACf,aAAa,EAAE,IAAI;SACpB;QACD,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACvE,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
+
import { Region } from '@jbrowse/core/util/types';
|
|
3
|
+
import { Feature } from '@jbrowse/core/util';
|
|
4
|
+
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
5
|
+
import { PAFRecord } from './util';
|
|
6
|
+
interface PAFOptions extends BaseOptions {
|
|
7
|
+
config?: AnyConfigurationModel;
|
|
8
|
+
}
|
|
9
|
+
export default class PAFAdapter extends BaseFeatureDataAdapter {
|
|
10
|
+
private setupP?;
|
|
11
|
+
static capabilities: string[];
|
|
12
|
+
setup(opts?: BaseOptions): Promise<PAFRecord[]>;
|
|
13
|
+
setupPre(opts?: BaseOptions): Promise<PAFRecord[]>;
|
|
14
|
+
hasDataForRefName(): Promise<boolean>;
|
|
15
|
+
getAssemblyNames(): string[];
|
|
16
|
+
getRefNames(opts?: BaseOptions): Promise<string[]>;
|
|
17
|
+
getFeatures(query: Region, opts?: PAFOptions): import("rxjs").Observable<Feature>;
|
|
18
|
+
freeResources(): void;
|
|
19
|
+
}
|
|
20
|
+
export {};
|