@teselagen/bio-parsers 0.3.7 → 0.3.9
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/README.md +330 -0
- package/fastaToJson.d.ts +1 -1
- package/index.js +133 -116
- package/index.mjs +133 -116
- package/index.umd.js +132 -115
- package/package.json +1 -2
- package/src/ab1ToJson.js +13 -18
- package/src/anyToJson.js +7 -7
- package/src/fastaToJson.js +12 -7
- package/src/genbankToJson.js +21 -20
- package/src/geneiousXmlToJson.js +3 -6
- package/src/gffToJson.js +5 -5
- package/src/jbeiXmlToJson.js +10 -13
- package/src/jsonToBed.js +4 -3
- package/src/jsonToFasta.js +4 -2
- package/src/jsonToGenbank.js +13 -12
- package/src/jsonToJsonString.js +1 -1
- package/src/sbolXmlToJson.js +9 -9
- package/src/snapgeneToJson.js +14 -12
- package/src/utils/NameUtils.js +1 -1
- package/src/utils/ParserUtil.js +81 -83
- package/src/utils/cleanUpTeselagenJsonForExport.js +8 -9
- package/src/utils/constants.js +22 -22
- package/src/utils/convertOldSequenceDataToNewDataType.js +5 -6
- package/src/utils/createInitialSequence.js +13 -11
- package/src/utils/extractFileExtension.js +11 -13
- package/src/utils/flattenSequenceArray.js +14 -14
- package/src/utils/getArrayBufferFromFile.js +5 -5
- package/src/utils/isBrowser.js +2 -1
- package/src/utils/parseUracilFeatures.js +2 -2
- package/src/utils/pragmasAndTypes.js +3 -2
- package/src/utils/searchWholeObjByName.js +3 -3
- package/src/utils/splitStringIntoLines.js +13 -12
- package/src/utils/validateSequence.js +15 -10
- package/src/utils/validateSequenceArray.js +17 -17
- package/utils/getArrayBufferFromFile.d.ts +1 -1
package/index.mjs
CHANGED
|
@@ -39,6 +39,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
39
39
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
40
40
|
});
|
|
41
41
|
};
|
|
42
|
+
var _a, _b;
|
|
42
43
|
const untitledSequenceName = "Untitled Sequence";
|
|
43
44
|
const gbDivisions = {
|
|
44
45
|
// https://www.ncbi.nlm.nih.gov/Sitemap/samplerecord.html#GenBankDivisionB
|
|
@@ -94,6 +95,19 @@ function createInitialSequence(options) {
|
|
|
94
95
|
};
|
|
95
96
|
}
|
|
96
97
|
__name(createInitialSequence, "createInitialSequence");
|
|
98
|
+
function extractFileExtension(name) {
|
|
99
|
+
if (typeof name === "string") {
|
|
100
|
+
let ext = "";
|
|
101
|
+
const match = name.match(/\.(\w+)$/);
|
|
102
|
+
if (match && match[1]) {
|
|
103
|
+
ext = match[1];
|
|
104
|
+
}
|
|
105
|
+
return ext;
|
|
106
|
+
} else {
|
|
107
|
+
return "";
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
__name(extractFileExtension, "extractFileExtension");
|
|
97
111
|
function splitStringIntoLines(string) {
|
|
98
112
|
let lines = [];
|
|
99
113
|
if (string === "") {
|
|
@@ -119,10 +133,7 @@ function getAugmentedNamespace(n) {
|
|
|
119
133
|
if (typeof f == "function") {
|
|
120
134
|
var a = /* @__PURE__ */ __name(function a2() {
|
|
121
135
|
if (this instanceof a2) {
|
|
122
|
-
|
|
123
|
-
args.push.apply(args, arguments);
|
|
124
|
-
var Ctor = Function.bind.apply(f, args);
|
|
125
|
-
return new Ctor();
|
|
136
|
+
return Reflect.construct(f, arguments, this.constructor);
|
|
126
137
|
}
|
|
127
138
|
return f.apply(this, arguments);
|
|
128
139
|
}, "a");
|
|
@@ -6270,8 +6281,8 @@ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength,
|
|
|
6270
6281
|
maxRangeLength
|
|
6271
6282
|
);
|
|
6272
6283
|
let overlaps = [];
|
|
6273
|
-
normalizedRangeA.forEach(function(nonCircularRangeA
|
|
6274
|
-
normalizedRangeB.forEach(function(nonCircularRangeB
|
|
6284
|
+
normalizedRangeA.forEach(function(nonCircularRangeA) {
|
|
6285
|
+
normalizedRangeB.forEach(function(nonCircularRangeB) {
|
|
6275
6286
|
const overlap = getOverlapOfNonCircularRanges(
|
|
6276
6287
|
nonCircularRangeA,
|
|
6277
6288
|
nonCircularRangeB
|
|
@@ -6283,7 +6294,7 @@ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength,
|
|
|
6283
6294
|
});
|
|
6284
6295
|
if (joinIfPossible && normalizedRangeA.length === 2 && normalizedRangeB.length === 2 && maxRangeLength) {
|
|
6285
6296
|
const joinedOverlap = {};
|
|
6286
|
-
overlaps = lodashExports.flatMap(overlaps, (o
|
|
6297
|
+
overlaps = lodashExports.flatMap(overlaps, (o) => {
|
|
6287
6298
|
if (o.start === 0) {
|
|
6288
6299
|
joinedOverlap.end = o.end;
|
|
6289
6300
|
return [];
|
|
@@ -6381,12 +6392,14 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
|
|
|
6381
6392
|
});
|
|
6382
6393
|
splitRangesToBeTrimmed[index] = nonCircularRangeToBeTrimmed;
|
|
6383
6394
|
});
|
|
6384
|
-
const outputSplitRanges = splitRangesToBeTrimmed.filter(
|
|
6385
|
-
|
|
6386
|
-
|
|
6395
|
+
const outputSplitRanges = splitRangesToBeTrimmed.filter(
|
|
6396
|
+
function(trimmedRange) {
|
|
6397
|
+
if (trimmedRange) {
|
|
6398
|
+
return true;
|
|
6399
|
+
}
|
|
6400
|
+
return false;
|
|
6387
6401
|
}
|
|
6388
|
-
|
|
6389
|
-
});
|
|
6402
|
+
);
|
|
6390
6403
|
let outputTrimmedRange;
|
|
6391
6404
|
if (outputSplitRanges.length < 0)
|
|
6392
6405
|
;
|
|
@@ -6436,8 +6449,14 @@ function normalizePositionByRangeLength(pPosition, sequenceLength, isInBetweenPo
|
|
|
6436
6449
|
__name(normalizePositionByRangeLength, "normalizePositionByRangeLength");
|
|
6437
6450
|
function translateRange(rangeToBeAdjusted, translateBy, rangeLength) {
|
|
6438
6451
|
return lodashExports.assign({}, rangeToBeAdjusted, {
|
|
6439
|
-
start: normalizePositionByRangeLength(
|
|
6440
|
-
|
|
6452
|
+
start: normalizePositionByRangeLength(
|
|
6453
|
+
rangeToBeAdjusted.start + translateBy,
|
|
6454
|
+
rangeLength
|
|
6455
|
+
),
|
|
6456
|
+
end: normalizePositionByRangeLength(
|
|
6457
|
+
rangeToBeAdjusted.end + translateBy,
|
|
6458
|
+
rangeLength
|
|
6459
|
+
)
|
|
6441
6460
|
});
|
|
6442
6461
|
}
|
|
6443
6462
|
__name(translateRange, "translateRange");
|
|
@@ -11378,13 +11397,13 @@ function coerceLocation({
|
|
|
11378
11397
|
messages.push(
|
|
11379
11398
|
"Invalid annotation start: " + location.start + " detected for " + location.name + " and set to size: " + size
|
|
11380
11399
|
);
|
|
11381
|
-
location.start = size - (isProtein ? 3 : 1);
|
|
11400
|
+
location.start = Math.max(0, size - (isProtein ? 3 : 1));
|
|
11382
11401
|
}
|
|
11383
11402
|
if (location.end < 0 || !(location.end <= size - 1) || location.end > size - 1) {
|
|
11384
11403
|
messages.push(
|
|
11385
11404
|
"Invalid annotation end: " + location.end + " detected for " + location.name + " and set to seq size: " + size
|
|
11386
11405
|
);
|
|
11387
|
-
location.end = size - 1;
|
|
11406
|
+
location.end = Math.max(0, size - 1);
|
|
11388
11407
|
}
|
|
11389
11408
|
if (location.start > location.end && circular === false) {
|
|
11390
11409
|
messages.push(
|
|
@@ -11397,9 +11416,9 @@ __name(coerceLocation, "coerceLocation");
|
|
|
11397
11416
|
function filterAminoAcidSequenceString(sequenceString, options) {
|
|
11398
11417
|
options = options || {};
|
|
11399
11418
|
if (options.includeStopCodon) {
|
|
11400
|
-
return sequenceString.replace(/[^xtgalmfwkqespvicyhrndu.*]/gi, "");
|
|
11419
|
+
return sequenceString == null ? void 0 : sequenceString.replace(/[^xtgalmfwkqespvicyhrndu.*]/gi, "");
|
|
11401
11420
|
}
|
|
11402
|
-
return sequenceString.replace(/[^xtgalmfwkqespvicyhrndu]/gi, "");
|
|
11421
|
+
return sequenceString == null ? void 0 : sequenceString.replace(/[^xtgalmfwkqespvicyhrndu]/gi, "");
|
|
11403
11422
|
}
|
|
11404
11423
|
__name(filterAminoAcidSequenceString, "filterAminoAcidSequenceString");
|
|
11405
11424
|
function getDegenerateDnaStringFromAAString(aaString) {
|
|
@@ -11597,7 +11616,7 @@ const calcTmMethods = {
|
|
|
11597
11616
|
calculateTemperature: function(sequence, type, A, R, C, Na) {
|
|
11598
11617
|
if (typeof type === "undefined") {
|
|
11599
11618
|
type = this.TABLE_BRESLAUER;
|
|
11600
|
-
} else if (type != this.TABLE_BRESLAUER &&
|
|
11619
|
+
} else if (type != this.TABLE_BRESLAUER && type != this.TABLE_UNIFIED && type != this.TABLE_SUGIMOTO) {
|
|
11601
11620
|
throw new Error("Invalid table type!");
|
|
11602
11621
|
}
|
|
11603
11622
|
if (!A) {
|
|
@@ -19557,7 +19576,11 @@ function validateSequenceArray(parsingResultArray, options) {
|
|
|
19557
19576
|
return parsingResultArray;
|
|
19558
19577
|
}
|
|
19559
19578
|
__name(validateSequenceArray, "validateSequenceArray");
|
|
19560
|
-
function fastaToJson(fileString, options) {
|
|
19579
|
+
function fastaToJson(fileString, options = {}) {
|
|
19580
|
+
const ext = extractFileExtension(options.fileName);
|
|
19581
|
+
if (/^(faa)$/.test(ext)) {
|
|
19582
|
+
options.isProtein = true;
|
|
19583
|
+
}
|
|
19561
19584
|
let resultArray = [];
|
|
19562
19585
|
let result = null;
|
|
19563
19586
|
try {
|
|
@@ -19744,18 +19767,20 @@ function genbankToJson(string, options = {}) {
|
|
|
19744
19767
|
const isKeyRunon = isKeywordRunon(line);
|
|
19745
19768
|
const isSubKey = isSubKeyword(line);
|
|
19746
19769
|
const isKey = isKeyword(line);
|
|
19747
|
-
if (
|
|
19748
|
-
|
|
19749
|
-
|
|
19750
|
-
|
|
19751
|
-
|
|
19752
|
-
|
|
19753
|
-
|
|
19754
|
-
|
|
19755
|
-
|
|
19756
|
-
|
|
19757
|
-
|
|
19758
|
-
|
|
19770
|
+
if (!isKeyRunon) {
|
|
19771
|
+
if (key === "LOCUS") {
|
|
19772
|
+
LINETYPE = key;
|
|
19773
|
+
} else if (key === "REFERENCE") {
|
|
19774
|
+
LINETYPE = key;
|
|
19775
|
+
} else if (key === "FEATURES") {
|
|
19776
|
+
LINETYPE = key;
|
|
19777
|
+
} else if (key === "ORIGIN") {
|
|
19778
|
+
LINETYPE = key;
|
|
19779
|
+
} else if (key === "//") {
|
|
19780
|
+
LINETYPE = key;
|
|
19781
|
+
} else if (isKey === true) {
|
|
19782
|
+
LINETYPE = key;
|
|
19783
|
+
}
|
|
19759
19784
|
}
|
|
19760
19785
|
if (line.trim() === "" || key === ";") {
|
|
19761
19786
|
return false;
|
|
@@ -19924,7 +19949,6 @@ function genbankToJson(string, options = {}) {
|
|
|
19924
19949
|
__name(parseOrigin, "parseOrigin");
|
|
19925
19950
|
function parseLocus(line) {
|
|
19926
19951
|
result = createInitialSequence(options);
|
|
19927
|
-
let locusName;
|
|
19928
19952
|
let circular;
|
|
19929
19953
|
let gbDivision;
|
|
19930
19954
|
let date;
|
|
@@ -19935,7 +19959,7 @@ function genbankToJson(string, options = {}) {
|
|
|
19935
19959
|
);
|
|
19936
19960
|
addMessage("Import Warning: Locus line contains no values: " + line);
|
|
19937
19961
|
}
|
|
19938
|
-
locusName = lineArr[1];
|
|
19962
|
+
const locusName = lineArr[1];
|
|
19939
19963
|
for (let i = 1; i < lineArr.length; i++) {
|
|
19940
19964
|
if (lineArr[i].match(/circular/gi)) {
|
|
19941
19965
|
circular = true;
|
|
@@ -20088,10 +20112,10 @@ function genbankToJson(string, options = {}) {
|
|
|
20088
20112
|
}
|
|
20089
20113
|
__name(parseFeatureLocation, "parseFeatureLocation");
|
|
20090
20114
|
function parseFeatureNote(line) {
|
|
20091
|
-
let newLine
|
|
20115
|
+
let newLine;
|
|
20092
20116
|
newLine = line.trimLeft();
|
|
20093
20117
|
newLine = newLine.replace(/^\/|"$/g, "");
|
|
20094
|
-
lineArr = newLine.split(/="|=/);
|
|
20118
|
+
const lineArr = newLine.split(/="|=/);
|
|
20095
20119
|
let val2 = lineArr.slice(1).join("=");
|
|
20096
20120
|
if (val2) {
|
|
20097
20121
|
val2 = val2.replace(/\\/g, " ");
|
|
@@ -20219,7 +20243,7 @@ function getLengthOfWhiteSpaceBeforeStartOfLetters(string) {
|
|
|
20219
20243
|
}
|
|
20220
20244
|
}
|
|
20221
20245
|
__name(getLengthOfWhiteSpaceBeforeStartOfLetters, "getLengthOfWhiteSpaceBeforeStartOfLetters");
|
|
20222
|
-
class
|
|
20246
|
+
const _Match = class _Match {
|
|
20223
20247
|
constructor(props) {
|
|
20224
20248
|
Object.assign(this, props);
|
|
20225
20249
|
this.value = this.obj[this.prop];
|
|
@@ -20236,8 +20260,9 @@ class Match {
|
|
|
20236
20260
|
log() {
|
|
20237
20261
|
console.info(this.toString());
|
|
20238
20262
|
}
|
|
20239
|
-
}
|
|
20240
|
-
__name(
|
|
20263
|
+
};
|
|
20264
|
+
__name(_Match, "Match");
|
|
20265
|
+
let Match = _Match;
|
|
20241
20266
|
const GLOBAL = typeof window == "object" ? window : global;
|
|
20242
20267
|
function searchWholeObjByName(what, where) {
|
|
20243
20268
|
const searchBy = /* @__PURE__ */ __name((what2, where2, prop) => what2 == prop, "searchBy");
|
|
@@ -20283,13 +20308,13 @@ function searchWholeObjByName(what, where) {
|
|
|
20283
20308
|
}
|
|
20284
20309
|
__name(searchWholeObjByName, "searchWholeObjByName");
|
|
20285
20310
|
function searchWholeObjByNameSimple(what, where) {
|
|
20286
|
-
var
|
|
20287
|
-
return (_c = (
|
|
20311
|
+
var _a3, _b3, _c;
|
|
20312
|
+
return (_c = (_b3 = (_a3 = searchWholeObjByName(what, where)) == null ? void 0 : _a3[0]) == null ? void 0 : _b3.value) == null ? void 0 : _c[0];
|
|
20288
20313
|
}
|
|
20289
20314
|
__name(searchWholeObjByNameSimple, "searchWholeObjByNameSimple");
|
|
20290
20315
|
function searchWholeObjByNameSimpleArray(what, where) {
|
|
20291
|
-
var
|
|
20292
|
-
return (
|
|
20316
|
+
var _a3, _b3;
|
|
20317
|
+
return (_b3 = (_a3 = searchWholeObjByName(what, where)) == null ? void 0 : _a3[0]) == null ? void 0 : _b3.value;
|
|
20293
20318
|
}
|
|
20294
20319
|
__name(searchWholeObjByNameSimpleArray, "searchWholeObjByNameSimpleArray");
|
|
20295
20320
|
var validator$2 = {};
|
|
@@ -20717,7 +20742,7 @@ const buildOptions$1 = /* @__PURE__ */ __name(function(options) {
|
|
|
20717
20742
|
}, "buildOptions$1");
|
|
20718
20743
|
OptionsBuilder.buildOptions = buildOptions$1;
|
|
20719
20744
|
OptionsBuilder.defaultOptions = defaultOptions$1;
|
|
20720
|
-
class
|
|
20745
|
+
const _XmlNode = class _XmlNode {
|
|
20721
20746
|
constructor(tagname) {
|
|
20722
20747
|
this.tagname = tagname;
|
|
20723
20748
|
this.child = [];
|
|
@@ -20737,8 +20762,9 @@ class XmlNode {
|
|
|
20737
20762
|
this.child.push({ [node.tagname]: node.child });
|
|
20738
20763
|
}
|
|
20739
20764
|
}
|
|
20740
|
-
}
|
|
20741
|
-
__name(
|
|
20765
|
+
};
|
|
20766
|
+
__name(_XmlNode, "XmlNode");
|
|
20767
|
+
let XmlNode = _XmlNode;
|
|
20742
20768
|
var xmlNode$1 = XmlNode;
|
|
20743
20769
|
const util$2 = util$4;
|
|
20744
20770
|
function readDocType$1(xmlData, i) {
|
|
@@ -20949,7 +20975,7 @@ const xmlNode = xmlNode$1;
|
|
|
20949
20975
|
const readDocType = DocTypeReader;
|
|
20950
20976
|
const toNumber = strnum;
|
|
20951
20977
|
"<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g, util$1.nameRegexp);
|
|
20952
|
-
let OrderedObjParser$1 =
|
|
20978
|
+
let OrderedObjParser$1 = (_a = class {
|
|
20953
20979
|
constructor(options) {
|
|
20954
20980
|
this.options = options;
|
|
20955
20981
|
this.currentNode = null;
|
|
@@ -20988,7 +21014,7 @@ let OrderedObjParser$1 = /* @__PURE__ */ __name(class OrderedObjParser {
|
|
|
20988
21014
|
this.saveTextToParentTag = saveTextToParentTag;
|
|
20989
21015
|
this.addChild = addChild;
|
|
20990
21016
|
}
|
|
20991
|
-
}, "OrderedObjParser");
|
|
21017
|
+
}, __name(_a, "OrderedObjParser"), _a);
|
|
20992
21018
|
function addExternalEntities(externalEntities) {
|
|
20993
21019
|
const entKeys = Object.keys(externalEntities);
|
|
20994
21020
|
for (let i = 0; i < entKeys.length; i++) {
|
|
@@ -21220,6 +21246,7 @@ const parseXml = /* @__PURE__ */ __name(function(xmlData) {
|
|
|
21220
21246
|
if (tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1) {
|
|
21221
21247
|
if (tagName[tagName.length - 1] === "/") {
|
|
21222
21248
|
tagName = tagName.substr(0, tagName.length - 1);
|
|
21249
|
+
jPath = jPath.substr(0, jPath.length - 1);
|
|
21223
21250
|
tagExp = tagName;
|
|
21224
21251
|
} else {
|
|
21225
21252
|
tagExp = tagExp.substr(0, tagExp.length - 1);
|
|
@@ -21537,10 +21564,10 @@ function isLeafTag(obj, options) {
|
|
|
21537
21564
|
__name(isLeafTag, "isLeafTag");
|
|
21538
21565
|
node2json.prettify = prettify$1;
|
|
21539
21566
|
const { buildOptions } = OptionsBuilder;
|
|
21540
|
-
const
|
|
21567
|
+
const OrderedObjParser = OrderedObjParser_1;
|
|
21541
21568
|
const { prettify } = node2json;
|
|
21542
21569
|
const validator$1 = validator$2;
|
|
21543
|
-
let XMLParser$1 =
|
|
21570
|
+
let XMLParser$1 = (_b = class {
|
|
21544
21571
|
constructor(options) {
|
|
21545
21572
|
this.externalEntities = {};
|
|
21546
21573
|
this.options = buildOptions(options);
|
|
@@ -21566,7 +21593,7 @@ let XMLParser$1 = /* @__PURE__ */ __name(class XMLParser {
|
|
|
21566
21593
|
throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);
|
|
21567
21594
|
}
|
|
21568
21595
|
}
|
|
21569
|
-
const orderedObjParser = new
|
|
21596
|
+
const orderedObjParser = new OrderedObjParser(this.options);
|
|
21570
21597
|
orderedObjParser.addExternalEntities(this.externalEntities);
|
|
21571
21598
|
const orderedResult = orderedObjParser.parseXml(xmlData);
|
|
21572
21599
|
if (this.options.preserveOrder || orderedResult === void 0)
|
|
@@ -21590,7 +21617,7 @@ let XMLParser$1 = /* @__PURE__ */ __name(class XMLParser {
|
|
|
21590
21617
|
this.externalEntities[key] = value;
|
|
21591
21618
|
}
|
|
21592
21619
|
}
|
|
21593
|
-
}, "XMLParser");
|
|
21620
|
+
}, __name(_b, "XMLParser"), _b);
|
|
21594
21621
|
var XMLParser_1 = XMLParser$1;
|
|
21595
21622
|
const EOL = "\n";
|
|
21596
21623
|
function toXml(jArray, options) {
|
|
@@ -21795,13 +21822,18 @@ Builder.prototype.j2x = function(jObj, level) {
|
|
|
21795
21822
|
let attrStr = "";
|
|
21796
21823
|
let val2 = "";
|
|
21797
21824
|
for (let key in jObj) {
|
|
21798
|
-
if (typeof jObj[key] === "undefined")
|
|
21799
|
-
|
|
21800
|
-
|
|
21801
|
-
|
|
21825
|
+
if (typeof jObj[key] === "undefined") {
|
|
21826
|
+
if (this.isAttribute(key)) {
|
|
21827
|
+
val2 += "";
|
|
21828
|
+
}
|
|
21829
|
+
} else if (jObj[key] === null) {
|
|
21830
|
+
if (this.isAttribute(key)) {
|
|
21831
|
+
val2 += "";
|
|
21832
|
+
} else if (key[0] === "?") {
|
|
21802
21833
|
val2 += this.indentate(level) + "<" + key + "?" + this.tagEndChar;
|
|
21803
|
-
else
|
|
21834
|
+
} else {
|
|
21804
21835
|
val2 += this.indentate(level) + "<" + key + "/" + this.tagEndChar;
|
|
21836
|
+
}
|
|
21805
21837
|
} else if (jObj[key] instanceof Date) {
|
|
21806
21838
|
val2 += this.buildTextValNode(jObj[key], key, "", level);
|
|
21807
21839
|
} else if (typeof jObj[key] !== "object") {
|
|
@@ -21887,7 +21919,7 @@ Builder.prototype.buildObjectNode = function(val2, key, attrStr, level) {
|
|
|
21887
21919
|
piClosingChar = "?";
|
|
21888
21920
|
tagEndExp = "";
|
|
21889
21921
|
}
|
|
21890
|
-
if (attrStr && val2.indexOf("<") === -1) {
|
|
21922
|
+
if ((attrStr || attrStr === "") && val2.indexOf("<") === -1) {
|
|
21891
21923
|
return this.indentate(level) + "<" + key + attrStr + piClosingChar + ">" + val2 + tagEndExp;
|
|
21892
21924
|
} else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {
|
|
21893
21925
|
return this.indentate(level) + `<!--${val2}-->` + this.newLine;
|
|
@@ -21939,7 +21971,7 @@ function indentate(level) {
|
|
|
21939
21971
|
}
|
|
21940
21972
|
__name(indentate, "indentate");
|
|
21941
21973
|
function isAttribute(name) {
|
|
21942
|
-
if (name.startsWith(this.options.attributeNamePrefix)) {
|
|
21974
|
+
if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {
|
|
21943
21975
|
return name.substr(this.attrPrefixLen);
|
|
21944
21976
|
} else {
|
|
21945
21977
|
return false;
|
|
@@ -21948,10 +21980,10 @@ function isAttribute(name) {
|
|
|
21948
21980
|
__name(isAttribute, "isAttribute");
|
|
21949
21981
|
var json2xml = Builder;
|
|
21950
21982
|
const validator = validator$2;
|
|
21951
|
-
const
|
|
21983
|
+
const XMLParser = XMLParser_1;
|
|
21952
21984
|
const XMLBuilder = json2xml;
|
|
21953
21985
|
var fxp = {
|
|
21954
|
-
XMLParser
|
|
21986
|
+
XMLParser,
|
|
21955
21987
|
XMLValidator: validator,
|
|
21956
21988
|
XMLBuilder
|
|
21957
21989
|
};
|
|
@@ -22067,19 +22099,6 @@ function parseSbolJson(sbolJson, options) {
|
|
|
22067
22099
|
};
|
|
22068
22100
|
}
|
|
22069
22101
|
__name(parseSbolJson, "parseSbolJson");
|
|
22070
|
-
function extractFileExtension(name) {
|
|
22071
|
-
if (typeof name === "string") {
|
|
22072
|
-
let ext = "";
|
|
22073
|
-
const match = name.match(/\.(\w+)$/);
|
|
22074
|
-
if (match && match[1]) {
|
|
22075
|
-
ext = match[1];
|
|
22076
|
-
}
|
|
22077
|
-
return ext;
|
|
22078
|
-
} else {
|
|
22079
|
-
return "";
|
|
22080
|
-
}
|
|
22081
|
-
}
|
|
22082
|
-
__name(extractFileExtension, "extractFileExtension");
|
|
22083
22102
|
/*!
|
|
22084
22103
|
* Copyright 2008 Fair Oaks Labs, Inc.
|
|
22085
22104
|
* All rights reserved.
|
|
@@ -25882,7 +25901,8 @@ var buffer$1 = {};
|
|
|
25882
25901
|
}, "fill");
|
|
25883
25902
|
const errors = {};
|
|
25884
25903
|
function E(sym, getMessage, Base) {
|
|
25885
|
-
|
|
25904
|
+
var _a3;
|
|
25905
|
+
errors[sym] = (_a3 = class extends Base {
|
|
25886
25906
|
constructor() {
|
|
25887
25907
|
super();
|
|
25888
25908
|
Object.defineProperty(this, "message", {
|
|
@@ -25908,7 +25928,7 @@ var buffer$1 = {};
|
|
|
25908
25928
|
toString() {
|
|
25909
25929
|
return `${this.name} [${sym}]: ${this.message}`;
|
|
25910
25930
|
}
|
|
25911
|
-
}, "NodeError");
|
|
25931
|
+
}, __name(_a3, "NodeError"), _a3);
|
|
25912
25932
|
}
|
|
25913
25933
|
__name(E, "E");
|
|
25914
25934
|
E(
|
|
@@ -29391,7 +29411,7 @@ const containerAttributes = {
|
|
|
29391
29411
|
Parent: "child_features",
|
|
29392
29412
|
Derives_from: "derived_features"
|
|
29393
29413
|
};
|
|
29394
|
-
class
|
|
29414
|
+
const _FASTAParser = class _FASTAParser {
|
|
29395
29415
|
constructor(seqCallback) {
|
|
29396
29416
|
this.seqCallback = seqCallback;
|
|
29397
29417
|
this.currentSequence = void 0;
|
|
@@ -29414,9 +29434,10 @@ class FASTAParser {
|
|
|
29414
29434
|
finish() {
|
|
29415
29435
|
this._flush();
|
|
29416
29436
|
}
|
|
29417
|
-
}
|
|
29418
|
-
__name(
|
|
29419
|
-
|
|
29437
|
+
};
|
|
29438
|
+
__name(_FASTAParser, "FASTAParser");
|
|
29439
|
+
let FASTAParser = _FASTAParser;
|
|
29440
|
+
const _Parser = class _Parser {
|
|
29420
29441
|
constructor(args) {
|
|
29421
29442
|
this.fastaParser = void 0;
|
|
29422
29443
|
this.eof = false;
|
|
@@ -29535,14 +29556,14 @@ class Parser {
|
|
|
29535
29556
|
}
|
|
29536
29557
|
// do the right thing with a newly-parsed feature line
|
|
29537
29558
|
_bufferLine(line) {
|
|
29538
|
-
var
|
|
29559
|
+
var _a3, _b3, _c;
|
|
29539
29560
|
const rawFeatureLine = parseFeature(line);
|
|
29540
29561
|
const featureLine = __spreadProps(__spreadValues({}, rawFeatureLine), {
|
|
29541
29562
|
child_features: [],
|
|
29542
29563
|
derived_features: []
|
|
29543
29564
|
});
|
|
29544
|
-
const ids = ((
|
|
29545
|
-
const parents = ((
|
|
29565
|
+
const ids = ((_a3 = featureLine.attributes) === null || _a3 === void 0 ? void 0 : _a3.ID) || [];
|
|
29566
|
+
const parents = ((_b3 = featureLine.attributes) === null || _b3 === void 0 ? void 0 : _b3.Parent) || [];
|
|
29546
29567
|
const derives = this.disableDerivesFromReferences ? [] : ((_c = featureLine.attributes) === null || _c === void 0 ? void 0 : _c.Derives_from) || [];
|
|
29547
29568
|
if (!ids.length && !parents.length && !derives.length) {
|
|
29548
29569
|
this._emitItem([featureLine]);
|
|
@@ -29640,8 +29661,9 @@ class Parser {
|
|
|
29640
29661
|
}
|
|
29641
29662
|
});
|
|
29642
29663
|
}
|
|
29643
|
-
}
|
|
29644
|
-
__name(
|
|
29664
|
+
};
|
|
29665
|
+
__name(_Parser, "Parser");
|
|
29666
|
+
let Parser = _Parser;
|
|
29645
29667
|
function _callback(callback) {
|
|
29646
29668
|
if (process && process.nextTick)
|
|
29647
29669
|
process.nextTick(callback);
|
|
@@ -29668,7 +29690,7 @@ function _processParseOptions(options) {
|
|
|
29668
29690
|
return out;
|
|
29669
29691
|
}
|
|
29670
29692
|
__name(_processParseOptions, "_processParseOptions");
|
|
29671
|
-
class
|
|
29693
|
+
const _GFFTransform = class _GFFTransform extends streamBrowserify.Transform {
|
|
29672
29694
|
constructor(inputOptions = {}) {
|
|
29673
29695
|
super({ objectMode: true });
|
|
29674
29696
|
this.textBuffer = "";
|
|
@@ -29708,8 +29730,9 @@ class GFFTransform extends streamBrowserify.Transform {
|
|
|
29708
29730
|
this.parser.finish();
|
|
29709
29731
|
_callback(callback);
|
|
29710
29732
|
}
|
|
29711
|
-
}
|
|
29712
|
-
__name(
|
|
29733
|
+
};
|
|
29734
|
+
__name(_GFFTransform, "GFFTransform");
|
|
29735
|
+
let GFFTransform = _GFFTransform;
|
|
29713
29736
|
function parseStream(options = {}) {
|
|
29714
29737
|
return new GFFTransform(options);
|
|
29715
29738
|
}
|
|
@@ -29753,7 +29776,7 @@ function formatSync(items) {
|
|
|
29753
29776
|
return str;
|
|
29754
29777
|
}
|
|
29755
29778
|
__name(formatSync, "formatSync");
|
|
29756
|
-
class
|
|
29779
|
+
const _FormattingTransform = class _FormattingTransform extends streamBrowserify.Transform {
|
|
29757
29780
|
constructor(options = {}) {
|
|
29758
29781
|
super(Object.assign(options, { objectMode: true }));
|
|
29759
29782
|
this.linesSinceLastSyncMark = 0;
|
|
@@ -29795,8 +29818,9 @@ class FormattingTransform extends streamBrowserify.Transform {
|
|
|
29795
29818
|
this.haveWeEmittedData = true;
|
|
29796
29819
|
_callback(callback);
|
|
29797
29820
|
}
|
|
29798
|
-
}
|
|
29799
|
-
__name(
|
|
29821
|
+
};
|
|
29822
|
+
__name(_FormattingTransform, "FormattingTransform");
|
|
29823
|
+
let FormattingTransform = _FormattingTransform;
|
|
29800
29824
|
function formatStream(options = {}) {
|
|
29801
29825
|
return new FormattingTransform(options);
|
|
29802
29826
|
}
|
|
@@ -29897,13 +29921,10 @@ function geneiousXmlToJson(string, options) {
|
|
|
29897
29921
|
});
|
|
29898
29922
|
}
|
|
29899
29923
|
});
|
|
29900
|
-
const toRet = lodashExports.filter(
|
|
29901
|
-
|
|
29902
|
-
(r)
|
|
29903
|
-
|
|
29904
|
-
return (_b2 = (_a2 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a2.sequence) == null ? void 0 : _b2.length;
|
|
29905
|
-
}
|
|
29906
|
-
);
|
|
29924
|
+
const toRet = lodashExports.filter(resultArray, (r) => {
|
|
29925
|
+
var _a3, _b3;
|
|
29926
|
+
return (_b3 = (_a3 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a3.sequence) == null ? void 0 : _b3.length;
|
|
29927
|
+
});
|
|
29907
29928
|
if (toRet.length)
|
|
29908
29929
|
return toRet;
|
|
29909
29930
|
return onFileParsed(resultArray);
|
|
@@ -30008,13 +30029,10 @@ function jbeiXmlToJson(string, options) {
|
|
|
30008
30029
|
messages: ["Error while parsing JBEI format"]
|
|
30009
30030
|
});
|
|
30010
30031
|
}
|
|
30011
|
-
const toRet = lodashExports.filter(
|
|
30012
|
-
|
|
30013
|
-
(r)
|
|
30014
|
-
|
|
30015
|
-
return (_b2 = (_a2 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a2.sequence) == null ? void 0 : _b2.length;
|
|
30016
|
-
}
|
|
30017
|
-
);
|
|
30032
|
+
const toRet = lodashExports.filter(resultArray, (r) => {
|
|
30033
|
+
var _a3, _b3;
|
|
30034
|
+
return (_b3 = (_a3 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a3.sequence) == null ? void 0 : _b3.length;
|
|
30035
|
+
});
|
|
30018
30036
|
if (toRet.length)
|
|
30019
30037
|
return toRet;
|
|
30020
30038
|
return onFileParsed(resultArray);
|
|
@@ -30159,9 +30177,9 @@ var freb = /* @__PURE__ */ __name(function(eb, start) {
|
|
|
30159
30177
|
}
|
|
30160
30178
|
return { b, r };
|
|
30161
30179
|
}, "freb");
|
|
30162
|
-
var
|
|
30180
|
+
var _a2 = freb(fleb, 2), fl = _a2.b, revfl = _a2.r;
|
|
30163
30181
|
fl[28] = 258, revfl[258] = 28;
|
|
30164
|
-
var
|
|
30182
|
+
var _b2 = freb(fdeb, 0), fd = _b2.b;
|
|
30165
30183
|
var rev = new u16(32768);
|
|
30166
30184
|
for (var i = 0; i < 32768; ++i) {
|
|
30167
30185
|
var x = (i & 43690) >> 1 | (i & 21845) << 1;
|
|
@@ -30464,7 +30482,7 @@ function strFromU8(dat, latin1) {
|
|
|
30464
30482
|
} else if (td) {
|
|
30465
30483
|
return td.decode(dat);
|
|
30466
30484
|
} else {
|
|
30467
|
-
var
|
|
30485
|
+
var _a3 = dutf8(dat), s = _a3.s, r = _a3.r;
|
|
30468
30486
|
if (r.length)
|
|
30469
30487
|
err(8);
|
|
30470
30488
|
return s;
|
|
@@ -30476,7 +30494,7 @@ var slzh = /* @__PURE__ */ __name(function(d, b) {
|
|
|
30476
30494
|
}, "slzh");
|
|
30477
30495
|
var zh = /* @__PURE__ */ __name(function(d, b, z) {
|
|
30478
30496
|
var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);
|
|
30479
|
-
var
|
|
30497
|
+
var _a3 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a3[0], su = _a3[1], off = _a3[2];
|
|
30480
30498
|
return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];
|
|
30481
30499
|
}, "zh");
|
|
30482
30500
|
var z64e = /* @__PURE__ */ __name(function(d, b) {
|
|
@@ -30506,7 +30524,7 @@ function unzipSync(data, opts) {
|
|
|
30506
30524
|
}
|
|
30507
30525
|
var fltr = opts && opts.filter;
|
|
30508
30526
|
for (var i = 0; i < c; ++i) {
|
|
30509
|
-
var
|
|
30527
|
+
var _a3 = zh(data, o, z), c_2 = _a3[0], sc = _a3[1], su = _a3[2], fn = _a3[3], no = _a3[4], off = _a3[5], b = slzh(data, off);
|
|
30510
30528
|
o = no;
|
|
30511
30529
|
if (!fltr || fltr({
|
|
30512
30530
|
name: fn,
|
|
@@ -30565,7 +30583,7 @@ function anyToJson(fileContentStringOrFileObj, options) {
|
|
|
30565
30583
|
);
|
|
30566
30584
|
}
|
|
30567
30585
|
}
|
|
30568
|
-
if (/^(fasta|fas|fa|fna|ffn)$/.test(ext)) {
|
|
30586
|
+
if (/^(fasta|fas|fa|fna|ffn|faa)$/.test(ext)) {
|
|
30569
30587
|
return fastaToJson(fileContentString, options);
|
|
30570
30588
|
} else if (/^(gb|gbk)$/.test(ext)) {
|
|
30571
30589
|
return genbankToJson(fileContentString, options);
|
|
@@ -32394,18 +32412,17 @@ function jsonToGenbank(_serSeq, options) {
|
|
|
32394
32412
|
}
|
|
32395
32413
|
__name(jsonToGenbank, "jsonToGenbank");
|
|
32396
32414
|
function createGenbankLocus(serSeq, options) {
|
|
32397
|
-
var
|
|
32415
|
+
var _a3, _b3;
|
|
32398
32416
|
if (serSeq.sequence.symbols) {
|
|
32399
32417
|
serSeq.sequence = serSeq.sequence.symbols.split("");
|
|
32400
32418
|
}
|
|
32401
|
-
let tmp;
|
|
32402
32419
|
let dnaType;
|
|
32403
32420
|
if (serSeq.isProtein) {
|
|
32404
32421
|
dnaType = "";
|
|
32405
32422
|
} else if (serSeq.type === "RNA") {
|
|
32406
|
-
dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "RNA" : (
|
|
32423
|
+
dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "RNA" : (_a3 = serSeq == null ? void 0 : serSeq.sequenceTypeFromLocus) != null ? _a3 : "ss-RNA";
|
|
32407
32424
|
} else {
|
|
32408
|
-
dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "DNA" : (
|
|
32425
|
+
dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "DNA" : (_b3 = serSeq == null ? void 0 : serSeq.sequenceTypeFromLocus) != null ? _b3 : "DNA";
|
|
32409
32426
|
}
|
|
32410
32427
|
const date = getCurrentDateString();
|
|
32411
32428
|
let line = StringUtil.rpad("LOCUS", " ", 12);
|
|
@@ -32415,7 +32432,7 @@ function createGenbankLocus(serSeq, options) {
|
|
|
32415
32432
|
line += " ";
|
|
32416
32433
|
line += StringUtil.lpad(String(serSeq.sequence.length), " ", 11);
|
|
32417
32434
|
line += serSeq.isProtein ? " aa " : " bp ";
|
|
32418
|
-
tmp = "";
|
|
32435
|
+
const tmp = "";
|
|
32419
32436
|
line += StringUtil.lpad(tmp, " ", 3);
|
|
32420
32437
|
line += StringUtil.rpad(dnaType, " ", 6);
|
|
32421
32438
|
line += " ";
|