diff --git a/nipype/interfaces/ants/legacy.py b/nipype/interfaces/ants/legacy.py
new file mode 100644
index 000000000..0cc8b7e86
--- /dev/null
+++ b/nipype/interfaces/ants/legacy.py
@@ -0,0 +1,372 @@
+# -*- coding: utf-8 -*-
+"""ANTS Legacy Interfaces
+
+These interfaces are for programs that have been deprecated by ANTs, but
+are preserved for backwards compatibility.
+"""
+
+from builtins import range
+
+import os
+from glob import glob
+
+from .base import ANTSCommand, ANTSCommandInputSpec
+from ..base import TraitedSpec, File, traits, isdefined, OutputMultiPath
+from ...utils.filemanip import split_filename
+
+
+class antsIntroductionInputSpec(ANTSCommandInputSpec):
+    dimension = traits.Enum(
+        3,
+        2,
+        argstr="-d %d",
+        usedefault=True,
+        desc="image dimension (2 or 3)",
+        position=1,
+    )
+    reference_image = File(
+        exists=True,
+        argstr="-r %s",
+        desc="template file to warp to",
+        mandatory=True,
+        copyfile=True,
+    )
+    input_image = File(
+        exists=True,
+        argstr="-i %s",
+        desc="input image to warp to template",
+        mandatory=True,
+        copyfile=False,
+    )
+    force_proceed = traits.Bool(
+        argstr="-f 1",
+        desc=("force script to proceed even if headers " "may be incompatible"),
+    )
+    inverse_warp_template_labels = traits.Bool(
+        argstr="-l",
+        desc=(
+            "Applies inverse warp to the template labels "
+            "to estimate label positions in target space (use "
+            "for template-based segmentation)"
+        ),
+    )
+    max_iterations = traits.List(
+        traits.Int,
+        argstr="-m %s",
+        sep="x",
+        desc=(
+            "maximum number of iterations (must be "
+            "list of integers in the form [J,K,L...]: "
+            "J = coarsest resolution iterations, K = "
+            "middle resolution interations, L = fine "
+            "resolution iterations"
+        ),
+    )
+    bias_field_correction = traits.Bool(
+        argstr="-n 1", desc=("Applies bias field correction to moving " "image")
+    )
+    similarity_metric = traits.Enum(
+        "PR",
+        "CC",
+        "MI",
+        "MSQ",
+        argstr="-s %s",
+        desc=(
+            "Type of similartiy metric used for registration "
+            "(CC = cross correlation, MI = mutual information, "
+            "PR = probability mapping, MSQ = mean square difference)"
+        ),
+    )
+    transformation_model = traits.Enum(
+        "GR",
+        "EL",
+        "SY",
+        "S2",
+        "EX",
+        "DD",
+        "RI",
+        "RA",
+        argstr="-t %s",
+        usedefault=True,
+        desc=(
+            "Type of transofmration model used for registration "
+            "(EL = elastic transformation model, SY = SyN with time, "
+            "arbitrary number of time points, S2 =  SyN with time "
+            "optimized for 2 time points, GR = greedy SyN, EX = "
+            "exponential, DD = diffeomorphic demons style exponential "
+            "mapping, RI = purely rigid, RA = affine rigid"
+        ),
+    )
+    out_prefix = traits.Str(
+        "ants_",
+        argstr="-o %s",
+        usedefault=True,
+        desc=("Prefix that is prepended to all output " "files (default = ants_)"),
+    )
+    quality_check = traits.Bool(
+        argstr="-q 1", desc="Perform a quality check of the result"
+    )
+
+
+class antsIntroductionOutputSpec(TraitedSpec):
+    affine_transformation = File(exists=True, desc="affine (prefix_Affine.txt)")
+    warp_field = File(exists=True, desc="warp field (prefix_Warp.nii)")
+    inverse_warp_field = File(
+        exists=True, desc="inverse warp field (prefix_InverseWarp.nii)"
+    )
+    input_file = File(exists=True, desc="input image (prefix_repaired.nii)")
+    output_file = File(exists=True, desc="output image (prefix_deformed.nii)")
+
+
+class antsIntroduction(ANTSCommand):
+    """Uses ANTS to generate matrices to warp data from one space to another.
+
+    Examples
+    --------
+
+    >>> from nipype.interfaces.ants.legacy import antsIntroduction
+    >>> warp = antsIntroduction()
+    >>> warp.inputs.reference_image = 'Template_6.nii'
+    >>> warp.inputs.input_image = 'structural.nii'
+    >>> warp.inputs.max_iterations = [30,90,20]
+    >>> warp.cmdline
+    'antsIntroduction.sh -d 3 -i structural.nii -m 30x90x20 -o ants_ -r Template_6.nii -t GR'
+
+    """
+
+    _cmd = "antsIntroduction.sh"
+    input_spec = antsIntroductionInputSpec
+    output_spec = antsIntroductionOutputSpec
+
+    def _list_outputs(self):
+        outputs = self._outputs().get()
+        transmodel = self.inputs.transformation_model
+
+        # When transform is set as 'RI'/'RA', wrap fields should not be expected
+        # The default transformation is GR, which outputs the wrap fields
+        if not isdefined(transmodel) or (
+            isdefined(transmodel) and transmodel not in ["RI", "RA"]
+        ):
+            outputs["warp_field"] = os.path.join(
+                os.getcwd(), self.inputs.out_prefix + "Warp.nii.gz"
+            )
+            outputs["inverse_warp_field"] = os.path.join(
+                os.getcwd(), self.inputs.out_prefix + "InverseWarp.nii.gz"
+            )
+
+        outputs["affine_transformation"] = os.path.join(
+            os.getcwd(), self.inputs.out_prefix + "Affine.txt"
+        )
+        outputs["input_file"] = os.path.join(
+            os.getcwd(), self.inputs.out_prefix + "repaired.nii.gz"
+        )
+        outputs["output_file"] = os.path.join(
+            os.getcwd(), self.inputs.out_prefix + "deformed.nii.gz"
+        )
+
+        return outputs
+
+
+# How do we make a pass through so that GenWarpFields is just an alias for  antsIntroduction ?
+
+
+class GenWarpFields(antsIntroduction):
+    pass
+
+
+class buildtemplateparallelInputSpec(ANTSCommandInputSpec):
+    dimension = traits.Enum(
+        3,
+        2,
+        4,
+        argstr="-d %d",
+        usedefault=True,
+        desc="image dimension (2, 3 or 4)",
+        position=1,
+    )
+    out_prefix = traits.Str(
+        "antsTMPL_",
+        argstr="-o %s",
+        usedefault=True,
+        desc=("Prefix that is prepended to all output " "files (default = antsTMPL_)"),
+    )
+    in_files = traits.List(
+        File(exists=True),
+        mandatory=True,
+        desc="list of images to generate template from",
+        argstr="%s",
+        position=-1,
+    )
+    parallelization = traits.Enum(
+        0,
+        1,
+        2,
+        argstr="-c %d",
+        usedefault=True,
+        desc=(
+            "control for parallel processing (0 = "
+            "serial, 1 = use PBS, 2 = use PEXEC, 3 = "
+            "use Apple XGrid"
+        ),
+    )
+    gradient_step_size = traits.Float(
+        argstr="-g %f",
+        desc=("smaller magnitude results in " "more cautious steps (default = " ".25)"),
+    )
+    iteration_limit = traits.Int(
+        4, argstr="-i %d", usedefault=True, desc="iterations of template construction"
+    )
+    num_cores = traits.Int(
+        argstr="-j %d",
+        requires=["parallelization"],
+        desc=(
+            "Requires parallelization = 2 (PEXEC). " "Sets number of cpu cores to use"
+        ),
+    )
+    max_iterations = traits.List(
+        traits.Int,
+        argstr="-m %s",
+        sep="x",
+        desc=(
+            "maximum number of iterations (must be "
+            "list of integers in the form [J,K,L...]: "
+            "J = coarsest resolution iterations, K = "
+            "middle resolution interations, L = fine "
+            "resolution iterations"
+        ),
+    )
+    bias_field_correction = traits.Bool(
+        argstr="-n 1", desc=("Applies bias field correction to moving " "image")
+    )
+    rigid_body_registration = traits.Bool(
+        argstr="-r 1",
+        desc=(
+            "registers inputs before creating template "
+            "(useful if no initial template available)"
+        ),
+    )
+    similarity_metric = traits.Enum(
+        "PR",
+        "CC",
+        "MI",
+        "MSQ",
+        argstr="-s %s",
+        desc=(
+            "Type of similartiy metric used for registration "
+            "(CC = cross correlation, MI = mutual information, "
+            "PR = probability mapping, MSQ = mean square difference)"
+        ),
+    )
+    transformation_model = traits.Enum(
+        "GR",
+        "EL",
+        "SY",
+        "S2",
+        "EX",
+        "DD",
+        argstr="-t %s",
+        usedefault=True,
+        desc=(
+            "Type of transofmration model used for registration "
+            "(EL = elastic transformation model, SY = SyN with time, "
+            "arbitrary number of time points, S2 =  SyN with time "
+            "optimized for 2 time points, GR = greedy SyN, EX = "
+            "exponential, DD = diffeomorphic demons style exponential "
+            "mapping"
+        ),
+    )
+    use_first_as_target = traits.Bool(
+        desc=(
+            "uses first volume as target of "
+            "all inputs. When not used, an "
+            "unbiased average image is used "
+            "to start."
+        )
+    )
+
+
+class buildtemplateparallelOutputSpec(TraitedSpec):
+    final_template_file = File(exists=True, desc="final ANTS template")
+    template_files = OutputMultiPath(
+        File(exists=True), desc="Templates from different stages of iteration"
+    )
+    subject_outfiles = OutputMultiPath(
+        File(exists=True),
+        desc=(
+            "Outputs for each input image. Includes warp "
+            "field, inverse warp, Affine, original image "
+            "(repaired) and warped image (deformed)"
+        ),
+    )
+
+
+class buildtemplateparallel(ANTSCommand):
+    """Generate a optimal average template
+
+    .. warning::
+
+      This can take a VERY long time to complete
+
+    Examples
+    --------
+
+    >>> from nipype.interfaces.ants.legacy import buildtemplateparallel
+    >>> tmpl = buildtemplateparallel()
+    >>> tmpl.inputs.in_files = ['T1.nii', 'structural.nii']
+    >>> tmpl.inputs.max_iterations = [30, 90, 20]
+    >>> tmpl.cmdline
+    'buildtemplateparallel.sh -d 3 -i 4 -m 30x90x20 -o antsTMPL_ -c 0 -t GR T1.nii structural.nii'
+
+    """
+
+    _cmd = "buildtemplateparallel.sh"
+    input_spec = buildtemplateparallelInputSpec
+    output_spec = buildtemplateparallelOutputSpec
+
+    def _format_arg(self, opt, spec, val):
+        if opt == "num_cores":
+            if self.inputs.parallelization == 2:
+                return "-j " + str(val)
+            else:
+                return ""
+        if opt == "in_files":
+            if self.inputs.use_first_as_target:
+                start = "-z "
+            else:
+                start = ""
+            return start + " ".join(name for name in val)
+        return super(buildtemplateparallel, self)._format_arg(opt, spec, val)
+
+    def _list_outputs(self):
+        outputs = self._outputs().get()
+        outputs["template_files"] = []
+        for i in range(len(glob(os.path.realpath("*iteration*")))):
+            temp = os.path.realpath(
+                "%s_iteration_%d/%stemplate.nii.gz"
+                % (self.inputs.transformation_model, i, self.inputs.out_prefix)
+            )
+            os.rename(
+                temp,
+                os.path.realpath(
+                    "%s_iteration_%d/%stemplate_i%d.nii.gz"
+                    % (self.inputs.transformation_model, i, self.inputs.out_prefix, i)
+                ),
+            )
+            file_ = "%s_iteration_%d/%stemplate_i%d.nii.gz" % (
+                self.inputs.transformation_model,
+                i,
+                self.inputs.out_prefix,
+                i,
+            )
+
+            outputs["template_files"].append(os.path.realpath(file_))
+            outputs["final_template_file"] = os.path.realpath(
+                "%stemplate.nii.gz" % self.inputs.out_prefix
+            )
+        outputs["subject_outfiles"] = []
+        for filename in self.inputs.in_files:
+            _, base, _ = split_filename(filename)
+            temp = glob(os.path.realpath("%s%s*" % (self.inputs.out_prefix, base)))
+            for file_ in temp:
+                outputs["subject_outfiles"].append(file_)
+        return outputs

antslegacy module
I notice that in the newest version the `nipype.interfaces.ants.legacy` module is missing, and I cannot find a class for `antsIntroduction()` anywhere in the package.

I know that using antsIntroduction is probably not the best idea, in fact I need it for an article recommending against it for preclinical imaging, but I need it for the benchmark. Is ti not coming back, and should I thus depend on older nipype for the article source code?
diff --git a/nipype/interfaces/ants/tests/test_auto_GenWarpFields.py b/nipype/interfaces/ants/tests/test_auto_GenWarpFields.py
new file mode 100644
index 000000000..11fbe56cc
--- /dev/null
+++ b/nipype/interfaces/ants/tests/test_auto_GenWarpFields.py
@@ -0,0 +1,45 @@
+# AUTO-GENERATED by tools/checkspecs.py - DO NOT EDIT
+from ..legacy import GenWarpFields
+
+
+def test_GenWarpFields_inputs():
+    input_map = dict(
+        args=dict(argstr="%s",),
+        bias_field_correction=dict(argstr="-n 1",),
+        dimension=dict(argstr="-d %d", position=1, usedefault=True,),
+        environ=dict(nohash=True, usedefault=True,),
+        force_proceed=dict(argstr="-f 1",),
+        input_image=dict(
+            argstr="-i %s", copyfile=False, extensions=None, mandatory=True,
+        ),
+        inverse_warp_template_labels=dict(argstr="-l",),
+        max_iterations=dict(argstr="-m %s", sep="x",),
+        num_threads=dict(nohash=True, usedefault=True,),
+        out_prefix=dict(argstr="-o %s", usedefault=True,),
+        quality_check=dict(argstr="-q 1",),
+        reference_image=dict(
+            argstr="-r %s", copyfile=True, extensions=None, mandatory=True,
+        ),
+        similarity_metric=dict(argstr="-s %s",),
+        transformation_model=dict(argstr="-t %s", usedefault=True,),
+    )
+    inputs = GenWarpFields.input_spec()
+
+    for key, metadata in list(input_map.items()):
+        for metakey, value in list(metadata.items()):
+            assert getattr(inputs.traits()[key], metakey) == value
+
+
+def test_GenWarpFields_outputs():
+    output_map = dict(
+        affine_transformation=dict(extensions=None,),
+        input_file=dict(extensions=None,),
+        inverse_warp_field=dict(extensions=None,),
+        output_file=dict(extensions=None,),
+        warp_field=dict(extensions=None,),
+    )
+    outputs = GenWarpFields.output_spec()
+
+    for key, metadata in list(output_map.items()):
+        for metakey, value in list(metadata.items()):
+            assert getattr(outputs.traits()[key], metakey) == value
diff --git a/nipype/interfaces/ants/tests/test_auto_antsIntroduction.py b/nipype/interfaces/ants/tests/test_auto_antsIntroduction.py
new file mode 100644
index 000000000..d7950f38b
--- /dev/null
+++ b/nipype/interfaces/ants/tests/test_auto_antsIntroduction.py
@@ -0,0 +1,45 @@
+# AUTO-GENERATED by tools/checkspecs.py - DO NOT EDIT
+from ..legacy import antsIntroduction
+
+
+def test_antsIntroduction_inputs():
+    input_map = dict(
+        args=dict(argstr="%s",),
+        bias_field_correction=dict(argstr="-n 1",),
+        dimension=dict(argstr="-d %d", position=1, usedefault=True,),
+        environ=dict(nohash=True, usedefault=True,),
+        force_proceed=dict(argstr="-f 1",),
+        input_image=dict(
+            argstr="-i %s", copyfile=False, extensions=None, mandatory=True,
+        ),
+        inverse_warp_template_labels=dict(argstr="-l",),
+        max_iterations=dict(argstr="-m %s", sep="x",),
+        num_threads=dict(nohash=True, usedefault=True,),
+        out_prefix=dict(argstr="-o %s", usedefault=True,),
+        quality_check=dict(argstr="-q 1",),
+        reference_image=dict(
+            argstr="-r %s", copyfile=True, extensions=None, mandatory=True,
+        ),
+        similarity_metric=dict(argstr="-s %s",),
+        transformation_model=dict(argstr="-t %s", usedefault=True,),
+    )
+    inputs = antsIntroduction.input_spec()
+
+    for key, metadata in list(input_map.items()):
+        for metakey, value in list(metadata.items()):
+            assert getattr(inputs.traits()[key], metakey) == value
+
+
+def test_antsIntroduction_outputs():
+    output_map = dict(
+        affine_transformation=dict(extensions=None,),
+        input_file=dict(extensions=None,),
+        inverse_warp_field=dict(extensions=None,),
+        output_file=dict(extensions=None,),
+        warp_field=dict(extensions=None,),
+    )
+    outputs = antsIntroduction.output_spec()
+
+    for key, metadata in list(output_map.items()):
+        for metakey, value in list(metadata.items()):
+            assert getattr(outputs.traits()[key], metakey) == value
diff --git a/nipype/interfaces/ants/tests/test_auto_buildtemplateparallel.py b/nipype/interfaces/ants/tests/test_auto_buildtemplateparallel.py
new file mode 100644
index 000000000..35b225949
--- /dev/null
+++ b/nipype/interfaces/ants/tests/test_auto_buildtemplateparallel.py
@@ -0,0 +1,41 @@
+# AUTO-GENERATED by tools/checkspecs.py - DO NOT EDIT
+from ..legacy import buildtemplateparallel
+
+
+def test_buildtemplateparallel_inputs():
+    input_map = dict(
+        args=dict(argstr="%s",),
+        bias_field_correction=dict(argstr="-n 1",),
+        dimension=dict(argstr="-d %d", position=1, usedefault=True,),
+        environ=dict(nohash=True, usedefault=True,),
+        gradient_step_size=dict(argstr="-g %f",),
+        in_files=dict(argstr="%s", mandatory=True, position=-1,),
+        iteration_limit=dict(argstr="-i %d", usedefault=True,),
+        max_iterations=dict(argstr="-m %s", sep="x",),
+        num_cores=dict(argstr="-j %d", requires=["parallelization"],),
+        num_threads=dict(nohash=True, usedefault=True,),
+        out_prefix=dict(argstr="-o %s", usedefault=True,),
+        parallelization=dict(argstr="-c %d", usedefault=True,),
+        rigid_body_registration=dict(argstr="-r 1",),
+        similarity_metric=dict(argstr="-s %s",),
+        transformation_model=dict(argstr="-t %s", usedefault=True,),
+        use_first_as_target=dict(),
+    )
+    inputs = buildtemplateparallel.input_spec()
+
+    for key, metadata in list(input_map.items()):
+        for metakey, value in list(metadata.items()):
+            assert getattr(inputs.traits()[key], metakey) == value
+
+
+def test_buildtemplateparallel_outputs():
+    output_map = dict(
+        final_template_file=dict(extensions=None,),
+        subject_outfiles=dict(),
+        template_files=dict(),
+    )
+    outputs = buildtemplateparallel.output_spec()
+
+    for key, metadata in list(output_map.items()):
+        for metakey, value in list(metadata.items()):
+            assert getattr(outputs.traits()[key], metakey) == value

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio
apt-get update apt-get install -y gcc
3.7
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.13
attrs==24.2.0
Babel==2.14.0
backcall==0.2.0
beautifulsoup4==4.13.3
black==23.3.0
bleach==6.0.0
certifi @ file:///croot/certifi_1671487769961/work/certifi
charset-normalizer==3.4.1
ci-info==0.3.0
click==8.1.8
codecov==2.1.13
coverage==4.5.4
cycler==0.11.0
decorator==5.1.1
defusedxml==0.7.1
dipy==1.7.0
docutils==0.19
entrypoints==0.4
etelemetry==0.3.1
exceptiongroup==1.2.2
execnet==2.0.2
fastjsonschema==2.21.1
filelock==3.12.2
fonttools==4.38.0
h5py==3.8.0
idna==3.10
imagesize==1.4.1
importlib-metadata==4.13.0
importlib-resources==5.12.0
iniconfig==2.0.0
ipython==7.34.0
isodate==0.6.1
jedi==0.19.2
Jinja2==3.1.6
jsonschema==4.17.3
jupyter_client==7.4.9
jupyter_core==4.12.0
jupyterlab-pygments==0.2.2
kiwisolver==1.4.5
lxml==5.3.1
MarkupSafe==2.1.5
matplotlib==3.5.3
matplotlib-inline==0.1.6
mistune==3.0.2
mypy-extensions==1.0.0
nbclient==0.7.4
nbconvert==7.6.0
nbformat==5.8.0
nbsphinx==0.9.7
nest-asyncio==1.6.0
networkx==2.6.3
nibabel==4.0.2
-e git+https://github.com/nipy/nipype.git@4c48a185e4d190071f78a6766ca34c71ff61e10f#egg=nipype
numpy==1.21.6
packaging==24.0
pandocfilters==1.5.1
parso==0.8.4
pathspec==0.11.2
pbr==6.1.1
pexpect==4.9.0
pickleshare==0.7.5
Pillow==9.5.0
pkgutil_resolve_name==1.3.10
platformdirs==4.0.0
pluggy==1.2.0
pockets==0.9.1
prompt_toolkit==3.0.48
prov==2.0.1
ptyprocess==0.7.0
pydot==2.0.0
pydotplus==2.0.2
Pygments==2.17.2
pyparsing==3.1.4
pyrsistent==0.19.3
pytest==7.4.4
pytest-asyncio==0.21.2
pytest-cov==2.10.1
pytest-env==1.0.1
pytest-mock==3.11.1
pytest-timeout==2.3.1
pytest-xdist==3.5.0
python-dateutil==2.9.0.post0
pytz==2025.2
pyzmq==26.2.1
rdflib==6.3.2
requests==2.31.0
scipy==1.7.3
simplejson==3.20.1
six==1.17.0
snowballstemmer==2.2.0
soupsieve==2.4.1
Sphinx==5.3.0
sphinx-argparse==0.4.0
sphinxcontrib-apidoc==0.3.0
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-napoleon==0.7
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
tinycss2==1.2.1
tomli==2.0.1
tornado==6.2
tqdm==4.67.1
traitlets==5.9.0
traits==6.4.3
typed-ast==1.5.5
typing_extensions==4.7.1
urllib3==2.0.7
wcwidth==0.2.13
webencodings==0.5.1
zipp==3.15.0

name: nipype
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.13
      - attrs==24.2.0
      - babel==2.14.0
      - backcall==0.2.0
      - beautifulsoup4==4.13.3
      - black==23.3.0
      - bleach==6.0.0
      - charset-normalizer==3.4.1
      - ci-info==0.3.0
      - click==8.1.8
      - codecov==2.1.13
      - coverage==4.5.4
      - cycler==0.11.0
      - decorator==5.1.1
      - defusedxml==0.7.1
      - dipy==1.7.0
      - docutils==0.19
      - entrypoints==0.4
      - etelemetry==0.3.1
      - exceptiongroup==1.2.2
      - execnet==2.0.2
      - fastjsonschema==2.21.1
      - filelock==3.12.2
      - fonttools==4.38.0
      - h5py==3.8.0
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==4.13.0
      - importlib-resources==5.12.0
      - iniconfig==2.0.0
      - ipython==7.34.0
      - isodate==0.6.1
      - jedi==0.19.2
      - jinja2==3.1.6
      - jsonschema==4.17.3
      - jupyter-client==7.4.9
      - jupyter-core==4.12.0
      - jupyterlab-pygments==0.2.2
      - kiwisolver==1.4.5
      - lxml==5.3.1
      - markupsafe==2.1.5
      - matplotlib==3.5.3
      - matplotlib-inline==0.1.6
      - mistune==3.0.2
      - mypy-extensions==1.0.0
      - nbclient==0.7.4
      - nbconvert==7.6.0
      - nbformat==5.8.0
      - nbsphinx==0.9.7
      - nest-asyncio==1.6.0
      - networkx==2.6.3
      - nibabel==4.0.2
      - numpy==1.21.6
      - packaging==24.0
      - pandocfilters==1.5.1
      - parso==0.8.4
      - pathspec==0.11.2
      - pbr==6.1.1
      - pexpect==4.9.0
      - pickleshare==0.7.5
      - pillow==9.5.0
      - pkgutil-resolve-name==1.3.10
      - platformdirs==4.0.0
      - pluggy==1.2.0
      - pockets==0.9.1
      - prompt-toolkit==3.0.48
      - prov==2.0.1
      - ptyprocess==0.7.0
      - pydot==2.0.0
      - pydotplus==2.0.2
      - pygments==2.17.2
      - pyparsing==3.1.4
      - pyrsistent==0.19.3
      - pytest==7.4.4
      - pytest-asyncio==0.21.2
      - pytest-cov==2.10.1
      - pytest-env==1.0.1
      - pytest-mock==3.11.1
      - pytest-timeout==2.3.1
      - pytest-xdist==3.5.0
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - pyzmq==26.2.1
      - rdflib==6.3.2
      - requests==2.31.0
      - scipy==1.7.3
      - simplejson==3.20.1
      - six==1.17.0
      - snowballstemmer==2.2.0
      - soupsieve==2.4.1
      - sphinx==5.3.0
      - sphinx-argparse==0.4.0
      - sphinxcontrib-apidoc==0.3.0
      - sphinxcontrib-applehelp==1.0.2
      - sphinxcontrib-devhelp==1.0.2
      - sphinxcontrib-htmlhelp==2.0.0
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-napoleon==0.7
      - sphinxcontrib-qthelp==1.0.3
      - sphinxcontrib-serializinghtml==1.1.5
      - tinycss2==1.2.1
      - tomli==2.0.1
      - tornado==6.2
      - tqdm==4.67.1
      - traitlets==5.9.0
      - traits==6.4.3
      - typed-ast==1.5.5
      - typing-extensions==4.7.1
      - urllib3==2.0.7
      - wcwidth==0.2.13
      - webencodings==0.5.1
      - zipp==3.15.0
prefix: /opt/conda/envs/nipype

nipype/interfaces/ants/tests/test_auto_GenWarpFields.py::test_GenWarpFields_inputs nipype/interfaces/ants/tests/test_auto_GenWarpFields.py::test_GenWarpFields_outputs nipype/interfaces/ants/tests/test_auto_antsIntroduction.py::test_antsIntroduction_inputs nipype/interfaces/ants/tests/test_auto_antsIntroduction.py::test_antsIntroduction_outputs nipype/interfaces/ants/tests/test_auto_buildtemplateparallel.py::test_buildtemplateparallel_inputs nipype/interfaces/ants/tests/test_auto_buildtemplateparallel.py::test_buildtemplateparallel_outputs
nipype/interfaces/ants/legacy.py
nipype/interfaces/ants/legacy.py