maximilianh / cellBrowser

main repo: https://github.com/ucscGenomeBrowser/cellBrowser/ - Python pipeline and Javascript scatter plot library for single-cell datasets, http://cellbrowser.rtfd.org
https://github.com/ucscGenomeBrowser/cellBrowser/
GNU General Public License v3.0
104 stars 40 forks source link

Single datasets direct entry into viewer (skip selection) for usage in Galaxy #166

Closed pcm32 closed 3 years ago

pcm32 commented 4 years ago

In the UCSC CellBrowser tool for Galaxy the idea is that the user has only a single dataset to see. Currently, since Galaxy 20.01 or 19.09, something in the Galaxy javascript seems to break the view of the selection part (useful when you have multiple datasets). @maximilianh mentioned that he could add an option so that if a single dataset was available to CellBrowser, it would take you directly to it. Could we have this feature?

Many thanks!

pcm32 commented 4 years ago

I have sorted this out with a redirect on our Galaxy side.

pcm32 commented 4 years ago

I think that the current solution I'm using:

<!DOCTYPE HTML>
<html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="refresh" content="0; url=index.html?ds=sample">
        <script type="text/javascript">
            window.location.href = "index.html?ds=sample"
        </script>
        <title>Page Redirection</title>
    </head>
    <body>
        <!-- Note: don't tell people to `click` the link, just tell them that it is a link. -->
        If you are not redirected automatically, follow this <a href='index.html?ds=sample'>link to example</a>.
    </body>
</html>

is not working entirely well as it take some minutes for the interface to be able to respond to layout changes. Maybe because I'm jumping directly there this might be skipping some preprocessing that the user needs to wait for? Any suggestions on how to improve this @maximilianh ?

pcm32 commented 4 years ago

The UI only becomes responsive after all these has happened:

Loading cart from local storage:  Object
cellBrowser.js?01ccf2da80:2345 Color by meta field CellType
cellBrowser.js?01ccf2da80:1645 Saving state:  Object
maxPlot.js?7e6b2f6100:1250 Zoom factor:  1 , Radius: 3, alpha: 0.515
maxPlot.js?7e6b2f6100:630 scale: 2.97998046875ms
maxPlot.js?7e6b2f6100:850 Drawing 8397 coords with drawImg renderer, radius=3
maxPlot.js?7e6b2f6100:923 8397 circles drawn
maxPlot.js?7e6b2f6100:1301 draw: 40.89892578125ms
maxPlot.js?7e6b2f6100:811 labels: 3.510009765625ms
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
maxPlot.js?7e6b2f6100:1250 Zoom factor:  1 , Radius: 3, alpha: 0.515
maxPlot.js?7e6b2f6100:630 scale: 3.125ms
maxPlot.js?7e6b2f6100:850 Drawing 8397 coords with drawImg renderer, radius=3
maxPlot.js?7e6b2f6100:923 8397 circles drawn
maxPlot.js?7e6b2f6100:1301 draw: 21.791748046875ms
maxPlot.js?7e6b2f6100:811 labels: 0.422119140625ms
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
clearMetaAndGene @ cellBrowser.js?01ccf2da80:5586
onCellClickOrHover @ cellBrowser.js?01ccf2da80:5660
MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852
setTimeout (async)
MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
onCellClickOrHover @ cellBrowser.js?01ccf2da80:5668
MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852
setTimeout (async)
MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
clearMetaAndGene @ cellBrowser.js?01ccf2da80:5586
onCellClickOrHover @ cellBrowser.js?01ccf2da80:5660
MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852
setTimeout (async)
MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
onCellClickOrHover @ cellBrowser.js?01ccf2da80:5668
MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852
setTimeout (async)
MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797
cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors
cbData.js?869310bf20:138 Webserver does not support byte range requests, working around it, but this may be slow
cbData.js?869310bf20:896 Got expression data, size = 6649 bytes
cbData.js?869310bf20:637 discretize DNASE1L3: 3.57568359375ms
cbData.js?869310bf20:138 Webserver does not support byte range requests, working around it, but this may be slow
cbData.js?869310bf20:896 Got expression data, size = 27346 bytes
cbData.js?869310bf20:637 discretize APOC3: 11.9580078125ms
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
clearMetaAndGene @ cellBrowser.js?01ccf2da80:5586
onCellClickOrHover @ cellBrowser.js?01ccf2da80:5660
MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852
setTimeout (async)
MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797
cellBrowser.js?01ccf2da80:5439 IGFBP7 is not loaded yet, not updating expr table colors
cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists
updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433
onCellClickOrHover @ cellBrowser.js?01ccf2da80:5668
MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852
setTimeout (async)
MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797
cellBrowser.js?01ccf2da80:5439 IGFBP7 is not loaded yet, not updating expr table colors
cbData.js?869310bf20:138 Webserver does not support byte range requests, working around it, but this may be slow

I realise that I get these messages: Webserver does not support byte range requests but I have set proxy_force_ranges on; in nginx with no effect. Anything else I should set on nginx? Thanks!

maximilianh commented 4 years ago

Ohhh! Your web server does not support byte ranges ? That’s very bad. Can you point me to an example URL of a dataset on this web server ?

Not sure what this proxy thing has to do with byte ranges ...

On Sat 13 Jun 2020 at 13:32, Pablo Moreno notifications@github.com wrote:

The UI only becomes responsive after all this has happened:

Loading cart from local storage: Object cellBrowser.js?01ccf2da80:2345 Color by meta field CellType cellBrowser.js?01ccf2da80:1645 Saving state: Object maxPlot.js?7e6b2f6100:1250 Zoom factor: 1 , Radius: 3, alpha: 0.515 maxPlot.js?7e6b2f6100:630 scale: 2.97998046875ms maxPlot.js?7e6b2f6100:850 Drawing 8397 coords with drawImg renderer, radius=3 maxPlot.js?7e6b2f6100:923 8397 circles drawn maxPlot.js?7e6b2f6100:1301 draw: 40.89892578125ms maxPlot.js?7e6b2f6100:811 labels: 3.510009765625ms cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors maxPlot.js?7e6b2f6100:1250 Zoom factor: 1 , Radius: 3, alpha: 0.515 maxPlot.js?7e6b2f6100:630 scale: 3.125ms maxPlot.js?7e6b2f6100:850 Drawing 8397 coords with drawImg renderer, radius=3 maxPlot.js?7e6b2f6100:923 8397 circles drawn maxPlot.js?7e6b2f6100:1301 draw: 21.791748046875ms maxPlot.js?7e6b2f6100:811 labels: 0.422119140625ms cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 clearMetaAndGene @ cellBrowser.js?01ccf2da80:5586 onCellClickOrHover @ cellBrowser.js?01ccf2da80:5660 MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852 setTimeout (async) MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 onCellClickOrHover @ cellBrowser.js?01ccf2da80:5668 MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852 setTimeout (async) MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 clearMetaAndGene @ cellBrowser.js?01ccf2da80:5586 onCellClickOrHover @ cellBrowser.js?01ccf2da80:5660 MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852 setTimeout (async) MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 onCellClickOrHover @ cellBrowser.js?01ccf2da80:5668 MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852 setTimeout (async) MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797 cellBrowser.js?01ccf2da80:5439 APOC3 is not loaded yet, not updating expr table colors cbData.js?869310bf20:138 Webserver does not support byte range requests, working around it, but this may be slow cbData.js?869310bf20:896 Got expression data, size = 6649 bytes cbData.js?869310bf20:637 discretize DNASE1L3: 3.57568359375ms cbData.js?869310bf20:138 Webserver does not support byte range requests, working around it, but this may be slow cbData.js?869310bf20:896 Got expression data, size = 27346 bytes cbData.js?869310bf20:637 discretize APOC3: 11.9580078125ms cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 clearMetaAndGene @ cellBrowser.js?01ccf2da80:5586 onCellClickOrHover @ cellBrowser.js?01ccf2da80:5660 MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852 setTimeout (async) MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797 cellBrowser.js?01ccf2da80:5439 IGFBP7 is not loaded yet, not updating expr table colors cellBrowser.js?01ccf2da80:5433 Timer 'avgCalc' already exists updateGeneTableColors @ cellBrowser.js?01ccf2da80:5433 onCellClickOrHover @ cellBrowser.js?01ccf2da80:5668 MaxPlot.onNoMouseMove @ maxPlot.js?7e6b2f6100:1852 setTimeout (async) MaxPlot.onMouseMove @ maxPlot.js?7e6b2f6100:1797 cellBrowser.js?01ccf2da80:5439 IGFBP7 is not loaded yet, not updating expr table colors cbData.js?869310bf20:138 Webserver does not support byte range requests, working around it, but this may be slow

I realise that I get these messages: Webserver does not support byte range requests but I have set proxy_force_ranges on; in nginx with no effect. Anything else I should set on nginx? Thanks!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/maximilianh/cellBrowser/issues/166#issuecomment-643610881, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACL4TK5O4V7MMH6U644V6LRWNPWVANCNFSM4MI6K6OQ .

maximilianh commented 3 years ago

After several months of waiting, I've finally made this change: if there is a single dataset and we're currently at the root dataset in the tree, then load this first and only dataset directly and don't open a dialog box. Sorry for the long wait!

Also, there is a new URL argument, &openDialog=1 that you can use to force opening the info dialog, though it's not directly related to your question.