GSoC 2020 project idea 4: TVB: Web GUI for reconstruction pipeline

A real brain can turn to a virtual brain in 3 steps. First, the patient goes to a RMN scanner, then, the measured images go through a reconstruction pipeline, and finally, the results are uploaded in TVB. This reconstruction pipeline is a mandatory tool, it takes RMN images, processes them and extracts the brain’s connectivity, geometry, parcellations and other data necessary for virtualization. It produces files that are compatible with TVB. Links together tools like Freesurfer, MRtrix, FSL, Pegasus WMS.

We host a lightweight version of such a reconstruction pipeline here: https://github.com/the-virtual-brain/tvb-recon

Providing a GUI for such a pipeline would greatly improve our user experience. This interface should allow users to provide input data, choose configurations, define the output structure, launch the workflow and monitor progress. Additionally it would be nice to integrate with our workflow engine (Pegasus) in order to provide job status and job execution statistics.

The GUI design is open to suggestions. Share your creativity with us!

Expected results: Web based GUI for tvb-recon

Skills: Python, HTML5, CSS, JS, experience in web development

Mentors: Paula Popa, Lia Domide

4 Likes

Hi I am Anupam. A sophomore based in India. I want to participate in GSoc’20. I am proficient in HTML5, CSS3, VanillaJS, ReactJS ,NodeJS. I read the ideas list for GSoc’20 and would like to work in this project.
Please guide me on where to start and what kind of issues to focus on.
Would really appreciate some guidance.

Thank you and have a nice day.

Hi Anupam,

Thanks for your interest. Please leverage the link shared in the project idea to get better understanding of the reconstruction pipeline. As mentioned in the project idea, the “GUI design is open to suggestions. Share your creativity with us!”… Do you have any suggestions or ideas about how you would like to implement the project? If so, please do not hesitate and go ahead and contact @Popa_Paula and @liadomide. They are mentoring this project.

Also, if you have any specific queries/questions that you would like to ask, also feel free to ask.

Thanks

In addition to what was already written above, I suggest few concrete possible steps:

  • fork and look into tvb-recon code
  • read a bit into the Pegasus documentation, and try to understand what are its advantages and disadvantages (especially in terms of existing web GUI).
  • once the analysis part is done, but before coding or writing a gsoc proposal, I recommend we have a video call, to align directions and expectations

These steps are not really necessary to be followed by a student, but I would do it like that, if I were a student :wink:

1 Like

Hi Arnab,
Thanks for your guidance. Will surely look into the tvb-recon code as you and Lia suggested and will get back as soon as the analysis part is done.

Thank you.

Hi Lia,
Thanks for the prompt reply. I will go through the tvb-recon code and also the Pegasus documentation for better understanding of the project. Once the analysis part is done a video call would be really helpful.
In the mean time if there are some issues to work on do let me know.

Thank you for your help.

Hello everyone!! I am Tanmay Agrawal from India and I wish to work with INCF for GSOC’20. I know Node.js, Javascript and have worked in some web development projects.
I have read the above conversations and have looked into the link shared in the project idea. I am also reading the Pegasus WMS documentation.
While setting up the project on my machine(Ubuntu 18.04-LTS) using the ‘How To Launch’ instructions given, I got the following error while pulling the docker image

dial tcp: lookup production.cloudflare.docker.com: no such host

I tried repeated times but got the same error…
I searched the internet for a solution, but couldn’t find anything concrete.
Please help me out so that I can proceed further. I’m also attaching the screenshot.
Thanks

Hello again…After some analysis I found that the docker image is blocked on my college’s net, don’t know why. However, with some effort, I found a way to download it using sshuttle. I’ve downloaded it and will run the project on my machine soon. Please suggest if anything more has to be done.
Thanks.

1 Like

As in the readme it is mentioned that the input data folder must be made of:-

    • mri
      • t1_input.nii.gz
      • dwi_raw.nii
      • dwi.bvec
      • dwi.bval
        However the sample mri files given in the repository are different.
        They are- aparc+aseg.nii , brain.nii and T1.nii.
        So please tell me how I have to specify them in the folder.
        Thanks.

Hi. I replied to the same question when you reported it on our repo, as issue, but I also copy the response here:
The current pipeline repo does not provide a complete dataset for running the pipeline, as I assume you are referring to this folder: https://github.com/the-virtual-brain/tvb-recon/tree/master/data/fsaverage_modified/mri
This is only meant for uni-tests (see tests folder https://github.com/the-virtual-brain/tvb-recon/tree/master/tvb/recon/tests).
The documentation is correct, that is the expected input data, but we can not share a complete patient dataset, due to GDPR.
We recommend you to alter the Pegasus flow in a way that it only executes 2-3 steps (for example the part processing the T1, which we is shared in the demo data), and thus see that a flow is running. The GUI could be also developed on a small graph, and scaled later.
Does this address your concern?
Best, Lia

1 Like

Hi.
Yeah I saw it ma’am. I will surely do that and try to modify pegasus workflow.
Please let me know if anything more has to be done.
Thanks.

Hi Mentors!
Hope you’ll are having a great day :100:

First of all congratulations and thank you for working on such a great initiative. The virtual brain has endless possibilities like understanding and predicting brain disorders like Epilepsy, Dementia, Sclerosis, Stroke, Coma, etc. I hope it’ll soon be possible to test different interventions like surgeries and medication on TVB and predict the best way to help people heal faster.

I’m a Computer science undergrad student from India, currently in 2nd year. I’m passionate about web development and web design but more importantly, I carry a goal to make this world a better and more sustainable place.

This project seems very exciting to me. It is great to know that you people are focusing on user experience because I believe that “to the users, the interface is the product”. I would love to contribute to this project.

Also, I have many great ideas for the GUI that I would like to discuss with you, for that, It will be great if you could provide your email ID.

Thank you

Best regards,
Saksham Raghuvanshi

So as expected INCF has officially been accepted as GSoC 2020 organization!! Congratulations to everyone! :partying_face:

Hello, I am Punit, a Third-year undergraduate from India. I am working in the field of web development for the last one year. I have done some of my projects on Python, JavaScript, and ReactJS. I am interested to work in this project.Currently, I am building the tvb-recon repo and understanding the docs.

In the meantime, if there are some beginner issues to work on do let me know. Looking forward to work with the community.

We do not have beginner issues for this project.
Considering the timing, you can directly start working on your gsoc proposals, for which we can advice if wanted.
Just share with us any draft you have. My email is ldomide@gmail.com

2 Likes

Hi, my name is Adit Kotwal and I’m a final year engineering student from Mumbai. I found this project idea quite appealing as I have previous experience with Web development and Python. I have some ideas for developing the GUI of the reconstruction pipeline. How should I proceed from here ?

I was able to run the project locally and ran the tvb-recon docker image. I observed a similar flow of messages and got the configs folder in the TVB1 file. However I did not get the outputs folder. Will that be created after running the following commands:
docker exec -i -t container_id /bin/bash (which gave me an error ‘No such container: container_id’ when I ran it in the terminal)
pegasus-status -l /home/submitter/pegasus/submit/submitter/pegasus/TVB-PIPELINE/run0001

If so, where do I run these commands ?

This is the error i got for the pegasus-status command:

Extra Info: You probably saw this error because the condor_schedd is not
running on the machine you are trying to query. If the condor_schedd is not
running, the Condor system will not be able to find an address and port to
connect to and satisfy this request. Please make sure the Condor daemons are
running and try again.

Extra Info: If the condor_schedd is running on the machine you are trying to
query and you still see the error, the most likely cause is that you have
setup a personal Condor, you have not defined SCHEDD_NAME in your
condor_config file, and something is wrong with your SCHEDD_ADDRESS_FILE
setting. You must define either or both of those settings in your config
file, or you must use the -name option to condor_q. Please see the Condor
manual for details on SCHEDD_NAME and SCHEDD_ADDRESS_FILE.
(no matching jobs found in Condor Q)

Hello, I am Akshit Bhatia and I’m a 3rd year Btech CSE Student. My skills are Web Development(Front-end, Backend), Data Analysis and Visualization, Machine Learning, C++, Python. I want to be a part of INCF for Gsoc. I am interested in Web GUI project, So where to get started?

Hi.
These commands are for checking the status of the workflow.
And the container_id is the id of your container that you’ve to enter. (You can get it from the command line- The string between ’ ’ in "submitter@’ ': " is your container_id)

MANAGED BY INCF