Mercurial > repos > fubar > jbrowse2
view x/static/js/1752.a727a500.chunk.js.map @ 125:49f3d3878413 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 5ea1f9c1eef1de76232e69aa6d34cda77d90d566
author | fubar |
---|---|
date | Sat, 05 Oct 2024 23:58:05 +0000 |
parents | |
children |
line wrap: on
line source
{"version":3,"file":"static/js/1752.a727a500.chunk.js","mappings":"+MAcA,MAAM,WAAEA,GAAeC,EAAAA,GAajBC,EAAI,4CACJC,EAAK,wCACLC,EAAK,2CACLC,EAAc,EAEpB,SAASC,EAAQC,EAA+BC,EAAWC,EAAWP,EAAI,GACxEK,EAAIG,YACJH,EAAII,IAAIH,EAAGC,EAAGP,EAAI,EAAG,EAAG,EAAIU,KAAKC,IACjCN,EAAIO,MACN,CAEOC,eAAeC,EACpBT,EACAU,GAEA,MAAM,OAAEC,EAAM,MAAEC,EAAK,OAAEC,EAAM,UAAEC,EAAS,MAAEC,GAAUL,EAC9CM,GAAQC,EAAAA,EAAAA,gBAAeN,EAAQ,SAC/BO,GAAWD,EAAAA,EAAAA,gBAAeN,EAAQ,YAClCQ,GAAWF,EAAAA,EAAAA,gBAAeN,EAAQ,YAClCS,GAAUH,EAAAA,EAAAA,gBAAeN,EAAQ,WACjCU,GAAYJ,EAAAA,EAAAA,gBAAeN,EAAQ,aACnCW,GAAaL,EAAAA,EAAAA,gBAAeN,EAAQ,cACpCY,GAAUN,EAAAA,EAAAA,gBAAeN,EAAQ,qBACjCa,EAAab,EAAOK,MAAMQ,WAC1BC,EAAQb,EAAM,GACdc,EAAQd,EAAM,GACde,EAAMF,EAAMG,cAAcC,cAAc,IAAIC,SAC5CC,EAAML,EAAME,cAAcC,cAAc,IAAIC,SAC5CE,EAAW,GACjBhC,EAAIqB,UAAYA,EAIhB,MAAQY,QAASC,GAAaT,GACtBQ,QAASE,GAAaT,EAE9B,SAASU,EACPC,EACAC,EACAC,EACAC,GAEA,MAAMC,EAASD,EAAQE,IAAI,WAAa,EAIxC,IAHgB,IAAZD,KACAF,EAAKD,GAAO,CAACA,EAAKC,IAElBF,EAAMC,EAAMxC,EAAa,CAC3B,IAAI6C,EAAQH,EAAQE,IAAI,SACpBE,EAAMJ,EAAQE,IAAI,OACtB,MAAMG,EAAUL,EAAQE,IAAI,WAS5B,OARgB,IAAZD,KACAG,EAAKD,GAAS,CAACA,EAAOC,IAG1BZ,EAASc,KAAK,CACZC,QAAS,iBAAiBF,KAAWF,KAASC,MAAQjD,KAAKC,IAC3DoD,OAAQ,wBAEHV,CACT,CACA,GAAID,EAAME,EAAMzC,EAAa,CAC3B,MAAM2C,EAASD,EAAQE,IAAI,WAAa,EAClCC,EAAmB,IAAXF,EAAeD,EAAQE,IAAI,SAAWF,EAAQE,IAAI,OAC1DE,EAAiB,IAAXH,EAAeD,EAAQE,IAAI,OAASF,EAAQE,IAAI,SACtDG,EAAUL,EAAQE,IAAI,WAM5B,OAJAV,EAASc,KAAK,CACZC,QAAS,iBAAiBF,KAAWF,KAASC,MAAQjD,KAAKE,IAC3DmD,OAAQ,wBAEHT,CACT,CACA,OAAOF,CACT,CAEA,SAASY,EACPZ,EACAC,EACAC,EACAC,GAEA,GAAIH,EAAMC,EAAMxC,EAAa,CAC3B,MAAMoD,EAAOV,EAAQE,IAAI,SACnB,QAAEG,EAAO,MAAEF,EAAK,IAAEC,GAAQM,EAKhC,OAJAlB,EAASc,KAAK,CACZC,QAAS,iBAAiBF,KAAWF,KAASC,MAAQjD,KAAKC,IAC3DoD,OAAQ,wBAEHV,CACT,CACA,GAAID,EAAME,EAAMzC,EAAa,CAC3B,MAAMoD,EAAOV,EAAQE,IAAI,SACnB,QAAEG,EAAO,MAAEF,EAAK,IAAEC,GAAQM,EAMhC,OAJAlB,EAASc,KAAK,CACZC,QAAS,iBAAiBF,KAAWF,KAASC,MAAQjD,KAAKE,IAC3DmD,OAAQ,wBAEHT,CACT,CACA,OAAOF,CACT,CAEA,MAAMc,EAAQ,KACTC,EAAAA,EAAAA,aAAY3B,GACf4B,aAAc5B,EAAM4B,aACpBC,MAAO7B,EAAM6B,OAETC,EAAQ,KACTH,EAAAA,EAAAA,aAAY1B,GACf2B,aAAc3B,EAAM2B,aACpBC,MAAO5B,EAAM4B,OAETE,GAAIC,EAAAA,EAAAA,oBAAmB1C,GAC7B,IAAK,MAAMyB,KAAWf,EAAMiC,UAAY,GAAI,CAC1C,MAAMjB,EAASD,EAAQE,IAAI,WAAa,EAClCC,EAAmB,IAAXF,EAAeD,EAAQE,IAAI,SAAWF,EAAQE,IAAI,OAC1DE,EAAiB,IAAXH,EAAeD,EAAQE,IAAI,OAASF,EAAQE,IAAI,SACtDG,EAAUL,EAAQE,IAAI,WACtBQ,EAAOV,EAAQE,IAAI,QACnBiB,EAAUT,EAAKL,QAErB,IAAIlD,EAAI,QACR,GAAgB,aAAZyB,EAAwB,CAC1B,MAAMwC,EAAWpB,EAAQE,IAAI,YAC7B,IAAK,IAAImB,EAAI,EAAGA,EAAIvC,EAAWwC,OAAQD,IACrC,GAAID,GAAYtC,EAAWuC,GAAI,CAC7BlE,EAAI4B,EAAQsC,IAAM,QAClB,KACF,CAEJ,KAAuB,sBAAZzC,EACTzB,EAAI,OAAkC,IAA3B6C,EAAQE,IAAI,yBACF,mBAAZtB,EACTzB,EAAI,OAAO6C,EAAQE,IAAI,2BACF,WAAZtB,EACTzB,GAAgB,IAAZ8C,EAAgBtB,EAAWD,EACV,YAAZE,IACTzB,EAAI6B,GACAP,EAAAA,EAAAA,gBAAeN,EAAQ,QAAS,CAAE6B,YACxB,SAAVxB,EACEwC,EAAEjC,QAAQwC,KAAKC,QACfhD,GAERhB,EAAIiE,UAAYtE,EAChBK,EAAIkE,YAAcvE,EAElB,MAAMwE,GAAMC,EAAAA,EAAAA,IAAO,CAAEC,KAAMlB,EAAON,UAASyB,MAAO3B,IAC5C4B,GAAMH,EAAAA,EAAAA,IAAO,CAAEC,KAAMlB,EAAON,UAASyB,MAAO1B,IAC5C4B,GAAMJ,EAAAA,EAAAA,IAAO,CAAEC,KAAMd,EAAOV,QAASc,EAASW,MAAOpB,EAAKP,QAC1D8B,GAAML,EAAAA,EAAAA,IAAO,CAAEC,KAAMd,EAAOV,QAASc,EAASW,MAAOpB,EAAKN,MAChE,QACU8B,IAARP,QACQO,IAARH,QACQG,IAARF,QACQE,IAARD,EACA,CACA,MAAME,EAAKR,EAAIrC,SAAWH,EACpBiD,EAAKL,EAAIzC,SAAWH,EACpBkD,EAAKL,EAAI1C,SAAWC,EACpB+C,EAAKL,EAAI3C,SAAWC,EAC1B,GAAI1B,KAAK0E,IAAIJ,EAAKC,IAAO,GAAKvE,KAAK0E,IAAIF,EAAKC,IAAO,EACjD/E,EAAQC,EAAK2E,EAAI9D,EAASgE,EAAIxD,OACzB,CACL,IAAI2D,EAAQL,EACRM,EAAQJ,EACZ,MAAMK,EAAQ1C,EAAQE,IAAI,SAC1B,GAAI5B,GAAaoE,EAAO,CACtB,MAAMC,EAAW1F,EAAWyF,GAE5BlF,EAAIG,YACJH,EAAIoF,OAAOJ,EAAOnE,EAASoE,GAE3B,IAAII,EAAaL,EACbM,EAAaN,EACjB,IAAK,IAAInB,EAAI,EAAGA,EAAIsB,EAASrB,OAAQD,GAAK,EAAG,CAC3C,MAAM0B,GAAOJ,EAAStB,GAChB2B,EAAKL,EAAStB,EAAI,GACb,MAAP2B,GAAqB,MAAPA,GAAqB,MAAPA,GAC9BR,GAAUO,EAAMrD,EAAYO,EAC5BwC,GAASM,EAAMpD,GACC,MAAPqD,GAAqB,MAAPA,EACvBR,GAAUO,EAAMrD,EAAYO,EACZ,MAAP+C,IACTP,GAASM,EAAMpD,GAEjB6C,EAAQ5C,EAAe4C,EAAOL,EAAIC,EAAIpC,GACtCyC,EAAQhC,EAAegC,EAAOJ,EAAIC,EAAItC,IAIpCnC,KAAK0E,IAAIC,EAAQK,GAAc,IAC/BhF,KAAK0E,IAAIE,EAAQK,GAAc,MAE/BtF,EAAIyF,OAAOT,EAAOnE,EAASoE,GAC3BI,EAAaL,EACbM,EAAaL,EAEjB,CAEAjF,EAAI0F,QACN,MACE1F,EAAIG,YACJH,EAAIoF,OAAOT,EAAI9D,EAASgE,GACxB7E,EAAIyF,OAAOb,EAAI/D,EAASiE,GACxB9E,EAAI0F,QAER,CACF,MACM1D,EAAS8B,QAAU,SACTY,IAARP,QAA6BO,IAARH,EACvBvC,EAASc,KAAK,CACZC,QAAS,iBAAiBF,KAAWF,KAASC,wCAC9CI,OAAQ,yBAGVhB,EAASc,KAAK,CACZC,QAAS,iBAAiBY,KAAWT,EAAKP,SAASO,EAAKN,0CACxDI,OAAQ,yBAKlB,CAEA,MAAO,CAAEhB,WACX,C","sources":["../../../plugins/dotplot-view/src/DotplotRenderer/drawDotplot.ts"],"sourcesContent":["import {\n readConfObject,\n AnyConfigurationModel,\n} from '@jbrowse/core/configuration'\nimport { Feature } from '@jbrowse/core/util'\nimport { bpToPx } from '@jbrowse/core/util/Base1DUtils'\nimport { getSnapshot } from 'mobx-state-tree'\nimport { RenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/ComparativeServerSideRendererType'\nimport { MismatchParser } from '@jbrowse/plugin-alignments'\n\n// locals\nimport { Dotplot1DViewModel } from '../DotplotView/model'\nimport { createJBrowseTheme } from '@jbrowse/core/ui'\n\nconst { parseCigar } = MismatchParser\n\nexport interface DotplotRenderArgsDeserialized extends RenderArgsDeserialized {\n adapterConfig: AnyConfigurationModel\n height: number\n width: number\n highResolutionScaling: number\n view: {\n hview: Dotplot1DViewModel\n vview: Dotplot1DViewModel\n }\n}\n\nconst r = 'fell outside of range due to CIGAR string'\nconst lt = '(less than min coordinate of feature)'\nconst gt = '(greater than max coordinate of feature)'\nconst fudgeFactor = 1 // allow 1px fuzzyness before warn\n\nfunction drawCir(ctx: CanvasRenderingContext2D, x: number, y: number, r = 1) {\n ctx.beginPath()\n ctx.arc(x, y, r / 2, 0, 2 * Math.PI)\n ctx.fill()\n}\n\nexport async function drawDotplot(\n ctx: CanvasRenderingContext2D,\n props: DotplotRenderArgsDeserialized & { views: Dotplot1DViewModel[] },\n) {\n const { config, views, height, drawCigar, theme } = props\n const color = readConfObject(config, 'color')\n const posColor = readConfObject(config, 'posColor')\n const negColor = readConfObject(config, 'negColor')\n const colorBy = readConfObject(config, 'colorBy')\n const lineWidth = readConfObject(config, 'lineWidth')\n const thresholds = readConfObject(config, 'thresholds')\n const palette = readConfObject(config, 'thresholdsPalette') as string[]\n const isCallback = config.color.isCallback\n const hview = views[0]!\n const vview = views[1]!\n const db1 = hview.dynamicBlocks.contentBlocks[0]?.offsetPx\n const db2 = vview.dynamicBlocks.contentBlocks[0]?.offsetPx\n const warnings = [] as { message: string; effect: string }[]\n ctx.lineWidth = lineWidth\n\n // we operate on snapshots of these attributes of the hview/vview because\n // it is significantly faster than accessing the mobx objects\n const { bpPerPx: hBpPerPx } = hview\n const { bpPerPx: vBpPerPx } = vview\n\n function clampWithWarnX(\n num: number,\n min: number,\n max: number,\n feature: Feature,\n ) {\n const strand = feature.get('strand') || 1\n if (strand === -1) {\n ;[max, min] = [min, max]\n }\n if (num < min - fudgeFactor) {\n let start = feature.get('start')\n let end = feature.get('end')\n const refName = feature.get('refName')\n if (strand === -1) {\n ;[end, start] = [start, end]\n }\n\n warnings.push({\n message: `feature at (X ${refName}:${start}-${end}) ${r} ${lt}`,\n effect: 'clipped the feature',\n })\n return min\n }\n if (num > max + fudgeFactor) {\n const strand = feature.get('strand') || 1\n const start = strand === 1 ? feature.get('start') : feature.get('end')\n const end = strand === 1 ? feature.get('end') : feature.get('start')\n const refName = feature.get('refName')\n\n warnings.push({\n message: `feature at (X ${refName}:${start}-${end}) ${r} ${gt}`,\n effect: 'clipped the feature',\n })\n return max\n }\n return num\n }\n\n function clampWithWarnY(\n num: number,\n min: number,\n max: number,\n feature: Feature,\n ) {\n if (num < min - fudgeFactor) {\n const mate = feature.get('mate')\n const { refName, start, end } = mate\n warnings.push({\n message: `feature at (Y ${refName}:${start}-${end}) ${r} ${lt}`,\n effect: 'clipped the feature',\n })\n return min\n }\n if (num > max + fudgeFactor) {\n const mate = feature.get('mate')\n const { refName, start, end } = mate\n\n warnings.push({\n message: `feature at (Y ${refName}:${start}-${end}) ${r} ${gt}`,\n effect: 'clipped the feature',\n })\n return max\n }\n return num\n }\n\n const hsnap = {\n ...getSnapshot(hview),\n staticBlocks: hview.staticBlocks,\n width: hview.width,\n }\n const vsnap = {\n ...getSnapshot(vview),\n staticBlocks: vview.staticBlocks,\n width: vview.width,\n }\n const t = createJBrowseTheme(theme)\n for (const feature of hview.features || []) {\n const strand = feature.get('strand') || 1\n const start = strand === 1 ? feature.get('start') : feature.get('end')\n const end = strand === 1 ? feature.get('end') : feature.get('start')\n const refName = feature.get('refName')\n const mate = feature.get('mate')\n const mateRef = mate.refName\n\n let r = 'black'\n if (colorBy === 'identity') {\n const identity = feature.get('identity')\n for (let i = 0; i < thresholds.length; i++) {\n if (identity > +thresholds[i]) {\n r = palette[i] || 'black'\n break\n }\n }\n } else if (colorBy === 'meanQueryIdentity') {\n r = `hsl(${feature.get('meanScore') * 200},100%,40%)`\n } else if (colorBy === 'mappingQuality') {\n r = `hsl(${feature.get('mappingQual')},100%,40%)`\n } else if (colorBy === 'strand') {\n r = strand === -1 ? negColor : posColor\n } else if (colorBy === 'default') {\n r = isCallback\n ? readConfObject(config, 'color', { feature })\n : color === '#f0f'\n ? t.palette.text.primary\n : color\n }\n ctx.fillStyle = r\n ctx.strokeStyle = r\n\n const b10 = bpToPx({ self: hsnap, refName, coord: start })\n const b20 = bpToPx({ self: hsnap, refName, coord: end })\n const e10 = bpToPx({ self: vsnap, refName: mateRef, coord: mate.start })\n const e20 = bpToPx({ self: vsnap, refName: mateRef, coord: mate.end })\n if (\n b10 !== undefined &&\n b20 !== undefined &&\n e10 !== undefined &&\n e20 !== undefined\n ) {\n const b1 = b10.offsetPx - db1!\n const b2 = b20.offsetPx - db1!\n const e1 = e10.offsetPx - db2!\n const e2 = e20.offsetPx - db2!\n if (Math.abs(b1 - b2) <= 4 && Math.abs(e1 - e2) <= 4) {\n drawCir(ctx, b1, height - e1, lineWidth)\n } else {\n let currX = b1\n let currY = e1\n const cigar = feature.get('CIGAR')\n if (drawCigar && cigar) {\n const cigarOps = parseCigar(cigar)\n\n ctx.beginPath()\n ctx.moveTo(currX, height - currY)\n\n let lastDrawnX = currX\n let lastDrawnY = currX\n for (let i = 0; i < cigarOps.length; i += 2) {\n const val = +cigarOps[i]!\n const op = cigarOps[i + 1]!\n if (op === 'M' || op === '=' || op === 'X') {\n currX += (val / hBpPerPx) * strand\n currY += val / vBpPerPx\n } else if (op === 'D' || op === 'N') {\n currX += (val / hBpPerPx) * strand\n } else if (op === 'I') {\n currY += val / vBpPerPx\n }\n currX = clampWithWarnX(currX, b1, b2, feature)\n currY = clampWithWarnY(currY, e1, e2, feature)\n\n // only draw a line segment if it is bigger than 0.5px\n if (\n Math.abs(currX - lastDrawnX) > 0.5 ||\n Math.abs(currY - lastDrawnY) > 0.5\n ) {\n ctx.lineTo(currX, height - currY)\n lastDrawnX = currX\n lastDrawnY = currY\n }\n }\n\n ctx.stroke()\n } else {\n ctx.beginPath()\n ctx.moveTo(b1, height - e1)\n ctx.lineTo(b2, height - e2)\n ctx.stroke()\n }\n }\n } else {\n if (warnings.length <= 5) {\n if (b10 === undefined || b20 === undefined) {\n warnings.push({\n message: `feature at (X ${refName}:${start}-${end}) not plotted, fell outside of range`,\n effect: 'feature not rendered',\n })\n } else {\n warnings.push({\n message: `feature at (Y ${mateRef}:${mate.start}-${mate.end}) not plotted, fell outside of range`,\n effect: 'feature not rendered',\n })\n }\n }\n }\n }\n\n return { warnings }\n}\n"],"names":["parseCigar","MismatchParser","r","lt","gt","fudgeFactor","drawCir","ctx","x","y","beginPath","arc","Math","PI","fill","async","drawDotplot","props","config","views","height","drawCigar","theme","color","readConfObject","posColor","negColor","colorBy","lineWidth","thresholds","palette","isCallback","hview","vview","db1","dynamicBlocks","contentBlocks","offsetPx","db2","warnings","bpPerPx","hBpPerPx","vBpPerPx","clampWithWarnX","num","min","max","feature","strand","get","start","end","refName","push","message","effect","clampWithWarnY","mate","hsnap","getSnapshot","staticBlocks","width","vsnap","t","createJBrowseTheme","features","mateRef","identity","i","length","text","primary","fillStyle","strokeStyle","b10","bpToPx","self","coord","b20","e10","e20","undefined","b1","b2","e1","e2","abs","currX","currY","cigar","cigarOps","moveTo","lastDrawnX","lastDrawnY","val","op","lineTo","stroke"],"sourceRoot":""}