# how to display 2D time series such as Cine in 3D Slicer

**URL:** <https://discourse.slicer.org/t/how-to-display-2d-time-series-such-as-cine-in-3d-slicer/42787>\
**Category:** Support\
**Created:** [May 4, 2025, 6:12pm UTC](https://discourse.slicer.org/t/how-to-display-2d-time-series-such-as-cine-in-3d-slicer/42787 "2025-05-04T18:12:24Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Wei\_Sun](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/wei_sun/32/80132_2.png) [@Wei\_Sun](https://discourse.slicer.org/u/Wei_Sun)\
**Post date:** [May 4, 2025, 6:12pm UTC](https://discourse.slicer.org/t/how-to-display-2d-time-series-such-as-cine-in-3d-slicer/42787/1 "2025-05-04T18:12:24Z")

</div>

Hi There,

Is there a way to display 2D time series such as cine in 3D Slicer? I converted one 2D time series with 30 images into nii.gz but can only display one image in 3D Slicer.

Thanks,  
Wei

---

<div class="post-metadata">

**Author:** ![ungi](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ungi/32/78573_2.png) [@ungi](https://discourse.slicer.org/u/ungi)\
**Post date:** [May 5, 2025, 3:24pm UTC](https://discourse.slicer.org/t/how-to-display-2d-time-series-such-as-cine-in-3d-slicer/42787/2 "2025-05-05T15:24:23Z")

</div>

Hi, the Sequences module was developed for time series. I’ve been using it for time series of 2D ultrasound successfully. There is not a lot of support for importing different file formats as sequences, so if you have a video file, you may need to implement the importing process. And once you have the data in Slicer, it’s easiest to just save it as a Slicer scene. But some DICOM format time series already load as sequences, so it’s worth trying before you implement your own importer code.

---

<div class="post-metadata">

**Author:** ![Deep\_Learning](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/deep_learning/32/15345_2.png) [@Deep\_Learning](https://discourse.slicer.org/u/Deep_Learning)\
**Post date:** [May 5, 2025, 7:34pm UTC](https://discourse.slicer.org/t/how-to-display-2d-time-series-such-as-cine-in-3d-slicer/42787/3 "2025-05-05T19:34:04Z")

</div>

you might need to save each timepoint as seperate nii.gz’s to load it into a sequence.

---

<div class="post-metadata">

**Author:** ![Wei\_Sun](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/wei_sun/32/80132_2.png) [@Wei\_Sun](https://discourse.slicer.org/u/Wei_Sun)\
**Post date:** [May 6, 2025, 3:35am UTC](https://discourse.slicer.org/t/how-to-display-2d-time-series-such-as-cine-in-3d-slicer/42787/4 "2025-05-06T03:35:36Z")

</div>

I tried it but it did not work for my data. Thank you for your suggestion!

---

<div class="post-metadata">

**Author:** ![cpinter](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/cpinter/32/7995_2.png) [@cpinter](https://discourse.slicer.org/u/cpinter)\
**Post date:** [May 6, 2025, 11:32am UTC](https://discourse.slicer.org/t/how-to-display-2d-time-series-such-as-cine-in-3d-slicer/42787/5 "2025-05-06T11:32:52Z")

</div>

To be able to load a time series directly to Slicer, a specially formatted NRRD is needed, see the CTP Cardio file for example (you can load it using the Sample Data module and the file will be in `c:\Users\[You]\AppData\Local\slicer.org\Slicer\cache\SlicerIO`

However, the best would probably be what @ungi suggests. You can make a sequence from a set of images with a bit of scripting. This is a script I created to read in a set of transforms into a sequence. You need to modify it just a bit to load the images into a sequence.

```auto
# Create a sequence node
sequenceNode = slicer.mrmlScene.AddNewNodeByClass("vtkMRMLSequenceNode", "GridTransforms")
sequenceNode.SetIndexName("time")
sequenceNode.SetIndexUnit("")
# Get all transform files in the directory
transformFiles = glob.glob(f"{transformFilesPath}/Transform_*.h5")
transformFiles.sort() # Sort to ensure correct order

# Process each file
for frameIndex, filePath in enumerate(transformFiles):
  # Load the grid transform from HDF5
  transformNode = slicer.util.loadTransform(filePath)
  if transformNode is None:
    print(f"Failed to load transform from {filePath}")
    continue
  # Add the transform node to the sequence
  sequenceNode.SetDataNodeAtValue(transformNode, str(frameIndex))
  slicer.mrmlScene.RemoveNode(transformNode)

# Create a sequence browser node
browserNode = slicer.mrmlScene.AddNewNodeByClass("vtkMRMLSequenceBrowserNode", "GridTransformsBrowser")
browserNode.AddSynchronizedSequenceNode(sequenceNode.GetID())

```
