jbrowse-plugin-graphgenomeviewer 7.3.2 → 7.4.0
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-3MELVQRM.js → GbzBaseSyntenyAdapter-FZWSXPAE.js} +2 -2
- package/dist/chunks/{GbzBaseSyntenyAdapter-3MELVQRM.js.map → GbzBaseSyntenyAdapter-FZWSXPAE.js.map} +2 -2
- package/dist/chunks/{GraphGenomeView-6EDKLBOJ.js → GraphGenomeView-52OPGZER.js} +2 -2
- package/dist/chunks/{GraphTrackSettingsDialog-KYEZWI4Z.js → GraphTrackSettingsDialog-JHIP2F5N.js} +2 -2
- package/dist/chunks/{HighlightColorDialog-IMLYI64R.js → HighlightColorDialog-S2WPOSDF.js} +2 -2
- package/dist/chunks/{LinearGraphDisplay-CRIZLJDE.js → LinearGraphDisplay-EF2GE7X7.js} +2 -2
- package/dist/chunks/{MinigraphBubbleAdapter-2HPTGZ5N.js → MinigraphBubbleAdapter-XC75BCG3.js} +2 -2
- package/dist/chunks/{RgfaTabixAdapter-GNH3QCPZ.js → RgfaTabixAdapter-56X2U424.js} +2 -2
- package/dist/chunks/{WalkTabixSyntenyAdapter-CUPHY36S.js → WalkTabixSyntenyAdapter-2SCAD6IN.js} +2 -2
- package/dist/chunks/chunk-2BTNRN57.js +2 -0
- package/dist/chunks/chunk-2BTNRN57.js.map +7 -0
- package/dist/chunks/{chunk-MNL7IPTH.js → chunk-2Q4D5RHL.js} +2 -2
- package/dist/chunks/{chunk-MNL7IPTH.js.map → chunk-2Q4D5RHL.js.map} +1 -1
- package/dist/chunks/{chunk-ULLEUORS.js → chunk-4AAW5P6N.js} +2 -2
- package/dist/chunks/{chunk-ULLEUORS.js.map → chunk-4AAW5P6N.js.map} +1 -1
- package/dist/chunks/{chunk-NGR473EL.js → chunk-4XM5OBD5.js} +1 -1
- package/dist/chunks/{chunk-NGR473EL.js.map → chunk-4XM5OBD5.js.map} +1 -1
- package/dist/chunks/chunk-ADZBAET3.js +3 -0
- package/dist/chunks/chunk-ADZBAET3.js.map +7 -0
- package/dist/chunks/{chunk-B5SVBPXN.js → chunk-D5PRXUSS.js} +2 -2
- package/dist/chunks/{chunk-B5SVBPXN.js.map → chunk-D5PRXUSS.js.map} +1 -1
- package/dist/chunks/{chunk-PUFH6DMJ.js → chunk-JXOLZ5IZ.js} +2 -2
- package/dist/chunks/{chunk-PUFH6DMJ.js.map → chunk-JXOLZ5IZ.js.map} +1 -1
- package/dist/chunks/chunk-KPP5H27W.js +2 -0
- package/dist/chunks/chunk-KPP5H27W.js.map +7 -0
- package/dist/chunks/{chunk-Q55PHRHV.js → chunk-LTN6XZR5.js} +1 -1
- package/dist/chunks/{chunk-Q55PHRHV.js.map → chunk-LTN6XZR5.js.map} +1 -1
- package/dist/chunks/{chunk-QQCTNB2Z.js → chunk-MLVBPMBU.js} +2 -2
- package/dist/chunks/{chunk-QQCTNB2Z.js.map → chunk-MLVBPMBU.js.map} +1 -1
- package/dist/chunks/chunk-OUHKJSKZ.js +3 -0
- package/dist/chunks/chunk-OUHKJSKZ.js.map +7 -0
- package/dist/chunks/{chunk-HOSCIP4U.js → chunk-PLTIGGGS.js} +2 -2
- package/dist/chunks/{chunk-HOSCIP4U.js.map → chunk-PLTIGGGS.js.map} +2 -2
- package/dist/chunks/chunk-QASFRHPG.js +2 -0
- package/dist/chunks/{chunk-GN4HSVLB.js → chunk-SI64QXFH.js} +2 -2
- package/dist/chunks/{chunk-GN4HSVLB.js.map → chunk-SI64QXFH.js.map} +2 -2
- package/dist/chunks/{chunk-4EKOQHUX.js → chunk-UW7INEQF.js} +1 -1
- package/dist/chunks/{chunk-4EKOQHUX.js.map → chunk-UW7INEQF.js.map} +1 -1
- package/dist/chunks/{chunk-TQKSF3NI.js → chunk-VIVPTP5Z.js} +1 -1
- package/dist/chunks/{chunk-TQKSF3NI.js.map → chunk-VIVPTP5Z.js.map} +1 -1
- package/dist/chunks/{chunk-6DRBCLWY.js → chunk-XLSVRKFJ.js} +2 -2
- package/dist/chunks/chunk-XLSVRKFJ.js.map +7 -0
- package/dist/chunks/{chunk-CJMBJJLO.js → chunk-XT4U7I3D.js} +3 -3
- package/dist/chunks/{chunk-CJMBJJLO.js.map → chunk-XT4U7I3D.js.map} +4 -4
- package/dist/chunks/chunk-YBZA7LPQ.js +2 -0
- package/dist/chunks/chunk-YBZA7LPQ.js.map +7 -0
- package/dist/chunks/{chunk-IFBKAC2H.js → chunk-Z4YNEFPC.js} +2 -2
- package/dist/chunks/renderSvg-IXWB7R54.js +2 -0
- package/dist/chunks/renderSvg-IXWB7R54.js.map +7 -0
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +4 -4
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
- package/package.json +3 -3
- package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.test.ts +10 -4
- package/src/GbzBaseSyntenyAdapter/companion.test.ts +4 -2
- package/src/GetSubgraph.ts +2 -0
- package/src/GraphGenomeView/components/ElTree.tsx +1 -1
- package/src/GraphGenomeView/components/FacetPanels.tsx +4 -1
- package/src/GraphGenomeView/components/PaneContextMenu.tsx +14 -0
- package/src/GraphGenomeView/components/PaneSvg.tsx +2 -1
- package/src/GraphGenomeView/legendSections.ts +3 -3
- package/src/GraphGenomeView/model.test.ts +19 -21
- package/src/GraphGenomeView/model.ts +3 -0
- package/src/GraphGenomeView/pane/fitViews.ts +2 -2
- package/src/GraphGenomeView/pane/paneBase.ts +2 -0
- package/src/GraphGenomeView/pane/renderingActions.ts +9 -0
- package/src/GraphGenomeView/repeats/walkCalls.test.ts +2 -2
- package/src/GraphGenomeView/subgraphLoad.test.ts +18 -2
- package/src/GraphGenomeView/tubeMapPanels.test.ts +4 -2
- package/src/GraphGenomeView/tubeMapPanels.ts +2 -2
- package/src/RgfaTabixAdapter/configSchema.ts +1 -1
- package/src/RgfaTabixAdapter/test_data/walks4_follow.GRCh38.walks.bed.gz +0 -0
- package/src/RgfaTabixAdapter/test_data/walks4_header.GRCh38.walks.bed.gz +0 -0
- package/src/RgfaTabixAdapter/test_data/walks4_inversion.GRCh38.walks.bed.gz +0 -0
- package/src/RgfaTabixAdapter/test_data/walks4_lanepairs.GRCh38.walks.bed.gz +0 -0
- package/src/RgfaTabixAdapter/test_data/walks4_maxnode.GRCh38.walks.bed.gz +0 -0
- package/src/RgfaTabixAdapter/test_data/walks4_rejoin.GRCh38.walks.bed.gz +0 -0
- package/src/RgfaTabixAdapter/test_data/walks4_twopart.GRCh38.walks.bed.gz +0 -0
- package/src/RgfaTabixAdapter/walkFiles.test.ts +15 -3
- package/src/RgfaTabixAdapter/walkReader.ts +4 -1
- package/src/WalkTabixSyntenyAdapter/configSchema.ts +1 -1
- package/src/WalkTabixSyntenyAdapter/gbzParity.test.ts +2 -3
- package/src/version.ts +1 -1
- package/dist/chunks/chunk-6DRBCLWY.js.map +0 -7
- package/dist/chunks/chunk-F4T7JI7S.js +0 -2
- package/dist/chunks/chunk-F4T7JI7S.js.map +0 -7
- package/dist/chunks/chunk-HTSG4T32.js +0 -3
- package/dist/chunks/chunk-HTSG4T32.js.map +0 -7
- package/dist/chunks/chunk-N5VWQHTK.js +0 -2
- package/dist/chunks/chunk-N5VWQHTK.js.map +0 -7
- package/dist/chunks/chunk-ORHUPW3G.js +0 -3
- package/dist/chunks/chunk-ORHUPW3G.js.map +0 -7
- package/dist/chunks/chunk-R25GOTED.js +0 -2
- package/dist/chunks/chunk-R25GOTED.js.map +0 -7
- package/dist/chunks/chunk-VW4PPXH6.js +0 -2
- package/dist/chunks/renderSvg-HEEQJD5B.js +0 -2
- package/dist/chunks/renderSvg-HEEQJD5B.js.map +0 -7
- /package/dist/chunks/{GraphGenomeView-6EDKLBOJ.js.map → GraphGenomeView-52OPGZER.js.map} +0 -0
- /package/dist/chunks/{GraphTrackSettingsDialog-KYEZWI4Z.js.map → GraphTrackSettingsDialog-JHIP2F5N.js.map} +0 -0
- /package/dist/chunks/{HighlightColorDialog-IMLYI64R.js.map → HighlightColorDialog-S2WPOSDF.js.map} +0 -0
- /package/dist/chunks/{LinearGraphDisplay-CRIZLJDE.js.map → LinearGraphDisplay-EF2GE7X7.js.map} +0 -0
- /package/dist/chunks/{MinigraphBubbleAdapter-2HPTGZ5N.js.map → MinigraphBubbleAdapter-XC75BCG3.js.map} +0 -0
- /package/dist/chunks/{RgfaTabixAdapter-GNH3QCPZ.js.map → RgfaTabixAdapter-56X2U424.js.map} +0 -0
- /package/dist/chunks/{WalkTabixSyntenyAdapter-CUPHY36S.js.map → WalkTabixSyntenyAdapter-2SCAD6IN.js.map} +0 -0
- /package/dist/chunks/{chunk-VW4PPXH6.js.map → chunk-QASFRHPG.js.map} +0 -0
- /package/dist/chunks/{chunk-IFBKAC2H.js.map → chunk-Z4YNEFPC.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as Lt,o as Dt,r as pt}from"./chunk-ULLEUORS.js";import{a as wt,d as Ct,e as Wt}from"./chunk-TQKSF3NI.js";var oe="ws",ae="we",Vt=["elsewhere","break","end"],Ne={missing:"not in the graph",elsewhere:"on nodes filed elsewhere",unknown:"gap, cause unknown"},ve="outside the extracted subgraph";function Ht(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(b=>b?.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(b=>b.bp>0)}function Et(t,e){let s=t.bp[e],n=t.chunkRefs[e];return Xt(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 Xt(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 Zt(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 Xt(e,n,r,i)}function xt(t,e){return{...t?{before:t}:{},...e?{after:e}:{}}}function be(t){let e=t[oe],s=t[ae];return xt(typeof e=="string"?Zt(e):void 0,typeof s=="string"?Zt(s):void 0)}var ke=class{constructor(){this.kinds=[],this.bp=[],this.trimmed=[],this.chunkRefs=[],this.chunkStarts=[],this.chunkRefNames=[],this.refIndex=new Map}push(t){this.kinds.push(Vt.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:[...Vt],bp:Float64Array.from(this.bp),trimmed:Float64Array.from(this.trimmed),chunkRefs:Int32Array.from(this.chunkRefs),chunkStarts:Float64Array.from(this.chunkStarts),chunkRefNames:this.chunkRefNames}}};function ie(t,e,s){return e===0?t:`${t}:${e}-${s}`}function Ft(t,e){let s=t.names[e],n=Wt(s),r=t.starts[e];return n?{name:`${n.sample}#${n.haplotype}#${n.contig}`,start:r,...n,...xt(t.before&&Et(t.before,e),t.after&&Et(t.after,e))}:{name:ie(s,r,t.ends[e]),start:r}}function fe(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,p)=>{h[i[o]++]=e[p]});let c=new Int32Array(n.length).fill(-1);return Array.from({length:s},(o,p)=>{let b=[];for(let I=r[p];I<r[p+1];I++){let U=h[I];c[U]!==p&&(c[U]=p,b.push(n[U]))}return b})}function Mt({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 $e({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=Mt({nodes:t,links:e,walks:s},c),p=[];for(let a=0;a<i;a++){let v=t.refs[a];p.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 b=[],I=new Array(r),U=(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]}},W=(a,v,u)=>{let w=I[a];w?w.push(v,u):I[a]=[v,u]},ot=[],z=0;for(let a=0;a<e.from.length;a++){let v=e.from[a],u=e.to[a];b.push({from:o[v],to:o[u],fromStrand:e.strands[a]&1?"-":"+",toStrand:e.strands[a]&2?"-":"+"});let w=U(v,u);w===void 0&&(w=z++,W(v,u,w),W(u,v,w)),ot.push(w)}let F=new Int32Array(r+1);for(let a=0;a<r;a++)F[a+1]=F[a]+(I[a]?.length??0)/2;let at=new Int32Array(F[r]),it=new Int32Array(F[r]);I.forEach((a,v)=>{for(let u=0;u<a.length;u+=2)at[F[v]+u/2]=a[u],it[F[v]+u/2]=a[u+1]});let It=(a,v)=>{for(let u=F[a];u<F[a+1];u++)if(at[u]===v)return it[u];return-1},R=new Map,j=[],V=new Int32Array(s.offsets[s.names.length]??0),ft=new Int32Array(V.length),J=0,O=new Int32Array(z).fill(-1),gt=[],T=[],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),M=[],B=[0],lt=[],Q=new Map,Y=[];for(let a of h){let v=Ft(s,a),{start:u,name:w}=v,X=v.sample===void 0?s.names[a]:w,f=R.get(X);f===void 0&&(f=j.length,R.set(X,f),j.push(X),lt.push(wt(X)));let m=Q.get(w);m===void 0&&(m=Y.length,Q.set(w,m),Y.push(w));let E=lt[f],P=s.offsets[a],k=new Array(s.offsets[a+1]-P),_=u,$=-1;for(let G=P;G<s.offsets[a+1];G++){let x=s.steps[G];k[G-P]=o[x],S[x]===-1&&(S[x]=B.at(-1),B.push(S[x]+c[x]),M.push(x));let tt=S[x]++;if(ct[tt]=f,Nt[tt]=_,H[tt]=s.reversed[G],_+=x<i?t.lengths[x]:0,$>=0){let D=It($,x);D>=0&&O[D]!==a&&(O[D]=a,V[J]=D,ft[J++]=m)}$=x}gt.push({...v,nodeIds:k}),T.push({name:X,sample:E,start:u,length:_-u})}let Rt=fe(V.subarray(0,J),ft,z,Y);b.forEach((a,v)=>{let u=Rt[ot[v]];u.length>0&&(a.pathIds=u)});let ht=h.length>0;return{name:n,nodes:p,edges:b,paths:ht?gt:void 0,anchorPaths:ht?T:void 0,pathVisits:ht?new Dt({segments:M.map(a=>t.names[a]),offsets:Int32Array.from(B),path:ct.subarray(0,B.at(-1)),start:Nt.subarray(0,B.at(-1)),reversed:H.subarray(0,B.at(-1)),paths:j,samples:lt}):void 0,anchoredBy:p.some(a=>a.stable)?"tags":void 0}}var Tt=1,qt=2,St=4,zt=[void 0,"missing","elsewhere","unknown"],Jt=3,ce=t=>zt.indexOf(t)<<Jt;function Qt(t,e,s){return e!==void 0&&t.includes(e)?e:t.find(n=>s.has(n))??t[0]}function le(t){return Qt((t.paths??[]).map(e=>pt(e.name).name),t.referencePath,new Set(t.nodes.flatMap(e=>e.stable?.rank===0?[e.stable.refName]:[])))}function he(t){let e=new Map,s=[],n=[],r=p=>{let b=e.get(p);return b===void 0&&(b=s.length,e.set(p,b),s.push(p),n.push(0)),b};for(let p of t.nodes)n[r(p.id)]=p.length;let i=t.paths??[],h=new Int32Array(i.length),c=new Int32Array(i.length),o=[];return i.forEach((p,b)=>{h[b]=o.length;for(let I of p.nodeIds)o.push(r(I));c[b]=o.length}),{heads:i,from:h,to:c,steps:Int32Array.from(o),lengths:Int32Array.from(n),names:s,reference:le(t)}}function ue(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=>Ft(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?Mt(t):n.names,reference:Qt(h.map(o=>pt(o.name).name),e,c)}}function Yt(t){return t.sample??wt(t.name)}function me(t){return t.haplotype!==void 0&&t.sample!==void 0?`${t.sample}#${t.haplotype}`:Yt(t)}var Kt=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 p of t)for(let b=this.offsets[p];b<this.offsets[p+1];b++)c[o++]=h[b];return c});return{offsets:s,columns:n}}},dt=t=>new Float64Array(t);function Pe(t,e,s={}){let{heads:n,from:r,to:i,steps:h,lengths:c,names:o,reference:p}="walks"in t?ue(t,s.referencePath,s.visits):he(t),b=c.length,I=f=>f<b?c[f]:0,U=f=>pt(n[f].name).name,W=f=>n[f].start,ot=(f,m)=>(W(f)??0)-(W(m)??0),z=n.map((f,m)=>m),F=z.filter(f=>U(f)===p).sort(ot),at=F[0],it=z.filter(f=>U(f)!==p);if(at===void 0||it.length===0)return;let It=Lt(it,U),R=new Float64Array(o.length).fill(Number.NaN),j=new Float64Array(o.length),V=new Map,ft=!1,J=!1,O=e&&e.end>e.start?e:void 0;for(let f of F){let m=W(f)??0;for(let E=r[f],P=i[f];E<P;E++){let k=h[E],_=I(k);if(Number.isNaN(R[k]))R[k]=m,j[k]=m+_,O&&(ft||=m+_<=O.start,J||=m>=O.end);else{let $=V.get(k);$?$.push(m):V.set(k,[R[k],m])}m+=_}}let gt=O===void 0||ft&&J,T=new Kt(5),Z=[],ct=new Map,Nt=f=>{if(!f)return-1;let m=`${f.refName}:${f.start}`,E=ct.get(m);return E===void 0&&(E=Z.length,ct.set(m,E),Z.push(f)),E},H=s.visits?new Kt(4):void 0,S=new Int32Array(0),M=new Float64Array(0),B=f=>{let m=n[f[0]],E=[...f].sort(ot),P=E.length-1;for(let l of E)P+=i[l]-r[l];P>S.length&&(S=new Int32Array(P*2),M=new Float64Array(P*2));let k=0,_=!1,$,G,x=new Map;for(let l of E){let d=W(l);(d===void 0||$!==void 0&&d<$)&&(_=!0),$!==void 0&&d!==void 0&&d>$&&(x.set(k,Ht(d-$,G===void 0?void 0:n[G].after,n[l].before)),S[k]=-(d-$),M[k++]=$);let y=d??0;for(let A=r[l],N=i[l];A<N;A++){let g=h[A];S[k]=g,M[k++]=y,y+=I(g)}$=d===void 0?void 0:y,G=l}let tt=l=>l>=0&&l<k&&S[l]>=0&&!Number.isNaN(R[S[l]]),D=l=>{let d=S[l];return M[l]+(d<0?-d:I(d))},te=(l,d)=>{let y=l>=0?l:d,A=-1;for(let q=1;A<0&&q<k;q++)A=[y-q,y+q].find(tt)??-1;if(A<0)return;let N=A>y==R[S[A]]>R[S[y]],g=N===(y===l),C=g?k-1:0,rt=tt(C);return{stop:{contigEnds:rt,shortBp:rt?Math.max(0,O.start-j[S[C]],R[S[C]]-O.end):0},lo:g?y+1:0,hi:g?k:y,backward:!N,axisStart:N?g?D(y):M[0]:g?D(k-1):M[y]}},vt=0,bt=k,ut=!1,Pt=!0,mt=-1,_t=-1,$t,Ut;if(O&>){let l=-1,d=-1,y=-1/0,A=1/0;for(let N=0;N<k;N++){let g=S[N];g>=0&&!Number.isNaN(R[g])&&(j[g]<=O.start&&j[g]>y&&(y=j[g],l=N),R[g]>=O.end&&R[g]<A&&(A=R[g],d=N))}if(l<0||d<0){Pt=!1;let N=l>=0||d>=0?te(l,d):void 0;N&&({lo:vt,hi:bt,backward:ut,axisStart:$t,stop:Ut}=N)}else vt=Math.min(l,d)+1,bt=Math.max(l,d),ut=l>d,mt=l,_t=d}let kt=m.contig??Ct(pt(m.name).name),ee=_||k===0?void 0:$t!==void 0?{contig:kt,start:$t,reversed:ut}:mt<0?{contig:kt,start:M[0],reversed:!1}:mt<_t?{contig:kt,start:D(mt),reversed:!1}:{contig:kt,start:M[mt],reversed:!0},et=0,jt=0,Bt=0,st=0,L=-1,nt=0,K=Number.NaN,yt=Number.NaN,se=l=>{let d=V.get(l);if(!d||Number.isNaN(yt))return R[l];let y=I(l),A=d[0],N=1/0;for(let g of d){let C=Math.min(Math.abs(g-yt),Math.abs(g+y-yt));C<N&&(A=g,N=C)}return A},[,Ot,ne,re]=T.values;for(let l=vt;l<bt;l++){let d=ut?bt-1-(l-vt):l,y=S[d];if(y<0){let q=x.get(d);for(let At of ut?[...q].reverse():q)T.push(et,At.bp,Number.NaN,St|ce(At.cause),Nt(At.chunk)),et+=At.bp;L=T.length-1,nt=St,K=Number.NaN,Bt+=-y,st=0;continue}let A=I(y),N=se(y),g=!Number.isNaN(N);H?.push(y,et,A,g?1:0);let C=L>=0&&!Number.isNaN(K),rt=g&&C&&st>=0&&K+(Ot[L]??0)===N,Gt=g&&C&&st<=0&&N+A===K;!g&&L>=0&&!(nt&(Tt|St))?Ot[L]+=A:rt||Gt?(Ot[L]+=A,rt||(K=N,ne[L]=N,nt|=qt,re[L]=nt),st=rt?1:-1):(nt=g?Tt:0,K=g?N:Number.NaN,T.push(et,A,K,nt,-1),L=T.length-1,st=0),et+=A,g?yt=st<0?N:N+A:jt+=A}return T.endRow(),H?.endRow(),{name:m.name,label:me(m),sample:Yt(m),haplotype:m.haplotype,bp:et,offReferenceBp:jt,gapBp:Bt,complete:Pt,stop:Ut,axis:ee}},lt=B(F),Q=[...It.values()].map((f,m)=>({meta:B(f),row:m+1}));Q.sort((f,m)=>Number(m.meta.complete)-Number(f.meta.complete)||m.meta.bp-f.meta.bp||f.meta.label.localeCompare(m.meta.label));let Y=[0,...Q.map(f=>f.row)],{offsets:Rt,columns:ht}=T.reorder(Y,[dt,dt,dt,f=>new Uint8Array(f),f=>new Int32Array(f)]),[a,v,u,w,X]=ht;return{origin:O?O.start:W(at)??0,rows:[lt,...Q.map(f=>f.meta)],offsets:Rt,start:a,bp:v,referenceStart:u,flags:w,chunk:X,chunks:Z,visits:H&&pe(H,Y,o)}}function pe(t,e,s){let{offsets:n,columns:r}=t.reorder(e,[p=>new Int32Array(p),dt,dt,p=>new Uint8Array(p)]),[i,h,c,o]=r;return{offsets:n,node:i,start:h,bp:c,onReference:o,names:s}}function de(t,e){let s=t.flags[e],n={start:t.start[e],bp:t.bp[e],onReference:(s&Tt)!==0};if(s&St){n.gap=!0;let r=zt[s>>Jt&3];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&qt&&(n.reversed=!0),n}function ge(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 _e(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(de(t,h));return{...n,runs:i,visits:t.visits&&ge(t.visits,r)}});return{origin:t.origin,unit:e,reference:s[0],rows:s.slice(1)}}export{oe as a,ae as b,Ne as c,ve as d,Ht as e,Zt as f,be as g,ke as h,Ft as i,$e as j,le as k,Pe as l,_e as m};
|
|
2
|
-
//# sourceMappingURL=chunk-R25GOTED.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.6.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-EIY2SKD3.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.6.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-W2YAW36J.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.6.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-D3E7AXBB.js"],
|
|
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};\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-EIY2SKD3.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 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 } : { 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-W2YAW36J.js\";\nimport {\n gapParts\n} from \"./chunk-EIY2SKD3.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 = [void 0, \"missing\", \"elsewhere\", \"unknown\"];\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 for (const piece of ordered) {\n count += to[piece] - from[piece];\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 for (let s = from[piece], stop2 = to[piece]; s < stop2; s++) {\n const node = all[s];\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 };\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 & 3];\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
|
-
"mappings": "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",
|
|
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", "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", "k", "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", "length", "unplaced", "end", "previous", "partsAt", "start2", "gapParts", "stop2", "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", "parts", "part", "on", "placed", "back", "referenceRow", "rows", "r", "start", "bp", "referenceStart", "flags", "chunk", "visitColumns", "runAt", "f", "run", "visitsOf", "walkRowsOf", "unit", "meta"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{d as B,g as C,i as $,j as O,k as j,l as W,n as X,p as H,q as A,s as z,u as F}from"./chunk-6DRBCLWY.js";import{Eb as E,Fb as M,M as S,N as L,Nb as R}from"./chunk-ORHUPW3G.js";import"./chunk-QQCTNB2Z.js";import"./chunk-4EKOQHUX.js";import{m as P}from"./chunk-B5SVBPXN.js";import"./chunk-Q55PHRHV.js";import"./chunk-GN4HSVLB.js";import"./chunk-R25GOTED.js";import"./chunk-ULLEUORS.js";import"./chunk-TQKSF3NI.js";import"./chunk-IKJZPPOA.js";import"./chunk-NDRLCGPC.js";import"./chunk-YU7T5WOQ.js";import{a as v,b as e,c as f}from"./chunk-JMBDTNUR.js";var m=JBrowseExports["@jbrowse/display-kit/renderDisplaySvg"],U=t=>m!=null&&t in Object(m)?m[t]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+t+"' from '@jbrowse/display-kit/renderDisplaySvg' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:t});var Y=U("renderDisplaySvg");var ot=m&&m.__esModule?m.default:m;var w=JBrowseExports["@jbrowse/core/util/paintLayer"],Z=t=>w!=null&&t in Object(w)?w[t]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+t+"' from '@jbrowse/core/util/paintLayer' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:t}),G=Z("PaintLayer"),lt=w&&w.__esModule?w.default:w;var k={fontFamily:"sans-serif",fontSize:11},x=16,q=2,J=t=>t;function N({model:t,lift:n,drawPaths:o,width:r,height:a,rasterize:s}){let l=t.buildDrawing(n,o);if(!l)return null;let c=s?q:1,g=s?void 0:M(r,a),h=g?.canvas??document.createElement("canvas");g||(h.width=Math.round(r*c),h.height=Math.round(a*c));let{scaleX:u,scaleY:y,translateX:i,translateY:p}=t.screenTransform,d=new E(h);return d.uploadGeometry(l.batch),d.updateTransform({scaleX:u*c,scaleY:y*c,translateX:i*c,translateY:p*c,dpr:c}),d.render([0,0,0,0]),g?e("svg",{width:r,height:a,overflow:"hidden",children:e("g",{dangerouslySetInnerHTML:{__html:g.markup()}})}):e("image",{width:r,height:a,href:h.toDataURL("image/png")})}function D(t,n){if(!t.swatch)return{key:t.key,width:t.label.length*P,height:x,draw:s=>e("text",{...k,x:s,y:0,fill:"#666",children:t.label},t.key)};let o=t.swatch,r=C(o),a=(t.strong??"")+t.label;return{key:t.key,width:Math.max(r+5+a.length*P,(t.under?.length??0)*P),height:t.under?x*2:x,draw:s=>f("g",{...k,children:[e(W,{swatch:o,x:s,id:n}),f("text",{x:s+r+5,y:0,children:[t.strong?e("tspan",{fontWeight:"bold",children:t.strong}):null,t.label]}),t.under?e("text",{x:s,y:x,children:t.under}):null]},t.key)}}function Q({model:t,idPrefix:n}){let o=j(t).map(({testid:i,rows:p})=>p.map((d,b)=>D(d,`${n}-${i}-${b}`)));if(o.length===0)return null;let r=6,a=o.flat(),s=Math.max(...a.map(i=>i.width))+r*2,l=a.reduce((i,p)=>i+p.height,0)+o.length*r,g=t.paneWidth-R-s+r,h=R+t.referenceStripZonePx,u=[],y=h+12-r/2;for(let i of o){y+=r;for(let p of i)u.push({row:p,y}),y+=p.height}return f("g",{"data-testid":"graph-svg-keys",children:[e("rect",{x:g-r,y:h,width:s,height:l,rx:3,fill:"#fff",fillOpacity:.82}),u.map(({row:i,y:p})=>e("g",{transform:`translate(0 ${p})`,children:i.draw(g)},i.key))]})}function K({x:t,y:n,text:o,fontSize:r,anchor:a,bold:s}){let l=o.length*r*.56+6,c=a==="middle"?t-l/2:t-3;return f(v,{children:[e("rect",{x:c,y:n-r*.65,width:l,height:r*1.3,rx:3,fill:"#fff",fillOpacity:.8}),e("text",{x:t,y:n+r*.35,textAnchor:a,fontSize:r,fontWeight:s?600:void 0,fill:"#18181c",children:o})]})}function tt({model:t}){return e("g",{fontFamily:k.fontFamily,children:t.overlayLabels.sizes.map(({key:n,text:o,x:r,y:a,kind:s,leader:l})=>f("g",{children:[l?e("line",{x1:l.arcX,y1:l.arcY,x2:l.labelX,y2:l.labelY,stroke:"#18181c"}):null,e(K,{x:r,y:a,text:o,fontSize:10,anchor:"middle",bold:s==="deletion"})]},n))})}function et({model:t}){return e("g",{fontFamily:k.fontFamily,children:t.visibleRowLabels.map(({label:n,y:o,top:r})=>e(K,{x:10,y:r,text:n,fontSize:11,anchor:"start"},o))})}function rt({model:t,rasterize:n,idPrefix:o}){let r=t.facetPanels,a=t.facetGrid,s=t.facetPlacement;if(!r||!a||!s)return null;let{columns:l,width:c,height:g}=a,h=a.total+S+14,u=O(t).map((i,p)=>D(i,`${o}-facet-key-${p}`)),y=u.map((i,p)=>u.slice(0,p).reduce((d,b)=>d+b.width+14,6));return f(v,{children:[e("g",{transform:`translate(0 ${h})`,children:u.map((i,p)=>i.draw(y[p]))}),r.map((i,p)=>{let d=s.cells[p],b=d%l*(c+S),I=Math.floor(d/l)*(L+g+S),_=i.walks[0],V=D($(t,_),`${o}-facet-${p}`);return f("g",{transform:`translate(${b} ${I})`,children:[e("g",{transform:`translate(0 ${x-2})`,children:V.draw(6)}),e("g",{transform:`translate(0 ${L})`,children:e(N,{model:t,lift:i,drawPaths:!1,width:c,height:g,rasterize:n})})]},_.name)})]})}function T({model:t,rasterize:n=!1,idPrefix:o}){let r=t.paneWidth,a=t.canvasHeight,s=!!t.layoutResult?.tubeMap,l={rasterizeLayers:n};return f("g",{"data-testid":"graph-pane-svg",children:[t.facetPanels?e(rt,{model:t,rasterize:n,idPrefix:o}):s?e(G,{width:r,height:a,opts:l,paint:c=>{z(J(c),t,{highlightNode:null})}}):e(N,{model:t,lift:t.drawnHighlight,drawPaths:t.effectiveDrawPaths,width:r,height:a,rasterize:n}),t.facetPanels?null:f(v,{children:[e(B,{model:t}),e(X,{model:t}),e(tt,{model:t}),e(H,{model:t}),e(F,{model:t,vector:!0}),e(et,{model:t})]}),t.referenceStripShown?e(G,{width:r,height:a,opts:l,paint:c=>{A(J(c),t,{lit:void 0,dpr:1})}}):null,t.facetPanels?null:e(Q,{model:t,idPrefix:o})]})}function nt({model:t,opts:n}){return e(T,{model:t,rasterize:!!n?.rasterizeLayers,idPrefix:`graph-${t.id}`})}function Gt(t,n){return Y(t,n,nt)}export{Gt as renderGraphTrackSvg};
|
|
2
|
-
//# sourceMappingURL=renderSvg-HEEQJD5B.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["host:@jbrowse/display-kit/renderDisplaySvg", "host:@jbrowse/core/util/paintLayer", "../../src/GraphGenomeView/components/PaneSvg.tsx", "../../src/LinearGraphDisplay/renderSvg.tsx"],
|
|
4
|
-
"sourcesContent": ["const host = JBrowseExports[\"@jbrowse/display-kit/renderDisplaySvg\"]\nconst read = name =>\n host != null && name in Object(host)\n ? host[name]\n : Object.assign(\n function () {\n throw new Error(\n \"This JBrowse does not provide '\" + name + \"' from '\" + \"@jbrowse/display-kit/renderDisplaySvg\" + \"' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse\",\n )\n },\n { jbrowseHostMissing: name },\n )\nexport const SvgLegend = /* @__PURE__ */ read(\"SvgLegend\")\nexport const SvgPinnedHighlight = /* @__PURE__ */ read(\"SvgPinnedHighlight\")\nexport const SvgYAxis = /* @__PURE__ */ read(\"SvgYAxis\")\nexport const exportsTooLargeNote = /* @__PURE__ */ read(\"exportsTooLargeNote\")\nexport const renderDisplaySvg = /* @__PURE__ */ read(\"renderDisplaySvg\")\nexport const svgSidebarWidthOf = /* @__PURE__ */ read(\"svgSidebarWidthOf\")\nexport default host && host.__esModule ? host.default : host", "const host = JBrowseExports[\"@jbrowse/core/util/paintLayer\"]\nconst read = name =>\n host != null && name in Object(host)\n ? host[name]\n : Object.assign(\n function () {\n throw new Error(\n \"This JBrowse does not provide '\" + name + \"' from '\" + \"@jbrowse/core/util/paintLayer\" + \"' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse\",\n )\n },\n { jbrowseHostMissing: name },\n )\nexport const PaintLayer = /* @__PURE__ */ read(\"PaintLayer\")\nexport default host && host.__esModule ? host.default : host", "import { FACET_GAP_PX, FACET_TITLE_PX } from '@jbrowse/bandage-core/facetGrid'\nimport { LEGEND_INSET_PX } from '@jbrowse/bandage-core/labelLayout'\nimport { LABEL_CHAR_PX } from '@jbrowse/bandage-core/overlayLabels'\nimport { Canvas2DRenderer } from '@jbrowse/bandage-core/renderer/Canvas2DRenderer'\nimport { svgCanvas } from '@jbrowse/bandage-core/renderer/svgCanvas'\nimport { PaintLayer } from '@jbrowse/core/util/paintLayer'\n\nimport BubbleHalos from './BubbleHalos'\nimport GenePins from './GenePins'\nimport LabelLayer from './LabelLayer'\nimport { SvgSwatch } from './LegendSwatch'\nimport { paintReferenceStrip } from './ReferenceStripOverlay'\nimport { paintTubeMap } from './TubeMapOverlay'\nimport WalkRowsOverlay from './WalkRowsOverlay'\nimport {\n facetKeyRows,\n legendSections,\n swatchWidth,\n walkKeyRow,\n} from '../legendSections'\n\nimport type { LegendRow } from '../legendSections'\nimport type { GraphPaneModel } from '../model'\nimport type { WalkLift } from '@jbrowse/bandage-core/walkHighlight'\nimport type { Ctx2D } from '@jbrowse/core/util/paintLayer'\n\nconst FONT = { fontFamily: 'sans-serif', fontSize: 11 }\nconst ROW_PX = 16\nconst RASTER_SCALE = 2\n\nconst asCanvasCtx = (ctx: Ctx2D) => ctx as CanvasRenderingContext2D\n\n// The drawing's nodes and edges through the pane's own transform, so the\n// export lines up with the linear view's ruler wherever the screen does\nfunction Body({\n model,\n lift,\n drawPaths,\n width,\n height,\n rasterize,\n}: {\n model: GraphPaneModel\n lift: WalkLift | undefined\n drawPaths: boolean\n width: number\n height: number\n rasterize: boolean\n}) {\n const built = model.buildDrawing(lift, drawPaths)\n if (!built) {\n return null\n }\n const k = rasterize ? RASTER_SCALE : 1\n const vector = rasterize ? undefined : svgCanvas(width, height)\n const canvas = vector?.canvas ?? document.createElement('canvas')\n if (!vector) {\n canvas.width = Math.round(width * k)\n canvas.height = Math.round(height * k)\n }\n const { scaleX, scaleY, translateX, translateY } = model.screenTransform\n const renderer = new Canvas2DRenderer(canvas)\n renderer.uploadGeometry(built.batch)\n renderer.updateTransform({\n scaleX: scaleX * k,\n scaleY: scaleY * k,\n translateX: translateX * k,\n translateY: translateY * k,\n dpr: k,\n })\n renderer.render([0, 0, 0, 0])\n return vector ? (\n <svg width={width} height={height} overflow=\"hidden\">\n <g dangerouslySetInnerHTML={{ __html: vector.markup() }} />\n </svg>\n ) : (\n <image width={width} height={height} href={canvas.toDataURL('image/png')} />\n )\n}\n\ninterface KeyRow {\n key: string\n width: number\n height: number\n draw: (left: number) => React.ReactNode\n}\n\n// A legend row as the screen lays it out: its swatch, then its words, the\n// line under it if any; a note is grey words alone\nfunction svgRow(row: LegendRow, id: string): KeyRow {\n if (!row.swatch) {\n return {\n key: row.key,\n width: row.label.length * LABEL_CHAR_PX,\n height: ROW_PX,\n draw: left => (\n <text key={row.key} {...FONT} x={left} y={0} fill=\"#666\">\n {row.label}\n </text>\n ),\n }\n }\n const swatch = row.swatch\n const sw = swatchWidth(swatch)\n const words = (row.strong ?? '') + row.label\n return {\n key: row.key,\n width: Math.max(\n sw + 5 + words.length * LABEL_CHAR_PX,\n (row.under?.length ?? 0) * LABEL_CHAR_PX,\n ),\n height: row.under ? ROW_PX * 2 : ROW_PX,\n draw: left => (\n <g key={row.key} {...FONT}>\n <SvgSwatch swatch={swatch} x={left} id={id} />\n <text x={left + sw + 5} y={0}>\n {row.strong ? <tspan fontWeight=\"bold\">{row.strong}</tspan> : null}\n {row.label}\n </text>\n {row.under ? (\n <text x={left} y={ROW_PX}>\n {row.under}\n </text>\n ) : null}\n </g>\n ),\n }\n}\n\n// The screen's legend panel, section by section\nfunction Keys({\n model,\n idPrefix,\n}: {\n model: GraphPaneModel\n idPrefix: string\n}) {\n const sections = legendSections(model).map(({ testid, rows }) =>\n rows.map((row, i) => svgRow(row, `${idPrefix}-${testid}-${i}`)),\n )\n if (sections.length === 0) {\n return null\n }\n const pad = 6\n const rows = sections.flat()\n const boxWidth = Math.max(...rows.map(r => r.width)) + pad * 2\n const boxHeight =\n rows.reduce((sum, r) => sum + r.height, 0) + sections.length * pad\n const right = model.paneWidth - LEGEND_INSET_PX\n const left = right - boxWidth + pad\n const top = LEGEND_INSET_PX + model.referenceStripZonePx\n const placed: { row: KeyRow; y: number }[] = []\n let y = top + 12 - pad / 2\n for (const section of sections) {\n y += pad\n for (const row of section) {\n placed.push({ row, y })\n y += row.height\n }\n }\n return (\n <g data-testid=\"graph-svg-keys\">\n <rect\n x={left - pad}\n y={top}\n width={boxWidth}\n height={boxHeight}\n rx={3}\n fill=\"#fff\"\n fillOpacity={0.82}\n />\n {placed.map(({ row, y }) => (\n <g key={row.key} transform={`translate(0 ${y})`}>\n {row.draw(left)}\n </g>\n ))}\n </g>\n )\n}\n\n// Words on a pale rounded backing, as the screen's labels sit\nfunction Chip({\n x,\n y,\n text,\n fontSize,\n anchor,\n bold,\n}: {\n x: number\n y: number\n text: string\n fontSize: number\n anchor: 'start' | 'middle'\n bold?: boolean\n}) {\n const w = text.length * fontSize * 0.56 + 6\n const left = anchor === 'middle' ? x - w / 2 : x - 3\n return (\n <>\n <rect\n x={left}\n y={y - fontSize * 0.65}\n width={w}\n height={fontSize * 1.3}\n rx={3}\n fill=\"#fff\"\n fillOpacity={0.8}\n />\n <text\n x={x}\n y={y + fontSize * 0.35}\n textAnchor={anchor}\n fontSize={fontSize}\n fontWeight={bold ? 600 : undefined}\n fill=\"#18181c\"\n >\n {text}\n </text>\n </>\n )\n}\n\n// The node and deletion lengths written on the drawing, with their leaders\nfunction SizeLabels({ model }: { model: GraphPaneModel }) {\n return (\n <g fontFamily={FONT.fontFamily}>\n {model.overlayLabels.sizes.map(({ key, text, x, y, kind, leader }) => (\n <g key={key}>\n {leader ? (\n <line\n x1={leader.arcX}\n y1={leader.arcY}\n x2={leader.labelX}\n y2={leader.labelY}\n stroke=\"#18181c\"\n />\n ) : null}\n <Chip\n x={x}\n y={y}\n text={text}\n fontSize={10}\n anchor=\"middle\"\n bold={kind === 'deletion'}\n />\n </g>\n ))}\n </g>\n )\n}\n\nfunction RowLabels({ model }: { model: GraphPaneModel }) {\n return (\n <g fontFamily={FONT.fontFamily}>\n {model.visibleRowLabels.map(({ label, y, top }) => (\n <Chip\n key={y}\n x={10}\n y={top}\n text={label}\n fontSize={11}\n anchor=\"start\"\n />\n ))}\n </g>\n )\n}\n\n// Each lifted walk in a panel of its own, its key as the panel's title\nfunction Facets({\n model,\n rasterize,\n idPrefix,\n}: {\n model: GraphPaneModel\n rasterize: boolean\n idPrefix: string\n}) {\n const panels = model.facetPanels\n const grid = model.facetGrid\n const place = model.facetPlacement\n if (!panels || !grid || !place) {\n return null\n }\n const { columns, width, height } = grid\n const keyY = grid.total + FACET_GAP_PX + 14\n const key = facetKeyRows(model).map((row, i) =>\n svgRow(row, `${idPrefix}-facet-key-${i}`),\n )\n const keyX = key.map((_, i) =>\n key.slice(0, i).reduce((x, row) => x + row.width + 14, 6),\n )\n return (\n <>\n <g transform={`translate(0 ${keyY})`}>\n {key.map((row, i) => row.draw(keyX[i]!))}\n </g>\n {panels.map((lift, i) => {\n const cell = place.cells[i]!\n const x = (cell % columns) * (width + FACET_GAP_PX)\n const y =\n Math.floor(cell / columns) * (FACET_TITLE_PX + height + FACET_GAP_PX)\n const walk = lift.walks[0]!\n const title = svgRow(walkKeyRow(model, walk), `${idPrefix}-facet-${i}`)\n return (\n <g key={walk.name} transform={`translate(${x} ${y})`}>\n <g transform={`translate(0 ${ROW_PX - 2})`}>{title.draw(6)}</g>\n <g transform={`translate(0 ${FACET_TITLE_PX})`}>\n <Body\n model={model}\n lift={lift}\n drawPaths={false}\n width={width}\n height={height}\n rasterize={rasterize}\n />\n </g>\n </g>\n )\n })}\n </>\n )\n}\n\n// The pane as the screen draws it, for the linear view's SVG export: the\n// canvas's ink, the tube map and reference strip painters, and the SVG\n// overlays the screen mounts over them. Hover and selection are left out.\nexport default function PaneSvg({\n model,\n rasterize = false,\n idPrefix,\n}: {\n model: GraphPaneModel\n rasterize?: boolean\n idPrefix: string\n}) {\n const width = model.paneWidth\n const height = model.canvasHeight\n const tubeMap = !!model.layoutResult?.tubeMap\n const opts = { rasterizeLayers: rasterize }\n return (\n <g data-testid=\"graph-pane-svg\">\n {model.facetPanels ? (\n <Facets model={model} rasterize={rasterize} idPrefix={idPrefix} />\n ) : tubeMap ? (\n <PaintLayer\n width={width}\n height={height}\n opts={opts}\n paint={ctx => {\n paintTubeMap(asCanvasCtx(ctx), model, { highlightNode: null })\n }}\n />\n ) : (\n <Body\n model={model}\n lift={model.drawnHighlight}\n drawPaths={model.effectiveDrawPaths}\n width={width}\n height={height}\n rasterize={rasterize}\n />\n )}\n {/* in the screen's stacking order, bottom first */}\n {model.facetPanels ? null : (\n <>\n <BubbleHalos model={model} />\n <GenePins model={model} />\n <SizeLabels model={model} />\n <LabelLayer model={model} />\n <WalkRowsOverlay model={model} vector />\n <RowLabels model={model} />\n </>\n )}\n {model.referenceStripShown ? (\n <PaintLayer\n width={width}\n height={height}\n opts={opts}\n paint={ctx => {\n paintReferenceStrip(asCanvasCtx(ctx), model, {\n lit: undefined,\n dpr: 1,\n })\n }}\n />\n ) : null}\n {model.facetPanels ? null : <Keys model={model} idPrefix={idPrefix} />}\n </g>\n )\n}\n", "import { renderDisplaySvg } from '@jbrowse/display-kit/renderDisplaySvg'\n\nimport PaneSvg from '../GraphGenomeView/components/PaneSvg'\n\nimport type { LinearGraphDisplayModel } from './model'\nimport type { LgvSvgBodyProps } from '@jbrowse/display-kit/renderDisplaySvg'\nimport type { ExportSvgDisplayOptions } from '@jbrowse/display-kit/types'\n\nfunction GraphTrackSvgBody({\n model,\n opts,\n}: LgvSvgBodyProps<LinearGraphDisplayModel>) {\n return (\n <PaneSvg\n model={model}\n rasterize={!!opts?.rasterizeLayers}\n idPrefix={`graph-${model.id}`}\n />\n )\n}\n\nexport function renderGraphTrackSvg(\n model: LinearGraphDisplayModel,\n opts?: ExportSvgDisplayOptions,\n) {\n return renderDisplaySvg(model, opts, GraphTrackSvgBody)\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["host", "read", "name", "renderDisplaySvg", "read", "renderDisplaySvg_default", "host", "host", "read", "name", "PaintLayer", "paintLayer_default", "FONT", "ROW_PX", "RASTER_SCALE", "asCanvasCtx", "ctx", "Body", "model", "lift", "drawPaths", "width", "height", "rasterize", "built", "k", "vector", "svgCanvas", "canvas", "scaleX", "scaleY", "translateX", "translateY", "renderer", "Canvas2DRenderer", "jsx", "svgRow", "row", "id", "LABEL_CHAR_PX", "left", "swatch", "sw", "swatchWidth", "words", "jsxs", "SvgSwatch", "Keys", "idPrefix", "sections", "legendSections", "testid", "rows", "i", "pad", "boxWidth", "r", "boxHeight", "sum", "LEGEND_INSET_PX", "top", "placed", "section", "y", "Chip", "x", "text", "fontSize", "anchor", "bold", "w", "Fragment", "SizeLabels", "key", "kind", "leader", "RowLabels", "label", "Facets", "panels", "grid", "place", "columns", "keyY", "FACET_GAP_PX", "facetKeyRows", "keyX", "_", "cell", "FACET_TITLE_PX", "walk", "title", "walkKeyRow", "PaneSvg", "tubeMap", "opts", "PaintLayer", "paintTubeMap", "BubbleHalos_default", "GenePins_default", "LabelLayer_default", "WalkRowsOverlay_default", "paintReferenceStrip", "GraphTrackSvgBody", "model", "opts", "jsx", "PaneSvg", "renderGraphTrackSvg", "renderDisplaySvg"]
|
|
7
|
-
}
|
|
File without changes
|
|
File without changes
|
/package/dist/chunks/{HighlightColorDialog-IMLYI64R.js.map → HighlightColorDialog-S2WPOSDF.js.map}
RENAMED
|
File without changes
|
/package/dist/chunks/{LinearGraphDisplay-CRIZLJDE.js.map → LinearGraphDisplay-EF2GE7X7.js.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|