cellbrowser 1.2.3__tar.gz → 1.2.4__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.3/src/cbPyLib/cellbrowser.egg-info → cellbrowser-1.2.4}/PKG-INFO +1 -1
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/README.rst +9 -5
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/R/cellbrowser.R +67 -7
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/_version.py +4 -4
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/css/cellBrowser.css +110 -9
- cellbrowser-1.2.4/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tablesorter.js +2914 -0
- cellbrowser-1.2.4/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tablesorter.widgets.js +3184 -0
- cellbrowser-1.2.4/src/cbPyLib/cellbrowser/cbWeb/ext/theme.bootstrap_3.css +190 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/js/cbData.js +32 -19
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/js/cellBrowser.js +1170 -272
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/js/maxHeat.js +5 -4
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/js/maxPlot.js +493 -79
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cellbrowser.py +251 -95
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/convert.py +20 -8
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/sampleConfig/cellbrowser.conf +9 -2
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/seurat.py +11 -13
- {cellbrowser-1.2.3 → cellbrowser-1.2.4/src/cbPyLib/cellbrowser.egg-info}/PKG-INFO +1 -1
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser.egg-info/SOURCES.txt +3 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/LICENSE +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/MANIFEST.in +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/setup.cfg +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/setup.py +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/RangeHTTPServer/__init__.py +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/RangeHTTPServer/__main__.py +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/__init__.py +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.eot +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.ttf +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.woff +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.woff2 +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/Chart.bundle.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/FastBitSet.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/FileSaver.1.1.20151003.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/OverlayScrollbars.min.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap-dropmenu.min.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap-submenu.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap-submenu.min.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap.3.3.7.min.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap.min.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/chartjs-chart-box-and-violin-plot.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen-sprite.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen-sprite@2x.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen.1.8.2.min.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen.jquery.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/drawImage-clipper.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/font-awesome.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/googleMaterialIcons.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/hamster.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_444444_256x240.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_555555_256x240.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_777620_256x240.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_777777_256x240.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_cc0000_256x240.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_ffffff_256x240.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/intro.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/introjs.2.4.0.min.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery-ui-1.12.1.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery-ui.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.3.1.1.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.contextMenu.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.contextMenu.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.event.drag-2.3.0.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.overlayScrollbars.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.sparkline.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tipsy.1.0.3.min.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tipsy.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.ui.position.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/jsurl2.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/lz-string.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/materialIcons.woff +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/minified.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/mousetrap.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/normalizeWheel.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/pako_inflate.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/palette.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/papaparse.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/reorder.v1.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/scaleColorPerceptual.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/science.v1.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/select2.4.0.4.min.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/select2.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/selectize.bootstrap3.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/selectize.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.cellrangedecorator.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.cellrangeselector.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.cellselectionmodel.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.core.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.editors.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.examples.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.formatters.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.grid.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.grid.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/spectrum-1.8.0.css +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/spectrum.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/split.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/tablesort.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/tablesort.number.min.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/.npmignore +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/LICENSE +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/Makefile +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/README.md +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/browser.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/build.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/d3-random-matrix.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/example.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/gradients.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/package.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/inferno.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/magma.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/plasma.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/viridis.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/inferno.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/magma.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/package.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/plasma.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/inferno.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/magma.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/plasma.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/viridis.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/utils/hex2rgb.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/utils/interpolate.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/utils/rgb2hex.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/viridis.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/ext/tiny-queue.js +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/genes/files.json +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/genes/hg19.gc34.tsv +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/genes/hg19.json.gz +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/genes/hg38.gc34.tsv +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/genes/hg38.json.gz +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/genes/log.txt +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/genes/makeGenes.py +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/genes/mm10.json.gz +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/genes/mm10.vm25.tsv +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/README.md +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/center.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/README.txt +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/gtk-justify-left.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/gtk-save.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/log.txt +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-center-16.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-center-24.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-controller-16.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-controller-24.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-edit-16.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-gravity-west-24.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-info-16.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-info-24.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-merge-down-16.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-scale-16.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-free-select-16.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-free-select-22.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-move-16.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-move-22.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-rect-select-16.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-rect-select-22.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-zoom-16.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-zoom-22.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/icons8-help-32.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/info.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/lasso.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/marker.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/move.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/select.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/cbWeb/img/zoom.png +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/download.py +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/geneinfo.py +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/genes.py +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/hubmaker.py +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/sampleConfig/desc.conf +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/sampleConfig/hub.conf +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/sampleConfig/scanpy.conf +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/sampleConfig/seurat.conf +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser/sampleConfig/summary.html +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser.egg-info/dependency_links.txt +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser.egg-info/entry_points.txt +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser.egg-info/not-zip-safe +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/src/cbPyLib/cellbrowser.egg-info/top_level.txt +0 -0
- {cellbrowser-1.2.3 → cellbrowser-1.2.4}/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.4
|
|
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
|
|
@@ -5,8 +5,12 @@ UCSC Single Cell Browser
|
|
|
5
5
|
========================
|
|
6
6
|
|
|
7
7
|
The UCSC Cell Browser is a viewer for single cell data. You can click on and
|
|
8
|
-
hover over cells to get meta information,
|
|
9
|
-
|
|
8
|
+
hover over cells to get meta information, select cells to get annotation histograms,
|
|
9
|
+
make expression violin plots and heatmaps, search for genes to color on and
|
|
10
|
+
click clusters to show cluster-specific marker genes. It supports the usual gene expression plots, ATAC,
|
|
11
|
+
spatial gene/ATAC, multi-modal combinations of these and trajectory lines.
|
|
12
|
+
It comes with one-line data exporters for all common analysis formats: Seurat, Scanpy, Cellranger, Monocle and
|
|
13
|
+
you can always use tsv/csv files to import your data. The exporters are part of Seurat 3/4 and Scanpy.
|
|
10
14
|
|
|
11
15
|
To look at a list of selected single cell datasets, see http://cells.ucsc.edu
|
|
12
16
|
|
|
@@ -57,8 +61,8 @@ ticket system with more features and that a lot of communication with wetlab use
|
|
|
57
61
|
do not require a Github account for feedback. But we do reply to issues here, as you can see from the Github
|
|
58
62
|
account and also use Github for source control.
|
|
59
63
|
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
Install and use
|
|
65
|
+
---------------
|
|
62
66
|
|
|
63
67
|
* The preferred installation is via pip https://pypi.org/project/cellbrowser/, for documentation see https://cellbrowser.readthedocs.io
|
|
64
68
|
* Bioconda: this tool is available to install via `bioconda <https://bioconda.github.io/recipes/ucsc-cell-browser/README.html>`_. Note that the conda release is usually a bit outdated relative to the pip release, so use pip if possible. If you cannot use pip, please contact us.
|
|
@@ -67,7 +71,7 @@ Additional availability
|
|
|
67
71
|
* Galaxy: there is a Galaxy tool for UCSC CellBrowser, which can be installed on any Galaxy instance via its `Galaxy Toolshed entry <https://toolshed.g2.bx.psu.edu/view/ebi-gxa/ucsc_cell_browser>`_ or it can be directly used by users at the `Human Cell Atlas Galaxy instance <https://humancellatlas.usegalaxy.eu/root?tool_id=toolshed.g2.bx.psu.edu/repos/ebi-gxa/ucsc_cell_browser/ucsc_cell_browser>`_ or as part of the example workflows, such as the `Human Cell Atlas / Scanpy CellBrowser workflow <https://humancellatlas.usegalaxy.eu/u/pmoreno/w/humancellatlas-scanpy-cellbrowser>`_ or the `EBI Single Cell Expression Atlas / Scanpy / CellBrowser workflow <https://humancellatlas.usegalaxy.eu/u/pmoreno/w/atlas-scanpy-cellbrowser-imported-from-uploaded-file>`_
|
|
68
72
|
|
|
69
73
|
This project was funded by the California Institute of Regenerative Medicine and the
|
|
70
|
-
Chan-Zuckerberg Initiative https://www.chanzuckerberg.com/. In 2020, it
|
|
74
|
+
Chan-Zuckerberg Initiative https://www.chanzuckerberg.com/. In 2020, it was funded through a supplement to the NHGRI Genome Browser grant. Since 2023, it is funded by a grant from NIMH BRAIN.
|
|
71
75
|
|
|
72
76
|
This is early research software. You are likely to find bugs. Please open a Github
|
|
73
77
|
ticket or email us at cells@ucsc.edu, we can usually fix them quickly.
|
|
@@ -46,15 +46,18 @@ saveMatrix <- function(counts, dir, prefix, use.mtx) {
|
|
|
46
46
|
genesPath <- file.path(dir, paste(prefix, "features.tsv", sep=""))
|
|
47
47
|
barcodesPath <- file.path(dir, paste(prefix, "barcodes.tsv", sep=""))
|
|
48
48
|
message("Writing expression matrix to ", matrixPath)
|
|
49
|
+
if (class(counts)[1]=="matrix") {
|
|
50
|
+
counts <- as(counts, "sparseMatrix")
|
|
51
|
+
}
|
|
49
52
|
writeMM(counts, matrixPath)
|
|
50
53
|
# easier to load if the genes file has at least two columns. Even though seurat objects
|
|
51
54
|
# don't have yet explicit geneIds/geneSyms data, we just duplicate whatever the matrix has now
|
|
52
55
|
write.table(as.data.frame(cbind(rownames(counts), rownames(counts))), file=genesPath, sep="\t", row.names=F, col.names=F, quote=F)
|
|
53
56
|
write(colnames(counts), file = barcodesPath)
|
|
54
57
|
message("Gzipping expression matrix")
|
|
55
|
-
gzip(matrixPath)
|
|
56
|
-
gzip(genesPath)
|
|
57
|
-
gzip(barcodesPath)
|
|
58
|
+
gzip(matrixPath, overwrite=TRUE)
|
|
59
|
+
gzip(genesPath, overwrite=TRUE)
|
|
60
|
+
gzip(barcodesPath, overwrite=TRUE)
|
|
58
61
|
} else {
|
|
59
62
|
# we can write the matrix as a tsv file
|
|
60
63
|
gzPath <- file.path(dir, paste(prefix, "exprMatrix.tsv.gz", sep=""))
|
|
@@ -69,6 +72,50 @@ saveMatrix <- function(counts, dir, prefix, use.mtx) {
|
|
|
69
72
|
}
|
|
70
73
|
}
|
|
71
74
|
|
|
75
|
+
exportImages <- function(obj, outDir, embeddings.conf) {
|
|
76
|
+
#' used by ExportToCellbrowser:
|
|
77
|
+
#' Write spatial images to outDir
|
|
78
|
+
#'
|
|
79
|
+
#' @param obj The Seurat4 object
|
|
80
|
+
#' @param outDir output directory
|
|
81
|
+
#' @param an array of strings to write into the coords object into the cellbrowser config file
|
|
82
|
+
#'
|
|
83
|
+
if (length(obj@images)==0)
|
|
84
|
+
return(embeddings.conf)
|
|
85
|
+
|
|
86
|
+
message("Exporting spatial images")
|
|
87
|
+
require(png)
|
|
88
|
+
for (name in names(obj@images)) {
|
|
89
|
+
message(name);
|
|
90
|
+
img = GetImage(obj, mode="raw", image=name);
|
|
91
|
+
imgPath <- file.path(outDir, paste0(name, ".jpg"))
|
|
92
|
+
message("Writing image ", imgPath)
|
|
93
|
+
#writePNG(img, imgPath); # JPEG seems like a better choice here, 4x smaller at default quality settings.
|
|
94
|
+
writeJPEG(img, target=imgPath, quality=0.95);
|
|
95
|
+
yMax = dim(img)[1];
|
|
96
|
+
xMax = dim(img)[2]; # there is a difference of 3 pixels on height when comparing "identify file.jpeg" with this. NO IDEA WHY!
|
|
97
|
+
coordsPath <- file.path(outDir, paste0(name, ".coords.tsv"))
|
|
98
|
+
message("Writing coords for image to ", coordsPath)
|
|
99
|
+
#coords <- GetTissueCoordinates(object = obj[[img]])
|
|
100
|
+
|
|
101
|
+
coords <- GetTissueCoordinates(object = obj[[name]])
|
|
102
|
+
coordsRev <- coords[, c("imagecol", "imagerow")] # Grrrr... Seurat stores coordinates as (y,x) in this particular case. reverse the order now.
|
|
103
|
+
colnames(coordsRev) <- c("x", "y")
|
|
104
|
+
|
|
105
|
+
write.table(coordsRev, coordsPath, sep="\t", row.names=T, quote=F, col.names=NA)
|
|
106
|
+
conf <- sprintf(
|
|
107
|
+
' {\n "file": "%s",\n "shortLabel": "Spatial %s",\n "flipY":True,\n "images" : [{"file":"%s"}],\n "minX":0, "minY":0, "maxX":%d, "maxY":%d\n }',
|
|
108
|
+
coordsPath,
|
|
109
|
+
name,
|
|
110
|
+
imgPath,
|
|
111
|
+
xMax,
|
|
112
|
+
yMax
|
|
113
|
+
)
|
|
114
|
+
embeddings.conf <- c(conf, embeddings.conf)
|
|
115
|
+
}
|
|
116
|
+
return(embeddings.conf)
|
|
117
|
+
}
|
|
118
|
+
|
|
72
119
|
#' Export \code{Seurat} objects for UCSC cell browser and stop open cell browser
|
|
73
120
|
#' instances from R
|
|
74
121
|
#'
|
|
@@ -119,6 +166,7 @@ saveMatrix <- function(counts, dir, prefix, use.mtx) {
|
|
|
119
166
|
#' @importFrom reticulate py_module_available import
|
|
120
167
|
#' @importFrom Seurat Project Idents GetAssayData Embeddings FetchData
|
|
121
168
|
#' @importFrom Matrix writeMM
|
|
169
|
+
#' @importFrom jpeg writeJPEG
|
|
122
170
|
#'
|
|
123
171
|
#' @export
|
|
124
172
|
#'
|
|
@@ -195,6 +243,16 @@ ExportToCellbrowser <- function(
|
|
|
195
243
|
break
|
|
196
244
|
}
|
|
197
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'")
|
|
248
|
+
# create a new meta data field named "Cluster"
|
|
249
|
+
newDf <- cbind(object@meta.data, Idents(object))
|
|
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
|
+
|
|
198
256
|
} else {
|
|
199
257
|
message("A custom cluster field was specified: ", cluster.field)
|
|
200
258
|
Idents(object) <- object[[cluster.field]]
|
|
@@ -206,7 +264,7 @@ ExportToCellbrowser <- function(
|
|
|
206
264
|
|
|
207
265
|
if (is.null(x = meta.fields)) {
|
|
208
266
|
meta.fields <- colnames(x = meta)
|
|
209
|
-
if (length(x = levels(x =
|
|
267
|
+
if (length(x = levels(x = Idents(object))) > 1) {
|
|
210
268
|
meta.fields <- c(meta.fields, ".ident")
|
|
211
269
|
}
|
|
212
270
|
}
|
|
@@ -278,7 +336,7 @@ ExportToCellbrowser <- function(
|
|
|
278
336
|
embeddings.conf <- c()
|
|
279
337
|
for (embedName in foundEmbedNames) {
|
|
280
338
|
conf <- sprintf(
|
|
281
|
-
'{"file": "%s.coords.tsv", "shortLabel": "Seurat %1$s"}',
|
|
339
|
+
' {"file": "%s.coords.tsv", "shortLabel": "Seurat %1$s"}',
|
|
282
340
|
embedName
|
|
283
341
|
)
|
|
284
342
|
embeddings.conf <- c(embeddings.conf, conf)
|
|
@@ -287,7 +345,7 @@ ExportToCellbrowser <- function(
|
|
|
287
345
|
df <- data.frame(row.names = cellOrder, check.names = FALSE)
|
|
288
346
|
for (field in meta.fields) {
|
|
289
347
|
if (field == ".ident") {
|
|
290
|
-
df$Cluster <-
|
|
348
|
+
df$Cluster <- Idents(object)
|
|
291
349
|
enum.fields <- c(enum.fields, "Cluster")
|
|
292
350
|
} else {
|
|
293
351
|
name <- meta.fields.names[[field]]
|
|
@@ -321,7 +379,7 @@ ExportToCellbrowser <- function(
|
|
|
321
379
|
file <- NULL
|
|
322
380
|
}
|
|
323
381
|
if (is.null(markers.file) && !skip.markers) {
|
|
324
|
-
if (length(levels(
|
|
382
|
+
if (length(levels(Idents(object))) > 1) {
|
|
325
383
|
markers.helper <- function(x) {
|
|
326
384
|
partition <- markers[x,]
|
|
327
385
|
|
|
@@ -391,6 +449,8 @@ ExportToCellbrowser <- function(
|
|
|
391
449
|
matrixOutPath <- sprintf("%s%smatrix.mtx.gz", firstPrefix, matSep)
|
|
392
450
|
}
|
|
393
451
|
|
|
452
|
+
embeddings.conf <- exportImages(object, dir, embeddings.conf)
|
|
453
|
+
|
|
394
454
|
config <- '# This is a bare-bones cellbrowser config file auto-generated by the command-line tool cbImportSeurat
|
|
395
455
|
# or directly from R with SeuratWrappers::ExportToCellbrowser().
|
|
396
456
|
# Look at https://github.com/maximilianh/cellBrowser/blob/master/src/cbPyLib/cellbrowser/sampleConfig/cellbrowser.conf
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "
|
|
12
|
-
"dirty":
|
|
11
|
+
"date": "2024-01-26T10:33:46-0800",
|
|
12
|
+
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "v1.2.
|
|
14
|
+
"full-revisionid": "79b1a8dc88b82ca35ec995490618ad73697c354f",
|
|
15
|
+
"version": "v1.2.4"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -8,22 +8,56 @@ section { font-weight: bold; padding-top: 5px; padding-bottom: 5px }
|
|
|
8
8
|
|
|
9
9
|
#tpExprViewTitle {
|
|
10
10
|
background-color: #eee;
|
|
11
|
-
padding:
|
|
11
|
+
padding: 5px;
|
|
12
|
+
height: 25px;
|
|
12
13
|
/*border-bottom: 1px solid black; */
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
#tpExprView {
|
|
16
17
|
position: absolute;
|
|
17
18
|
z-index: 100;
|
|
18
|
-
top: 1%;
|
|
19
|
-
left: 1%;
|
|
20
19
|
display: block;
|
|
21
20
|
background-color: white;
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
top: 1%;
|
|
22
|
+
left: 1%;
|
|
23
|
+
height: 99%;
|
|
24
|
+
width: 99%;
|
|
24
25
|
border: 1px solid grey;
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
#tpGeneExprMetaLabel {
|
|
29
|
+
margin-left: 6px;
|
|
30
|
+
margin-right: 6px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
#tpExprViewPlot {
|
|
34
|
+
display:flex;
|
|
35
|
+
flex-direction: row;
|
|
36
|
+
flex-flow: wrap;
|
|
37
|
+
height:100%;
|
|
38
|
+
padding-top:10px;
|
|
39
|
+
overflow: scroll;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#tpExprViewContent {
|
|
43
|
+
padding: 6px;
|
|
44
|
+
height: 100%;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
#tpGeneExprLabel {
|
|
48
|
+
margin-right: 6px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.tpGeneExprCombo {
|
|
52
|
+
margin-left: 6px;
|
|
53
|
+
margin-right: 6px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* selectize dropdown triangle is black by default, make light grey like chosen's triangle */
|
|
57
|
+
.selectize-control.single .selectize-input:after {
|
|
58
|
+
border-color: #888 transparent transparent transparent;
|
|
59
|
+
}
|
|
60
|
+
|
|
27
61
|
#tpLegendBar {
|
|
28
62
|
cursor:default;
|
|
29
63
|
padding-left: 2px;
|
|
@@ -54,7 +88,20 @@ section { font-weight: bold; padding-top: 5px; padding-bottom: 5px }
|
|
|
54
88
|
1px 1px 0 #000;
|
|
55
89
|
}
|
|
56
90
|
|
|
91
|
+
.sliderContainer {
|
|
92
|
+
position : absolute;
|
|
93
|
+
display: grid;
|
|
94
|
+
grid-template-columns: 45px 120px 15px;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.sliderLabel {
|
|
98
|
+
font-size: 11px;
|
|
99
|
+
z-index: 10;
|
|
100
|
+
font-weight: bold;
|
|
101
|
+
}
|
|
102
|
+
|
|
57
103
|
.tpLegend { font-size:13px; /* border: 2px solid transparent; */ cursor:default; word-wrap: break-word; clear:both}
|
|
104
|
+
.tpLegendHl { background-color: #ccc; color: black; }
|
|
58
105
|
.tpHint { font-weight:normal; line-height:1.4; font-size: 80%}
|
|
59
106
|
#tpLegendHeader { background-color:#eee; color: #777 }
|
|
60
107
|
#tpLegendTitle { font-weight: bold }
|
|
@@ -68,6 +115,7 @@ section { font-weight: bold; padding-top: 5px; padding-bottom: 5px }
|
|
|
68
115
|
.tpLegend .tpLegendCheckbox { margin-right: 2px; margin-top: 2px}
|
|
69
116
|
.tpGrey { color: #bbb }
|
|
70
117
|
|
|
118
|
+
|
|
71
119
|
.ui-helper-reset { font-size: 12px}
|
|
72
120
|
.ui-tabs { padding: 0 }
|
|
73
121
|
.ui-tabs { padding: 0 }
|
|
@@ -85,7 +133,28 @@ section { font-weight: bold; padding-top: 5px; padding-bottom: 5px }
|
|
|
85
133
|
#tpButtonInfo { height: 24px; top: 1px; margin-right: 8px; width: 120px; border-radius: 4px }
|
|
86
134
|
.tpDialogInput { margin-left: 12px; margin-top: 5px; margin-bottom: 12px; }
|
|
87
135
|
|
|
88
|
-
.tpIconButton {
|
|
136
|
+
.tpIconButton {
|
|
137
|
+
padding: 1px 2px 1px 2px;
|
|
138
|
+
border-radius: 0;
|
|
139
|
+
height:28px;
|
|
140
|
+
width: 28px;
|
|
141
|
+
cursor: default
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.tpRibbonButton {
|
|
145
|
+
padding: 1px 2px 1px 2px;
|
|
146
|
+
border-radius: 4px;
|
|
147
|
+
height: 24px;
|
|
148
|
+
border: 1px solid #c5c5c5;
|
|
149
|
+
vertical-align: top;
|
|
150
|
+
text-align: center;
|
|
151
|
+
margin-right: 8px;
|
|
152
|
+
top: 3px;
|
|
153
|
+
position: relative;
|
|
154
|
+
padding-left: 4px;
|
|
155
|
+
padding-right: 4px;
|
|
156
|
+
}
|
|
157
|
+
|
|
89
158
|
.tpClicked { background-color: #AAA }
|
|
90
159
|
.tpClicked:hover { background-color: #AAA }
|
|
91
160
|
.btn-primary.load-dataset {float: right; margin-left: 10px; color: white; font-size: 12px; margin-top: -4px;}
|
|
@@ -109,7 +178,7 @@ section { font-weight: bold; padding-top: 5px; padding-bottom: 5px }
|
|
|
109
178
|
}
|
|
110
179
|
|
|
111
180
|
/* modify bootstrap tooltip defaults */
|
|
112
|
-
.tooltip-inner { min-width: 220px; border-radius: 0}
|
|
181
|
+
.tooltip-inner { min-width: 220px; border-radius: 0; background-opacity: 50%}
|
|
113
182
|
|
|
114
183
|
.ui-widget-header { background: white}
|
|
115
184
|
.ui-state-active { background: green }
|
|
@@ -124,6 +193,19 @@ section { font-weight: bold; padding-top: 5px; padding-bottom: 5px }
|
|
|
124
193
|
font-weight: bold;
|
|
125
194
|
}
|
|
126
195
|
|
|
196
|
+
/* expression progress bar only */
|
|
197
|
+
.ui-progressbar {
|
|
198
|
+
position: relative;
|
|
199
|
+
}
|
|
200
|
+
.progress-label {
|
|
201
|
+
position: absolute;
|
|
202
|
+
left: 50%;
|
|
203
|
+
top: 4px;
|
|
204
|
+
font-weight: bold;
|
|
205
|
+
/*text-shadow: 1px 1px 0 #fff;*/
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
|
|
127
209
|
.context-menu-item {
|
|
128
210
|
font-size: 13px;
|
|
129
211
|
padding: 3px
|
|
@@ -183,7 +265,7 @@ section { font-weight: bold; padding-top: 5px; padding-bottom: 5px }
|
|
|
183
265
|
}
|
|
184
266
|
|
|
185
267
|
input[type=checkbox], input[type=radio] {
|
|
186
|
-
vertical-align : -2px;
|
|
268
|
+
vertical-align : -2px; /* https://stackoverflow.com/a/2806786/233871 */
|
|
187
269
|
}
|
|
188
270
|
|
|
189
271
|
|
|
@@ -223,7 +305,7 @@ input[type=checkbox], input[type=radio] {
|
|
|
223
305
|
height: 100%;
|
|
224
306
|
}
|
|
225
307
|
|
|
226
|
-
#tpGeneTab, #tpAnnotTab {
|
|
308
|
+
#tpGeneTab, #tpAnnotTab, #tpLayoutTab {
|
|
227
309
|
border-top: 1px solid #AAA;
|
|
228
310
|
padding:0;
|
|
229
311
|
padding-top: 5px;
|
|
@@ -292,6 +374,25 @@ button { line-height: 12px }
|
|
|
292
374
|
.tpToolBarItem { display:inline-block; white-space: nowrap }
|
|
293
375
|
.tpToolBarItem > label { margin-right: 7px; display: inline}
|
|
294
376
|
|
|
377
|
+
.tpLeftSideItem {
|
|
378
|
+
display:inline-block;
|
|
379
|
+
white-space: nowrap;
|
|
380
|
+
width:100%
|
|
381
|
+
}
|
|
382
|
+
.tpLeftSideItem > label {
|
|
383
|
+
margin-right: 7px;
|
|
384
|
+
display: inline;
|
|
385
|
+
display:block;
|
|
386
|
+
margin-bottom:8px;
|
|
387
|
+
padding-top: 8px;
|
|
388
|
+
padding-left:4px
|
|
389
|
+
}
|
|
390
|
+
#tpLayoutCombo_chosen {
|
|
391
|
+
width:100%;
|
|
392
|
+
padding-left:4px;
|
|
393
|
+
padding-right:2px;
|
|
394
|
+
}
|
|
395
|
+
|
|
295
396
|
.tpCombo { display: inline-block}
|
|
296
397
|
|
|
297
398
|
|