building tools for neuroimaging
TRANSCRIPT
Building Tools for Neuroimagingthe intersection of high performance computing, web
technology, and fun in graduate school
Vanessa SochatResearch Computing Talk
October 21, 2015
Outline
BackgroundWhy do researchers need tools?
Outline
BackgroundWhy do researchers need tools?
ProjectsSpanning HPC, web technology, and neuroscience
Outline
BackgroundWhy do researchers need tools?
ProjectsSpanning HPC, web technology, and neuroscience
VisionReproducibility, tools for researchers
Outline
BackgroundWhy do researchers need tools?
ProjectsSpanning HPC, web technology, and neuroscience
VisionReproducibility, tools for researchers
Discussion
Outline
BackgroundWhy do researchers need tools?
ProjectsSpanning HPC, web technology, and neuroscience
VisionReproducibility, tools for researchers
Discussion
Why do researchers need tools?
Computational Tools
Science has a reproducibility crisis
Science has a reproducibility crisis
This isn’t enough.
Reproducibility Means:
http://data-archive.ac.uk/create-manage/life-cycle
DO IT AGAIN
pipe dreamComputational
the reproducible researcher
web development
computer science skills
domain knowledge
HPC
data analysis skills
core ideal
organized
reproducibility ninja
Incentives
Infrastructure andvisualization,undervalued
Outline
BackgroundWhy do researchers need tools?
ProjectsSpanning HPC, web technology, and neuroscience
VisionReproducibility, tools for researchers
Discussion
Databases and Methods
NeuroVault
http://www.neurovault.org
NeuroVault
Django applicationhosted on RODEO (TACC)Github/OpbeatCelery to manage tasksDevelopment: Vagrant → DockerContinuous Integration: Travis → Circle
Where do we put this?Where / how should data be stored?More complex visualization and analysis?
Pybraincompare
Python moduleProduces web reports / visualizationsTemplate approachGithubD3, canvasContinuous Integration TravisDeployed in NeuroVault (NeuroSynth?)
https://github.com/vsoch/pybraincompare
150,000+ Values with Canvas
Getting data from the user?Hosted on a static site?A better way than a queue?
Static applicationuses data extracted to flat filesCanvas queue to render 1000 points/time
150K+ Spatial View
Reproducibility
MyConnectome
http://results.myconnectome..org
MyConnectome
http://results.myconnectome..org
MyConnectome
http://results.myconnectome..org
MyConnectome
Vagrant virtual machine (local or AWS)hosted on Amazon Web ServicesGithubPython, Bash, R, Vagrant
Data downloadingStandard format for “deployable” repo?Access to web interfaceElastic Load Balancing
Banner-Maker
vbmis.com/bmi/project/banner
D3 (JavaScript) / CSS / HTMLFlask Application
Where do we put this?
Experiments
Experiments
Research and Data Analysis
Noisecloud
http://www.vbmis.com/bmi/noisecloud
Noisecloud
http://www.vbmis.com/bmi/noisecloud
Noisecloud
Matlab codeGithubWordpresshosted on bluehost personal (vbmis)MySQL / phpAPILinked to manuscript
Where do we put this?
PythonHPC environment to do analysisHTML / CSS / JavaScript / json / phphosted on personal bluehost (vbmis)Github
Challenge: integration of computationServing a static resource from thatHow to make this real time?
Cognitive Phenotypes
Django application (MySQL)(was) hosted on AWSGithub
Where do we put this?Users and permissionsIntegration with Mechanical Turk
Web Resources
Font-Brain
https://github.com/vsoch/font-brain
Real web font (“font-awesome”)Integration into web, documentvision: modern tools for neuroscientists
researcher web design toolsstandard visualizations for reproducibility
Clinical Tools
Shiny application in web interfaceJavaScript / HTML / CSSMySQL Database (Stanford)hosted by research computingShiny Server
Where do I put this?Can deployment be easy?
Recovery Log
https://github.com/vsoch/drain-log
Recovery Log
https://github.com/vsoch/drain-log
Clinical toolhosted on github pagesRenders a static data file (visualization/table)
This impacted my standard of careWhy doesn’t Stanford have tools like this?
Prostate
Shiny ( R ) applicationhosted on shinyapps.io
Where do we put this?Free hosting not reasonable
NeuroImaging Tools
Brain-Browser
https://youtu.be/KsJ5LOfZHNg
NodeJS applicationruns from command line with “bb”
Niftindex
https://github.com/vsoch/niindex
php / .htaccessHTML/JavaScriptdeployed on personal (bluehost)
Can servers be customized for their data?
Nifti-Drop
http://vsoch.github.io/nifti-drop/
Static brain image and NIDM results viewerhosted on github pagesUses FileReader (Chrome)
Interactive web tools for neuroscientistsHandling large data in browserReading, exporting standards
Outline
BackgroundWhy do researchers need tools?
ProjectsSpanning HPC, web technology, and neuroscience
VisionReproducibility, tools for researchers
Discussion
Reproducibility as a Service
Graduate Training:- building tools more highly valued- an emphasis is made on reproducible research
Reproducibility Center- may be domain specific- provide infrastructure for researchers to deploy tools- could provide “toolization” as a service
Methods Results
Conclusions
1. Researchers need help visualizing, sharing
2. Places to deploy things, easily
3. Deploy an entire analysis instantly
4. Blur the line between desktop & browser
5. Have fun while doing it :) ***
Outline
BackgroundWhy do researchers need tools?
ProjectsSpanning HPC, web technology, and neuroscience
VisionReproducibility, tools for researchers
Discussion
Thank [email protected]
Acknowledgements
INCF/ NidashSatra GhoshNolan NicholsJessica TurnerTom NicholsJB PolineDavid Keator
CollaboratorsTal Yarkoni
Nipy
FundingMicrosoft ResearchSGF and NSF
PoldracklabRuss PoldrackChris GorgolewskiCraig MoodieSanmi KoyejoPatrick BissettJoke DurnezIan EisenbergMac ShineJoe Wexler
BMIDaniel RubinRuss AltmanMark MusenRebecca SawyerMary JeanneNancySteven BagleyJohn DiMario