Nilearn for new use cases: Scaling up computational and community efforts
Creators: name: Mzayek, Yasmin
name: Bellec, Pierre
name: Bogdan, Paul
name: Chamma, Ahmad
name: Chen, Kun
name: Clarke, Natasha
name: Dalenberg, Jelle Roelof
name: Dockès, Jérôme
name: DuPre, Elizabeth
name: Duran, Audrey
name: Gensollen, Nicolas
name: Gomez, Daniel
name: Jawhar, Sami
name: Lane, Connor
name: Meudec, Raphael
name: Papadopoulos, Dimitri
name: Pietrantoni, Manon
name: Poline, Jean-Baptiste
name: Salo, Taylor
name: Thual, Alexis
name: Wang, Hao-Ting
name: Williamson, Robert
name: Thirion, Bertrand
Publisher: name: Zenodo
Year: 2023

description: <strong>Introduction</strong><br> Nilearn (https://nilearn.github.io) is a well-established Python package that provides statistical<br> and machine learning tools for fast and easy analysis of brain images with instructive<br> documentation and a friendly community. This focus has led to its current position as a crucial<br> part of the neuroimaging community’s open-source software ecosystem, supporting efficient and<br> reproducible science [1]. It has been continuously developed over the past 10 years, currently<br> with 900 stars, 500 forks, and 176 contributors on GitHub. Nilearn leverages and builds upon<br> other central Python machine learning packages, such as Scikit-Learn [2], that are extensively<br> used, tested, and optimized by a large scientific and industrial community.<br> In recent years, efforts in Nilearn have been focused on meeting evolving community needs by<br> increasing General Linear Model (GLM) support, interfacing with initiatives like fMRIPrep and<br> BIDS, and improving the user documentation. Here we report on progress regarding our current<br> priorities. <strong>Methods</strong><br> Nilearn is developed to be accessible and easy-to-use for researchers and the open-source<br> community. It features user-focused documentation that includes a user guide and an example<br> gallery as well as comprehensive contribution guidelines. Nilearn is also presented in tutorials<br> and workshops throughout the year including the Montreal Artificial Intelligence and<br> Neuroscience (MAIN) Educational Workshop, the OHBM Brainhack event, and for the Chinese<br> Open Science Network.<br> The community is encouraged to ask questions, report bugs, make suggestions for<br> improvements or new features, and make direct contributions to the source code. We use the<br> platforms Neurostars, GitHub, and Discord to interact with contributors and users on a daily<br> basis.<br> Nilearn adheres to best practices in software development including using version control, unit<br> testing, and requiring multiple reviews of contributions. We also have a continuous integration<br> infrastructure set up to automate many aspects of our development process and make sure our<br> code is continuously tested and up-to-date. <strong>Results</strong> Nilearn supports methods such as image manipulation and processing, decoding, functional<br> connectivity analysis, GLM, multivariate pattern analysis, along with plotting volumetric and<br> surface data.<br> In the latest release, cluster-level and TFCE-based family-wise error rate (FWER) control have<br> been added to support the mass univariate and GLM analysis modules, expanding from the<br> already implemented voxel-level correction method (see Fig1). Optimizing Nilearn’s maskers is<br> also underway such as the recently added classes for handling multi-subject 4D image data.<br> These also provide the option to use parallelization to speed up computation.<br> In addition, Nilearn has introduced a new theme to update the documentation making the<br> website more readable and accessible (https://nilearn.github.io/). This change also sets the<br> stage for further improvement and modernisation of several aspects of the documentation, like<br> the user guide.<br> Development on Nilearn’s interfaces module added a new function to write BIDS-compatible<br> model results to disk. This and further development of the BIDS interface will facilitate<br> interaction with other relevant community tools such as FitLins [3]. Finally, several surface<br> plotting enhancements are in progress including improving the API for background maps (see<br> Fig2). <strong>Conclusion</strong><br> Nilearn is extensively used by researchers of the neuroimaging community due to its<br> implementations of well-founded methods and visualization tools which are often essential in<br> brain imaging research for quality control and communicating results. Recent work has<br> highlighted areas where more active work is needed to scale the project both technically and<br> socially, including: working with large datasets, better supporting analyses on the cortical<br> surface, and advancing standard practice in neuroimaging statistics through active community<br> outreach. <strong>References</strong><br> [1] Poldrack, R., Gorgolewski, K., Varoquaux, G. (2019). Computational and Informatic<br> Advances for Reproducible Data Analysis in Neuroimaging Annual Review of Biomedical Data<br> Science 2(1), 119-138. https://dx.doi.org/10.1146/annurev-biodatasci-072018-021237<br> [2] Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M.,<br> Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher,<br> M., Perrot, M., Duchesnay, E. (2011). Scikit-learn: Machine Learning in Python, Journal of<br> Machine Learning Research, 12, 2825-2830.<br> [3] Markiewicz, C. J., De La Vega, A., Wagner, A., Halchenko, Y. O., Finc, K., Ciric, R.,<br> Goncalves, M., Nielson, D. M., Kent, J. D., Lee, J. A., Bansal, S., Poldrack, R. A., Gorgolewski,<br> K. J. (2022). poldracklab/fitlins: 0.11.0 (0.11.0). Zenodo. https://doi.org/10.5281/zenodo.7217447
description: This poster was presented at OHBM 2023.
description: {"references": ["Poldrack, R., Gorgolewski, K., Varoquaux, G. (2019). Computational and Informatic Advances for Reproducible Data Analysis in Neuroimaging Annual Review of Biomedical Data Science 2(1), 119-138. https://dx.doi.org/10.1146/annurev-biodatasci-072018-021237", "Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M., Duchesnay, E. (2011). Scikit-learn: Machine Learning in Python, Journal of Machine Learning Research, 12, 2825-2830.", "Markiewicz, C. J., De La Vega, A., Wagner, A., Halchenko, Y. O., Finc, K., Ciric, R., Goncalves, M., Nielson, D. M., Kent, J. D., Lee, J. A., Bansal, S., Poldrack, R. A., Gorgolewski, K. J. (2022). poldracklab/fitlins: 0.11.0 (0.11.0). Zenodo. https://doi.org/10.5281/zenodo.7217447"]}