jbrowse-plugin-graphgenomeviewer 7.4.1 → 7.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{GbzBaseSyntenyAdapter-FZWSXPAE.js → GbzBaseSyntenyAdapter-BVLBK4OO.js} +2 -2
- package/dist/chunks/{GbzBaseSyntenyAdapter-FZWSXPAE.js.map → GbzBaseSyntenyAdapter-BVLBK4OO.js.map} +1 -1
- package/dist/chunks/{GraphGenomeView-52OPGZER.js → GraphGenomeView-UCOAMRF7.js} +2 -2
- package/dist/chunks/{GraphTrackSettingsDialog-JHIP2F5N.js → GraphTrackSettingsDialog-MR7X75EY.js} +2 -2
- package/dist/chunks/{HighlightColorDialog-S2WPOSDF.js → HighlightColorDialog-ZBAZDYIR.js} +2 -2
- package/dist/chunks/{LinearGraphDisplay-EF2GE7X7.js → LinearGraphDisplay-AJ5OZN27.js} +2 -2
- package/dist/chunks/{MinigraphBubbleAdapter-XC75BCG3.js → MinigraphBubbleAdapter-PEQK5NII.js} +2 -2
- package/dist/chunks/{RgfaTabixAdapter-56X2U424.js → RgfaTabixAdapter-Q63YLPK4.js} +2 -2
- package/dist/chunks/{WalkTabixSyntenyAdapter-ECW557IS.js → WalkTabixSyntenyAdapter-N5PFI4LS.js} +2 -2
- package/dist/chunks/{chunk-UW7INEQF.js → chunk-2XZYJLCE.js} +1 -1
- package/dist/chunks/{chunk-UW7INEQF.js.map → chunk-2XZYJLCE.js.map} +1 -1
- package/dist/chunks/{chunk-ADZBAET3.js → chunk-55DIX25J.js} +3 -3
- package/dist/chunks/{chunk-ADZBAET3.js.map → chunk-55DIX25J.js.map} +3 -3
- package/dist/chunks/{chunk-2BTNRN57.js → chunk-62AHPP6H.js} +2 -2
- package/dist/chunks/{chunk-2BTNRN57.js.map → chunk-62AHPP6H.js.map} +1 -1
- package/dist/chunks/{chunk-OUHKJSKZ.js → chunk-AWGMTI73.js} +2 -2
- package/dist/chunks/{chunk-2Q4D5RHL.js → chunk-DXNE2CFX.js} +2 -2
- package/dist/chunks/{chunk-2Q4D5RHL.js.map → chunk-DXNE2CFX.js.map} +1 -1
- package/dist/chunks/{chunk-XT4U7I3D.js → chunk-FWVXBJ64.js} +3 -3
- package/dist/chunks/{chunk-XT4U7I3D.js.map → chunk-FWVXBJ64.js.map} +2 -2
- package/dist/chunks/{chunk-Z4YNEFPC.js → chunk-HI3YK2SO.js} +2 -2
- package/dist/chunks/chunk-J3AXN7JQ.js +2 -0
- package/dist/chunks/{chunk-LTN6XZR5.js → chunk-JSRGX4TC.js} +1 -1
- package/dist/chunks/{chunk-LTN6XZR5.js.map → chunk-JSRGX4TC.js.map} +1 -1
- package/dist/chunks/{chunk-SI64QXFH.js → chunk-LFTZNUXB.js} +2 -2
- package/dist/chunks/{chunk-SI64QXFH.js.map → chunk-LFTZNUXB.js.map} +1 -1
- package/dist/chunks/{chunk-YBZA7LPQ.js → chunk-MEMUEG5Z.js} +2 -2
- package/dist/chunks/{chunk-YBZA7LPQ.js.map → chunk-MEMUEG5Z.js.map} +1 -1
- package/dist/chunks/{chunk-PLTIGGGS.js → chunk-PUREF4BM.js} +2 -2
- package/dist/chunks/{chunk-PLTIGGGS.js.map → chunk-PUREF4BM.js.map} +1 -1
- package/dist/chunks/chunk-Q3BXNKEL.js +2 -0
- package/dist/chunks/chunk-Q3BXNKEL.js.map +7 -0
- package/dist/chunks/{chunk-VIVPTP5Z.js → chunk-RCXOOBLX.js} +1 -1
- package/dist/chunks/{chunk-VIVPTP5Z.js.map → chunk-RCXOOBLX.js.map} +1 -1
- package/dist/chunks/{chunk-MLVBPMBU.js → chunk-S75MFZDE.js} +2 -2
- package/dist/chunks/{chunk-MLVBPMBU.js.map → chunk-S75MFZDE.js.map} +2 -2
- package/dist/chunks/{chunk-KPP5H27W.js → chunk-SFYSQ52W.js} +2 -2
- package/dist/chunks/{chunk-4AAW5P6N.js → chunk-U5PIXAF2.js} +2 -2
- package/dist/chunks/{chunk-4AAW5P6N.js.map → chunk-U5PIXAF2.js.map} +1 -1
- package/dist/chunks/{chunk-XLSVRKFJ.js → chunk-WJGCVNGH.js} +2 -2
- package/dist/chunks/{chunk-JXOLZ5IZ.js → chunk-WY5W5X62.js} +2 -2
- package/dist/chunks/{chunk-JXOLZ5IZ.js.map → chunk-WY5W5X62.js.map} +1 -1
- package/dist/chunks/{chunk-4XM5OBD5.js → chunk-ZG2CQXOW.js} +2 -2
- package/dist/chunks/{chunk-4XM5OBD5.js.map → chunk-ZG2CQXOW.js.map} +1 -1
- package/dist/chunks/{renderSvg-IXWB7R54.js → renderSvg-Z7YIXVQ5.js} +2 -2
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +4 -4
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
- package/package.json +2 -2
- package/src/version.ts +1 -1
- package/dist/chunks/chunk-D5PRXUSS.js +0 -2
- package/dist/chunks/chunk-D5PRXUSS.js.map +0 -7
- package/dist/chunks/chunk-QASFRHPG.js +0 -2
- /package/dist/chunks/{GraphGenomeView-52OPGZER.js.map → GraphGenomeView-UCOAMRF7.js.map} +0 -0
- /package/dist/chunks/{GraphTrackSettingsDialog-JHIP2F5N.js.map → GraphTrackSettingsDialog-MR7X75EY.js.map} +0 -0
- /package/dist/chunks/{HighlightColorDialog-S2WPOSDF.js.map → HighlightColorDialog-ZBAZDYIR.js.map} +0 -0
- /package/dist/chunks/{LinearGraphDisplay-EF2GE7X7.js.map → LinearGraphDisplay-AJ5OZN27.js.map} +0 -0
- /package/dist/chunks/{MinigraphBubbleAdapter-XC75BCG3.js.map → MinigraphBubbleAdapter-PEQK5NII.js.map} +0 -0
- /package/dist/chunks/{RgfaTabixAdapter-56X2U424.js.map → RgfaTabixAdapter-Q63YLPK4.js.map} +0 -0
- /package/dist/chunks/{WalkTabixSyntenyAdapter-ECW557IS.js.map → WalkTabixSyntenyAdapter-N5PFI4LS.js.map} +0 -0
- /package/dist/chunks/{chunk-OUHKJSKZ.js.map → chunk-AWGMTI73.js.map} +0 -0
- /package/dist/chunks/{chunk-Z4YNEFPC.js.map → chunk-HI3YK2SO.js.map} +0 -0
- /package/dist/chunks/{chunk-QASFRHPG.js.map → chunk-J3AXN7JQ.js.map} +0 -0
- /package/dist/chunks/{chunk-KPP5H27W.js.map → chunk-SFYSQ52W.js.map} +0 -0
- /package/dist/chunks/{chunk-XLSVRKFJ.js.map → chunk-WJGCVNGH.js.map} +0 -0
- /package/dist/chunks/{renderSvg-IXWB7R54.js.map → renderSvg-Z7YIXVQ5.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{s as Ve}from"./chunk-M2D7NUOY.js";import{b as ze}from"./chunk-
|
|
1
|
+
import{s as Ve}from"./chunk-M2D7NUOY.js";import{b as ze}from"./chunk-AWGMTI73.js";import{a as He}from"./chunk-RCXOOBLX.js";import{a as $e,c as Ye}from"./chunk-TENPGIPX.js";function qe(e){let r=[],t=0,o;for(let n=0,i=e.length;n<i;n++){let a=e.charCodeAt(n);if(a>=48&&a<=57)t=t*10+a-48;else if(a===58)o=t,t=0;else{let f=e[n];f==="M"||f==="="||f==="X"?r.push({own:o===void 0?t:o,mate:t,op:"M"}):f==="I"?r.push({own:0,mate:t,op:f}):(f==="D"||f==="N")&&r.push({own:t,mate:0,op:f}),o=void 0,t=0}}return r}function Ae(e){let r="";for(let{own:t,mate:o,op:n}of qe(e))r+=n==="M"?t===0?`${o}I`:o===0?`${t}D`:`${t}M`:`${n==="I"?o:t}${n}`;return r}var Se=2**28-1;function ve(e,r,t){for(let o=r;o>0;o-=Se)e.push((Math.min(o,Se)<<4|t)>>>0)}function kr(e,r,t){if(r===t)ve(e,r,0);else{let o=Math.ceil(Math.max(r,t)/Se);for(let n=0;n<o;n++){let i=Math.floor(r*(n+1)/o)-Math.floor(r*n/o),a=Math.floor(t*(n+1)/o)-Math.floor(t*n/o);e.push((i<<4|9)>>>0,(a<<4|9)>>>0)}}}function _e(e){let r=[];for(let{own:t,mate:o,op:n}of qe(e))n==="M"?kr(r,t,o):n==="I"?ve(r,o,1):ve(r,t,n==="N"?3:2);return Uint32Array.from(r)}function Gr(e){return e>=48&&e<=57}function Dr(e){return e!==void 0&&/[A-Za-z]/.test(e)}function Ke(e,r){let t=r;for(;t<e.length&&Dr(e[t]);)t++;return t}function Qe(e,r){let t=r,o=0;for(;t<e.length&&Gr(e.charCodeAt(t));)o=o*10+(e.charCodeAt(t)-48),t++;return{value:o,next:t}}function rr(e,r){let t=0;for(;t<e.length;){let o=e[t];if(o===":"){let{value:n,next:i}=Qe(e,t+1);r(":",n,n,t+1,i),t=i}else if(o==="="){let n=Ke(e,t+1),i=n-t-1;r("=",i,i,t+1,n),t=n}else if(o==="*")r("*",1,1,t+1,Math.min(t+3,e.length)),t+=3;else if(o==="+"||o==="-"){let n=Ke(e,t+1),i=n-t-1;r(o,o==="-"?i:0,o==="+"?i:0,t+1,n),t=n}else if(o==="~"){let{value:n,next:i}=Qe(e,t+3),a=Math.min(i+2,e.length);r("~",n,0,t+1,a),t=a}else t++}}function Ce(e,r,t,o){let n=t??Number.NEGATIVE_INFINITY,i=o??Number.POSITIVE_INFINITY,a=0;rr(e,(f,p,s,c,u)=>{if(f==="*")a>=n&&a<i&&r(88,a,1,e[c+1]??"",-1,0,0);else if(f==="+"){if(a>=n&&a<=i){let m=e.slice(c,u);r(73,a,s,m,-1,0,s)}}else(f==="-"||f==="~")&&a<i&&a+p>n&&r(f==="-"?68:78,a,p,"",-1,0,0);a+=p})}function tr(e,r,t,o){let n=0,i=0,a=[],f=t&&r;for(let p=0,s=e.length;p<s;p++){let c=e[p],u=c>>>4,m=c&15;if(m===0||m===7){if(f)for(let l=0;l<u;l++)(r.charCodeAt(i+l)|32)!==(t.charCodeAt(n+l)|32)&&a.push({start:n+l,type:"mismatch",base:r[i+l],altbase:t[n+l],length:1});i+=u,n+=u}else if(m===1)a.push({start:n,type:"insertion",insertlen:u,insertedBases:r?.slice(i,i+u),length:0}),i+=u;else if(m===2)a.push({start:n,type:"deletion",length:u}),n+=u;else if(m===3)a.push({start:n,type:"skip",length:u}),n+=u;else if(m===8){for(let l=0;l<u;l++)a.push({start:n+l,type:"mismatch",base:r?.[i+l]||"X",qual:o?.[i+l],length:1});i+=u,n+=u}else m===5?a.push({start:n,type:"hardclip",cliplen:u,length:1}):m===4&&(a.push({start:n,type:"softclip",cliplen:u,length:1}),i+=u)}return a}function or(e,r,t,o,n){if(!r)return[];let i=[],a=r.length,f=o.length,p=n!==void 0,s=t.length,c=!1;for(let b=0;b<s;b++)if(t[b].type==="skip"){c=!0;break}let u=0,m=0,l=0,y=0,d=0,x=0,g=e.length;for(;x<g;){let b=e.charCodeAt(x);if(b>=48&&b<=57){let v=0;for(;x<g;){let S=e.charCodeAt(x);if(S>=48&&S<=57)v=v*10+(S-48),x++;else break}u+=v}else if(b===94)for(x++;x<g&&e.charCodeAt(x)>=65;)x++,u++;else if(b>=65){let v=e[x];if(x++,c&&s>0)for(let I=d;I<s;I++){let R=t[I];R.type==="skip"&&u>=R.start&&(u+=R.length,d=I+1)}let S=l,C=y;for(let I=m;I<a&&C<=u;I++,m=I){let R=r[I],L=R>>>4,A=R&15;A===4||A===1?S+=L:A===2||A===6||A===3?C+=L:A!==5&&(S+=L,C+=L)}l=S,y=C;let F=S-(C-u),q=F<f?o[F]:"X";i.push({start:u,base:q,qual:p?n[F]:void 0,altbase:v,length:1,type:"mismatch"}),u++}else x++}return i}var nr={77:0,73:1,68:2,78:3,83:4,72:5,80:6,61:7,88:8};function ir(e=""){let r=0,t=[];for(let o=0,n=e.length;o<n;o++){let i=e.charCodeAt(o);if(i>=48&&i<=57)r=r*10+(i-48);else{let a=nr[i];t.push(r<<4|a),r=0}}return t}function Te(e=""){let r=0;for(let i=0,a=e.length;i<a;i++){let f=e.charCodeAt(i);(f<48||f>57)&&r++}let t=new Uint32Array(r),o=0,n=0;for(let i=0,a=e.length;i<a;i++){let f=e.charCodeAt(i);f>=48&&f<=57?o=o*10+(f-48):(t[n++]=o<<4|nr[f],o=0)}return t}function J(e,r,t,o,n){let i=ir(e),a=e?tr(i,t,o,n):[];return r&&t?a.concat(or(r,i,a,t,n)):a}var P=class extends $e{get(r){return r==="mismatches"?J(this.walkableCigar):r==="clipLengthAtStartOfRead"?this.clipLengthAtStartOfRead:r==="name"?super.get("name")??this.mate?.refName:super.get(r)}get mate(){return super.get("mate")}get walkableCigar(){let r=super.get("CIGAR"),t=super.get("coarseCigar");return typeof r=="string"?r:typeof t=="string"?Ae(t):void 0}get clipLengthAtStartOfRead(){return this.mate?.start??0}forEachMismatch(r,t){let o=this.get("start"),n=t?.start===void 0?void 0:t.start-o,i=t?.end===void 0?void 0:t.end-o,a=this.get("cs");if(a)Ce(a,r,n,i);else{let f=n??Number.NEGATIVE_INFINITY,p=i??Number.POSITIVE_INFINITY;for(let s of J(this.walkableCigar))(s.type==="deletion"||s.type==="skip"?s.start<p&&s.start+s.length>f:s.start>=f&&s.start<=p)&&(s.type==="mismatch"?r(88,s.start,s.length,s.base,s.qual??-1,0,0):s.type==="insertion"?r(73,s.start,s.length,s.insertedBases??"",-1,0,s.insertlen):s.type==="deletion"?r(68,s.start,s.length,"",-1,0,0):s.type==="skip"&&r(78,s.start,s.length,"",-1,0,0))}}};var we=function(e,r){return we=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,o){t.__proto__=o}||function(t,o){for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])},we(e,r)};function H(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");we(e,r);function t(){this.constructor=e}e.prototype=r===null?Object.create(r):(t.prototype=r.prototype,new t)}function ar(e,r,t,o){function n(i){return i instanceof t?i:new t(function(a){a(i)})}return new(t||(t=Promise))(function(i,a){function f(c){try{s(o.next(c))}catch(u){a(u)}}function p(c){try{s(o.throw(c))}catch(u){a(u)}}function s(c){c.done?i(c.value):n(c.value).then(f,p)}s((o=o.apply(e,r||[])).next())})}function ee(e,r){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},o,n,i,a=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return a.next=f(0),a.throw=f(1),a.return=f(2),typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function f(s){return function(c){return p([s,c])}}function p(s){if(o)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(t=0)),t;)try{if(o=1,n&&(i=s[0]&2?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[s[0]&2,i.value]),s[0]){case 0:case 1:i=s;break;case 4:return t.label++,{value:s[1],done:!1};case 5:t.label++,n=s[1],s=[0];continue;case 7:s=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(s[0]===6||s[0]===2)){t=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]<i[3])){t.label=s[1];break}if(s[0]===6&&t.label<i[1]){t.label=i[1],i=s;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(s);break}i[2]&&t.ops.pop(),t.trys.pop();continue}s=r.call(e,t)}catch(c){s=[6,c],n=0}finally{o=i=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}function N(e){var r=typeof Symbol=="function"&&Symbol.iterator,t=r&&e[r],o=0;if(t)return t.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function D(e,r){var t=typeof Symbol=="function"&&e[Symbol.iterator];if(!t)return e;var o=t.call(e),n,i=[],a;try{for(;(r===void 0||r-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(f){a={error:f}}finally{try{n&&!n.done&&(t=o.return)&&t.call(o)}finally{if(a)throw a.error}}return i}function j(e,r,t){if(t||arguments.length===2)for(var o=0,n=r.length,i;o<n;o++)(i||!(o in r))&&(i||(i=Array.prototype.slice.call(r,0,o)),i[o]=r[o]);return e.concat(i||Array.prototype.slice.call(r))}function k(e){return this instanceof k?(this.v=e,this):new k(e)}function sr(e,r,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=t.apply(e,r||[]),n,i=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),f("next"),f("throw"),f("return",a),n[Symbol.asyncIterator]=function(){return this},n;function a(l){return function(y){return Promise.resolve(y).then(l,u)}}function f(l,y){o[l]&&(n[l]=function(d){return new Promise(function(x,g){i.push([l,d,x,g])>1||p(l,d)})},y&&(n[l]=y(n[l])))}function p(l,y){try{s(o[l](y))}catch(d){m(i[0][3],d)}}function s(l){l.value instanceof k?Promise.resolve(l.value.v).then(c,u):m(i[0][2],l)}function c(l){p("next",l)}function u(l){p("throw",l)}function m(l,y){l(y),i.shift(),i.length&&p(i[0][0],i[0][1])}}function fr(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=e[Symbol.asyncIterator],t;return r?r.call(e):(e=typeof N=="function"?N(e):e[Symbol.iterator](),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(i){t[i]=e[i]&&function(a){return new Promise(function(f,p){a=e[i](a),n(f,p,a.done,a.value)})}}function n(i,a,f,p){Promise.resolve(p).then(function(s){i({value:s,done:f})},a)}}function h(e){return typeof e=="function"}function pr(e){var r=function(o){Error.call(o),o.stack=new Error().stack},t=e(r);return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var re=pr(function(e){return function(t){e(this),this.message=t?t.length+` errors occurred during unsubscription:
|
|
2
2
|
`+t.map(function(o,n){return n+1+") "+o.toString()}).join(`
|
|
3
3
|
`):"",this.name="UnsubscriptionError",this.errors=t}});function Oe(e,r){if(e){var t=e.indexOf(r);0<=t&&e.splice(t,1)}}var te=(function(){function e(r){this.initialTeardown=r,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var r,t,o,n,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var f=N(a),p=f.next();!p.done;p=f.next()){var s=p.value;s.remove(this)}}catch(d){r={error:d}}finally{try{p&&!p.done&&(t=f.return)&&t.call(f)}finally{if(r)throw r.error}}else a.remove(this);var c=this.initialTeardown;if(h(c))try{c()}catch(d){i=d instanceof re?d.errors:[d]}var u=this._finalizers;if(u){this._finalizers=null;try{for(var m=N(u),l=m.next();!l.done;l=m.next()){var y=l.value;try{cr(y)}catch(d){i=i??[],d instanceof re?i=j(j([],D(i)),D(d.errors)):i.push(d)}}}catch(d){o={error:d}}finally{try{l&&!l.done&&(n=m.return)&&n.call(m)}finally{if(o)throw o.error}}}if(i)throw new re(i)}},e.prototype.add=function(r){var t;if(r&&r!==this)if(this.closed)cr(r);else{if(r instanceof e){if(r.closed||r._hasParent(this))return;r._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(r)}},e.prototype._hasParent=function(r){var t=this._parentage;return t===r||Array.isArray(t)&&t.includes(r)},e.prototype._addParent=function(r){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(r),t):t?[t,r]:r},e.prototype._removeParent=function(r){var t=this._parentage;t===r?this._parentage=null:Array.isArray(t)&&Oe(t,r)},e.prototype.remove=function(r){var t=this._finalizers;t&&Oe(t,r),r instanceof e&&r._removeParent(this)},e.EMPTY=(function(){var r=new e;return r.closed=!0,r})(),e})();var Zt=te.EMPTY;function oe(e){return e instanceof te||e&&"closed"in e&&h(e.remove)&&h(e.add)&&h(e.unsubscribe)}function cr(e){h(e)?e():e.unsubscribe()}var w={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var U={setTimeout:function(e,r){for(var t=[],o=2;o<arguments.length;o++)t[o-2]=arguments[o];var n=U.delegate;return n?.setTimeout?n.setTimeout.apply(n,j([e,r],D(t))):setTimeout.apply(void 0,j([e,r],D(t)))},clearTimeout:function(e){var r=U.delegate;return(r?.clearTimeout||clearTimeout)(e)},delegate:void 0};function ne(e){U.setTimeout(function(){var r=w.onUnhandledError;if(r)r(e);else throw e})}function Re(){}var ur=(function(){return Me("C",void 0,void 0)})();function lr(e){return Me("E",void 0,e)}function mr(e){return Me("N",e,void 0)}function Me(e,r,t){return{kind:e,value:r,error:t}}var G=null;function dr(e){if(w.useDeprecatedSynchronousErrorHandling){var r=!G;if(r&&(G={errorThrown:!1,error:null}),e(),r){var t=G,o=t.errorThrown,n=t.error;if(G=null,o)throw n}}else e()}function xr(e){w.useDeprecatedSynchronousErrorHandling&&G&&(G.errorThrown=!0,G.error=e)}var z=(function(e){H(r,e);function r(t){var o=e.call(this)||this;return o.isStopped=!1,t?(o.destination=t,oe(t)&&t.add(o)):o.destination=Yr,o}return r.create=function(t,o,n){return new ae(t,o,n)},r.prototype.next=function(t){this.isStopped?Le(mr(t),this):this._next(t)},r.prototype.error=function(t){this.isStopped?Le(lr(t),this):(this.isStopped=!0,this._error(t))},r.prototype.complete=function(){this.isStopped?Le(ur,this):(this.isStopped=!0,this._complete())},r.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},r.prototype._next=function(t){this.destination.next(t)},r.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},r.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},r})(te);var Br=Function.prototype.bind;function Fe(e,r){return Br.call(e,r)}var Wr=(function(){function e(r){this.partialObserver=r}return e.prototype.next=function(r){var t=this.partialObserver;if(t.next)try{t.next(r)}catch(o){ie(o)}},e.prototype.error=function(r){var t=this.partialObserver;if(t.error)try{t.error(r)}catch(o){ie(o)}else ie(r)},e.prototype.complete=function(){var r=this.partialObserver;if(r.complete)try{r.complete()}catch(t){ie(t)}},e})(),ae=(function(e){H(r,e);function r(t,o,n){var i=e.call(this)||this,a;if(h(t)||!t)a={next:t??void 0,error:o??void 0,complete:n??void 0};else{var f;i&&w.useDeprecatedNextContext?(f=Object.create(t),f.unsubscribe=function(){return i.unsubscribe()},a={next:t.next&&Fe(t.next,f),error:t.error&&Fe(t.error,f),complete:t.complete&&Fe(t.complete,f)}):a=t}return i.destination=new Wr(a),i}return r})(z);function ie(e){w.useDeprecatedSynchronousErrorHandling?xr(e):ne(e)}function $r(e){throw e}function Le(e,r){var t=w.onStoppedNotification;t&&U.setTimeout(function(){return t(e,r)})}var Yr={closed:!0,next:Re,error:$r,complete:Re};var B=(function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"})();function hr(e){return e}function yr(e){return e.length===0?hr:e.length===1?e[0]:function(t){return e.reduce(function(o,n){return n(o)},t)}}var _=(function(){function e(r){r&&(this._subscribe=r)}return e.prototype.lift=function(r){var t=new e;return t.source=this,t.operator=r,t},e.prototype.subscribe=function(r,t,o){var n=this,i=zr(r)?r:new ae(r,t,o);return dr(function(){var a=n,f=a.operator,p=a.source;i.add(f?f.call(i,p):p?n._subscribe(i):n._trySubscribe(i))}),i},e.prototype._trySubscribe=function(r){try{return this._subscribe(r)}catch(t){r.error(t)}},e.prototype.forEach=function(r,t){var o=this;return t=gr(t),new t(function(n,i){var a=new ae({next:function(f){try{r(f)}catch(p){i(p),a.unsubscribe()}},error:i,complete:n});o.subscribe(a)})},e.prototype._subscribe=function(r){var t;return(t=this.source)===null||t===void 0?void 0:t.subscribe(r)},e.prototype[B]=function(){return this},e.prototype.pipe=function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return yr(r)(this)},e.prototype.toPromise=function(r){var t=this;return r=gr(r),new r(function(o,n){var i;t.subscribe(function(a){return i=a},function(a){return n(a)},function(){return o(i)})})},e.create=function(r){return new e(r)},e})();function gr(e){var r;return(r=e??w.Promise)!==null&&r!==void 0?r:Promise}function Hr(e){return e&&h(e.next)&&h(e.error)&&h(e.complete)}function zr(e){return e&&e instanceof z||Hr(e)&&oe(e)}function Vr(e){return h(e?.lift)}function E(e){return function(r){if(Vr(r))return r.lift(function(t){try{return e(t,this)}catch(o){this.error(o)}});throw new TypeError("Unable to lift unknown Observable type")}}function M(e,r,t,o,n){return new qr(e,r,t,o,n)}var qr=(function(e){H(r,e);function r(t,o,n,i,a,f){var p=e.call(this,t)||this;return p.onFinalize=a,p.shouldUnsubscribe=f,p._next=o?function(s){try{o(s)}catch(c){t.error(c)}}:e.prototype._next,p._error=i?function(s){try{i(s)}catch(c){t.error(c)}finally{this.unsubscribe()}}:e.prototype._error,p._complete=n?function(){try{n()}catch(s){t.error(s)}finally{this.unsubscribe()}}:e.prototype._complete,p}return r.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var o=this.closed;e.prototype.unsubscribe.call(this),!o&&((t=this.onFinalize)===null||t===void 0||t.call(this))}},r})(z);var se=(function(e){return e&&typeof e.length=="number"&&typeof e!="function"});function fe(e){return h(e?.then)}function pe(e){return h(e[B])}function ce(e){return Symbol.asyncIterator&&h(e?.[Symbol.asyncIterator])}function ue(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Kr(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var le=Kr();function me(e){return h(e?.[le])}function de(e){return sr(this,arguments,function(){var t,o,n,i;return ee(this,function(a){switch(a.label){case 0:t=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,k(t.read())];case 3:return o=a.sent(),n=o.value,i=o.done,i?[4,k(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,k(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function xe(e){return h(e?.getReader)}function O(e){if(e instanceof _)return e;if(e!=null){if(pe(e))return Qr(e);if(se(e))return Xr(e);if(fe(e))return Zr(e);if(ce(e))return br(e);if(me(e))return Jr(e);if(xe(e))return et(e)}throw ue(e)}function Qr(e){return new _(function(r){var t=e[B]();if(h(t.subscribe))return t.subscribe(r);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Xr(e){return new _(function(r){for(var t=0;t<e.length&&!r.closed;t++)r.next(e[t]);r.complete()})}function Zr(e){return new _(function(r){e.then(function(t){r.closed||(r.next(t),r.complete())},function(t){return r.error(t)}).then(null,ne)})}function Jr(e){return new _(function(r){var t,o;try{for(var n=N(e),i=n.next();!i.done;i=n.next()){var a=i.value;if(r.next(a),r.closed)return}}catch(f){t={error:f}}finally{try{i&&!i.done&&(o=n.return)&&o.call(n)}finally{if(t)throw t.error}}r.complete()})}function br(e){return new _(function(r){rt(e,r).catch(function(t){return r.error(t)})})}function et(e){return br(de(e))}function rt(e,r){var t,o,n,i;return ar(this,void 0,void 0,function(){var a,f;return ee(this,function(p){switch(p.label){case 0:p.trys.push([0,5,6,11]),t=fr(e),p.label=1;case 1:return[4,t.next()];case 2:if(o=p.sent(),!!o.done)return[3,4];if(a=o.value,r.next(a),r.closed)return[2];p.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return f=p.sent(),n={error:f},[3,11];case 6:return p.trys.push([6,,9,10]),o&&!o.done&&(i=t.return)?[4,i.call(t)]:[3,8];case 7:p.sent(),p.label=8;case 8:return[3,10];case 9:if(n)throw n.error;return[7];case 10:return[7];case 11:return r.complete(),[2]}})})}function T(e,r,t,o,n){o===void 0&&(o=0),n===void 0&&(n=!1);var i=r.schedule(function(){t(),n?e.add(this.schedule(null,o)):this.unsubscribe()},o);if(e.add(i),!n)return i}function he(e,r){return r===void 0&&(r=0),E(function(t,o){t.subscribe(M(o,function(n){return T(o,e,function(){return o.next(n)},r)},function(){return T(o,e,function(){return o.complete()},r)},function(n){return T(o,e,function(){return o.error(n)},r)}))})}function ye(e,r){return r===void 0&&(r=0),E(function(t,o){o.add(e.schedule(function(){return t.subscribe(o)},r))})}function Sr(e,r){return O(e).pipe(ye(r),he(r))}function vr(e,r){return O(e).pipe(ye(r),he(r))}function Ar(e,r){return new _(function(t){var o=0;return r.schedule(function(){o===e.length?t.complete():(t.next(e[o++]),t.closed||this.schedule())})})}function _r(e,r){return new _(function(t){var o;return T(t,r,function(){o=e[le](),T(t,r,function(){var n,i,a;try{n=o.next(),i=n.value,a=n.done}catch(f){t.error(f);return}a?t.complete():t.next(i)},0,!0)}),function(){return h(o?.return)&&o.return()}})}function ge(e,r){if(!e)throw new Error("Iterable cannot be null");return new _(function(t){T(t,r,function(){var o=e[Symbol.asyncIterator]();T(t,r,function(){o.next().then(function(n){n.done?t.complete():t.next(n.value)})},0,!0)})})}function Cr(e,r){return ge(de(e),r)}function Ir(e,r){if(e!=null){if(pe(e))return Sr(e,r);if(se(e))return Ar(e,r);if(fe(e))return vr(e,r);if(ce(e))return ge(e,r);if(me(e))return _r(e,r);if(xe(e))return Cr(e,r)}throw ue(e)}function Pe(e,r){return r?Ir(e,r):O(e)}function V(e,r){return E(function(t,o){var n=0;t.subscribe(M(o,function(i){o.next(e.call(r,i,n++))}))})}function Er(e,r,t,o,n,i,a,f){var p=[],s=0,c=0,u=!1,m=function(){u&&!p.length&&!s&&r.complete()},l=function(d){return s<o?y(d):p.push(d)},y=function(d){i&&r.next(d),s++;var x=!1;O(t(d,c++)).subscribe(M(r,function(g){n?.(g),i?l(g):r.next(g)},function(){x=!0},void 0,function(){if(x)try{s--;for(var g=function(){var b=p.shift();a?T(r,a,function(){return y(b)}):y(b)};p.length&&s<o;)g();m()}catch(b){r.error(b)}}))};return e.subscribe(M(r,l,function(){u=!0,m()})),function(){f?.()}}function W(e,r,t){return t===void 0&&(t=1/0),h(r)?W(function(o,n){return V(function(i,a){return r(o,i,n,a)})(O(e(o,n)))},t):(typeof r=="number"&&(t=r),E(function(o,n){return Er(o,n,e,t)}))}function Tr(e,r,t,o,n){return function(i,a){var f=t,p=r,s=0;i.subscribe(M(a,function(c){var u=s++;p=f?e(p,c,u):(f=!0,c),o&&a.next(p)},n&&(function(){f&&a.next(p),a.complete()})))}}function wr(e,r){return E(Tr(e,r,arguments.length>=2,!1,!0))}var tt=function(e,r){return e.push(r),e};function be(){return E(function(e,r){wr(tt,[])(e).subscribe(r)})}var ot=397,nt=387,it=385;function Or(e){return(1<<e&ot)!==0}function Rr(e){return(1<<e&nt)!==0}function Mr(e){return(1<<e&it)!==0}function Ne(e,r,t,o,n,i,a){let f=n===-1?-1:1,p=r,s=n===-1?o:t,c=[],u=1/0,m=-1/0,l=1/0,y=-1/0,d=(x,g)=>{l=Math.min(l,x,g),y=Math.max(y,x,g)};for(let x=0;x<e.length;x++){let g=e[x],b=g>>>4,v=g&15,S=v===9,C=S||Or(v)?b:0,F=S?e[++x]>>>4:Rr(v)?b:0,q=p+C,I=s+F*f,R=p,L=q;if(L>=i&&R<=a)if(C>0){let A=Math.max(R,i),$=Math.min(L,a);if($>A)if(u=Math.min(u,A),m=Math.max(m,$),S){let je=F/b,Ue=$-A,Be=Math.round(Ue*je),We=Math.round(s+(A-p)*je*f);c.push(Ue<<4|9,Be<<4|9),d(We,We+Be*f)}else c.push($-A<<4|v),Mr(v)?d(s+(A-p)*f,s+($-p)*f):d(s,s)}else F>0&&(S?c.push(g,e[x]):c.push(g),u=Math.min(u,p),m=Math.max(m,p),d(s,I));if(p=q,s=I,p>a)break}if(c.length!==0)return{start:u,end:m,mateStart:l,mateEnd:y,cigar:Uint32Array.from(c)}}function at(e){return e===1||e===2||e===3}function ke(e,r,t,o,n,i){let a=n===-1?-1:1,f=[],p=r,s=n===-1?o:t,c,u=!1,m=()=>{c!==void 0&&u&&c.qHi>c.qLo&&f.push({start:c.qLo,end:c.qHi,mateStart:c.tLo,mateEnd:c.tHi,cigar:Uint32Array.from(c.ops)}),c=void 0,u=!1};for(let l=0;l<e.length;l++){let y=e[l],d=y>>>4,x=y&15,g=x===9,b=g?e[++l]:void 0,v=g||Or(x)?d:0,S=b!==void 0?b>>>4:Rr(x)?d:0,C=s+S*a;at(x)&&d>=i?m():(v>0||S>0)&&(c===void 0&&(c={qLo:p,qHi:p,tLo:s,tHi:s,ops:[]}),c.qHi=p+v,c.tLo=Math.min(c.tLo,s,C),c.tHi=Math.max(c.tHi,s,C),c.ops.push(y),b!==void 0&&c.ops.push(b),u=u||g||Mr(x)),p+=v,s=C}return m(),f}function Fr(e){let r=e.get("CIGAR");return typeof r=="string"?r:void 0}function Lr(e){let r=e.get("coarseCigar");return typeof r=="string"?r:void 0}function Ge(e){let r=Fr(e),t=r===void 0?Lr(e):void 0;return r!==void 0?Te(r):t!==void 0?_e(t):void 0}var st=["CIGAR","cs","coarseCigar","cg","cr"];function ft(e){return typeof e=="object"&&e!==null&&"refName"in e&&"start"in e&&"end"in e&&typeof e.refName=="string"&&typeof e.start=="number"&&typeof e.end=="number"}function pt(e){let r=e.get("mate");return ft(r)?r:void 0}function ct(e,r,t,o){let n=Math.max(e.start,o.start),i=Math.min(e.end,o.end),a=(r.end-r.start)/Math.max(e.end-e.start,1),f=c=>t===-1?r.end-(c-e.start)*a:r.start+(c-e.start)*a,p=Math.round(f(n)),s=Math.round(f(i));return i>n?{start:n,end:i,mateStart:Math.min(p,s),mateEnd:Math.max(p,s)}:void 0}function ut(e,r,t,o,n){let i={start:e.get("start"),end:e.get("end")},a=e.get("strand")===-1?-1:1,f=i.start>=t.start&&i.end<=t.end,p=f&&o===void 0&&!n?void 0:Ge(e);if(p===void 0){let s=f?{...i,mateStart:r.start,mateEnd:r.end}:ct(i,r,a,t);return s===void 0?[]:[s]}else return(o===void 0?[{...i,mateStart:r.start,mateEnd:r.end,cigar:p}]:ke(p,i.start,r.start,r.end,a,o)).flatMap(c=>{let u=Ne(c.cigar,c.start,c.mateStart,c.mateEnd,a,t.start,t.end);return u===void 0?[]:[u]})}function lt(e,r,t,o,n,i){let a=`:${o.start}-${o.end}${n}`,f=e.toJSON(),p={...f,uniqueId:`${e.id()}${a}`,recordId:f.recordId??e.id(),start:t.start,end:t.end,mate:{...r,start:t.mateStart,end:t.mateEnd}};f.syntenyId!==void 0&&(p.syntenyId=`${String(f.syntenyId)}${a}`);for(let s of st)delete p[s];return i&&t.cigar&&(p.alignmentOps=t.cigar),new P(p)}function Pr(e,r,t,o=!1){let n=pt(e);if(n===void 0)return[e];{let i=ut(e,n,r,t,o);return i.map((a,f)=>lt(e,n,a,r,i.length>1?`/${f}`:"",o))}}var Nr=class extends ze{constructor(){super(...arguments);this.recordsAreAlignments=!0}static{this.capabilities=["getFeatures","getRefNames"]}async hasDataForRefName(){return!0}getFeaturesInMultipleRegions(t,o={}){let{clipToRegion:n,splitAtGapBp:i,keepAlignment:a,...f}=o,p=n&&this.recordsAreAlignments,s=Ye(f.statusCallback);return Pe(t).pipe(W((c,u)=>this.getFeatures(c,{...f,statusCallback:s()}).pipe(W(m=>p?Pr(m,m.get("assemblyName")===c.assemblyName?c:{start:m.get("start"),end:m.get("end")},i,a):[m]),be(),V(m=>({index:u,features:m})))),be(),W(c=>c.sort((u,m)=>u.index-m.index).flatMap(u=>u.features)))}};var De=class extends Error{constructor(t){super(`a pair query names both lanes: queryAssemblyName ${t} came without a targetAssemblyName`);this.name="PairTargetError"}};function Xi(e){let{lanePairs:r,queryAssemblyName:t,targetAssemblyName:o}=e;if(r?.length)return r;if(t===void 0)return[];if(o===void 0)throw new De(t);return[{queryAssemblyName:t,targetAssemblyName:o}]}function Zi(e){let[r]=e;return e.length===1&&r?`Reading ${r.queryAssemblyName} against ${r.targetAssemblyName}`:`Reading ${e.length} lane pairs`}function Ji(e,r){return e[r]??e[He(r)]??r}function mt(e,r){let t=Math.max(1,r);return e>=10*t?Math.ceil(e/t):Math.max(11,Math.ceil(10*e/t))/10}function ta(e,r){if(Ve(e)&&e instanceof Error){let{fitsBp:t}=e;e.message=e.message.replace("to see the graph","to see lanes"),typeof t=="number"&&(e.message=e.message.replace(/^Zoom in to about [\d.,]*\d[KM]?bp/,`Zoom in about ${mt(r,t)}\xD7`))}return e}function ia({target:e,query:r,strand:t,cigar:o,matches:n,columns:i}){let a=`${e.name}:${e.start}-${e.end}|${r.name}:${r.start}-${r.end}`;return new P({uniqueId:a,assemblyName:e.assemblyName,refName:e.refName,start:e.start,end:e.end,type:"match",strand:t==="-"?-1:1,CIGAR:o,syntenyId:a,identity:n/Math.max(i,1),numMatches:n,blockLen:i,mate:{refName:r.refName,start:r.start,end:r.end,assemblyName:r.assemblyName}})}export{P as a,Nr as b,De as c,Xi as d,Zi as e,Ji as f,ta as g,ia as h};
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
4
|
+
//# sourceMappingURL=chunk-HI3YK2SO.js.map
|
|
@@ -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-
|
|
2
|
+
//# sourceMappingURL=chunk-JSRGX4TC.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.
|
|
3
|
+
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/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"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as I,b as L,f as S,h as w}from"./chunk-
|
|
1
|
+
import{a as I,b as L,f as S,h as w}from"./chunk-MEMUEG5Z.js";import{p as T}from"./chunk-U5PIXAF2.js";var O=62,Z=60,G=9,k=48,z=57,_=/^(?:LN:i|SN:Z|SO:i|SR:i):/,q=/^[PEOUFG]\t/,C=e=>e.endsWith("\r")?e.slice(0,-1):e;function P(){return{nodes:new T(new Int32Array(65536)),reversed:new T(new Uint8Array(65536))}}var R=class{constructor(){this.names=[],this.byName=new Map,this.byNumber=new Map}has(e){return this.byName.has(e)}add(e){let s=this.names.length;this.byName.set(e,s),this.names.push(e);let t=+e;return Number.isSafeInteger(t)&&String(t)===e&&this.byNumber.set(t,s),s}of(e){return this.byName.get(e)??this.add(e)}ofNumber(e){return this.byNumber.get(e)}};function U(e){let[,s,t="*",...r]=e.split(" ");if(!s||/^\d+$/.test(t))return;let i=t==="*"?0:t.length,n,f,o;for(let c of r){if(!_.test(c))return;let a=c.slice(5),p=c.slice(0,2);p==="LN"?i=+a:p==="SN"?n=a:p==="SO"?f=+a:o=+a}return{name:s,length:i,stable:n!==void 0&&f!==void 0&&o!==void 0?{refName:n,start:f,rank:o}:void 0}}function $(e,s,t,r){let i=0,n=-1,f=0,o=!0,d=a=>{if(n>=0&&a>n){let p=o&&a-n<16&&(a-n===1||e.charCodeAt(n)!==k)?t.ofNumber(f):void 0;r.nodes.push(p??t.of(e.slice(n,a))),r.reversed.push(i)}},c=s;for(;c<e.length;c++){let a=e.charCodeAt(c);if(a===O||a===Z)d(c),i=a===Z?1:0,n=c+1,f=0,o=!0;else{if(a===G)break;o&&a>=k&&a<=z?f=f*10+a-k:o=!1}}return d(c),c}function x(e){let s=[],t=0;for(;s.length<6;){let d=e.indexOf(" ",t);if(d===-1)return;s.push(e.slice(t,d)),t=d+1}let[,r,i,n,f,o]=s;return r&&i&&n&&f&&o&&t<e.length?{sample:r,haplotype:i,contig:n,start:f,end:o,body:t}:void 0}function K(e){let s=e.split(`
|
|
2
2
|
`),t=new R,r=[],i=[],n=[],f=[],o=[],d=new Map;for(let u of s){if(q.test(u))return;if(u.startsWith("S ")){let l=U(C(u));if(!l||t.has(l.name))return;t.add(l.name),r.push(l.length);let h=-1;l.stable&&(h=d.get(l.stable.refName)??o.length,h===o.length&&(o.push(l.stable.refName),d.set(l.stable.refName,h))),i.push(h),n.push(l.stable?.start??0),f.push(l.stable?.rank??0)}}let c=[],a=[],p=[],v=[],E=[],W=[],y=[0],g=P(),A=new w,N=new w;for(let u of s)if(u.startsWith("L ")){let[,l,h,b,m]=C(u).split(" ");l&&b&&m&&(c.push(t.of(l)),a.push(t.of(b)),p.push((h==="-"?1:0)|(m==="-"?2:0)))}else if(u.startsWith("W ")){let l=C(u),h=x(l);if(h){v.push(`${h.sample}#${h.haplotype}#${h.contig}`),E.push(h.start==="*"?0:+h.start),W.push(h.end==="*"?-1:+h.end);let b=$(l,h.body,t,g),m=F(l,b);if(m===void 0||(m.before&&A.push(m.before),m.after&&N.push(m.after),g.nodes.length===y.at(-1)))return;y.push(g.nodes.length)}}if(![A.kinds.length,N.kinds.length].some(u=>u>0&&u<v.length))return{nodes:{names:t.names,lengths:Int32Array.from(r),refs:Int32Array.from(i),starts:Float64Array.from(n),ranks:Int32Array.from(f),refNames:o},links:{from:Int32Array.from(c),to:Int32Array.from(a),strands:Uint8Array.from(p)},walks:{names:v,starts:Float64Array.from(E),ends:Float64Array.from(W),offsets:Int32Array.from(y),steps:g.nodes.data.slice(0,g.nodes.length),reversed:g.reversed.data.slice(0,g.reversed.length),...B(v.length,A,N)}}}function F(e,s){let t={};for(let r of s<e.length?e.slice(s+1).split(" "):[]){let i=r.slice(5);if(r.startsWith(`${I}:Z:`)){if(t.before=S(i),!t.before)return}else if(r.startsWith(`${L}:Z:`)&&(t.after=S(i),!t.after))return}return t}function B(e,s,t){return{...s.kinds.length===e&&e>0?{before:s.table()}:{},...t.kinds.length===e&&e>0?{after:t.table()}:{}}}var D=/([><])([^><]+)/g;function M(e){if(!e.startsWith(">")&&!e.startsWith("<"))return;let s=[];for(let[,t,r]of e.matchAll(D))s.push({name:r,strand:t===">"?"+":"-"});return s}function Q(e){let s=e.trimEnd(),t=s.split(" ");if(t.length<12||s.startsWith("#"))return;let r=M(t[5]);if(!r)return;let i,n=!1;for(let f=12;f<t.length;f++){let o=t[f];o.startsWith("cs:Z:")?i=o.slice(5):o==="tp:A:S"&&(n=!0)}return{name:t[0],queryLength:+t[1],queryStart:+t[2],queryEnd:+t[3],strand:t[4]==="-"?"-":"+",path:r,pathLength:+t[6],pathStart:+t[7],pathEnd:+t[8],matches:+t[9],blockLength:+t[10],mappingQuality:+t[11],secondary:n,...i===void 0?{}:{cs:i}}}function Y(e){let s=[];for(let t of e.split(`
|
|
3
3
|
`)){let r=Q(t);r&&s.push(r)}return s}var j=/:(\d+)|=([A-Za-z]+)|\*[a-zA-Z]([a-zA-Z])|\+([A-Za-z]+)|-([A-Za-z]+)|~[a-z]{2}(\d+)[a-z]{2}/g;function tt(e){let s=[];for(let t of e.matchAll(j))t[1]!==void 0?s.push({op:"match",length:+t[1]}):t[2]!==void 0?s.push({op:"match",length:t[2].length}):t[3]!==void 0?s.push({op:"substitution",seq:t[3].toUpperCase()}):t[4]!==void 0?s.push({op:"insertion",seq:t[4].toUpperCase()}):t[5]!==void 0?s.push({op:"deletion",length:t[5].length}):t[6]!==void 0&&s.push({op:"match",length:+t[6]});return s}export{K as a,Q as b,Y as c,tt as d};
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
4
|
+
//# sourceMappingURL=chunk-LFTZNUXB.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.
|
|
3
|
+
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-VSSIYQYF.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-5OJZV6YT.js"],
|
|
4
4
|
"sourcesContent": ["import {\n END_STOP_TAG,\n START_STOP_TAG,\n StopColumns,\n parseStopTag\n} from \"./chunk-LG2UK4MB.js\";\nimport {\n Column\n} from \"./chunk-ZPZ7GNBT.js\";\n\n// src/gfa/gfaTables.ts\nvar GT = 62;\nvar LT = 60;\nvar TAB = 9;\nvar ZERO = 48;\nvar NINE = 57;\nvar TABLE_TAG = /^(?:LN:i|SN:Z|SO:i|SR:i):/;\nvar UNTABLED_RECORD = /^[PEOUFG]\\t/;\nvar trimCR = (line) => line.endsWith(\"\\r\") ? line.slice(0, -1) : line;\nfunction stepColumns() {\n return {\n nodes: new Column(new Int32Array(1 << 16)),\n reversed: new Column(new Uint8Array(1 << 16))\n };\n}\nvar SegmentIndex = class {\n constructor() {\n this.names = [];\n this.byName = /* @__PURE__ */ new Map();\n // ids that are plain decimal, so a walk step finds its segment without\n // slicing a string out of the body\n this.byNumber = /* @__PURE__ */ new Map();\n }\n has(name) {\n return this.byName.has(name);\n }\n add(name) {\n const i = this.names.length;\n this.byName.set(name, i);\n this.names.push(name);\n const n = +name;\n if (Number.isSafeInteger(n) && String(n) === name) {\n this.byNumber.set(n, i);\n }\n return i;\n }\n of(name) {\n return this.byName.get(name) ?? this.add(name);\n }\n ofNumber(n) {\n return this.byNumber.get(n);\n }\n};\nfunction readSegment(line) {\n const [, name, sequence = \"*\", ...tags] = line.split(\"\t\");\n if (!name || /^\\d+$/.test(sequence)) {\n return void 0;\n }\n let length = sequence === \"*\" ? 0 : sequence.length;\n let refName;\n let start;\n let rank;\n for (const tag of tags) {\n if (!TABLE_TAG.test(tag)) {\n return void 0;\n }\n const value = tag.slice(5);\n const key = tag.slice(0, 2);\n if (key === \"LN\") {\n length = +value;\n } else if (key === \"SN\") {\n refName = value;\n } else if (key === \"SO\") {\n start = +value;\n } else {\n rank = +value;\n }\n }\n const stable = refName !== void 0 && start !== void 0 && rank !== void 0 ? { refName, start, rank } : void 0;\n return { name, length, stable };\n}\nfunction readWalkBody(line, from, segments, steps) {\n let reversed = 0;\n let start = -1;\n let value = 0;\n let decimal = true;\n const finish = (end) => {\n if (start >= 0 && end > start) {\n const node = decimal && end - start < 16 && (end - start === 1 || line.charCodeAt(start) !== ZERO) ? segments.ofNumber(value) : void 0;\n steps.nodes.push(node ?? segments.of(line.slice(start, end)));\n steps.reversed.push(reversed);\n }\n };\n let i = from;\n for (; i < line.length; i++) {\n const ch = line.charCodeAt(i);\n if (ch === GT || ch === LT) {\n finish(i);\n reversed = ch === LT ? 1 : 0;\n start = i + 1;\n value = 0;\n decimal = true;\n } else if (ch === TAB) {\n break;\n } else if (decimal && ch >= ZERO && ch <= NINE) {\n value = value * 10 + ch - ZERO;\n } else {\n decimal = false;\n }\n }\n finish(i);\n return i;\n}\nfunction walkFields(line) {\n const fields = [];\n let at = 0;\n while (fields.length < 6) {\n const tab = line.indexOf(\"\t\", at);\n if (tab === -1) {\n return void 0;\n }\n fields.push(line.slice(at, tab));\n at = tab + 1;\n }\n const [, sample, haplotype, contig, start, end] = fields;\n return sample && haplotype && contig && start && end && at < line.length ? { sample, haplotype, contig, start, end, body: at } : void 0;\n}\nfunction gfaTables(text) {\n const lines = text.split(\"\\n\");\n const segments = new SegmentIndex();\n const lengths = [];\n const refs = [];\n const starts = [];\n const ranks = [];\n const refNames = [];\n const refIndex = /* @__PURE__ */ new Map();\n for (const raw of lines) {\n if (UNTABLED_RECORD.test(raw)) {\n return void 0;\n }\n if (raw.startsWith(\"S\t\")) {\n const s = readSegment(trimCR(raw));\n if (!s || segments.has(s.name)) {\n return void 0;\n }\n segments.add(s.name);\n lengths.push(s.length);\n let ref = -1;\n if (s.stable) {\n ref = refIndex.get(s.stable.refName) ?? refNames.length;\n if (ref === refNames.length) {\n refNames.push(s.stable.refName);\n refIndex.set(s.stable.refName, ref);\n }\n }\n refs.push(ref);\n starts.push(s.stable?.start ?? 0);\n ranks.push(s.stable?.rank ?? 0);\n }\n }\n const from = [];\n const to = [];\n const strands = [];\n const names = [];\n const walkStarts = [];\n const walkEnds = [];\n const offsets = [0];\n const steps = stepColumns();\n const before = new StopColumns();\n const after = new StopColumns();\n for (const raw of lines) {\n if (raw.startsWith(\"L\t\")) {\n const [, source, strand1, target, strand2] = trimCR(raw).split(\"\t\");\n if (source && target && strand2) {\n from.push(segments.of(source));\n to.push(segments.of(target));\n strands.push((strand1 === \"-\" ? 1 : 0) | (strand2 === \"-\" ? 2 : 0));\n }\n } else if (raw.startsWith(\"W\t\")) {\n const line = trimCR(raw);\n const w = walkFields(line);\n if (w) {\n names.push(`${w.sample}#${w.haplotype}#${w.contig}`);\n walkStarts.push(w.start === \"*\" ? 0 : +w.start);\n walkEnds.push(w.end === \"*\" ? -1 : +w.end);\n const end = readWalkBody(line, w.body, segments, steps);\n const tags = walkTags(line, end);\n if (tags === void 0) {\n return void 0;\n }\n if (tags.before) {\n before.push(tags.before);\n }\n if (tags.after) {\n after.push(tags.after);\n }\n if (steps.nodes.length === offsets.at(-1)) {\n return void 0;\n }\n offsets.push(steps.nodes.length);\n }\n }\n }\n if ([before.kinds.length, after.kinds.length].some(\n (n) => n > 0 && n < names.length\n )) {\n return void 0;\n }\n return {\n nodes: {\n names: segments.names,\n lengths: Int32Array.from(lengths),\n refs: Int32Array.from(refs),\n starts: Float64Array.from(starts),\n ranks: Int32Array.from(ranks),\n refNames\n },\n links: {\n from: Int32Array.from(from),\n to: Int32Array.from(to),\n strands: Uint8Array.from(strands)\n },\n walks: {\n names,\n starts: Float64Array.from(walkStarts),\n ends: Float64Array.from(walkEnds),\n offsets: Int32Array.from(offsets),\n steps: steps.nodes.data.slice(0, steps.nodes.length),\n reversed: steps.reversed.data.slice(0, steps.reversed.length),\n ...stopColumns(names.length, before, after)\n }\n };\n}\nfunction walkTags(line, from) {\n const out = {};\n for (const tag of from < line.length ? line.slice(from + 1).split(\"\t\") : []) {\n const value = tag.slice(5);\n if (tag.startsWith(`${START_STOP_TAG}:Z:`)) {\n out.before = parseStopTag(value);\n if (!out.before) {\n return void 0;\n }\n } else if (tag.startsWith(`${END_STOP_TAG}:Z:`)) {\n out.after = parseStopTag(value);\n if (!out.after) {\n return void 0;\n }\n }\n }\n return out;\n}\nfunction stopColumns(walks, before, after) {\n return {\n ...before.kinds.length === walks && walks > 0 ? { before: before.table() } : {},\n ...after.kinds.length === walks && walks > 0 ? { after: after.table() } : {}\n };\n}\n\nexport {\n gfaTables\n};\n", "// src/gaf/parseGaf.ts\nvar STEP = /([><])([^><]+)/g;\nfunction parseGafPath(column) {\n if (!column.startsWith(\">\") && !column.startsWith(\"<\")) {\n return void 0;\n }\n const steps = [];\n for (const [, arrow, name] of column.matchAll(STEP)) {\n steps.push({ name, strand: arrow === \">\" ? \"+\" : \"-\" });\n }\n return steps;\n}\nfunction parseGafLine(text) {\n const line = text.trimEnd();\n const columns = line.split(\"\t\");\n if (columns.length < 12 || line.startsWith(\"#\")) {\n return void 0;\n }\n const path = parseGafPath(columns[5]);\n if (!path) {\n return void 0;\n }\n let cs;\n let secondary = false;\n for (let i = 12; i < columns.length; i++) {\n const tag = columns[i];\n if (tag.startsWith(\"cs:Z:\")) {\n cs = tag.slice(5);\n } else if (tag === \"tp:A:S\") {\n secondary = true;\n }\n }\n return {\n name: columns[0],\n queryLength: +columns[1],\n queryStart: +columns[2],\n queryEnd: +columns[3],\n strand: columns[4] === \"-\" ? \"-\" : \"+\",\n path,\n pathLength: +columns[6],\n pathStart: +columns[7],\n pathEnd: +columns[8],\n matches: +columns[9],\n blockLength: +columns[10],\n mappingQuality: +columns[11],\n secondary,\n ...cs === void 0 ? {} : { cs }\n };\n}\nfunction parseGaf(text) {\n const records = [];\n for (const line of text.split(\"\\n\")) {\n const record = parseGafLine(line);\n if (record) {\n records.push(record);\n }\n }\n return records;\n}\nvar CS_OP = /:(\\d+)|=([A-Za-z]+)|\\*[a-zA-Z]([a-zA-Z])|\\+([A-Za-z]+)|-([A-Za-z]+)|~[a-z]{2}(\\d+)[a-z]{2}/g;\nfunction parseCs(cs) {\n const ops = [];\n for (const m of cs.matchAll(CS_OP)) {\n if (m[1] !== void 0) {\n ops.push({ op: \"match\", length: +m[1] });\n } else if (m[2] !== void 0) {\n ops.push({ op: \"match\", length: m[2].length });\n } else if (m[3] !== void 0) {\n ops.push({ op: \"substitution\", seq: m[3].toUpperCase() });\n } else if (m[4] !== void 0) {\n ops.push({ op: \"insertion\", seq: m[4].toUpperCase() });\n } else if (m[5] !== void 0) {\n ops.push({ op: \"deletion\", length: m[5].length });\n } else if (m[6] !== void 0) {\n ops.push({ op: \"match\", length: +m[6] });\n }\n }\n return ops;\n}\n\nexport {\n parseGafPath,\n parseGafLine,\n parseGaf,\n parseCs\n};\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["GT", "LT", "TAB", "ZERO", "NINE", "TABLE_TAG", "UNTABLED_RECORD", "trimCR", "line", "stepColumns", "Column", "SegmentIndex", "name", "i", "n", "readSegment", "sequence", "tags", "length", "refName", "start", "rank", "tag", "value", "key", "readWalkBody", "from", "segments", "steps", "reversed", "decimal", "finish", "end", "node", "ch", "walkFields", "fields", "at", "tab", "sample", "haplotype", "contig", "gfaTables", "text", "lines", "lengths", "refs", "starts", "ranks", "refNames", "refIndex", "raw", "s", "ref", "to", "strands", "names", "walkStarts", "walkEnds", "offsets", "before", "StopColumns", "after", "source", "strand1", "target", "strand2", "w", "walkTags", "stopColumns", "out", "START_STOP_TAG", "parseStopTag", "END_STOP_TAG", "walks", "STEP", "parseGafPath", "column", "steps", "arrow", "name", "parseGafLine", "text", "line", "columns", "path", "cs", "secondary", "i", "tag", "parseGaf", "records", "record", "CS_OP", "parseCs", "ops", "m"]
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as Ct,o as Vt,r as pt}from"./chunk-4AAW5P6N.js";import{a as wt,d as Wt,e as Dt}from"./chunk-VIVPTP5Z.js";var ae="ws",ie="we",Zt=["elsewhere","break","end"],be={missing:"not in the graph",elsewhere:"on nodes filed elsewhere",unknown:"gap, cause unknown",abridged:"abridged: steps not loaded"},ve="outside the extracted subgraph";function Xt(t,e,s){if(!e&&!s)return[{bp:t}];let n=Math.min(e?.trimmed??0,t),r=Math.min(s?.trimmed??0,t-n),i=t-n-r,h=e?.kind==="break"?Math.min(e.bp,i):0;i-=h;let c=s?.kind==="break"?Math.min(s.bp,i):0;i-=c;let o=[e,s].find(k=>k?.kind==="elsewhere");return[{bp:n},{bp:h,cause:"missing"},o?.kind==="elsewhere"?{bp:i,cause:"elsewhere",chunk:o.chunk}:{bp:i,cause:"unknown"},{bp:c,cause:"missing"},{bp:r}].filter(k=>k.bp>0)}function xt(t,e){let s=t.bp[e],n=t.chunkRefs[e];return Kt(t.kindNames[t.kinds[e]],Number.isNaN(s)?void 0:s,t.trimmed[e],n<0?void 0:{refName:t.chunkRefNames[n],start:t.chunkStarts[e]})}function Kt(t,e,s,n){let r=s>0?{trimmed:s}:{};return t==="elsewhere"&&n?{kind:t,chunk:n,...e===void 0?{}:{bp:e},...r}:t==="break"&&e!==void 0?{kind:t,bp:e,...n?{chunk:n}:{},...r}:t==="end"?{kind:t,...r}:void 0}function Ht(t){let[e,...s]=t.split(","),n,r=0,i;for(let h of s)if(h.startsWith("bp="))n=+h.slice(3);else if(h.startsWith("trimmed="))r=+h.slice(8);else if(h.startsWith("chunk=")){let c=h.lastIndexOf(":");i={refName:h.slice(6,c),start:+h.slice(c+1)}}return Kt(e,n,r,i)}function Ft(t,e){return{...t?{before:t}:{},...e?{after:e}:{}}}function ke(t){let e=t[ae],s=t[ie];return Ft(typeof e=="string"?Ht(e):void 0,typeof s=="string"?Ht(s):void 0)}var ye=class{constructor(){this.kinds=[],this.bp=[],this.trimmed=[],this.chunkRefs=[],this.chunkStarts=[],this.chunkRefNames=[],this.refIndex=new Map}push(t){this.kinds.push(Zt.indexOf(t.kind)),this.bp.push("bp"in t&&t.bp!==void 0?t.bp:NaN),this.trimmed.push(t.trimmed??0);let e="chunk"in t?t.chunk:void 0;if(e){let s=this.refIndex.get(e.refName);s===void 0&&(s=this.chunkRefNames.length,this.refIndex.set(e.refName,s),this.chunkRefNames.push(e.refName)),this.chunkRefs.push(s),this.chunkStarts.push(e.start)}else this.chunkRefs.push(-1),this.chunkStarts.push(NaN)}table(){return{kinds:Uint8Array.from(this.kinds),kindNames:[...Zt],bp:Float64Array.from(this.bp),trimmed:Float64Array.from(this.trimmed),chunkRefs:Int32Array.from(this.chunkRefs),chunkStarts:Float64Array.from(this.chunkStarts),chunkRefNames:this.chunkRefNames}}};function fe(t,e,s){return e===0?t:`${t}:${e}-${s}`}function Mt(t,e){let s=t.names[e],n=Dt(s),r=t.starts[e],i=t.abridgedSteps?.[e]??Number.NaN,h=Number.isNaN(i)?{}:{abridged:{steps:i,bp:t.abridgedBp?.[e]??0}};return n?{name:`${n.sample}#${n.haplotype}#${n.contig}`,start:r,...n,...Ft(t.before&&xt(t.before,e),t.after&&xt(t.after,e)),...h}:{name:fe(s,r,t.ends[e]),start:r}}function ce(t,e,s,n){let r=new Int32Array(s+1);for(let o of t)r[o+1]++;for(let o=0;o<s;o++)r[o+1]+=r[o];let i=r.slice(0,s),h=new Int32Array(t.length);t.forEach((o,m)=>{h[i[o]++]=e[m]});let c=new Int32Array(n.length).fill(-1);return Array.from({length:s},(o,m)=>{let k=[];for(let I=r[m];I<r[m+1];I++){let B=h[I];c[B]!==m&&(c[B]=m,k.push(n[B]))}return k})}function Tt({nodes:t,links:e,walks:s},n){let r=new Uint8Array(t.names.length),i=(c,o)=>{r[c]===0&&(r[c]=o?2:1)};for(let c=0;c<e.from.length;c++)i(e.from[c],e.strands[c]&1),i(e.to[c],e.strands[c]&2);let h=s.offsets[s.names.length]??0;for(let c=0;c<h;c++){let o=s.steps[c];i(o,s.reversed[c]),n&&n[o]++}return t.names.map((c,o)=>`${c}${r[o]===2?"-":"+"}`)}function Oe({nodes:t,links:e,walks:s},n="Imported GFA"){let r=t.names.length,i=t.lengths.length,h=[];for(let a=0;a<s.names.length;a++)s.offsets[a+1]>s.offsets[a]&&h.push(a);let c=new Int32Array(r),o=Tt({nodes:t,links:e,walks:s},c),m=[];for(let a=0;a<i;a++){let v=t.refs[a];m.push({id:o[a],name:t.names[a],length:t.lengths[a],depth:Math.max(c[a],1),stable:v<0?void 0:{refName:t.refNames[v],start:t.starts[a],rank:t.ranks[a]},samples:void 0})}let k=[],I=new Array(r),B=(a,v)=>{let u=I[a];if(u){for(let w=0;w<u.length;w+=2)if(u[w]===v)return u[w+1]}},D=(a,v,u)=>{let w=I[a];w?w.push(v,u):I[a]=[v,u]},ot=[],Q=0;for(let a=0;a<e.from.length;a++){let v=e.from[a],u=e.to[a];k.push({from:o[v],to:o[u],fromStrand:e.strands[a]&1?"-":"+",toStrand:e.strands[a]&2?"-":"+"});let w=B(v,u);w===void 0&&(w=Q++,D(v,u,w),D(u,v,w)),ot.push(w)}let T=new Int32Array(r+1);for(let a=0;a<r;a++)T[a+1]=T[a]+(I[a]?.length??0)/2;let at=new Int32Array(T[r]),it=new Int32Array(T[r]);I.forEach((a,v)=>{for(let u=0;u<a.length;u+=2)at[T[v]+u/2]=a[u],it[T[v]+u/2]=a[u+1]});let It=(a,v)=>{for(let u=T[a];u<T[a+1];u++)if(at[u]===v)return it[u];return-1},R=new Map,G=[],V=new Int32Array(s.offsets[s.names.length]??0),ft=new Int32Array(V.length),Y=0,O=new Int32Array(Q).fill(-1),gt=[],U=[],Z=s.offsets[s.names.length]??0,ct=new Int32Array(Z),Nt=new Float64Array(Z),H=new Uint8Array(Z),S=new Int32Array(r).fill(-1),P=[],L=[0],lt=[],tt=new Map,et=[];for(let a of h){let v=Mt(s,a),{start:u,name:w}=v,X=v.sample===void 0?s.names[a]:w,f=R.get(X);f===void 0&&(f=G.length,R.set(X,f),G.push(X),lt.push(wt(X)));let d=tt.get(w);d===void 0&&(d=et.length,tt.set(w,d),et.push(w));let E=lt[f],j=s.offsets[a],x=new Array(s.offsets[a+1]-j),y=u,C=-1;for(let F=j;F<s.offsets[a+1];F++){let $=s.steps[F];x[F-j]=o[$],S[$]===-1&&(S[$]=L.at(-1),L.push(S[$]+c[$]),P.push($));let K=S[$]++;if(ct[K]=f,Nt[K]=y,H[K]=s.reversed[F],y+=$<i?t.lengths[$]:0,C>=0){let q=It(C,$);q>=0&&O[q]!==a&&(O[q]=a,V[Y]=q,ft[Y++]=d)}C=$}gt.push({...v,nodeIds:x}),U.push({name:X,sample:E,start:u,length:y-u})}let Rt=ce(V.subarray(0,Y),ft,Q,et);k.forEach((a,v)=>{let u=Rt[ot[v]];u.length>0&&(a.pathIds=u)});let ht=h.length>0;return{name:n,nodes:m,edges:k,paths:ht?gt:void 0,anchorPaths:ht?U:void 0,pathVisits:ht?new Vt({segments:P.map(a=>t.names[a]),offsets:Int32Array.from(L),path:ct.subarray(0,L.at(-1)),start:Nt.subarray(0,L.at(-1)),reversed:H.subarray(0,L.at(-1)),paths:G,samples:lt}):void 0,anchoredBy:m.some(a=>a.stable)?"tags":void 0}}var Pt=1,zt=2,St=4,Jt=[void 0,"missing","elsewhere","unknown","abridged"],Qt=3,le=t=>Jt.indexOf(t)<<Qt;function Yt(t,e,s){return e!==void 0&&t.includes(e)?e:t.find(n=>s.has(n))??t[0]}function he(t){return Yt((t.paths??[]).map(e=>pt(e.name).name),t.referencePath,new Set(t.nodes.flatMap(e=>e.stable?.rank===0?[e.stable.refName]:[])))}function ue(t){let e=new Map,s=[],n=[],r=m=>{let k=e.get(m);return k===void 0&&(k=s.length,e.set(m,k),s.push(m),n.push(0)),k};for(let m of t.nodes)n[r(m.id)]=m.length;let i=t.paths??[],h=new Int32Array(i.length),c=new Int32Array(i.length),o=[];return i.forEach((m,k)=>{h[k]=o.length;for(let I of m.nodeIds)o.push(r(I));c[k]=o.length}),{heads:i,from:h,to:c,steps:Int32Array.from(o),lengths:Int32Array.from(n),names:s,reference:he(t)}}function de(t,e,s){let{nodes:n,walks:r}=t,i=[];for(let o=0;o<r.names.length;o++)r.offsets[o+1]>r.offsets[o]&&i.push(o);let h=i.map(o=>Mt(r,o)),c=new Set;for(let o=0;o<n.lengths.length;o++)n.refs[o]>=0&&n.ranks[o]===0&&c.add(n.refNames[n.refs[o]]);return{heads:h,from:Int32Array.from(i,o=>r.offsets[o]),to:Int32Array.from(i,o=>r.offsets[o+1]),steps:r.steps,lengths:n.lengths,names:s?Tt(t):n.names,reference:Yt(h.map(o=>pt(o.name).name),e,c)}}function te(t){return t.sample??wt(t.name)}function pe(t){return t.haplotype!==void 0&&t.sample!==void 0?`${t.sample}#${t.haplotype}`:te(t)}var qt=class{constructor(t){this.offsets=[0],this.values=Array.from({length:t},()=>[])}get length(){return this.values[0].length}push(t,e,s,n,r){let i=this.values;i[0].push(t),i[1].push(e),i[2].push(s),i[3].push(n),r!==void 0&&i[4].push(r)}endRow(){this.offsets.push(this.length)}reorder(t,e){let s=new Uint32Array(t.length+1);t.forEach((r,i)=>{s[i+1]=s[i]+this.offsets[r+1]-this.offsets[r]});let n=e.map((r,i)=>{let h=this.values[i],c=r(this.length),o=0;for(let m of t)for(let k=this.offsets[m];k<this.offsets[m+1];k++)c[o++]=h[k];return c});return{offsets:s,columns:n}}},mt=t=>new Float64Array(t);function _e(t,e,s={}){let{heads:n,from:r,to:i,steps:h,lengths:c,names:o,reference:m}="walks"in t?de(t,s.referencePath,s.visits):ue(t),k=c.length,I=f=>f<k?c[f]:0,B=f=>pt(n[f].name).name,D=f=>n[f].start,ot=(f,d)=>(D(f)??0)-(D(d)??0),Q=n.map((f,d)=>d),T=Q.filter(f=>B(f)===m).sort(ot),at=T[0],it=Q.filter(f=>B(f)!==m);if(at===void 0||it.length===0)return;let It=Ct(it,B),R=new Float64Array(o.length).fill(Number.NaN),G=new Float64Array(o.length),V=new Map,ft=!1,Y=!1,O=e&&e.end>e.start?e:void 0;for(let f of T){let d=D(f)??0;for(let E=r[f],j=i[f];E<j;E++){let x=h[E],y=I(x);if(Number.isNaN(R[x]))R[x]=d,G[x]=d+y,O&&(ft||=d+y<=O.start,Y||=d>=O.end);else{let C=V.get(x);C?C.push(d):V.set(x,[R[x],d])}d+=y}}let gt=O===void 0||ft&&Y,U=new qt(5),Z=[],ct=new Map,Nt=f=>{if(!f)return-1;let d=`${f.refName}:${f.start}`,E=ct.get(d);return E===void 0&&(E=Z.length,ct.set(d,E),Z.push(f)),E},H=s.visits?new qt(4):void 0,S=new Int32Array(0),P=new Float64Array(0),L=f=>{let d=n[f[0]],E=[...f].sort(ot),j=E.length-1,x=0;for(let l of E)j+=i[l]-r[l]+(n[l].abridged?1:0),x+=n[l].abridged?.steps??0;j>S.length&&(S=new Int32Array(j*2),P=new Float64Array(j*2));let y=0,C=!1,F,$,K=new Map;for(let l of E){let p=D(l);(p===void 0||F!==void 0&&p<F)&&(C=!0),F!==void 0&&p!==void 0&&p>F&&(K.set(y,Xt(p-F,$===void 0?void 0:n[$].after,n[l].before)),S[y]=-(p-F),P[y++]=F);let b=p??0,A=n[l].abridged;for(let g=r[l],N=i[l];g<N;g++){let M=h[g],_=A?A.bp-(b-(p??0))-I(M):0;_>0&&g===N-1&&g>r[l]&&(K.set(y,[{bp:_,cause:"abridged"}]),S[y]=-_,P[y++]=b,b+=_),S[y]=M,P[y++]=b,b+=I(M)}F=p===void 0?void 0:b,$=l}let q=l=>l>=0&&l<y&&S[l]>=0&&!Number.isNaN(R[S[l]]),$t=l=>{let p=S[l];return P[l]+(p<0?-p:I(p))},ee=(l,p)=>{let b=l>=0?l:p,A=-1;for(let J=1;A<0&&J<y;J++)A=[b-J,b+J].find(q)??-1;if(A<0)return;let g=A>b==R[S[A]]>R[S[b]],N=g===(b===l),M=N?y-1:0,_=q(M);return{stop:{contigEnds:_,shortBp:_?Math.max(0,O.start-G[S[M]],R[S[M]]-O.end):0},lo:N?b+1:0,hi:N?y:b,backward:!g,axisStart:g?N?$t(b):P[0]:N?$t(y-1):P[b]}},bt=0,vt=y,ut=!1,_t=!0,dt=-1,Ut=-1,Ot,jt;if(O&>){let l=-1,p=-1,b=-1/0,A=1/0;for(let g=0;g<y;g++){let N=S[g];N>=0&&!Number.isNaN(R[N])&&(G[N]<=O.start&&G[N]>b&&(b=G[N],l=g),R[N]>=O.end&&R[N]<A&&(A=R[N],p=g))}if(l<0||p<0){_t=!1;let g=l>=0||p>=0?ee(l,p):void 0;g&&({lo:bt,hi:vt,backward:ut,axisStart:Ot,stop:jt}=g)}else bt=Math.min(l,p)+1,vt=Math.max(l,p),ut=l>p,dt=l,Ut=p}let kt=d.contig??Wt(pt(d.name).name),se=C||y===0?void 0:Ot!==void 0?{contig:kt,start:Ot,reversed:ut}:dt<0?{contig:kt,start:P[0],reversed:!1}:dt<Ut?{contig:kt,start:$t(dt),reversed:!1}:{contig:kt,start:P[dt],reversed:!0},st=0,Bt=0,Gt=0,nt=0,W=-1,rt=0,z=Number.NaN,yt=Number.NaN,ne=l=>{let p=V.get(l);if(!p||Number.isNaN(yt))return R[l];let b=I(l),A=p[0],g=1/0;for(let N of p){let M=Math.min(Math.abs(N-yt),Math.abs(N+b-yt));M<g&&(A=N,g=M)}return A},[,Et,re,oe]=U.values;for(let l=bt;l<vt;l++){let p=ut?vt-1-(l-bt):l,b=S[p];if(b<0){let J=K.get(p);for(let At of ut?[...J].reverse():J)U.push(st,At.bp,Number.NaN,St|le(At.cause),Nt(At.chunk)),st+=At.bp;W=U.length-1,rt=St,z=Number.NaN,Gt+=-b,nt=0;continue}let A=I(b),g=ne(b),N=!Number.isNaN(g);H?.push(b,st,A,N?1:0);let M=W>=0&&!Number.isNaN(z),_=N&&M&&nt>=0&&z+(Et[W]??0)===g,Lt=N&&M&&nt<=0&&g+A===z;!N&&W>=0&&!(rt&(Pt|St))?Et[W]+=A:_||Lt?(Et[W]+=A,_||(z=g,re[W]=g,rt|=zt,oe[W]=rt),nt=_?1:-1):(rt=N?Pt:0,z=N?g:Number.NaN,U.push(st,A,z,rt,-1),W=U.length-1,nt=0),st+=A,N?yt=nt<0?g:g+A:Bt+=A}return U.endRow(),H?.endRow(),{name:d.name,label:pe(d),sample:te(d),haplotype:d.haplotype,bp:st,offReferenceBp:Bt,gapBp:Gt,complete:_t,stop:jt,axis:se,...x>0?{abridgedSteps:x}:{}}},lt=L(T),tt=[...It.values()].map((f,d)=>({meta:L(f),row:d+1}));tt.sort((f,d)=>Number(d.meta.complete)-Number(f.meta.complete)||d.meta.bp-f.meta.bp||f.meta.label.localeCompare(d.meta.label));let et=[0,...tt.map(f=>f.row)],{offsets:Rt,columns:ht}=U.reorder(et,[mt,mt,mt,f=>new Uint8Array(f),f=>new Int32Array(f)]),[a,v,u,w,X]=ht;return{origin:O?O.start:D(at)??0,rows:[lt,...tt.map(f=>f.meta)],offsets:Rt,start:a,bp:v,referenceStart:u,flags:w,chunk:X,chunks:Z,visits:H&&me(H,et,o)}}function me(t,e,s){let{offsets:n,columns:r}=t.reorder(e,[m=>new Int32Array(m),mt,mt,m=>new Uint8Array(m)]),[i,h,c,o]=r;return{offsets:n,node:i,start:h,bp:c,onReference:o,names:s}}function ge(t,e){let s=t.flags[e],n={start:t.start[e],bp:t.bp[e],onReference:(s&Pt)!==0};if(s&St){n.gap=!0;let r=Jt[s>>Qt&7];r&&(n.cause=r);let i=t.chunks[t.chunk[e]];i&&(n.chunk=i)}else n.referenceStart=Number.isNaN(t.referenceStart[e])?void 0:t.referenceStart[e];return s&zt&&(n.reversed=!0),n}function Ne(t,e){let s=[];for(let n=t.offsets[e];n<t.offsets[e+1];n++)s.push({node:t.names[t.node[n]],start:t.start[n],bp:t.bp[n],onReference:t.onReference[n]===1});return s}function Ue(t,e){let s=t.rows.map((n,r)=>{let i=[];for(let h=t.offsets[r];h<t.offsets[r+1];h++)i.push(ge(t,h));return{...n,runs:i,visits:t.visits&&Ne(t.visits,r)}});return{origin:t.origin,unit:e,reference:s[0],rows:s.slice(1)}}export{ae as a,ie as b,be as c,ve as d,Xt as e,Ht as f,ke as g,ye as h,Mt as i,Oe as j,he as k,_e as l,Ue as m};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{c as Ct,o as Vt,r as pt}from"./chunk-U5PIXAF2.js";import{a as wt,d as Wt,e as Dt}from"./chunk-RCXOOBLX.js";var ae="ws",ie="we",Zt=["elsewhere","break","end"],be={missing:"not in the graph",elsewhere:"on nodes filed elsewhere",unknown:"gap, cause unknown",abridged:"abridged: steps not loaded"},ve="outside the extracted subgraph";function Xt(t,e,s){if(!e&&!s)return[{bp:t}];let n=Math.min(e?.trimmed??0,t),r=Math.min(s?.trimmed??0,t-n),i=t-n-r,h=e?.kind==="break"?Math.min(e.bp,i):0;i-=h;let c=s?.kind==="break"?Math.min(s.bp,i):0;i-=c;let o=[e,s].find(k=>k?.kind==="elsewhere");return[{bp:n},{bp:h,cause:"missing"},o?.kind==="elsewhere"?{bp:i,cause:"elsewhere",chunk:o.chunk}:{bp:i,cause:"unknown"},{bp:c,cause:"missing"},{bp:r}].filter(k=>k.bp>0)}function xt(t,e){let s=t.bp[e],n=t.chunkRefs[e];return Kt(t.kindNames[t.kinds[e]],Number.isNaN(s)?void 0:s,t.trimmed[e],n<0?void 0:{refName:t.chunkRefNames[n],start:t.chunkStarts[e]})}function Kt(t,e,s,n){let r=s>0?{trimmed:s}:{};return t==="elsewhere"&&n?{kind:t,chunk:n,...e===void 0?{}:{bp:e},...r}:t==="break"&&e!==void 0?{kind:t,bp:e,...n?{chunk:n}:{},...r}:t==="end"?{kind:t,...r}:void 0}function Ht(t){let[e,...s]=t.split(","),n,r=0,i;for(let h of s)if(h.startsWith("bp="))n=+h.slice(3);else if(h.startsWith("trimmed="))r=+h.slice(8);else if(h.startsWith("chunk=")){let c=h.lastIndexOf(":");i={refName:h.slice(6,c),start:+h.slice(c+1)}}return Kt(e,n,r,i)}function Ft(t,e){return{...t?{before:t}:{},...e?{after:e}:{}}}function ke(t){let e=t[ae],s=t[ie];return Ft(typeof e=="string"?Ht(e):void 0,typeof s=="string"?Ht(s):void 0)}var ye=class{constructor(){this.kinds=[],this.bp=[],this.trimmed=[],this.chunkRefs=[],this.chunkStarts=[],this.chunkRefNames=[],this.refIndex=new Map}push(t){this.kinds.push(Zt.indexOf(t.kind)),this.bp.push("bp"in t&&t.bp!==void 0?t.bp:NaN),this.trimmed.push(t.trimmed??0);let e="chunk"in t?t.chunk:void 0;if(e){let s=this.refIndex.get(e.refName);s===void 0&&(s=this.chunkRefNames.length,this.refIndex.set(e.refName,s),this.chunkRefNames.push(e.refName)),this.chunkRefs.push(s),this.chunkStarts.push(e.start)}else this.chunkRefs.push(-1),this.chunkStarts.push(NaN)}table(){return{kinds:Uint8Array.from(this.kinds),kindNames:[...Zt],bp:Float64Array.from(this.bp),trimmed:Float64Array.from(this.trimmed),chunkRefs:Int32Array.from(this.chunkRefs),chunkStarts:Float64Array.from(this.chunkStarts),chunkRefNames:this.chunkRefNames}}};function fe(t,e,s){return e===0?t:`${t}:${e}-${s}`}function Mt(t,e){let s=t.names[e],n=Dt(s),r=t.starts[e],i=t.abridgedSteps?.[e]??Number.NaN,h=Number.isNaN(i)?{}:{abridged:{steps:i,bp:t.abridgedBp?.[e]??0}};return n?{name:`${n.sample}#${n.haplotype}#${n.contig}`,start:r,...n,...Ft(t.before&&xt(t.before,e),t.after&&xt(t.after,e)),...h}:{name:fe(s,r,t.ends[e]),start:r}}function ce(t,e,s,n){let r=new Int32Array(s+1);for(let o of t)r[o+1]++;for(let o=0;o<s;o++)r[o+1]+=r[o];let i=r.slice(0,s),h=new Int32Array(t.length);t.forEach((o,m)=>{h[i[o]++]=e[m]});let c=new Int32Array(n.length).fill(-1);return Array.from({length:s},(o,m)=>{let k=[];for(let I=r[m];I<r[m+1];I++){let B=h[I];c[B]!==m&&(c[B]=m,k.push(n[B]))}return k})}function Tt({nodes:t,links:e,walks:s},n){let r=new Uint8Array(t.names.length),i=(c,o)=>{r[c]===0&&(r[c]=o?2:1)};for(let c=0;c<e.from.length;c++)i(e.from[c],e.strands[c]&1),i(e.to[c],e.strands[c]&2);let h=s.offsets[s.names.length]??0;for(let c=0;c<h;c++){let o=s.steps[c];i(o,s.reversed[c]),n&&n[o]++}return t.names.map((c,o)=>`${c}${r[o]===2?"-":"+"}`)}function Oe({nodes:t,links:e,walks:s},n="Imported GFA"){let r=t.names.length,i=t.lengths.length,h=[];for(let a=0;a<s.names.length;a++)s.offsets[a+1]>s.offsets[a]&&h.push(a);let c=new Int32Array(r),o=Tt({nodes:t,links:e,walks:s},c),m=[];for(let a=0;a<i;a++){let v=t.refs[a];m.push({id:o[a],name:t.names[a],length:t.lengths[a],depth:Math.max(c[a],1),stable:v<0?void 0:{refName:t.refNames[v],start:t.starts[a],rank:t.ranks[a]},samples:void 0})}let k=[],I=new Array(r),B=(a,v)=>{let u=I[a];if(u){for(let w=0;w<u.length;w+=2)if(u[w]===v)return u[w+1]}},D=(a,v,u)=>{let w=I[a];w?w.push(v,u):I[a]=[v,u]},ot=[],Q=0;for(let a=0;a<e.from.length;a++){let v=e.from[a],u=e.to[a];k.push({from:o[v],to:o[u],fromStrand:e.strands[a]&1?"-":"+",toStrand:e.strands[a]&2?"-":"+"});let w=B(v,u);w===void 0&&(w=Q++,D(v,u,w),D(u,v,w)),ot.push(w)}let T=new Int32Array(r+1);for(let a=0;a<r;a++)T[a+1]=T[a]+(I[a]?.length??0)/2;let at=new Int32Array(T[r]),it=new Int32Array(T[r]);I.forEach((a,v)=>{for(let u=0;u<a.length;u+=2)at[T[v]+u/2]=a[u],it[T[v]+u/2]=a[u+1]});let It=(a,v)=>{for(let u=T[a];u<T[a+1];u++)if(at[u]===v)return it[u];return-1},R=new Map,G=[],V=new Int32Array(s.offsets[s.names.length]??0),ft=new Int32Array(V.length),Y=0,O=new Int32Array(Q).fill(-1),gt=[],U=[],Z=s.offsets[s.names.length]??0,ct=new Int32Array(Z),Nt=new Float64Array(Z),H=new Uint8Array(Z),S=new Int32Array(r).fill(-1),P=[],L=[0],lt=[],tt=new Map,et=[];for(let a of h){let v=Mt(s,a),{start:u,name:w}=v,X=v.sample===void 0?s.names[a]:w,f=R.get(X);f===void 0&&(f=G.length,R.set(X,f),G.push(X),lt.push(wt(X)));let d=tt.get(w);d===void 0&&(d=et.length,tt.set(w,d),et.push(w));let E=lt[f],j=s.offsets[a],x=new Array(s.offsets[a+1]-j),y=u,C=-1;for(let F=j;F<s.offsets[a+1];F++){let $=s.steps[F];x[F-j]=o[$],S[$]===-1&&(S[$]=L.at(-1),L.push(S[$]+c[$]),P.push($));let K=S[$]++;if(ct[K]=f,Nt[K]=y,H[K]=s.reversed[F],y+=$<i?t.lengths[$]:0,C>=0){let q=It(C,$);q>=0&&O[q]!==a&&(O[q]=a,V[Y]=q,ft[Y++]=d)}C=$}gt.push({...v,nodeIds:x}),U.push({name:X,sample:E,start:u,length:y-u})}let Rt=ce(V.subarray(0,Y),ft,Q,et);k.forEach((a,v)=>{let u=Rt[ot[v]];u.length>0&&(a.pathIds=u)});let ht=h.length>0;return{name:n,nodes:m,edges:k,paths:ht?gt:void 0,anchorPaths:ht?U:void 0,pathVisits:ht?new Vt({segments:P.map(a=>t.names[a]),offsets:Int32Array.from(L),path:ct.subarray(0,L.at(-1)),start:Nt.subarray(0,L.at(-1)),reversed:H.subarray(0,L.at(-1)),paths:G,samples:lt}):void 0,anchoredBy:m.some(a=>a.stable)?"tags":void 0}}var Pt=1,zt=2,St=4,Jt=[void 0,"missing","elsewhere","unknown","abridged"],Qt=3,le=t=>Jt.indexOf(t)<<Qt;function Yt(t,e,s){return e!==void 0&&t.includes(e)?e:t.find(n=>s.has(n))??t[0]}function he(t){return Yt((t.paths??[]).map(e=>pt(e.name).name),t.referencePath,new Set(t.nodes.flatMap(e=>e.stable?.rank===0?[e.stable.refName]:[])))}function ue(t){let e=new Map,s=[],n=[],r=m=>{let k=e.get(m);return k===void 0&&(k=s.length,e.set(m,k),s.push(m),n.push(0)),k};for(let m of t.nodes)n[r(m.id)]=m.length;let i=t.paths??[],h=new Int32Array(i.length),c=new Int32Array(i.length),o=[];return i.forEach((m,k)=>{h[k]=o.length;for(let I of m.nodeIds)o.push(r(I));c[k]=o.length}),{heads:i,from:h,to:c,steps:Int32Array.from(o),lengths:Int32Array.from(n),names:s,reference:he(t)}}function de(t,e,s){let{nodes:n,walks:r}=t,i=[];for(let o=0;o<r.names.length;o++)r.offsets[o+1]>r.offsets[o]&&i.push(o);let h=i.map(o=>Mt(r,o)),c=new Set;for(let o=0;o<n.lengths.length;o++)n.refs[o]>=0&&n.ranks[o]===0&&c.add(n.refNames[n.refs[o]]);return{heads:h,from:Int32Array.from(i,o=>r.offsets[o]),to:Int32Array.from(i,o=>r.offsets[o+1]),steps:r.steps,lengths:n.lengths,names:s?Tt(t):n.names,reference:Yt(h.map(o=>pt(o.name).name),e,c)}}function te(t){return t.sample??wt(t.name)}function pe(t){return t.haplotype!==void 0&&t.sample!==void 0?`${t.sample}#${t.haplotype}`:te(t)}var qt=class{constructor(t){this.offsets=[0],this.values=Array.from({length:t},()=>[])}get length(){return this.values[0].length}push(t,e,s,n,r){let i=this.values;i[0].push(t),i[1].push(e),i[2].push(s),i[3].push(n),r!==void 0&&i[4].push(r)}endRow(){this.offsets.push(this.length)}reorder(t,e){let s=new Uint32Array(t.length+1);t.forEach((r,i)=>{s[i+1]=s[i]+this.offsets[r+1]-this.offsets[r]});let n=e.map((r,i)=>{let h=this.values[i],c=r(this.length),o=0;for(let m of t)for(let k=this.offsets[m];k<this.offsets[m+1];k++)c[o++]=h[k];return c});return{offsets:s,columns:n}}},mt=t=>new Float64Array(t);function _e(t,e,s={}){let{heads:n,from:r,to:i,steps:h,lengths:c,names:o,reference:m}="walks"in t?de(t,s.referencePath,s.visits):ue(t),k=c.length,I=f=>f<k?c[f]:0,B=f=>pt(n[f].name).name,D=f=>n[f].start,ot=(f,d)=>(D(f)??0)-(D(d)??0),Q=n.map((f,d)=>d),T=Q.filter(f=>B(f)===m).sort(ot),at=T[0],it=Q.filter(f=>B(f)!==m);if(at===void 0||it.length===0)return;let It=Ct(it,B),R=new Float64Array(o.length).fill(Number.NaN),G=new Float64Array(o.length),V=new Map,ft=!1,Y=!1,O=e&&e.end>e.start?e:void 0;for(let f of T){let d=D(f)??0;for(let E=r[f],j=i[f];E<j;E++){let x=h[E],y=I(x);if(Number.isNaN(R[x]))R[x]=d,G[x]=d+y,O&&(ft||=d+y<=O.start,Y||=d>=O.end);else{let C=V.get(x);C?C.push(d):V.set(x,[R[x],d])}d+=y}}let gt=O===void 0||ft&&Y,U=new qt(5),Z=[],ct=new Map,Nt=f=>{if(!f)return-1;let d=`${f.refName}:${f.start}`,E=ct.get(d);return E===void 0&&(E=Z.length,ct.set(d,E),Z.push(f)),E},H=s.visits?new qt(4):void 0,S=new Int32Array(0),P=new Float64Array(0),L=f=>{let d=n[f[0]],E=[...f].sort(ot),j=E.length-1,x=0;for(let l of E)j+=i[l]-r[l]+(n[l].abridged?1:0),x+=n[l].abridged?.steps??0;j>S.length&&(S=new Int32Array(j*2),P=new Float64Array(j*2));let y=0,C=!1,F,$,K=new Map;for(let l of E){let p=D(l);(p===void 0||F!==void 0&&p<F)&&(C=!0),F!==void 0&&p!==void 0&&p>F&&(K.set(y,Xt(p-F,$===void 0?void 0:n[$].after,n[l].before)),S[y]=-(p-F),P[y++]=F);let b=p??0,A=n[l].abridged;for(let g=r[l],N=i[l];g<N;g++){let M=h[g],_=A?A.bp-(b-(p??0))-I(M):0;_>0&&g===N-1&&g>r[l]&&(K.set(y,[{bp:_,cause:"abridged"}]),S[y]=-_,P[y++]=b,b+=_),S[y]=M,P[y++]=b,b+=I(M)}F=p===void 0?void 0:b,$=l}let q=l=>l>=0&&l<y&&S[l]>=0&&!Number.isNaN(R[S[l]]),$t=l=>{let p=S[l];return P[l]+(p<0?-p:I(p))},ee=(l,p)=>{let b=l>=0?l:p,A=-1;for(let J=1;A<0&&J<y;J++)A=[b-J,b+J].find(q)??-1;if(A<0)return;let g=A>b==R[S[A]]>R[S[b]],N=g===(b===l),M=N?y-1:0,_=q(M);return{stop:{contigEnds:_,shortBp:_?Math.max(0,O.start-G[S[M]],R[S[M]]-O.end):0},lo:N?b+1:0,hi:N?y:b,backward:!g,axisStart:g?N?$t(b):P[0]:N?$t(y-1):P[b]}},bt=0,vt=y,ut=!1,_t=!0,dt=-1,Ut=-1,Ot,jt;if(O&>){let l=-1,p=-1,b=-1/0,A=1/0;for(let g=0;g<y;g++){let N=S[g];N>=0&&!Number.isNaN(R[N])&&(G[N]<=O.start&&G[N]>b&&(b=G[N],l=g),R[N]>=O.end&&R[N]<A&&(A=R[N],p=g))}if(l<0||p<0){_t=!1;let g=l>=0||p>=0?ee(l,p):void 0;g&&({lo:bt,hi:vt,backward:ut,axisStart:Ot,stop:jt}=g)}else bt=Math.min(l,p)+1,vt=Math.max(l,p),ut=l>p,dt=l,Ut=p}let kt=d.contig??Wt(pt(d.name).name),se=C||y===0?void 0:Ot!==void 0?{contig:kt,start:Ot,reversed:ut}:dt<0?{contig:kt,start:P[0],reversed:!1}:dt<Ut?{contig:kt,start:$t(dt),reversed:!1}:{contig:kt,start:P[dt],reversed:!0},st=0,Bt=0,Gt=0,nt=0,W=-1,rt=0,z=Number.NaN,yt=Number.NaN,ne=l=>{let p=V.get(l);if(!p||Number.isNaN(yt))return R[l];let b=I(l),A=p[0],g=1/0;for(let N of p){let M=Math.min(Math.abs(N-yt),Math.abs(N+b-yt));M<g&&(A=N,g=M)}return A},[,Et,re,oe]=U.values;for(let l=bt;l<vt;l++){let p=ut?vt-1-(l-bt):l,b=S[p];if(b<0){let J=K.get(p);for(let At of ut?[...J].reverse():J)U.push(st,At.bp,Number.NaN,St|le(At.cause),Nt(At.chunk)),st+=At.bp;W=U.length-1,rt=St,z=Number.NaN,Gt+=-b,nt=0;continue}let A=I(b),g=ne(b),N=!Number.isNaN(g);H?.push(b,st,A,N?1:0);let M=W>=0&&!Number.isNaN(z),_=N&&M&&nt>=0&&z+(Et[W]??0)===g,Lt=N&&M&&nt<=0&&g+A===z;!N&&W>=0&&!(rt&(Pt|St))?Et[W]+=A:_||Lt?(Et[W]+=A,_||(z=g,re[W]=g,rt|=zt,oe[W]=rt),nt=_?1:-1):(rt=N?Pt:0,z=N?g:Number.NaN,U.push(st,A,z,rt,-1),W=U.length-1,nt=0),st+=A,N?yt=nt<0?g:g+A:Bt+=A}return U.endRow(),H?.endRow(),{name:d.name,label:pe(d),sample:te(d),haplotype:d.haplotype,bp:st,offReferenceBp:Bt,gapBp:Gt,complete:_t,stop:jt,axis:se,...x>0?{abridgedSteps:x}:{}}},lt=L(T),tt=[...It.values()].map((f,d)=>({meta:L(f),row:d+1}));tt.sort((f,d)=>Number(d.meta.complete)-Number(f.meta.complete)||d.meta.bp-f.meta.bp||f.meta.label.localeCompare(d.meta.label));let et=[0,...tt.map(f=>f.row)],{offsets:Rt,columns:ht}=U.reorder(et,[mt,mt,mt,f=>new Uint8Array(f),f=>new Int32Array(f)]),[a,v,u,w,X]=ht;return{origin:O?O.start:D(at)??0,rows:[lt,...tt.map(f=>f.meta)],offsets:Rt,start:a,bp:v,referenceStart:u,flags:w,chunk:X,chunks:Z,visits:H&&me(H,et,o)}}function me(t,e,s){let{offsets:n,columns:r}=t.reorder(e,[m=>new Int32Array(m),mt,mt,m=>new Uint8Array(m)]),[i,h,c,o]=r;return{offsets:n,node:i,start:h,bp:c,onReference:o,names:s}}function ge(t,e){let s=t.flags[e],n={start:t.start[e],bp:t.bp[e],onReference:(s&Pt)!==0};if(s&St){n.gap=!0;let r=Jt[s>>Qt&7];r&&(n.cause=r);let i=t.chunks[t.chunk[e]];i&&(n.chunk=i)}else n.referenceStart=Number.isNaN(t.referenceStart[e])?void 0:t.referenceStart[e];return s&zt&&(n.reversed=!0),n}function Ne(t,e){let s=[];for(let n=t.offsets[e];n<t.offsets[e+1];n++)s.push({node:t.names[t.node[n]],start:t.start[n],bp:t.bp[n],onReference:t.onReference[n]===1});return s}function Ue(t,e){let s=t.rows.map((n,r)=>{let i=[];for(let h=t.offsets[r];h<t.offsets[r+1];h++)i.push(ge(t,h));return{...n,runs:i,visits:t.visits&&Ne(t.visits,r)}});return{origin:t.origin,unit:e,reference:s[0],rows:s.slice(1)}}export{ae as a,ie as b,be as c,ve as d,Xt as e,Ht as f,ke as g,ye as h,Mt as i,Oe as j,he as k,_e as l,Ue as m};
|
|
2
|
+
//# sourceMappingURL=chunk-MEMUEG5Z.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.
|
|
3
|
+
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-LG2UK4MB.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-7L7MN2OM.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-G7SG4XMK.js"],
|
|
4
4
|
"sourcesContent": ["// src/gfa/walkStops.ts\nvar START_STOP_TAG = \"ws\";\nvar END_STOP_TAG = \"we\";\nvar STOP_KINDS = [\"elsewhere\", \"break\", \"end\"];\nvar GAP_CAUSE_TEXT = {\n missing: \"not in the graph\",\n elsewhere: \"on nodes filed elsewhere\",\n unknown: \"gap, cause unknown\",\n abridged: \"abridged: steps not loaded\"\n};\nvar OUTSIDE_TEXT = \"outside the extracted subgraph\";\nfunction gapParts(bp, after, before) {\n if (!after && !before) {\n return [{ bp }];\n }\n const left = Math.min(after?.trimmed ?? 0, bp);\n const right = Math.min(before?.trimmed ?? 0, bp - left);\n let rest = bp - left - right;\n const lead = after?.kind === \"break\" ? Math.min(after.bp, rest) : 0;\n rest -= lead;\n const trail = before?.kind === \"break\" ? Math.min(before.bp, rest) : 0;\n rest -= trail;\n const elsewhere = [after, before].find((s) => s?.kind === \"elsewhere\");\n const parts = [\n { bp: left },\n { bp: lead, cause: \"missing\" },\n elsewhere?.kind === \"elsewhere\" ? { bp: rest, cause: \"elsewhere\", chunk: elsewhere.chunk } : { bp: rest, cause: \"unknown\" },\n { bp: trail, cause: \"missing\" },\n { bp: right }\n ];\n return parts.filter((part) => part.bp > 0);\n}\nfunction stopAt(table, i) {\n const bp = table.bp[i];\n const ref = table.chunkRefs[i];\n return stopOf(\n table.kindNames[table.kinds[i]],\n Number.isNaN(bp) ? void 0 : bp,\n table.trimmed[i],\n ref < 0 ? void 0 : { refName: table.chunkRefNames[ref], start: table.chunkStarts[i] }\n );\n}\nfunction stopOf(kind, bp, trimmed, chunk) {\n const cut = trimmed > 0 ? { trimmed } : {};\n if (kind === \"elsewhere\" && chunk) {\n return { kind, chunk, ...bp === void 0 ? {} : { bp }, ...cut };\n }\n if (kind === \"break\" && bp !== void 0) {\n return { kind, bp, ...chunk ? { chunk } : {}, ...cut };\n }\n return kind === \"end\" ? { kind, ...cut } : void 0;\n}\nfunction stopTag(stop) {\n const parts = [stop.kind];\n if (\"bp\" in stop && stop.bp !== void 0) {\n parts.push(`bp=${stop.bp}`);\n }\n if (stop.trimmed) {\n parts.push(`trimmed=${stop.trimmed}`);\n }\n if (\"chunk\" in stop && stop.chunk) {\n parts.push(`chunk=${stop.chunk.refName}:${stop.chunk.start}`);\n }\n return parts.join(\",\");\n}\nfunction parseStopTag(value) {\n const [kind, ...fields] = value.split(\",\");\n let bp;\n let trimmed = 0;\n let chunk;\n for (const field of fields) {\n if (field.startsWith(\"bp=\")) {\n bp = +field.slice(3);\n } else if (field.startsWith(\"trimmed=\")) {\n trimmed = +field.slice(8);\n } else if (field.startsWith(\"chunk=\")) {\n const at = field.lastIndexOf(\":\");\n chunk = { refName: field.slice(6, at), start: +field.slice(at + 1) };\n }\n }\n return stopOf(kind, bp, trimmed, chunk);\n}\nfunction stopFields(before, after) {\n return {\n ...before ? { before } : {},\n ...after ? { after } : {}\n };\n}\nfunction walkStopFields(tags) {\n const before = tags[START_STOP_TAG];\n const after = tags[END_STOP_TAG];\n return stopFields(\n typeof before === \"string\" ? parseStopTag(before) : void 0,\n typeof after === \"string\" ? parseStopTag(after) : void 0\n );\n}\nfunction walkStopTags(walks, p) {\n const tags = [];\n for (const [tag, table] of [\n [START_STOP_TAG, walks.before],\n [END_STOP_TAG, walks.after]\n ]) {\n const stop = table && stopAt(table, p);\n if (stop) {\n tags.push(`\t${tag}:Z:${stopTag(stop)}`);\n }\n }\n return tags.join(\"\");\n}\nvar StopColumns = class {\n constructor() {\n this.kinds = [];\n this.bp = [];\n this.trimmed = [];\n this.chunkRefs = [];\n this.chunkStarts = [];\n this.chunkRefNames = [];\n this.refIndex = /* @__PURE__ */ new Map();\n }\n push(stop) {\n this.kinds.push(STOP_KINDS.indexOf(stop.kind));\n this.bp.push(\"bp\" in stop && stop.bp !== void 0 ? stop.bp : NaN);\n this.trimmed.push(stop.trimmed ?? 0);\n const chunk = \"chunk\" in stop ? stop.chunk : void 0;\n if (chunk) {\n let ref = this.refIndex.get(chunk.refName);\n if (ref === void 0) {\n ref = this.chunkRefNames.length;\n this.refIndex.set(chunk.refName, ref);\n this.chunkRefNames.push(chunk.refName);\n }\n this.chunkRefs.push(ref);\n this.chunkStarts.push(chunk.start);\n } else {\n this.chunkRefs.push(-1);\n this.chunkStarts.push(NaN);\n }\n }\n table() {\n return {\n kinds: Uint8Array.from(this.kinds),\n kindNames: [...STOP_KINDS],\n bp: Float64Array.from(this.bp),\n trimmed: Float64Array.from(this.trimmed),\n chunkRefs: Int32Array.from(this.chunkRefs),\n chunkStarts: Float64Array.from(this.chunkStarts),\n chunkRefNames: this.chunkRefNames\n };\n }\n};\n\nexport {\n START_STOP_TAG,\n END_STOP_TAG,\n GAP_CAUSE_TEXT,\n OUTSIDE_TEXT,\n gapParts,\n stopAt,\n stopTag,\n parseStopTag,\n stopFields,\n walkStopFields,\n walkStopTags,\n StopColumns\n};\n", "import {\n stopAt,\n stopFields,\n walkStopTags\n} from \"./chunk-LG2UK4MB.js\";\nimport {\n PathVisits\n} from \"./chunk-ZPZ7GNBT.js\";\nimport {\n panSNFields,\n panSNSample\n} from \"./chunk-2JL2JVZ2.js\";\n\n// src/gfa/graphTables.ts\nfunction pLineName(name, start, end) {\n return start === 0 ? name : `${name}:${start}-${end}`;\n}\nfunction tablePath(w, p) {\n const walkName = w.names[p];\n const fields = panSNFields(walkName);\n const start = w.starts[p];\n const steps = w.abridgedSteps?.[p] ?? Number.NaN;\n const abridged = Number.isNaN(steps) ? {} : { abridged: { steps, bp: w.abridgedBp?.[p] ?? 0 } };\n return fields ? {\n name: `${fields.sample}#${fields.haplotype}#${fields.contig}`,\n start,\n ...fields,\n ...stopFields(\n w.before && stopAt(w.before, p),\n w.after && stopAt(w.after, p)\n ),\n ...abridged\n } : { name: pLineName(walkName, start, w.ends[p]), start };\n}\nfunction namesByList(lists, names, listCount, pathNames) {\n const starts = new Int32Array(listCount + 1);\n for (const list of lists) {\n starts[list + 1]++;\n }\n for (let i = 0; i < listCount; i++) {\n starts[i + 1] += starts[i];\n }\n const fill = starts.slice(0, listCount);\n const grouped = new Int32Array(lists.length);\n lists.forEach((list, i) => {\n grouped[fill[list]++] = names[i];\n });\n const listed = new Int32Array(pathNames.length).fill(-1);\n return Array.from({ length: listCount }, (_, list) => {\n const out = [];\n for (let i = starts[list]; i < starts[list + 1]; i++) {\n const k = grouped[i];\n if (listed[k] !== list) {\n listed[k] = list;\n out.push(pathNames[k]);\n }\n }\n return out;\n });\n}\nfunction tableNodeIds({ nodes: n, links: l, walks: w }, traversals) {\n const canonical = new Uint8Array(n.names.length);\n const claim = (node, reversed) => {\n if (canonical[node] === 0) {\n canonical[node] = reversed ? 2 : 1;\n }\n };\n for (let i = 0; i < l.from.length; i++) {\n claim(l.from[i], l.strands[i] & 1);\n claim(l.to[i], l.strands[i] & 2);\n }\n const stepCount = w.offsets[w.names.length] ?? 0;\n for (let s = 0; s < stepCount; s++) {\n const node = w.steps[s];\n claim(node, w.reversed[s]);\n if (traversals) {\n traversals[node]++;\n }\n }\n return n.names.map(\n (segment, i) => `${segment}${canonical[i] === 2 ? \"-\" : \"+\"}`\n );\n}\nfunction graphFromTables({ nodes: n, links: l, walks: w }, name = \"Imported GFA\") {\n const count = n.names.length;\n const declared = n.lengths.length;\n const drawnWalks = [];\n for (let p = 0; p < w.names.length; p++) {\n if (w.offsets[p + 1] > w.offsets[p]) {\n drawnWalks.push(p);\n }\n }\n const traversals = new Int32Array(count);\n const ids = tableNodeIds({ nodes: n, links: l, walks: w }, traversals);\n const nodes = [];\n for (let i = 0; i < declared; i++) {\n const ref = n.refs[i];\n nodes.push({\n id: ids[i],\n name: n.names[i],\n length: n.lengths[i],\n depth: Math.max(traversals[i], 1),\n stable: ref < 0 ? void 0 : {\n refName: n.refNames[ref],\n start: n.starts[i],\n rank: n.ranks[i]\n },\n samples: void 0\n });\n }\n const edges = [];\n const neighbours = new Array(count);\n const pairList = (a, b) => {\n const near = neighbours[a];\n if (near) {\n for (let j = 0; j < near.length; j += 2) {\n if (near[j] === b) {\n return near[j + 1];\n }\n }\n }\n return void 0;\n };\n const addPair = (a, b, list) => {\n const near = neighbours[a];\n if (near) {\n near.push(b, list);\n } else {\n neighbours[a] = [b, list];\n }\n };\n const edgeLists = [];\n let lists = 0;\n for (let i = 0; i < l.from.length; i++) {\n const a = l.from[i];\n const b = l.to[i];\n edges.push({\n from: ids[a],\n to: ids[b],\n fromStrand: l.strands[i] & 1 ? \"-\" : \"+\",\n toStrand: l.strands[i] & 2 ? \"-\" : \"+\"\n });\n let list = pairList(a, b);\n if (list === void 0) {\n list = lists++;\n addPair(a, b, list);\n addPair(b, a, list);\n }\n edgeLists.push(list);\n }\n const adjacency = new Int32Array(count + 1);\n for (let a = 0; a < count; a++) {\n adjacency[a + 1] = adjacency[a] + (neighbours[a]?.length ?? 0) / 2;\n }\n const adjacentNode = new Int32Array(adjacency[count]);\n const adjacentList = new Int32Array(adjacency[count]);\n neighbours.forEach((near, a) => {\n for (let j = 0; j < near.length; j += 2) {\n adjacentNode[adjacency[a] + j / 2] = near[j];\n adjacentList[adjacency[a] + j / 2] = near[j + 1];\n }\n });\n const listOf = (a, b) => {\n for (let j = adjacency[a]; j < adjacency[a + 1]; j++) {\n if (adjacentNode[j] === b) {\n return adjacentList[j];\n }\n }\n return -1;\n };\n const nameIndex = /* @__PURE__ */ new Map();\n const pathNames = [];\n const crossedList = new Int32Array(w.offsets[w.names.length] ?? 0);\n const crossedName = new Int32Array(crossedList.length);\n let crossings = 0;\n const lastWalk = new Int32Array(lists).fill(-1);\n const paths = [];\n const anchorPaths = [];\n const totalSteps = w.offsets[w.names.length] ?? 0;\n const visitPath = new Int32Array(totalSteps);\n const visitStart = new Float64Array(totalSteps);\n const visitReversed = new Uint8Array(totalSteps);\n const fill = new Int32Array(count).fill(-1);\n const visitOrder = [];\n const blocks = [0];\n const pathSamples = [];\n const edgeNameIndex = /* @__PURE__ */ new Map();\n const edgeNames = [];\n for (const p of drawnWalks) {\n const head = tablePath(w, p);\n const { start, name: pathName } = head;\n const visitName = head.sample === void 0 ? w.names[p] : pathName;\n let named = nameIndex.get(visitName);\n if (named === void 0) {\n named = pathNames.length;\n nameIndex.set(visitName, named);\n pathNames.push(visitName);\n pathSamples.push(panSNSample(visitName));\n }\n let edgeNamed = edgeNameIndex.get(pathName);\n if (edgeNamed === void 0) {\n edgeNamed = edgeNames.length;\n edgeNameIndex.set(pathName, edgeNamed);\n edgeNames.push(pathName);\n }\n const visitSample = pathSamples[named];\n const first = w.offsets[p];\n const nodeIds = new Array(w.offsets[p + 1] - first);\n let pos = start;\n let prev = -1;\n for (let s = first; s < w.offsets[p + 1]; s++) {\n const node = w.steps[s];\n nodeIds[s - first] = ids[node];\n if (fill[node] === -1) {\n fill[node] = blocks.at(-1);\n blocks.push(fill[node] + traversals[node]);\n visitOrder.push(node);\n }\n const at = fill[node]++;\n visitPath[at] = named;\n visitStart[at] = pos;\n visitReversed[at] = w.reversed[s];\n pos += node < declared ? n.lengths[node] : 0;\n if (prev >= 0) {\n const list = listOf(prev, node);\n if (list >= 0 && lastWalk[list] !== p) {\n lastWalk[list] = p;\n crossedList[crossings] = list;\n crossedName[crossings++] = edgeNamed;\n }\n }\n prev = node;\n }\n paths.push({ ...head, nodeIds });\n anchorPaths.push({\n name: visitName,\n sample: visitSample,\n start,\n length: pos - start\n });\n }\n const listNames = namesByList(\n crossedList.subarray(0, crossings),\n crossedName,\n lists,\n edgeNames\n );\n edges.forEach((edge, i) => {\n const names = listNames[edgeLists[i]];\n if (names.length > 0) {\n edge.pathIds = names;\n }\n });\n const walked = drawnWalks.length > 0;\n return {\n name,\n nodes,\n edges,\n paths: walked ? paths : void 0,\n anchorPaths: walked ? anchorPaths : void 0,\n pathVisits: walked ? new PathVisits({\n segments: visitOrder.map((node) => n.names[node]),\n offsets: Int32Array.from(blocks),\n path: visitPath.subarray(0, blocks.at(-1)),\n start: visitStart.subarray(0, blocks.at(-1)),\n reversed: visitReversed.subarray(0, blocks.at(-1)),\n paths: pathNames,\n samples: pathSamples\n }) : void 0,\n anchoredBy: nodes.some((node) => node.stable) ? \"tags\" : void 0\n };\n}\nfunction graphTablesGFA({ nodes, links, walks }) {\n const { names } = nodes;\n const lines = [\"H\tVN:Z:1.1\"];\n for (let i = 0; i < nodes.lengths.length; i++) {\n const ref = nodes.refs[i];\n const stable = ref < 0 ? \"\" : `\tSN:Z:${nodes.refNames[ref]}\tSO:i:${nodes.starts[i]}\tSR:i:${nodes.ranks[i]}`;\n lines.push(`S\t${names[i]}\t*\tLN:i:${nodes.lengths[i]}${stable}`);\n }\n for (let i = 0; i < links.from.length; i++) {\n const strands = links.strands[i];\n lines.push(\n `L\t${names[links.from[i]]}\t${strands & 1 ? \"-\" : \"+\"}\t${names[links.to[i]]}\t${strands & 2 ? \"-\" : \"+\"}\t0M`\n );\n }\n for (let p = 0; p < walks.names.length; p++) {\n const name = walks.names[p];\n const fields = panSNFields(name);\n const start = walks.starts[p];\n const end = walks.ends[p];\n const steps = [];\n for (let s = walks.offsets[p]; s < walks.offsets[p + 1]; s++) {\n steps.push([names[walks.steps[s]], walks.reversed[s]]);\n }\n lines.push(\n fields ? `W\t${fields.sample}\t${fields.haplotype}\t${fields.contig}\t${start}\t${end}\t${steps.map(([id, rev]) => (rev ? \"<\" : \">\") + id).join(\"\")}${walkStopTags(walks, p)}` : `P\t${pLineName(name, start, end)}\t${steps.map(([id, rev]) => id + (rev ? \"-\" : \"+\")).join(\",\")}\t*`\n );\n }\n return lines.join(\"\\n\");\n}\n\nexport {\n tablePath,\n tableNodeIds,\n graphFromTables,\n graphTablesGFA\n};\n", "import {\n tableNodeIds,\n tablePath\n} from \"./chunk-7L7MN2OM.js\";\nimport {\n gapParts\n} from \"./chunk-LG2UK4MB.js\";\nimport {\n pathOrigin\n} from \"./chunk-3YBP46PB.js\";\nimport {\n groupBy\n} from \"./chunk-BSOZW3FC.js\";\nimport {\n panSNContig,\n panSNSample\n} from \"./chunk-2JL2JVZ2.js\";\n\n// src/layout/walkRowRuns.ts\nvar RUN_ON_REFERENCE = 1;\nvar RUN_REVERSED = 2;\nvar RUN_GAP = 4;\nvar GAP_CAUSES = [\n void 0,\n \"missing\",\n \"elsewhere\",\n \"unknown\",\n \"abridged\"\n];\nvar CAUSE_SHIFT = 3;\nvar causeFlags = (cause) => GAP_CAUSES.indexOf(cause) << CAUSE_SHIFT;\nfunction referenceOf(names, referencePath, rankZero) {\n return referencePath !== void 0 && names.includes(referencePath) ? referencePath : names.find((n) => rankZero.has(n)) ?? names[0];\n}\nfunction referenceWalkName(graph) {\n return referenceOf(\n (graph.paths ?? []).map((p) => pathOrigin(p.name).name),\n graph.referencePath,\n new Set(\n graph.nodes.flatMap(\n (n) => n.stable?.rank === 0 ? [n.stable.refName] : []\n )\n )\n );\n}\nfunction graphPieces(graph) {\n const index = /* @__PURE__ */ new Map();\n const names = [];\n const lengths = [];\n const indexOf = (id) => {\n let i = index.get(id);\n if (i === void 0) {\n i = names.length;\n index.set(id, i);\n names.push(id);\n lengths.push(0);\n }\n return i;\n };\n for (const node of graph.nodes) {\n lengths[indexOf(node.id)] = node.length;\n }\n const heads = graph.paths ?? [];\n const from = new Int32Array(heads.length);\n const to = new Int32Array(heads.length);\n const steps = [];\n heads.forEach((path, p) => {\n from[p] = steps.length;\n for (const id of path.nodeIds) {\n steps.push(indexOf(id));\n }\n to[p] = steps.length;\n });\n return {\n heads,\n from,\n to,\n steps: Int32Array.from(steps),\n lengths: Int32Array.from(lengths),\n names,\n reference: referenceWalkName(graph)\n };\n}\nfunction tablePieces(tables, referencePath, visits) {\n const { nodes: n, walks: w } = tables;\n const kept = [];\n for (let p = 0; p < w.names.length; p++) {\n if (w.offsets[p + 1] > w.offsets[p]) {\n kept.push(p);\n }\n }\n const heads = kept.map((p) => tablePath(w, p));\n const rankZero = /* @__PURE__ */ new Set();\n for (let i = 0; i < n.lengths.length; i++) {\n if (n.refs[i] >= 0 && n.ranks[i] === 0) {\n rankZero.add(n.refNames[n.refs[i]]);\n }\n }\n return {\n heads,\n from: Int32Array.from(kept, (p) => w.offsets[p]),\n to: Int32Array.from(kept, (p) => w.offsets[p + 1]),\n steps: w.steps,\n lengths: n.lengths,\n // a visit names its node as the Graph does, which costs a pass over the\n // steps\n names: visits ? tableNodeIds(tables) : n.names,\n reference: referenceOf(\n heads.map((h) => pathOrigin(h.name).name),\n referencePath,\n rankZero\n )\n };\n}\nfunction sampleOf(path) {\n return path.sample ?? panSNSample(path.name);\n}\nfunction labelOf(path) {\n return path.haplotype !== void 0 && path.sample !== void 0 ? `${path.sample}#${path.haplotype}` : sampleOf(path);\n}\nvar Columns = class {\n constructor(width) {\n this.offsets = [0];\n this.values = Array.from({ length: width }, () => []);\n }\n get length() {\n return this.values[0].length;\n }\n push(a, b, c, d, e) {\n const v = this.values;\n v[0].push(a);\n v[1].push(b);\n v[2].push(c);\n v[3].push(d);\n if (e !== void 0) {\n v[4].push(e);\n }\n }\n endRow() {\n this.offsets.push(this.length);\n }\n // the rows in `order`, column i in the array `make[i]` makes\n reorder(order, make) {\n const offsets = new Uint32Array(order.length + 1);\n order.forEach((row, i) => {\n offsets[i + 1] = offsets[i] + this.offsets[row + 1] - this.offsets[row];\n });\n const columns = make.map((m, c) => {\n const from = this.values[c];\n const out = m(this.length);\n let at = 0;\n for (const row of order) {\n for (let k = this.offsets[row]; k < this.offsets[row + 1]; k++) {\n out[at++] = from[k];\n }\n }\n return out;\n });\n return { offsets, columns };\n }\n};\nvar float64 = (n) => new Float64Array(n);\nfunction walkRowRuns(source, region, o = {}) {\n const {\n heads,\n from,\n to,\n steps: all,\n lengths,\n names,\n reference\n } = \"walks\" in source ? tablePieces(source, o.referencePath, o.visits) : graphPieces(source);\n const declared = lengths.length;\n const lengthOf = (node) => node < declared ? lengths[node] : 0;\n const nameOf = (p) => pathOrigin(heads[p].name).name;\n const startOf = (p) => heads[p].start;\n const byStart = (a, b) => (startOf(a) ?? 0) - (startOf(b) ?? 0);\n const pieceIds = heads.map((_, p) => p);\n const referencePieces = pieceIds.filter((p) => nameOf(p) === reference).sort(byStart);\n const first = referencePieces[0];\n const others = pieceIds.filter((p) => nameOf(p) !== reference);\n if (first === void 0 || others.length === 0) {\n return void 0;\n }\n const walks = groupBy(others, nameOf);\n const spanStart = new Float64Array(names.length).fill(Number.NaN);\n const spanEnd = new Float64Array(names.length);\n const revisits = /* @__PURE__ */ new Map();\n let reachesBefore = false;\n let reachesAfter = false;\n const cut = region && region.end > region.start ? region : void 0;\n for (const piece of referencePieces) {\n let pos = startOf(piece) ?? 0;\n for (let s = from[piece], stop = to[piece]; s < stop; s++) {\n const node = all[s];\n const len = lengthOf(node);\n if (!Number.isNaN(spanStart[node])) {\n const starts = revisits.get(node);\n if (starts) {\n starts.push(pos);\n } else {\n revisits.set(node, [spanStart[node], pos]);\n }\n } else {\n spanStart[node] = pos;\n spanEnd[node] = pos + len;\n if (cut) {\n reachesBefore ||= pos + len <= cut.start;\n reachesAfter ||= pos >= cut.end;\n }\n }\n pos += len;\n }\n }\n const flanked = cut === void 0 || reachesBefore && reachesAfter;\n const runs = new Columns(5);\n const chunks = [];\n const chunkIndex = /* @__PURE__ */ new Map();\n const chunkOf = (chunk2) => {\n if (!chunk2) {\n return -1;\n }\n const key = `${chunk2.refName}:${chunk2.start}`;\n let i = chunkIndex.get(key);\n if (i === void 0) {\n i = chunks.length;\n chunkIndex.set(key, i);\n chunks.push(chunk2);\n }\n return i;\n };\n const visits = o.visits ? new Columns(4) : void 0;\n let steps = new Int32Array(0);\n let stepStart = new Float64Array(0);\n const rowOf = (pieces) => {\n const head = heads[pieces[0]];\n const ordered = [...pieces].sort(byStart);\n let count = ordered.length - 1;\n let abridgedSteps = 0;\n for (const piece of ordered) {\n count += to[piece] - from[piece] + (heads[piece].abridged ? 1 : 0);\n abridgedSteps += heads[piece].abridged?.steps ?? 0;\n }\n if (count > steps.length) {\n steps = new Int32Array(count * 2);\n stepStart = new Float64Array(count * 2);\n }\n let length = 0;\n let unplaced = false;\n let end;\n let previous;\n const partsAt = /* @__PURE__ */ new Map();\n for (const piece of ordered) {\n const start2 = startOf(piece);\n if (start2 === void 0 || end !== void 0 && start2 < end) {\n unplaced = true;\n }\n if (end !== void 0 && start2 !== void 0 && start2 > end) {\n partsAt.set(\n length,\n gapParts(\n start2 - end,\n previous === void 0 ? void 0 : heads[previous].after,\n heads[piece].before\n )\n );\n steps[length] = -(start2 - end);\n stepStart[length++] = end;\n }\n let pos = start2 ?? 0;\n const abridged = heads[piece].abridged;\n for (let s = from[piece], stop2 = to[piece]; s < stop2; s++) {\n const node = all[s];\n const bp3 = abridged ? abridged.bp - (pos - (start2 ?? 0)) - lengthOf(node) : 0;\n if (bp3 > 0 && s === stop2 - 1 && s > from[piece]) {\n partsAt.set(length, [{ bp: bp3, cause: \"abridged\" }]);\n steps[length] = -bp3;\n stepStart[length++] = pos;\n pos += bp3;\n }\n steps[length] = node;\n stepStart[length++] = pos;\n pos += lengthOf(node);\n }\n end = start2 === void 0 ? void 0 : pos;\n previous = piece;\n }\n const onReference = (i) => i >= 0 && i < length && steps[i] >= 0 && !Number.isNaN(spanStart[steps[i]]);\n const stepEnd = (i) => {\n const id = steps[i];\n return stepStart[i] + (id < 0 ? -id : lengthOf(id));\n };\n const partialSide = (i0, i1) => {\n const flank = i0 >= 0 ? i0 : i1;\n let near = -1;\n for (let d = 1; near < 0 && d < length; d++) {\n near = [flank - d, flank + d].find(onReference) ?? -1;\n }\n if (near < 0) {\n return void 0;\n }\n const forward = near > flank === spanStart[steps[near]] > spanStart[steps[flank]];\n const after = forward === (flank === i0);\n const last2 = after ? length - 1 : 0;\n const contigEnds = onReference(last2);\n const stop2 = {\n contigEnds,\n shortBp: contigEnds ? Math.max(\n 0,\n cut.start - spanEnd[steps[last2]],\n spanStart[steps[last2]] - cut.end\n ) : 0\n };\n return {\n stop: stop2,\n lo: after ? flank + 1 : 0,\n hi: after ? length : flank,\n backward: !forward,\n axisStart: forward ? after ? stepEnd(flank) : stepStart[0] : after ? stepEnd(length - 1) : stepStart[flank]\n };\n };\n let lo = 0;\n let hi = length;\n let backward = false;\n let complete = true;\n let flankFrom = -1;\n let flankTo = -1;\n let axisStart;\n let stop;\n if (cut && flanked) {\n let i0 = -1;\n let i1 = -1;\n let bestEnd = -Infinity;\n let bestStart = Infinity;\n for (let i = 0; i < length; i++) {\n const id = steps[i];\n if (id >= 0 && !Number.isNaN(spanStart[id])) {\n if (spanEnd[id] <= cut.start && spanEnd[id] > bestEnd) {\n bestEnd = spanEnd[id];\n i0 = i;\n }\n if (spanStart[id] >= cut.end && spanStart[id] < bestStart) {\n bestStart = spanStart[id];\n i1 = i;\n }\n }\n }\n if (i0 < 0 || i1 < 0) {\n complete = false;\n const inside = i0 >= 0 || i1 >= 0 ? partialSide(i0, i1) : void 0;\n if (inside) {\n ;\n ({ lo, hi, backward, axisStart, stop } = inside);\n }\n } else {\n lo = Math.min(i0, i1) + 1;\n hi = Math.max(i0, i1);\n backward = i0 > i1;\n flankFrom = i0;\n flankTo = i1;\n }\n }\n const contig = head.contig ?? panSNContig(pathOrigin(head.name).name);\n const axis = unplaced || length === 0 ? void 0 : axisStart !== void 0 ? { contig, start: axisStart, reversed: backward } : flankFrom < 0 ? { contig, start: stepStart[0], reversed: false } : flankFrom < flankTo ? { contig, start: stepEnd(flankFrom), reversed: false } : { contig, start: stepStart[flankFrom], reversed: true };\n let bp2 = 0;\n let offReferenceBp = 0;\n let gapBp = 0;\n let step = 0;\n let last = -1;\n let lastFlags = 0;\n let lastRef = Number.NaN;\n let cursor = Number.NaN;\n const placeOf = (id) => {\n const starts = revisits.get(id);\n if (!starts || Number.isNaN(cursor)) {\n return spanStart[id];\n }\n const len = lengthOf(id);\n let best = starts[0];\n let bestGap = Infinity;\n for (const start2 of starts) {\n const gap = Math.min(\n Math.abs(start2 - cursor),\n Math.abs(start2 + len - cursor)\n );\n if (gap < bestGap) {\n best = start2;\n bestGap = gap;\n }\n }\n return best;\n };\n const [, runBp, runRef, runFlags] = runs.values;\n for (let k = lo; k < hi; k++) {\n const index = backward ? hi - 1 - (k - lo) : k;\n const id = steps[index];\n if (id < 0) {\n const parts = partsAt.get(index);\n for (const part of backward ? [...parts].reverse() : parts) {\n runs.push(\n bp2,\n part.bp,\n Number.NaN,\n RUN_GAP | causeFlags(part.cause),\n chunkOf(part.chunk)\n );\n bp2 += part.bp;\n }\n last = runs.length - 1;\n lastFlags = RUN_GAP;\n lastRef = Number.NaN;\n gapBp += -id;\n step = 0;\n continue;\n }\n const len = lengthOf(id);\n const at = placeOf(id);\n const on = !Number.isNaN(at);\n visits?.push(id, bp2, len, on ? 1 : 0);\n const placed = last >= 0 && !Number.isNaN(lastRef);\n const forward = on && placed && step >= 0 && lastRef + (runBp[last] ?? 0) === at;\n const back = on && placed && step <= 0 && at + len === lastRef;\n if (!on && last >= 0 && !(lastFlags & (RUN_ON_REFERENCE | RUN_GAP))) {\n runBp[last] += len;\n } else if (forward || back) {\n runBp[last] += len;\n if (!forward) {\n lastRef = at;\n runRef[last] = at;\n lastFlags |= RUN_REVERSED;\n runFlags[last] = lastFlags;\n }\n step = forward ? 1 : -1;\n } else {\n lastFlags = on ? RUN_ON_REFERENCE : 0;\n lastRef = on ? at : Number.NaN;\n runs.push(bp2, len, lastRef, lastFlags, -1);\n last = runs.length - 1;\n step = 0;\n }\n bp2 += len;\n if (on) {\n cursor = step < 0 ? at : at + len;\n } else {\n offReferenceBp += len;\n }\n }\n runs.endRow();\n visits?.endRow();\n return {\n name: head.name,\n label: labelOf(head),\n sample: sampleOf(head),\n haplotype: head.haplotype,\n bp: bp2,\n offReferenceBp,\n gapBp,\n complete,\n stop,\n axis,\n ...abridgedSteps > 0 ? { abridgedSteps } : {}\n };\n };\n const referenceRow = rowOf(referencePieces);\n const rows = [...walks.values()].map((pieces, i) => ({\n meta: rowOf(pieces),\n row: i + 1\n }));\n rows.sort(\n (a, b) => Number(b.meta.complete) - Number(a.meta.complete) || b.meta.bp - a.meta.bp || a.meta.label.localeCompare(b.meta.label)\n );\n const order = [0, ...rows.map((r) => r.row)];\n const { offsets, columns } = runs.reorder(order, [\n float64,\n float64,\n float64,\n (n) => new Uint8Array(n),\n (n) => new Int32Array(n)\n ]);\n const [start, bp, referenceStart, flags, chunk] = columns;\n return {\n origin: cut ? cut.start : startOf(first) ?? 0,\n rows: [referenceRow, ...rows.map((r) => r.meta)],\n offsets,\n start,\n bp,\n referenceStart,\n flags,\n chunk,\n chunks,\n visits: visits && visitColumns(visits, order, names)\n };\n}\nfunction visitColumns(visits, order, names) {\n const { offsets, columns } = visits.reorder(order, [\n (n) => new Int32Array(n),\n float64,\n float64,\n (n) => new Uint8Array(n)\n ]);\n const [node, start, bp, onReference] = columns;\n return { offsets, node, start, bp, onReference, names };\n}\nfunction runAt(t, k) {\n const f = t.flags[k];\n const run = {\n start: t.start[k],\n bp: t.bp[k],\n onReference: (f & RUN_ON_REFERENCE) !== 0\n };\n if (f & RUN_GAP) {\n run.gap = true;\n const cause = GAP_CAUSES[f >> CAUSE_SHIFT & 7];\n if (cause) {\n run.cause = cause;\n }\n const chunk = t.chunks[t.chunk[k]];\n if (chunk) {\n run.chunk = chunk;\n }\n } else {\n run.referenceStart = Number.isNaN(t.referenceStart[k]) ? void 0 : t.referenceStart[k];\n }\n if (f & RUN_REVERSED) {\n run.reversed = true;\n }\n return run;\n}\nfunction visitsOf(v, row) {\n const out = [];\n for (let k = v.offsets[row]; k < v.offsets[row + 1]; k++) {\n out.push({\n node: v.names[v.node[k]],\n start: v.start[k],\n bp: v.bp[k],\n onReference: v.onReference[k] === 1\n });\n }\n return out;\n}\nfunction walkRowsOf(t, unit) {\n const rows = t.rows.map((meta, i) => {\n const runs = [];\n for (let k = t.offsets[i]; k < t.offsets[i + 1]; k++) {\n runs.push(runAt(t, k));\n }\n return {\n ...meta,\n runs,\n visits: t.visits && visitsOf(t.visits, i)\n };\n });\n return { origin: t.origin, unit, reference: rows[0], rows: rows.slice(1) };\n}\n\nexport {\n referenceWalkName,\n walkRowRuns,\n runAt,\n walkRowsOf\n};\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["START_STOP_TAG", "END_STOP_TAG", "STOP_KINDS", "GAP_CAUSE_TEXT", "OUTSIDE_TEXT", "gapParts", "bp", "after", "before", "left", "right", "rest", "lead", "trail", "elsewhere", "s", "part", "stopAt", "table", "i", "ref", "stopOf", "kind", "trimmed", "chunk", "cut", "parseStopTag", "value", "kind", "fields", "bp", "trimmed", "chunk", "field", "at", "stopOf", "stopFields", "before", "after", "walkStopFields", "tags", "START_STOP_TAG", "END_STOP_TAG", "StopColumns", "stop", "STOP_KINDS", "chunk", "ref", "pLineName", "name", "start", "end", "tablePath", "w", "p", "walkName", "fields", "panSNFields", "steps", "abridged", "stopFields", "stopAt", "namesByList", "lists", "names", "listCount", "pathNames", "starts", "list", "i", "fill", "grouped", "listed", "_", "out", "k", "tableNodeIds", "n", "l", "traversals", "canonical", "claim", "node", "reversed", "stepCount", "s", "segment", "graphFromTables", "count", "declared", "drawnWalks", "ids", "nodes", "ref", "edges", "neighbours", "pairList", "b", "near", "j", "addPair", "edgeLists", "a", "adjacency", "adjacentNode", "adjacentList", "listOf", "nameIndex", "crossedList", "crossedName", "crossings", "lastWalk", "paths", "anchorPaths", "totalSteps", "visitPath", "visitStart", "visitReversed", "visitOrder", "blocks", "pathSamples", "edgeNameIndex", "edgeNames", "head", "pathName", "visitName", "named", "panSNSample", "edgeNamed", "visitSample", "first", "nodeIds", "pos", "prev", "at", "listNames", "edge", "walked", "PathVisits", "RUN_ON_REFERENCE", "RUN_REVERSED", "RUN_GAP", "GAP_CAUSES", "CAUSE_SHIFT", "causeFlags", "cause", "referenceOf", "names", "referencePath", "rankZero", "referenceWalkName", "graph", "p", "pathOrigin", "n", "graphPieces", "index", "lengths", "indexOf", "id", "i", "node", "heads", "from", "to", "steps", "path", "tablePieces", "tables", "visits", "w", "kept", "tablePath", "tableNodeIds", "h", "sampleOf", "panSNSample", "labelOf", "Columns", "width", "a", "b", "c", "d", "e", "v", "order", "make", "offsets", "row", "columns", "m", "out", "at", "float64", "walkRowRuns", "source", "region", "o", "all", "reference", "declared", "lengthOf", "nameOf", "startOf", "byStart", "pieceIds", "_", "referencePieces", "first", "others", "walks", "groupBy", "spanStart", "spanEnd", "revisits", "reachesBefore", "reachesAfter", "cut", "piece", "pos", "s", "stop", "len", "starts", "flanked", "runs", "chunks", "chunkIndex", "chunkOf", "chunk2", "key", "stepStart", "rowOf", "pieces", "head", "ordered", "count", "abridgedSteps", "length", "unplaced", "end", "previous", "partsAt", "start2", "gapParts", "abridged", "stop2", "bp3", "onReference", "stepEnd", "partialSide", "i0", "i1", "flank", "near", "forward", "after", "last2", "contigEnds", "lo", "hi", "backward", "complete", "flankFrom", "flankTo", "axisStart", "bestEnd", "bestStart", "inside", "contig", "panSNContig", "axis", "bp2", "offReferenceBp", "gapBp", "step", "last", "lastFlags", "lastRef", "cursor", "placeOf", "best", "bestGap", "gap", "runBp", "runRef", "runFlags", "k", "parts", "part", "on", "placed", "back", "referenceRow", "rows", "r", "start", "bp", "referenceStart", "flags", "chunk", "visitColumns", "runAt", "f", "run", "visitsOf", "walkRowsOf", "unit", "meta"]
|