Closed agramfort closed 5 years ago
It would be great to have QC pages available for undergrad assistants to sign into and work on from home/lab/cafe/class/train.
I think I follow but can you elaborate?
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 ;).
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.
@agramfort Isn't this something you've already been working on ? https://github.com/mne-tools/mne-python-notebooks
@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.
@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
@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?
@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.
@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?
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
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.
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/.
@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.
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.
Closing since @GuillaumeFavelier has made some progress with Jupyter integration
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?