Skip to main content
https://github.com/nipype/nipype2pydra/actions/workflows/ci-cd.yml/badge.svg https://codecov.io/gh/nipype/nipype2pydra/branch/main/graph/badge.svg?token=UIS0OGPST7 Supported Python versions Latest Version

Nipype2Pydra is a command-line tool for semi-automatically porting command interfaces and workflows written from the Nipype workflow engine to its successor Pydra. It has been designed so that any required manual-specifications are stored in separate YAML specification files, which is read ahead of the conversion, so once designed the conversion can be re-run to pick up changes in newer versions of the Nipype code without having to redo the manual steps.

Basic Usage

To convert a Nipype interface to a Pydra task run the nipype2pydra task command and pass it the conversion specification YAML file and the root of the package to save the generated module, e.g.:

$ nipype2pydra task ants_registration_registration.yaml /path/to/package/root

This will create a module file under the package root directory based on the output_module field in the specification, e.g:

/path/to/package/root/output/module/path

If that is missing and the nipype interface is in the standard nipype.interfaces package, then it will be stored at pydra.tasks. with the same path end.

Conversion Specifications

While the conversions aim to as automatic as possible, there are structural differences between Nipype and Pydra that require manual specification, and it might be desirable to rename some of the inputs/outputs to more intuitive names. Such specifications are stored in YAML format, such as the ANTs registration conversion specification,

task_name: n4_bias_field_correction
nipype_name: N4BiasFieldCorrection
nipype_module: nipype.interfaces.ants.segmentation
inputs:
    omit:
    # list[str] - fields to omit from the Pydra interface
    rename:
    # dict[str, str] - fields to rename in the Pydra interface
    types:
    # dict[str, type] - override inferred types (use "mime-like" string for file-format types,
    # e.g. 'medimage/nifti-gz'). For most fields the type will be correctly inferred
    # from the nipype interface, but you may want to be more specific, particularly
    # for file types, where specifying the format also specifies the file that will be
    # passed to the field in the automatically generated unittests.
        input_image: medimage/nifti1
        mask_image: medimage/nifti1
        weight_image: medimage/nifti1
        bias_image: medimage/nifti1
    metadata:
    # dict[str, dict[str, any]] - additional metadata to set on any of the input fields (e.g. out_file: position: 1)
outputs:
    omit:
    # list[str] - fields to omit from the Pydra interface
    rename:
    # dict[str, str] - fields to rename in the Pydra interface
    types:
    # dict[str, type] - override inferred types (use "mime-like" string for file-format types,
    # e.g. 'medimage/nifti-gz'). For most fields the type will be correctly inferred
    # from the nipype interface, but you may want to be more specific, particularly
    # for file types, where specifying the format also specifies the file that will be
    # passed to the field in the automatically generated unittests.
        output_image: medimage/nifti1
        bias_image: medimage/nifti1
    callables:
    # dict[str, str] - names of methods/callable classes defined in the adjacent `*_callables.py`
    # to set to the `callable` attribute of output fields
    templates:
    # dict[str, str] - `output_file_template` values to be provided to output fields
    requirements:
    # dict[str, list[str]] - input fields that are required to be provided for the output field to be present

Detailed description of the different options to go here

Installation

Nipype2Pydra can be installed for Python >= 3.7 from PyPI with

$ python3 -m pip install nipype2pydra

License

This work is licensed under a Creative Commons Attribution 4.0 International License

Creative Commons Attribution 4.0 International License

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nipype2pydra-0.3.3.tar.gz (56.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nipype2pydra-0.3.3-py3-none-any.whl (71.8 kB view details)

Uploaded Python 3

File details

Details for the file nipype2pydra-0.3.3.tar.gz.

File metadata

  • Download URL: nipype2pydra-0.3.3.tar.gz
  • Upload date:
  • Size: 56.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for nipype2pydra-0.3.3.tar.gz
Algorithm Hash digest
SHA256 4dc1889b179a32b4b2e0497e8ffbbe26c340dda2b4c9c3bc176f7c743dbbc4b8
MD5 b375e7bc1849f2abc40de44e88281fb7
BLAKE2b-256 8afb9c6f02cb6a2bcee33c6cef6b0ae3c160b9ef488cef90fda4242534f35f21

See more details on using hashes here.

File details

Details for the file nipype2pydra-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: nipype2pydra-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 71.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for nipype2pydra-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 be01faf184f750c2ae6831af6b86bfc278690a2f392b4587c9d98010eead2c24
MD5 7df42d2b7f49ab5dea108c91d437e04d
BLAKE2b-256 e29c265121c1f91140f50f3b8bc94c5a6bcdb06a23a1a9b6041ccb4ea451f434

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.0

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.5

2 files

0.3.4

2 files

This release

0.3.3 This release

2 files

0.3.2

2 files

0.2.2

2 files

0.2.1

2 files

0.2

2 files

0.1

2 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