Code Monkey home page Code Monkey logo

mothertable'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.

mothertable's People

Contributors

alexsb avatar bikramkawan avatar katush avatar mijar avatar mstreit avatar nmo13 avatar sgratzl avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mothertable's Issues

Row brushing for item level

Transition to item level: When the label column is added and the items on individual level fit the screen, the table will be expanded to item level. If it doesn’t fit the screen, the top ten items will be expanded and the rest of the table will stay aggregated. The number of expanded items can be adjusted by brushing on label column. To aid brushing we will support snapping to multiples of 5.

image

Intersection between different filter types

The filter should perform intersection when we select different types of filter.
For example: If we select the male from one categorical data and US from another categorical data. The result should only display excluding male and US.
[1,2,3,4]- Indices of Male
[3,4]- Indices of US
The result of intersection should be [3,4].

Filter when data is added

Assume there is already some kind of filters active. Now if the user adds the new attribute, the new attribute data will be filtered based on the current filtering criteria.

Create categorical filter

The categorical data will be represented by different color encoding. When we select the category the opacity will be reduced. The rest of the remaining category are selected for filtering the data.

jan-24-2017 5-37-44 pm

Filters after column deletion - keep them and if we add the column again, show correct block appearance in filter view

What should happen, if we delete a column where we have filtered something out in the corresponding block in filter view?
e.g. columns of gender, career status ...we filter out inactive artists, then delete the career status column.

  • A) the vis should come to the state before the career status filter was applied
  • B) keep the filter - but currently we lose track of it, because the column with the header is deleted and the corresponding block thus as well...(and currently - if we add the career status again, the filter view has both categories as selected, not inactive grayed out)

Values wrongly filtered

Even though after some playing around I have reset the numerical filters to cover the whole range, some values god missed out

image

Numerical filter bugs

  • it is currently hard (sometimes impossible) to include boundary values again after you previously filtered them out
  • it is impossible to select only small range in the middle of the range of values - the other handle of the slider starts moving because of the size of the handle
  • reimplement this with d3 brushing, it's nice and easy to interact with

create filter component

needs to be implement for each data type manually. Since avaialable visualizations aren't designed for user interface.

Create Filter Block

It consists block which will be useful for changing the main view on changing the selection.

image

Create initial version of column manager

The column manager should assign new columns for each dataset a user selects. The manager should also take care of assigning space to the columns. The columns itself (own class) should then decide on its own how to fill this space and how the data needs to be aggregated given the assigned space.

@sgratzl will create an initial version where @katush and @mijar can then continue with working on the different features.

create block component

will manage one dataset and is responsible for

  • toolbar actions: search, sort, delete
  • visualizing the component using MultiFormGrid
  • apply given sorting

Hierarchical sorting of columns

Columns should be sorted and stratified hierarchically. The sorting order is driven by the order in which the filter widgets appear on the right side (see #39).

Make FilterManager for different IDTypes

The first user will choose the different IDTypes (like Artist or Countries)
Then if there are two idtypes there will be two filter manager for each idtypes.
There will be dropdown selection for each idtypes which will contain all the data it holds
For example in Artist: the data could be artist name, gender, origin
In idtype of countries, the data could be continent, sold albums

img_0245

Handles in numerical filters

I would suggest the following behaviour:

  • the size of the handle does not limit the user in the selection of desired interval
  • once moved somewhere in the block, the handles do not change their position by themselves, only by interaction
  • moving some handle does not affect the position of the other
  • maybe use gray handles and change the color to black and status to draggable on hover to allow selection of even tiny intervals?

I guess we should also allow to create discontinuous intervals, something like this:
numerical filter-01

Load data for TCGA use case

Loading TCGA data for one of the tumor types is important because it gives a bigger dataset to play with during development. Furthermore, this will also be the dataset that our collaborators will use to provide feedback.

String column

  • Scale the column to keep row correspondence, not strings
  • Keep changes when vis updates

create missing visualizations

  • circle visualization similar to bar plot
  • circle visualization showing an aggregated version (e.g. mean)
  • single heatmap cell visualization (e.g. mean)

Remove the block from Main View

Empty selectiion

image
If we select as in filter dialog exclude female , inactive and artists starting with G then we have empty selection as below.
image
Remove all blocks from filter and main view. Or what should we do ?

Create String filter

If the attribute is String type. The user should be able to filter the data with string search pattern

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.