igv 3.7.1 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/igv.esm.js CHANGED
@@ -10632,7 +10632,7 @@ function createMenuElements$1(itemList, popover) {
10632
10632
  return list;
10633
10633
  }
10634
10634
 
10635
- /*! @license DOMPurify 3.3.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.0/LICENSE */
10635
+ /*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */
10636
10636
 
10637
10637
  const {
10638
10638
  entries,
@@ -10939,7 +10939,7 @@ const _createHooksMap = function _createHooksMap() {
10939
10939
  function createDOMPurify() {
10940
10940
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
10941
10941
  const DOMPurify = root => createDOMPurify(root);
10942
- DOMPurify.version = '3.3.0';
10942
+ DOMPurify.version = '3.3.1';
10943
10943
  DOMPurify.removed = [];
10944
10944
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
10945
10945
  // Not running in a browser, provide a factory function
@@ -11285,6 +11285,12 @@ function createDOMPurify() {
11285
11285
  }
11286
11286
  addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
11287
11287
  }
11288
+ if (cfg.ADD_FORBID_CONTENTS) {
11289
+ if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
11290
+ FORBID_CONTENTS = clone(FORBID_CONTENTS);
11291
+ }
11292
+ addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
11293
+ }
11288
11294
  /* Add #text in case KEEP_CONTENT is set to true */
11289
11295
  if (KEEP_CONTENT) {
11290
11296
  ALLOWED_TAGS['#text'] = true;
@@ -14759,13 +14765,12 @@ function stripQuotes$1(value) {
14759
14765
 
14760
14766
  const transcriptTypes = new Set(['transcript', 'primary_transcript', 'processed_transcript', 'mRNA', 'mrna',
14761
14767
  'lnc_RNA', 'miRNA', 'ncRNA', 'rRNA', 'scRNA', 'snRNA', 'snoRNA', 'tRNA']);
14762
- const cdsTypes = new Set(['CDS', 'cds']);
14763
- const codonTypes = new Set(['start_codon', 'stop_codon']);
14768
+ const cdsTypes = new Set(['CDS', 'cds', 'start_codon', 'stop_codon']);
14764
14769
  const utrTypes = new Set(['5UTR', '3UTR', 'UTR', 'five_prime_UTR', 'three_prime_UTR', "3'-UTR", "5'-UTR"]);
14765
14770
  const exonTypes = new Set(['exon', 'coding-exon']);
14766
14771
 
14767
14772
  const transcriptPartTypes = new Set();
14768
- for (let cltn of [cdsTypes, codonTypes, utrTypes, exonTypes]) {
14773
+ for (let cltn of [cdsTypes, utrTypes, exonTypes]) {
14769
14774
  for (let t of cltn) {
14770
14775
  transcriptPartTypes.add(t);
14771
14776
  }
@@ -14780,7 +14785,7 @@ function isIntron(type) {
14780
14785
  }
14781
14786
 
14782
14787
  function isCoding(type) {
14783
- return cdsTypes.has(type) || codonTypes.has(type)
14788
+ return cdsTypes.has(type)
14784
14789
  }
14785
14790
 
14786
14791
  function isUTR(type) {
@@ -14960,12 +14965,17 @@ class GFFTranscript extends GFFFeature {
14960
14965
  if (exon) {
14961
14966
  exon.cdStart = exon.cdStart ? Math.min(cds.start, exon.cdStart) : cds.start;
14962
14967
  exon.cdEnd = exon.cdEnd ? Math.max(cds.end, exon.cdEnd) : cds.end;
14963
- exon.readingFrame = cds.readingFrame;
14964
- // TODO -- merge attributes?
14968
+ if (cds.readingFrame !== undefined) {
14969
+ if (exon.readingFrame === undefined) {
14970
+ exon.readingFrame = cds.readingFrame;
14971
+ } else {
14972
+ // Keep reading frame of first CDS in direction of transcription
14973
+ if (this.strand === '+') ; else {
14974
+ exon.readingFrame = cds.readingFrame;
14975
+ }
14976
+ }
14977
+ }
14965
14978
  } else {
14966
- // cds.cdStart = cds.start
14967
- // cds.cdEnd = cds.end
14968
- // exons.push(cds)
14969
14979
  console.error("No exon found spanning " + cds.start + "-" + cds.end);
14970
14980
  }
14971
14981
 
@@ -14977,6 +14987,11 @@ class GFFTranscript extends GFFFeature {
14977
14987
  this.cdEnd = this.cdEnd ? Math.max(cds.end, this.cdEnd) : cds.end;
14978
14988
  }
14979
14989
 
14990
+ addTerminalCodon(codon) {
14991
+ // Treat terminal codons as CDS
14992
+ this.addCDS(codon);
14993
+ }
14994
+
14980
14995
  addUTR(utr) {
14981
14996
 
14982
14997
  let exon;
@@ -14997,7 +15012,10 @@ class GFFTranscript extends GFFFeature {
14997
15012
  if (utr.end < exon.end) {
14998
15013
  exon.cdStart = utr.end;
14999
15014
  }
15000
- if (utr.start > exon.start) {
15015
+ // Do not "backup" the cdEnd based on a UTR record. A stop_codon might extend cdEnd into the UTR, and we
15016
+ // don't want to quash that with the UTR. Although stop codons are not translated, visually
15017
+ // they appear as part exonic coding sequence. This is a long established convention,
15018
+ if (exon.cdEnd === undefined || utr.start > exon.cdEnd) {
15001
15019
  exon.cdEnd = utr.start;
15002
15020
  }
15003
15021
  }
@@ -31912,7 +31930,7 @@ class RemoteFile$1 {
31912
31930
  headers['Range'] = rangeString;
31913
31931
 
31914
31932
  let url = this.url.slice(); // slice => copy
31915
- // headers['User-Agent'] = 'straw'
31933
+ headers['User-Agent'] = 'IGV';
31916
31934
  if (this.config.oauthToken) {
31917
31935
  const token = resolveToken(this.config.oauthToken);
31918
31936
  headers['Authorization'] = `Bearer ${token}`;
@@ -33977,7 +33995,166 @@ var nvi = {
33977
33995
  "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F61d99a87-4ec6-4116-be99-b483999641c4%2F4DNFI5CGQ46V.hic": "2870576870,25900",
33978
33996
  "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F271ea8cd-53b9-44c9-9fff-1bb5c444b54c%2F4DNFIOCW5AEM.hic": "2463600138,25900",
33979
33997
  "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fa98ca64a-861a-4a8c-92e9-586af457b1fb%2F4DNFI1UEG1HD.hic": "22480709268,25900",
33980
- "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F5809b32e-0aea-4cf5-a174-cf162d591a35%2F4DNFI9YAVTI1.hic": "3141182061,25900"
33998
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F5809b32e-0aea-4cf5-a174-cf162d591a35%2F4DNFI9YAVTI1.hic": "3141182061,25900",
33999
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F3be17688-cbce-4ef9-9b94-8571c20a858e%2F4DNFI916JQ1Y.hic": "5153550498,22663",
34000
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fbad90d57-68ae-441f-84b6-3da0e4b3f1b7%2F4DNFI5R1ECZI.hic": "5256843748,22663",
34001
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F78d90bcc-64c1-40c4-83bf-39f981f7d6d4%2F4DNFISUPDO3A.hic": "6141911776,22663",
34002
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fc16b5fd8-b0a0-4daa-915f-dea88d56b95d%2F4DNFIMV6MPGH.hic": "4646473940,22663",
34003
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Ffe25da0b-0e94-426f-9e5c-25ea7ac560dc%2F4DNFI111EI3K.hic": "6360540164,22663",
34004
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F6db70d70-1248-4ef1-b734-247d39ce3a5a%2F4DNFIVWXJQR1.hic": "3567402729,22663",
34005
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F3ad46cc4-505e-4a5d-9dee-e8d362f73a9c%2F4DNFI14FXOOU.hic": "3750091538,22663",
34006
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F2334c531-2d0b-46b3-98c6-c7ed35b9f20d%2F4DNFIS1SRPWR.hic": "1888598768,22663",
34007
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F32278b04-8c3a-4111-9992-1a40a7139731%2F4DNFI8LDZDN9.hic": "1908203928,22663",
34008
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fa844f39f-3aa7-4e21-ba09-7683e1d91ab2%2F4DNFIH1NZ1M8.hic": "5303565251,25900",
34009
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F3e727bd0-bab5-484e-8fdc-54a4a666d2ab%2F4DNFIK9TW97H.hic": "4844444289,25900",
34010
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F5a84c606-1f3d-47c5-9be3-8112144cd5dd%2F4DNFI7ST3KR1.hic": "4076139611,25900",
34011
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fd2a326a8-1f3f-4acc-8b9b-a449a2cdd7a0%2F4DNFIIMDXANO.hic": "5886279116,25900",
34012
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fede4b21a-1f17-43d1-970f-ac874ef01bb0%2F4DNFIXF2GL4C.hic": "5623357020,25900",
34013
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fc4812c8a-74ac-4ee9-ac9e-abf5abd59318%2F4DNFI8I2WYXS.hic": "7575864220,25900",
34014
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fa9ad9939-6297-48c4-a6a7-5fad70ddeb2c%2F4DNFI7C5YXNX.hic": "4723998471,25900",
34015
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F1cb2e17f-58aa-4b2a-92f4-a6fb53654f1c%2F4DNFI1P2EP7L.hic": "3517327113,25900",
34016
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F4cb9794d-a3f7-4fa8-8e62-ff8a50f2fa5c%2F4DNFIF78U26G.hic": "4524490522,25900",
34017
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fd03c2ad3-74de-4ae3-8ebf-f305309b51bd%2F4DNFIH6ANSX9.hic": "4704398892,25900",
34018
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F93ec4ac1-0654-4548-9130-332e48fa9919%2F4DNFI8QUAO51.hic": "6410633809,25900",
34019
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fb36abbf5-e7d4-45e6-b11d-3b4a5c918189%2F4DNFIWZYSI2D.hic": "4979199288,25900",
34020
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F9fd6c29e-7e41-44f7-bceb-d04f6c3ef430%2F4DNFI7PCOZ9I.hic": "4460433802,25900",
34021
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F7ef01bb0-d114-48b5-8836-d8e5f0aaaa08%2F4DNFIWUZLEWY.hic": "4312740986,25900",
34022
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fcc0accc9-a89f-4b40-bac6-de754a7f77c9%2F4DNFILI6XOB5.hic": "6360373541,25900",
34023
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F61f0e53d-a1da-4cc0-8f5f-052ae61ab161%2F4DNFI7EETNXL.hic": "1412854116,25900",
34024
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fcc5ab0e6-f193-4bf9-91df-a7b9c4bbbc64%2F4DNFII7EADPT.hic": "1991748717,25900",
34025
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fefd1d3b2-b437-40af-9b36-4e957762032a%2F4DNFIOCDW18J.hic": "2009478680,25900",
34026
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F6c2a1de5-accb-4a43-85a0-cbf57318fd45%2F4DNFI9RMTGX1.hic": "2294307288,25900",
34027
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fa9a8ab76-0fc3-48dc-a487-d8a5921477df%2F4DNFIQ7YSRDA.hic": "4617097967,25900",
34028
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Ff7062f5e-9a08-4d87-a7fa-19f3208e6f80%2F4DNFIU7JYUQJ.hic": "1591654523,25900",
34029
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F9b71b9d0-257d-48a5-9116-d0dae0c83c68%2F4DNFIMG5T456.hic": "1536982846,25900",
34030
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F14bf1e4b-6713-46e8-9c8f-fdfafa6ff3bd%2F4DNFIFZW7GEE.hic": "2489628475,25900",
34031
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F0995fd1b-023d-4ec2-a95d-64e108ec36ea%2F4DNFIIHISWB1.hic": "1526894394,25900",
34032
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F74ad588d-edec-48a5-af16-f857ceacb0aa%2F4DNFIC6OQBN7.hic": "2654265474,25900",
34033
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F1c97b8c3-31b4-41ad-924e-bf2d2cb94b74%2F4DNFIXDTO63C.hic": "2013309944,25900",
34034
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F15ba1e34-3e22-4b31-beb7-417683011858%2F4DNFI31H3OGV.hic": "6361414603,25900",
34035
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fa6d18f0f-df0d-4d47-8cdc-032f3c7ef221%2F4DNFIUPVQ5UH.hic": "6834216978,25900",
34036
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F6fe30df7-5f0d-4638-8ec0-483a8b86ecdf%2F4DNFIVEMIOK8.hic": "773338173,25900",
34037
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F1d57bbab-562a-4dea-99c4-3c3bb021adcc%2F4DNFINZ25U3U.hic": "6039407224,25900",
34038
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F0098fa29-fc36-4a23-a63f-cda9616a6f89%2F4DNFIRU3N6DB.hic": "6590434017,25900",
34039
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F77ab3250-4dc6-4163-9db2-2b847efce7ce%2F4DNFIBXBN6UB.hic": "676470326,25900",
34040
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F4551206a-231b-402e-9570-88a10effb7bc%2F4DNFIA1PDKM5.hic": "446073443,25900",
34041
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F785d3cfc-5dcf-4c01-97b1-f58a48cc9ee8%2F4DNFIGBHDKL7.hic": "924249200,25900",
34042
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fbb76eb3b-0267-4161-b8e4-ef9fb0089c4a%2F4DNFISBPIB52.hic": "1032187300,25900",
34043
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F043852cb-2967-4d40-b03e-e8542760714a%2F4DNFIBA73Y4Z.hic": "5574486826,25900",
34044
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F1cc48d9b-9735-42a0-888f-7f105af8640c%2F4DNFII4ADLYY.hic": "840451609,25900",
34045
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F56e64332-25ec-4390-b66a-266d710486e5%2F4DNFI2CZIRZ4.hic": "3831692686,25900",
34046
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fae9ba47a-6bb9-48d7-94df-2e8be961eb09%2F4DNFIAYXT1F3.hic": "4954772594,25900",
34047
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F3089d432-f2ab-4c0f-97fb-adab86471125%2F4DNFIX15LQDY.hic": "857822311,25900",
34048
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F1b5fb4f9-9f63-4443-80ca-7c60ba12c4fe%2F4DNFIGX5LN49.hic": "5175938352,25900",
34049
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F18026766-9e0e-4c15-9610-44c0e4dbf3e5%2F4DNFI9I6O19H.hic": "895448286,25900",
34050
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F8e6fa044-7936-462f-8d37-aa0275cae3ca%2F4DNFIB4OS99H.hic": "855810083,25900",
34051
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F84911760-df97-44c1-8b36-97e388f9c62a%2F4DNFI8IYNWGT.hic": "777249574,25900",
34052
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fe15079bb-ccdc-4248-87af-d0173eb76011%2F4DNFIVB7692N.hic": "853178496,25900",
34053
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F7e5c1e85-d4a5-40d4-964d-198947907abd%2F4DNFI5QJW5YD.hic": "5028458350,25900",
34054
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Ffbaf75a9-0155-4125-bf86-d31d9c3b90d5%2F4DNFIET12997.hic": "6645726944,25900",
34055
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F4e576005-7475-4d39-8fcb-9d4561b970f0%2F4DNFIYQ224EZ.hic": "4757808094,25900",
34056
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fe5f70a70-7d02-41cf-b27c-cacaaf754fa6%2F4DNFI1FK394F.hic": "4459181136,25900",
34057
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Ffaa95c6c-db4a-47ba-8c3c-d6b7d9d70fce%2F4DNFIE7KYLR5.hic": "1190688479,25900",
34058
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F8e76dc76-e36f-4464-b65a-9897aae10b65%2F4DNFIEC5NWVF.hic": "3342948701,25900",
34059
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fe4ff6b8c-f46f-4d57-8dcc-7ff0500f922a%2F4DNFIZBG3V9V.hic": "2118010954,25900",
34060
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fd32e7242-9629-45f4-9d1a-0237a5b9e869%2F4DNFITDGTIUK.hic": "1681141685,25900",
34061
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F6cab57d3-8ca4-4d79-94b4-1c4395fc7d7e%2F4DNFIAKOG8CW.hic": "1630820744,25900",
34062
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fa49824e1-6a92-4ffc-b6e9-52f35549406a%2F4DNFIX8FUVN6.hic": "2540960336,25900",
34063
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fd3741fb2-a4ea-454c-a6b2-da1c6cef5f92%2F4DNFIA7CEMNT.hic": "2100106035,25900",
34064
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F7af7afcd-e66e-460e-b6eb-be26eb594f69%2F4DNFI5YVPH8H.hic": "1910838419,25900",
34065
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F2261e6df-f141-44cc-b916-12779a98d6e8%2F4DNFIR2YF7S1.hic": "84456840,25900",
34066
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F3d5d54ea-1fe7-48d8-a1f2-c0bc078eb91c%2F4DNFIAQVXT8S.hic": "5876011800,25900",
34067
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F462680da-3e24-49b7-b967-d195198a198d%2F4DNFI9V5G78Z.hic": "80293794,25900",
34068
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F7b3ce521-89b9-41d4-ace2-1cab7804bcc2%2F4DNFIPZCCTV6.hic": "4917429800,25900",
34069
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F6112b96e-78e9-4b99-b9d7-f15ae5c79466%2F4DNFIHTFIMGG.hic": "4363292659,25900",
34070
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fbdb01c16-6acb-4b44-bbef-c67300dfa26f%2F4DNFIXWT5U42.hic": "3771883844,25900",
34071
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F0e66d31c-fda3-42b8-ba69-3f1ca7377665%2F4DNFIY1TCVLX.hic": "4392772657,25900",
34072
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F3400c4d3-4446-4fb9-96fa-b499dd00861d%2F4DNFI5EAPQTI.hic": "3882696477,25900",
34073
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F34f2a636-012a-4079-81b5-53b40f29e73f%2F4DNFICPL7RPE.hic": "75287233,25900",
34074
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F232ae04a-86c9-48af-b5c6-4c33e080c76e%2F4DNFI5O2WB24.hic": "6118504627,25900",
34075
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F502b0485-ce03-4f5e-aa06-e6e0011e14b7%2F4DNFIC4GB8UM.hic": "4060758124,25900",
34076
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F0290c7cb-0b4a-482d-9e5c-f141e21096e7%2F4DNFILL624WG.hic": "3895589825,25900",
34077
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F56df20f8-4aea-4245-b875-23b2a618801e%2F4DNFICF2Z2TG.hic": "3667006741,25900",
34078
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F2b7cf7ec-37fd-40b7-83e1-f777284a97fc%2F4DNFI7T93SHL.hic": "3211370872,25900",
34079
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F826b1d10-6d89-4b23-a1b5-dfcbcb8031bf%2F4DNFIP9EJSOM.hic": "3636533438,25900",
34080
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F20194877-57b7-4abe-8116-3a6a5c548846%2F4DNFIHG8BK98.hic": "86813098,25900",
34081
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Ff2fea329-d8fd-4975-9266-03e5556151bf%2F4DNFI6JKPJGO.hic": "79846427,25900",
34082
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F293f248f-1962-4476-b3ae-eb6e2b778f70%2F4DNFIYYPB1UI.hic": "72601205,25900",
34083
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fe8695158-70a2-4442-a9c8-b655163dc694%2F4DNFI35AE3O3.hic": "829193620,25900",
34084
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fc51bc383-04e0-40cf-a72f-589524efd8f7%2F4DNFIXB4O92R.hic": "644232107,25900",
34085
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F9e0bb1ce-4e61-4791-9479-d0a20ee304fa%2F4DNFIFZM3CWZ.hic": "2647900849,22663",
34086
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F28143491-848b-4a7b-90e0-1ae60fe61a2e%2F4DNFIXEHCB3R.hic": "2632375995,22663",
34087
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fc3e15131-f768-42aa-9959-75547704b3fb%2F4DNFI1HWXE8A.hic": "2340946204,22663",
34088
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F8a97b975-ee5a-4efc-a137-e393b3315260%2F4DNFIASIXTZM.hic": "2230584547,22663",
34089
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F9bc0a720-f0da-41a5-9289-34c2ef33f412%2F4DNFI6SETG5U.hic": "2909425254,22663",
34090
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F27527ede-b4a7-44e1-b959-8ef427a75727%2F4DNFIM7ACSX2.hic": "2807145365,22663",
34091
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F891bb2e9-1d08-4c15-b544-4125fec3e6d3%2F4DNFIATBSBS3.hic": "2551006282,22663",
34092
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F94b4c17a-9038-4947-9f9a-d7031405c379%2F4DNFIKR8L3O5.hic": "2467302957,22663",
34093
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fae0abe8b-41c6-455e-a466-96cda0b2583b%2F4DNFI6C7TKI7.hic": "2357341855,22663",
34094
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F8ea50b3a-b753-426f-bcde-d438bb046ca9%2F4DNFIAXX5DW8.hic": "2753362470,22663",
34095
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F4900dce0-61a6-447f-ac6c-ab305018b9c7%2F4DNFIBY3K18K.hic": "4559946251,22663",
34096
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F7da49fc1-76aa-4c98-98a0-5d3c2b038b48%2F4DNFIOYBTKML.hic": "3184716393,22663",
34097
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F15555ede-38ed-41bc-8360-b7199ef78905%2F4DNFI1AM5YH5.hic": "2297316945,22663",
34098
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F03bdcf69-274b-4032-9f97-c3801eaff73c%2F4DNFICF19STL.hic": "1147374802,22663",
34099
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F38cdfddb-14e4-4975-aa40-32d8755c1c3f%2F4DNFIJOJW15R.hic": "3691597417,22663",
34100
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F9590c872-52ad-4b3f-acb2-c53adedba82a%2F4DNFIM391G1I.hic": "1440905789,22663",
34101
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fe576ec24-0e4f-45eb-8a1a-a3224a4745b0%2F4DNFIDB95IFX.hic": "1297694240,22663",
34102
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F52a81c80-1e92-4f6a-86d9-55e5c51f6a1a%2F4DNFIN5ROA5D.hic": "1518878546,22663",
34103
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fef1c70d3-7183-4d68-89f3-84f40be4754a%2F4DNFI4WHVND7.hic": "905267421,22663",
34104
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F07a2daaa-eceb-413f-9db8-a29804f60e47%2F4DNFIQEYK87U.hic": "1887807641,22663",
34105
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fff393095-88d1-474d-8147-b170895f49e5%2F4DNFIIHXG8KW.hic": "990948025,22663",
34106
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F14475927-663a-46ea-87e5-262b2b63d4cd%2F4DNFI7RGXYFY.hic": "1995218925,25900",
34107
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fe801f002-d414-42ff-a4d6-5fb41700f8ef%2F4DNFI3NN1U8T.hic": "1411001640,25900",
34108
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Ff0d46aa0-ddf5-4cda-af89-52f94a5e2e71%2F4DNFIKCEWMIA.hic": "2428803282,25900",
34109
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fbf511667-f8a9-447f-939a-2f4a6be9e375%2F4DNFII78SGLC.hic": "1346970600,25900",
34110
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fbb09b17a-4913-4b9e-a012-e9479fc61486%2F4DNFIQBPRZZD.hic": "6069682291,25900",
34111
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fba6ff162-dd84-4b2c-ba2d-f07a0b2e4b3f%2F4DNFIRLG5UWL.hic": "2403291005,25900",
34112
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F2b047495-6f82-4500-b544-a1aa76997e28%2F4DNFIGEI2UJ5.hic": "1172022205,25900",
34113
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F5608ab84-424a-4959-a8ff-d30e02b2f7f6%2F4DNFIR3Y85FX.hic": "2506972674,22663",
34114
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F87b3ffac-31fd-453d-848c-701d7f6cfc59%2F4DNFIGXWABZ8.hic": "1822988545,22663",
34115
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F0d791b5a-804c-43a0-b1ff-29934f743de0%2F4DNFIAZ2BC1Z.hic": "2418357843,22663",
34116
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F140f5862-a950-4d6d-b73c-0c25aa3c4625%2F4DNFINL956G3.hic": "2822207807,22663",
34117
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fe1286ed7-6935-45d6-a551-4e23b0f04ab0%2F4DNFIPJBFDS7.hic": "2549466943,22663",
34118
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Ffb268240-1da9-45e0-bdf3-322e8f83479f%2F4DNFI6OVJGRB.hic": "3977878338,22663",
34119
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fae8036e4-c01f-4685-aad1-c9165ea20da9%2F4DNFIY9S5ZOF.hic": "4376491213,22663",
34120
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fe1f7e790-ec33-40bb-a487-da303818d806%2F4DNFI9S2EX2W.hic": "2018000408,22663",
34121
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fb1005a45-2702-4e42-8da0-725cc3b7bd5e%2F4DNFISAAJ8ZA.hic": "1969820347,22663",
34122
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Ff94abe7a-4241-4127-9e4e-ad5c9e097537%2F4DNFIEHRX3PO.hic": "1812900014,22663",
34123
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fc280624f-895f-4ae1-bf79-7dc3b9f3b7b0%2F4DNFID9DXKIA.hic": "725923849,22663",
34124
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fcab608ee-4a04-4778-ac76-6f35f749cf77%2F4DNFIYZY8FRZ.hic": "1740798405,22663",
34125
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Faf129845-3b27-4ef1-9d06-c1874d96678f%2F4DNFI7TWN65F.hic": "734312298,22663",
34126
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fda348dd8-6e9d-42f6-a4f3-33ccee122b5d%2F4DNFIQY1WZG2.hic": "709100099,22663",
34127
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F201f494f-44a5-47b4-84f1-a51589e20475%2F4DNFI1OAGRV3.hic": "687695123,22663",
34128
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F54ba0756-0e28-4362-a6c8-305484c80352%2F4DNFINROFYOA.hic": "701869003,22663",
34129
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F3d1254c1-c8b5-450b-8829-1f410da9411f%2F4DNFII9NVNO3.hic": "9088194137,25900",
34130
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F1a1cc3cc-15a7-4ddf-9eea-b96400def819%2F4DNFIGU793GK.hic": "10224339103,25900",
34131
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F91a5a87a-7e53-4170-9f98-8df880205806%2F4DNFIYU853WO.hic": "5831941450,25900",
34132
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F0695c0b4-8b0e-4a78-a4f9-be8e148eaade%2F4DNFISDI5IAS.hic": "6338256623,25900",
34133
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F2118aed0-8a60-43c7-b204-b326c5ec063e%2F4DNFINR2MFSM.hic": "6918790050,25900",
34134
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F3e956c4d-9520-4275-9d54-480add2831e9%2F4DNFI9FI1WN4.hic": "6077420687,25900",
34135
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F7f902a51-7a0a-41d8-acfa-c29b3420faac%2F4DNFIM351CAA.hic": "7415860197,25900",
34136
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F8c304c3b-71f3-4302-8fe8-989d881d32ae%2F4DNFI176BGDG.hic": "7148579858,25900",
34137
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F74dd94fb-47ea-47e7-94cf-a909e521dc9a%2F4DNFI76TVWF9.hic": "4335721284,22663",
34138
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fce6512f3-2c5e-441a-9e20-d025629fddbe%2F4DNFIU8ET5TP.hic": "5420195714,22663",
34139
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F4ea59850-2c40-4a92-a245-76a7893001f2%2F4DNFI6XB8HB4.hic": "5192691591,22663",
34140
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F5d254a61-9894-4c88-a005-31c08155aa14%2F4DNFI6QRXTH3.hic": "3969529135,22663",
34141
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F0fe92b41-3a75-4665-86cf-b39f4cf94aa6%2F4DNFIPVMIIRE.hic": "8681423658,25900",
34142
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F8538b53a-eb26-40cb-9ec3-a61028f43e2b%2F4DNFIPTFHCFP.hic": "8285769882,25900",
34143
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F2232012c-4627-439b-9ce7-ad10a2bc3334%2F4DNFIESB8H1S.hic": "8654573338,25900",
34144
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F07c7a44f-cb01-4901-b591-051913e91353%2F4DNFIK3NAVTO.hic": "8415503170,25900",
34145
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fcabde890-f7cd-4916-a749-902673f6a716%2F4DNFIOTFSJFL.hic": "3455979876,22663",
34146
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F1878f6d9-cb86-4be3-baa6-9300d32a6b46%2F4DNFINCBG8I4.hic": "3356575145,22663",
34147
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F49813dc5-38c1-41d3-ad6a-b27e11f925fc%2F4DNFISZ88WZA.hic": "7739704623,22663",
34148
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F3fd4b6e2-2002-4897-91c1-ebea81ac7f56%2F4DNFI42A55E5.hic": "6954360693,22663",
34149
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F931eb1f3-c388-40c7-89e0-e995851650da%2F4DNFIJQO4MRF.hic": "16726884852,25900",
34150
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fe6ecfcb8-9ca6-44c3-9e27-b4e475a382e4%2F4DNFIZX79UT2.hic": "13334742903,25900",
34151
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2Fc62048ee-843f-40ee-81ad-f78d20266f7d%2F4DNFICZG2DYC.hic": "16057986680,25900",
34152
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F6694b1fb-7fdd-4c1d-9fc6-8dfc8f6b5b58%2F4DNFIK6TSF51.hic": "13887898680,25900",
34153
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F2ce3bdb5-84cb-4d31-abfa-e92a39889972%2F4DNFI1GY4LKB.hic": "15320828542,25900",
34154
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F10758c5f-f49a-4da5-9e4e-25907afe27e2%2F4DNFI86G6QZJ.hic": "13911815900,25900",
34155
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F15e818b8-346b-4f90-a321-b7dd72abb7dc%2F4DNFINFK9D35.hic": "17494323050,22663",
34156
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F5501e4db-e6a4-41da-85d4-9114ca5ba28e%2F4DNFIBFXR38K.hic": "17172205445,22663",
34157
+ "4dn-open-data-public.s3.amazonaws.com%2Ffourfront-webprod%2Fwfoutput%2F378a1641-5894-475e-8614-bd016e8529d5%2F4DNFIMBPX8Q1.hic": "17880333903,22663"
33981
34158
  };
33982
34159
 
33983
34160
  const isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
@@ -34004,6 +34181,8 @@ class HicFile {
34004
34181
  this.normalizationTypes = ['NONE'];
34005
34182
  this.matrixCache = new LRU$1(10);
34006
34183
  this.blockCache = new BlockCache();
34184
+ this.normVectorIndexPosition = -1;
34185
+ this.normVectorIndexSize = -1;
34007
34186
 
34008
34187
  // args may specify an io.File object, a local path (Node only), or a url
34009
34188
  if (args.file) {
@@ -34023,9 +34202,9 @@ class HicFile {
34023
34202
  }
34024
34203
  } else if (args.path) {
34025
34204
  // path argument, assumed local file
34026
- throw Error(`path property is deprecated, use NodeLocalFile`)
34205
+ throw Error(`path property is deprecated, use NodeLocalFile`);
34027
34206
  } else {
34028
- throw Error("Arguments must include file, blob, url, or path")
34207
+ throw Error("Arguments must include file, blob, url, or path");
34029
34208
  }
34030
34209
  }
34031
34210
 
@@ -34050,15 +34229,15 @@ class HicFile {
34050
34229
  const binaryParser = new BinaryParser(new DataView(data));
34051
34230
  this.magic = binaryParser.getString();
34052
34231
  this.version = binaryParser.getInt();
34053
- return this.version
34232
+ return this.version;
34054
34233
  } else {
34055
- return this.version
34234
+ return this.version;
34056
34235
  }
34057
34236
  }
34058
34237
 
34059
34238
  async getMetaData() {
34060
34239
  await this.init();
34061
- return this.meta
34240
+ return this.meta;
34062
34241
  }
34063
34242
 
34064
34243
  async readHeaderAndFooter() {
@@ -34066,13 +34245,13 @@ class HicFile {
34066
34245
  // Read initial fields magic, version, and footer position
34067
34246
  let data = await this.file.read(0, 16);
34068
34247
  if (!data || data.byteLength === 0) {
34069
- throw Error("File content is empty")
34248
+ throw Error("File content is empty");
34070
34249
  }
34071
34250
  let binaryParser = new BinaryParser(new DataView(data));
34072
34251
  this.magic = binaryParser.getString();
34073
34252
  this.version = binaryParser.getInt();
34074
34253
  if (this.version < 5) {
34075
- throw Error("Unsupported hic version: " + this.version)
34254
+ throw Error("Unsupported hic version: " + this.version);
34076
34255
  }
34077
34256
  this.footerPosition = binaryParser.getLong();
34078
34257
 
@@ -34081,7 +34260,7 @@ class HicFile {
34081
34260
  await this.readFooter();
34082
34261
 
34083
34262
  const bodyPostion = Object.values(this.masterIndex).reduce((min, currentValue) => {
34084
- return Math.min(min, currentValue.start)
34263
+ return Math.min(min, currentValue.start);
34085
34264
  }, Number.MAX_VALUE);
34086
34265
 
34087
34266
  const remainingSize = bodyPostion - 16;
@@ -34166,7 +34345,7 @@ class HicFile {
34166
34345
  "version": this.version,
34167
34346
  "genome": this.genomeId,
34168
34347
  "chromosomes": this.chromosomes,
34169
- "resolutions": this.bpResolutions,
34348
+ "resolutions": this.bpResolutions
34170
34349
  };
34171
34350
 
34172
34351
 
@@ -34274,14 +34453,14 @@ class HicFile {
34274
34453
  chrIdx2 = tmp;
34275
34454
  }
34276
34455
 
34277
- const key = Matrix$2.getKey(chrIdx1 , chrIdx2);
34456
+ const key = Matrix$2.getKey(chrIdx1, chrIdx2);
34278
34457
  const idx = this.masterIndex[key];
34279
34458
  if (!idx) {
34280
- return undefined
34459
+ return undefined;
34281
34460
  }
34282
34461
  const data = await this.file.read(idx.start, idx.size);
34283
34462
  if (!data) {
34284
- return undefined
34463
+ return undefined;
34285
34464
  }
34286
34465
 
34287
34466
  return Matrix$2.parseMatrix(data, this.chromosomes);
@@ -34304,7 +34483,7 @@ class HicFile {
34304
34483
 
34305
34484
  const blocks = await this.getBlocks(region1, region2, units, binsize);
34306
34485
  if (!blocks || blocks.length === 0) {
34307
- return []
34486
+ return [];
34308
34487
  }
34309
34488
 
34310
34489
  const contactRecords = [];
@@ -34370,23 +34549,23 @@ class HicFile {
34370
34549
 
34371
34550
  if (idx1 === undefined) {
34372
34551
  console.log("No chromosome named: " + region1.chr);
34373
- return []
34552
+ return [];
34374
34553
  }
34375
34554
  if (idx2 === undefined) {
34376
34555
  console.log("No chromosome named: " + region2.chr);
34377
- return []
34556
+ return [];
34378
34557
  }
34379
34558
 
34380
34559
  const matrix = await this.getMatrix(idx1, idx2);
34381
34560
  if (!matrix) {
34382
34561
  console.log("No matrix for " + region1.chr + "-" + region2.chr);
34383
- return []
34562
+ return [];
34384
34563
  }
34385
34564
 
34386
34565
  const zd = matrix.getZoomData(binSize, unit);
34387
34566
  if (!zd) {
34388
- let msg = `No data avalailble for resolution: ${binSize} for map ${region1.chr}-${region2.chr}`;
34389
- throw new Error(msg)
34567
+ let msg = `No data available for resolution: ${binSize} for map ${region1.chr}-${region2.chr}`;
34568
+ throw new Error(msg);
34390
34569
  }
34391
34570
 
34392
34571
  const blockNumbers = zd.getBlockNumbers(region1, region2, this.version);
@@ -34417,7 +34596,7 @@ class HicFile {
34417
34596
  const idx = await zd.blockIndex.getBlockIndexEntry(blockNumber);
34418
34597
 
34419
34598
  if (!idx) {
34420
- return undefined
34599
+ return undefined;
34421
34600
  } else {
34422
34601
  let data = await this.file.read(idx.filePosition, idx.size);
34423
34602
  if (!data) {
@@ -34530,7 +34709,7 @@ class HicFile {
34530
34709
 
34531
34710
  const index = normVectorIndex[key];
34532
34711
 
34533
- return undefined !== index
34712
+ return undefined !== index;
34534
34713
 
34535
34714
  }
34536
34715
 
@@ -34556,20 +34735,20 @@ class HicFile {
34556
34735
 
34557
34736
  if (!normVectorIndex) {
34558
34737
  console.log("Normalization vectors not present in this file");
34559
- return undefined
34738
+ return undefined;
34560
34739
  }
34561
34740
 
34562
34741
  const status = await this.isNormalizationValueAvailableAtResolution(type, chr, unit, binSize);
34563
34742
 
34564
34743
  if (false === status) {
34565
34744
 
34566
- const str = `Normalization option ${ type } not available at resolution ${ binSize }. Will use NONE.`;
34745
+ const str = `Normalization option ${type} not available at resolution ${binSize}. Will use NONE.`;
34567
34746
  console.log(str);
34568
34747
 
34569
34748
  if (this.alert) {
34570
34749
  this.alert(str);
34571
- }
34572
- return undefined
34750
+ }
34751
+ return undefined;
34573
34752
  }
34574
34753
 
34575
34754
  const idx = normVectorIndex[key];
@@ -34596,37 +34775,44 @@ class HicFile {
34596
34775
  return undefined;
34597
34776
  }
34598
34777
 
34599
- if (!this.normVectorIndex) {
34778
+ if (this.normVectorIndex) {
34779
+ return this.normVectorIndex;
34780
+ }
34600
34781
 
34601
- // If nvi is not supplied, try reading from remote lambda service
34602
- if (!this.config.nvi && this.remote && this.url) {
34603
- const url = new URL(this.url);
34604
- const key = encodeURIComponent(url.hostname + url.pathname);
34605
- if(nvi.hasOwnProperty(key)) {
34606
- this.config.nvi = nvi[key];
34607
- }
34782
+
34783
+ // If we know the position of the norm vector index, read it directly. This is the case for hic v9 files
34784
+ if (this.normVectorIndexPosition > 0 && this.normVectorIndexSize > 0) {
34785
+ const range = {start: this.normVectorIndexPosition, size: this.normVectorIndexSize};
34786
+ return this.readNormVectorIndex(range);
34787
+ }
34788
+
34789
+ // See if nvi (normVector position and size) is provided in config or can be inferred from url
34790
+ if (!this.config.nvi && this.remote && this.url) {
34791
+ const url = new URL(this.url);
34792
+ const key = encodeURIComponent(url.hostname + url.pathname);
34793
+ if (nvi.hasOwnProperty(key)) {
34794
+ this.config.nvi = nvi[key];
34608
34795
  }
34796
+ }
34609
34797
 
34610
- if (this.config.nvi) {
34611
- const nviArray = decodeURIComponent(this.config.nvi).split(",");
34612
- const range = {start: parseInt(nviArray[0]), size: parseInt(nviArray[1])};
34613
- return this.readNormVectorIndex(range)
34614
- } else {
34615
- try {
34616
- await this.readNormExpectedValuesAndNormVectorIndex();
34617
- return this.normVectorIndex
34618
- } catch (e) {
34619
- if (e.code === "416" || e.code === 416) {
34620
- // This is expected if file does not contain norm vectors
34621
- this.normExpectedValueVectorsPosition = undefined;
34622
- } else {
34623
- console.error(e);
34624
- }
34798
+ if (this.config.nvi) {
34799
+ const nviArray = decodeURIComponent(this.config.nvi).split(",");
34800
+ const range = {start: parseInt(nviArray[0]), size: parseInt(nviArray[1])};
34801
+ return this.readNormVectorIndex(range);
34802
+ } else {
34803
+ try {
34804
+ await this.readNormExpectedValuesAndNormVectorIndex();
34805
+ return this.normVectorIndex;
34806
+ } catch (e) {
34807
+ if (e.code === "416" || e.code === 416) {
34808
+ // This is expected if file does not contain norm vectors
34809
+ this.normExpectedValueVectorsPosition = undefined;
34810
+ } else {
34811
+ console.error(e);
34625
34812
  }
34626
34813
  }
34627
34814
  }
34628
34815
 
34629
- return this.normVectorIndex
34630
34816
  }
34631
34817
 
34632
34818
  async getNormalizationOptions() {
@@ -34816,9 +35002,9 @@ class HicFile {
34816
35002
 
34817
35003
  getFileChrName(chrAlias) {
34818
35004
  if (this.chrAliasTable.hasOwnProperty(chrAlias)) {
34819
- return this.chrAliasTable[chrAlias]
35005
+ return this.chrAliasTable[chrAlias];
34820
35006
  } else {
34821
- return chrAlias
35007
+ return chrAlias;
34822
35008
  }
34823
35009
  }
34824
35010
 
@@ -34847,7 +35033,7 @@ function getNormalizationVectorKey(type, chrIdx, unit, resolution) {
34847
35033
  }
34848
35034
 
34849
35035
  function isGoogleDrive(url) {
34850
- return url.indexOf("drive.google.com") >= 0 || url.indexOf("www.googleapis.com/drive") > 0
35036
+ return url.indexOf("drive.google.com") >= 0 || url.indexOf("www.googleapis.com/drive") > 0;
34851
35037
  }
34852
35038
 
34853
35039
  class Block {
@@ -35586,6 +35772,11 @@ function getAminoAcidLetterWithExonGap(strand, phase, phaseExtentStart, phaseExt
35586
35772
  }
35587
35773
 
35588
35774
  if (remainder) {
35775
+
35776
+ if (!riteExon) {
35777
+ return undefined
35778
+ }
35779
+
35589
35780
  stringA = sequenceInterval.getSequence(remainder.start, remainder.end);
35590
35781
 
35591
35782
  if (!stringA) {
@@ -50359,19 +50550,26 @@ class AlignmentBlock {
50359
50550
 
50360
50551
  class BamFilter {
50361
50552
  constructor(options) {
50362
- if (!options) options = {};
50363
- this.vendorFailed = options.vendorFailed = false !== options.vendorFailed;
50364
- this.duplicate = options.duplicate = false !== options.duplicate;
50553
+ options = options || {};
50554
+
50555
+ // Default to true unless explicitly set to false
50556
+ this.vendorFailed = options.vendorFailed !== false;
50557
+
50558
+ // Support both 'duplicate' and 'duplicates' as synonyms
50559
+ const duplicateValue = options.duplicate !== undefined ? options.duplicate : options.duplicates;
50560
+ this.duplicate = duplicateValue !== false;
50561
+
50365
50562
  this.secondary = options.secondary || false;
50366
50563
  this.supplementary = options.supplementary || false;
50367
50564
  this.mq = options.mq || 0;
50565
+
50368
50566
  if (options.readgroups) {
50369
50567
  this.readgroups = new Set(options.readgroups);
50370
50568
  }
50371
50569
  }
50372
50570
 
50373
50571
  pass(alignment) {
50374
- if(!alignment.isMapped()) return false
50572
+ if (!alignment.isMapped()) return false
50375
50573
  if (this.vendorFailed && alignment.isFailsVendorQualityCheck()) return false
50376
50574
  if (this.duplicate && alignment.isDuplicate()) return false
50377
50575
  if (this.secondary && alignment.isSecondary()) return false
@@ -76476,7 +76674,7 @@ function createReferenceFrameList(loci, genome, browserFlanking, minimumBases, v
76476
76674
  })
76477
76675
  }
76478
76676
 
76479
- const _version = "3.7.1";
76677
+ const _version = "3.7.3";
76480
76678
  function version() {
76481
76679
  return _version
76482
76680
  }
@@ -76540,10 +76738,13 @@ class ChromosomeSelectWidget {
76540
76738
  genome.wgChromosomeNames.map(nm => genome.getChromosomeDisplayName(nm)) :
76541
76739
  [];
76542
76740
 
76741
+ const alreadyAdded = genome.wgChromosomeNames ? new Set(genome.wgChromosomeNames) : new Set();
76742
+
76543
76743
  if (this.showAllChromosomes && genome.chromosomeNames.length > 1) {
76544
76744
  const exclude = new Set(list);
76545
- let count = 0;
76745
+ let count = alreadyAdded.size;
76546
76746
  for (let nm of genome.chromosomeNames) {
76747
+ if(alreadyAdded.has(nm)) continue
76547
76748
  if (++count === 1000) {
76548
76749
  list.push(maximumSequenceCountExceeded);
76549
76750
  break
@@ -79129,6 +79330,15 @@ class ChromAliasFile {
79129
79330
  }
79130
79331
  }
79131
79332
 
79333
+ /**
79334
+ * Search for chromosome alias record. If found, cache results in the alias -> chr map
79335
+ *
79336
+ * An alias record is an object with keys corresponding to the chromosome name set (e.g. "ucsc", "refseq", etc) and
79337
+ * value the corresponding chromosome alias for that name set.
79338
+ *
79339
+ * @param alias - the sequence name or alias
79340
+ * @returns {Promise<any>} promise to resolve to the alias record.
79341
+ */
79132
79342
  async search(alias) {
79133
79343
  if(this.aliasRecordCache.size === 0) {
79134
79344
  await this.loadAliases();
@@ -79476,7 +79686,7 @@ class Genome {
79476
79686
  this.ucscID = config.ucscID || ucsdIDMap.get(this.id) || this.id;
79477
79687
  this.blatDB = config.blatDB || this.ucscID;
79478
79688
  this.name = config.name;
79479
- this.nameSet = config.nameSet || 'ucsc';
79689
+ this.nameSet = config.nameSet;
79480
79690
  }
79481
79691
 
79482
79692
 
@@ -80778,7 +80988,7 @@ class Browser {
80778
80988
  }
80779
80989
  }
80780
80990
 
80781
- const genomeOrReference = session.reference || session.genome;
80991
+ const genomeOrReference = session.reference || session.genome || session.genarkAccession;
80782
80992
  if (!genomeOrReference) {
80783
80993
  console.warn("No genome or reference object specified");
80784
80994
  return
@@ -80995,6 +81205,15 @@ class Browser {
80995
81205
  return genome
80996
81206
  }
80997
81207
 
81208
+ async expandGenarkAccession(genarkAccession) {
81209
+
81210
+ const url = convertToHubURL(genarkAccession);
81211
+ const hub = await loadHub(url);
81212
+ const genomeConfig = hub.getGenomeConfig();
81213
+ genomeConfig.nameSet = "ucsc";
81214
+ return genomeConfig
81215
+ }
81216
+
80998
81217
  /**
80999
81218
  * Load a genome, defined by a string ID or a json-like configuration object. This includes a fasta reference
81000
81219
  * as well as optional cytoband and annotation tracks.
@@ -81004,31 +81223,33 @@ class Browser {
81004
81223
  */
81005
81224
  async loadGenome(idOrConfig) {
81006
81225
 
81007
- if (idOrConfig.genarkAccession) {
81008
- idOrConfig.url = convertToHubURL(idOrConfig.genarkAccession);
81009
- }
81226
+ let genomeConfig;
81010
81227
 
81011
- // Translate the generic "url" field, used by clients such as igv-webapp
81012
- if (idOrConfig.url) {
81013
- if (isString$3(idOrConfig.url) && idOrConfig.url.endsWith("/hub.txt")) {
81014
- idOrConfig.hubURL = idOrConfig.url;
81015
- delete idOrConfig.url;
81016
- } else if ("gbk" === getFileExtension(idOrConfig.url)) {
81017
- idOrConfig.gbkURL = idOrConfig.url;
81018
- delete idOrConfig.url;
81228
+ if (idOrConfig.genarkAccession) {
81229
+ genomeConfig = await this.expandGenarkAccession(idOrConfig.genarkAccession);
81230
+ } else {
81231
+ // Translate the generic "url" field, used by clients such as igv-webapp
81232
+ if (idOrConfig.url) {
81233
+ if (isString$3(idOrConfig.url) && idOrConfig.url.endsWith("/hub.txt")) {
81234
+ idOrConfig.hubURL = idOrConfig.url;
81235
+ delete idOrConfig.url;
81236
+ } else if ("gbk" === getFileExtension(idOrConfig.url)) {
81237
+ idOrConfig.gbkURL = idOrConfig.url;
81238
+ delete idOrConfig.url;
81239
+ }
81019
81240
  }
81020
- }
81021
81241
 
81022
- let genomeConfig;
81023
- const isHubGenome = idOrConfig.hubURL || (idOrConfig.url && isString$3(idOrConfig.url) && idOrConfig.url.endsWith("/hub.txt"));
81024
- if (isHubGenome) {
81025
- const hub = await loadHub(idOrConfig.hubURL || idOrConfig.url);
81026
- genomeConfig = hub.getGenomeConfig();
81027
- } else if (isString$3(idOrConfig) || !(idOrConfig.url || idOrConfig.fastaURL || idOrConfig.twoBitURL || idOrConfig.gbkURL)) {
81028
- // Either an ID, a json string, or an object missing required properties.
81029
- genomeConfig = await GenomeUtils.expandReference(this.alert, idOrConfig);
81030
- } else {
81031
- genomeConfig = idOrConfig;
81242
+
81243
+ const isHubGenome = idOrConfig.hubURL || (idOrConfig.url && isString$3(idOrConfig.url) && idOrConfig.url.endsWith("/hub.txt"));
81244
+ if (isHubGenome) {
81245
+ const hub = await loadHub(idOrConfig.hubURL || idOrConfig.url);
81246
+ genomeConfig = hub.getGenomeConfig();
81247
+ } else if (isString$3(idOrConfig) || !(idOrConfig.url || idOrConfig.fastaURL || idOrConfig.twoBitURL || idOrConfig.gbkURL)) {
81248
+ // Either an ID, a json string, or an object missing required properties.
81249
+ genomeConfig = await GenomeUtils.expandReference(this.alert, idOrConfig);
81250
+ } else {
81251
+ genomeConfig = idOrConfig;
81252
+ }
81032
81253
  }
81033
81254
 
81034
81255
  await this.loadReference(genomeConfig);