@teselagen/bio-parsers 0.3.6 → 0.3.8

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/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
- var args = [null];
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");
@@ -19370,7 +19381,7 @@ function validateSequence(sequence, options = {}) {
19370
19381
  (u) => u === "U" ? "T" : "t"
19371
19382
  );
19372
19383
  }
19373
- if (temp !== sequence.sequence && !sequence.isDNA && !sequence.isProtein) {
19384
+ if (temp !== sequence.sequence && !sequence.isDNA && !sequence.isProtein && sequence.isRNA !== false) {
19374
19385
  sequence.type = "RNA";
19375
19386
  sequence.sequence = temp;
19376
19387
  } else {
@@ -19557,7 +19568,11 @@ function validateSequenceArray(parsingResultArray, options) {
19557
19568
  return parsingResultArray;
19558
19569
  }
19559
19570
  __name(validateSequenceArray, "validateSequenceArray");
19560
- function fastaToJson(fileString, options) {
19571
+ function fastaToJson(fileString, options = {}) {
19572
+ const ext = extractFileExtension(options.fileName);
19573
+ if (/^(faa)$/.test(ext)) {
19574
+ options.isProtein = true;
19575
+ }
19561
19576
  let resultArray = [];
19562
19577
  let result = null;
19563
19578
  try {
@@ -20219,7 +20234,7 @@ function getLengthOfWhiteSpaceBeforeStartOfLetters(string) {
20219
20234
  }
20220
20235
  }
20221
20236
  __name(getLengthOfWhiteSpaceBeforeStartOfLetters, "getLengthOfWhiteSpaceBeforeStartOfLetters");
20222
- class Match {
20237
+ const _Match = class _Match {
20223
20238
  constructor(props) {
20224
20239
  Object.assign(this, props);
20225
20240
  this.value = this.obj[this.prop];
@@ -20236,8 +20251,9 @@ class Match {
20236
20251
  log() {
20237
20252
  console.info(this.toString());
20238
20253
  }
20239
- }
20240
- __name(Match, "Match");
20254
+ };
20255
+ __name(_Match, "Match");
20256
+ let Match = _Match;
20241
20257
  const GLOBAL = typeof window == "object" ? window : global;
20242
20258
  function searchWholeObjByName(what, where) {
20243
20259
  const searchBy = /* @__PURE__ */ __name((what2, where2, prop) => what2 == prop, "searchBy");
@@ -20283,13 +20299,13 @@ function searchWholeObjByName(what, where) {
20283
20299
  }
20284
20300
  __name(searchWholeObjByName, "searchWholeObjByName");
20285
20301
  function searchWholeObjByNameSimple(what, where) {
20286
- var _a2, _b2, _c;
20287
- return (_c = (_b2 = (_a2 = searchWholeObjByName(what, where)) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.value) == null ? void 0 : _c[0];
20302
+ var _a3, _b3, _c;
20303
+ return (_c = (_b3 = (_a3 = searchWholeObjByName(what, where)) == null ? void 0 : _a3[0]) == null ? void 0 : _b3.value) == null ? void 0 : _c[0];
20288
20304
  }
20289
20305
  __name(searchWholeObjByNameSimple, "searchWholeObjByNameSimple");
20290
20306
  function searchWholeObjByNameSimpleArray(what, where) {
20291
- var _a2, _b2;
20292
- return (_b2 = (_a2 = searchWholeObjByName(what, where)) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.value;
20307
+ var _a3, _b3;
20308
+ return (_b3 = (_a3 = searchWholeObjByName(what, where)) == null ? void 0 : _a3[0]) == null ? void 0 : _b3.value;
20293
20309
  }
20294
20310
  __name(searchWholeObjByNameSimpleArray, "searchWholeObjByNameSimpleArray");
20295
20311
  var validator$2 = {};
@@ -20717,7 +20733,7 @@ const buildOptions$1 = /* @__PURE__ */ __name(function(options) {
20717
20733
  }, "buildOptions$1");
20718
20734
  OptionsBuilder.buildOptions = buildOptions$1;
20719
20735
  OptionsBuilder.defaultOptions = defaultOptions$1;
20720
- class XmlNode {
20736
+ const _XmlNode = class _XmlNode {
20721
20737
  constructor(tagname) {
20722
20738
  this.tagname = tagname;
20723
20739
  this.child = [];
@@ -20737,8 +20753,9 @@ class XmlNode {
20737
20753
  this.child.push({ [node.tagname]: node.child });
20738
20754
  }
20739
20755
  }
20740
- }
20741
- __name(XmlNode, "XmlNode");
20756
+ };
20757
+ __name(_XmlNode, "XmlNode");
20758
+ let XmlNode = _XmlNode;
20742
20759
  var xmlNode$1 = XmlNode;
20743
20760
  const util$2 = util$4;
20744
20761
  function readDocType$1(xmlData, i) {
@@ -20949,7 +20966,7 @@ const xmlNode = xmlNode$1;
20949
20966
  const readDocType = DocTypeReader;
20950
20967
  const toNumber = strnum;
20951
20968
  "<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g, util$1.nameRegexp);
20952
- let OrderedObjParser$1 = /* @__PURE__ */ __name(class OrderedObjParser {
20969
+ let OrderedObjParser$1 = (_a = class {
20953
20970
  constructor(options) {
20954
20971
  this.options = options;
20955
20972
  this.currentNode = null;
@@ -20988,7 +21005,7 @@ let OrderedObjParser$1 = /* @__PURE__ */ __name(class OrderedObjParser {
20988
21005
  this.saveTextToParentTag = saveTextToParentTag;
20989
21006
  this.addChild = addChild;
20990
21007
  }
20991
- }, "OrderedObjParser");
21008
+ }, __name(_a, "OrderedObjParser"), _a);
20992
21009
  function addExternalEntities(externalEntities) {
20993
21010
  const entKeys = Object.keys(externalEntities);
20994
21011
  for (let i = 0; i < entKeys.length; i++) {
@@ -21220,6 +21237,7 @@ const parseXml = /* @__PURE__ */ __name(function(xmlData) {
21220
21237
  if (tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1) {
21221
21238
  if (tagName[tagName.length - 1] === "/") {
21222
21239
  tagName = tagName.substr(0, tagName.length - 1);
21240
+ jPath = jPath.substr(0, jPath.length - 1);
21223
21241
  tagExp = tagName;
21224
21242
  } else {
21225
21243
  tagExp = tagExp.substr(0, tagExp.length - 1);
@@ -21537,10 +21555,10 @@ function isLeafTag(obj, options) {
21537
21555
  __name(isLeafTag, "isLeafTag");
21538
21556
  node2json.prettify = prettify$1;
21539
21557
  const { buildOptions } = OptionsBuilder;
21540
- const OrderedObjParser2 = OrderedObjParser_1;
21558
+ const OrderedObjParser = OrderedObjParser_1;
21541
21559
  const { prettify } = node2json;
21542
21560
  const validator$1 = validator$2;
21543
- let XMLParser$1 = /* @__PURE__ */ __name(class XMLParser {
21561
+ let XMLParser$1 = (_b = class {
21544
21562
  constructor(options) {
21545
21563
  this.externalEntities = {};
21546
21564
  this.options = buildOptions(options);
@@ -21566,7 +21584,7 @@ let XMLParser$1 = /* @__PURE__ */ __name(class XMLParser {
21566
21584
  throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);
21567
21585
  }
21568
21586
  }
21569
- const orderedObjParser = new OrderedObjParser2(this.options);
21587
+ const orderedObjParser = new OrderedObjParser(this.options);
21570
21588
  orderedObjParser.addExternalEntities(this.externalEntities);
21571
21589
  const orderedResult = orderedObjParser.parseXml(xmlData);
21572
21590
  if (this.options.preserveOrder || orderedResult === void 0)
@@ -21590,7 +21608,7 @@ let XMLParser$1 = /* @__PURE__ */ __name(class XMLParser {
21590
21608
  this.externalEntities[key] = value;
21591
21609
  }
21592
21610
  }
21593
- }, "XMLParser");
21611
+ }, __name(_b, "XMLParser"), _b);
21594
21612
  var XMLParser_1 = XMLParser$1;
21595
21613
  const EOL = "\n";
21596
21614
  function toXml(jArray, options) {
@@ -21795,13 +21813,18 @@ Builder.prototype.j2x = function(jObj, level) {
21795
21813
  let attrStr = "";
21796
21814
  let val2 = "";
21797
21815
  for (let key in jObj) {
21798
- if (typeof jObj[key] === "undefined")
21799
- ;
21800
- else if (jObj[key] === null) {
21801
- if (key[0] === "?")
21816
+ if (typeof jObj[key] === "undefined") {
21817
+ if (this.isAttribute(key)) {
21818
+ val2 += "";
21819
+ }
21820
+ } else if (jObj[key] === null) {
21821
+ if (this.isAttribute(key)) {
21822
+ val2 += "";
21823
+ } else if (key[0] === "?") {
21802
21824
  val2 += this.indentate(level) + "<" + key + "?" + this.tagEndChar;
21803
- else
21825
+ } else {
21804
21826
  val2 += this.indentate(level) + "<" + key + "/" + this.tagEndChar;
21827
+ }
21805
21828
  } else if (jObj[key] instanceof Date) {
21806
21829
  val2 += this.buildTextValNode(jObj[key], key, "", level);
21807
21830
  } else if (typeof jObj[key] !== "object") {
@@ -21887,7 +21910,7 @@ Builder.prototype.buildObjectNode = function(val2, key, attrStr, level) {
21887
21910
  piClosingChar = "?";
21888
21911
  tagEndExp = "";
21889
21912
  }
21890
- if (attrStr && val2.indexOf("<") === -1) {
21913
+ if ((attrStr || attrStr === "") && val2.indexOf("<") === -1) {
21891
21914
  return this.indentate(level) + "<" + key + attrStr + piClosingChar + ">" + val2 + tagEndExp;
21892
21915
  } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {
21893
21916
  return this.indentate(level) + `<!--${val2}-->` + this.newLine;
@@ -21939,7 +21962,7 @@ function indentate(level) {
21939
21962
  }
21940
21963
  __name(indentate, "indentate");
21941
21964
  function isAttribute(name) {
21942
- if (name.startsWith(this.options.attributeNamePrefix)) {
21965
+ if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {
21943
21966
  return name.substr(this.attrPrefixLen);
21944
21967
  } else {
21945
21968
  return false;
@@ -21948,10 +21971,10 @@ function isAttribute(name) {
21948
21971
  __name(isAttribute, "isAttribute");
21949
21972
  var json2xml = Builder;
21950
21973
  const validator = validator$2;
21951
- const XMLParser2 = XMLParser_1;
21974
+ const XMLParser = XMLParser_1;
21952
21975
  const XMLBuilder = json2xml;
21953
21976
  var fxp = {
21954
- XMLParser: XMLParser2,
21977
+ XMLParser,
21955
21978
  XMLValidator: validator,
21956
21979
  XMLBuilder
21957
21980
  };
@@ -22067,19 +22090,6 @@ function parseSbolJson(sbolJson, options) {
22067
22090
  };
22068
22091
  }
22069
22092
  __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
22093
  /*!
22084
22094
  * Copyright 2008 Fair Oaks Labs, Inc.
22085
22095
  * All rights reserved.
@@ -25882,7 +25892,8 @@ var buffer$1 = {};
25882
25892
  }, "fill");
25883
25893
  const errors = {};
25884
25894
  function E(sym, getMessage, Base) {
25885
- errors[sym] = /* @__PURE__ */ __name(class NodeError extends Base {
25895
+ var _a3;
25896
+ errors[sym] = (_a3 = class extends Base {
25886
25897
  constructor() {
25887
25898
  super();
25888
25899
  Object.defineProperty(this, "message", {
@@ -25908,7 +25919,7 @@ var buffer$1 = {};
25908
25919
  toString() {
25909
25920
  return `${this.name} [${sym}]: ${this.message}`;
25910
25921
  }
25911
- }, "NodeError");
25922
+ }, __name(_a3, "NodeError"), _a3);
25912
25923
  }
25913
25924
  __name(E, "E");
25914
25925
  E(
@@ -29391,7 +29402,7 @@ const containerAttributes = {
29391
29402
  Parent: "child_features",
29392
29403
  Derives_from: "derived_features"
29393
29404
  };
29394
- class FASTAParser {
29405
+ const _FASTAParser = class _FASTAParser {
29395
29406
  constructor(seqCallback) {
29396
29407
  this.seqCallback = seqCallback;
29397
29408
  this.currentSequence = void 0;
@@ -29414,9 +29425,10 @@ class FASTAParser {
29414
29425
  finish() {
29415
29426
  this._flush();
29416
29427
  }
29417
- }
29418
- __name(FASTAParser, "FASTAParser");
29419
- class Parser {
29428
+ };
29429
+ __name(_FASTAParser, "FASTAParser");
29430
+ let FASTAParser = _FASTAParser;
29431
+ const _Parser = class _Parser {
29420
29432
  constructor(args) {
29421
29433
  this.fastaParser = void 0;
29422
29434
  this.eof = false;
@@ -29535,14 +29547,14 @@ class Parser {
29535
29547
  }
29536
29548
  // do the right thing with a newly-parsed feature line
29537
29549
  _bufferLine(line) {
29538
- var _a2, _b2, _c;
29550
+ var _a3, _b3, _c;
29539
29551
  const rawFeatureLine = parseFeature(line);
29540
29552
  const featureLine = __spreadProps(__spreadValues({}, rawFeatureLine), {
29541
29553
  child_features: [],
29542
29554
  derived_features: []
29543
29555
  });
29544
- const ids = ((_a2 = featureLine.attributes) === null || _a2 === void 0 ? void 0 : _a2.ID) || [];
29545
- const parents = ((_b2 = featureLine.attributes) === null || _b2 === void 0 ? void 0 : _b2.Parent) || [];
29556
+ const ids = ((_a3 = featureLine.attributes) === null || _a3 === void 0 ? void 0 : _a3.ID) || [];
29557
+ const parents = ((_b3 = featureLine.attributes) === null || _b3 === void 0 ? void 0 : _b3.Parent) || [];
29546
29558
  const derives = this.disableDerivesFromReferences ? [] : ((_c = featureLine.attributes) === null || _c === void 0 ? void 0 : _c.Derives_from) || [];
29547
29559
  if (!ids.length && !parents.length && !derives.length) {
29548
29560
  this._emitItem([featureLine]);
@@ -29640,8 +29652,9 @@ class Parser {
29640
29652
  }
29641
29653
  });
29642
29654
  }
29643
- }
29644
- __name(Parser, "Parser");
29655
+ };
29656
+ __name(_Parser, "Parser");
29657
+ let Parser = _Parser;
29645
29658
  function _callback(callback) {
29646
29659
  if (process && process.nextTick)
29647
29660
  process.nextTick(callback);
@@ -29668,7 +29681,7 @@ function _processParseOptions(options) {
29668
29681
  return out;
29669
29682
  }
29670
29683
  __name(_processParseOptions, "_processParseOptions");
29671
- class GFFTransform extends streamBrowserify.Transform {
29684
+ const _GFFTransform = class _GFFTransform extends streamBrowserify.Transform {
29672
29685
  constructor(inputOptions = {}) {
29673
29686
  super({ objectMode: true });
29674
29687
  this.textBuffer = "";
@@ -29708,8 +29721,9 @@ class GFFTransform extends streamBrowserify.Transform {
29708
29721
  this.parser.finish();
29709
29722
  _callback(callback);
29710
29723
  }
29711
- }
29712
- __name(GFFTransform, "GFFTransform");
29724
+ };
29725
+ __name(_GFFTransform, "GFFTransform");
29726
+ let GFFTransform = _GFFTransform;
29713
29727
  function parseStream(options = {}) {
29714
29728
  return new GFFTransform(options);
29715
29729
  }
@@ -29753,7 +29767,7 @@ function formatSync(items) {
29753
29767
  return str;
29754
29768
  }
29755
29769
  __name(formatSync, "formatSync");
29756
- class FormattingTransform extends streamBrowserify.Transform {
29770
+ const _FormattingTransform = class _FormattingTransform extends streamBrowserify.Transform {
29757
29771
  constructor(options = {}) {
29758
29772
  super(Object.assign(options, { objectMode: true }));
29759
29773
  this.linesSinceLastSyncMark = 0;
@@ -29795,8 +29809,9 @@ class FormattingTransform extends streamBrowserify.Transform {
29795
29809
  this.haveWeEmittedData = true;
29796
29810
  _callback(callback);
29797
29811
  }
29798
- }
29799
- __name(FormattingTransform, "FormattingTransform");
29812
+ };
29813
+ __name(_FormattingTransform, "FormattingTransform");
29814
+ let FormattingTransform = _FormattingTransform;
29800
29815
  function formatStream(options = {}) {
29801
29816
  return new FormattingTransform(options);
29802
29817
  }
@@ -29900,8 +29915,8 @@ function geneiousXmlToJson(string, options) {
29900
29915
  const toRet = lodashExports.filter(
29901
29916
  resultArray,
29902
29917
  (r) => {
29903
- var _a2, _b2;
29904
- return (_b2 = (_a2 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a2.sequence) == null ? void 0 : _b2.length;
29918
+ var _a3, _b3;
29919
+ return (_b3 = (_a3 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a3.sequence) == null ? void 0 : _b3.length;
29905
29920
  }
29906
29921
  );
29907
29922
  if (toRet.length)
@@ -30011,8 +30026,8 @@ function jbeiXmlToJson(string, options) {
30011
30026
  const toRet = lodashExports.filter(
30012
30027
  resultArray,
30013
30028
  (r) => {
30014
- var _a2, _b2;
30015
- return (_b2 = (_a2 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a2.sequence) == null ? void 0 : _b2.length;
30029
+ var _a3, _b3;
30030
+ return (_b3 = (_a3 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a3.sequence) == null ? void 0 : _b3.length;
30016
30031
  }
30017
30032
  );
30018
30033
  if (toRet.length)
@@ -30159,9 +30174,9 @@ var freb = /* @__PURE__ */ __name(function(eb, start) {
30159
30174
  }
30160
30175
  return { b, r };
30161
30176
  }, "freb");
30162
- var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;
30177
+ var _a2 = freb(fleb, 2), fl = _a2.b, revfl = _a2.r;
30163
30178
  fl[28] = 258, revfl[258] = 28;
30164
- var _b = freb(fdeb, 0), fd = _b.b;
30179
+ var _b2 = freb(fdeb, 0), fd = _b2.b;
30165
30180
  var rev = new u16(32768);
30166
30181
  for (var i = 0; i < 32768; ++i) {
30167
30182
  var x = (i & 43690) >> 1 | (i & 21845) << 1;
@@ -30464,7 +30479,7 @@ function strFromU8(dat, latin1) {
30464
30479
  } else if (td) {
30465
30480
  return td.decode(dat);
30466
30481
  } else {
30467
- var _a2 = dutf8(dat), s = _a2.s, r = _a2.r;
30482
+ var _a3 = dutf8(dat), s = _a3.s, r = _a3.r;
30468
30483
  if (r.length)
30469
30484
  err(8);
30470
30485
  return s;
@@ -30476,7 +30491,7 @@ var slzh = /* @__PURE__ */ __name(function(d, b) {
30476
30491
  }, "slzh");
30477
30492
  var zh = /* @__PURE__ */ __name(function(d, b, z) {
30478
30493
  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 _a2 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a2[0], su = _a2[1], off = _a2[2];
30494
+ 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
30495
  return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];
30481
30496
  }, "zh");
30482
30497
  var z64e = /* @__PURE__ */ __name(function(d, b) {
@@ -30506,7 +30521,7 @@ function unzipSync(data, opts) {
30506
30521
  }
30507
30522
  var fltr = opts && opts.filter;
30508
30523
  for (var i = 0; i < c; ++i) {
30509
- var _a2 = zh(data, o, z), c_2 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off);
30524
+ 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
30525
  o = no;
30511
30526
  if (!fltr || fltr({
30512
30527
  name: fn,
@@ -30565,7 +30580,7 @@ function anyToJson(fileContentStringOrFileObj, options) {
30565
30580
  );
30566
30581
  }
30567
30582
  }
30568
- if (/^(fasta|fas|fa|fna|ffn)$/.test(ext)) {
30583
+ if (/^(fasta|fas|fa|fna|ffn|faa)$/.test(ext)) {
30569
30584
  return fastaToJson(fileContentString, options);
30570
30585
  } else if (/^(gb|gbk)$/.test(ext)) {
30571
30586
  return genbankToJson(fileContentString, options);
@@ -32394,7 +32409,7 @@ function jsonToGenbank(_serSeq, options) {
32394
32409
  }
32395
32410
  __name(jsonToGenbank, "jsonToGenbank");
32396
32411
  function createGenbankLocus(serSeq, options) {
32397
- var _a2, _b2;
32412
+ var _a3, _b3;
32398
32413
  if (serSeq.sequence.symbols) {
32399
32414
  serSeq.sequence = serSeq.sequence.symbols.split("");
32400
32415
  }
@@ -32403,9 +32418,9 @@ function createGenbankLocus(serSeq, options) {
32403
32418
  if (serSeq.isProtein) {
32404
32419
  dnaType = "";
32405
32420
  } else if (serSeq.type === "RNA") {
32406
- dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "RNA" : (_a2 = serSeq == null ? void 0 : serSeq.sequenceTypeFromLocus) != null ? _a2 : "ss-RNA";
32421
+ dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "RNA" : (_a3 = serSeq == null ? void 0 : serSeq.sequenceTypeFromLocus) != null ? _a3 : "ss-RNA";
32407
32422
  } else {
32408
- dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "DNA" : (_b2 = serSeq == null ? void 0 : serSeq.sequenceTypeFromLocus) != null ? _b2 : "DNA";
32423
+ dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "DNA" : (_b3 = serSeq == null ? void 0 : serSeq.sequenceTypeFromLocus) != null ? _b3 : "DNA";
32409
32424
  }
32410
32425
  const date = getCurrentDateString();
32411
32426
  let line = StringUtil.rpad("LOCUS", " ", 12);