What’s new¶
0.3.4¶
Released on 2025-03-27 - GitHub - PyPI
What's Changed
This is release introduces some enhancements and minor bug fixes. CLI updates include removing the large log dump with the Boutiques invocation/descriptor file contents, which should make the logs easier to navigate. Pipeline config updates include fixes for dcm2bids
and fs_stats
.
The next release should be 0.4.0
, which will introduce a restructuring of the global config file as well a decoupling of sample pipeline config files from the Nipoppy Python package code base. Sample pipeline config files will be stored on Zenodo and the Nipoppy CLI will be able to download/upload them.
Features
- [ENH] Add dcm2bids 3.2.0 by @michellewang in #436
- [ENH] Add
bids-validator
2.0.3
by @michellewang in #534 - [ENH] group options in cli help. by @mathdugre in #491
- [ENH] Remove Boutiques descriptor/invocation file content dumps by @michellewang in #542
- [ENH] Print container-pulling command and change global config container substitution by @michellewang in #540
- [ENH] Improve
fs_stats
extractor pipeline by @michellewang in #550
Bug Fixes
- [BUG] Update Sigstore action version by @michellewang in #479
- [BUG] Ensure that
--verbose
option is a flag in the CLI by @michellewang in #481 - [BUG] Fix paths in
fs_stats
extractor default invocation by @michellewang in #485 - [BUG] Status command session indexing fix by @nikhil153 in #492
- [BUG] Fix
nipoppy init
in existing dirs. by @mathdugre in #490 - [BUG] Fix bug in invocation file for
dcm2bids
'sprepare
step by @michellewang in #495 - [BUG] Add validation for non-alphanumeric characters in
participant_id
andsession_id
in manifest by @michellewang in #546
Documentation
- [DOC] Use SVG path for logo text by @michellewang in #499
- [DOC] Add "how-to" guide for dataset initialization by @michellewang in #489
- [DOC] Add a CLI reference page for
nipoppy status
by @michellewang in #529 - [DOC] Add tooltips for glossary terms by @michellewang in #526
- [DOC] Do not include extractor scripts in autodocs by @michellewang in #525
- [DOC] Add external link checking for docs build + fix broken links by @michellewang in #524
Maintenance
- [MAINT] Add dependabot for GitHub actions by @michellewang in #511
- [MAINT] Fix/update issue labeller by @michellewang in #509
- [MAINT] Use Nipoppy bot instead of PAT for projects automation workflow by @michellewang in #508
- [MAINT] Add GitHub Actions workflow to automatically update
CITATION.cff
version after release by @michellewang in #512 - Bump actions/stale from 9.0.0 to 9.1.0 by @dependabot in #515
- Bump actions/checkout from 3 to 4 by @dependabot in #514
- Bump actions/setup-python from 4 to 5 by @dependabot in #516
- Bump codecov/codecov-action from 4 to 5 by @dependabot in #513
- [MAINT] Clean up
.gitignore
by @michellewang in #521 - [MAINT] Add CI workflow for Read the docs preview link by @michellewang in #536
New Contributors
- @dependabot made their first contribution in #515
Full Changelog: 0.3.3...0.3.4
0.3.3¶
Released on 2025-01-31 - GitHub - PyPI
What's Changed
This release includes a refactor of the CLI to use click
instead of argparse
, which changes the look of the CLI.
The nipoppy run
command also has a new --tar
argument which enables tarring of a participant-session directory upon successful completion of a processing pipeline (path configured in tracker config files). Tracking will take into account the tarball contents too.
We have also added a --write-list
flag to nipoppy bidsify
, nipoppy run
, and nipoppy extract
, which will write to a CSV file the list of participant and session IDs to run (may be helpful for parallel processing and HPC job submission).
Features
- [ENH] Rename some input IDs in MRIQC descriptor by @michellewang in #428
- [ENH] Add
--tar
option tonipoppy run
by @michellewang in #430 - [ENH] add QSIPrep by @michellewang in #266
- [ENH] Make trackers handle tarball in pipeline output by @michellewang in #466
- [ENH] Improve
DicomReorgWorkflow
customization flexibility and logging by @michellewang in #467 - [ENH] Update Freesurfer stats/QC extractor by @michellewang in #464
- [ENH] Add flag for writing HPC participant-session list by @michellewang in #462
- [ENH] Add static FC extractor by @mtorabi59 in #413
- [ENH] Add "symlink" option to init by @bcmcpher in #478
Bug Fixes
- [BUG] Make
PARTICIPANT_SESSION_DIR
field relative to pipeline output directory by @michellewang in #461 - [BUG] Make
PipelineRunner
exit/throw exception if container is specified but not found by @michellewang in #443 - [BUG] Fix wrong container config being used in runners by @michellewang in #442
- [BUG] Update Heudiconv descriptor and invocation files by @michellewang in #471
Documentation
- [DOC] Add Plausible analytics by @michellewang in #459
Maintenance
- [MAINT] Fix
PerformanceWarning
inBaseTabular
class by @michellewang in #425 - [MAINT] Refactor CLI to use Click by @mathdugre in #444
Misc
- [ENH] Add --mode=move option to nipoppy init with --bids-source by @mtorabi59 in #475
Full Changelog: 0.3.2...0.3.3
0.3.2¶
Released on 2024-12-12 - GitHub - PyPI
What's Changed
This release introduces two new commands:
nipoppy status
: get summary information about the dataset, including how many participants/sessions are in the manifest, have been BIDSified, or have been processednipoppy extract
: run extraction pipelines that depend on certain processing pipelines (configured in the global config file)
Features
- [ENH] Add status command to display high-level participant counts by @nikhil153 in #419
- [ENH] add
nipoppy extract
command by @michellewang in #399 - [ENH] Add FreeSurfer aparc/aseg stats extractor by @michellewang in #342
Documentation
- [DOC] Add icon/link to GitHub repo in docs footer by @michellewang in #434
Maintenance
- [MAINT] Exclude PyBIDS version 0.18.0 from dependencies by @michellewang in #449
Full Changelog: 0.3.1...0.3.2
0.3.1¶
Released on 2024-11-12 - GitHub - PyPI
What's Changed
Features
- [ENH] Allow BIDS datasets without session level by @mtorabi59 in #420
- [ENH] Add fMRIPrep 24.1.1 by @michellewang in #426
Maintenance
- [MAINT] refactor pipeline steps. by @mathdugre in #418
Full Changelog: 0.3.0...0.3.1
0.3.0¶
Released on 2024-10-31 - GitHub - PyPI
What's Changed
Breaking changes
- [ENH] Add
_id
suffix tobids_participant
andbids_session
by @michellewang in #382 - [ENH] Make
TRACKER_CONFIG_FILE
part of pipeline step config instead of pipeline config by @michellewang in #352 - [API] make --dataset-root and positional arg. by @mathdugre in #390
- [ENH] Update pipeline config layout by @michellewang in #383
- [ENH] Use TSV instead of CSV for tabular files by @michellewang in #381
- [ENH] Update layout by @michellewang in #379
- [ENH] Rename doughnut columns by @michellewang in #404
- [ENH] Update bagel columns by @michellewang in #354
Documentation
- [DOC] Update dataset layout figure by @michellewang in #412
- [DOC] Update file trees in user guide page for DICOM reorg by @michellewang in #408
Misc
- [REL] Fix merge conflict for REL 0.3.0 by @mathdugre in #417
- [REL] Release 0.3.0 by @mathdugre in #416
Full Changelog: 0.2.3...0.3.0
0.2.3¶
Released on 2024-10-10 - GitHub - PyPI
What's Changed
Features
- [ENH] make fmriprep
--fs-no-reconall
value-key and id more intuitive. by @mathdugre in #406
Bug Fixes
- [BUG] keep working directory on failed run / flag to keep pipeline working directory on success by @bcmcpher in #345
- [BUG] Do not pool BIDS and PROC pipelines together when searching pipeline configs by @michellewang in #391
- [FIX] Do not enable markup language processing when logging messages related to subprocesses by @michellewang in #410
Maintenance
- [MAINT] Only move PRs to pending review. by @mathdugre in #389
Full Changelog: 0.2.2...0.2.3
0.2.2¶
Released on 2024-09-27 - GitHub - PyPI
What's Changed
Features
Bug Fixes
- [BUG] Fix logging issues by @michellewang in #356
- [FIX] Support latest version of doc dependencies by @michellewang in #365
- [BUG] Fix logo path by @mathdugre in #376
- [BUG] Fix logo again... by @mathdugre in #377
Documentation
- [DOC] Add auto-generated changelog page to docs by @michellewang in #361
- [DOC] Update contribution guide by @michellewang in #375
- [DOC] Add logo by @michellewang in #347
Maintenance
- [MAINT] Refactor pipeline step config in workflow classes by @michellewang in #362
- [MAINT] test with python 3.13 by @Remi-Gau in #359
Misc
- [ENH] Pybids database creation toggle (fixed) for issue #253 by @jacobsanz97 in #371
New Contributors
- @jacobsanz97 made their first contribution in #371
Full Changelog: 0.2.1...0.2.2
0.2.1¶
Released on 2024-09-12 - GitHub - PyPI
What's Changed
Breaking Changes
- [MAINT] Clean up legacy files by @michellewang in #339
Features
- [ENH] add automatic release notes for GitHub. by @mathdugre in #322
- [ENH] Add
"ANALYSIS_LEVEL"
field to pipeline step config to allow group-level processing by @michellewang in #341
Bug Fixes
- [FIX] Improve pipeline config substitutions by @michellewang in #300
- [FIX] Fix various bugs in sample JSON config files by @michellewang in #299
- [BUG] Fix error when using invalid verbosity level by @michellewang in #330
- [BUG] Heudiconv invocation fix by @nikhil153 in #314
- [BUG] Fix
label_new_issue.yml
failing by @michellewang in #344
Documentation
- [DOC] Update installation instructions by @mathdugre in #326
Maintenance
- [MAINT] automatically label issue and PRs based on prefixes by @mathdugre in #338
Misc
- [ENH] Add GitHub Project automation by @michellewang in #333
- [FIX] Add changes erased by force-push by @michellewang in #336
Full Changelog: 0.2.0...0.2.1
0.2.0¶
Released on 2024-08-15 - GitHub - PyPI
What's Changed
- codespell: config, workflow and typos fixed by @yarikoptic in #104
- renamed fmriprep hpc run scripts by @nikhil153 in #96
- Add
nimhans_serb
repo toupdate_dataset_repos.yml
by @michellewang in #108 - Make small changes to
check_dicom_status.py
by @michellewang in #98 - Move
README.md
todocs
by @michellewang in #110 - [DOC] add zenodo DOI badge to README.md by @Remi-Gau in #106
- Merge TractoFlow Workflow by @bcmcpher in #112
- TractoFlow Adjustments by @bcmcpher in #113
- Fix
dicom_org
issues and updatebids_conv
by @michellewang in #111 - add nipoppy_nimhans to update_dataset_repos.yml by @michellewang in #114
- Added MAGeT Brain scripts by @nikhil153 in #123
- Update repo names in GitHub actions for updating dataset forks by @michellewang in #125
- Renamed mr_proc mentions by @nikhil153 in #127
- Fix small issues with DICOM-to-BIDS conversion by @michellewang in #128
- added requests module and fixed import path in check_dicom_status.py by @nikhil153 in #130
- [MAINT] add test to run in ci for fmriprep workflow by @Remi-Gau in #132
- Attempt to fix merge conflicts after #132 by @michellewang in #136
- moving sample_global_configs.json and tree.json to the nipoppy subdir by @nikhil153 in #137
- fixed import paths after refactor by @nikhil153 in #139
- Use
bids_id
in doughnut file only instead of manifest and doughnut by @michellewang in #133 - Minor fixes to files and
check_dicom_status.py
by @michellewang in #140 - Do not run Codespell on
*.ipynb
files by @michellewang in #142 - refactored and cleaned up mriqc run script by @nikhil153 in #143
- Add GitHub Actions workflow to prevent downstream forks changing files tracked in main repo by @michellewang in #146
- Fix bug where
doughnut.csv
loses rows after BIDS conversion by @michellewang in #145 - Do not check changed files when syncing with downstream forks by @michellewang in #154
- Make Codespell ignore HTML files and PPMI-specific file by @michellewang in #153
- Update trackers following changes in dashboard schema (+ other improvements) by @michellewang in #95
- Started tracker refactoring to use doughnut by @nikhil153 in #148
- Do not trigger Codespell on push events by @michellewang in #161
- Assume
dicom_dir
isparticipant_id
if custom function is not provided by @michellewang in #157 - add
session_id
toparticipant_id_to_dicom_dir()
by @michellewang in #165 - update to tractoflow run for bval parsing by @bcmcpher in #166
- Make backups of
bagel.csv
and check it when tracking pipelines (+ refactor status -> doughnut) by @michellewang in #162 - Updates to trackers and global variable handling by @nikhil153 in #163
- Issue 172 by @bcmcpher in #173
- fixed errors from previous merge conflict resolution by @nikhil153 in #170
- Make parent directory of output file in
make_squash.sh
by @michellewang in #158 - Minor fixes to trackers by @nikhil153 in #177
- Quick fix for tractoflow data parsing missing valid T1s by @bcmcpher in #179
- Update trackers to use manifest and handle tar archives by @michellewang in #181
- use doughnut file to get BIDS ID in
run_tracker.py
(create if needed) by @michellewang in #185 - FC run_script by @mtorabi59 in #183
- removed version (i.e. v) prefix from run scripts to match trackers and refactored FS extractor by @nikhil153 in #188
- add "ses-" prefix to
sample_global_configs.json
by @michellewang in #195 - Fix Tractoflow runscript bugs by @michellewang in #198
- Fix MRIQC (and fMRIPrep) runscript bugs by @michellewang in #194
- Remove symlinks from tractoflow output by @bcmcpher in #200
- Fix TractoFlow symlink bugs by @michellewang in #202
- Add dcm2bids conversion by @danyluik in #189
- [MAINT] Expand testing and add coverage by @Remi-Gau in #144
- add checks for dir exist by @mtorabi59 in #207
- Refactor into a CLI by @michellewang in #205
- Add docs built with Sphinx by @michellewang in #209
- [DOC] make install command more robust by @Remi-Gau in #215
- [DOC] fix edit button and unpin doc dependencies by @Remi-Gau in #216
- [DOC] build schema before doc and ignore autodoc related warnings by @Remi-Gau in #218
- fixed bugs related to maget-brain data prep and tracking options by @nikhil153 in #196
- [MAINT] use official fids by @Remi-Gau in #220
- [FIX] Make sure Python >=3.9 is supported by @michellewang in #237
- [ENH] Add DICOM header checking and
DicomDirMap
toDicomReorgWorkflow
by @michellewang in #229 - [ENH] Update global config specification by @michellewang in #238
- [ENH] Make sure workflows do not run again for participant/sessions that already have expected output by @michellewang in #259
- [ENH] Rename tabular file columns to
visit_id
andsession_id
by @michellewang in #263 - [FIX] Write updated doughnut file to disk at the end of
DicomReorgWorkflow
andBidsConversionWorkflow
by @michellewang in #260 - [ENH] Add default tracker config files for fMRIPrep and FreeSurfer, and update default invocation files by @michellewang in #265
- [FIX] Fix doughnut path and other bugs by @michellewang in #274
- [ENH] Add descriptors and sample invocations for BIDScoin by @michellewang in #267
- [FIX] Fix command-line for fMRIPrep, MRIQC and HeuDiConv descriptors by @michellewang in #275
- [FIX] Fix
nipoppy run
creating empty PyBIDS database on second (and later) loop iteration by @michellewang in #283 - [FIX] Add
pipeline_starttime
to bagel file by @michellewang in #286 - [FIX] Remove working directory in
PipelineRunner
instead ofBasePipelineWorkflow
by @michellewang in #288 - [ENH] [REFACTOR] imports to improve performance of the cli. by @mathdugre in #281
- [MAINT] Stop syncing with dataset fork repositories by @michellewang in #303
- [DOC] Add user guide by @michellewang in #243
- [MAINT] change linting config and apply pre-commit by @Remi-Gau in #311
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #313
- [ENH] Add workflow for releases by @michellewang in #308
- [ENH] Add success/summary message at the end of each workflow by @michellewang in #261
- [ENH] add version to cli by @Remi-Gau in #319
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #320
- [MAINT] Fix (?) release workflow by @michellewang in #317
New Contributors
- @yarikoptic made their first contribution in #104
- @danyluik made their first contribution in #189
- @mathdugre made their first contribution in #281
- @pre-commit-ci made their first contribution in #313
Full Changelog: 0.1.0...0.2.0
0.1.0¶
Released on 2023-06-27 - GitHub - PyPI
What's Changed
- Add some notes and tab data folders. by @Vincent-wq in #1
- Upload of the original pipeline. by @Vincent-wq in #2
- updating heudiconv scripts for PPMI by @Vincent-wq in #3
- PPMI BIDS conversion complete. by @Vincent-wq in #4
- Adding sge support and updating heuristics with Nikhil. by @Vincent-wq in #5
- Create session reorganization before conversion. by @Vincent-wq in #6
- BIC server sge scripts finished with correct sessions. by @Vincent-wq in #7
- Ppmi preproc branch established by @Vincent-wq in #9
- Revert "Ppmi preproc branch established" by @Vincent-wq in #10
- Revert "Ppmi preproc branch established" by @Vincent-wq in #11
- Merge workflow template with amin branch by @nikhil153 in #13
- Nimhans added by @nikhil153 in #37
- mriqc run and evaluate scripts by @InesGP in #38
- Update function name by @InesGP in #40
- Adding nimhans changes to the main branch by @nikhil153 in #44
- Nimhans by @nikhil153 in #45
- converted SGE script to python script by @InesGP in #46
- updated mriqc scripts by @InesGP in #47
- mriqc tracker by @InesGP in #55
- Update
.gitignore
and remove dataset-specific files by @michellewang in #68 - Update README.md by @nikhil153 in #71
- GitHub Actions workflow to update downstream dataset repos by @michellewang in #70
- Fix GitHub Actions for updating dataset repos by @michellewang in #72
- added exploratory analysis of QPN visits by @nikhil153 in #74
- Revert "added exploratory analysis of QPN visits" by @nikhil153 in #76
- refactored run script of fmriprep to remove shell script dependency by @nikhil153 in #73
- Updated mr_proc_manifest path and column names in catalog, dicom_reorg, and bids_conv by @nikhil153 in #78
- Update
README.md
by @michellewang in #82 - added pybids as dependency by @bcmcpher in #84
- updated run_mriqc to use global config by @InesGP in #77
- refactored run scripts and added extractor module by @nikhil153 in #79
- Fix/update trackers by @michellewang in #81
- resolving harmonization issues with mriqc run script by @InesGP in #88
- Small leftover changes after refactoring of shell scripts into python run scripts and and trackers by @nikhil153 in #91
- Refactor DICOM-to-BIDS conversion to use
doughnut.csv
by @michellewang in #89 - Update sample global configs by @michellewang in #101
- [MAINT] add citation file and validation workflow by @Remi-Gau in #105
New Contributors
- @michellewang made their first contribution in #68
- @Remi-Gau made their first contribution in #105
Full Changelog: https://github.com/neurodatascience/mr_proc/commits/0.1.0