Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Web based viz #1056

Closed
agramfort opened this issue Jan 11, 2014 · 16 comments
Closed

Web based viz #1056

agramfort opened this issue Jan 11, 2014 · 16 comments
Labels

Comments

@agramfort
Copy link
Member

a suggestion of feature towards a web based interface.

I propose a light python server that would allow you to explore
a database with fif files colored by types (raw.fif, ave.fif, cov.fif etc...)
and with nice tooltips when you move the mouse over the file.
By double click there would be a plot / summary of the content of the file.

any pros or cons? or simpler suggestion to start with?

any technology or existing code to start with?

@matt-erhart
Copy link

It would be great to have QC pages available for undergrad assistants to sign into and work on from home/lab/cafe/class/train.

@agramfort
Copy link
Member Author

I think I follow but can you elaborate?

@matt-erhart
Copy link

Perhaps they log into a page that lists all the subjects and their processing status, and they can view single trial time and timefreq data and select trials to be rejected or make notes about processing failures which will show up to for the project lead. I have no pressing need for this. I'm just brainstorming. I think I might just want github for meg processing ;).

@Autodidact24
Copy link

I think we should start with something simple as Alex suggested. Ipython notebook with interactive visualization libraries like Galry. We can modify the notebooks and use advanced tools like Pandas, D3.js, NVD3.js, and PhantomJS.

@Autodidact24
Copy link

@agramfort Isn't this something you've already been working on ?
https://github.com/mne-tools/mne-python-notebooks

@dengemann
Copy link
Member

@Autodidact24 Yes, indeed this is something we've been working on. The notebooks available are rather tailored for training purposes but we've been discussing already to which extent a well designed notebook would already satisfy the web-based viz / analysis idea.
I think in addition to a notebook, having a python server that can be extended step by step would be very useful. One thing I'd like to see / have / add sooner or later and which would build on top of such a server is an API for generating html reports. Imagine you could use decorators or context managers in your analysis scripts to -- given some existing config -- generate html webpages summarzing your analysis including figures, etc. But maybe even this is doable based on notebooks and the existing conversion utilities. Lots of things that can be discussed ;-)
But I agree that starting with something simple is the way to go.

@Autodidact24
Copy link

@dengemann @agramfort @mattjerhart Thanks for such a detailed response. Having an API for HTML report generation sounds like a great idea to scale the project. I'll have to study some good ways to do that as I haven't really used Python for web-development.
BTW How do you think I should start ? I think I can start with creating some notebooks for visualization of already available data. Any suggestions or tasks you want me to work on ?

Shubham

@Autodidact24
Copy link

@dengemann As far as I understood, we need a server software that exposes an API through which we can specify how the HTML webpage will be structured and then server generates and returns that webpage. Right? If it is so, I have a question :

Is this not something that can be achieved by building a REST API over a normal http server? An http server along with any server side language like python/php/ruby/etc. are good enough to generate web pages. You can always provide a REST API on top of it if needed. Then why a separate server instead of a REST API?

@dengemann
Copy link
Member

@Autodidact24 I think those are implementation details. What we plan to do is not that challenging in terms of the technical solution and implementation, in python you could do that with flask or django and related extensions of those packages. And we probably won't necessarily need a RESTful API for the actual report generation. Our real challenge is to get this right in terms of usability and consistent integration with mne-python. I think we should start discussing the initial proposal by Alex.

@dengemann
Copy link
Member

@agramfort maybe I overestimate the efforts, but my gut feeling is we should decompose your proposal and start with the web-based viz part which depending on the technology used will include some kind of server and a minimal database. Then once we're confident about visualizing materials from mne-python examples in a browser on demand, extend server and database functionality in the sense of your example propsed WDYT?

@dengemann
Copy link
Member

btw @agramfort @Autodidact24 for inspiration / discussion here's the doc pages for the sumatra web-interface:

http://pythonhosted.org/Sumatra/web_interface.html

wanted to share it earlier but their website was down

@mluessi
Copy link
Contributor

mluessi commented Jan 13, 2014

I think for most users, web based visualization would be most useful for visualizing e.g. source estimates in IPython notebook. The matplotlib based plots already work for this and they should become interactive at some point (the IPython folks are working on this). IMO the real problem is 3D visualization.

I don't really get the point of the web based "database explorer" that @agramfort suggested. It would also be hard to make it work for anything but very simple things (raw, evoked, etc.) as multiple files and additional information are needed to look at the data.

@mainakjas
Copy link
Contributor

just pitching into this discussion, I think the Gallant lab had interesting 3D visualizations and in my opinion having something of this sort would be great in MNE-Python: http://gallantlab.org/brainviewer/huthetal2012/.

@mluessi
Copy link
Contributor

mluessi commented Jan 21, 2014

@mainakjas I agree, web based 3D MEG visualization would be great. I'm not sure how feasible it is as a SOC project. We would need to find a student who knows java-script, WebGL, Python, and some M/EEG. Also, we would need to have a mentor or co-mentor who knows JS and WebGL.

@mainakjas
Copy link
Contributor

agreed :) This is more like a six month - one year project. Starting with something simpler would be better.

@Autodidact24 do not hesitate to start making pull requests if you're interested in GSoC! See the list of existing issues here: https://github.com/mne-tools/mne-python/issues?state=open. There are often many low-hanging fruits that you can attack.

@larsoner
Copy link
Member

Closing since @GuillaumeFavelier has made some progress with Jupyter integration

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants