cellbrowser 1.2.5__tar.gz → 1.2.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cellbrowser-1.2.5/src/cbPyLib/cellbrowser.egg-info → cellbrowser-1.2.7}/PKG-INFO +1 -1
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/README.rst +1 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/R/cellbrowser.R +26 -25
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/_version.py +3 -3
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/css/cellBrowser.css +6 -1
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/js/cbData.js +59 -13
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/js/cellBrowser.js +490 -167
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/js/maxHeat.js +1 -6
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/js/maxPlot.js +122 -74
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cellbrowser.py +299 -104
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/convert.py +10 -5
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/genes.py +37 -3
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/sampleConfig/cellbrowser.conf +2 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/sampleConfig/desc.conf +1 -1
- {cellbrowser-1.2.5 → cellbrowser-1.2.7/src/cbPyLib/cellbrowser.egg-info}/PKG-INFO +1 -1
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/LICENSE +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/MANIFEST.in +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/setup.cfg +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/setup.py +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/RangeHTTPServer/__init__.py +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/RangeHTTPServer/__main__.py +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/__init__.py +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.eot +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.ttf +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.woff +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.woff2 +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/Chart.bundle.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/FastBitSet.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/FileSaver.1.1.20151003.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/OverlayScrollbars.min.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap-dropmenu.min.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap-submenu.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap-submenu.min.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap.3.3.7.min.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap.min.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/chartjs-chart-box-and-violin-plot.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen-sprite.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen-sprite@2x.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen.1.8.2.min.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen.jquery.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/drawImage-clipper.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/font-awesome.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/googleMaterialIcons.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/hamster.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_444444_256x240.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_555555_256x240.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_777620_256x240.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_777777_256x240.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_cc0000_256x240.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_ffffff_256x240.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/intro.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/introjs.2.4.0.min.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery-ui-1.12.1.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery-ui.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.3.1.1.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.contextMenu.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.contextMenu.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.event.drag-2.3.0.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.overlayScrollbars.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.sparkline.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tablesorter.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tablesorter.widgets.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tipsy.1.0.3.min.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tipsy.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.ui.position.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/jsurl2.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/lz-string.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/materialIcons.woff +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/minified.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/mousetrap.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/normalizeWheel.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/pako_inflate.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/palette.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/papaparse.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/reorder.v1.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/scaleColorPerceptual.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/science.v1.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/select2.4.0.4.min.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/select2.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/selectize.bootstrap3.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/selectize.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.cellrangedecorator.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.cellrangeselector.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.cellselectionmodel.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.core.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.editors.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.examples.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.formatters.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.grid.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.grid.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/spectrum-1.8.0.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/spectrum.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/split.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/tablesort.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/tablesort.number.min.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/.npmignore +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/LICENSE +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/Makefile +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/README.md +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/browser.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/build.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/d3-random-matrix.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/example.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/gradients.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/package.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/inferno.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/magma.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/plasma.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/viridis.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/inferno.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/magma.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/package.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/plasma.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/inferno.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/magma.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/plasma.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/viridis.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/utils/hex2rgb.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/utils/interpolate.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/utils/rgb2hex.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/viridis.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/theme.bootstrap_3.css +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/ext/tiny-queue.js +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/genes/files.json +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/genes/hg19.gc34.tsv +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/genes/hg19.json.gz +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/genes/hg38.gc34.tsv +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/genes/hg38.json.gz +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/genes/log.txt +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/genes/makeGenes.py +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/genes/mm10.json.gz +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/genes/mm10.vm25.tsv +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/README.md +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/center.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/README.txt +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/gtk-justify-left.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/gtk-save.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/log.txt +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-center-16.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-center-24.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-controller-16.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-controller-24.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-edit-16.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-gravity-west-24.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-info-16.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-info-24.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-merge-down-16.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-scale-16.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-free-select-16.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-free-select-22.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-move-16.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-move-22.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-rect-select-16.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-rect-select-22.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-zoom-16.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-zoom-22.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/icons8-help-32.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/info.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/lasso.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/marker.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/move.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/select.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/cbWeb/img/zoom.png +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/download.py +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/geneinfo.py +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/hubmaker.py +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/sampleConfig/hub.conf +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/sampleConfig/scanpy.conf +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/sampleConfig/seurat.conf +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/sampleConfig/summary.html +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser/seurat.py +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser.egg-info/SOURCES.txt +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser.egg-info/dependency_links.txt +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser.egg-info/entry_points.txt +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser.egg-info/not-zip-safe +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/src/cbPyLib/cellbrowser.egg-info/top_level.txt +0 -0
- {cellbrowser-1.2.5 → cellbrowser-1.2.7}/versioneer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cellbrowser
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.7
|
|
4
4
|
Summary: UCSC Cellbrowser, an interactive browser for single cell data. Includes converters and basic pipelines for text files, Seurat, Scanpy and Cellranger.
|
|
5
5
|
Home-page: https://github.com/maximilianh/cellBrowser
|
|
6
6
|
Author: Maximilian Haeussler
|
|
@@ -46,6 +46,7 @@ Many labs host their data at cells.ucsc.edu by sending it to us, but some groups
|
|
|
46
46
|
* Lako Lab at Newcastle University, UK: http://retinalstemcellresearch.co.uk/CorneaCellAtlas/ from `Collins et al. 2021. The Ocular Surface. <https://www.sciencedirect.com/science/article/pii/S1542012421000215>`_
|
|
47
47
|
* RNA Bioscience Initiative: https://www.pneuroonccellatlas.org/ and https://github.com/rnabioco/lung-scrna
|
|
48
48
|
* Paul Gontarz, WUSTL, http://regmedsrv1.wustl.edu/Public_SPACE/pgontarz/Public_html/cellbrower/Exp1/
|
|
49
|
+
* Dylan Farnsworth, U Oregon, https://pages.uoregon.edu/drf/browser/lens_230620/
|
|
49
50
|
|
|
50
51
|
|
|
51
52
|
These papers have cell browsers made at UCSC:
|
|
@@ -232,42 +232,43 @@ ExportToCellbrowser <- function(
|
|
|
232
232
|
reducNames <- reductions
|
|
233
233
|
|
|
234
234
|
# Use or find the default cluster field
|
|
235
|
+
#if (is.null(x = cluster.field)) {
|
|
236
|
+
## find and use the default Idents() field as the cluster field
|
|
237
|
+
#idents <- Idents(object)
|
|
238
|
+
#for (colName in colnames(object@meta.data)) {
|
|
239
|
+
#col = object@meta.data[[colName]]
|
|
240
|
+
#if (identical(idents@.Data,col@.Data)) {
|
|
241
|
+
#message("Default Idents() meta field:",colName)
|
|
242
|
+
#cluster.field <- colName
|
|
243
|
+
#break
|
|
244
|
+
#}
|
|
245
|
+
#}
|
|
235
246
|
if (is.null(x = cluster.field)) {
|
|
236
|
-
|
|
237
|
-
idents <- Idents(object)
|
|
238
|
-
for (colName in colnames(object@meta.data)) {
|
|
239
|
-
col = object@meta.data[[colName]]
|
|
240
|
-
if (identical(idents@.Data,col@.Data)) {
|
|
241
|
-
message("Default Idents() meta field:",colName)
|
|
242
|
-
cluster.field <- colName
|
|
243
|
-
break
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
if (is.null(x = cluster.field)) {
|
|
247
|
-
message("There is no meta field identical to idents(): using the value of Idents() as a new field 'Cluster'")
|
|
247
|
+
message("No cluster field specified: Using the value of Idents()")
|
|
248
248
|
# create a new meta data field named "Cluster"
|
|
249
|
-
newDf <- cbind(object@meta.data, Idents(object))
|
|
249
|
+
#newDf <- cbind(object@meta.data, Idents(object))
|
|
250
250
|
# default name is "Idents(object)", not good, let's rename that to "Cluster"
|
|
251
|
-
names(newDf)[length(newDf)] <- "Cluster"
|
|
252
|
-
object@meta.data <- newDf
|
|
253
|
-
cluster.field <- "Cluster"
|
|
254
|
-
}
|
|
255
|
-
|
|
251
|
+
#names(newDf)[length(newDf)] <- "Cluster"
|
|
252
|
+
#object@meta.data <- newDf
|
|
253
|
+
#cluster.field <- "Cluster"
|
|
256
254
|
} else {
|
|
257
|
-
|
|
258
|
-
|
|
255
|
+
message("A custom cluster field was specified: ", cluster.field)
|
|
256
|
+
Idents(object = object) <- cluster.field
|
|
257
|
+
# another, convoluted way to set the Idents field, if the command above makes trouble again
|
|
258
|
+
#Idents(object) <- as.factor([object[[cluster.field]], cluster.field])
|
|
259
259
|
}
|
|
260
260
|
|
|
261
261
|
# make sure that we have a cluster field
|
|
262
|
-
if (is.null(x = cluster.field))
|
|
263
|
-
stop("There was no cluster field provided and the auto-detection to find one based on Idents() did not work. Please provide a cluster field with cluster.field='xxx' from R or --clusterField=xxx if using cbImportSeurat. Possible meta annotation fields are: ", toString(colnames(x = meta)))
|
|
262
|
+
#if (is.null(x = cluster.field))
|
|
263
|
+
#stop("There was no cluster field provided and the auto-detection to find one based on Idents() did not work. Please provide a cluster field with cluster.field='xxx' from R or --clusterField=xxx if using cbImportSeurat. Possible meta annotation fields are: ", toString(colnames(x = meta)))
|
|
264
264
|
|
|
265
265
|
if (is.null(x = meta.fields)) {
|
|
266
266
|
meta.fields <- colnames(x = meta)
|
|
267
|
-
if (length(x = levels(x = Idents(object))) > 1) {
|
|
268
|
-
meta.fields <- c(meta.fields, ".ident")
|
|
269
|
-
}
|
|
267
|
+
#if (length(x = levels(x = Idents(object))) > 1) {
|
|
268
|
+
#meta.fields <- c(meta.fields, ".ident")
|
|
269
|
+
#}
|
|
270
270
|
}
|
|
271
|
+
|
|
271
272
|
if (!is.null(x = port) && is.null(x = cb.dir)) {
|
|
272
273
|
stop("cb.dir parameter is needed when port is set")
|
|
273
274
|
}
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2024-
|
|
11
|
+
"date": "2024-07-02T12:15:16-0700",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "v1.2.
|
|
14
|
+
"full-revisionid": "bff421579e0abe0bc03a1f7fcc7d405155ca6d8f",
|
|
15
|
+
"version": "v1.2.7"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -178,7 +178,12 @@ section { font-weight: bold; padding-top: 5px; padding-bottom: 5px }
|
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
/* modify bootstrap tooltip defaults */
|
|
181
|
-
.tooltip-inner {
|
|
181
|
+
.tooltip .tooltip-inner {
|
|
182
|
+
min-width: 220px;
|
|
183
|
+
border-radius: 0;
|
|
184
|
+
background-opacity: 50%;
|
|
185
|
+
text-align: left
|
|
186
|
+
}
|
|
182
187
|
|
|
183
188
|
.ui-widget-header { background: white}
|
|
184
189
|
.ui-state-active { background: green }
|
|
@@ -196,9 +196,13 @@ var cbUtil = (function () {
|
|
|
196
196
|
if (!dataLen)
|
|
197
197
|
dataLen = new Blob([binData]).size;;
|
|
198
198
|
|
|
199
|
-
if (dataLen < expLength
|
|
199
|
+
if (dataLen < expLength-1) // Yes, the -1 does not make sense.
|
|
200
|
+
// This happens only with https://cells-beta.gi.ucsc.edu/?ds=engraftable-hsc+adt
|
|
200
201
|
// and I have no idea why.
|
|
201
|
-
alert("internal error cbData.js:
|
|
202
|
+
alert("internal error cbData.js: data received from web server is too short. Expected data size was "+exprLength+
|
|
203
|
+
" but received "+dataLen+" bytes. URL: "+url+
|
|
204
|
+
"Does the HTTP server really support byte range requests? You probably will have to contact us to "+
|
|
205
|
+
" narrow down this problem.");
|
|
202
206
|
|
|
203
207
|
if (dataLen > expLength) {
|
|
204
208
|
console.log("Webserver does not support byte range requests, working around it, but this may be slow");
|
|
@@ -356,8 +360,14 @@ var cbUtil = (function () {
|
|
|
356
360
|
return [min, max]
|
|
357
361
|
}
|
|
358
362
|
|
|
363
|
+
my.baReadBigOffset = function(ba, o) {
|
|
364
|
+
/* given a byte array, return the unsigned long long int (little endian), so eight bytes, at offset o */
|
|
365
|
+
var offset = ba[o] | ba[o+1] << 8 | ba[o+2] << 16 | ba[o+3] << 24 | ba[o+4] << 32 | ba[o+5] << 40 | ba[o+6] << 48 | ba[o+7] << 56;
|
|
366
|
+
return offset;
|
|
367
|
+
};
|
|
368
|
+
|
|
359
369
|
my.baReadOffset = function(ba, o) {
|
|
360
|
-
/* given a byte array, return the long int (little endian) at offset o */
|
|
370
|
+
/* given a byte array, return the unsigned long int (little endian), so four bytes, at offset o */
|
|
361
371
|
var offset = ba[o] | ba[o+1] << 8 | ba[o+2] << 16 | ba[o+3] << 24;
|
|
362
372
|
return offset;
|
|
363
373
|
};
|
|
@@ -384,7 +394,7 @@ function CbDbFile(url) {
|
|
|
384
394
|
self.name = url;
|
|
385
395
|
self.url = url;
|
|
386
396
|
|
|
387
|
-
self.exprBinCount =
|
|
397
|
+
self.exprBinCount = 10;
|
|
388
398
|
|
|
389
399
|
// for quick gene name searching
|
|
390
400
|
self.geneSyns = null; // array of [geneSynonymLowercase, geneId]
|
|
@@ -526,6 +536,16 @@ function CbDbFile(url) {
|
|
|
526
536
|
cbUtil.loadJson(jsonUrl, jsonDone, true);
|
|
527
537
|
};
|
|
528
538
|
|
|
539
|
+
this.loadTraces = function(onTracesDone) {
|
|
540
|
+
/* load the trace file, add to self.traces and call onDone */
|
|
541
|
+
function onFileDone(res) {
|
|
542
|
+
self.traces = res;
|
|
543
|
+
onTracesDone(self.traces);
|
|
544
|
+
}
|
|
545
|
+
var fileUrl = cbUtil.joinPaths([self.url, "traces.json"]);
|
|
546
|
+
cbUtil.loadJson(fileUrl, onFileDone, true);
|
|
547
|
+
};
|
|
548
|
+
|
|
529
549
|
this.getDefaultColorField = function() {
|
|
530
550
|
/* return a pair: [0] is "meta" or "gene" and [1] is the field name or the gene */
|
|
531
551
|
if (self.conf.clusterField)
|
|
@@ -566,7 +586,7 @@ function CbDbFile(url) {
|
|
|
566
586
|
onProgress, metaInfo);
|
|
567
587
|
}
|
|
568
588
|
|
|
569
|
-
this.loadMetaVec = function(metaInfo, onDone, onProgress, otherInfo) {
|
|
589
|
+
this.loadMetaVec = function(metaInfo, onDone, onProgress, otherInfo, strategy) {
|
|
570
590
|
/* get an array of numbers, one per cell, that reflect the meta field contents
|
|
571
591
|
* and an object with some info about the field. call onDone(arr, metaInfo) when done.
|
|
572
592
|
* Keep all compressed arrays in metaCache;
|
|
@@ -597,7 +617,13 @@ function CbDbFile(url) {
|
|
|
597
617
|
if (metaInfo.arrType==="float32") {
|
|
598
618
|
// numeric arrays have to be binned on the client. They are always floats.
|
|
599
619
|
console.time("discretize "+metaInfo.name);
|
|
600
|
-
var discRes
|
|
620
|
+
var discRes;
|
|
621
|
+
|
|
622
|
+
if (strategy==="range")
|
|
623
|
+
discRes = discretizeArray_binSize(arr, self.exprBinCount, FLOATNAN);
|
|
624
|
+
else
|
|
625
|
+
discRes = discretizeArray(arr, self.exprBinCount, FLOATNAN);
|
|
626
|
+
|
|
601
627
|
console.timeEnd("discretize "+metaInfo.name);
|
|
602
628
|
metaInfo.origVals = arr; // keep original values, so we can later query for them
|
|
603
629
|
arr = discRes.dArr;
|
|
@@ -716,10 +742,12 @@ function CbDbFile(url) {
|
|
|
716
742
|
}
|
|
717
743
|
|
|
718
744
|
function discretizeArray(arr, maxBinCount, bin0Val) {
|
|
719
|
-
/*
|
|
720
|
-
|
|
745
|
+
/* This is the default for most users: discretize numeric values to
|
|
746
|
+
* deciles. return an obj with dArr and binInfo */
|
|
747
|
+
/* bin0Val is the value that is treated differently, it is kept in its
|
|
748
|
+
* own bin */
|
|
721
749
|
/* is bin0Val is null, switch off special bin0Value handling
|
|
722
|
-
/* ported from Python cbAdd:discretizeArray */
|
|
750
|
+
/* Code ported from Python cbAdd:discretizeArray */
|
|
723
751
|
/* supports NaN special values */
|
|
724
752
|
var breaks = [];
|
|
725
753
|
|
|
@@ -938,9 +966,20 @@ function CbDbFile(url) {
|
|
|
938
966
|
for (let r of loadedRanges) {
|
|
939
967
|
arrs.push(r.arr);
|
|
940
968
|
if (r.desc!=="")
|
|
941
|
-
geneDescs.push(r.
|
|
969
|
+
geneDescs.push(r.name);
|
|
942
970
|
}
|
|
943
|
-
|
|
971
|
+
|
|
972
|
+
// set gene description to an ;-separated list for multi-gene mode and
|
|
973
|
+
// to chrom:minStart-maxStart for ATAC mode
|
|
974
|
+
let geneDesc;
|
|
975
|
+
if (self.isAtacMode()) {
|
|
976
|
+
let chrom = loadedRanges[0].name.split("|")[0];
|
|
977
|
+
let minStart = loadedRanges[0].name.split("|")[1];
|
|
978
|
+
let maxEnd = loadedRanges[loadedRanges.length-1].name.split("|")[2];
|
|
979
|
+
geneDesc = chrom+":"+minStart+"-"+maxEnd;
|
|
980
|
+
}
|
|
981
|
+
else
|
|
982
|
+
geneDesc = geneDescs.join("; ");
|
|
944
983
|
|
|
945
984
|
// specVal is the value for a special bin, usually 0
|
|
946
985
|
var specVal = 0;
|
|
@@ -1277,6 +1316,8 @@ function CbDbFile(url) {
|
|
|
1277
1316
|
// first we need to lookup the offset of the line and its length from the index
|
|
1278
1317
|
var url = cbUtil.joinPaths([self.url, "meta.index"]);
|
|
1279
1318
|
var start = (cellIdx*6); // four bytes for the offset + 2 bytes for the line length
|
|
1319
|
+
if (self.conf.metaNeedsEightBytes)
|
|
1320
|
+
start = (cellIdx*10); // meta files > 4GB need 8 bytes for the offset + 2 for the line length
|
|
1280
1321
|
var end = start+6;
|
|
1281
1322
|
|
|
1282
1323
|
function lineDone(text) {
|
|
@@ -1288,7 +1329,12 @@ function CbDbFile(url) {
|
|
|
1288
1329
|
|
|
1289
1330
|
function offsetDone(arr) {
|
|
1290
1331
|
/* called when the offset in meta.index has been read */
|
|
1291
|
-
var offset
|
|
1332
|
+
var offset;
|
|
1333
|
+
if (self.conf.metaNeedsEightBytes)
|
|
1334
|
+
offset = cbUtil.baReadBigOffset(arr, 0);
|
|
1335
|
+
else
|
|
1336
|
+
offset = cbUtil.baReadOffset(arr, 0);
|
|
1337
|
+
|
|
1292
1338
|
var lineLen = cbUtil.baReadUint16(arr, 4);
|
|
1293
1339
|
// now get the line from the .tsv file
|
|
1294
1340
|
var url = cbUtil.joinPaths([self.url, "meta.tsv"]);
|
|
@@ -1608,7 +1654,7 @@ function CbDbFile(url) {
|
|
|
1608
1654
|
//alert("Error: "+sym+" is in quick genes list but is not a valid gene");
|
|
1609
1655
|
//continue;
|
|
1610
1656
|
//}
|
|
1611
|
-
if (geneId.indexOf("|")!==-1)
|
|
1657
|
+
if (geneId.indexOf("|")!==-1 && !self.conf.atacSearch)
|
|
1612
1658
|
geneId = geneId.split("|")[0];
|
|
1613
1659
|
|
|
1614
1660
|
self.loadExprAndDiscretize(
|