smoia | |
@SteMoia | |
s.moia.research@gmail.com |
Tainan, 03.12.24
Faculty of Psychology and Neuroscience, Maastricht University, Maastricht, The Netherlands; Open Science Special Interest Group (OHBM); physiopy (https://github.com/physiopy)
The Turing Way Community, & Scriberia, 2022 (Zenodo). Illustrations from The Turing Way (CC-BY 4.0)
Guaranteeing reproducibility is important for "reusable, transparent" research.
1942-1998: first concepts of "Open Science"
2010s: current concepts of OS, responding to:
2016: Survey by Nature¹: ~70% of researchers failed to reproduce other's results, 50%+ failed to reproduce their own
1. Baker 2016 (Nature)
Same hardware, two Freesurfer builds (different glibc version)
Difference in estimated cortical tickness.¹
Same hardware, same FSL version, two glibc versions
Difference in estimated tissue segmentation.²
Same hardware, two Freesurfer builds (two glibc versions)
Difference in estimated parcellation.²
1. Glatard, et al., 2015 (Front. Neuroinform.) 2. Ali, et al., 2021 (Gigascience)
Aarts et al. 2015 (Science)
What does failure to replicate
and generalise results tell us
about hypotheses and scientific facts?
To be Open, Science should be publicly available, reusable,
and transparent¹. It should aim at reaching:
1. The Turing Way Community, 2019 (Zenodo). https://the-turing-way.netlify.app (CC-BY 4.0)
Newer points of view might add:
OS makes academic research available to its real funding bodies: citizens, policy-makers, industry.
Well made OS guarantees more certain results and reduces the impact of human error.
It also reduces publication bias¹ ².
1. Allen & Mehler, 2019 (PLoS Biol) 2. Scheel, Schijen, & Lakens, 2021 (AMPPS)
It reduces the impact of laboratories' generational changes
OS imposes practices for collaboration and openness that improve our procedures:
Your future self will be happier to collaborate with you!
The demand from policy makers is increasing¹.
1. McKiernan, et al., 2016 (eLife)
1. Gorgolewski, et al., 2016 (Scientific Data)
2. Zwiers, Moia, Oostenweld, 2022, (Front. Neuroinf.)
Plan in advance
I can't work on that project now because my colleague/friend/dog is working on [a different part than what I'd modify of] it at the moment...
pip install pre-commit # Install via pip, or
# Comes installed with development extras
pip install -e /path/to/phys2cvr[dev]
cd /path/to/phys2cvr
pre-commit init
pre-commit run
(Local and remote) simple automations, e.g:
Create branch "dev"
Commit
Merge dev into main
Diverging main: conflict?
Merge main into dev
Initialise repository
"Main" branch
Main
Dev
Bug
Create branch "dev"
Commit
Merge dev into main
Diverging main: conflict?
Merge main into dev
Initialise repository
"Main" branch
Fork ("upstream" vs "origin")
Pull from upstream
Merge origin/main into dev
Clone (local repository)
Pull Request
Pull from *
Push to *
Main
Dev
Upstream
Main
Origin
Dev
Main
(local)
Releases make your work easier to retrieve (and cite).
Imagine them as hard links to a certain moment in time.
(e.g. paper #1 vs paper #2).
{
"license": "Apache-2.0",
"title": "physiopy/phys2bids: BIDS formatting of physiological recordings",
"upload_type": "software",
"creators": [
[...]
{
"orcid": "0000-0002-7796-8795",
"affiliation": "Florida International University",
"name": "Katie Bottenhorn"
},
[...]
],
"access_right": "open"
}
A work that is not licensed is not public (paradox!)
There are n+1 (open source) licences to pick up from.
www.choosealicense.org
The licence should be the first commit you make in a project.
Personal picks for science:
Apache 2.0 and CC-BY-ND-4.0
(consider L-GPLv3.0, and CC-BY-4.0 too)
[...]
if __name__ == "__main__":
_main(sys.argv[1:])
"""
Copyright 2022, Stefano Moia & EPFL.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
© Sebastien Adams, I WANT TO DISTRIBUTE MY SOFTWARE DEVELOPMENTS. HOW TO DEFINE AN OPEN LICENSING STRATEGY?
© Benjamin Jean (2011), Option libre. Du bon usage des licences libres.
MATLAB users:
Python users:
https://github.com/TheAxonLab/hcph-sops
Bootstrap: docker
From: python:3.8.13-slim-buster
%environment
export DEBIAN_FRONTEND=noninteractive
export TZ=Europe/Brussels
%post
# Set install variables
export DEBIAN_FRONTEND=noninteractive
export TZ=Europe/Brussels
# Prepare repos and install dependencies
pip3 install nigsp[all]
# Final removal of lists and cleanup
rm -rf /var/lib/apt/lists/*
Docker:
Apptainer:
1. Gorgolewski, et al., 2017 (PLoS Comp. Biol.)
Images courtesy of Oscar Esteban (CC-BY-4.0)
Ethics committee,
internal project assessment, ...
Re-learn scientific process
Currently not adapted to short projects
Guarantees a publication!
smoia | |
@SteMoia | |
s.moia.research@gmail.com |
...you for the (sustained) attention!
...MR-Methods @UM, Physiopy, OSSIG
...the organisers, for having me here!
Find the presentation at:
slides.com/ephraim24/open-science-ncku-2024/scroll
Find the presentation at:
slides.com/ephraim24/open-science-ncku-2024/scroll