Git Product home page Git Product logo

morpheus.js's People

Contributors

bwedin avatar eweitz avatar jasiedu avatar joshua-gould avatar rajivnarayan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

morpheus.js's Issues

Export heatmap image to PDF does not retain row IDs

When I export a heatmap to svg or png, I get the entire heatmap information including row annotations. However, when I export to PDF the row annotations are missing. The row annotation header, eg Gene is visible, but not the actual annotation (gene symbol).

The exported PDF is set to "fit to window".

Cannot filter on multiple categories

I cannot seem to filter columns on multiple categories.

Here is an example from a public data set.

Steps to recreate:

  1. I loaded up the AML Mutation Data Set.
  2. Clicked Tools --> Filter
  3. Clicked Columns
  4. Clicked "Pass all filters"
  5. Clicked Add
  6. Selected Gender --> Female

At this point, the matrix filters nicely.

  1. Clicked Add
  2. Selected Ethnicity --> Not Hispanic or Latino

At this point, the matrix is filtered by ethnicity, but my original gender filter no longer works. If I click male/female, still nothing happens. Clicking pass all filters also seems to have no effect.

Not stable sorting by columns

Say I want to sort columns by two categories.
Usual way to do that in a grid is to sort by one, then sort by the second one.
If the sort is stable, this will result in columns sorted by the second category, but within cols with the same second category, they should remain sorted by the first category.

Seem that it's not the case for morpheus, which limits ad-hoc analysis that can be performed.

Steps to reproduce:

  • taken https://software.broadinstitute.org/morpheus/
  • select "Preloaded Datasets"
  • select "Acute Myeloid Leukemia (LAML)"
  • "GENE Expression" -> "Open"
  • in the zoom menu "Fit Columns To Window"
  • click "mRNAseq_cluster" column category to sort by.
  • now click "gender" to sort by.

Expected: two groups by gender (it is) and within each of them sorted by "mRNAseq_cluster" (same order if mRNAseq_cluster in both gender groups).
Observed: mRNAseq_cluster order is scrambled.

Loading Morpheus session files from a URL

Is it possible to load morpheus session files from a URL location? That would be useful for sharing preconfigured views of data.

However downloading the same session file and manually opening it also works.

Can't read long row/column names

When filtering a dataset based on row/column titles, the window does not adjust to length of the name correctly. The name seems to become two lines and becomes unreadable (example below):
image

Heatmap Grid not removable

Hi,
I am using Morpheus to visualize a gene expression heatmap. The heatmap cell grid are not removed even though I unchecked the 'show grid' under Option->Display.
Is there a way to remove cell box grid completely?

Cross-origin requests

Hi Josh,

There are a few minor bugs when I'm running morpheus version locally in Chromium. You does not specify protocol in the external datasets like CCLE and my browser tries to open them via file:// protocol and fails. See the scrennshot
2016-06-08-130252_956x1059_scrot


Alexey

incorrect fraction visualization

Hello,
There's a problem with numbers like '2.343e-10' in annotations, because they're visualized like '2.343e-1', you truncate zeros from the end of such numbers as well as from '0.001000'.

Morpheus giving blank page

Hi, I am trying to load a url based JSON. The JSON is generated on the fly upon hitting that url. However, Morpheus is not loading the JSON, and just giving a blank page. It looks like it is the same source as a page that works, but no error, nothing pops up.

<!DOCTYPE html>
<meta charset="utf-8">

<link rel="stylesheet" href="morpheus.js-master/css/morpheus-latest.min.css">
<script type="text/javascript" src="morpheus.js-master/js/morpheus-external-latest.min.js"></script>
<script src="morpheus.js-master/js/morpheus-latest.min.js"></script>

<body>
<noscript>
    <p>Please enable JavaScript</p>
</noscript>
<div id="vis"></div>

<script type="text/javascript">
    morpheus.Util.loadTrackingCode();
    window.onerror = function () {
        morpheus.FormBuilder.showInModal({
            title: 'Error',
            html: 'Oops, something went wrong. Please try again.'
        });
    };

    var searchString = window.location.search;
    if (searchString.length === 0) {
        searchString = window.location.hash;
    }
    var landingPage = new morpheus.LandingPage();
    landingPage.$el.prependTo($(document.body));
    if (searchString.length === 0) {
        landingPage.show();
    } else {
        searchString = searchString.substring(1);
        var keyValuePairs = searchString.split('&');
        var params = {};
        for (var i = 0; i < keyValuePairs.length; i++) {
            var pair = keyValuePairs[i].split('=');
            params[pair[0]] = decodeURIComponent(pair[1]);
        }
        if (params.json) {
            var options = JSON.parse(decodeURIComponent(params.json));
            landingPage.open(options);
        } else if (params.url) { // url to config
            var $loading = morpheus.Util.createLoadingEl();
            $loading.appendTo($('#vis'));
            morpheus.Util.getText(params.url).done(function (options) {
                if (typeof (options) === 'string') {
                    options = JSON.parse(options);
                }
                landingPage.open(options);
            }).fail(function (err) {
                console.log('Unable to get config file');
                landingPage.show();
            }).always(function () {
                $loading.remove();
            });

        } else {
            landingPage.show();
        }
    }
</script>

<script>
    if ((window.location.protocol === 'https:' || window.location.protocol === 'http:') &&
        'serviceWorker' in navigator) {
        navigator.serviceWorker
            .register('sw.js');
    }

</script>
</body>

Fit to window onload configuration

Hi

Thank you for this great tool. I wonder if it is possible to configure morpheus to display Fit To Window view onload?
I tried using tools: [{"name": "Fit To Window"}], but the code assumed the action would have a gui and raises an error.

morpheus-latest.min.js:1 Uncaught (in promise) TypeError: action.gui is not a function
    at morpheus-latest.min.js:1
    at Function.m.each.m.forEach (morpheus-external-latest.min.js:20)
    at morpheus.HeatMap._init (morpheus-latest.min.js:1)
    at morpheus-latest.min.js:1

Ward Linkage

Add a ward linkage option to hierarchical clustering

Can't annotate dataset from file

Hi,

In GENE-E there was a nice feature for importing row/column annotations from external files. Could you add it to morpheus?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.