cellbrowser 1.2.17__tar.gz → 1.2.17.2__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.
Files changed (181) hide show
  1. {cellbrowser-1.2.17/src/cbPyLib/cellbrowser.egg-info → cellbrowser-1.2.17.2}/PKG-INFO +1 -1
  2. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/_version.py +3 -3
  3. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/js/cbData.js +23 -2
  4. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/js/cellBrowser.js +122 -21
  5. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/js/maxPlot.js +18 -7
  6. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cellbrowser.py +12 -2
  7. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/sampleConfig/cellbrowser.conf +9 -4
  8. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2/src/cbPyLib/cellbrowser.egg-info}/PKG-INFO +1 -1
  9. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/LICENSE +0 -0
  10. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/MANIFEST.in +0 -0
  11. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/README.rst +0 -0
  12. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/setup.cfg +0 -0
  13. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/setup.py +0 -0
  14. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/RangeHTTPServer/__init__.py +0 -0
  15. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/RangeHTTPServer/__main__.py +0 -0
  16. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/R/cellbrowser.R +0 -0
  17. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/__init__.py +0 -0
  18. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/bw_genes.py +0 -0
  19. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.eot +0 -0
  20. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.ttf +0 -0
  21. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.woff +0 -0
  22. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/css/MaterialIcons-Regular.woff2 +0 -0
  23. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/css/cellBrowser.css +0 -0
  24. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/Chart.bundle.min.js +0 -0
  25. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/FastBitSet.js +0 -0
  26. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/FileSaver.1.1.20151003.min.js +0 -0
  27. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/OverlayScrollbars.min.css +0 -0
  28. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap-dropmenu.min.css +0 -0
  29. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap-submenu.js +0 -0
  30. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap-submenu.min.css +0 -0
  31. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap.3.3.7.min.css +0 -0
  32. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap.min.css +0 -0
  33. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/bootstrap.min.js +0 -0
  34. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/chartjs-chart-box-and-violin-plot.js +0 -0
  35. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen-sprite.png +0 -0
  36. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen-sprite@2x.png +0 -0
  37. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen.1.8.2.min.css +0 -0
  38. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/chosen.jquery.min.js +0 -0
  39. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/drawImage-clipper.js +0 -0
  40. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/font-awesome.css +0 -0
  41. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/googleMaterialIcons.css +0 -0
  42. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/hamster.js +0 -0
  43. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  44. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_444444_256x240.png +0 -0
  45. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_555555_256x240.png +0 -0
  46. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_777620_256x240.png +0 -0
  47. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_777777_256x240.png +0 -0
  48. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_cc0000_256x240.png +0 -0
  49. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/images/ui-icons_ffffff_256x240.png +0 -0
  50. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/intro.min.js +0 -0
  51. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/introjs.2.4.0.min.css +0 -0
  52. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery-ui-1.12.1.css +0 -0
  53. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery-ui.min.js +0 -0
  54. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.3.1.1.min.js +0 -0
  55. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.contextMenu.css +0 -0
  56. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.contextMenu.js +0 -0
  57. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.event.drag-2.3.0.js +0 -0
  58. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.overlayScrollbars.min.js +0 -0
  59. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.sparkline.min.js +0 -0
  60. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tablesorter.js +0 -0
  61. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tablesorter.widgets.js +0 -0
  62. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tipsy.1.0.3.min.css +0 -0
  63. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.tipsy.min.js +0 -0
  64. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jquery.ui.position.min.js +0 -0
  65. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/jsurl2.js +0 -0
  66. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/lz-string.js +0 -0
  67. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/materialIcons.woff +0 -0
  68. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/minified.js +0 -0
  69. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/mousetrap.min.js +0 -0
  70. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/normalizeWheel.js +0 -0
  71. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/pako_inflate.min.js +0 -0
  72. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/palette.js +0 -0
  73. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/papaparse.min.js +0 -0
  74. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/reorder.v1.js +0 -0
  75. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/scaleColorPerceptual.js +0 -0
  76. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/science.v1.js +0 -0
  77. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/select2.4.0.4.min.css +0 -0
  78. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/select2.min.js +0 -0
  79. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/selectize.bootstrap3.css +0 -0
  80. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/selectize.js +0 -0
  81. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.cellrangedecorator.js +0 -0
  82. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.cellrangeselector.js +0 -0
  83. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.cellselectionmodel.js +0 -0
  84. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.core.js +0 -0
  85. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.editors.js +0 -0
  86. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.examples.css +0 -0
  87. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.formatters.js +0 -0
  88. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.grid.css +0 -0
  89. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/slick.grid.js +0 -0
  90. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/spectrum-1.8.0.css +0 -0
  91. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/spectrum.min.js +0 -0
  92. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/split.js +0 -0
  93. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/tablesort.js +0 -0
  94. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/tablesort.number.min.js +0 -0
  95. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/.npmignore +0 -0
  96. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/LICENSE +0 -0
  97. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/Makefile +0 -0
  98. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/README.md +0 -0
  99. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/browser.js +0 -0
  100. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/build.js +0 -0
  101. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/d3-random-matrix.js +0 -0
  102. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/example.png +0 -0
  103. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/gradients.js +0 -0
  104. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/example/package.json +0 -0
  105. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/inferno.json +0 -0
  106. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/magma.json +0 -0
  107. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/plasma.json +0 -0
  108. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/hex/viridis.json +0 -0
  109. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/inferno.js +0 -0
  110. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/magma.js +0 -0
  111. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/package.json +0 -0
  112. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/plasma.js +0 -0
  113. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/inferno.json +0 -0
  114. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/magma.json +0 -0
  115. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/plasma.json +0 -0
  116. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/rgb/viridis.json +0 -0
  117. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/utils/hex2rgb.js +0 -0
  118. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/utils/interpolate.js +0 -0
  119. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/utils/rgb2hex.js +0 -0
  120. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/temp/node_modules/scale-color-perceptual/viridis.js +0 -0
  121. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/theme.bootstrap_3.css +0 -0
  122. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/ext/tiny-queue.js +0 -0
  123. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/genes/files.json +0 -0
  124. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/genes/hg19.gc34.tsv +0 -0
  125. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/genes/hg19.json.gz +0 -0
  126. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/genes/hg38.gc34.tsv +0 -0
  127. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/genes/hg38.json.gz +0 -0
  128. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/genes/log.txt +0 -0
  129. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/genes/makeGenes.py +0 -0
  130. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/genes/mm10.json.gz +0 -0
  131. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/genes/mm10.vm25.tsv +0 -0
  132. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/README.md +0 -0
  133. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/center.png +0 -0
  134. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/README.txt +0 -0
  135. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/gtk-justify-left.png +0 -0
  136. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/gtk-save.png +0 -0
  137. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/log.txt +0 -0
  138. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-center-16.png +0 -0
  139. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-center-24.png +0 -0
  140. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-controller-16.png +0 -0
  141. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-controller-24.png +0 -0
  142. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-edit-16.png +0 -0
  143. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-gravity-west-24.png +0 -0
  144. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-info-16.png +0 -0
  145. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-info-24.png +0 -0
  146. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-merge-down-16.png +0 -0
  147. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-scale-16.png +0 -0
  148. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-free-select-16.png +0 -0
  149. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-free-select-22.png +0 -0
  150. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-move-16.png +0 -0
  151. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-move-22.png +0 -0
  152. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-rect-select-16.png +0 -0
  153. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-rect-select-22.png +0 -0
  154. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-zoom-16.png +0 -0
  155. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/gimpFlat/stock-tool-zoom-22.png +0 -0
  156. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/icons8-help-32.png +0 -0
  157. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/info.png +0 -0
  158. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/lasso.png +0 -0
  159. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/marker.png +0 -0
  160. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/move.png +0 -0
  161. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/select.png +0 -0
  162. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/img/zoom.png +0 -0
  163. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/js/maxHeat.js +0 -0
  164. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/cbWeb/js/violinWorker.js +0 -0
  165. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/convert.py +0 -0
  166. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/download.py +0 -0
  167. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/geneinfo.py +0 -0
  168. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/genes.py +0 -0
  169. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/hubmaker.py +0 -0
  170. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/sampleConfig/desc.conf +0 -0
  171. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/sampleConfig/hub.conf +0 -0
  172. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/sampleConfig/scanpy.conf +0 -0
  173. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/sampleConfig/seurat.conf +0 -0
  174. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/sampleConfig/summary.html +0 -0
  175. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser/seurat.py +0 -0
  176. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser.egg-info/SOURCES.txt +0 -0
  177. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser.egg-info/dependency_links.txt +0 -0
  178. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser.egg-info/entry_points.txt +0 -0
  179. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser.egg-info/not-zip-safe +0 -0
  180. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/src/cbPyLib/cellbrowser.egg-info/top_level.txt +0 -0
  181. {cellbrowser-1.2.17 → cellbrowser-1.2.17.2}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cellbrowser
3
- Version: 1.2.17
3
+ Version: 1.2.17.2
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
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2026-04-22T13:09:32-0700",
11
+ "date": "2026-05-01T08:30:24-0700",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "73100b2c3973b545756150bc92f27113edf0f592",
15
- "version": "1.2.17"
14
+ "full-revisionid": "1a6a9ab68b092f7e8817e346ddb0bef41da4dfbf",
15
+ "version": "1.2.17.2"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -238,8 +238,26 @@ var cbUtil = (function () {
238
238
  var dec = new TextDecoder("utf-8");
239
239
  binData = dec.decode(arr);
240
240
  }
241
- else if (this._arrType!=="string")
241
+ else if (this._arrType!=="string") {
242
+ // For URLs ending in .gz (e.g. coords.bin.gz), we may receive either
243
+ // the raw gzip stream (typical with Apache, since .gz is not re-compressed)
244
+ // or auto-decompressed bytes (if the server set Content-Encoding: gzip).
245
+ // Detect the gzip magic header (0x1f 0x8b) to handle both cases.
246
+ var urlPath = this._url.split("?")[0];
247
+ if (urlPath.endsWith(".gz")) {
248
+ var bytes = new Uint8Array(binData);
249
+ if (bytes.length >= 2 && bytes[0] === 0x1f && bytes[1] === 0x8b) {
250
+ // pako returns a Uint8Array that may be a view into a
251
+ // larger pre-allocated pool, so .buffer can be longer
252
+ // than the actual data and not a multiple of 4. Slice
253
+ // out exactly the decompressed bytes into a fresh
254
+ // ArrayBuffer before constructing the typed array.
255
+ var ungz = pako.ungzip(bytes);
256
+ binData = ungz.buffer.slice(ungz.byteOffset, ungz.byteOffset + ungz.byteLength);
257
+ }
258
+ }
242
259
  binData = new this._arrType(binData);
260
+ }
243
261
  }
244
262
 
245
263
  this._onDone(binData, this._otherInfo);
@@ -544,7 +562,10 @@ function CbDbFile(url) {
544
562
  }
545
563
  }
546
564
 
547
- var binUrl = cbUtil.joinPaths([self.url, "coords", coordInfo.name, "coords.bin"]);
565
+ // coords.bin was renamed to coords.bin.gz in cbBuild — see coordInfo.gzip in dataset.json.
566
+ // Old datasets without the gzip flag continue to serve the uncompressed coords.bin.
567
+ var binFname = coordInfo.gzip ? "coords.bin.gz" : "coords.bin";
568
+ var binUrl = cbUtil.joinPaths([self.url, "coords", coordInfo.name, binFname]);
548
569
  if (coordInfo.md5)
549
570
  binUrl += "?"+coordInfo.md5;
550
571
  var arrType = cbUtil.makeType(coordInfo.type || "float64");
@@ -763,12 +763,18 @@ var cellbrowser = function() {
763
763
  $( "#pane3" ).hide();
764
764
  $( "#tabLink3" ).hide();
765
765
  } else {
766
- if (desc.coordFiles===undefined) {
766
+ if (desc.hideDownload===true || desc.hideDownload=="True" || desc.hideDownload=="true") {
767
+ htmls.push("The downloads section has been deactivated by the authors. Please contact the dataset authors to get access.");
768
+ $( "#pane3" ).html(htmls.join(""));
769
+ $( "#pane3" ).show();
770
+ $( "#tabLink3" ).show();
771
+ } else if (desc.coordFiles===undefined) {
767
772
  htmls.push("To download the data for datasets in this collection: open the collection, ");
768
773
  htmls.push("select a dataset in the list to the left, and navigate to the 'Data Download' tab. ");
769
774
  htmls.push("This information can also be accessed while viewing a dataset by clicking the 'Info & Downloads' button.");
770
- } else if (desc.hideDownload===true || desc.hideDownload=="True" || desc.hideDownload=="true") {
771
- htmls.push("The downloads section has been deactivated by the authors. Please contact the dataset authors to get access.");
775
+ $( "#pane3" ).html(htmls.join(""));
776
+ $( "#pane3" ).show();
777
+ $( "#tabLink3" ).show();
772
778
  } else {
773
779
  if (desc.matrices) {
774
780
  htmls.push("<p>");
@@ -1746,7 +1752,7 @@ var cellbrowser = function() {
1746
1752
  function onRadiusAlphaChange(radius, alpha) {
1747
1753
  /* user changed alpha or radius value */
1748
1754
  getById("tpSizeInput").value = radius;
1749
- getById("tpAlphaInput").value = alpha;
1755
+ getById("tpAlphaInput").value = 8-alpha;
1750
1756
  }
1751
1757
  function onSaveAsClick() {
1752
1758
  /* File - Save Image as ... */
@@ -3028,7 +3034,7 @@ var cellbrowser = function() {
3028
3034
  }
3029
3035
 
3030
3036
  var label = url;
3031
- if (url.endsWith("coords.bin"))
3037
+ if (url.endsWith("coords.bin") || url.endsWith("coords.bin.gz"))
3032
3038
  label = "Loading Coordinates";
3033
3039
  else if (url.endsWith(".bin"))
3034
3040
  label = "Loading cell annotations";
@@ -3142,7 +3148,7 @@ var cellbrowser = function() {
3142
3148
 
3143
3149
  changeUrl({"pal":null});
3144
3150
  // clear the gene search box
3145
- var select = $('#tpGeneCombo')[0].selectize.clear();
3151
+ selectizeClear('tpGeneCombo');
3146
3152
  }
3147
3153
 
3148
3154
  function activateTab(name) {
@@ -3424,21 +3430,28 @@ var cellbrowser = function() {
3424
3430
  }
3425
3431
 
3426
3432
  function selectizeSetValue(elId, name) {
3427
- /* little convenience method to set a selective dropdown to a given
3428
- * value. does not trigger the change event. */
3433
+ /* set a gene combobox to a given value. Works for both selectize typeahead
3434
+ * and the select2 dropdown used for small gene sets. Does not fire change. */
3429
3435
  if (name===undefined)
3430
3436
  return;
3431
- var sel = getById(elId).selectize;
3432
- sel.addOption({id: name, text: name});
3433
- sel.setValue(name, 1); // 1 = do not fire change
3437
+ var el = getById(elId);
3438
+ if (el && el.selectize) {
3439
+ el.selectize.addOption({id: name, text: name});
3440
+ el.selectize.setValue(name, 1); // 1 = do not fire change
3441
+ } else {
3442
+ // select2: change.select2 updates the UI without firing user change handlers
3443
+ $("#"+elId).val(name).trigger("change.select2");
3444
+ }
3434
3445
  }
3435
3446
 
3436
3447
  function selectizeClear(elId) {
3437
- /* clear a selectize Dropdown */
3438
- if (name===undefined)
3439
- return;
3440
- var sel = getById(elId).selectize;
3441
- sel.clear();
3448
+ /* clear a gene combobox. Works for both selectize and select2. */
3449
+ var el = getById(elId);
3450
+ if (!el) return;
3451
+ if (el.selectize)
3452
+ el.selectize.clear();
3453
+ else
3454
+ $("#"+elId).val(null).trigger("change.select2");
3442
3455
  }
3443
3456
 
3444
3457
  function colorByNothing() {
@@ -4661,7 +4674,7 @@ var cellbrowser = function() {
4661
4674
 
4662
4675
  function onSetRadiusAlphaClick(ev) {
4663
4676
  let newRadius = parseFloat(getById('tpSizeInput').value);
4664
- let newAlpha = parseFloat(getById('tpAlphaInput').value);
4677
+ let newAlpha = 8-parseFloat(getById('tpAlphaInput').value);
4665
4678
  renderer.setRadiusAlpha(newRadius, newAlpha);
4666
4679
  renderer.drawDots();
4667
4680
  }
@@ -6161,9 +6174,66 @@ var cellbrowser = function() {
6161
6174
  });
6162
6175
  }
6163
6176
 
6177
+ function switchToHeat() {
6178
+ /* hide the renderer and legend and put the heatmap over them */
6179
+ renderer.div.style.display = 'none';
6180
+ $("#tpLegendBar").hide();
6181
+
6182
+ var heatLeft = metaBarWidth+metaBarMargin;
6183
+ var heatWidth = window.innerWidth - heatLeft - 3;
6184
+ var heatTop = menuBarHeight + toolBarHeight;
6185
+ var heatHeight = window.innerHeight - heatTop;
6186
+
6187
+ let divEl = document.createElement('div');
6188
+ divEl.style.position = "absolute";
6189
+ divEl.style.overflow = "scroll";
6190
+ divEl.style.left = heatLeft+"px";
6191
+ divEl.style.top = heatTop+"px";
6192
+ divEl.style.width = heatWidth+"px";
6193
+ divEl.style.height = heatHeight+"px";
6194
+ divEl.id = "tpHeat";
6195
+
6196
+ document.body.appendChild(divEl);
6197
+
6198
+ let geneIds = [];
6199
+ if (db.geneCount < 200)
6200
+ geneIds = db.allGeneIds();
6201
+ else {
6202
+ if (db.conf.quickGenes) {
6203
+ for (let qg of db.conf.quickGenes)
6204
+ geneIds.push(qg[0]);
6205
+ }
6206
+ }
6207
+
6208
+ if (!geneIds || geneIds.length===0) {
6209
+ alert("No quick genes are defined. Heatmaps currently only work on pre-defined gene sets.");
6210
+ return;
6211
+ }
6212
+
6213
+ let metaName = getActiveColorField();
6214
+
6215
+ var heatmap = new MaxHeat(divEl, {mainRenderer:renderer});
6216
+ db.heatmap = heatmap;
6217
+ db.heatmap.exprData = null;
6218
+
6219
+ function onExprDataDoneHeat(exprData) {
6220
+ plotHeatmap(divEl, metaName, exprData);
6221
+ }
6222
+
6223
+ loadGroupedExprData(db.heatmap.exprData, geneIds, metaName, onExprDataDoneHeat);
6224
+ }
6225
+
6226
+ function useGeneDropdown() {
6227
+ /* Use a searchable dropdown (all genes pre-populated) rather than a
6228
+ * typeahead, when the gene list is small enough to fit comfortably. */
6229
+ if (db.conf.atacSearch) return false;
6230
+ return db.geneCount && db.geneCount <= 300;
6231
+ }
6232
+
6233
+
6164
6234
  function activateGeneCombo(id, onGeneComboChange) {
6165
- /* initialize the gene search combo box with selectize */
6166
- // selectize: gene or ATAC Color by search box
6235
+ /* initialize the gene search combo box. Uses a select2 dropdown with all
6236
+ * options pre-populated for small gene sets; selectize typeahead otherwise. */
6167
6237
  var comboLoad = comboLoadGene;
6168
6238
  if (db.conf.atacSearch) {
6169
6239
  comboLoad = comboLoadAtac;
@@ -6174,6 +6244,32 @@ var cellbrowser = function() {
6174
6244
 
6175
6245
  }
6176
6246
 
6247
+ if (useGeneDropdown()) {
6248
+ var selectEl = getById(id);
6249
+ var geneIds = db.allGeneIds();
6250
+ var opts = [];
6251
+ for (var i=0; i<geneIds.length; i++)
6252
+ opts.push(db.getGeneInfo(geneIds[i]));
6253
+ opts.sort(function(a, b) { return a.sym.localeCompare(b.sym); });
6254
+ var placeholder = selectEl.getAttribute("placeholder") || "";
6255
+ // select2 needs an empty <option> first to show the placeholder
6256
+ var html = ['<option></option>'];
6257
+ for (var j=0; j<opts.length; j++) {
6258
+ var text = opts[j].sym;
6259
+ if (opts[j].sym !== opts[j].id)
6260
+ text = opts[j].sym + " (" + opts[j].id + ")";
6261
+ html.push('<option value="'+opts[j].id+'">'+text+'</option>');
6262
+ }
6263
+ selectEl.innerHTML = html.join("");
6264
+ var widthPx = selectEl.style.width || 'resolve';
6265
+ $("#"+id).select2({
6266
+ placeholder: placeholder,
6267
+ allowClear: true,
6268
+ width: widthPx
6269
+ }).on("change", onGeneComboChange);
6270
+ return;
6271
+ }
6272
+
6177
6273
  var select = $("#"+id).selectize({
6178
6274
  maxItems: 1,
6179
6275
  valueField : 'id',
@@ -7495,7 +7591,7 @@ var cellbrowser = function() {
7495
7591
  htmls.push("<ul>");
7496
7592
  htmls.push("<li><a href='#tpAnnotTab'>Annotation</a></li>");
7497
7593
  htmls.push("<li><a href='#tpGeneTab'>"+getGeneLabel()+"</a></li>");
7498
- htmls.push("<li><a href='#tpLayoutTab'>Layout</a></li>");
7594
+ htmls.push("<li><a href='#tpLayoutTab'>"+(db.conf.coordLabel || "Layout")+"</a></li>");
7499
7595
  htmls.push("</ul>");
7500
7596
 
7501
7597
  htmls.push("<div id='tpAnnotTab'>");
@@ -7889,7 +7985,12 @@ var cellbrowser = function() {
7889
7985
  Mousetrap.bind('m', function() {$('#tpMetaCombo').trigger("chosen:open"); return false;});
7890
7986
  Mousetrap.bind('d', function() {$('#tpDatasetCombo').trigger("chosen:open"); return false;});
7891
7987
  //Mousetrap.bind('l', function() {$('#tpLayoutCombo').trigger("chosen:open"); return false;});
7892
- Mousetrap.bind('g', function() {$("#tpGeneCombo").selectize()[0].selectize.focus(); return false;});
7988
+ Mousetrap.bind('g', function() {
7989
+ var el = getById("tpGeneCombo");
7990
+ if (el && el.selectize) el.selectize.focus();
7991
+ else $("#tpGeneCombo").select2('open');
7992
+ return false;
7993
+ });
7893
7994
  Mousetrap.bind('c l', onHideShowLabelsClick );
7894
7995
  Mousetrap.bind('f c', onFindCellsClick );
7895
7996
  Mousetrap.bind('f i', function() { onSelectByIdClick(); return false; } );
@@ -439,13 +439,13 @@ function MaxPlot(div, top, left, width, height, args) {
439
439
  console.log("alpha: "+ui.value);
440
440
  var sliderVal = ui.value; // 1-7
441
441
  var multMap = {
442
- 7 : 0.15,
443
- 6 : 0.4,
444
- 5 : 0.8,
442
+ 7 : 0.10,
443
+ 6 : 0.3,
444
+ 5 : 0.7,
445
445
  4 : 1.0,
446
446
  3 : 1.2,
447
447
  2 : 1.5,
448
- 1 : 1.8
448
+ 1 : 2.0
449
449
  }
450
450
  self.port.alphaMult = multMap[sliderVal];
451
451
  console.log("alphaMult: "+self.port.alphaMult);
@@ -462,8 +462,8 @@ function MaxPlot(div, top, left, width, height, args) {
462
462
  3 : 1/1.5,
463
463
  4 : 1.0,
464
464
  5 : 1.5,
465
- 6 : 2.0,
466
- 7 : 3.0
465
+ 6 : 2.5,
466
+ 7 : 5.0
467
467
  }
468
468
  self.port.radiusMult = multMap[sliderVal];
469
469
  self.calcRadius();
@@ -3247,7 +3247,18 @@ function MaxPlot(div, top, left, width, height, args) {
3247
3247
  var x = coords[i * 2];
3248
3248
  var y = coords[i * 2 + 1];
3249
3249
 
3250
- if (isHidden(x, y))
3250
+ // Skip hidden cells. HIDCOORD is the sentinel cbBuild writes for
3251
+ // cells that have no coordinate in this layout (common in spatial
3252
+ // datasets where each layout shows one slide). Non-WebGL also uses
3253
+ // it for user-hidden cells; WebGL tracks user-hide separately in
3254
+ // coords.hidden[i]. We don't use isHidden() because its WebGL
3255
+ // branch does a viewport-bounds check in clip space, but coords
3256
+ // here are in data space — that check would drop almost everything
3257
+ // and labels would collapse to the canvas center. Labels follow
3258
+ // the data, not the current zoom/pan.
3259
+ if (x === HIDCOORD && y === HIDCOORD)
3260
+ continue;
3261
+ if (self.usesWebGL() && self.coords.hidden && self.coords.hidden[i] === 1)
3251
3262
  continue;
3252
3263
 
3253
3264
  calc[label][0].push(x);
@@ -2678,9 +2678,17 @@ def writeCoords(coordName, coords, sampleNames, coordBinFname, coordInfo, textOu
2678
2678
  debugFh.close()
2679
2679
  logging.info("DEBUG: wrote %s" % debugFh.name)
2680
2680
  renameFile(tmpFname, coordBinFname)
2681
-
2682
- md5 = md5WithPython(coordBinFname)
2681
+
2682
+ # gzip coords.bin -> coords.bin.gz. Named .gz so Apache mod_deflate doesn't try to
2683
+ # re-compress it on the wire. The JS reader (cbData.js) ungzips with pako.
2684
+ # Compresses well on datasets with many hidden cells (long HIDDENCOORD runs).
2685
+ coordBinGz = runGzip(coordBinFname)
2686
+ if isfile(coordBinFname):
2687
+ os.remove(coordBinFname)
2688
+
2689
+ md5 = md5WithPython(coordBinGz)
2683
2690
  coordInfo["md5"] = md5[:MD5LEN]
2691
+ coordInfo["gzip"] = True
2684
2692
 
2685
2693
  coordInfo["minX"] = minX
2686
2694
  coordInfo["maxX"] = maxX
@@ -6415,6 +6423,7 @@ def makeIndexHtml(baseDir, outDir, devMode=False):
6415
6423
  "ext/OverlayScrollbars.min.css", # 1.6.2, from https://cdnjs.com/libraries/overlayscrollbars
6416
6424
  #"ext/theme.default.css", # tablesorter
6417
6425
  "ext/theme.bootstrap_3.css", # tablesorter
6426
+ "ext/jquery.tablesorter.pager.css", # tablesorter pager addon
6418
6427
  "css/cellBrowser.css"
6419
6428
  ]
6420
6429
 
@@ -6440,6 +6449,7 @@ def makeIndexHtml(baseDir, outDir, devMode=False):
6440
6449
  "ext/jquery.event.drag-2.3.0.js", # for slickgrid 2.4.5
6441
6450
  "ext/jquery.tablesorter.js",
6442
6451
  "ext/jquery.tablesorter.widgets.js",
6452
+ "ext/jquery.tablesorter.pager.js",
6443
6453
  "ext/lz-string.js", # 1.4.4, https://raw.githubusercontent.com/pieroxy/lz-string/master/libs/lz-string.js
6444
6454
  "ext/slick.core.js",
6445
6455
  "ext/slick.cellrangedecorator.js", "ext/slick.cellrangeselector.js", "ext/slick.cellselectionmodel.js",
@@ -72,6 +72,15 @@ coords=[
72
72
  },
73
73
  ]
74
74
 
75
+ # The "Layout" tab can be renamed, e.g. for spatial datasets
76
+ # coordLabel="Spatial Slides"
77
+ #
78
+ # rarely needed: the "Genes" tab can be renamed.
79
+ # you if your expression matrix does not contain genes, but something
80
+ # else, like "lipids" or "plankton", you can replace the word "gene" in the
81
+ # user interface with another word
82
+ # geneLabel = "Lipid"
83
+
75
84
  # if you use the lineFile option, you can tweak their display a little with these statements, defaults are dark-grey, 0.5 and 3
76
85
  #lineColor="#112233"
77
86
  #lineAlpha=0.3
@@ -171,10 +180,6 @@ unit = "TPM"
171
180
  # or the matrix has only integers expressed like 100.000, 200.000, 300.00, ...
172
181
  matrixType='auto'
173
182
 
174
- # rarely needed: if your expression matrix does not contain genes, but something
175
- # else, like "lipids" or "plankton", you can replace the word "gene" in the
176
- # user interface with another word
177
- # geneLabel = "Lipid"
178
183
 
179
184
  # the default color palettes for this dataset. By default, we use Paul Tol's
180
185
  # but you could use other ones. change the palette in the UI, look at the URL, the value for the palette
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cellbrowser
3
- Version: 1.2.17
3
+ Version: 1.2.17.2
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
File without changes
File without changes
File without changes
File without changes
File without changes