Collaborative AFNI projects at DC code convergence

Last updated: Mon, 17 Sep 2018 08:06:05 GMT 0 comments

Last week (Sept 10-14), I attended Code convergence in Washington DC, a 5-day hackathon organized by the NIH in collaboration with the AFNI team. Twenty brain imaging researchers and members of the NIH worked collaboratively on improving AFNI and building bridges with other tools.

Tweet: Excited to get started at #nihdccc with @AFNIman

— Elizabeth DuPre (@emdupre_) 10 septembre 2018

We had a very productive week! The projects included: an automated testing framework for AFNI | creating machine-readable documentation and interfaces for AFNI through Boutiques | improving support for multi-echo EPI denoising with tedana | NIDM in JSON-LD | and three BIDS projects: understanding modelling of affine matrices in AFNI | refining BIDS model specification in anticipation of AFNI integration | drafting BIDS common transform file format.

I led the NIDM export in AFNI project, to convert AFNI fMRI results into NIDM-compliant archives (or "NIDM packs"). NIDM-Results standardises how fMRI results are represented across neuroimaging software packages. With the NIDASH team, we have developed NIDM exporters for SPM and FSL. As one of the most popular software for fMRI analysis, AFNI was a natural next target.

During this code convergence, I had the chance to work with Rick Reynolds and Justin Rajendra and to get feedback from Gang Chen, three AFNI experts. By the end of the week, we had a first prototype to export an example analysis and upload the resulting NIDM archive to NeuroVault. Future work, will include better integration with AFNI tool, such as leveraging the metadata extracted by the ClustExp_StatParse.py routine that is developed by Justin.

This week was also the opportunity to hear about other standardisation efforts such as HAWG, a standardised format for human brain atlases.

Tweet: A JSON-based format for neuroimaging atlases 👉 HAWG. @jbpoline kicks off day 2 at #nihdccc !

— Camille Maumet (@cmaumet) 11 septembre 2018

I would like to thank Dylan Nielson, Adam Thomas, John Lee and Bob Cox for organising this code reunion as well as all the AFNI team!

The event was covered with #nihdccc on twitter.

Meeting Montreal neuroinformatics community at the INCF congress and hackathon

0 comments

August 7-10, I was in Montreal to attend the INCF Neuroinformatics congress and its 2-day Brainhack hackathon. The program of this conference is usually a mix of neuroscience and neuroinformatics with an emphasis on standards and data sharing.

image

The congress has been particularly rich this year and meeting Montreal neuroinformatics community was a real pleasure! Here are a few highlights of the congress:

  • Russ Poldrack presented BIDS and its impressive adoption in the neuroimaging community (slides). 20 000 subjects worth of data are now available online as BIDS-compliant datasets. The standard is expanding: the MEG extension has just been published and more are under development (e.g. intracranial EEG, ).

Tweet: .@russpoldrack illustrates why data/metadata standards are needed with a great video #NI2018

— Camille Maumet (@cmaumet) 9 août 2018
  • In the "Can we harmonize metadata?" session, Michel Dumontier discussed FAIRness (Findable Accessible Interoperable Reusable) in biomedical computational research and Nolan Nichols showcased applications of those principles in the pharmaceutical industry (slides).
  • In the poster session, Andrew Doyle presented his work on automatic quality control of infant brain images using convolution neural networks. The goal of this supervised algorithm is to make a pass/fail decision on the quality of the MRI image based on a 2D slice at the center of the brain volume.
  • Alejandro de la Vega gave a demo of neuroscout, an online platform to fit arbitrary GLMs to naturalistic fMRI experiment (e.g. watching a movie). Neuroscout uses the pliers library for automatic feature extractions on existing open datasets then, through the online interface it is possible to specify a GLM (w/ BIDS-models) that can finally be run locally via a docker container (based on FitLins).
  • In the machine learning session, Pamela Douglas discussed the interpretability of decoding models in fMRI and why it is not as simple as we could think...
  • Gael Varoquaux outlined multiple machine learning applications in brain imaging with the goal to infer cognitive states beyond the unwanted specific details of the paradigm, a discipline that he referred to as "psychoinformatics" (slides). On the question of favoring sample size versus homogeneity of a dataset: "more data is better!".

Tweet: Super cool work by Arturo Mensch: linear 3-layer model, first-layer NNMF pretrained on resting-state fMRI, Bayesian network learned for other 2; better decoding results for most previous studies data was assembled from. Gains increase w/ data size #NI2018 #neuroinformagical

— Andrew Doyle (@crocodoyle) 10 août 2018
  • Pierre Bellec presented work from his lab in machine learning and statistics to predict patient evolution in the context of early detection of Alzheimer's disease.
  • Andrew Davison gave a very nice and practical overview of recommendations to improve reproducibility and reuse (slides) (in system neuroscience) along with the tools available.

Tweet: Reproducibility and reuse: recommandations. @apdavison concluding remarks at #NI2018

— Camille Maumet (@cmaumet) 10 août 2018

Tweet: A badge for INCF-endorsed standards! @memartone @INCForg #NI2018

— Camille Maumet (@cmaumet) 10 août 2018
  • Wojtek Goscinski talked about the infrastructure sustainability effort that aims at finding synergies between international efforts involved in the development of neuroscience research infrastructure (e.g. NITRC, OpenNeuro, etc.). Next steps include technical aspects (e.g. using DataLad) as well as definition of best practices for sustainability.

Tweet: Next steps for @INCForg infrastructure working group #NI2018

— Camille Maumet (@cmaumet) 10 août 2018
  • Finally INCF special interest groups (SIG) were introduced along with progress made during the SIG meetings (that were held in conjunction with the hackathon): François Mohameth Sy for Neuroshapes (definition of SHACL schemas for neuroscience), David Keator for NIDM (slides) and Elizabeth Dupre for BIDS.

At the hackathon:

  • I had the chance to learn more about Datalad, a tool that extends traditional git to allow for data versioning. In particular, datalad run seems to be a great way to track provenance. On the second day, we focused on how to integrate NIDM-Results with Datalad. A brief overview of what we achieved is in these slides.

Thank you INCF!

Mentoring for Mozilla Open Leaders

Last updated: Mon, 27 Aug 2018 13:13:27 GMT 0 comments

From February to May, I had the pleasure to join again Mozilla Open Leaders, this time acting myself as a mentor! Mozilla open leaders is a 14-week online training on working open best practices with 1-1 mentorship for project leaders.

Applications for round 6 are now open: https://foundation.mozilla.org/opportunity/mozilla-open-leaders/apply/! There is still time to submit your project before August 6th.

I think I've learnt even more as a mentor that I did when I initially participated in the program as a trainee. I had the chance to work closely with two project leads: Manasvi Lalwani and Rick Lupton. Manasvi was building an online curriculum for makers while Rick's project was to open a library he had written to expose flow data as sankey diagrams. Mozilla also provided training for the mentors that I found especially useful!

I'm copying below, an interview with Rick that we made just before the Global Sprint. This article was initially posted on Read. Write. Participate. You will also find over there an interview with Manasvi presenting her project.


Looking at data flows to reduce resource consumption

by Camille Maumet | A spotlight on floWeaver, a 2018 Global Sprint project

image

Rick Lupton (@ricklupton) is a research associate with the Use Less group at the University of Cambridge where he looks at how resources and materials are used throughout society. By understanding how resources are consumed, he wants to help us use less and reduce our impact on the environment. Rick was selected to join the current round of Mozilla Open Leaders with his project floWeaver, which creates visualizations for flow data.

I interviewed Rick Lupton to learn more about floWeaver and how you can help at the Mozilla’s Global Sprint 2018.

image

What are “flow data”?

Many kinds of data can be thought of as “flows”: energy and materials moving through industry, money flowing through the economy, telephone lines moving between providers, voters moving between parties, even the target of tweets. Most of my research is concerned with actual physical flows of energy and carbon-intensive materials such as steel and cement, but floWeaver can be used to visualise anything that can be thought of as flowing from one place to another.

What is floWeaver?

floWeaver’s aim is to provide open tools for working with and visualising flow data. It consists of a Python library for data processing, a d3 JavaScript library for creating Sankey diagram visualisations, and Jupyter widgets that let you use it all together for interactive data analysis in Jupyter notebooks. We’re working on defining an open data format for flow data to make it easy to exchange data between different software and grow the ecosystem of open tools.

Why is it useful to visualize flow data? What is a Sankey diagram?

A Sankey diagram is a kind of flow diagram with thick arrows, where the width of the arrow represents the magnitude of the flow. They have been used for over 100 years to identify inefficiencies and find opportunities to use resources more efficiently. I find them useful because they give a great overview of a system to show which potential changes are big enough to matter in the big picture. For example, this diagram shows global greenhouse gas emissions broken down to show which sectors they are associated with, the technical device that was involved, and so on.

Why did you start floWeaver?

In my research group we draw a lot of Sankey diagrams to visualise our work, so it made sense to build some tools to make this easier. It started with a research project working with a steelmaking company to understand how scrap could be avoided during manufacturing steel parts, such as car doors. When you cut out a steel part from a roll, you get offcuts round the edges, just like when you cut shapes out of cookie dough or pastry, and we wanted to find out how much of the offcuts could be reused to make smaller parts. To do this, the steel type, thickness, coating, and so on, have to be compatible, but we didn’t have any way of visualising these attributes within the context of the steel production chain. To solve this I developed what I called a “hybrid” Sankey diagram to show these details, and floWeaver grew out of that.

What challenges have you faced working on this project?

There are technical challenges, such as doing automatic graph layout of the diagrams, and calculation speed for large datasets. We’re defining a data format for exporting the initial automatic-layout Sankey diagrams into other tools for tweaking the layout, but keeping them all working together as the format has evolved is a nightmare. I’m looking forwards to when we’ve got a draft we’re happy with and everything will just work!

As the leader of the project, there have been challenges in supporting more users as the project grows, and making sure to communicate effectively with and involve the wider range of people who could benefit from it, beyond my research group. The Mozilla Open Leaders programme has been very helpful in this process.

What kind of skills do I need to help you?

There are lots of ways to contribute to floWeaver, needing a range of skills:

  • We are curating a gallery of examples of how people are using the project to all kinds of data — bring your own data and give it a go!
  • Gathering feedback on what’s easy to use and what needs improving & documenting.
  • Specifying a JSON-based open data format for interoperability between Sankey diagram tools, writing converter scripts and prototyping a web-based Sankey editor.
  • Improving the graph layout algorithms and visualisation.
  • Profiling and optimising the Python code to work faster on larger datasets.

I did have “creating a logo for the project” on the list, but someone has kindly already volunteered to do that!

How can others join your project at #mozsprint 2018?

Have a look at the ”what shall I do?!” board for ideas, and see CONTRIBUTING.md on GitHub for more details. If you have any questions about how to join in please open a GitHub issue or ask on Gitter chat.

Is there anything else you’d like to add?

I’m looking forward to taking part in my first Mozilla Global Sprint and seeing what comes out of it!

OHBM 2018: first remotely-attended conference

Last updated: Sat, 11 Aug 2018 11:18:48 GMT 0 comments

June 14-21 were the OHBM hackathon and annual meeting in Singapore. I did not get the chance to attend in person and instead I've been following the conference on Twitter! Here are a few interesting things I spotted.

Open science at OHBM is booming! 🎉 Last year, I was happy to see a better integration of open science activities in the main program. This year, it went one step up! The 3-day hackathon was very well attended with over 100 participants and an amazing organization. Throughout the meeting, and in multiple occasions, talks in the open science room attracted a packed audience. And the new "ice cream for open science" looked like a real success.

OHBM 2018 young investigator award went to Daniel Margulies, who was one of the first to introduce the neuroimaging community to hackathons through Brainhacks with Cameron Craddock.

At the PhD/Postdoc SIG mentoring symposium, Lucina Uddin discussed how to fail better and how failures are inevitably part of all successful academic careers. This is so important!

A topic of personal interest for me, as a mother, it looks like more attendees were bringing their children to the congress. I know some conferences provide free childcare (e.g. RailsConf) and this must make the whole conference experience so much different! I am wondering if there anything we could do to make this happen at OHBM?

Of course I've missed up on many things but following the event on Twitter has been much better than I anticipated! Thanks for everyone who tweeted using #OHBM2018. And I hope to see you all next year in Roma!

Sprinting with bio-imagers and how I learnt about NEUBIAS, EuBI, Elixir and tried out myBinder!

0 comments

May 14-15, I was in Cambridge for a coding sprint jointly organized by bio- and medical- imaging infrastructures. The goal of the sprint was to capitalize on the infrastructure training experiences in order to provide online registries of training materials and create reproducible training environments.

cambridge

We were a group of about 20 software engineers and research scientists from bio-imaging (microscopy), medical imaging (MRI) and bioinformatics.

The first morning, we introduced ourselves:

For the rest of the sprint we had two working groups:

  • WG1: Curation and vocabulary alignments
  • WG2: Reproducible training sessions using containers

In WG1, we started by representing various examples of training materials using the NEUBIAS model (as used in BISE). The following day, there was further effort to align this with Tess and bioschemas and to incorporate more examples directly in BISE.

On the second day, I joined WG2. I was very happy to find out about myBinder! Give it a GitHub repository with a Jupyter notebook and it will turn it into an interactive notebook hosted online!. We used mybinder at: https://github.com/dwaithe/model-training and further focused on providing a Docker file that could be run locally to launch the course (https://github.com/ac744/model-training). I've also tested it on one of my own repository: Software_Comparison#3!

I very much enjoyed meeting and working with members of the bioimage and bioinformatics communities!


I'd like to thank the organizers Perrine Paul-Gilloteaux from University of Nantes and Gabriella Rustici from the University of Cambridge as well as FLI for support to attend the event.

This event was covered using #trainhackcam on twitter.

OHBM 2017

Last updated: Thu, 21 Jun 2018 12:42:30 GMT 0 comments

image

June 25th-30th, I attended OHBM 2017 in Vancouver. It has been a very rich and energizing meeting with open science activities being better and better integrated with the main meeting! The 5th OHBM hackathon has been a success and, this year, the program of the open science room was included in the official program booklet. "Neurohackers" were even featured in the closing highlights!

#OHBM2017 Highlights from Pedro Valdez-Sosa: Neurohackers are a great benefit to our organization

screen shot 2017-07-14 at 11 28 31

— OHBM (@OHBM) 29 juin 2017

Here is my (very) short summary of the congress:

  • Cluster Failure: Why fMRI Inferences for Spatial Extent Have Inflated False-Positive Rates: a follow up by Anders Eklund after his highly discussed paper investigating validity of clusterwise inference. Anders discussed follow up simulations he did in reply to some of the criticism to his paper. In particular, randomisation of events at the subject level. Overall the results hold.

  • Keynote: Threat to valid fMRI inference (Tal Yarkoni): A great keynote packed with panda pictures to illustrate over-generalisation of the results. In particular, Tal presented joint work with Westfall and Nichols on treating stimuli as a random effects.

  • Informatics session: Open Neuroimaging Lab presented by Katja Heuer for collaborative annotations and curation of anatomical neuroimaging data. Comparison of automated meta-analysis in Neurosynth with manually curated from BrainMap presented by Taylor Salo, OpenNeuro presented by Chris Gorgolewski: a new online plateform for data analysis (and data sharing), Mapping of cognitive function in the human cerebellum presented by Jorn Diedrichsen, Performance of Various Brain Atlases for Individual Identification using resting fMRI presented by Andrew Michael and the Brainnetome Atlas presented by Lingzhong Fan.

  • Keynote: Revisiting Wernicke’s Area (Marsel Mesulam): A great keynote, discussing the role of Wenicke's region and how Wernicke's location has evolved through time.

  • Mentorship: The brand new mentorship program organised by OHBM Student & Postdoc SIG also ran a session with career advice, including Mathew Abrams from INCF and Cameron Craddock on first grants.

  • Demos (open science room): Many demos happened in the open science room throughout the congress, including: power tools for fMRI: neuropower by Joke Durnez and fmripower by Jeannette Mumford, BIDS presented by Cyril Pernet, NeuroVault by Chris Gorgolewski, Preprocessed Connectomes Project by Cameron Craddock and FMRIPREP by Oscar Esteban.

  • and much more!

See the #OHBM2017 on twitter and the OHBM blog for more discussions.

Mozilla Open Leadership Training

Last updated: Sun, 03 Sep 2017 12:48:41 GMT 0 comments

From March to June, I participated in the 3rd round of the Open Leadership Training organised by Mozilla. This 12-week online training provides working open best practices as well as mentorship form the Mozilla community. I applied to join the 3rd cohort of open project leads in response to this call. This was a great experience and I would encourage everyone to apply for the next round!

Applications for Open Leadership Training round 4 are now open!

At the end of the program I was interviews by Abby Cabunoc Mayes, who is lead developer at Mozilla and runs the open leadership training. The interview is available on Medium and copied below.

image

Practical Approaches for Reproducing Studies

#mozsprint 2017 Interview Series

Camille (@cmaumet) is a Research Fellow at the Oxford Big Data Institute, focusing on open research and best statistical practices for meta-analyses. Camille was selected to join our current cohort of Mozilla Open Leaders for her work furthering open research practices and passion for open science. Earlier this month, Camille brought her project ‘Easy fMRI Reporting’, which she started when she was at the University of Warwick, to Mozilla’s Global Sprint (#mozsprint). I interviewed Camille to learn more about her experience at #mozsprint, her project ‘Easy fMRI Reporting’ and how you can help.

What is Easy fMRI Reporting?

‘Easy fMRI reporting’ is an online curriculum that describes practical approaches to perform reproducible studies in the context of functional Magnetic Resonance Imaging (fMRI) research. Our motto is:

“Practical solutions to follow open science best practices in fMRI research. Learn how to comply with transparency best practices with little overhead!”

What is functional Magnetic Resonance Imaging (fMRI)?

fMRI is an imaging method that provides information on how the brain works. One application is to try and understand which parts of the brain are active for a given task. For instance, I might ask you to move your right hand while you are lying in the MRI scanner in order to found out which part of your brain is responding while you are doing this simple task.

Why did you start ‘Easy fMRI Reporting’?

Scientific communities, and in particular the brain imaging community, are increasingly calling for more transparent research practices. But in practice complying with accepted best practices can prove difficult and time consuming. Fortunately a number of tools and standards are now available in the fMRI community to make our research more transparent! ‘Easy fMRI reporting’ describes current practical solutions to share data and code in support of the publication of an fMRI study and provides step-by-step recipes for different levels of data and code sharing.

Why is data and code sharing important for fMRI studies?

An fMRI acquisition generates a series of brain images and researcher have to apply a set of mathematical methods (or “pipeline”) in order to outline active brain regions. For example, an fMRI pipeline typically includes an alignment step to correct for the effect of motion. Even if we are not aware of it, everyone tends to slightly move their head while in the scanner. For a group analysis (when we try to study brain activations across a group of participants), the pipeline also includes a transformation that puts all the individual brains in a common space (as our brains are all different!). There are many choices that are made along the analysis of fMRI data and two researchers might not necessarily agree on what is the best pipeline for a given dataset. “Reporting” is the action by which researchers share all the details about the pipeline (usually as code) and the data they used. I think that sharing all those details is essential in order to fully understand the generalisability of the findings. But it is also an excellent opportunity to work more collaboratively and to build stronger results as data and code can be reused by new studies.

What are you most proud of accomplishing at #mozsprint?

At #mozsprint, I got very nice feedback on how to improve the “vision statement” of the project. Being able to communicate the overall idea of a project in 1 or 2 simple sentences is particularly important but I find writing up those 2 sentences quite challenging! By getting feedback from contributors that were not involved in creation of the project, I had the chance to improve the vision statement much more efficiently.

This #mozsprint, I also got the chance to reuse an existing lesson template that was created and shared by Neurohackweek and that derived from a template by the Software Carpentry. After benefiting from those resources to build the first version of the ‘easy fMRI reporting’ website, I was, in turn, able to suggest a couple of edits back to the main project, which is great!

Looking back at where you were when you joined the Mozilla Open Leaders cohort, are you where you expected to be? What have you learned in this process?

By joining the Mozilla Open Leaders Cohort, I learned that building a community is a lot about make it easy to enter and participate. From creating easy tasks to conveying the goal of the project in a couple of short sentences all those simple steps make a difference!

How can others help you continue the work on Easy fMRI Reporting?

‘Easy fMRI reporting’ is looking for all sort of contributions! Please check out the open issues in our GitHub repository. For example, we are currently looking for designers to improve the website and create a logo, for data scientists to provide feedback on their experience sharing code and/or data and for tool developers interested in creating a lesson to showcase their tool. Other ideas? Please get in touch!

Is there anything else you’d like to add?

Yes, I want to thank Demitri Muna for his support and advice throughout this project. I very much enjoyed discussing with him how data sharing is done in the astronomy community! And finally, I would also like to include a link to the Mozilla GitHub repository template that are very useful to start up a new project: https://github.com/acabunoc/mozsprint-repo-template!

EPSRC ICT Early Career Researchers Workshop

Last updated: Fri, 14 Jul 2017 11:15:59 GMT 0 comments

On February 16th-17th, I went to Sheffield to attend an early career workshop organised by the Information and communication technologies (ICT) theme of the Engineering and Physical Sciences Research Council (EPSRC). The aim of the workshop was to present the research council strategy and provide guidance for grant applications.

During this 1.5 day meeting, time was divided between presentations, discussions and plenty of breaks. This was was a very positive experience, I did appreciate the opportunity to meet with other young researchers and discuss their experience. Some useful links are included below.

EPSRC Introduction & Strategy by Liam Blackwell, EPSRC ICT Theme lead

  • Balancing capabilities: overview of the research areas covered by EPSRC and how these are planned to evolve in the future. Researchers are encouraged to read the research area rationales.
  • Cross-ICT priorities: A number of theme that are prioritised over all applications.

The Peer review process by Zoe Brown, Portfolio Manager EPSRC ICT Theme

EPSRC ICT Fellowships by Netta Cohen, University of Leeds, Pietro Olivieto, University of Sheffield & Adan Luqmani, Portfolio Manager EPSRC ICT Theme

Impact and public engagement by Alan Winfield, University of West of England/Bristol Robotics & Sarah Newman, ICT Theme EPSRC

  • 10 tips for academic blogging.
  • Public engagement can take various forms: participation in “Science café”, blogging (e.g. about a paper), website describing the research project,...

I would like to thank my department (WMG) and the Wellcome Trust for their support.

1f1886b6-f11e-4cca-b3b3d99387a1db63

More informations: EPSRC Blog post on the event, Slides, ICT theme website, EPSRC website, EPSRC ICT workshop call, #icterc.

Switch between two versions of FSL

Last updated: Mon, 20 Feb 2017 14:06:26 GMT 0 comments

Most of the times we can rely on a single version of FSL. But recently I have been developing an update for FEAT (more info here), and needed to temporary switch between:

  1. FSL 5.0.9 (installed on my system);
  2. the patched FSL I was working on.

This short snippet allows to switch between the main FSL installation (available by default) and the development FSL version (available at /Users/cmaumet/Softs/external/fsl_patched):

export FSLDIR=/Users/cmaumet/Softs/external/fsl_patched
PATH=${FSLDIR}/bin:${PATH}
export FSLDIR PATH
. ${FSLDIR}/etc/fslconf/fsl.sh

How to create a pip package?

Last updated: Fri, 06 Jul 2018 15:01:09 GMT 0 comments

In this first post you will find quick references to the commands needed to share your package through Pypi.

Pypi, available at https://pypi.python.org, is the official repository for Python packages. Packages available on Pypi can be installed very easily using pip install <package_name>.

Registering your package and first upload

To make your Python package available on Pypi, you will need to:

  1. Create configuration files (including setup.py, setup.cfg) for your project, cf. https://packaging.python.org/distributing/#configuring-your-project for a full list.
  2. Build your package
cd <PATH_TO_PACKAGE>
python setup.py sdist
python setup.py bdist_wheel
  1. Register your project and upload to Pypi test server
python setup.py register -r https://testpypi.python.org/pypi
twine upload -r pypitest dist/*
  1. Check that the install works fine from Pypi test server
pip install -i https://testpypi.python.org/pypi <PACKAGE_NAME>
  1. Upload your package to Pypi!
twine upload -r pypi dist/*

Releasing a new version

To make a new version of your package available:

  1. Delete any previous built
cd <PATH_TO_PACKAGE>
rm -rf dist
rm -rf build
rm -rf *.egg-info
  1. Rebuild your package
python setup.py sdist
python setup.py bdist_wheel
  1. Send to Pypi test server and check the installation
twine upload -r pypitest dist/*
pip install -i https://testpypi.python.org/simple <PACKAGE_NAME>
  1. Upload to Pypi!
twine upload -r pypi dist/*

For more information, the official documentation (with examples) is available at: https://packaging.python.org/distributing

Edited on 06/07/2018: replacing '/pypi' by '/simple' when installing from pypi test.