@apollo-annotation/jbrowse-plugin-apollo 0.2.0 → 0.2.2
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/dist/index.esm.js +46 -10
- package/dist/index.esm.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.cjs.development.js +45 -9
- package/dist/jbrowse-plugin-apollo.cjs.development.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.cjs.production.min.js +1 -1
- package/dist/jbrowse-plugin-apollo.cjs.production.min.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.umd.development.js +348 -108
- package/dist/jbrowse-plugin-apollo.umd.development.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.umd.production.min.js +1 -1
- package/dist/jbrowse-plugin-apollo.umd.production.min.js.map +1 -1
- package/package.json +6 -6
- package/src/BackendDrivers/DesktopFileDriver.ts +2 -2
- package/src/BackendDrivers/InMemoryFileDriver.ts +10 -0
- package/src/OntologyManager/OntologyStore/prefixes.ts +11 -5
- package/src/components/DownloadGFF3.tsx +2 -2
- package/src/session/ClientDataStore.ts +3 -0
- package/src/session/session.ts +33 -3
|
@@ -4693,6 +4693,307 @@
|
|
|
4693
4693
|
|
|
4694
4694
|
var GFF3 = {};
|
|
4695
4695
|
|
|
4696
|
+
var annotationFeatureToGFF3$1 = {};
|
|
4697
|
+
|
|
4698
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
4699
|
+
Object.defineProperty(annotationFeatureToGFF3$1, "__esModule", {
|
|
4700
|
+
value: true
|
|
4701
|
+
});
|
|
4702
|
+
annotationFeatureToGFF3$1.annotationFeatureToGFF3 = annotationFeatureToGFF3;
|
|
4703
|
+
var util_1$4 = require$$1__default$1["default"];
|
|
4704
|
+
function annotationFeatureToGFF3(feature, parentId, refSeqNames) {
|
|
4705
|
+
var _feature$attributes$g, _feature$attributes, _feature$attributes2;
|
|
4706
|
+
var attributes = JSON.parse(JSON.stringify(feature.attributes));
|
|
4707
|
+
var ontologyTerms = [];
|
|
4708
|
+
var source = (_feature$attributes$g = (_feature$attributes = feature.attributes) === null || _feature$attributes === void 0 || (_feature$attributes = _feature$attributes.gff_source) === null || _feature$attributes === void 0 ? void 0 : _feature$attributes[0]) !== null && _feature$attributes$g !== void 0 ? _feature$attributes$g : null;
|
|
4709
|
+
delete attributes.gff_source;
|
|
4710
|
+
if (parentId) {
|
|
4711
|
+
attributes.Parent = [parentId];
|
|
4712
|
+
}
|
|
4713
|
+
if (attributes.gff_id) {
|
|
4714
|
+
attributes.ID = attributes.gff_id;
|
|
4715
|
+
delete attributes.gff_id;
|
|
4716
|
+
} else if (feature.children) {
|
|
4717
|
+
attributes.ID = [feature._id];
|
|
4718
|
+
}
|
|
4719
|
+
if (attributes.gff_name) {
|
|
4720
|
+
attributes.Name = attributes.gff_name;
|
|
4721
|
+
delete attributes.gff_name;
|
|
4722
|
+
}
|
|
4723
|
+
if (attributes.gff_alias) {
|
|
4724
|
+
attributes.Alias = attributes.gff_alias;
|
|
4725
|
+
delete attributes.gff_alias;
|
|
4726
|
+
}
|
|
4727
|
+
if (attributes.gff_target) {
|
|
4728
|
+
attributes.Target = attributes.gff_target;
|
|
4729
|
+
delete attributes.gff_target;
|
|
4730
|
+
}
|
|
4731
|
+
if (attributes.gff_gap) {
|
|
4732
|
+
attributes.Gap = attributes.gff_gap;
|
|
4733
|
+
delete attributes.gff_gap;
|
|
4734
|
+
}
|
|
4735
|
+
if (attributes.gff_derives_from) {
|
|
4736
|
+
attributes.Derives_from = attributes.gff_derives_from;
|
|
4737
|
+
delete attributes.gff_derives_from;
|
|
4738
|
+
}
|
|
4739
|
+
if (attributes.gff_note) {
|
|
4740
|
+
attributes.Note = attributes.gff_note;
|
|
4741
|
+
delete attributes.gff_note;
|
|
4742
|
+
}
|
|
4743
|
+
if (attributes.gff_dbxref) {
|
|
4744
|
+
attributes.Dbxref = attributes.gff_dbxref;
|
|
4745
|
+
delete attributes.gff_dbxref;
|
|
4746
|
+
}
|
|
4747
|
+
if (attributes.gff_is_circular) {
|
|
4748
|
+
attributes.Is_circular = attributes.gff_is_circular;
|
|
4749
|
+
delete attributes.gff_is_circular;
|
|
4750
|
+
}
|
|
4751
|
+
if (attributes.gff_ontology_term) {
|
|
4752
|
+
ontologyTerms.push.apply(ontologyTerms, _toConsumableArray(attributes.gff_ontology_term));
|
|
4753
|
+
delete attributes.gff_ontology_term;
|
|
4754
|
+
}
|
|
4755
|
+
if (attributes['Gene Ontology']) {
|
|
4756
|
+
ontologyTerms.push.apply(ontologyTerms, _toConsumableArray(attributes['Gene Ontology']));
|
|
4757
|
+
delete attributes['Gene Ontology'];
|
|
4758
|
+
}
|
|
4759
|
+
if (attributes['Sequence Ontology']) {
|
|
4760
|
+
ontologyTerms.push.apply(ontologyTerms, _toConsumableArray(attributes['Sequence Ontology']));
|
|
4761
|
+
delete attributes['Sequence Ontology'];
|
|
4762
|
+
}
|
|
4763
|
+
if (ontologyTerms.length > 0) {
|
|
4764
|
+
attributes.Ontology_term = ontologyTerms;
|
|
4765
|
+
}
|
|
4766
|
+
var gff_score = (_feature$attributes2 = feature.attributes) === null || _feature$attributes2 === void 0 ? void 0 : _feature$attributes2.gff_score;
|
|
4767
|
+
var score = null;
|
|
4768
|
+
if (gff_score && gff_score.length > 0) {
|
|
4769
|
+
if (gff_score[0]) {
|
|
4770
|
+
score = Number(gff_score[0]);
|
|
4771
|
+
if (Number.isNaN(score)) {
|
|
4772
|
+
score = null;
|
|
4773
|
+
}
|
|
4774
|
+
}
|
|
4775
|
+
delete attributes.gff_score;
|
|
4776
|
+
}
|
|
4777
|
+
var locations = [{
|
|
4778
|
+
start: feature.min,
|
|
4779
|
+
end: feature.max
|
|
4780
|
+
}];
|
|
4781
|
+
return locations.map(function (location) {
|
|
4782
|
+
var _refSeqNames$feature$, _attributes$ID;
|
|
4783
|
+
return {
|
|
4784
|
+
start: Number(location.start) + 1,
|
|
4785
|
+
end: Number(location.end),
|
|
4786
|
+
seq_id: refSeqNames ? (_refSeqNames$feature$ = refSeqNames[feature.refSeq]) !== null && _refSeqNames$feature$ !== void 0 ? _refSeqNames$feature$ : null : feature.refSeq,
|
|
4787
|
+
source: source,
|
|
4788
|
+
type: feature.type,
|
|
4789
|
+
score: score,
|
|
4790
|
+
strand: feature.strand ? feature.strand === 1 ? '+' : '-' : null,
|
|
4791
|
+
phase: null,
|
|
4792
|
+
attributes: Object.keys(attributes).length > 0 ? attributes : null,
|
|
4793
|
+
derived_features: [],
|
|
4794
|
+
child_features: prepareChildFeatures(feature, (_attributes$ID = attributes.ID) === null || _attributes$ID === void 0 ? void 0 : _attributes$ID[0], refSeqNames)
|
|
4795
|
+
};
|
|
4796
|
+
});
|
|
4797
|
+
}
|
|
4798
|
+
function prepareChildFeatures(feature, parentID, refSeqNames) {
|
|
4799
|
+
if (!feature.children) {
|
|
4800
|
+
return [];
|
|
4801
|
+
}
|
|
4802
|
+
if (feature.type === 'mRNA') {
|
|
4803
|
+
var child_features = [];
|
|
4804
|
+
var cdsLocations = getCdsLocations(feature);
|
|
4805
|
+
var cds_idx = 0;
|
|
4806
|
+
for (var _i = 0, _Object$values = Object.values(feature.children); _i < _Object$values.length; _i++) {
|
|
4807
|
+
var child = _Object$values[_i];
|
|
4808
|
+
var gffChild = annotationFeatureToGFF3(child, parentID, refSeqNames);
|
|
4809
|
+
if (child.type === 'CDS') {
|
|
4810
|
+
var _iterator = _createForOfIteratorHelper(cdsLocations[cds_idx]),
|
|
4811
|
+
_step;
|
|
4812
|
+
try {
|
|
4813
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
4814
|
+
var loc = _step.value;
|
|
4815
|
+
var gffCds = JSON.parse(JSON.stringify(gffChild));
|
|
4816
|
+
if (gffCds.length != 1) {
|
|
4817
|
+
// Do we need this check?
|
|
4818
|
+
throw new Error("Unexpected CDS: ".concat(JSON.stringify(gffCds, null, 2)));
|
|
4819
|
+
}
|
|
4820
|
+
gffCds[0].start = loc.min + 1;
|
|
4821
|
+
gffCds[0].end = loc.max;
|
|
4822
|
+
gffCds[0].phase = loc.phase.toString();
|
|
4823
|
+
gffCds[0].type = loc.type; // Do we need this?
|
|
4824
|
+
child_features.push(gffCds);
|
|
4825
|
+
}
|
|
4826
|
+
} catch (err) {
|
|
4827
|
+
_iterator.e(err);
|
|
4828
|
+
} finally {
|
|
4829
|
+
_iterator.f();
|
|
4830
|
+
}
|
|
4831
|
+
cds_idx++;
|
|
4832
|
+
} else {
|
|
4833
|
+
child_features.push(gffChild);
|
|
4834
|
+
}
|
|
4835
|
+
}
|
|
4836
|
+
return child_features;
|
|
4837
|
+
}
|
|
4838
|
+
return Object.values(feature.children).map(function (child) {
|
|
4839
|
+
return annotationFeatureToGFF3(child, parentID, refSeqNames);
|
|
4840
|
+
});
|
|
4841
|
+
}
|
|
4842
|
+
function getTranscriptParts(feature) {
|
|
4843
|
+
if (feature.type !== 'mRNA') {
|
|
4844
|
+
throw new Error('Only features of type "mRNA" or equivalent can calculate CDS locations');
|
|
4845
|
+
}
|
|
4846
|
+
if (!feature.children) {
|
|
4847
|
+
throw new Error('no CDS or exons in mRNA');
|
|
4848
|
+
}
|
|
4849
|
+
// In AnnotationFeatureModel we have `children.values()`
|
|
4850
|
+
var children = Object.values(feature.children);
|
|
4851
|
+
var cdsChildren = children.filter(function (child) {
|
|
4852
|
+
return child.type === 'CDS';
|
|
4853
|
+
});
|
|
4854
|
+
if (cdsChildren.length === 0) {
|
|
4855
|
+
throw new Error('no CDS in mRNA');
|
|
4856
|
+
}
|
|
4857
|
+
var transcriptParts = [];
|
|
4858
|
+
var _iterator2 = _createForOfIteratorHelper(cdsChildren),
|
|
4859
|
+
_step2;
|
|
4860
|
+
try {
|
|
4861
|
+
var _loop = function _loop() {
|
|
4862
|
+
var cds = _step2.value;
|
|
4863
|
+
var cdsMax = cds.max,
|
|
4864
|
+
cdsMin = cds.min;
|
|
4865
|
+
var parts = [];
|
|
4866
|
+
var hasIntersected = false;
|
|
4867
|
+
var exonLocations = [];
|
|
4868
|
+
for (var _i2 = 0, _children = children; _i2 < _children.length; _i2++) {
|
|
4869
|
+
var child = _children[_i2];
|
|
4870
|
+
if (child.type === 'exon') {
|
|
4871
|
+
exonLocations.push({
|
|
4872
|
+
min: child.min,
|
|
4873
|
+
max: child.max
|
|
4874
|
+
});
|
|
4875
|
+
}
|
|
4876
|
+
}
|
|
4877
|
+
exonLocations.sort(function (_ref, _ref2) {
|
|
4878
|
+
var a = _ref.min;
|
|
4879
|
+
var b = _ref2.min;
|
|
4880
|
+
return a - b;
|
|
4881
|
+
});
|
|
4882
|
+
for (var _i3 = 0, _exonLocations = exonLocations; _i3 < _exonLocations.length; _i3++) {
|
|
4883
|
+
var _child = _exonLocations[_i3];
|
|
4884
|
+
var lastPart = parts.at(-1);
|
|
4885
|
+
if (lastPart) {
|
|
4886
|
+
parts.push({
|
|
4887
|
+
min: lastPart.max,
|
|
4888
|
+
max: _child.min,
|
|
4889
|
+
type: 'intron'
|
|
4890
|
+
});
|
|
4891
|
+
}
|
|
4892
|
+
var _ref3 = (0, util_1$4.intersection2)(cdsMin, cdsMax, _child.min, _child.max),
|
|
4893
|
+
_ref4 = _slicedToArray(_ref3, 2),
|
|
4894
|
+
start = _ref4[0],
|
|
4895
|
+
end = _ref4[1];
|
|
4896
|
+
var utrType = void 0;
|
|
4897
|
+
if (hasIntersected) {
|
|
4898
|
+
utrType = feature.strand === 1 ? 'threePrimeUTR' : 'fivePrimeUTR';
|
|
4899
|
+
} else {
|
|
4900
|
+
utrType = feature.strand === 1 ? 'fivePrimeUTR' : 'threePrimeUTR';
|
|
4901
|
+
}
|
|
4902
|
+
if (start !== undefined && end !== undefined) {
|
|
4903
|
+
hasIntersected = true;
|
|
4904
|
+
if (start === _child.min && end === _child.max) {
|
|
4905
|
+
parts.push({
|
|
4906
|
+
min: start,
|
|
4907
|
+
max: end,
|
|
4908
|
+
phase: 0,
|
|
4909
|
+
type: 'CDS'
|
|
4910
|
+
});
|
|
4911
|
+
} else if (start === _child.min) {
|
|
4912
|
+
parts.push({
|
|
4913
|
+
min: start,
|
|
4914
|
+
max: end,
|
|
4915
|
+
phase: 0,
|
|
4916
|
+
type: 'CDS'
|
|
4917
|
+
}, {
|
|
4918
|
+
min: end,
|
|
4919
|
+
max: _child.max,
|
|
4920
|
+
type: utrType
|
|
4921
|
+
});
|
|
4922
|
+
} else if (end === _child.max) {
|
|
4923
|
+
parts.push({
|
|
4924
|
+
min: _child.min,
|
|
4925
|
+
max: start,
|
|
4926
|
+
type: utrType
|
|
4927
|
+
}, {
|
|
4928
|
+
min: start,
|
|
4929
|
+
max: end,
|
|
4930
|
+
phase: 0,
|
|
4931
|
+
type: 'CDS'
|
|
4932
|
+
});
|
|
4933
|
+
} else {
|
|
4934
|
+
parts.push({
|
|
4935
|
+
min: _child.min,
|
|
4936
|
+
max: start,
|
|
4937
|
+
type: utrType
|
|
4938
|
+
}, {
|
|
4939
|
+
min: start,
|
|
4940
|
+
max: end,
|
|
4941
|
+
phase: 0,
|
|
4942
|
+
type: 'CDS'
|
|
4943
|
+
}, {
|
|
4944
|
+
min: end,
|
|
4945
|
+
max: _child.max,
|
|
4946
|
+
type: utrType === 'fivePrimeUTR' ? 'threePrimeUTR' : 'fivePrimeUTR'
|
|
4947
|
+
});
|
|
4948
|
+
}
|
|
4949
|
+
} else {
|
|
4950
|
+
parts.push({
|
|
4951
|
+
min: _child.min,
|
|
4952
|
+
max: _child.max,
|
|
4953
|
+
type: utrType
|
|
4954
|
+
});
|
|
4955
|
+
}
|
|
4956
|
+
}
|
|
4957
|
+
parts.sort(function (_ref5, _ref6) {
|
|
4958
|
+
var a = _ref5.min;
|
|
4959
|
+
var b = _ref6.min;
|
|
4960
|
+
return a - b;
|
|
4961
|
+
});
|
|
4962
|
+
if (feature.strand === -1) {
|
|
4963
|
+
parts.reverse();
|
|
4964
|
+
}
|
|
4965
|
+
var nextPhase = 0;
|
|
4966
|
+
var phasedParts = parts.map(function (loc) {
|
|
4967
|
+
if (loc.type !== 'CDS') {
|
|
4968
|
+
return loc;
|
|
4969
|
+
}
|
|
4970
|
+
var phase = nextPhase;
|
|
4971
|
+
nextPhase = (3 - (loc.max - loc.min - phase + 3) % 3) % 3;
|
|
4972
|
+
return _objectSpread2(_objectSpread2({}, loc), {}, {
|
|
4973
|
+
phase: phase
|
|
4974
|
+
});
|
|
4975
|
+
});
|
|
4976
|
+
transcriptParts.push(phasedParts);
|
|
4977
|
+
};
|
|
4978
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
4979
|
+
_loop();
|
|
4980
|
+
}
|
|
4981
|
+
} catch (err) {
|
|
4982
|
+
_iterator2.e(err);
|
|
4983
|
+
} finally {
|
|
4984
|
+
_iterator2.f();
|
|
4985
|
+
}
|
|
4986
|
+
return transcriptParts;
|
|
4987
|
+
}
|
|
4988
|
+
function getCdsLocations(feature) {
|
|
4989
|
+
var transcriptParts = getTranscriptParts(feature);
|
|
4990
|
+
return transcriptParts.map(function (transcript) {
|
|
4991
|
+
return transcript.filter(function (transcriptPart) {
|
|
4992
|
+
return transcriptPart.type === 'CDS';
|
|
4993
|
+
});
|
|
4994
|
+
});
|
|
4995
|
+
}
|
|
4996
|
+
|
|
4696
4997
|
var gffReservedKeys = {};
|
|
4697
4998
|
|
|
4698
4999
|
(function (exports) {
|
|
@@ -5033,6 +5334,7 @@
|
|
|
5033
5334
|
value: true
|
|
5034
5335
|
});
|
|
5035
5336
|
var tslib_1 = require$$0$1;
|
|
5337
|
+
tslib_1.__exportStar(annotationFeatureToGFF3$1, exports);
|
|
5036
5338
|
tslib_1.__exportStar(gffReservedKeys, exports);
|
|
5037
5339
|
tslib_1.__exportStar(gff3ToAnnotationFeature$1, exports);
|
|
5038
5340
|
})(GFF3);
|
|
@@ -20271,7 +20573,7 @@
|
|
|
20271
20573
|
refSeq: refSeq.toString(),
|
|
20272
20574
|
start: max,
|
|
20273
20575
|
end: max,
|
|
20274
|
-
message: "
|
|
20576
|
+
message: "Missing stop codon"
|
|
20275
20577
|
});
|
|
20276
20578
|
}
|
|
20277
20579
|
} else {
|
|
@@ -20485,108 +20787,10 @@
|
|
|
20485
20787
|
|
|
20486
20788
|
var util$1 = {};
|
|
20487
20789
|
|
|
20488
|
-
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
20489
20790
|
Object.defineProperty(util$1, "__esModule", {
|
|
20490
20791
|
value: true
|
|
20491
20792
|
});
|
|
20492
|
-
util$1.makeGFF3Feature = makeGFF3Feature;
|
|
20493
20793
|
util$1.splitStringIntoChunks = splitStringIntoChunks;
|
|
20494
|
-
function makeGFF3Feature(feature, parentId, refSeqNames) {
|
|
20495
|
-
var _feature$attributes$s, _feature$attributes;
|
|
20496
|
-
var locations = [{
|
|
20497
|
-
start: feature.min,
|
|
20498
|
-
end: feature.max
|
|
20499
|
-
}];
|
|
20500
|
-
// const locations = feature.discontinuousLocations?.length
|
|
20501
|
-
// ? feature.discontinuousLocations
|
|
20502
|
-
// : [{ start: feature.start, end: feature.end, phase: feature.phase }]
|
|
20503
|
-
var attributes = JSON.parse(JSON.stringify(feature.attributes));
|
|
20504
|
-
var ontologyTerms = [];
|
|
20505
|
-
var source = (_feature$attributes$s = (_feature$attributes = feature.attributes) === null || _feature$attributes === void 0 || (_feature$attributes = _feature$attributes.source) === null || _feature$attributes === void 0 ? void 0 : _feature$attributes[0]) !== null && _feature$attributes$s !== void 0 ? _feature$attributes$s : null;
|
|
20506
|
-
delete attributes.source;
|
|
20507
|
-
if (parentId) {
|
|
20508
|
-
attributes.Parent = [parentId];
|
|
20509
|
-
}
|
|
20510
|
-
if (attributes._id) {
|
|
20511
|
-
attributes.ID = attributes._id;
|
|
20512
|
-
delete attributes._id;
|
|
20513
|
-
}
|
|
20514
|
-
if (attributes.gff_name) {
|
|
20515
|
-
attributes.Name = attributes.gff_name;
|
|
20516
|
-
delete attributes.gff_name;
|
|
20517
|
-
}
|
|
20518
|
-
if (attributes.gff_alias) {
|
|
20519
|
-
attributes.Alias = attributes.gff_alias;
|
|
20520
|
-
delete attributes.gff_alias;
|
|
20521
|
-
}
|
|
20522
|
-
if (attributes.gff_target) {
|
|
20523
|
-
attributes.Target = attributes.gff_target;
|
|
20524
|
-
delete attributes.gff_target;
|
|
20525
|
-
}
|
|
20526
|
-
if (attributes.gff_gap) {
|
|
20527
|
-
attributes.Gap = attributes.gff_gap;
|
|
20528
|
-
delete attributes.gff_gap;
|
|
20529
|
-
}
|
|
20530
|
-
if (attributes.gff_derives_from) {
|
|
20531
|
-
attributes.Derives_from = attributes.gff_derives_from;
|
|
20532
|
-
delete attributes.gff_derives_from;
|
|
20533
|
-
}
|
|
20534
|
-
if (attributes.gff_note) {
|
|
20535
|
-
attributes.Note = attributes.gff_note;
|
|
20536
|
-
delete attributes.gff_note;
|
|
20537
|
-
}
|
|
20538
|
-
if (attributes.gff_dbxref) {
|
|
20539
|
-
attributes.Dbxref = attributes.gff_dbxref;
|
|
20540
|
-
delete attributes.gff_dbxref;
|
|
20541
|
-
}
|
|
20542
|
-
if (attributes.gff_is_circular) {
|
|
20543
|
-
attributes.Is_circular = attributes.gff_is_circular;
|
|
20544
|
-
delete attributes.gff_is_circular;
|
|
20545
|
-
}
|
|
20546
|
-
if (attributes.gff_ontology_term) {
|
|
20547
|
-
ontologyTerms.push.apply(ontologyTerms, _toConsumableArray(attributes.gff_ontology_term));
|
|
20548
|
-
delete attributes.gff_ontology_term;
|
|
20549
|
-
}
|
|
20550
|
-
if (attributes['Gene Ontology']) {
|
|
20551
|
-
ontologyTerms.push.apply(ontologyTerms, _toConsumableArray(attributes['Gene Ontology']));
|
|
20552
|
-
delete attributes['Gene Ontology'];
|
|
20553
|
-
}
|
|
20554
|
-
if (attributes['Sequence Ontology']) {
|
|
20555
|
-
ontologyTerms.push.apply(ontologyTerms, _toConsumableArray(attributes['Sequence Ontology']));
|
|
20556
|
-
delete attributes['Sequence Ontology'];
|
|
20557
|
-
}
|
|
20558
|
-
if (ontologyTerms.length > 0) {
|
|
20559
|
-
attributes.Ontology_term = ontologyTerms;
|
|
20560
|
-
}
|
|
20561
|
-
return locations.map(function (location) {
|
|
20562
|
-
var _refSeqNames$feature$;
|
|
20563
|
-
return {
|
|
20564
|
-
start: location.start + 1,
|
|
20565
|
-
end: location.end,
|
|
20566
|
-
seq_id: refSeqNames ? (_refSeqNames$feature$ = refSeqNames[feature.refSeq]) !== null && _refSeqNames$feature$ !== void 0 ? _refSeqNames$feature$ : null : feature.refSeq,
|
|
20567
|
-
source: source,
|
|
20568
|
-
type: feature.type,
|
|
20569
|
-
score: null,
|
|
20570
|
-
// score: feature.score ?? null,
|
|
20571
|
-
strand: feature.strand ? feature.strand === 1 ? '+' : '-' : null,
|
|
20572
|
-
phase: null,
|
|
20573
|
-
// phase:
|
|
20574
|
-
// location.phase === 0
|
|
20575
|
-
// ? '0'
|
|
20576
|
-
// : location.phase === 1
|
|
20577
|
-
// ? '1'
|
|
20578
|
-
// : location.phase === 2
|
|
20579
|
-
// ? '2'
|
|
20580
|
-
// : null,
|
|
20581
|
-
attributes: Object.keys(attributes).length > 0 ? attributes : null,
|
|
20582
|
-
derived_features: [],
|
|
20583
|
-
child_features: feature.children ? Object.values(feature.children).map(function (child) {
|
|
20584
|
-
var _attributes$ID;
|
|
20585
|
-
return makeGFF3Feature(child, (_attributes$ID = attributes.ID) === null || _attributes$ID === void 0 ? void 0 : _attributes$ID[0], refSeqNames);
|
|
20586
|
-
}) : []
|
|
20587
|
-
};
|
|
20588
|
-
});
|
|
20589
|
-
}
|
|
20590
20794
|
function splitStringIntoChunks(input, chunkSize) {
|
|
20591
20795
|
var chunks = [];
|
|
20592
20796
|
for (var i = 0; i < input.length; i += chunkSize) {
|
|
@@ -20660,7 +20864,7 @@
|
|
|
20660
20864
|
}), 'Add');
|
|
20661
20865
|
default_1$a = Add["default"] = _default$c;
|
|
20662
20866
|
|
|
20663
|
-
var version = "0.2.
|
|
20867
|
+
var version = "0.2.2";
|
|
20664
20868
|
|
|
20665
20869
|
const ApolloConfigSchema = configuration.ConfigurationSchema('ApolloInternetAccount', {
|
|
20666
20870
|
baseURL: {
|
|
@@ -45492,7 +45696,7 @@
|
|
|
45492
45696
|
function applyPrefixes(uri, prefixes) {
|
|
45493
45697
|
for (const [prefix, uriBase] of prefixes.entries()) {
|
|
45494
45698
|
if (uri.startsWith(uriBase)) {
|
|
45495
|
-
return uri.replace(uriBase, prefix);
|
|
45699
|
+
return uri.replace(uriBase, String(prefix));
|
|
45496
45700
|
}
|
|
45497
45701
|
}
|
|
45498
45702
|
return uri;
|
|
@@ -45502,8 +45706,8 @@
|
|
|
45502
45706
|
*/
|
|
45503
45707
|
function expandPrefixes(uri, prefixes) {
|
|
45504
45708
|
for (const [prefix, uriBase] of prefixes.entries()) {
|
|
45505
|
-
if (uri.startsWith(prefix)) {
|
|
45506
|
-
return uri.replace(prefix, uriBase);
|
|
45709
|
+
if (uri.startsWith(String(prefix))) {
|
|
45710
|
+
return uri.replace(String(prefix), uriBase);
|
|
45507
45711
|
}
|
|
45508
45712
|
}
|
|
45509
45713
|
return uri;
|
|
@@ -47081,7 +47285,7 @@
|
|
|
47081
47285
|
continue;
|
|
47082
47286
|
}
|
|
47083
47287
|
for (const [, feature] of features) {
|
|
47084
|
-
gff3Items.push(dist$2.
|
|
47288
|
+
gff3Items.push(dist$2.annotationFeatureToGFF3(require$$1$3.getSnapshot(feature)));
|
|
47085
47289
|
}
|
|
47086
47290
|
}
|
|
47087
47291
|
for (const sequenceFeature of sequenceFeatures) {
|
|
@@ -55592,6 +55796,15 @@
|
|
|
55592
55796
|
});
|
|
55593
55797
|
}
|
|
55594
55798
|
async submitChange(_change, _opts = {}) {
|
|
55799
|
+
const { clientStore } = this;
|
|
55800
|
+
const { assemblies } = clientStore;
|
|
55801
|
+
clientStore.clearCheckResults();
|
|
55802
|
+
for (const [, assembly] of assemblies) {
|
|
55803
|
+
if (assembly.backendDriverType === 'InMemoryFileDriver') {
|
|
55804
|
+
const checkResults = await checkFeatures(assembly);
|
|
55805
|
+
clientStore.addCheckResults(checkResults);
|
|
55806
|
+
}
|
|
55807
|
+
}
|
|
55595
55808
|
return new dist$2.ValidationResultSet();
|
|
55596
55809
|
}
|
|
55597
55810
|
async searchFeatures(_term, _assemblies) {
|
|
@@ -55705,7 +55918,7 @@
|
|
|
55705
55918
|
for (const [, refSeq] of clientAssembly.refSeqs) {
|
|
55706
55919
|
const { features } = refSeq;
|
|
55707
55920
|
for (const [, feature] of features) {
|
|
55708
|
-
gff3Items.push(dist$2.
|
|
55921
|
+
gff3Items.push(dist$2.annotationFeatureToGFF3(require$$1$3.getSnapshot(feature)));
|
|
55709
55922
|
}
|
|
55710
55923
|
}
|
|
55711
55924
|
for (const [, refSeq] of clientAssembly.refSeqs) {
|
|
@@ -55801,6 +56014,9 @@
|
|
|
55801
56014
|
deleteCheckResult(checkResultId) {
|
|
55802
56015
|
self.checkResults.delete(checkResultId);
|
|
55803
56016
|
},
|
|
56017
|
+
clearCheckResults() {
|
|
56018
|
+
self.checkResults.clear();
|
|
56019
|
+
},
|
|
55804
56020
|
}))
|
|
55805
56021
|
.volatile((self) => ({
|
|
55806
56022
|
changeManager: new ChangeManager(self),
|
|
@@ -56028,7 +56244,11 @@
|
|
|
56028
56244
|
dynamicBlocks.forEach((block) => {
|
|
56029
56245
|
if (block.regionNumber !== undefined) {
|
|
56030
56246
|
const { assemblyName, end, refName, start } = block;
|
|
56031
|
-
|
|
56247
|
+
const assembly = self.apolloDataStore.assemblies.get(assemblyName);
|
|
56248
|
+
if (assembly &&
|
|
56249
|
+
assembly.backendDriverType === 'CollaborationServerDriver') {
|
|
56250
|
+
locations.push({ assemblyName, refName, start, end });
|
|
56251
|
+
}
|
|
56032
56252
|
}
|
|
56033
56253
|
});
|
|
56034
56254
|
}
|
|
@@ -56084,7 +56304,11 @@
|
|
|
56084
56304
|
dynamicBlocks.forEach((block) => {
|
|
56085
56305
|
if (block.regionNumber !== undefined) {
|
|
56086
56306
|
const { assemblyName, end, refName, start } = block;
|
|
56087
|
-
|
|
56307
|
+
const assembly = self.apolloDataStore.assemblies.get(assemblyName);
|
|
56308
|
+
if (assembly &&
|
|
56309
|
+
assembly.backendDriverType === 'CollaborationServerDriver') {
|
|
56310
|
+
locations.push({ assemblyName, refName, start, end });
|
|
56311
|
+
}
|
|
56088
56312
|
}
|
|
56089
56313
|
});
|
|
56090
56314
|
}
|
|
@@ -56147,6 +56371,7 @@
|
|
|
56147
56371
|
continue;
|
|
56148
56372
|
}
|
|
56149
56373
|
require$$1$3.applySnapshot(jbrowse, jbrowseConfig);
|
|
56374
|
+
// @ts-expect-error snapshot seems to get wrong type?
|
|
56150
56375
|
require$$1$3.applySnapshot(self, sessionSnapshot);
|
|
56151
56376
|
}
|
|
56152
56377
|
}),
|
|
@@ -56258,7 +56483,7 @@
|
|
|
56258
56483
|
};
|
|
56259
56484
|
});
|
|
56260
56485
|
return require$$1$3.types.snapshotProcessor(sm, {
|
|
56261
|
-
postProcessor(snap) {
|
|
56486
|
+
postProcessor(snap, node) {
|
|
56262
56487
|
snap.apolloSelectedFeature = undefined;
|
|
56263
56488
|
const assemblies = Object.fromEntries(Object.entries(snap.apolloDataStore.assemblies).filter(([, assembly]) => assembly.backendDriverType === 'InMemoryFileDriver'));
|
|
56264
56489
|
// @ts-expect-error ontologyManager isn't actually required
|
|
@@ -56267,6 +56492,21 @@
|
|
|
56267
56492
|
assemblies,
|
|
56268
56493
|
checkResults: {},
|
|
56269
56494
|
};
|
|
56495
|
+
if (!node) {
|
|
56496
|
+
return snap;
|
|
56497
|
+
}
|
|
56498
|
+
const { apolloDataStore } = node;
|
|
56499
|
+
const { checkResults } = apolloDataStore;
|
|
56500
|
+
for (const [, cr] of checkResults) {
|
|
56501
|
+
const [feature] = cr.ids;
|
|
56502
|
+
if (!feature) {
|
|
56503
|
+
continue;
|
|
56504
|
+
}
|
|
56505
|
+
const assembly = apolloDataStore.assemblies.get(feature.assemblyId);
|
|
56506
|
+
if (assembly && assembly.backendDriverType === 'InMemoryFileDriver') {
|
|
56507
|
+
snap.apolloDataStore.checkResults[cr._id] = require$$1$3.getSnapshot(cr);
|
|
56508
|
+
}
|
|
56509
|
+
}
|
|
56270
56510
|
return snap;
|
|
56271
56511
|
},
|
|
56272
56512
|
});
|