Skip to content

225 add a page to begin documenting standards for pipelines shared externally - #238

Open
arielleleon wants to merge 8 commits into
mainfrom
225-add-a-page-to-begin-documenting-standards-for-pipelines-shared-externally
Open

arielleleon wants to merge 8 commits into
mainfrom
225-add-a-page-to-begin-documenting-standards-for-pipelines-shared-externally

Conversation

@arielleleon

@arielleleon arielleleon commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

Modified platform_support.md to edit "Platform requirements", add a "Data flow pipeline" blurb, and edit "Logging". Left everything else the same but we may want to edit some of the processing pipeline documentation to reference pipeline standards documentation.

processing_pipeline_standards is a new heading under "Policies and practices". It contains a sub-contents for:

  • package management
  • versioning pipelines (moved from platform_support.md)
  • ai/ND processing pipelines
  • processing and pipeline testing
  • pipeline parameterization
  • branch management

I left a couple headings within "Policies and practices" in case they do not deserve a full page

Closes #225


📚 Documentation preview 📚: https://scicomp-docs--238.org.readthedocs.build/en/238/

@arielleleon
arielleleon requested a review from a team October 6, 2026 02:06

@alejoe91 alejoe91 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @arielleleon

Added some comments as talking points

@@ -0,0 +1 @@
# Package management for pipelines No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this about how the pipeline GH repo should be organized? Naming conventions etc.?

I think it's a good place to start, but I would rename to: Repository organization and conventions


## Processing pipeline development

Pipelines are a standardized series of processing steps that take raw data from a single modality and typically produce an NWB file as output. Pipelines are organized in a Nextflow pipeline with individual Code Ocean capsules performing internal steps. Platforms should use established pipelines for processing.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Pipelines are a standardized series of processing steps that take raw data from a single modality and typically produce an NWB file as output. Pipelines are organized in a Nextflow pipeline with individual Code Ocean capsules performing internal steps. Platforms should use established pipelines for processing.
Pipelines are a standardized series of processing steps that take raw data from a single modality and typically produce an NWB file as output. Pipelines are organized in a Nextflow pipeline with individual processes implemented as separate GitHub repositories performing internal steps. Platforms should use established pipelines for processing.

```{toctree}

pipeline_package_management.md
version_pipelines.md

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
version_pipelines.md
packaging_and_versioning.md

I would merge the concept of version and branch management: I started implementing something for the ephys pipeline here, open for discussion: AllenNeuralDynamics/aind-ephys-pipeline#138

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand now that pipeline_package_management is probably referring to container images etc. I think all of these concepts can be explained here.

Comment on lines +7 to +10
aind_processing_pipelines.md
pipeline_and_process_testing.md
pipeline_parameters.md
pipeline_branch_management.md

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
aind_processing_pipelines.md
pipeline_and_process_testing.md
pipeline_parameters.md
pipeline_branch_management.md
pipeline_parameters.md
pipeline_testing.md
aind_processing_pipelines.md

Just reordering in my personal favorite order of importance

pipeline_branch_management.md
```

## Process standards (processes are wrappers around processing libraries)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Process standards (processes are wrappers around processing libraries)
## Process standards

IMO the standard is that each process should correspond to a specific processing step, implemented as an individual GH repo with a main entry point (./run + run_capsulepy/main.py), potentially accepting JSON strings as parameters.

The pipeline has a clear map to repos and commits/versions for each step (as in https://github.com/AllenNeuralDynamics/aind-ephys-pipeline/blob/dev/pipeline/capsule_versions.env)

## Process standards (processes are wrappers around processing libraries)
...

## Nextflow version (UI will no longer be compatible)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Nextflow version (UI will no longer be compatible)
## Nextflow version

Here let's pin some concepts:

  1. Use DSL2 and worflows
  2. Accept a --params_file argument
  3. Other shared design choices (e.g., have a process for validate_parameters/save_provenance...etc, these can be reaused across pipelines)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a page to begin documenting standards for pipelines shared externally

2 participants