Next changeset 1:8097f9124f87 (2024-02-28) |
Commit message:
planemo upload for repository https://github.com/goeckslab/tools-mti/tree/main/tools/vitessce commit 9b2dc921e692af8045773013d9f87d4d790e2ea1 |
added:
gate_finder.py gate_finder.xml index.html main_macros.xml static/css/2.f290e260.chunk.css static/css/2.f290e260.chunk.css.map static/css/main.a53cc462.chunk.css static/css/main.a53cc462.chunk.css.map static/js/2.eb2fd6ea.chunk.js static/js/2.eb2fd6ea.chunk.js.LICENSE.txt static/js/2.eb2fd6ea.chunk.js.map static/js/main.303f671d.chunk.js static/js/main.303f671d.chunk.js.map static/js/runtime-main.784d90f4.js static/js/runtime-main.784d90f4.js.map static/media/complement.c220ca8c.svg static/media/intersection.b0003109.svg static/media/menu.bc56e94a.svg static/media/near_me.2a308adc.svg static/media/selection_lasso.00e80a33.svg static/media/selection_rectangle.aa477261.svg static/media/union.de5168c6.svg test-data/cropped_reactive_core.ome.tiff test-data/cropped_tutorial_data_pheno.h5ad test-data/tutorial_vitessce.html vitessce_spatial.py |
b |
diff -r 000000000000 -r 6df8d6e42152 gate_finder.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gate_finder.py Thu Sep 08 17:22:53 2022 +0000 |
[ |
@@ -0,0 +1,156 @@ +import argparse +import json +import warnings +from pathlib import Path + +import numpy as np +import pandas as pd +from anndata import read_h5ad +from sklearn.mixture import GaussianMixture +from sklearn.preprocessing import MinMaxScaler +from vitessce import ( + AnnDataWrapper, + Component as cm, + MultiImageWrapper, + OmeTiffWrapper, + VitessceConfig, +) + + +# Generate binarized phenotype for a gate +def get_gate_phenotype(g, d): + dd = d.copy() + dd = np.where(dd < g, 0, dd) + np.warnings.filterwarnings('ignore') + dd = np.where(dd >= g, 1, dd) + return dd + + +def get_gmm_phenotype(data): + low = np.percentile(data, 0.01) + high = np.percentile(data, 99.99) + data = np.clip(data, low, high) + + sum = np.sum(data) + median = np.median(data) + data_med = data / sum * median + + data_log = np.log1p(data_med) + data_log = data_log.reshape(-1, 1) + + scaler = MinMaxScaler(feature_range=(0, 1)) + data_norm = scaler.fit_transform(data_log) + + gmm = GaussianMixture(n_components=2) + gmm.fit(data_norm) + gate = np.mean(gmm.means_) + + return get_gate_phenotype(gate, np.ravel(data_norm)) + + +def main(inputs, output, image, anndata, masks=None): + """ + Parameter + --------- + inputs : str + File path to galaxy tool parameter. + output : str + Output folder for saving web content. + image : str + File path to the OME Tiff image. + anndata : str + File path to anndata containing phenotyping info. + masks : str + File path to the image masks. + """ + warnings.simplefilter('ignore') + + with open(inputs, 'r') as param_handler: + params = json.load(param_handler) + + marker = params['marker'].strip() + from_gate = params['from_gate'] + to_gate = params['to_gate'] + increment = params['increment'] + x_coordinate = params['x_coordinate'].strip() or 'X_centroid' + y_coordinate = params['y_coordinate'].strip() or 'Y_centroid' + + adata = read_h5ad(anndata) + + # If no raw data is available make a copy + if adata.raw is None: + adata.raw = adata + + # Copy of the raw data if it exisits + if adata.raw is not None: + adata.X = adata.raw.X + + data = pd.DataFrame( + adata.X, + columns=adata.var.index, + index=adata.obs.index + ) + marker_values = data[[marker]].values + marker_values_log = np.log1p(marker_values) + + # Identify the list of increments + gate_names = [] + for num in np.arange(from_gate, to_gate, increment): + num = round(num, 3) + key = marker + '--' + str(num) + adata.obs[key] = get_gate_phenotype(num, marker_values_log) + gate_names.append(key) + + adata.obs['GMM_auto'] = get_gmm_phenotype(marker_values) + gate_names.append('GMM_auto') + + adata.obsm['XY_coordinate'] = adata.obs[[x_coordinate, y_coordinate]].values + + vc = VitessceConfig(name=None, description=None) + dataset = vc.add_dataset() + image_wrappers = [OmeTiffWrapper(img_path=image, name='OMETIFF')] + if masks: + image_wrappers.append( + OmeTiffWrapper(img_path=masks, name='MASKS', is_bitmask=True) + ) + dataset.add_object(MultiImageWrapper(image_wrappers)) + + dataset.add_object( + AnnDataWrapper( + adata, + spatial_centroid_obsm='XY_coordinate', + cell_set_obs=gate_names, + cell_set_obs_names=[obj[0].upper() + obj[1:] for obj in gate_names], + expression_matrix="X" + ) + ) + spatial = vc.add_view(dataset, cm.SPATIAL) + cellsets = vc.add_view(dataset, cm.CELL_SETS) + status = vc.add_view(dataset, cm.STATUS) + lc = vc.add_view(dataset, cm.LAYER_CONTROLLER) + genes = vc.add_view(dataset, cm.GENES) + cell_set_sizes = vc.add_view(dataset, cm.CELL_SET_SIZES) + cell_set_expression = vc.add_view(dataset, cm.CELL_SET_EXPRESSION) + + vc.layout( + (status / genes / cell_set_expression) + | (cellsets / cell_set_sizes / lc) + | (spatial) + ) + config_dict = vc.export(to='files', base_url='http://localhost', out_dir=output) + + with open(Path(output).joinpath('config.json'), 'w') as f: + json.dump(config_dict, f, indent=4) + + +if __name__ == '__main__': + aparser = argparse.ArgumentParser() + aparser.add_argument("-i", "--inputs", dest="inputs", required=True) + aparser.add_argument("-e", "--output", dest="output", required=True) + aparser.add_argument("-g", "--image", dest="image", required=True) + aparser.add_argument("-a", "--anndata", dest="anndata", required=True) + aparser.add_argument("-m", "--masks", dest="masks", required=False) + + args = aparser.parse_args() + + main(args.inputs, args.output, args.image, args.anndata, args.masks) |
b |
diff -r 000000000000 -r 6df8d6e42152 gate_finder.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gate_finder.xml Thu Sep 08 17:22:53 2022 +0000 |
[ |
@@ -0,0 +1,63 @@ +<tool id="gate_finder" name="Gate Finder" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@"> + <description>displays a series of gating outcomes using Vitessce</description> + <macros> + <import>main_macros.xml</import> + </macros> + <expand macro="vitessce_requirements"/> + <expand macro="macro_stdio" /> + <version_command>echo "@VERSION@"</version_command> + <expand macro="vitessce_cmd" tool_id="gate_finder" /> + <configfiles> + <inputs name="inputs" /> + </configfiles> + <inputs> + <param name="image" type="data" format="ome.tiff" label="Select the image (OME-TIFF)" /> + <param name="masks" type="data" format="tiff,ome.tiff" optional="true" label="Select masks for the OME Tiff image (Optional)" /> + <section name="do_phenotyping" title=" "> + <param name="phenotyping_choice" type="hidden" value="true"/> + </section> + <param name="phenotyping_choice" type="hidden" value="yes" /> + <param name="anndata" type="data" format="h5ad" label="Select the anndata containing marker intensities" /> + <param name="marker" type="text" value="" label="Marker for which gate is to be defined" help="E.g.: CD45." /> + <param name="from_gate" type="integer" value="6" label="Start value gate of interest" help="Integer. Optional" /> + <param name="to_gate" type="integer" value="8" label="End value of the gate of interest." help="Integer. Optional" /> + <param name="increment" type="float" value="0.1" label="Increments between the start and end values" help="Float." /> + <param name="x_coordinate" type="text" value="X_centroid" optional="true" label="X axis coordinate column name in AnnData object" /> + <param name="y_coordinate" type="text" value="Y_centroid" optional="true" label="X axis coordinate column name in AnnData object" /> + </inputs> + <outputs> + <data format="html" name="output" /> + </outputs> + <tests> + <test> + <param name="image" value="cropped_reactive_core.ome.tiff" ftype="ome.tiff" /> + <param name="anndata" value="cropped_tutorial_data_pheno.h5ad" ftype="h5ad" /> + <param name="marker" value="CD45" /> + <param name="from_gate" value="5" /> + <param name="to_gate" value="9" /> + <param name="increment" value="0.5" /> + <output name="output" file="tutorial_vitessce.html" compare="sim_size" delta="20" /> + </test> + </tests> + <help> + <![CDATA[ +**What it does** +This tool, built on top of vitessce visualization components, mimics the find_gate function from scimap (https://scimap.xyz/) to do manual gating for single cell quantification data. + +**Input** + +OME-TIFF image. +Segmentation masks (optional). +AnnData with marker intensities. + +**Output** + +An HTML file with Vitessce component. + + + ]]> + </help> + <citations> + <citation type="doi">10.31219/osf.io/y8thv</citation> + </citations> +</tool> |
b |
diff -r 000000000000 -r 6df8d6e42152 index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/index.html Thu Sep 08 17:22:53 2022 +0000 |
[ |
@@ -0,0 +1,39 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <style> + body,html{height:100%} + body{ + font-family:-apple-system,'Helvetica Neue',Arial,sans-serif;display:flex;flex-direction:column} + #full-app{flex:1} + #full-app .vitessce-container{ + height:max(100%,100vh);width:100%;overflow:hidden} + #full-app #small-app .vitessce-container{height:600px} + </style> + <title>Vitessce</title> + <link href="./static/css/2.f290e260.chunk.css" rel="stylesheet"> + <link href="./static/css/main.a53cc462.chunk.css" rel="stylesheet"> + </head> + <body> + <div id="full-app"> + <div class="container-fluid"> + <div class="row p-2"> + <div class="col col-full"> + <h1>Vitessce is loading...</h1> + <div style="width:1000px"> + <div id="small-app"> + </div> + </div> + </div> + </div> + </div> + </div> + <noscript>You need to enable JavaScript to run this app.</noscript> + <script> + !function(e){function t(t){for(var n,i,l=t[0],f=t[1],a=t[2],p=0,s=[];p<l.length;p++)i=l[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(c&&c(t);s.length;)s.shift()();return u.push.apply(u,a||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,l=1;l<r.length;l++){var f=r[l];0!==o[f]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="./";var l=this.webpackJsonpvitessce=this.webpackJsonpvitessce||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var a=0;a<l.length;a++)t(l[a]);var c=f;r()}([]) + </script> + <script src="./static/js/2.eb2fd6ea.chunk.js"></script> + <script src="./static/js/main.303f671d.chunk.js"></script> + </body> +</html> \ No newline at end of file |
b |
diff -r 000000000000 -r 6df8d6e42152 main_macros.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main_macros.xml Thu Sep 08 17:22:53 2022 +0000 |
[ |
@@ -0,0 +1,84 @@ +<macros> + <token name="@TOOL_VERSION@">1.0.4</token> + <token name="@VERSION_SUFFIX@">0</token> + <token name="@PROFILE@">20.01</token> + + <xml name="vitessce_requirements"> + <requirements> + <container type="docker">quay.io/goeckslab/vitessce:@TOOL_VERSION@</container> + </requirements> + </xml> + + <xml name="macro_stdio"> + <stdio> + <exit_code range="1:" level="fatal" description="Error occurred. Please check Tool Standard Error" /> + </stdio> + </xml> + + <xml name="vitessce_cmd" token_tool_id="vitessce_spatial"> + <command> + <![CDATA[ + export BF_MAX_MEM="\${GALAXY_MEMORY_MB}m" && + mkdir -p '${output.files_path}/A/0' && + ln -sf '$image' '${output.files_path}/A/0/image01.ome.tiff' && + #if $masks + info=\$(showinf -nopix -nometa -noflat '${output.files_path}/A/0/image01.ome.tiff') && + echo '>showinf -nopix -nometa -noflat \$image' && + echo "\$info\n" && + masks_info=\$(showinf -nopix -nometa -noflat '$masks') && + echo '>showinf -nopix -nometa -noflat \$masks' && + echo "\$masks_info\n" && + masks_n_resolutions=\$(echo "\$masks_info" | grep '^\s*Resolutions\s*=' -m1 | cut -d'=' -f2 | xargs) && + if [ -z \$masks_n_resolutions ]; then + n_resolutions=\$(echo "\$info" | grep '^\s*Resolutions\s*=' -m1 | cut -d'=' -f2 | xargs) && + pyramid_scale=1 && + if [ -z "\$n_resolutions" ]; then + echo "Warning: Failded to retrieve the number of pyramid resolutions. Set pyramid resolutions to 4 and scale to 2!"; + n_resolutions=4; + pyramid_scale=2; + else + echo "Found the number of pyramid resolutions: \$n_resolutions"; + if [ "\$n_resolutions" -gt 1 ]; then + sizeX0=\$(echo "\$info" | grep '^\s*sizeX\[0\]\s*=' -m1 | cut -d'=' -f2 | xargs) ; + sizeX1=\$(echo "\$info" | grep '^\s*sizeX\[1\]\s*=' -m1 | cut -d'=' -f2 | xargs) ; + if [ "\$sizeX0" -gt 0 ] && [ "\$sizeX1" -gt 0 ]; then + pyramid_scale=\$(((\$sizeX0 + \$sizeX1 / 2 ) / \$sizeX1)); + echo "Calculate pyramid scale: \$sizeX0 / \$sizeX1 ~= \$pyramid_scale."; + else + pyramid_scale=2; + echo "Warning: Failed to calculate the pyramid scale; set it to 2!"; + fi; + fi; + fi; + tile_info=\$(showinf -nopix -nometa -noflat '${output.files_path}/A/0/image01.ome.tiff' | grep '^\s*Tile\ssize\s*=' -m1); + tile_x=\$(echo "\$tile_info" | cut -d' ' -f4); + tile_y=\$(echo "\$tile_info" | cut -d' ' -f6); + convert_cmd="bfconvert -pyramid-resolutions \$n_resolutions -pyramid-scale \$pyramid_scale -noflat -tilex \$tile_x -tiley \$tile_y '$masks' '${output.files_path}/A/0/masks01.ome.tiff'"; + echo "\n>\$convert_cmd"; + eval \$convert_cmd; + masks_info_new=\$(showinf -nopix -nometa -noflat '${output.files_path}/A/0/masks01.ome.tiff'); + echo "\n>showinf -nopix -nometa -noflat '${output.files_path}/A/0/masks01.ome.tiff'"; + echo "\$masks_info_new\n"; + else + ln -sf '$masks' '${output.files_path}/A/0/masks01.ome.tiff'; + fi && + #end if + python '$__tool_directory__/@TOOL_ID@.py' + --inputs '$inputs' + --output '${output.files_path}' + --image '${output.files_path}/A/0/image01.ome.tiff' + #if $masks + --masks '${output.files_path}/A/0/masks01.ome.tiff' + #end if + #if $do_phenotyping.phenotyping_choice + --anndata '$anndata' + #end if + && + cp -R '$__tool_directory__/static' '${output.files_path}' && + cp '$__tool_directory__/index.html' '$output'; + + ]]> + </command> + </xml> + +</macros> |
b |
diff -r 000000000000 -r 6df8d6e42152 static/css/2.f290e260.chunk.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/css/2.f290e260.chunk.css Thu Sep 08 17:22:53 2022 +0000 |
b |
@@ -0,0 +1,2 @@ +.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top}.react-grid-item.cssTransforms{transition-property:transform}.react-grid-item.resizing{z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZ6IiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+");background-position:100% 100%;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)} +/*# sourceMappingURL=2.f290e260.chunk.css.map */ \ No newline at end of file |
b |
diff -r 000000000000 -r 6df8d6e42152 static/css/2.f290e260.chunk.css.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/css/2.f290e260.chunk.css.map Thu Sep 08 17:22:53 2022 +0000 |
[ |
@@ -0,0 +1,1 @@ +{"version":3,"sources":["styles.css"],"names":[],"mappings":"AAAA,mBACE,iBAAkB,CAClB,0BACF,CACA,iBACE,uBAA0B,CAC1B,4BACF,CACA,+BACE,6BACF,CACA,0BACE,SAAU,CACV,wBACF,CAEA,0CACE,eAAgB,CAChB,SAAU,CACV,qBACF,CAEA,0BACE,iBACF,CAEA,wCACE,cAAe,CACf,UAAY,CACZ,uBAA0B,CAC1B,SAAU,CACV,wBAAyB,CAEzB,oBAAqB,CACrB,mBAAoB,CACpB,gBACF,CAEA,yCACE,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,QAAS,CACT,OAAQ,CACR,gBACF,CAEA,+CACE,UAAW,CACX,iBAAkB,CAClB,SAAU,CACV,UAAW,CACX,SAAU,CACV,UAAW,CACX,qCAA0C,CAC1C,sCACF,CAEA,8CACE,YACF,CA5DA,iBACE,iBACF,CACA,wBACE,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,2BAA4B,CAC5B,6BAA8B,CAC9B,qBAAsB,CACtB,0PAAuY,CACvY,6BAAiC,CACjC,mBACF,CACA,2BACE,QAAS,CACT,MAAO,CACP,gBAAiB,CACjB,uBACF,CACA,2BACE,QAAS,CACT,OAAQ,CACR,gBACF,CACA,2BACE,KAAM,CACN,MAAO,CACP,gBAAiB,CACjB,wBACF,CACA,2BACE,KAAM,CACN,OAAQ,CACR,gBAAiB,CACjB,wBACF,CACA,oDAEE,OAAQ,CACR,gBAAiB,CACjB,gBACF,CACA,0BACE,MAAO,CACP,wBACF,CACA,0BACE,OAAQ,CACR,wBACF,CACA,oDAEE,QAAS,CACT,iBAAkB,CAClB,gBACF,CACA,0BACE,KAAM,CACN,wBACF,CACA,0BACE,QAAS,CACT,uBACF","file":"2.f290e260.chunk.css","sourcesContent":[".react-resizable {\n position: relative;\n}\n.react-resizable-handle {\n position: absolute;\n width: 20px;\n height: 20px;\n background-repeat: no-repeat;\n background-origin: content-box;\n box-sizing: border-box;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+');\n background-position: bottom right;\n padding: 0 3px 3px 0;\n}\n.react-resizable-handle-sw {\n bottom: 0;\n left: 0;\n cursor: sw-resize;\n transform: rotate(90deg);\n}\n.react-resizable-handle-se {\n bottom: 0;\n right: 0;\n cursor: se-resize;\n}\n.react-resizable-handle-nw {\n top: 0;\n left: 0;\n cursor: nw-resize;\n transform: rotate(180deg);\n}\n.react-resizable-handle-ne {\n top: 0;\n right: 0;\n cursor: ne-resize;\n transform: rotate(270deg);\n}\n.react-resizable-handle-w,\n.react-resizable-handle-e {\n top: 50%;\n margin-top: -10px;\n cursor: ew-resize;\n}\n.react-resizable-handle-w {\n left: 0;\n transform: rotate(135deg);\n}\n.react-resizable-handle-e {\n right: 0;\n transform: rotate(315deg);\n}\n.react-resizable-handle-n,\n.react-resizable-handle-s {\n left: 50%;\n margin-left: -10px;\n cursor: ns-resize;\n}\n.react-resizable-handle-n {\n top: 0;\n transform: rotate(225deg);\n}\n.react-resizable-handle-s {\n bottom: 0;\n transform: rotate(45deg);\n}"]} \ No newline at end of file |
b |
diff -r 000000000000 -r 6df8d6e42152 static/css/main.a53cc462.chunk.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/css/main.a53cc462.chunk.css Thu Sep 08 17:22:53 2022 +0000 |
b |
b'@@ -0,0 +1,2 @@\n+.react-draggable-transparent-selection .react-grid-item{-webkit-user-select:none!important;-moz-user-select:none!important;-o-user-select:none!important;-ms-user-select:none!important;user-select:none!important}body{margin:0;text-align:left}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;box-sizing:border-box}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-2OwvL{position:fixed;background-color:hsla(0,0%,100%,.95);border:1px solid rgba(0,0,0,.1);border-radius:3px;font-size:12px;cursor:default;padding:3px;box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05)}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-dark-2PO31{color:#ccc;background-color:rgba(68,68,68,.97)}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-icon-I4kiw{display:inline-block;margin-right:3px;vertical-align:middle}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-icon-I4kiw>svg{width:30px;height:20px}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-item-1HeVv{padding:2px;white-space:nowrap;border-radius:2px;transition:background .15s ease,color .15s ease}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-item-1HeVv:hover{background:#337ab7;color:#fff}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-hr-3yapb{margin-top:5px;margin-bottom:5px;border:0;border-top:1px solid rgba(0,0,0,.1)}.vitessce-container .higlass-wrapper .ContextMenu-module_play-icon-R4pIO{width:12px;height:12px;position:absolute;right:5px}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-span-8EUfZ{margin-right:20px;vertical-align:middle;display:inline-block;line-height:normal;white-space:nowrap}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-thumbnail-2vHLD{margin-right:10px;border:1px solid #888}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-thumbnail-inline-1iOcg{display:inline-block;margin-right:10px;vertical-align:middle}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-2zDf3,.vitessce-container .higlass-wrapper .TrackControl-module_track-control-vertical-2McB_{position:absolute;z-index:1;display:flex;background:hsla(0,0%,100%,.75);right:2px;top:2px;border-radius:2.5px;box-shadow:0 0 0 1px rgba(0,0,0,.05),0 0 3px 0 rgba(0,0,0,.1);opacity:0;transition:opacity .15s ease,background .15s ease,box-shadow .15s ease}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-dark-fP2uZ,.vitessce-container .higlass-wrapper .TrackControl-module_track-control-dark-fP2uZ .TrackControl-module_track-control-active-2JD9i{background:rgba(40,40,40,.85)}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-vertical-2McB_{flex-direction:column-reverse}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-left-zHd9W{left:2px;right:auto}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-active-2JD9i,.vitessce-container .higlass-wrapper .TrackControl-module_track-control-vertical-active-1QCKn{opacity:1;z-index:1}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-active-2JD9i:hover,.vitessce-container .higlass-wrapper .TrackControl-module_track-control-vertical-active-1QCKn:hover{background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.2)}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-dark-fP2uZ.TrackControl-module_track-control-active-2JD9i:hover{background:rgba(34,34,34,.95)}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-padding-right-2p6Lp{right:80px}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-button-2fdIb{width:20px;height:20px;padding:4px;cursor:pointer;opacity:.66;transition:background .15s ease,color .15s ease,opacity .15s ease}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-button-2fdIb:hover{'..b'ainer.vitessce-theme-light .selectable-table .table-row{display:flex;flex-direction:row;border-bottom:1px solid silver}.vitessce-container.vitessce-theme-light .selectable-table .table-item{cursor:pointer}.vitessce-container.vitessce-theme-light .selectable-table .table-item:not(.row-checked):hover{background-color:#dadada}.vitessce-container.vitessce-theme-light .selectable-table .table-item.row-checked{background-color:silver}.vitessce-container.vitessce-theme-light .selectable-table .table-item .hidden-input-column{display:none}.vitessce-container.vitessce-theme-light .selectable-table .table-item .table-cell{padding:0 4px}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container{width:1em}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container label{display:block;margin:0;cursor:pointer}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input{cursor:pointer}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.checkbox,.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;width:1em;height:1em;margin:.3em .5em 0;padding:6px!important;background-clip:content-box;border:2px solid #d3d3d3;background-color:#d3d3d3}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.checkbox:checked,.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.radio:checked{background-clip:unset}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.radio{border-radius:50%}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.checkbox{border-radius:2px}.vitessce-container.vitessce-theme-light .higlass-title-wrapper{height:calc(100% - 20px)}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body{width:inherit;height:inherit;padding:5px;background-color:#f1f1f1}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-lazy-wrapper{width:inherit;height:inherit}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent{display:block;position:relative;box-sizing:border-box;font-size:12px;color:#333;overflow:hidden}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper{width:inherit;height:inherit;position:relative;display:block;text-align:left;box-sizing:border-box}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass{width:100%;height:100%}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass .react-grid-layout{background-color:transparent!important}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass nav{display:flex}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass input{font-size:12px}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass .btn{color:#999;font-size:12px}.vitessce-container.vitessce-theme-light .vega-container{display:flex;flex:1 1 auto;overflow:hidden}.vitessce-container.vitessce-theme-light .heatmap{width:100%;left:0;position:absolute;padding-right:inherit;padding-left:inherit}.vitessce-container.vitessce-theme-light .heatmap-container{position:absolute;top:1.25rem;left:1.25rem;width:calc(100% - 2.5rem);height:calc(100% - 2.5rem)}.vitessce-container.vitessce-theme-light .search-bar{margin-bottom:.25rem;border:0;padding:2px;border-radius:2px}\n+/*# sourceMappingURL=main.a53cc462.chunk.css.map */\n\\ No newline at end of file\n' |
b |
diff -r 000000000000 -r 6df8d6e42152 static/css/main.a53cc462.chunk.css.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/css/main.a53cc462.chunk.css.map Thu Sep 08 17:22:53 2022 +0000 |
[ |
b'@@ -0,0 +1,1 @@\n+{"version":3,"sources":["index.scss","_app.scss","../../node_modules/higlass/dist/hglib.css","_bootstrap-minimal.scss","_controls.scss","_channels.scss","_error.scss","_plot-tooltips.scss","_help-tooltips.scss","_sets-manager.scss","_selectable-table.scss","_higlass.scss","_vega.scss","_heatmap.scss","_genes.scss"],"names":[],"mappings":"AAAA,wDC6OA,kCAKE,CACA,+BACA,CAAA,6BACA,CAAA,8BAAA,CAAA,0BACA,CAAA,KAIF,QACI,CAAA,eACA,CAAA,iBAGJ,UACI,CAAA,kBACA,CAAA,iBACA,CAAA,iBACA,CAAA,gBACA,CAAA,qBACA,CAAA,4ECrQJ,cAAA,CAAA,oCAAA,CAAA,+BAAA,CAAA,iBAAA,CAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,+DAAA,CAAA,iFAAA,UAAA,CAAA,mCAAA,CAAA,iFAAA,oBAAA,CAAA,gBAAA,CAAA,qBAAA,CAAA,qFAAA,UAAA,CAAA,WAAA,CAAA,iFAAA,WAAA,CAAA,kBAAA,CAAA,iBAAA,CAAA,+CAAA,CAAA,uFAAA,kBAAA,CAAA,UAAA,CAAA,+EAAA,cAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,mCAAA,CAAA,yEAAA,UAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,iFAAA,iBAAA,CAAA,qBAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,kBAAA,CAAA,sFAAA,iBAAA,CAAA,qBAAA,CAAA,6FAAA,oBAAA,CAAA,iBAAA,CAAA,qBAAA,CAAA,qKAAA,iBAAA,CAAA,SAAA,CAAA,YAAA,CAAA,8BAAA,CAAA,SAAA,CAAA,OAAA,CAAA,mBAAA,CAAA,6DAAA,CAAA,SAAA,CAAA,sEAAA,CAAA,sNAAA,6BAAA,CAAA,uFAAA,6BAAA,CAAA,mFAAA,QAAA,CAAA,UAAA,CAAA,mLAAA,SAAA,CAAA,SAAA,CAAA,+LAAA,eAAA,CAAA,4DAAA,CAAA,wIAAA,6BAAA,CAAA,4FAAA,UAAA,CAAA,qFAAA,UAAA,CAAA,WAAA,CAAA,WAAA,CAAA,cAAA,CAAA,WAAA,CAAA,iEAAA,CAAA,2FAAA,UAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,iGAAA,6BAAA,CAAA,gGAAA,6BAAA,CAAA,mIAAA,UAAA,CAAA,yIAAA,UAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,0GAAA,6BAAA,CAAA,yGAAA,6BAAA,CAAA,4EAAA,iBAAA,CAAA,sBAAA,CAAA,sFAAA,iBAAA,CAAA,SAAA,CAAA,+EAAA,iBAAA,CAAA,UAAA,CAAA,SAAA,CAAA,4BAAA,CAAA,sFAAA,SAAA,CAAA,SAAA,CAAA,8FAAA,YAAA,CAAA,qGAAA,iCAAA,CAAA,SAAA,CAAA,eAAA,CAAA,8FAAA,UAAA,CAAA,8BAAA,CAAA,gFAAA,iBAAA,CAAA,KAAA,CAAA,MAAA,CAAA,UAAA,CAAA,WAAA,CAAA,+EAAA,iBAAA,CAAA,qBAAA,CAAA,KAAA,CAAA,OAAA,CAAA,QAAA,CAAA,MAAA,CAAA,4KAAA,iBAAA,CAAA,wEAAA,iBAAA,CAAA,QAAA,CAAA,eAAA,CAAA,4EAAA,YAAA,CAAA,WAAA,CAAA,YAAA,CAAA,kBAAA,CAAA,kEAAA,WAAA,CAAA,YAAA,CAAA,eAAA,CAAA,gCAAA,CAAA,0EAAA,iBAAA,CAAA,SAAA,CAAA,wBAAA,CAAA,YAAA,CAAA,0EAAA,iBAAA,CAAA,YAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,4BAAA,CAAA,wBAAA,CAAA,qBAAA,CAAA,oBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,eAAA,CAAA,4EAAA,uEAAA,CAAA,mCAAA,CAAA,iBAAA,CAAA,kHAAA,iBAAA,CAAA,4EAAA,YAAA,CAAA,aAAA,CAAA,kBAAA,CAAA,sBAAA,CAAA,6EAAA,UAAA,CAAA,WAAA,CAAA,wEAAA,gBAAA,CAAA,gFAAA,iBAAA,CAAA,+KAAA,iBAAA,CAAA,KAAA,CAAA,OAAA,CAAA,QAAA,CAAA,MAAA,CAAA,UAAA,CAAA,uFAAA,SAAA,CAAA,iEAAA,YAAA,CAAA,kBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,UAAA,CAAA,aAAA,CAAA,eAAA,CAAA,QAAA,CAAA,mBAAA,CAAA,eAAA,CAAA,yBAAA,CAAA,wEAAA,CAAA,uBAAA,CAAA,uEAAA,kBAAA,CAAA,yBAAA,CAAA,uEAAA,4BAAA,CAAA,wEAAA,mBAAA,CAAA,sNAAA,cAAA,CAAA,YAAA,CAAA,0EAAA,gBAAA,CAAA,UAAA,CAAA,cAAA,CAAA,0BAAA,CAAA,+DAAA,iBAAA,CAAA,SAAA,CAAA,UAAA,CAAA,2IAAA,UAAA,CAAA,aAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,MAAA,CAAA,SAAA,CAAA,UAAA,CAAA,eAAA,CAAA,uBAAA,CAAA,sEAAA,wCAAA,CAAA,qEAAA,yCAAA,CAAA,0EAAA,iBAAA,CAAA,YAAA,CAAA,KAAA,CAAA,OAAA,CAAA,QAAA,CAAA,MAAA,CAAA,2BAAA,CAAA,uDAAA,CAAA,+CAAA,CAAA,2BAAA,CAAA,oEAAA,SAAA,CAAA,oEAAA,iBAAA,CAAA,QAAA,CAAA,UAAA,CAAA,WAAA,CAAA,SAAA,CAAA,sEAAA,iBAAA,CAAA,UAAA,CAAA,eAAA,CAAA,eAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,iBAAA,CAAA,eAAA,CAAA,6DAAA,CAAA,qDAAA,CAAA,iFAAA,WAAA,CAAA,uEAAA,YAAA,CAAA,8CAAA,GAAA,SAAA,CAAA,GAAA,SAAA,CAAA,CAAA,sCAAA,GAAA,SAAA,CAAA,GAAA,SAAA,CAAA,CAAA,oDAAA,GAAA,SAAA,CAAA,mBAAA,CAAA,GAAA,SAAA,CAAA,kBAAA,CAAA,CAAA,4CAAA,GAAA,SAAA,CAAA,mBAAA,CAAA,GAAA,SAAA,CAAA,kBAAA,CAAA,CAAA,wEAAA,iBAAA,CAAA,SAAA,CAAA,YAAA,CAAA,6BAAA,CAAA,mBAAA,CAAA,mBAAA,CAAA,4BAAA,CAAA,2EAAA,QAAA,CAAA,SAAA,CAAA,cAAA,CAAA,eAAA,CAAA,+EAAA,cAAA,CAAA,iFAAA,iBAAA,CAAA,SAAA,CAAA,QAAA,CAAA,OAAA,CAAA,WAAA,CAAA,MAAA,CAAA,YAAA,CAAA,aAAA,CAAA,2JAAA,YAAA,CAAA,6BAAA,CAAA,mBAAA,CAAA,mBAAA,CAAA,yBAAA,CAAA,yKAAA,cAAA,CAAA,mFAAA,iBAAA,CAAA,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,WAAA,CAAA,2DAAA,eAAA,CAAA,gEAAA,gBAAA,CAAA,gEAAA,YAAA,CAAA,eAAA,CAAA,6BAAA,CAAA,kBAAA,CAAA,mEAAA,UAAA,CAAA,WAAA,CAAA,qBAAA,CAAA,iBAAA,CAAA,0DAAA,YAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,6DAAA,aAAA,CAAA,6DAAA,QAAA,CAAA,cAAA,CAAA,oBAAA,CAAA,gEAAA,iBAAA,CAAA,iEAAA,kBAAA,CAAA,aAAA,C'..b' -moz-appearance: none;\\n appearance: none;\\n /* create custom radiobutton appearance */\\n display: inline-block;\\n width: 1em;\\n height: 1em;\\n margin: 0.3em 0.5em 0.0em 0.5em;\\n padding: 6px !important; /* TODO: Only need \\"important\\" to override Bootstrap. */\\n /* background-color only for content */\\n background-clip: content-box;\\n border: 2px solid map-get($global-colors, \\"gray-light\\");\\n background-color: map-get($global-colors, \\"gray-light\\");\\n \\n &:checked {\\n background-clip: unset;\\n }\\n }\\n &.radio {\\n border-radius: 50%;\\n }\\n &.checkbox {\\n border-radius: 2px;\\n }\\n }\\n }\\n } \\n }\\n}\\n ","\\n.vitessce-container .higlass-wrapper {\\n // https://sass-lang.com/documentation/at-rules/import#nesting\\n // https://sass-lang.com/documentation/at-rules/import#importing-css\\n @import \\"../../node_modules/higlass/dist/hglib\\";\\n}\\n@mixin higlass($theme-name, $theme-colors) {\\n\\n .higlass-title-wrapper {\\n height: calc(100% - 20px);\\n .card-body {\\n width: inherit;\\n height: inherit;\\n padding: 5px;\\n background-color: map-get($theme-colors, \\"secondary-background\\");\\n .higlass-lazy-wrapper {\\n width: inherit;\\n height: inherit;\\n }\\n .higlass-wrapper-parent {\\n display: block;\\n position: relative;\\n box-sizing: border-box;\\n font-size: 12px;\\n color: #333;\\n overflow: hidden;\\n .higlass-wrapper {\\n width: inherit;\\n height: inherit;\\n position: relative;\\n display: block;\\n text-align: left;\\n box-sizing: border-box;\\n .higlass {\\n width: 100%;\\n height: 100%;\\n .react-grid-layout {\\n background-color: transparent !important;\\n }\\n nav {\\n display: flex;\\n }\\n input {\\n font-size: 12px;\\n }\\n .btn {\\n color: #999;\\n font-size: 12px;\\n }\\n }\\n }\\n }\\n }\\n }\\n \\n}\\n","@mixin vega($theme-name, $theme-colors) {\\n .vega-container {\\n display: flex;\\n flex: 1 1 auto;\\n overflow: hidden;\\n }\\n}","/*\\nSee https://github.com/vitessce/vitessce/issues/368 for why this css needs to exist and https://github.com/vitessce/vitessce/pull/607 for a longer explanation.\\nThe absolute positioning gives us the control we need to force the canvas elements to \\"fill\\" the container - this was not happening in Safari with the bootstrap css.\\n*/\\n@mixin heatmap($theme-name, $theme-colors) {\\n .heatmap {\\n width: 100%;\\n left: 0;\\n position: absolute;\\n padding-right: inherit;\\n padding-left: inherit;\\n }\\n\\n .heatmap-container {\\n position: absolute;\\n top: 1.25rem; // Corresponds to the padding on .vitessce-container .card-body\\n left: 1.25rem; // Corresponds to the padding on .vitessce-container .card-body\\n width: calc(100% - 2.5rem);\\n height: calc(100% - 2.5rem);\\n }\\n}","@mixin genes($theme-name, $theme-colors) {\\n .search-bar {\\n margin-bottom: .25rem;\\n border: 0;\\n padding: 2px;\\n border-radius: 2px;\\n }\\n}\\n"]}\n\\ No newline at end of file\n' |
b |
diff -r 000000000000 -r 6df8d6e42152 static/js/2.eb2fd6ea.chunk.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/js/2.eb2fd6ea.chunk.js Thu Sep 08 17:22:53 2022 +0000 |
[ |
b'@@ -0,0 +1,3 @@\n+/*! For license information please see 2.eb2fd6ea.chunk.js.LICENSE.txt */\n+(this.webpackJsonpvitessce=this.webpackJsonpvitessce||[]).push([[2],[function(e,t,A){"use strict";e.exports=A(750)},function(e,t,A){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}A.d(t,"a",(function(){return n}))},function(e,t,A){e.exports=A(853)},function(e,t,A){"use strict";function n(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function r(e,t,A){return t&&n(e.prototype,t),A&&n(e,A),e}A.d(t,"a",(function(){return r}))},function(e,t,A){"use strict";function n(e,t,A){return e.fields=t||[],e.fname=A,e}function r(e){return null==e?null:e.fname}function i(e){return null==e?null:e.fields}function o(e){return 1===e.length?a(e[0]):s(e)}A.d(t,"a",(function(){return v})),A.d(t,"b",(function(){return E})),A.d(t,"c",(function(){return y})),A.d(t,"d",(function(){return p})),A.d(t,"e",(function(){return Q})),A.d(t,"f",(function(){return n})),A.d(t,"g",(function(){return i})),A.d(t,"h",(function(){return r})),A.d(t,"i",(function(){return X})),A.d(t,"j",(function(){return ee})),A.d(t,"k",(function(){return q})),A.d(t,"l",(function(){return $})),A.d(t,"m",(function(){return re})),A.d(t,"n",(function(){return ie})),A.d(t,"o",(function(){return g})),A.d(t,"p",(function(){return oe})),A.d(t,"q",(function(){return ae})),A.d(t,"r",(function(){return se})),A.d(t,"s",(function(){return d})),A.d(t,"t",(function(){return le})),A.d(t,"u",(function(){return u})),A.d(t,"v",(function(){return Ie})),A.d(t,"w",(function(){return ce})),A.d(t,"x",(function(){return l})),A.d(t,"y",(function(){return I})),A.d(t,"z",(function(){return Ce})),A.d(t,"A",(function(){return he})),A.d(t,"B",(function(){return b})),A.d(t,"C",(function(){return fe})),A.d(t,"D",(function(){return de})),A.d(t,"E",(function(){return z})),A.d(t,"F",(function(){return Be})),A.d(t,"G",(function(){return pe})),A.d(t,"H",(function(){return w})),A.d(t,"I",(function(){return Ee})),A.d(t,"J",(function(){return Qe})),A.d(t,"K",(function(){return ye})),A.d(t,"L",(function(){return ve})),A.d(t,"M",(function(){return m})),A.d(t,"N",(function(){return me})),A.d(t,"O",(function(){return be})),A.d(t,"P",(function(){return F})),A.d(t,"Q",(function(){return h})),A.d(t,"R",(function(){return Se})),A.d(t,"S",(function(){return L})),A.d(t,"T",(function(){return T})),A.d(t,"U",(function(){return Z})),A.d(t,"V",(function(){return H})),A.d(t,"W",(function(){return G})),A.d(t,"X",(function(){return K})),A.d(t,"Y",(function(){return we})),A.d(t,"Z",(function(){return Fe})),A.d(t,"ab",(function(){return c})),A.d(t,"bb",(function(){return Re})),A.d(t,"cb",(function(){return De})),A.d(t,"db",(function(){return ke})),A.d(t,"eb",(function(){return k})),A.d(t,"fb",(function(){return Ne})),A.d(t,"gb",(function(){return xe})),A.d(t,"hb",(function(){return Ue})),A.d(t,"ib",(function(){return f})),A.d(t,"jb",(function(){return W})),A.d(t,"kb",(function(){return _e})),A.d(t,"lb",(function(){return R})),A.d(t,"mb",(function(){return C})),A.d(t,"nb",(function(){return J})),A.d(t,"ob",(function(){return j})),A.d(t,"pb",(function(){return P})),A.d(t,"qb",(function(){return V}));var a=function(e){return function(t){return t[e]}},s=function(e){var t=e.length;return function(A){for(var n=0;n<t;++n)A=A[e[n]];return A}};function g(e){throw Error(e)}function c(e){var t,A,n,r=[],i=e.length,o=null,a=0,s="";function c(){r.push(s+e.substring(t,A)),s="",t=A+1}for(e+="",t=A=0;A<i;++A)if("\\\\"===(n=e[A]))s+=e.substring(t,A),s+=e.substring(++A,++A),t=A;else if(n===o)c(),o=null,a=-1;else{if(o)continue;t===a&&\'"\'===n||t===a&&"\'"===n?(t=A+1,o=n):"."!==n||a?"["===n?(A>t&&c(),a=t=A+1):"]"===n&&(a||g("Access p'..b';return u&&(A.autoFocus=!0),void 0===e.props.tabIndex&&"selectedMenu"===F&&(A.tabIndex=0),i.cloneElement(e,A)}return e}));return i.createElement(l,Object(n.a)({role:"menu",ref:x,className:Q,onKeyDown:function(e){var t=D.current,A=e.key,n=Object(a.a)(t).activeElement;if("ArrowDown"===A)e.preventDefault(),B(t,n,b,v,h);else if("ArrowUp"===A)e.preventDefault(),B(t,n,b,v,f);else if("Home"===A)e.preventDefault(),B(t,null,b,v,h);else if("End"===A)e.preventDefault(),B(t,null,b,v,f);else if(1===A.length){var r=G.current,i=A.toLowerCase(),o=performance.now();r.keys.length>0&&(o-r.lastTime>500?(r.keys=[],r.repeating=!0,r.previousKeyMatched=!0):r.repeating&&i!==r.keys[0]&&(r.repeating=!1)),r.lastTime=o,r.keys.push(i);var s=n&&!r.repeating&&d(n,r);r.previousKeyMatched&&(s||B(t,n,!1,v,h,r))?e.preventDefault():r.previousKeyMatched=!1}w&&w(e)},tabIndex:g?0:-1},R),U)}));t.a=E},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(166),s=A(167),g=A(28),c=A(40),u=i.forwardRef((function(e,t){var A=e.children,g=e.classes,u=e.className,l=(e.color,e.component),I=void 0===l?"label":l,C=(e.disabled,e.error,e.filled,e.focused,e.required,Object(r.a)(e,["children","classes","className","color","component","disabled","error","filled","focused","required"])),h=Object(s.a)(),f=Object(a.a)({props:e,muiFormControl:h,states:["color","required","focused","disabled","error","filled"]});return i.createElement(I,Object(n.a)({className:Object(o.a)(g.root,g["color".concat(Object(c.a)(f.color||"primary"))],u,f.disabled&&g.disabled,f.error&&g.error,f.filled&&g.filled,f.focused&&g.focused,f.required&&g.required),ref:t},C),A,f.required&&i.createElement("span",{"aria-hidden":!0,className:Object(o.a)(g.asterisk,f.error&&g.error)},"\\u2009","*"))})),l=Object(g.a)((function(e){return{root:Object(n.a)({color:e.palette.text.secondary},e.typography.body1,{lineHeight:1,padding:0,"&$focused":{color:e.palette.primary.main},"&$disabled":{color:e.palette.text.disabled},"&$error":{color:e.palette.error.main}}),colorSecondary:{"&$focused":{color:e.palette.secondary.main}},focused:{},disabled:{},error:{},filled:{},required:{},asterisk:{"&$error":{color:e.palette.error.main}}}}),{name:"MuiFormLabel"})(u),I=i.forwardRef((function(e,t){var A=e.classes,g=e.className,c=e.disableAnimation,u=void 0!==c&&c,I=(e.margin,e.shrink),C=(e.variant,Object(r.a)(e,["classes","className","disableAnimation","margin","shrink","variant"])),h=Object(s.a)(),f=I;"undefined"===typeof f&&h&&(f=h.filled||h.focused||h.adornedStart);var d=Object(a.a)({props:e,muiFormControl:h,states:["margin","variant"]});return i.createElement(l,Object(n.a)({"data-shrink":f,className:Object(o.a)(A.root,g,h&&A.formControl,!u&&A.animated,f&&A.shrink,"dense"===d.margin&&A.marginDense,{filled:A.filled,outlined:A.outlined}[d.variant]),classes:{focused:A.focused,disabled:A.disabled,error:A.error,required:A.required,asterisk:A.asterisk},ref:t},C))}));t.a=Object(g.a)((function(e){return{root:{display:"block",transformOrigin:"top left"},focused:{},disabled:{},error:{},required:{},asterisk:{},formControl:{position:"absolute",left:0,top:0,transform:"translate(0, 24px) scale(1)"},marginDense:{transform:"translate(0, 21px) scale(1)"},shrink:{transform:"translate(0, 1.5px) scale(0.75)",transformOrigin:"top left"},animated:{transition:e.transitions.create(["color","transform"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})},filled:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 20px) scale(1)","&$marginDense":{transform:"translate(12px, 17px) scale(1)"},"&$shrink":{transform:"translate(12px, 10px) scale(0.75)","&$marginDense":{transform:"translate(12px, 7px) scale(0.75)"}}},outlined:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 20px) scale(1)","&$marginDense":{transform:"translate(14px, 12px) scale(1)"},"&$shrink":{transform:"translate(14px, -6px) scale(0.75)"}}}}),{name:"MuiInputLabel"})(I)}]]);\n+//# sourceMappingURL=2.eb2fd6ea.chunk.js.map\n\\ No newline at end of file\n' |
b |
diff -r 000000000000 -r 6df8d6e42152 static/js/2.eb2fd6ea.chunk.js.LICENSE.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/js/2.eb2fd6ea.chunk.js.LICENSE.txt Thu Sep 08 17:22:53 2022 +0000 |
b |
@@ -0,0 +1,163 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */ + +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames + */ + +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <http://feross.org> + * @license MIT + */ + +/*! + * https://github.com/Starcounter-Jack/JSON-Patch + * (c) 2017 Joachim Wester + * MIT license + */ + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +/*! Hammer.JS - v2.0.7 - 2016-04-22 + * http://hammerjs.github.io/ + * + * Copyright (c) 2016 Jorik Tangelder; + * Licensed under the MIT license */ + +/** + * splaytree v3.1.0 + * Fast Splay tree for Node and browser + * + * @author Alexander Milevski <info@w8r.name> + * @license MIT + * @preserve + */ + +/** + * @license Complex.js v2.0.11 11/02/2016 + * + * Copyright (c) 2016, Robert Eisele (robert@xarg.org) + * Dual licensed under the MIT or GPL Version 2 licenses. + **/ + +/** + * @license Fraction.js v4.0.12 09/09/2015 + * http://www.xarg.org/2014/03/rational-numbers-in-javascript/ + * + * Copyright (c) 2015, Robert Eisele (robert@xarg.org) + * Dual licensed under the MIT or GPL Version 2 licenses. + **/ + +/** + * @license long.js (c) 2013 Daniel Wirtz <dcode@dcode.io> + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/long.js for details + */ + +/** + * A better abstraction over CSS. + * + * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present + * @website https://github.com/cssinjs/jss + * @license MIT + */ + +/** @license React v0.19.1 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.0 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.14.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.14.0 + * react-jsx-dev-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.14.0 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ + +/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.16.1-lts + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ |
b |
diff -r 000000000000 -r 6df8d6e42152 static/js/2.eb2fd6ea.chunk.js.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/js/2.eb2fd6ea.chunk.js.map Thu Sep 08 17:22:53 2022 +0000 |
[ |
b'@@ -0,0 +1,1 @@\n+{"version":3,"sources":["../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/vega-util/build/vega-util.module.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/prop-types/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../../../../src/utils/log.js","../../../../src/utils/device-pixels.js","../../../../src/context/context.js","../../../src/index.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../src/utils/assert.js","../node_modules/gl-matrix/esm/mat4.js","../node_modules/@material-ui/styles/esm/withStyles/withStyles.js","../node_modules/@material-ui/core/esm/styles/withStyles.js","../node_modules/gl-matrix/esm/vec3.js","../node_modules/@math.gl/core/node_modules/gl-matrix/esm/common.js","../node_modules/gl-matrix/esm/common.js","../../../../src/lib/common.js","../../../../src/lib/validators.js","../node_modules/gl-matrix/esm/quat.js","../../../../../src/effects/lighting/point-light.js","../../../../../src/effects/lighting/camera-light.js","../../../../../src/effects/lighting/suncalc.js","../../../../../src/effects/lighting/sun-light.js","../../../../src/passes/screen-pass.js","../../../../src/effects/post-process-effect.js","../../../../src/viewports/globe-viewport.js","../../../../src/controllers/first-person-controller.js","../../../../src/views/first-person-view.js","../../../../src/controllers/globe-controller.js","../../../../src/views/globe-view.js","../../../../src/transitions/viewport-fly-to-interpolator.js","../../../../src/lib/constants.js","../node_modules/lodash/isEqual.js","../node_modules/react-dom/index.js","../node_modules/@material-ui/core/esm/utils/capitalize.js","../node_modules/@math.gl/web-mercator/node_modules/gl-matrix/esm/common.js","../node_modules/@math.gl/web-mercator/node_modules/gl-matrix/e'..b'px) scale(1)\'\\n },\\n \'&$shrink\': {\\n transform: \'translate(12px, 10px) scale(0.75)\',\\n \'&$marginDense\': {\\n transform: \'translate(12px, 7px) scale(0.75)\'\\n }\\n }\\n },\\n\\n /* Styles applied to the root element if `variant=\\"outlined\\"`. */\\n outlined: {\\n // see comment above on filled.zIndex\\n zIndex: 1,\\n pointerEvents: \'none\',\\n transform: \'translate(14px, 20px) scale(1)\',\\n \'&$marginDense\': {\\n transform: \'translate(14px, 12px) scale(1)\'\\n },\\n \'&$shrink\': {\\n transform: \'translate(14px, -6px) scale(0.75)\'\\n }\\n }\\n };\\n};\\nvar InputLabel = /*#__PURE__*/React.forwardRef(function InputLabel(props, ref) {\\n var classes = props.classes,\\n className = props.className,\\n _props$disableAnimati = props.disableAnimation,\\n disableAnimation = _props$disableAnimati === void 0 ? false : _props$disableAnimati,\\n margin = props.margin,\\n shrinkProp = props.shrink,\\n variant = props.variant,\\n other = _objectWithoutProperties(props, [\\"classes\\", \\"className\\", \\"disableAnimation\\", \\"margin\\", \\"shrink\\", \\"variant\\"]);\\n\\n var muiFormControl = useFormControl();\\n var shrink = shrinkProp;\\n\\n if (typeof shrink === \'undefined\' && muiFormControl) {\\n shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;\\n }\\n\\n var fcs = formControlState({\\n props: props,\\n muiFormControl: muiFormControl,\\n states: [\'margin\', \'variant\']\\n });\\n return /*#__PURE__*/React.createElement(FormLabel, _extends({\\n \\"data-shrink\\": shrink,\\n className: clsx(classes.root, className, muiFormControl && classes.formControl, !disableAnimation && classes.animated, shrink && classes.shrink, fcs.margin === \'dense\' && classes.marginDense, {\\n \'filled\': classes.filled,\\n \'outlined\': classes.outlined\\n }[fcs.variant]),\\n classes: {\\n focused: classes.focused,\\n disabled: classes.disabled,\\n error: classes.error,\\n required: classes.required,\\n asterisk: classes.asterisk\\n },\\n ref: ref\\n }, other));\\n});\\nprocess.env.NODE_ENV !== \\"production\\" ? InputLabel.propTypes = {\\n // ----------------------------- Warning --------------------------------\\n // | These PropTypes are generated from the TypeScript type definitions |\\n // | To update them edit the d.ts file and run \\"yarn proptypes\\" |\\n // ----------------------------------------------------------------------\\n\\n /**\\n * The contents of the `InputLabel`.\\n */\\n children: PropTypes.node,\\n\\n /**\\n * Override or extend the styles applied to the component.\\n * See [CSS API](#css) below for more details.\\n */\\n classes: PropTypes.object,\\n\\n /**\\n * @ignore\\n */\\n className: PropTypes.string,\\n\\n /**\\n * The color of the component. It supports those theme colors that make sense for this component.\\n */\\n color: PropTypes.oneOf([\'primary\', \'secondary\']),\\n\\n /**\\n * If `true`, the transition animation is disabled.\\n */\\n disableAnimation: PropTypes.bool,\\n\\n /**\\n * If `true`, apply disabled class.\\n */\\n disabled: PropTypes.bool,\\n\\n /**\\n * If `true`, the label will be displayed in an error state.\\n */\\n error: PropTypes.bool,\\n\\n /**\\n * If `true`, the input of this label is focused.\\n */\\n focused: PropTypes.bool,\\n\\n /**\\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\\n * FormControl.\\n */\\n margin: PropTypes.oneOf([\'dense\']),\\n\\n /**\\n * if `true`, the label will indicate that the input is required.\\n */\\n required: PropTypes.bool,\\n\\n /**\\n * If `true`, the label is shrunk.\\n */\\n shrink: PropTypes.bool,\\n\\n /**\\n * The variant to use.\\n */\\n variant: PropTypes.oneOf([\'filled\', \'outlined\', \'standard\'])\\n} : void 0;\\nexport default withStyles(styles, {\\n name: \'MuiInputLabel\'\\n})(InputLabel);"],"sourceRoot":""}\n\\ No newline at end of file\n' |
b |
diff -r 000000000000 -r 6df8d6e42152 static/js/main.303f671d.chunk.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/js/main.303f671d.chunk.js Thu Sep 08 17:22:53 2022 +0000 |
[ |
b'@@ -0,0 +1,2 @@\n+(this.webpackJsonpvitessce=this.webpackJsonpvitessce||[]).push([[0],{1107:function(e,t){},1145:function(e,t,n){},1148:function(e,t,n){"use strict";n.r(t);n(748);var a=n(39),r=n.n(a),o=n(8),i=n(0),s=n.n(i),l=n(7),c=n(2),p=n(11),u=n(1),d=n(4);function m(e){return Object(p.a)(e).reduce((function(e,t){var n=t[0],a=t[1];return Object.assign(e,Object(c.a)({},n,a))}),{})}function f(e,t,n){return 1===n?e:t}function y(e){return e.charAt(0).toUpperCase()+e.slice(1)}function h(e){var t,n="ABCDEFGHIJKLMNOPQRSTUVWXYZ",a=[0];function r(){var e=[];a.forEach((function(t){e.unshift(n[t])}));for(var t=!0,r=0;r<a.length;r++){if(!(++a[r]>=n.length)){t=!1;break}a[r]=0}return t&&a.push(0),e.join("")}do{t=r()}while(e.includes(t));return t}function g(e,t){var n=e.data;return Array.isArray(n)?n[t||n.length-1]:n}function v(e){var t=g(e),n=t.shape,a=t.dtype;return 3===n[t.labels.indexOf("c")]&&"Uint8"===a}var b={DESCRIPTION:"description",STATUS:"status",GENES:"genes",CELL_SETS:"cellSets",SCATTERPLOT:"scatterplot",SPATIAL:"spatial",HEATMAP:"heatmap",LAYER_CONTROLLER:"layerController",CELL_SET_SIZES:"cellSetSizes",GENOMIC_PROFILES:"genomicProfiles",CELL_SET_EXPRESSION:"cellSetExpression",EXPRESSION_HISTOGRAM:"expressionHistogram"},x={CELLS_JSON:"cells.json",CELL_SETS_JSON:"cell-sets.json",EXPRESSION_MATRIX_ZARR:"expression-matrix.zarr",GENOMIC_PROFILES_ZARR:"genomic-profiles.zarr",MOLECULES_JSON:"molecules.json",NEIGHBORHOODS_JSON:"neighborhoods.json",RASTER_JSON:"raster.json",RASTER_OME_ZARR:"raster.ome-zarr",CLUSTERS_JSON:"clusters.json",GENES_JSON:"genes.json",ANNDATA_CELL_SETS_ZARR:"anndata-cell-sets.zarr",ANNDATA_CELLS_ZARR:"anndata-cells.zarr",ANNDATA_EXPRESSION_MATRIX_ZARR:"anndata-expression-matrix.zarr"},O={DATASET:"dataset",EMBEDDING_TYPE:"embeddingType",EMBEDDING_ZOOM:"embeddingZoom",EMBEDDING_ROTATION:"embeddingRotation",EMBEDDING_TARGET_X:"embeddingTargetX",EMBEDDING_TARGET_Y:"embeddingTargetY",EMBEDDING_TARGET_Z:"embeddingTargetZ",EMBEDDING_CELL_SET_POLYGONS_VISIBLE:"embeddingCellSetPolygonsVisible",EMBEDDING_CELL_SET_LABELS_VISIBLE:"embeddingCellSetLabelsVisible",EMBEDDING_CELL_SET_LABEL_SIZE:"embeddingCellSetLabelSize",EMBEDDING_CELL_RADIUS:"embeddingCellRadius",EMBEDDING_CELL_RADIUS_MODE:"embeddingCellRadiusMode",EMBEDDING_CELL_OPACITY:"embeddingCellOpacity",EMBEDDING_CELL_OPACITY_MODE:"embeddingCellOpacityMode",SPATIAL_ZOOM:"spatialZoom",SPATIAL_ROTATION:"spatialRotation",SPATIAL_TARGET_X:"spatialTargetX",SPATIAL_TARGET_Y:"spatialTargetY",SPATIAL_TARGET_Z:"spatialTargetZ",SPATIAL_ROTATION_X:"spatialRotationX",SPATIAL_ROTATION_Y:"spatialRotationY",SPATIAL_ROTATION_Z:"spatialRotationZ",SPATIAL_ROTATION_ORBIT:"spatialRotationOrbit",SPATIAL_ORBIT_AXIS:"spatialOrbitAxis",SPATIAL_AXIS_FIXED:"spatialAxisFixed",HEATMAP_ZOOM_X:"heatmapZoomX",HEATMAP_ZOOM_Y:"heatmapZoomY",HEATMAP_TARGET_X:"heatmapTargetX",HEATMAP_TARGET_Y:"heatmapTargetY",CELL_FILTER:"cellFilter",CELL_HIGHLIGHT:"cellHighlight",CELL_SET_SELECTION:"cellSetSelection",CELL_SET_HIGHLIGHT:"cellSetHighlight",CELL_SET_COLOR:"cellSetColor",GENE_FILTER:"geneFilter",GENE_HIGHLIGHT:"geneHighlight",GENE_SELECTION:"geneSelection",GENE_EXPRESSION_COLORMAP:"geneExpressionColormap",GENE_EXPRESSION_TRANSFORM:"geneExpressionTransform",GENE_EXPRESSION_COLORMAP_RANGE:"geneExpressionColormapRange",CELL_COLOR_ENCODING:"cellColorEncoding",SPATIAL_RASTER_LAYERS:"spatialRasterLayers",SPATIAL_CELLS_LAYER:"spatialCellsLayer",SPATIAL_MOLECULES_LAYER:"spatialMoleculesLayer",SPATIAL_NEIGHBORHOODS_LAYER:"spatialNeighborhoodsLayer",GENOMIC_ZOOM_X:"genomicZoomX",GENOMIC_ZOOM_Y:"genomicZoomY",GENOMIC_TARGET_X:"genomicTargetX",GENOMIC_TARGET_Y:"genomicTargetY",ADDITIONAL_CELL_SETS:"additionalCellSets",MOLECULE_HIGHLIGHT:"moleculeHighlight"},j=function(){function e(t,n,a,r){Object(u.a)(this,e),this.file=Object(l.a)({url:t,type:n,fileType:a},null!==r?{options:r}:{})}return Object(d.a)(e,[{key:"toJSON",value:function(){return this.file}}]),e}(),E=function(){function e(t,n,a){Object(u.a)(this,e),this.d'..b'function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":u&&u in Object(t)?o(t):i(t)}},function(t,n,e){var r=e(8).Symbol;t.exports=r},function(t,n){t.exports=function(t,n,e){return t===t&&(void 0!==e&&(t=t<=e?t:e),void 0!==n&&(t=t>=n?t:n)),t}},function(t,n,e){var r=e(4),o=e(13);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==r(t)}},function(t,n,e){var r=e(9),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,n,e){(function(n){var e="object"==typeof n&&n&&n.Object===Object&&n;t.exports=e}).call(this,e(10))},function(t,n){var e;e=function(){return this}();try{e=e||new Function("return this")()}catch(r){"object"===typeof window&&(e=window)}t.exports=e},function(t,n,e){var r=e(5),o=Object.prototype,i=o.hasOwnProperty,u=o.toString,c=r?r.toStringTag:void 0;t.exports=function(t){var n=i.call(t,c),e=t[c];try{t[c]=void 0;var r=!0}catch(f){}var o=u.call(t);return r&&(n?t[c]=e:delete t[c]),o}},function(t,n){var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},function(t,n){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,n,e){var r=e(15),o=e(16),i=e(22);t.exports=function(t){return function(n,e,u){return u&&"number"!=typeof u&&o(n,e,u)&&(e=u=void 0),n=i(n),void 0===e?(e=n,n=0):e=i(e),u=void 0===u?n<e?1:-1:i(u),r(n,e,u,t)}}},function(t,n){var e=Math.ceil,r=Math.max;t.exports=function(t,n,o,i){for(var u=-1,c=r(e((n-t)/(o||1)),0),f=Array(c);c--;)f[i?c:++u]=t,t+=o;return f}},function(t,n,e){var r=e(17),o=e(18),i=e(21),u=e(0);t.exports=function(t,n,e){if(!u(e))return!1;var c=typeof n;return!!("number"==c?o(e)&&i(n,e.length):"string"==c&&n in e)&&r(e[n],t)}},function(t,n){t.exports=function(t,n){return t===n||t!==t&&n!==n}},function(t,n,e){var r=e(19),o=e(20);t.exports=function(t){return null!=t&&o(t.length)&&!r(t)}},function(t,n,e){var r=e(4),o=e(0);t.exports=function(t){if(!o(t))return!1;var n=r(t);return"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n}},function(t,n){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},function(t,n){var e=/^(?:0|[1-9]\\\\d*)$/;t.exports=function(t,n){var r=typeof t;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&e.test(t))&&t>-1&&t%1==0&&t<n}},function(t,n,e){var r=e(3);t.exports=function(t){return t?(t=r(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t===t?t:0:0===t?t:0}},function(t,n,e){"use strict";e.r(n);e(1);var r=e(2),o=e.n(r);function i(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}var u,c=9728,f=10240,l=10241,a=10242,s=10243,p=33071;i(u={},l,c),i(u,f,c),i(u,a,p),i(u,s,p);function v(t,n){var e,r,i,u=n.tileSize,c=n.tileI,f=n.tileJ,l=n.numCells,a=n.numGenes,s=n.cellOrdering,p=n.cells,v=new Uint8Array(u*u),d=o()(u);return d.forEach((function(n){(r=f*u+n)<l&&(i=p.indexOf(s[r]))>=-1&&d.forEach((function(r){e=t[i*a+(c*u+r)],v[(u-r-1)*u+n]=e}))})),v}function d(t,n){var e,r,i,u,c=n.tileSize,f=n.tileI,l=n.tileJ,a=n.numCells,s=n.numGenes,p=n.cellOrdering,v=n.cells,d=new Uint8Array(c*c),b=o()(c);return b.forEach((function(n){(r=f*c+n)<a&&(u=v.indexOf(p[r]))>=-1&&b.forEach((function(r){e=(i=l*c+r)<s?t[u*s+i]:0,d[(c-n-1)*c+r]=e}))})),d}if("undefined"!==typeof self){const t={getTile:function({curr:t,tileI:n,tileJ:e,tileSize:r,cellOrdering:o,rows:i,cols:u,data:c,transpose:f}){const l=new Uint8Array(c),a=u.length;return[{tile:(f?v:d)(l,{tileSize:r,tileI:n,tileJ:e,numCells:o.length,numGenes:a,cellOrdering:o,cells:i}),buffer:c,curr:t},[c]]}};self.addEventListener("message",n=>{try{const[e,r]=n.data,[o,i]=t[e](r);self.postMessage(o,i)}catch(e){console.warn(e)}})}}]);\\n//# sourceMappingURL=6f6f723a7874f4178a42.worker.js.map\',null)}},747:function(e,t,n){e.exports=n(1148)},863:function(e,t){},875:function(e,t){}},[[747,1,2]]]);\n+//# sourceMappingURL=main.303f671d.chunk.js.map\n\\ No newline at end of file\n' |
b |
diff -r 000000000000 -r 6df8d6e42152 static/js/main.303f671d.chunk.js.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/js/main.303f671d.chunk.js.map Thu Sep 08 17:22:53 2022 +0000 |
[ |
b'@@ -0,0 +1,1 @@\n+{"version":3,"sources":["utils.js","app/constants.js","api/VitessceConfig.js","demo/utils.js","demo/view-configs/codeluppi.js","demo/view-configs/eng.js","demo/view-configs/wang.js","demo/view-configs/spraggins.js","demo/view-configs/satija.js","demo/view-configs/blin.js","demo/view-configs/ome-ngff-legacy.js","demo/view-configs/hubmap.js","demo/view-configs/coordination-types/embeddingZoom.js","demo/view-configs/coordination-types/embeddingTargetX.js","demo/view-configs/coordination-types/embeddingTargetY.js","demo/view-configs/coordination-types/embeddingCellSetPolygonsVisible.js","demo/configs.js","demo/view-configs/rao.js","demo/view-configs/tenx.js","components/classNames.js","app/Warning.js","components/shared-mui/styles.js","app/state/hooks.js","app/vitessce-grid-layout/layout-utils.js","app/vitessce-grid-layout/VitessceGridLayout.js","loaders/AbstractTwoStepLoader.js","loaders/AbstractLoader.js","loaders/errors/AbstractLoaderError.js","loaders/errors/LoaderValidationError.js","loaders/errors/LoaderNotFoundError.js","loaders/LoaderResult.js","loaders/JsonLoader.js","loaders/MatrixZarrLoader.js","loaders/GenesJsonAsMatrixZarrLoader.js","loaders/ClustersJsonAsMatrixZarrLoader.js","components/sets/constants.js","components/utils.js","components/spatial/constants.js","layers/constants.js","layers/BitmaskLayer.js","layers/bitmask-layer-shaders.js","components/layer-controller/utils.js","components/spatial/utils.js","loaders/RasterJsonLoader.js","loaders/OmeZarrLoader.js","components/sets/utils.js","components/sets/cell-set-utils.js","components/sets/io.js","loaders/CellSetsJsonLoader.js","loaders/anndata-loaders/CellSetsZarrLoader.js","loaders/anndata-loaders/MatrixZarrLoader.js","loaders/anndata-loaders/index.js","loaders/anndata-loaders/CellsZarrLoader.js","loaders/GenomicProfilesZarrLoader.js","loaders/data-sources/ZarrDataSource.js","loaders/data-sources/AnnDataSource.js","loaders/errors/DataSourceFetchError.js","loaders/data-sources/JsonSource.js","loaders/types.js","app/vitessce-grid-utils.js","components/hooks.js","app/VitessceGrid.js","app/state/coordination.js","app/view-config-upgraders.js","app/view-config-versions.js","app/CallbackPublisher.js","components/data-hooks.js","components/LoadingIndicator.js","components/shared-mui/components.js","components/TitleInfo.js","components/description/Description.js","components/description/DescriptionSubscriber.js","components/status/Status.js","components/selectable-table/SelectableTable.js","components/genes/Genes.js","components/genes/GenesSubscriber.js","components/sets/Tree.js","components/sets/HelpTooltip.js","components/sets/Popover.js","components/sets/PopoverMenu.js","assets/menu.svg","components/sets/TreeNode.js","assets/sets/union.svg","assets/sets/intersection.svg","assets/sets/complement.svg","components/sets/SetsManagerButtons.js","components/sets/SetsManager.js","components/sets/CellSetsManagerSubscriber.js","components/interpolate-colors.js","layers/SelectionLayer.js","layers/selection-utils.js","layers/heatmap-constants.js","layers/heatmap-bitmap-layer-shaders.js","layers/HeatmapBitmapLayer.js","layers/PixelatedBitmapLayer.js","layers/HeatmapCompositeTextLayer.js","components/shared-spatial-scatterplot/quadtree.js","assets/tools/near_me.svg","assets/tools/selection_rectangle.svg","assets/tools/selection_lasso.svg","components/shared-spatial-scatterplot/ToolMenu.js","components/shared-spatial-scatterplot/cursor.js","components/shared-spatial-scatterplot/AbstractSpatialOrScatterplot.js","components/shared-spatial-scatterplot/force-collide-rects.js","layer-extensions/ScaledExpressionExtension/shader-module.js","layer-extensions/ScaledExpressionExtension/ScaledExpressionExtension.js","layer-extensions/ScaledExpressionExtension/index.js","layer-extensions/SelectionExtension/shader-module.js","layer-extensions/SelectionExtension/SelectionExtension.js","layer-extensions/SelectionExtension/index.js","components/scatterplot/Scatterplot.js","compone'..b'll==t?void 0===t?\\\\\\"[object Undefined]\\\\\\":\\\\\\"[object Null]\\\\\\":u&&u in Object(t)?o(t):i(t)}},function(t,n,e){var r=e(8).Symbol;t.exports=r},function(t,n){t.exports=function(t,n,e){return t===t&&(void 0!==e&&(t=t<=e?t:e),void 0!==n&&(t=t>=n?t:n)),t}},function(t,n,e){var r=e(4),o=e(13);t.exports=function(t){return\\\\\\"symbol\\\\\\"==typeof t||o(t)&&\\\\\\"[object Symbol]\\\\\\"==r(t)}},function(t,n,e){var r=e(9),o=\\\\\\"object\\\\\\"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function(\\\\\\"return this\\\\\\")();t.exports=i},function(t,n,e){(function(n){var e=\\\\\\"object\\\\\\"==typeof n&&n&&n.Object===Object&&n;t.exports=e}).call(this,e(10))},function(t,n){var e;e=function(){return this}();try{e=e||new Function(\\\\\\"return this\\\\\\")()}catch(r){\\\\\\"object\\\\\\"===typeof window&&(e=window)}t.exports=e},function(t,n,e){var r=e(5),o=Object.prototype,i=o.hasOwnProperty,u=o.toString,c=r?r.toStringTag:void 0;t.exports=function(t){var n=i.call(t,c),e=t[c];try{t[c]=void 0;var r=!0}catch(f){}var o=u.call(t);return r&&(n?t[c]=e:delete t[c]),o}},function(t,n){var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},function(t,n){t.exports=function(t){return null!=t&&\\\\\\"object\\\\\\"==typeof t}},function(t,n,e){var r=e(15),o=e(16),i=e(22);t.exports=function(t){return function(n,e,u){return u&&\\\\\\"number\\\\\\"!=typeof u&&o(n,e,u)&&(e=u=void 0),n=i(n),void 0===e?(e=n,n=0):e=i(e),u=void 0===u?n<e?1:-1:i(u),r(n,e,u,t)}}},function(t,n){var e=Math.ceil,r=Math.max;t.exports=function(t,n,o,i){for(var u=-1,c=r(e((n-t)/(o||1)),0),f=Array(c);c--;)f[i?c:++u]=t,t+=o;return f}},function(t,n,e){var r=e(17),o=e(18),i=e(21),u=e(0);t.exports=function(t,n,e){if(!u(e))return!1;var c=typeof n;return!!(\\\\\\"number\\\\\\"==c?o(e)&&i(n,e.length):\\\\\\"string\\\\\\"==c&&n in e)&&r(e[n],t)}},function(t,n){t.exports=function(t,n){return t===n||t!==t&&n!==n}},function(t,n,e){var r=e(19),o=e(20);t.exports=function(t){return null!=t&&o(t.length)&&!r(t)}},function(t,n,e){var r=e(4),o=e(0);t.exports=function(t){if(!o(t))return!1;var n=r(t);return\\\\\\"[object Function]\\\\\\"==n||\\\\\\"[object GeneratorFunction]\\\\\\"==n||\\\\\\"[object AsyncFunction]\\\\\\"==n||\\\\\\"[object Proxy]\\\\\\"==n}},function(t,n){t.exports=function(t){return\\\\\\"number\\\\\\"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},function(t,n){var e=/^(?:0|[1-9]\\\\\\\\d*)$/;t.exports=function(t,n){var r=typeof t;return!!(n=null==n?9007199254740991:n)&&(\\\\\\"number\\\\\\"==r||\\\\\\"symbol\\\\\\"!=r&&e.test(t))&&t>-1&&t%1==0&&t<n}},function(t,n,e){var r=e(3);t.exports=function(t){return t?(t=r(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t===t?t:0:0===t?t:0}},function(t,n,e){\\\\\\"use strict\\\\\\";e.r(n);e(1);var r=e(2),o=e.n(r);function i(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}var u,c=9728,f=10240,l=10241,a=10242,s=10243,p=33071;i(u={},l,c),i(u,f,c),i(u,a,p),i(u,s,p);function v(t,n){var e,r,i,u=n.tileSize,c=n.tileI,f=n.tileJ,l=n.numCells,a=n.numGenes,s=n.cellOrdering,p=n.cells,v=new Uint8Array(u*u),d=o()(u);return d.forEach((function(n){(r=f*u+n)<l&&(i=p.indexOf(s[r]))>=-1&&d.forEach((function(r){e=t[i*a+(c*u+r)],v[(u-r-1)*u+n]=e}))})),v}function d(t,n){var e,r,i,u,c=n.tileSize,f=n.tileI,l=n.tileJ,a=n.numCells,s=n.numGenes,p=n.cellOrdering,v=n.cells,d=new Uint8Array(c*c),b=o()(c);return b.forEach((function(n){(r=f*c+n)<a&&(u=v.indexOf(p[r]))>=-1&&b.forEach((function(r){e=(i=l*c+r)<s?t[u*s+i]:0,d[(c-n-1)*c+r]=e}))})),d}if(\\\\\\"undefined\\\\\\"!==typeof self){const t={getTile:function({curr:t,tileI:n,tileJ:e,tileSize:r,cellOrdering:o,rows:i,cols:u,data:c,transpose:f}){const l=new Uint8Array(c),a=u.length;return[{tile:(f?v:d)(l,{tileSize:r,tileI:n,tileJ:e,numCells:o.length,numGenes:a,cellOrdering:o,cells:i}),buffer:c,curr:t},[c]]}};self.addEventListener(\\\\\\"message\\\\\\",n=>{try{const[e,r]=n.data,[o,i]=t[e](r);self.postMessage(o,i)}catch(e){console.warn(e)}})}}]);\\\\n//# sourceMappingURL=6f6f723a7874f4178a42.worker.js.map\\", null);\\n};"],"sourceRoot":""}\n\\ No newline at end of file\n' |
b |
diff -r 000000000000 -r 6df8d6e42152 static/js/runtime-main.784d90f4.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/js/runtime-main.784d90f4.js Thu Sep 08 17:22:53 2022 +0000 |
[ |
@@ -0,0 +1,2 @@ +!function(e){function t(t){for(var n,i,l=t[0],f=t[1],a=t[2],p=0,s=[];p<l.length;p++)i=l[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(c&&c(t);s.length;)s.shift()();return u.push.apply(u,a||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,l=1;l<r.length;l++){var f=r[l];0!==o[f]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="./";var l=this.webpackJsonpvitessce=this.webpackJsonpvitessce||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var a=0;a<l.length;a++)t(l[a]);var c=f;r()}([]); +//# sourceMappingURL=runtime-main.784d90f4.js.map \ No newline at end of file |
b |
diff -r 000000000000 -r 6df8d6e42152 static/js/runtime-main.784d90f4.js.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/js/runtime-main.784d90f4.js.map Thu Sep 08 17:22:53 2022 +0000 |
[ |
b'@@ -0,0 +1,1 @@\n+{"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.784d90f4.js","sourcesContent":[" \\t// install a JSONP callback for chunk loading\\n \\tfunction webpackJsonpCallback(data) {\\n \\t\\tvar chunkIds = data[0];\\n \\t\\tvar moreModules = data[1];\\n \\t\\tvar executeModules = data[2];\\n\\n \\t\\t// add \\"moreModules\\" to the modules object,\\n \\t\\t// then flag all \\"chunkIds\\" as loaded and fire callback\\n \\t\\tvar moduleId, chunkId, i = 0, resolves = [];\\n \\t\\tfor(;i < chunkIds.length; i++) {\\n \\t\\t\\tchunkId = chunkIds[i];\\n \\t\\t\\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\\n \\t\\t\\t\\tresolves.push(installedChunks[chunkId][0]);\\n \\t\\t\\t}\\n \\t\\t\\tinstalledChunks[chunkId] = 0;\\n \\t\\t}\\n \\t\\tfor(moduleId in moreModules) {\\n \\t\\t\\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\\n \\t\\t\\t\\tmodules[moduleId] = moreModules[moduleId];\\n \\t\\t\\t}\\n \\t\\t}\\n \\t\\tif(parentJsonpFunction) parentJsonpFunction(data);\\n\\n \\t\\twhile(resolves.length) {\\n \\t\\t\\tresolves.shift()();\\n \\t\\t}\\n\\n \\t\\t// add entry modules from loaded chunk to deferred list\\n \\t\\tdeferredModules'..b'lfilled = true;\\n \\t\\t\\tfor(var j = 1; j < deferredModule.length; j++) {\\n \\t\\t\\t\\tvar depId = deferredModule[j];\\n \\t\\t\\t\\tif(installedChunks[depId] !== 0) fulfilled = false;\\n \\t\\t\\t}\\n \\t\\t\\tif(fulfilled) {\\n \\t\\t\\t\\tdeferredModules.splice(i--, 1);\\n \\t\\t\\t\\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\\n \\t\\t\\t}\\n \\t\\t}\\n\\n \\t\\treturn result;\\n \\t}\\n\\n \\t// The module cache\\n \\tvar installedModules = {};\\n\\n \\t// object to store loaded and loading chunks\\n \\t// undefined = chunk not loaded, null = chunk preloaded/prefetched\\n \\t// Promise = chunk loading, 0 = chunk loaded\\n \\tvar installedChunks = {\\n \\t\\t1: 0\\n \\t};\\n\\n \\tvar deferredModules = [];\\n\\n \\t// The require function\\n \\tfunction __webpack_require__(moduleId) {\\n\\n \\t\\t// Check if module is in cache\\n \\t\\tif(installedModules[moduleId]) {\\n \\t\\t\\treturn installedModules[moduleId].exports;\\n \\t\\t}\\n \\t\\t// Create a new module (and put it into the cache)\\n \\t\\tvar module = installedModules[moduleId] = {\\n \\t\\t\\ti: moduleId,\\n \\t\\t\\tl: false,\\n \\t\\t\\texports: {}\\n \\t\\t};\\n\\n \\t\\t// Execute the module function\\n \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n\\n \\t\\t// Flag the module as loaded\\n \\t\\tmodule.l = true;\\n\\n \\t\\t// Return the exports of the module\\n \\t\\treturn module.exports;\\n \\t}\\n\\n\\n \\t// expose the modules object (__webpack_modules__)\\n \\t__webpack_require__.m = modules;\\n\\n \\t// expose the module cache\\n \\t__webpack_require__.c = installedModules;\\n\\n \\t// define getter function for harmony exports\\n \\t__webpack_require__.d = function(exports, name, getter) {\\n \\t\\tif(!__webpack_require__.o(exports, name)) {\\n \\t\\t\\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\\n \\t\\t}\\n \\t};\\n\\n \\t// define __esModule on exports\\n \\t__webpack_require__.r = function(exports) {\\n \\t\\tif(typeof Symbol !== \'undefined\' && Symbol.toStringTag) {\\n \\t\\t\\tObject.defineProperty(exports, Symbol.toStringTag, { value: \'Module\' });\\n \\t\\t}\\n \\t\\tObject.defineProperty(exports, \'__esModule\', { value: true });\\n \\t};\\n\\n \\t// create a fake namespace object\\n \\t// mode & 1: value is a module id, require it\\n \\t// mode & 2: merge all properties of value into the ns\\n \\t// mode & 4: return value when already ns object\\n \\t// mode & 8|1: behave like require\\n \\t__webpack_require__.t = function(value, mode) {\\n \\t\\tif(mode & 1) value = __webpack_require__(value);\\n \\t\\tif(mode & 8) return value;\\n \\t\\tif((mode & 4) && typeof value === \'object\' && value && value.__esModule) return value;\\n \\t\\tvar ns = Object.create(null);\\n \\t\\t__webpack_require__.r(ns);\\n \\t\\tObject.defineProperty(ns, \'default\', { enumerable: true, value: value });\\n \\t\\tif(mode & 2 && typeof value != \'string\') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\\n \\t\\treturn ns;\\n \\t};\\n\\n \\t// getDefaultExport function for compatibility with non-harmony modules\\n \\t__webpack_require__.n = function(module) {\\n \\t\\tvar getter = module && module.__esModule ?\\n \\t\\t\\tfunction getDefault() { return module[\'default\']; } :\\n \\t\\t\\tfunction getModuleExports() { return module; };\\n \\t\\t__webpack_require__.d(getter, \'a\', getter);\\n \\t\\treturn getter;\\n \\t};\\n\\n \\t// Object.prototype.hasOwnProperty.call\\n \\t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\\n\\n \\t// __webpack_public_path__\\n \\t__webpack_require__.p = \\"./\\";\\n\\n \\tvar jsonpArray = this[\\"webpackJsonpvitessce\\"] = this[\\"webpackJsonpvitessce\\"] || [];\\n \\tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\\n \\tjsonpArray.push = webpackJsonpCallback;\\n \\tjsonpArray = jsonpArray.slice();\\n \\tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\\n \\tvar parentJsonpFunction = oldJsonpFunction;\\n\\n\\n \\t// run deferred modules from other chunks\\n \\tcheckDeferredModules();\\n"],"sourceRoot":""}\n\\ No newline at end of file\n' |
b |
diff -r 000000000000 -r 6df8d6e42152 static/media/complement.c220ca8c.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/media/complement.c220ca8c.svg Thu Sep 08 17:22:53 2022 +0000 |
b |
@@ -0,0 +1,24 @@ +<svg + id="svg14" + version="1.1" + viewBox="0 0 25.3804963846 16" + height="16" + width="25.3804963846"> + <defs> + <mask id="union-mask" x="0" y="0" width="25.3804963846" height="16"> + <rect x="5%" width="90%" height="100%" fill="white"/> + <g + transform="translate(4.69,0)" + > + <path + d="m 11.467471,11.811278 c 0.198237,-0.322177 0.508,-1.011333 0.653661,-1.454255 0.659343,-2.0049141 0.44323,-4.2620847 -0.577734,-6.0340822 l -0.168844,-0.2930481 0.105744,0.017887 c 0.759902,0.1285441 1.368762,0.3699553 1.856675,0.7361658 1.988296,1.4923476 2.192477,4.3353549 0.434717,6.0529895 -0.641216,0.626581 -1.299647,0.94683 -2.294136,1.115833 l -0.108488,0.01844 z M 4.3162122,11.919169 C 1.9278944,11.487872 0.46692382,9.0323123 1.234873,6.7401372 1.5621727,5.763213 2.2610593,4.9489746 3.1840041,4.4693005 3.5978035,4.2542401 3.9427842,4.145371 4.5197023,4.0477802 L 4.6254464,4.0298927 4.4571836,4.3223069 C 3.4332707,6.1017061 3.2180432,8.3476022 3.878868,10.357023 c 0.1458466,0.443487 0.4554716,1.132155 0.6542959,1.455285 0.054471,0.08853 0.087814,0.159599 0.074096,0.157937 -0.013718,-0.0017 -0.1446898,-0.02465 -0.2910477,-0.05108 z M 5.0000001,3 C 2.2,3 0,5.2 0,8 c 0,2.8 2.2,5 5.0000001,5 0.6,0 1.1,-0.1 1.6,-0.3 C 5.3000001,11.6 4.5,9.7999998 4.5,8 4.5,6.2 5.3000001,4.5 6.6000001,3.3 c -0.5,-0.2 -1,-0.3 -1.6,-0.3 z M 4.65,4.02 C 3.92,5.17 3.51,6.54 3.51,8 c 0,1.4599998 0.42,2.83 1.14,3.98 C 2.61,11.8 1.01,10.08 1.01,8 1.01,5.92 2.61,4.2 4.65,4.02 Z M 8,4 C 6.8,4.9 6,6.4 6,8 6,9.6 6.8,11.1 8,12 9.2,11.1 10,9.7 10,8 10,6.3 9.2,4.9 8,4 Z m 3,-1 c 2.8,0 5,2.2 5,5 0,2.8 -2.2,5 -5,5 C 10.4,13 9.9,12.9 9.4,12.7 10.7,11.6 11.5,9.8 11.5,8 11.5,6.2 10.7,4.5 9.4,3.3 9.9,3.1 10.4,3 11,3 Z m 0.35,1.02 c 0.73,1.15 1.14,2.52 1.14,3.98 0,1.46 -0.42,2.83 -1.14,3.98 2.04,-0.18 3.64,-1.9 3.64,-3.98 0,-2.08 -1.6,-3.8 -3.64,-3.98 z" + style="stroke-width:0.234;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + fill="black" + /> + </g> + </mask> + </defs> + <g> + <rect x="0" y="0" width="25.3804963846" height="16" mask="url(#union-mask)"/> + </g> +</svg> |
b |
diff -r 000000000000 -r 6df8d6e42152 static/media/intersection.b0003109.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/media/intersection.b0003109.svg Thu Sep 08 17:22:53 2022 +0000 |
b |
@@ -0,0 +1,14 @@ +<svg + width="18" + height="12" + viewBox="0 0 16 10" + version="1.1"> + <g + transform="translate(0,-3)" + > + <path + d="M 5.0000001,3 C 2.2,3 0,5.2 0,8 c 0,2.8 2.2,5 5.0000001,5 0.6,0 1.1,-0.1 1.6,-0.3 C 5.3000001,11.6 4.5,9.7999998 4.5,8 4.5,6.2 5.3000001,4.5 6.6000001,3.3 c -0.5,-0.2 -1,-0.3 -1.6,-0.3 z M 4.65,4.02 C 3.92,5.17 3.51,6.54 3.51,8 c 0,1.4599998 0.42,2.83 1.14,3.98 C 2.61,11.8 1.01,10.08 1.01,8 1.01,5.92 2.61,4.2 4.65,4.02 Z M 8,4 C 6.8,4.9 6,6.4 6,8 6,9.6 6.8,11.1 8,12 9.2,11.1 10,9.7 10,8 10,6.3 9.2,4.9 8,4 Z m 3,-1 c 2.8,0 5,2.2 5,5 0,2.8 -2.2,5 -5,5 C 10.4,13 9.9,12.9 9.4,12.7 10.7,11.6 11.5,9.8 11.5,8 11.5,6.2 10.7,4.5 9.4,3.3 9.9,3.1 10.4,3 11,3 Z m 0.35,1.02 c 0.73,1.15 1.14,2.52 1.14,3.98 0,1.46 -0.42,2.83 -1.14,3.98 2.04,-0.18 3.64,-1.9 3.64,-3.98 0,-2.08 -1.6,-3.8 -3.64,-3.98 z" + style="stroke-width:0.234;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + /> + </g> +</svg> |
b |
diff -r 000000000000 -r 6df8d6e42152 static/media/menu.bc56e94a.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/media/menu.bc56e94a.svg Thu Sep 08 17:22:53 2022 +0000 |
b |
@@ -0,0 +1,1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 18c1.657 0 3 1.343 3 3s-1.343 3-3 3-3-1.343-3-3 1.343-3 3-3zm0-9c1.657 0 3 1.343 3 3s-1.343 3-3 3-3-1.343-3-3 1.343-3 3-3zm0-9c1.657 0 3 1.343 3 3s-1.343 3-3 3-3-1.343-3-3 1.343-3 3-3z"/></svg> \ No newline at end of file |
b |
diff -r 000000000000 -r 6df8d6e42152 static/media/near_me.2a308adc.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/media/near_me.2a308adc.svg Thu Sep 08 17:22:53 2022 +0000 |
b |
@@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> + <path fill="none" d="M0 0h24v24H0V0z"/> + <path d="M21 3L3 10.53v.98l6.84 2.65L12.48 21h.98L21 3z"/> +</svg> |
b |
diff -r 000000000000 -r 6df8d6e42152 static/media/selection_lasso.00e80a33.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/media/selection_lasso.00e80a33.svg Thu Sep 08 17:22:53 2022 +0000 |
b |
@@ -0,0 +1,8 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"> + <g transform="translate(0,3)"> + <path + style="stroke-width:0.343565" + d="M 23.942314,4.6958443 C 23.446206,1.8868581 19.727461,0 14.687364,0 13.437819,0 12.150138,0.11543779 10.859708,0.34287772 4.1629423,1.5250844 -0.58168816,5.2884937 0.05768601,8.911385 c 0.25355086,1.439193 1.35605049,2.63583 3.04638949,3.461072 -0.2569865,0.387198 -0.4074679,0.826617 -0.4074679,1.29524 0,1.337498 1.1863293,2.457176 2.7639791,2.728248 l -1.3615475,2.333149 c -0.1576963,0.271073 -0.066308,0.61876 0.2047647,0.776457 0.090014,0.05291 0.1886171,0.07799 0.2858459,0.07799 0.1951448,0 0.3851362,-0.100665 0.4912977,-0.281723 l 1.6803757,-2.88148 C 8.41868,16.20561 9.6895264,15.063601 9.6998333,13.683844 c 6.872e-4,-0.0055 0.00137,-0.01065 0.00137,-0.01615 0,-0.02336 -0.00344,-0.04569 -0.00481,-0.06837 1.1292977,-0.0213 2.2847067,-0.130211 3.4435507,-0.334975 6.69711,-1.181863 11.44174,-4.9456164 10.802366,-8.5685077 z M 3.83312,13.667353 c 0,-0.30749 0.1281497,-0.59849 0.3470005,-0.848261 0.1219655,0.04295 0.2456489,0.08383 0.3717372,0.123339 l 1.2234344,2.352045 C 4.6865351,15.149835 3.83312,14.46408 3.83312,13.667353 Z M 7.0141869,15.216144 6.0223152,13.309702 5.4008064,12.114097 c 0.121622,-0.03161 0.2477103,-0.05634 0.3772342,-0.07387 0.1367388,-0.0189 0.2772568,-0.02886 0.420867,-0.02886 0.5067581,0 0.980534,0.11956 1.3701366,0.317454 0.5696305,0.289968 0.9554538,0.750345 0.9904974,1.262944 0.00137,0.02542 0.0055,0.05016 0.0055,0.07593 0,0.698124 -0.6562089,1.310356 -1.5508518,1.548447 z m 5.9185921,-3.126441 c -1.217251,0.214728 -2.429691,0.323982 -3.6060571,0.324669 -0.5765018,-0.911821 -1.7614569,-1.53917 -3.1278143,-1.53917 -0.4717146,0 -0.921441,0.07593 -1.332001,0.211292 -0.3061162,0.100665 -0.5878394,0.237403 -0.8427645,0.39991 C 2.4598914,10.828133 1.4360682,9.8579062 1.2319907,8.7035283 0.72660678,5.8381974 5.2307418,2.5475333 11.067221,1.5175259 c 1.222061,-0.2161023 2.439998,-0.3246688 3.620143,-0.3246688 4.371863,0 7.694479,1.5250844 8.080645,3.7101568 0.505041,2.8653309 -3.998751,6.1566821 -9.83523,7.1866891 z" + id="path10" /> + </g> +</svg> |
b |
diff -r 000000000000 -r 6df8d6e42152 static/media/selection_rectangle.aa477261.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/media/selection_rectangle.aa477261.svg Thu Sep 08 17:22:53 2022 +0000 |
b |
@@ -0,0 +1,18 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"> + <!-- Based on rounded_corner.svg --> + <path d=" + M19 19h2v2h-2v-2zm0-2h2v-2h-2v2z + M3 13h2v-2H3v2zm0 4h2v-2H3v2z + m0-8h2V7H3v2zm0-4h2V3H3v2z + m4 0h2V3H7v2zm8 16h2v-2h-2v2z + m-4 0h2v-2h-2v2z + m4 0h2v-2h-2v2z + m-8 0h2v-2H7v2z + m-4 0h2v-2H3v2z + M11 5h2v-2h-2v2z + M15 5h2v-2h-2v2z + M19 5h2v-2h-2v2z + M19 9h2v-2h-2v2z + M19 13h2v-2h-2v2z + "/> +</svg> |
b |
diff -r 000000000000 -r 6df8d6e42152 static/media/union.de5168c6.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/static/media/union.de5168c6.svg Thu Sep 08 17:22:53 2022 +0000 |
b |
@@ -0,0 +1,14 @@ +<svg + version="1.1" + viewBox="0 0 16.433999 10.234" + height="12" + width="18"> + <g + transform="translate(0.117,-2.883)" + > + <path + d="m 11.467471,11.811278 c 0.198237,-0.322177 0.508,-1.011333 0.653661,-1.454255 0.659343,-2.0049141 0.44323,-4.2620847 -0.577734,-6.0340822 l -0.168844,-0.2930481 0.105744,0.017887 c 0.759902,0.1285441 1.368762,0.3699553 1.856675,0.7361658 1.988296,1.4923476 2.192477,4.3353549 0.434717,6.0529895 -0.641216,0.626581 -1.299647,0.94683 -2.294136,1.115833 l -0.108488,0.01844 z M 4.3162122,11.919169 C 1.9278944,11.487872 0.46692382,9.0323123 1.234873,6.7401372 1.5621727,5.763213 2.2610593,4.9489746 3.1840041,4.4693005 3.5978035,4.2542401 3.9427842,4.145371 4.5197023,4.0477802 L 4.6254464,4.0298927 4.4571836,4.3223069 C 3.4332707,6.1017061 3.2180432,8.3476022 3.878868,10.357023 c 0.1458466,0.443487 0.4554716,1.132155 0.6542959,1.455285 0.054471,0.08853 0.087814,0.159599 0.074096,0.157937 -0.013718,-0.0017 -0.1446898,-0.02465 -0.2910477,-0.05108 z M 5.0000001,3 C 2.2,3 0,5.2 0,8 c 0,2.8 2.2,5 5.0000001,5 0.6,0 1.1,-0.1 1.6,-0.3 C 5.3000001,11.6 4.5,9.7999998 4.5,8 4.5,6.2 5.3000001,4.5 6.6000001,3.3 c -0.5,-0.2 -1,-0.3 -1.6,-0.3 z M 4.65,4.02 C 3.92,5.17 3.51,6.54 3.51,8 c 0,1.4599998 0.42,2.83 1.14,3.98 C 2.61,11.8 1.01,10.08 1.01,8 1.01,5.92 2.61,4.2 4.65,4.02 Z M 8,4 C 6.8,4.9 6,6.4 6,8 6,9.6 6.8,11.1 8,12 9.2,11.1 10,9.7 10,8 10,6.3 9.2,4.9 8,4 Z m 3,-1 c 2.8,0 5,2.2 5,5 0,2.8 -2.2,5 -5,5 C 10.4,13 9.9,12.9 9.4,12.7 10.7,11.6 11.5,9.8 11.5,8 11.5,6.2 10.7,4.5 9.4,3.3 9.9,3.1 10.4,3 11,3 Z m 0.35,1.02 c 0.73,1.15 1.14,2.52 1.14,3.98 0,1.46 -0.42,2.83 -1.14,3.98 2.04,-0.18 3.64,-1.9 3.64,-3.98 0,-2.08 -1.6,-3.8 -3.64,-3.98 z" + style="stroke-width:0.234;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + /> + </g> +</svg> |
b |
diff -r 000000000000 -r 6df8d6e42152 test-data/cropped_reactive_core.ome.tiff |
b |
Binary file test-data/cropped_reactive_core.ome.tiff has changed |
b |
diff -r 000000000000 -r 6df8d6e42152 test-data/cropped_tutorial_data_pheno.h5ad |
b |
Binary file test-data/cropped_tutorial_data_pheno.h5ad has changed |
b |
diff -r 000000000000 -r 6df8d6e42152 test-data/tutorial_vitessce.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/tutorial_vitessce.html Thu Sep 08 17:22:53 2022 +0000 |
[ |
@@ -0,0 +1,39 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <style> + body,html{height:100%} + body{ + font-family:-apple-system,'Helvetica Neue',Arial,sans-serif;display:flex;flex-direction:column} + #full-app{flex:1} + #full-app .vitessce-container{ + height:max(100%,100vh);width:100%;overflow:hidden} + #full-app #small-app .vitessce-container{height:600px} + </style> + <title>Vitessce</title> + <link href="./static/css/2.f290e260.chunk.css" rel="stylesheet"> + <link href="./static/css/main.a53cc462.chunk.css" rel="stylesheet"> + </head> + <body> + <div id="full-app"> + <div class="container-fluid"> + <div class="row p-2"> + <div class="col col-full"> + <h1>Vitessce is loading...</h1> + <div style="width:1000px"> + <div id="small-app"> + </div> + </div> + </div> + </div> + </div> + </div> + <noscript>You need to enable JavaScript to run this app.</noscript> + <script> + !function(e){function t(t){for(var n,i,l=t[0],f=t[1],a=t[2],p=0,s=[];p<l.length;p++)i=l[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(c&&c(t);s.length;)s.shift()();return u.push.apply(u,a||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,l=1;l<r.length;l++){var f=r[l];0!==o[f]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="./";var l=this.webpackJsonpvitessce=this.webpackJsonpvitessce||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var a=0;a<l.length;a++)t(l[a]);var c=f;r()}([]) + </script> + <script src="./static/js/2.eb2fd6ea.chunk.js"></script> + <script src="./static/js/main.303f671d.chunk.js"></script> + </body> +</html> \ No newline at end of file |
b |
diff -r 000000000000 -r 6df8d6e42152 vitessce_spatial.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vitessce_spatial.py Thu Sep 08 17:22:53 2022 +0000 |
[ |
@@ -0,0 +1,121 @@ +import argparse +import json +import warnings +from pathlib import Path + +import scanpy as sc +from anndata import read_h5ad +from vitessce import ( + AnnDataWrapper, + Component as cm, + MultiImageWrapper, + OmeTiffWrapper, + VitessceConfig, +) + + +def main(inputs, output, image, anndata=None, masks=None): + """ + Parameter + --------- + inputs : str + File path to galaxy tool parameter. + output : str + Output folder for saving web content. + image : str + File path to the OME Tiff image. + anndata : str + File path to anndata containing phenotyping info. + masks : str + File path to the image masks. + """ + warnings.simplefilter('ignore') + + with open(inputs, 'r') as param_handler: + params = json.load(param_handler) + + vc = VitessceConfig(name=None, description=None) + dataset = vc.add_dataset() + image_wrappers = [OmeTiffWrapper(img_path=image, name='OMETIFF')] + if masks: + image_wrappers.append( + OmeTiffWrapper(img_path=masks, name='MASKS', is_bitmask=True) + ) + dataset.add_object(MultiImageWrapper(image_wrappers)) + + status = vc.add_view(dataset, cm.STATUS) + spatial = vc.add_view(dataset, cm.SPATIAL) + lc = vc.add_view(dataset, cm.LAYER_CONTROLLER) + + if not anndata: + vc.layout(status / lc | spatial) + config_dict = vc.export(to='files', base_url='http://localhost', out_dir=output) + with open(Path(output).joinpath('config.json'), 'w') as f: + json.dump(config_dict, f, indent=4) + return + + adata = read_h5ad(anndata) + + params = params['do_phenotyping'] + embedding = params['scatterplot_embeddings']['embedding'] + embedding_options = params['scatterplot_embeddings']['options'] + if embedding == 'umap': + sc.pp.neighbors(adata, **embedding_options) + sc.tl.umap(adata) + mappings_obsm = 'X_umap' + mappings_obsm_name = "UMAP" + elif embedding == 'tsne': + sc.tl.tsne(adata, **embedding_options) + mappings_obsm = 'X_tsne' + mappings_obsm_name = "tSNE" + else: # pca + sc.tl.pca(adata, **embedding_options) + mappings_obsm = 'X_pca' + mappings_obsm_name = "PCA" + + adata.obsm['XY_centroid'] = adata.obs[['X_centroid', 'Y_centroid']].values + + cell_set_obs = params['phenotype_factory']['phenotypes'] + if not isinstance(cell_set_obs, list): + cell_set_obs = [x.strip() for x in cell_set_obs.split(',')] + cell_set_obs_names = [obj[0].upper() + obj[1:] for obj in cell_set_obs] + dataset.add_object( + AnnDataWrapper( + adata, + mappings_obsm=[mappings_obsm], + mappings_obsm_names=[mappings_obsm_name], + spatial_centroid_obsm='XY_centroid', + cell_set_obs=cell_set_obs, + cell_set_obs_names=cell_set_obs_names, + expression_matrix="X" + ) + ) + + cellsets = vc.add_view(dataset, cm.CELL_SETS) + scattorplot = vc.add_view(dataset, cm.SCATTERPLOT, mapping=mappings_obsm_name) + heatmap = vc.add_view(dataset, cm.HEATMAP) + genes = vc.add_view(dataset, cm.GENES) + cell_set_sizes = vc.add_view(dataset, cm.CELL_SET_SIZES) + cell_set_expression = vc.add_view(dataset, cm.CELL_SET_EXPRESSION) + vc.layout( + (status / genes / cell_set_expression) + | (cellsets / lc / scattorplot) + | (cell_set_sizes / heatmap / spatial) + ) + config_dict = vc.export(to='files', base_url='http://localhost', out_dir=output) + + with open(Path(output).joinpath('config.json'), 'w') as f: + json.dump(config_dict, f, indent=4) + + +if __name__ == '__main__': + aparser = argparse.ArgumentParser() + aparser.add_argument("-i", "--inputs", dest="inputs", required=True) + aparser.add_argument("-e", "--output", dest="output", required=True) + aparser.add_argument("-g", "--image", dest="image", required=True) + aparser.add_argument("-a", "--anndata", dest="anndata", required=False) + aparser.add_argument("-m", "--masks", dest="masks", required=False) + + args = aparser.parse_args() + + main(args.inputs, args.output, args.image, args.anndata, args.masks) |