---
# System prepended metadata

title: 2025/09/16 (notes)
tags: [TechMon]

---

---
tags: TechMon
---

# 2025/09/16 (notes)

:::info
- **Date:** September 16, 2025 @ 11 am EDT
- **Participants:** OE, CM, MG, EM, TS, JHL, MN

:::

:::success

## Agenda

1. Welcome back! (Summary after the break) - NSC
1. [RSMF Round 1 Submission](https://www.software.ac.uk/research-software-maintenance-fund/round-1) (deadline Sept. 18) - @eilidhmacnicol 
    * Introduce the fit&transform generalization ([ETL-to-ELT](https://www.datacamp.com/blog/etl-vs-elt))
    * *FactoryPrep* - How to implement it? Learn from *Apache Airflow* (see their [DAGs](https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html) and their [Control Flow](https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html#control-flow)) or [Nextflow branches](https://www.nextflow.io/docs/latest/reference/operator.html#branch)?
1. fMRIPrep
    1. 25.2 LTS? (Waiting on ENIGMA feedback)
    2. Pixi is cool: [chore: Replace Conda with Pixi and lock #3503](https://github.com/nipreps/fmriprep/pull/3503)

1. PETPrep release
1. Silly nibabel question - Is this okay?
    ```Python
    img = nb.load(filename)
    header = img.header

    def _noheader():
        return (None, None)

    # OE: Typechecking whines about header not having get_slope_inter
    if getattr(header, "get_slope_inter", _noheader)() in ((None, None), (1.0, 0.0)):
        data = np.asanyarray(img.dataobj, dtype=header.get_data_dtype())
    else:
        data = img.get_fdata(dtype=np.float32)
    ```
1. NiPreps cookiecutter PRs: https://github.com/nipreps/Cookiecutter/pulls
1. NiQuery: https://github.com/nipreps/niquery
   * Name is taken on PyPI (although content is void) by Nolan Nichols (ex-Stanford)
1. NiFreeze: push alpha to PyPI to get hold of name
1. Meeting link: NumFOCUS. Any announcement ?


:::

## Notes

### Nibabel Q:
* See https://github.com/nipy/nibabel/discussions/1220
* or https://github.com/nipreps/nireports/blob/main/nireports/tools/ndimage.py

Answer:

```Python
data = np.asanyarray(img.dataobj)
```

### Cookiecutter
* MRIQC doesn't have jsons anymore https://github.com/nipreps/mriqc/tree/master/.maint . However, it lags behind on the ``CITATION.cff`` format zenodo has adopted now.

### RSMF

### fMRIPrep

### Nifreeze
* People should have users on PyPI and test.pypi.org. Make sure you're part of the nipreps PyPI organization.

# Meeting summary (by zoom)

## Quick recap

The team discussed preparations for an upcoming Thursday deadline and reviewed Eilidh's three-part technical innovation proposal involving workflow changes and community building initiatives. The group explored various approaches for improving their motion correction workflow system and discussed implementation details including potential hiring of a software engineer. The team also covered updates on various projects including LTS releases, Bed Prep progress, data handling approaches, and template development strategies, while addressing organizational and naming concerns for their repositories.

## Next steps

* Eilidh to submit the grant proposal by Thursday 4pm.
* Eilidh to send Martin text about how to calculate the value of Adriana's contribution for the grant.
* Chris to prepare and release FMRI Prep 25.2 as an LTS version after fixing the edge effect interpolations issue.
* Chris to fix the PyPi dependency issue in PET Prep's PyProject.toml file for the 0.0.1 release.
* Jon to push another pull request to fix the author JSON/Markdown files issue.
* Jon, Oscar, and Martin to meet tomorrow to discuss pushing an alpha release for NiPreps.
* Team to decide on a name for the NiQuery repository .
* Oscar to fix the meeting link to use Stanford instead of NumFocus for future meetings.

## Summary

### Deadline Preparation and Planning Meeting

The team discussed preparations for a deadline at 4pm on Thursday, with Eilidh needing time to stitch PDFs together and upload them to a web form. Chris mentioned reaching out to Tom and Chris about suggested text, and suggested putting £1,000 in a field as a placeholder value since Tom wasn't sure about promising a specific amount. Oscar noted challenges with teaching 16 hours per week and managing preparation time, and the meeting began without formal introductions as they waited for Martin who was running late.

### Technical Innovation Proposal Discussion

Eilidh presented a three-part proposal for technical innovation involving a shift from extract-transform-load to extract-load-transform across end-user tools, introduction of a "factory prep" system to streamline workflow updates, and community building initiatives including documentation and hackathons. The team discussed hiring a software engineer for 18 months to implement these changes, with rodents serving as the initial proof of concept before expanding to PET. Taylor asked about the distinction between a factory and template approach, though the implementation details remain uncertain and will be determined with the new hire's expertise.

### Motion Correction Workflow Improvements

The team discussed approaches for improving their motion correction workflow system, with Eilidh explaining how plugins could modify templates while maintaining core functionality. Oscar outlined three potential solutions: a feed-and-transform approach, graph surgery modifications, and an MKDocs-style template generation system. The group debated whether to stick with NiPipe or transition to Pydra, with Chris noting the advantage of existing NiPipe interfaces while acknowledging the need for incremental improvements. The discussion concluded with Oscar proposing an ETL-to-ELT approach where data remains pristine and transformations are applied on-demand, similar to OpenNeuro's data access model.

### Team Development and Release Updates

The team discussed several updates and developments. Eilidh requested Martin's help with calculating values for grant proposals, which Martin agreed to assist with. Chris reported on the status of LTS (Long-Term Support) releases, mentioning that version 25.2 could be considered an LTS if issues with edge effect interpolations are resolved. He also introduced a new tool called Pixie for creating environment files, which he tested on FMRI Prep. Martin provided an update on Bed Prep, noting progress from a recent sprint, improvements to Docker builds and continuous integration, and the release of version 0.0.1. The team successfully pushed this release to Docker Hub and addressed some issues with PyPi dependencies.

### Image Data Type Management Discussion

Chris and Oscar discussed type checking and data handling for image files. Chris explained that using nibabel.load with image.data can handle data type conversion automatically, applying slope and intercept if present, while maintaining the original data type without manual management. For more specific control over data types, Chris suggested using an array proxy to determine and set the desired data type, such as floating-point 32-bit values when appropriate.

### Project Template Approaches Discussion

The team discussed two approaches for project templates: a cookie cutter repository and a skeleton project. Jon presented his work on a cookie cutter repository for new projects, but Chris expressed concerns about its effectiveness and suggested focusing on a more comprehensive skeleton project approach that could be used to push updates to downstream packages. Oscar agreed with Chris's perspective, noting that while the cookie cutter provides a current view of project structure, the skeleton approach would be more valuable for long-term maintenance and updates.

### CI/CD and Maintenance Process Centralization

The team discussed centralizing maintenance scripts and CICD processes across prep projects, with Jon highlighting issues found while deprecating author JSON files in fMRI Prep. Chris suggested creating a new repository with best practices rather than relying on existing templates, while Oscar mentioned using the current skeleton in cookie cutter as a starting point. The group also addressed a naming conflict with "NiQuery" on PyPI, with Chris suggesting they could contact the original owner or consider renaming it to "ON Query" for Open Neuro-specific use.
NiPrez Alpha Release Planning Meeting

The team discussed pushing an alpha release for NiPrez and the need to decide on a name in their next meeting. They addressed access issues for the NiPreps organization on PyPi, with Chris noting that John and Oscar would work on ensuring proper permissions. The group also briefly discussed a non-focused meeting link, which Oscar explained was due to trying to change links to Stanford. The conversation ended with plans to meet again the following day for a bi-monthly meeting and to discuss potentially starting work on "factory prep," though Oscar preferred to wait due to his busy schedule.
