Giter VIP home page Giter VIP logo

knowledge-pearls's Introduction

Caleydo - Visualization for Molecular Biology

Build Status

Caleydo is a visualization framework for molecular biology data. It is targeted at analyzing multiple heterogeneous but related tabular datasets (e.g., mRNA expression, copy number status and clinical variables), stratifications or clusters in these datasets and their relationships to biological pathways.

For user documentation please refer to the Caleydo Help. For general information and downloads based on binaries please use the Caleydo Website. This guide assumes that you want to install Caleydo from source.

Installation

Caleydo uses Java, OpenGL and the Eclipse Rich Client Platform (RCP). Things you need to install before being able to run Caleydo:

  • Eclipse Kepler for RCP and RAP Developers, which you can get from the eclipse download page. Other Eclipse versions won't work.
  • Install EGit in Eclipse using software updates.
  • Java SDK >= 1.7

To install Caleydo use EGit within Eclipse and clone the repository. Each directory in the caleydo-dev folder corresponds to an Eclipse project. Here is a good tutorial on how to import Eclipse projects from git.

If you want to use ssh (instead of https) for communicating with github out of eclipse follow these instructions. You will have to generate a new RSA key and save it to you ~/.ssh folder. Remeber to set a passphrase for you key. This will result in a file ida_rsa and ida_rsa.pub turning up in your ssh folder. Save your public rsa key with your eclipse account folder.

When cloning the repository follow the above tutorial. Don't change the username "git" to your username!

Team

Caleydo is an academic project currently developed by members of

Acknowledgements

Caleydo makes use of a range of open source tools, bioinformatics resources and pre-packages several datasets, which we gratefully acknowledge here.

Software Libraries

  • Bubble Sets - A Java implementation of the visualization technique.
  • CDK - The Chemistry Development Kit.
  • JGrahT - A graph library.
  • Jogl - Java bindings for OpenGL.
  • PathVisio - loading and parsing WikiPathways.
  • WordHoard - statistical utilities.

Bioinformatics Resources

Datasets

  • CCLE - BROAD Institute Cancer Cell Line Encyclopedia.
  • TCGA - The Cancer Genome Atlas.

Resources

  • GitHub - Hosting our source code.
  • WebStorm - Free developer licenses for our web projects from JetBrains.

knowledge-pearls's People

Contributors

mstreit avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

knowledge-pearls's Issues

Track filters in Ordino

Steps

  • Open Gene view
  • Select "EGFR" and open "Copy Number" detail view
  • Filter for tumor type "breast cancer" and sort by "Copy Number"

image

Expected
The retrieval should provide a list of used filters.

Avoid interactions when jumping to search result

Search view without prov view → could switch to CLUE presentation mode, to avoid forks from clicks by mistakes

Alternative: Ask the user if he wants to continue the analysis from the search results and switch to exploration mode.

Record dynamically added columns from selections in VisState

Reproduce

  1. Select gene TP53 (ENSG00000141510) in copy number view
  2. This gene is added as additional column in the new mutation view
  3. Select cell line A549 in mutation view
  4. Open Cosmic view

image

image

Expected
Also dynamically added columns from selections in the context view should be tracked in the VisState.

Allow to search for key words independetly of their category

Several key words used for the search can appear in multiple categories.
E.g., Relative Copy Number can belong to Selected Data Types, Selected Data Subtypes, Selected Copy Numbers, and maybe others.
It would be nice if one could decide whether the search term should be restricted to a specific category or not.

Go back to last state before searching

When searching and jumping to a search result, the user needs a back button to continue where she left. This button is especially important when provenance panel is closed.

Search only in active state

The query-by-example is not usable if the provenance panel is closed. Therefore we need a different solution to filter the select2 only be the current visible view.

Incorrect grouping of search results when the same parameter changes

Problem description

In this example the parameter data_subtype changed from TPM to Raw Counts:

image

As you can see all states are grouped into one sequence.

Expected

If a parameter changes the result should be two different sequences. In the image above one with 5 states for TPM and a second sequence with 2 states for Raw Counts.

Group SET properties and only compare these groups

At the moment all set properties are compared in one big set. However, this doesn't make sense, if you have parameter and selections of different idtypes, that should be compared.

Improvement
Group the SET properties and only compare these groups among each other.

UI improvements

  • Rename tooltip to “Active in current view” (not state)
  • Select2 usage bar: add baseline to the left border and don't round corners
  • Rename “Provenance” panel to “Current session history”
  • Rename Search panel header → “Search current session”
  • Add label to x from “Remove all search terms”

Improve interaction with search result (i.e., hover and clickable areas)

image

  • The search result as box should be clickable
  • Hover over box should highlight the sequence in prov view
  • Click on box should jump to first result
  • Top result must then look a bit different
  • Open sequence with click on glyph is unintuitive → adding a small arrow?
  • Current search result as top result doesn’t provide visual feedback on hover

Search for properties that occur in a specific view

Switch the flat property model to a tree and search for it using Sam's algorithm:

Datamodel (Tree)
root
tags = union of all children tags + selection tags
selection = tags of the selection
children
vis type for this child
tags = current set of tags for this child

Search
query … set of tags to search for
similarity(q, t) … similarity between query q and current tags t
union(a, b) … union of two tag sets
intersect(a, b) … intersection of two tag sets
possible(vistype) … returns the list of possible tags for an idtype

score(q, root) => {
  const max = root.children.map((c) => {
     //just the possible query tags
     const possible = intersect(q, possible(c.vistype));
     //the more possible the better
     const weight = possible.length / q.length;
     const similarity = similarity(possible, c.tags);
     const score = weight * similarity;
     return {score, c};
   }).reduce((max, current) => {
     //select the maximum considering the weighted similarity result
     if (max === null || (max.score < current.score) {
       return current;
     }
     return max;
   }, null);

  //just consider the tags of the winning child
  const actual = union(max.c.tags, root.selection);
  return similarity(q, actual);
}

Goal
What terms occurs together → meta-analysis (e.g., A was analyzed with B, and A with C → the system could recommend a new visualization with B and C)

Group property values in search result

Instead of mixing all kinds of property values it would be helpful to categorize them.

image

Expected

Views: Genes, UniProt
Genes: *ENSG00000256030*, ENSG00000269149, ENSG00000169347, ENSG00000146648, ENSG00000023839, ENSG00000213107, ENSG00000242529, ENSG00000186352

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.