Skip to main content

PyNipe

CI/CD Python Versions License: MIT

A neuroimaging workflow library that builds upon Nipype's excellent interfaces while providing a more intuitive and debuggable execution model with support for parallel execution.

Overview

PyNipe enables neuroimaging researchers to create processing pipelines using natural Python flow, making development and debugging significantly easier while maintaining the ability to run tasks in parallel.

Key Features

  • Reuse Nipype interfaces: Leverage the mature interface implementations from Nipype
  • Natural Python flow: Enable standard Python control structures (if/else, loops, etc.)
  • Improved debugging: Make it easy to see what's happening at each step
  • Modular processing: Build pipelines from reusable processing functions
  • Parallel execution: Support concurrent execution of independent tasks
  • Delayed execution: Configure tasks first, execute later through the executor
  • Automatic dependency tracking: Dependencies between tasks are automatically tracked
  • Integration with pipeline tools: Support modern pipeline management tools like Airflow

Installation

pip install pynipe

Basic Usage

from nipype.interfaces import fsl
from pynipe import TaskContext, Workflow, LocalExecutor

# Define a processing function
def process_subject(subject_id, anat_file, output_dir):
    # Brain extraction task
    with TaskContext("Brain Extraction") as ctx:
        # Create and configure the interface
        bet = fsl.BET()
        ctx.set_interface(bet)

        # Configure the interface parameters
        ctx.configure_interface(
            in_file=anat_file,
            out_file=f"{output_dir}/{subject_id}_brain.nii.gz",
            mask=True,
            frac=0.3
        )

        # Get output proxies for later use
        outputs = ctx.get_output_proxy()
        brain_file = outputs.outputs.out_file
        mask_file = outputs.outputs.mask_file

    return {
        "brain": brain_file,
        "mask": mask_file
    }

# Create a workflow
workflow = Workflow("Simple Pipeline")

# Add processing for a subject
workflow.add_function(
    process_subject,
    inputs={
        "subject_id": "sub-01",
        "anat_file": "/path/to/sub-01/anat.nii.gz",
        "output_dir": "/path/to/output"
    }
)

# Run the workflow with parallel execution
executor = LocalExecutor(max_workers=2)
results = workflow.run(executor=executor)

# Access task information after execution
for task_name, task_outputs in results["tasks"].items():
    task = workflow.get_task_by_name(task_name)
    if task:
        print(f"Task: {task_name}")
        print(f"Status: {task.status}")
        print(f"Execution time: {task.elapsed_time:.2f}s")
        print(f"Command: {task.command}")

License

MIT License

Metadata

Release files for pynipe 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pynipe 0.1.0
File Size Uploaded
pynipe-0.1.0.tar.gz 113.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pynipe 0.1.0
File Interpreter ABI Platform
pynipe-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 133.0 kB

Release files / pynipe-0.1.0.tar.gz

Download URL pynipe-0.1.0.tar.gz
Size 113.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f5150d9ef09a7a7be0bcc02a5040eb9701c56536aecb3d4ee6e08c3cf6181d64
BLAKE2b-256 checksum
How to use checksums
49e0d2a2132fb3becf21a66c7ed25afa51f7b481fa9c267b463499a889f30487
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 23, 2025.

Transparency log

Release files / pynipe-0.1.0-py3-none-any.whl

Download URL pynipe-0.1.0-py3-none-any.whl
Size 19.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
10f6d8aeaa567f20cb66d6aa2c46f362022d490f117bc59c09c18c831a0113d5
BLAKE2b-256 checksum
How to use checksums
91e6391264d5d0eee35f3ace8e7aa04a96d22790afa0c501c010e2895641d1bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 23, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page