jbrowse-plugin-graphgenomeviewer 8.3.1 → 8.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +7 -2
  2. package/dist/chunks/{GbzBaseSyntenyAdapter-Y5VUDFZP.js → GbzBaseSyntenyAdapter-W5J3E5VT.js} +2 -2
  3. package/dist/chunks/{GbzBaseSyntenyAdapter-Y5VUDFZP.js.map → GbzBaseSyntenyAdapter-W5J3E5VT.js.map} +1 -1
  4. package/dist/chunks/{GraphGenomeView-VW3PEHFP.js → GraphGenomeView-NLPWMIBS.js} +2 -2
  5. package/dist/chunks/{GraphTrackSettingsDialog-TT5TXM5I.js → GraphTrackSettingsDialog-7LHAOYX3.js} +2 -2
  6. package/dist/chunks/{HighlightColorDialog-R3EIOO2M.js → HighlightColorDialog-YQEMRPZ6.js} +2 -2
  7. package/dist/chunks/{LinearGraphDisplay-OBD4R5G3.js → LinearGraphDisplay-BEU7V4JU.js} +2 -2
  8. package/dist/chunks/{MinigraphBubbleAdapter-QXISPSHM.js → MinigraphBubbleAdapter-FZZLY3ZI.js} +2 -2
  9. package/dist/chunks/{RgfaTabixAdapter-SVZ5SSEY.js → RgfaTabixAdapter-DXBQEVFS.js} +2 -2
  10. package/dist/chunks/{WalkFormsAdapter-6LK2XCHQ.js → WalkFormsAdapter-ZKZ5PUYO.js} +2 -2
  11. package/dist/chunks/{WalkTabixSyntenyAdapter-LA22PX4I.js → WalkTabixSyntenyAdapter-HEGPYGKB.js} +2 -2
  12. package/dist/chunks/{chunk-PMM6BEKY.js → chunk-2FCFK2B5.js} +1 -1
  13. package/dist/chunks/{chunk-PMM6BEKY.js.map → chunk-2FCFK2B5.js.map} +1 -1
  14. package/dist/chunks/{chunk-TMFUYJFG.js → chunk-5X3OZSDO.js} +2 -2
  15. package/dist/chunks/chunk-D6NFDQQI.js +4 -0
  16. package/dist/chunks/chunk-D6NFDQQI.js.map +7 -0
  17. package/dist/chunks/chunk-D7MOOK6H.js +4 -0
  18. package/dist/chunks/chunk-D7MOOK6H.js.map +7 -0
  19. package/dist/chunks/chunk-EINURNZ6.js +2 -0
  20. package/dist/chunks/chunk-EKIQ3ATV.js +2 -0
  21. package/dist/chunks/chunk-EKIQ3ATV.js.map +7 -0
  22. package/dist/chunks/{chunk-WA7FCDLQ.js → chunk-HM7XSNBN.js} +1 -1
  23. package/dist/chunks/{chunk-WA7FCDLQ.js.map → chunk-HM7XSNBN.js.map} +1 -1
  24. package/dist/chunks/{chunk-IUBWMYUA.js → chunk-IQQOJGX3.js} +2 -2
  25. package/dist/chunks/{chunk-IUBWMYUA.js.map → chunk-IQQOJGX3.js.map} +1 -1
  26. package/dist/chunks/{chunk-HAVM67SF.js → chunk-JTOW3TOE.js} +2 -2
  27. package/dist/chunks/{chunk-EKGY6PG2.js → chunk-KM2INI7Q.js} +2 -2
  28. package/dist/chunks/{chunk-EKGY6PG2.js.map → chunk-KM2INI7Q.js.map} +1 -1
  29. package/dist/chunks/{chunk-DSKPOCCE.js → chunk-MFMAQO3W.js} +2 -2
  30. package/dist/chunks/{chunk-DSKPOCCE.js.map → chunk-MFMAQO3W.js.map} +1 -1
  31. package/dist/chunks/{chunk-NAC3EXT4.js → chunk-MNFL7BAC.js} +2 -2
  32. package/dist/chunks/{chunk-NAC3EXT4.js.map → chunk-MNFL7BAC.js.map} +1 -1
  33. package/dist/chunks/{chunk-DL2S7QKE.js → chunk-NB4X56M3.js} +2 -2
  34. package/dist/chunks/{chunk-DL2S7QKE.js.map → chunk-NB4X56M3.js.map} +1 -1
  35. package/dist/chunks/{chunk-B2MJV7HN.js → chunk-OMF5XFKR.js} +1 -1
  36. package/dist/chunks/{chunk-B2MJV7HN.js.map → chunk-OMF5XFKR.js.map} +1 -1
  37. package/dist/chunks/{chunk-PEE2MP7K.js → chunk-TNEXOJ5F.js} +1 -1
  38. package/dist/chunks/{chunk-PEE2MP7K.js.map → chunk-TNEXOJ5F.js.map} +1 -1
  39. package/dist/chunks/chunk-VP6AGIRF.js +2 -0
  40. package/dist/chunks/chunk-VP6AGIRF.js.map +7 -0
  41. package/dist/chunks/{chunk-MHIKXNVU.js → chunk-XBZ4C4R3.js} +3 -3
  42. package/dist/chunks/{chunk-MHIKXNVU.js.map → chunk-XBZ4C4R3.js.map} +2 -2
  43. package/dist/chunks/{chunk-QATGAV57.js → chunk-Y7VFVMQI.js} +2 -2
  44. package/dist/chunks/{chunk-QATGAV57.js.map → chunk-Y7VFVMQI.js.map} +1 -1
  45. package/dist/chunks/{chunk-G3L2L62S.js → chunk-YMK7HFJV.js} +2 -2
  46. package/dist/chunks/{chunk-NSBH4FIW.js → chunk-ZWRAQSXC.js} +2 -2
  47. package/dist/chunks/chunk-ZWRAQSXC.js.map +7 -0
  48. package/dist/chunks/{renderSvg-2DPRP5UX.js → renderSvg-XIEGA5N5.js} +2 -2
  49. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +2 -2
  50. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +3 -3
  51. package/package.json +2 -2
  52. package/src/GetSubgraph.ts +2 -0
  53. package/src/GraphGenomeView/legendSections.ts +5 -2
  54. package/src/GraphGenomeView/model.ts +8 -1
  55. package/src/RgfaTabixAdapter/walkFiles.test.ts +14 -0
  56. package/src/RgfaTabixAdapter/walkReader.ts +22 -5
  57. package/src/version.ts +1 -1
  58. package/dist/chunks/chunk-5ZGRAPN5.js +0 -4
  59. package/dist/chunks/chunk-5ZGRAPN5.js.map +0 -7
  60. package/dist/chunks/chunk-73B6AYVV.js +0 -2
  61. package/dist/chunks/chunk-73B6AYVV.js.map +0 -7
  62. package/dist/chunks/chunk-AUQISDXJ.js +0 -2
  63. package/dist/chunks/chunk-AUQISDXJ.js.map +0 -7
  64. package/dist/chunks/chunk-GIIUVBOH.js +0 -4
  65. package/dist/chunks/chunk-GIIUVBOH.js.map +0 -7
  66. package/dist/chunks/chunk-NSBH4FIW.js.map +0 -7
  67. package/dist/chunks/chunk-WO3MEQ25.js +0 -2
  68. /package/dist/chunks/{GraphGenomeView-VW3PEHFP.js.map → GraphGenomeView-NLPWMIBS.js.map} +0 -0
  69. /package/dist/chunks/{GraphTrackSettingsDialog-TT5TXM5I.js.map → GraphTrackSettingsDialog-7LHAOYX3.js.map} +0 -0
  70. /package/dist/chunks/{HighlightColorDialog-R3EIOO2M.js.map → HighlightColorDialog-YQEMRPZ6.js.map} +0 -0
  71. /package/dist/chunks/{LinearGraphDisplay-OBD4R5G3.js.map → LinearGraphDisplay-BEU7V4JU.js.map} +0 -0
  72. /package/dist/chunks/{MinigraphBubbleAdapter-QXISPSHM.js.map → MinigraphBubbleAdapter-FZZLY3ZI.js.map} +0 -0
  73. /package/dist/chunks/{RgfaTabixAdapter-SVZ5SSEY.js.map → RgfaTabixAdapter-DXBQEVFS.js.map} +0 -0
  74. /package/dist/chunks/{WalkFormsAdapter-6LK2XCHQ.js.map → WalkFormsAdapter-ZKZ5PUYO.js.map} +0 -0
  75. /package/dist/chunks/{WalkTabixSyntenyAdapter-LA22PX4I.js.map → WalkTabixSyntenyAdapter-HEGPYGKB.js.map} +0 -0
  76. /package/dist/chunks/{chunk-TMFUYJFG.js.map → chunk-5X3OZSDO.js.map} +0 -0
  77. /package/dist/chunks/{chunk-WO3MEQ25.js.map → chunk-EINURNZ6.js.map} +0 -0
  78. /package/dist/chunks/{chunk-HAVM67SF.js.map → chunk-JTOW3TOE.js.map} +0 -0
  79. /package/dist/chunks/{chunk-G3L2L62S.js.map → chunk-YMK7HFJV.js.map} +0 -0
  80. /package/dist/chunks/{renderSvg-2DPRP5UX.js.map → renderSvg-XIEGA5N5.js.map} +0 -0
@@ -1,2 +1,2 @@
1
1
  var e="#";function l(t){return t.split(e)[0]}var r=new Set(["_gbwt_ref"]);function p(t){return r.has(t)}function c(t){let n=t.split(e);return n.length>=3?`${n[0]}${e}${n[1]}`:void 0}function u(t){let n=t.split(e);return n.length>=3?n.slice(2).join(e):n.length===2?n[1]:t}function N(t){let[n="",o="",...s]=t.split(e);return s.length>0?{sample:n,haplotype:+o,contig:s.join(e)}:void 0}function S(t){let n=t.split(e),o=n.length>=2&&n[1]!==""?Number(n[1]):Number.NaN;return{sample:n[0],haplotype:Number.isFinite(o)?o:void 0}}function f(t,n){return n!==void 0&&(t===n||t.startsWith(n+e))}function a(t){return t.getConf("assemblyNameToPanSN")??{}}function h(t,n){return n===void 0?void 0:a(t)[n]??n}var i=new WeakMap;function m(t){let n=i.get(t);if(n===void 0){let o=a(t);n={};for(let s of new Set([...Object.keys(o),...t.getConf("assemblyNames")]))n[o[s]??s]=s;i.set(t,n)}return n}export{l as a,p as b,c,u as d,N as e,S as f,f as g,h,m as i};
2
- //# sourceMappingURL=chunk-B2MJV7HN.js.map
2
+ //# sourceMappingURL=chunk-OMF5XFKR.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@12.1.2/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-2JL2JVZ2.js"],
3
+ "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@12.2.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-2JL2JVZ2.js"],
4
4
  "sourcesContent": ["// src/pansn.ts\nvar SEP = \"#\";\nfunction panSNSample(refName) {\n return refName.split(SEP)[0];\n}\nvar GENERIC_SAMPLES = /* @__PURE__ */ new Set([\"_gbwt_ref\"]);\nfunction isGenericSample(sample) {\n return GENERIC_SAMPLES.has(sample);\n}\nfunction panSNHaplotype(refName) {\n const parts = refName.split(SEP);\n return parts.length >= 3 ? `${parts[0]}${SEP}${parts[1]}` : void 0;\n}\nfunction panSNContig(refName) {\n const parts = refName.split(SEP);\n return parts.length >= 3 ? parts.slice(2).join(SEP) : parts.length === 2 ? parts[1] : refName;\n}\nfunction panSNFields(name) {\n const [sample = \"\", haplotype = \"\", ...contig] = name.split(SEP);\n return contig.length > 0 ? { sample, haplotype: +haplotype, contig: contig.join(SEP) } : void 0;\n}\nfunction parsePanSN(refName) {\n const parts = refName.split(SEP);\n const haplotype = parts.length >= 2 && parts[1] !== \"\" ? Number(parts[1]) : Number.NaN;\n return {\n sample: parts[0],\n haplotype: Number.isFinite(haplotype) ? haplotype : void 0\n };\n}\nfunction panSNMatchesPrefix(refName, prefix) {\n return prefix !== void 0 && (refName === prefix || refName.startsWith(prefix + SEP));\n}\nfunction assemblyNameToPanSN(adapter) {\n return adapter.getConf(\"assemblyNameToPanSN\") ?? {};\n}\nfunction resolvePanSNPrefix(adapter, name) {\n return name === void 0 ? void 0 : assemblyNameToPanSN(adapter)[name] ?? name;\n}\nvar asmByPrefixCache = /* @__PURE__ */ new WeakMap();\nfunction assemblyByPanSNPrefix(adapter) {\n let out = asmByPrefixCache.get(adapter);\n if (out === void 0) {\n const map = assemblyNameToPanSN(adapter);\n out = {};\n for (const asm of /* @__PURE__ */ new Set([\n ...Object.keys(map),\n ...adapter.getConf(\"assemblyNames\")\n ])) {\n out[map[asm] ?? asm] = asm;\n }\n asmByPrefixCache.set(adapter, out);\n }\n return out;\n}\n\nexport {\n panSNSample,\n isGenericSample,\n panSNHaplotype,\n panSNContig,\n panSNFields,\n parsePanSN,\n panSNMatchesPrefix,\n resolvePanSNPrefix,\n assemblyByPanSNPrefix\n};\n"],
5
5
  "mappings": "AACA,IAAIA,EAAM,IACV,SAASC,EAAYC,EAAS,CAC5B,OAAOA,EAAQ,MAAMF,CAAG,EAAE,CAAC,CAC7B,CACA,IAAIG,EAAkC,IAAI,IAAI,CAAC,WAAW,CAAC,EAC3D,SAASC,EAAgBC,EAAQ,CAC/B,OAAOF,EAAgB,IAAIE,CAAM,CACnC,CACA,SAASC,EAAeJ,EAAS,CAC/B,IAAMK,EAAQL,EAAQ,MAAMF,CAAG,EAC/B,OAAOO,EAAM,QAAU,EAAI,GAAGA,EAAM,CAAC,CAAC,GAAGP,CAAG,GAAGO,EAAM,CAAC,CAAC,GAAK,MAC9D,CACA,SAASC,EAAYN,EAAS,CAC5B,IAAMK,EAAQL,EAAQ,MAAMF,CAAG,EAC/B,OAAOO,EAAM,QAAU,EAAIA,EAAM,MAAM,CAAC,EAAE,KAAKP,CAAG,EAAIO,EAAM,SAAW,EAAIA,EAAM,CAAC,EAAIL,CACxF,CACA,SAASO,EAAYC,EAAM,CACzB,GAAM,CAACL,EAAS,GAAIM,EAAY,GAAI,GAAGC,CAAM,EAAIF,EAAK,MAAMV,CAAG,EAC/D,OAAOY,EAAO,OAAS,EAAI,CAAE,OAAAP,EAAQ,UAAW,CAACM,EAAW,OAAQC,EAAO,KAAKZ,CAAG,CAAE,EAAI,MAC3F,CACA,SAASa,EAAWX,EAAS,CAC3B,IAAMK,EAAQL,EAAQ,MAAMF,CAAG,EACzBW,EAAYJ,EAAM,QAAU,GAAKA,EAAM,CAAC,IAAM,GAAK,OAAOA,EAAM,CAAC,CAAC,EAAI,OAAO,IACnF,MAAO,CACL,OAAQA,EAAM,CAAC,EACf,UAAW,OAAO,SAASI,CAAS,EAAIA,EAAY,MACtD,CACF,CACA,SAASG,EAAmBZ,EAASa,EAAQ,CAC3C,OAAOA,IAAW,SAAWb,IAAYa,GAAUb,EAAQ,WAAWa,EAASf,CAAG,EACpF,CACA,SAASgB,EAAoBC,EAAS,CACpC,OAAOA,EAAQ,QAAQ,qBAAqB,GAAK,CAAC,CACpD,CACA,SAASC,EAAmBD,EAASP,EAAM,CACzC,OAAOA,IAAS,OAAS,OAASM,EAAoBC,CAAO,EAAEP,CAAI,GAAKA,CAC1E,CACA,IAAIS,EAAmC,IAAI,QAC3C,SAASC,EAAsBH,EAAS,CACtC,IAAII,EAAMF,EAAiB,IAAIF,CAAO,EACtC,GAAII,IAAQ,OAAQ,CAClB,IAAMC,EAAMN,EAAoBC,CAAO,EACvCI,EAAM,CAAC,EACP,QAAWE,KAAuB,IAAI,IAAI,CACxC,GAAG,OAAO,KAAKD,CAAG,EAClB,GAAGL,EAAQ,QAAQ,eAAe,CACpC,CAAC,EACCI,EAAIC,EAAIC,CAAG,GAAKA,CAAG,EAAIA,EAEzBJ,EAAiB,IAAIF,EAASI,CAAG,CACnC,CACA,OAAOA,CACT",
6
6
  "names": ["SEP", "panSNSample", "refName", "GENERIC_SAMPLES", "isGenericSample", "sample", "panSNHaplotype", "parts", "panSNContig", "panSNFields", "name", "haplotype", "contig", "parsePanSN", "panSNMatchesPrefix", "prefix", "assemblyNameToPanSN", "adapter", "resolvePanSNPrefix", "asmByPrefixCache", "assemblyByPanSNPrefix", "out", "map", "asm"]
@@ -1,2 +1,2 @@
1
1
  function o(t){return t===void 0||t==="*"?void 0:t}function s(t){let e=t.split(" ");return{refName:e[0],start:+e[1],end:+e[2],segmentCount:+e[3],pathCount:+e[4],inversion:e[5]==="1",shortestAlleleLength:+e[6],longestAlleleLength:+e[7],segments:e[11],shortestAllele:o(e[12]),longestAllele:o(e[13])}}function u(t,e){return t.key!==void 0||e.key!==void 0?t.key===e.key:t.refName===e.refName&&t.start===e.start&&t.end===e.end}function i(t){return t.key??`${t.refName}:${t.start}-${t.end}`}function b(t){let{shortestAlleleLength:e,longestAlleleLength:n}=t;return e===n?`${n.toLocaleString()} bp`:`${e.toLocaleString()}-${n.toLocaleString()} bp`}var r=2147483647;function a(t){let{pathCount:e,segmentCount:n,inversion:l}=t;return[`${n} segments`,e===r?"more paths than gfatools counts":`up to ${e.toLocaleString()} paths`,...l?["inversion"]:[]].join(", ")}export{s as a,u as b,i as c,b as d,r as e,a as f};
2
- //# sourceMappingURL=chunk-PEE2MP7K.js.map
2
+ //# sourceMappingURL=chunk-TNEXOJ5F.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@12.1.2/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-FX4RDMDN.js"],
3
+ "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@12.2.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-FX4RDMDN.js"],
4
4
  "sourcesContent": ["// src/bubbles/bubbleLine.ts\nfunction sequence(field) {\n return field === void 0 || field === \"*\" ? void 0 : field;\n}\nfunction parseBubbleLine(line) {\n const cols = line.split(\"\t\");\n return {\n refName: cols[0],\n start: +cols[1],\n end: +cols[2],\n segmentCount: +cols[3],\n pathCount: +cols[4],\n inversion: cols[5] === \"1\",\n shortestAlleleLength: +cols[6],\n longestAlleleLength: +cols[7],\n segments: cols[11],\n shortestAllele: sequence(cols[12]),\n longestAllele: sequence(cols[13])\n };\n}\nfunction sameBubble(a, b) {\n return a.key !== void 0 || b.key !== void 0 ? a.key === b.key : a.refName === b.refName && a.start === b.start && a.end === b.end;\n}\nfunction bubbleKey(b) {\n return b.key ?? `${b.refName}:${b.start}-${b.end}`;\n}\nfunction bubbleLabel(bubble) {\n const { shortestAlleleLength: min, longestAlleleLength: max } = bubble;\n return min === max ? `${max.toLocaleString()} bp` : `${min.toLocaleString()}-${max.toLocaleString()} bp`;\n}\nvar SATURATED_PATH_COUNT = 2147483647;\nfunction bubbleDescription(bubble) {\n const { pathCount, segmentCount, inversion } = bubble;\n return [\n `${segmentCount} segments`,\n pathCount === SATURATED_PATH_COUNT ? \"more paths than gfatools counts\" : `up to ${pathCount.toLocaleString()} paths`,\n ...inversion ? [\"inversion\"] : []\n ].join(\", \");\n}\n\nexport {\n parseBubbleLine,\n sameBubble,\n bubbleKey,\n bubbleLabel,\n SATURATED_PATH_COUNT,\n bubbleDescription\n};\n"],
5
5
  "mappings": "AACA,SAASA,EAASC,EAAO,CACvB,OAAOA,IAAU,QAAUA,IAAU,IAAM,OAASA,CACtD,CACA,SAASC,EAAgBC,EAAM,CAC7B,IAAMC,EAAOD,EAAK,MAAM,GAAG,EAC3B,MAAO,CACL,QAASC,EAAK,CAAC,EACf,MAAO,CAACA,EAAK,CAAC,EACd,IAAK,CAACA,EAAK,CAAC,EACZ,aAAc,CAACA,EAAK,CAAC,EACrB,UAAW,CAACA,EAAK,CAAC,EAClB,UAAWA,EAAK,CAAC,IAAM,IACvB,qBAAsB,CAACA,EAAK,CAAC,EAC7B,oBAAqB,CAACA,EAAK,CAAC,EAC5B,SAAUA,EAAK,EAAE,EACjB,eAAgBJ,EAASI,EAAK,EAAE,CAAC,EACjC,cAAeJ,EAASI,EAAK,EAAE,CAAC,CAClC,CACF,CACA,SAASC,EAAWC,EAAGC,EAAG,CACxB,OAAOD,EAAE,MAAQ,QAAUC,EAAE,MAAQ,OAASD,EAAE,MAAQC,EAAE,IAAMD,EAAE,UAAYC,EAAE,SAAWD,EAAE,QAAUC,EAAE,OAASD,EAAE,MAAQC,EAAE,GAChI,CACA,SAASC,EAAUD,EAAG,CACpB,OAAOA,EAAE,KAAO,GAAGA,EAAE,OAAO,IAAIA,EAAE,KAAK,IAAIA,EAAE,GAAG,EAClD,CACA,SAASE,EAAYC,EAAQ,CAC3B,GAAM,CAAE,qBAAsBC,EAAK,oBAAqBC,CAAI,EAAIF,EAChE,OAAOC,IAAQC,EAAM,GAAGA,EAAI,eAAe,CAAC,MAAQ,GAAGD,EAAI,eAAe,CAAC,IAAIC,EAAI,eAAe,CAAC,KACrG,CACA,IAAIC,EAAuB,WAC3B,SAASC,EAAkBJ,EAAQ,CACjC,GAAM,CAAE,UAAAK,EAAW,aAAAC,EAAc,UAAAC,CAAU,EAAIP,EAC/C,MAAO,CACL,GAAGM,CAAY,YACfD,IAAcF,EAAuB,kCAAoC,SAASE,EAAU,eAAe,CAAC,SAC5G,GAAGE,EAAY,CAAC,WAAW,EAAI,CAAC,CAClC,EAAE,KAAK,IAAI,CACb",
6
6
  "names": ["sequence", "field", "parseBubbleLine", "line", "cols", "sameBubble", "a", "b", "bubbleKey", "bubbleLabel", "bubble", "min", "max", "SATURATED_PATH_COUNT", "bubbleDescription", "pathCount", "segmentCount", "inversion"]
@@ -0,0 +1,2 @@
1
+ import{a as B}from"./chunk-EINURNZ6.js";import{h as b,i as o,k as f,z as m}from"./chunk-JTOW3TOE.js";import{h as u}from"./chunk-OMF5XFKR.js";var O={steps:"walkStepBudget",bytes:"walkByteBudget"},y=64,k=class{constructor(e,t){this.file=e;this.adapter=t;this.reader=new f(e)}async haplotypeNames(e={}){let{haplotypes:t}=await this.reader.header(e);return t.length>0?t:void 0}budgets(){return{stepBudget:this.adapter.getConf("walkStepBudget"),byteBudget:this.adapter.getConf("walkByteBudget"),budgetNames:O}}async subgraph(e,t,{signal:i,haplotypes:d,walkRows:s,expand:r,expandSamples:n}){let g=this.budgets(),p=o(d?.map(a=>u(this.adapter,a)),e),l=s&&p&&(d?.length??0)<=y?p:void 0,c=s&&n?.length&&n.length<=y?o(n.map(a=>u(this.adapter,a)),e):void 0,h=r?.length?a=>r.includes(a):void 0,{graph:w,kept:A,fragments:S,skips:x}=await this.reader.cut(e,t,{...g,stepBudget:s?1/0:g.stepBudget,signal:i,keep:p,...l||c||h?{expand:a=>!!l?.(a)||!!c?.(a)||!!h?.(a)}:{}});return B(w.tables(A,S,x),t,s)}async referenceNodes(e,t,i){let d=[];await m(this.file,e,await this.reader.queryStart(t.start,{...i,refName:e,end:t.end}),t.end,{signal:i.signal,lineCallback:r=>{let n=r.split(" ");n[3]==="ref"&&d.push(n)}});let s=new Set;return b(d).filter(r=>r.refName!==e||r.end<=t.start||r.start>=t.end||s.has(r.id)?!1:(s.add(r.id),!0))}};export{k as a};
2
+ //# sourceMappingURL=chunk-VP6AGIRF.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/RgfaTabixAdapter/walkReader.ts"],
4
+ "sourcesContent": ["import { resolvePanSNPrefix } from '@jbrowse/bandage-core/pansn'\nimport { WalkReader, referenceNodes, walksKept } from '@jbrowse/graph-walks'\n\nimport { getLines } from '../tabixRange.ts'\nimport { walkCutFor } from './walkCut.ts'\n\nimport type { SubgraphAdapterOptions } from '../GetSubgraph.ts'\nimport type { TabixIndexedFile } from '@gmod/tabix'\nimport type {\n BaseFeatureDataAdapter,\n BaseOptions,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\n\n// The zoom-in notices name the config slots that set the budgets\nexport const BUDGET_SLOTS = {\n steps: 'walkStepBudget',\n bytes: 'walkByteBudget',\n}\n\n// Walk rows read a list of haplotypes, or of the samples they show, this long or\n// shorter in full where format 5 abridged it; a longer list, or every\n// haplotype, keeps the abridged rows\nexport const EXPAND_NAMED_MAX = 64\n\n/**\n * A walk file and the answers both walk-indexed adapters give from it,\n * RgfaTabixAdapter and WalkTabixSyntenyAdapter, whose schemas declare the\n * budget slots. @jbrowse/graph-walks reads and cuts the file.\n */\nexport class WalkIndex {\n readonly reader: WalkReader\n\n constructor(\n readonly file: TabixIndexedFile,\n private adapter: BaseFeatureDataAdapter,\n ) {\n this.reader = new WalkReader(file)\n }\n\n /**\n * The haplotypes the header names, `sample#haplotype` in byte order, or\n * undefined when it names none\n */\n async haplotypeNames(opts: BaseOptions = {}) {\n const { haplotypes } = await this.reader.header(opts)\n return haplotypes.length > 0 ? haplotypes : undefined\n }\n\n budgets() {\n return {\n stepBudget: this.adapter.getConf('walkStepBudget') as number,\n byteBudget: this.adapter.getConf('walkByteBudget') as number,\n budgetNames: BUDGET_SLOTS,\n }\n }\n\n /**\n * The graph display's cut of a window: the reference walk, the walks of\n * `haplotypes` (every walk when unset), and the nodes and links they visit,\n * with the haplotypes whose deletion spans the window as `skips`, which walk\n * rows draw. Walk rows draw runs, so the step budget spares them, and read a\n * short list of named walks in full where format 5 abridged them.\n */\n async subgraph(\n refName: string,\n region: { start: number; end: number },\n {\n signal,\n haplotypes,\n walkRows,\n expand,\n expandSamples,\n }: SubgraphAdapterOptions,\n ) {\n const budgets = this.budgets()\n const keep = walksKept(\n haplotypes?.map(lane => resolvePanSNPrefix(this.adapter, lane)),\n refName,\n )\n const named =\n walkRows && keep && (haplotypes?.length ?? 0) <= EXPAND_NAMED_MAX\n ? keep\n : undefined\n const shown =\n walkRows &&\n expandSamples?.length &&\n expandSamples.length <= EXPAND_NAMED_MAX\n ? walksKept(\n expandSamples.map(s => resolvePanSNPrefix(this.adapter, s)),\n refName,\n )\n : undefined\n const asked = expand?.length\n ? (name: string) => expand.includes(name)\n : undefined\n const { graph, kept, fragments, skips } = await this.reader.cut(\n refName,\n region,\n {\n ...budgets,\n stepBudget: walkRows ? Infinity : budgets.stepBudget,\n signal,\n keep,\n ...(named || shown || asked\n ? {\n expand: (name: string) =>\n !!named?.(name) || !!shown?.(name) || !!asked?.(name),\n }\n : {}),\n },\n )\n return walkCutFor(graph.tables(kept, fragments, skips), region, walkRows)\n }\n\n /**\n * The reference nodes overlapping a window, from the ref rows of its\n * chunks. A row's tabix interval is its chunk's first base, and gfa-to-tabix\n * files a node crossing in from a chunk before under that chunk, so the read\n * starts at queryStart.\n */\n async referenceNodes(\n refName: string,\n region: { start: number; end: number },\n opts: BaseOptions,\n ) {\n const refRows: string[][] = []\n await getLines(\n this.file,\n refName,\n await this.reader.queryStart(region.start, {\n ...opts,\n refName,\n end: region.end,\n }),\n region.end,\n {\n signal: opts.signal,\n lineCallback: line => {\n const cols = line.split('\\t')\n if (cols[3] === 'ref') {\n refRows.push(cols)\n }\n },\n },\n )\n const seen = new Set<number>()\n return referenceNodes(refRows).filter(node => {\n if (\n node.refName !== refName ||\n node.end <= region.start ||\n node.start >= region.end ||\n seen.has(node.id)\n ) {\n return false\n }\n seen.add(node.id)\n return true\n })\n }\n}\n"],
5
+ "mappings": "6IAcO,IAAMA,EAAe,CAC1B,MAAO,iBACP,MAAO,gBACT,EAKaC,EAAmB,GAOnBC,EAAN,KAAgB,CAGrB,YACWC,EACDC,EACR,CAFS,UAAAD,EACD,aAAAC,EAER,KAAK,OAAS,IAAIC,EAAWF,CAAI,CACnC,CAMA,MAAM,eAAeG,EAAoB,CAAC,EAAG,CAC3C,GAAM,CAAE,WAAAC,CAAW,EAAI,MAAM,KAAK,OAAO,OAAOD,CAAI,EACpD,OAAOC,EAAW,OAAS,EAAIA,EAAa,MAC9C,CAEA,SAAU,CACR,MAAO,CACL,WAAY,KAAK,QAAQ,QAAQ,gBAAgB,EACjD,WAAY,KAAK,QAAQ,QAAQ,gBAAgB,EACjD,YAAaP,CACf,CACF,CASA,MAAM,SACJQ,EACAC,EACA,CACE,OAAAC,EACA,WAAAH,EACA,SAAAI,EACA,OAAAC,EACA,cAAAC,CACF,EACA,CACA,IAAMC,EAAU,KAAK,QAAQ,EACvBC,EAAOC,EACXT,GAAY,IAAIU,GAAQC,EAAmB,KAAK,QAASD,CAAI,CAAC,EAC9DT,CACF,EACMW,EACJR,GAAYI,IAASR,GAAY,QAAU,IAAMN,EAC7Cc,EACA,OACAK,EACJT,GACAE,GAAe,QACfA,EAAc,QAAUZ,EACpBe,EACEH,EAAc,IAAIQ,GAAKH,EAAmB,KAAK,QAASG,CAAC,CAAC,EAC1Db,CACF,EACA,OACAc,EAAQV,GAAQ,OACjBW,GAAiBX,EAAO,SAASW,CAAI,EACtC,OACE,CAAE,MAAAC,EAAO,KAAAC,EAAM,UAAAC,EAAW,MAAAC,CAAM,EAAI,MAAM,KAAK,OAAO,IAC1DnB,EACAC,EACA,CACE,GAAGK,EACH,WAAYH,EAAW,IAAWG,EAAQ,WAC1C,OAAAJ,EACA,KAAAK,EACA,GAAII,GAASC,GAASE,EAClB,CACE,OAASC,GACP,CAAC,CAACJ,IAAQI,CAAI,GAAK,CAAC,CAACH,IAAQG,CAAI,GAAK,CAAC,CAACD,IAAQC,CAAI,CACxD,EACA,CAAC,CACP,CACF,EACA,OAAOK,EAAWJ,EAAM,OAAOC,EAAMC,EAAWC,CAAK,EAAGlB,EAAQE,CAAQ,CAC1E,CAQA,MAAM,eACJH,EACAC,EACAH,EACA,CACA,IAAMuB,EAAsB,CAAC,EAC7B,MAAMC,EACJ,KAAK,KACLtB,EACA,MAAM,KAAK,OAAO,WAAWC,EAAO,MAAO,CACzC,GAAGH,EACH,QAAAE,EACA,IAAKC,EAAO,GACd,CAAC,EACDA,EAAO,IACP,CACE,OAAQH,EAAK,OACb,aAAcyB,GAAQ,CACpB,IAAMC,EAAOD,EAAK,MAAM,GAAI,EACxBC,EAAK,CAAC,IAAM,OACdH,EAAQ,KAAKG,CAAI,CAErB,CACF,CACF,EACA,IAAMC,EAAO,IAAI,IACjB,OAAOC,EAAeL,CAAO,EAAE,OAAOM,GAElCA,EAAK,UAAY3B,GACjB2B,EAAK,KAAO1B,EAAO,OACnB0B,EAAK,OAAS1B,EAAO,KACrBwB,EAAK,IAAIE,EAAK,EAAE,EAET,IAETF,EAAK,IAAIE,EAAK,EAAE,EACT,GACR,CACH,CACF",
6
+ "names": ["BUDGET_SLOTS", "EXPAND_NAMED_MAX", "WalkIndex", "file", "adapter", "WalkReader", "opts", "haplotypes", "refName", "region", "signal", "walkRows", "expand", "expandSamples", "budgets", "keep", "walksKept", "lane", "resolvePanSNPrefix", "named", "shown", "s", "asked", "name", "graph", "kept", "fragments", "skips", "walkCutFor", "refRows", "getLines", "line", "cols", "seen", "referenceNodes", "node"]
7
+ }