Skip to content

Add Zeiss Orion/Fibics helium ion microscope TIFF extractor#19

Merged
jat255 merged 3 commits intomainfrom
feature/zeiss-orion-fibics-extractor
Dec 18, 2025
Merged

Add Zeiss Orion/Fibics helium ion microscope TIFF extractor#19
jat255 merged 3 commits intomainfrom
feature/zeiss-orion-fibics-extractor

Conversation

@jat255
Copy link
Copy Markdown
Contributor

@jat255 jat255 commented Dec 17, 2025

Summary

Implements support for extracting metadata from Zeiss Orion and Fibics helium ion microscope TIFF files.

Changes

  • Added plugin for automatic variant detection and metadata extraction
  • Comprehensive test suite with 30 tests covering both variants and error handling
  • Test data includes real sample files from both Zeiss and Fibics systems

Closes

Resolves #16

Testing

All tests passing:

  • ./scripts/run_tests.sh
  • ./scripts/run_lint.sh

Add OrionFibicsTiffExtractor to support metadata extraction from Zeiss Orion
and Fibics helium ion microscope TIFF files with embedded XML metadata.

Features:
- Automatic variant detection for Zeiss (tag 65000) and Fibics (tag 51023) formats
- Comprehensive metadata extraction: beam parameters, stage position, detector
  settings, scan parameters, optical settings, and system information
- Priority 150 ensures Orion files are checked before generic QuantaTiffExtractor
- Robust error handling with graceful degradation on parsing errors
- Unit conversions (V to kV, ns to μs) for standardized output

Test coverage:
- 30 comprehensive unit tests (all passing)
- Real sample file extraction with detailed assertions
- Error handling and edge case coverage
- Variant detection and content sniffing validation
- Unit conversion verification

Files:
- nexusLIMS/extractors/plugins/orion_HIM_tif.py: Main extractor implementation
- tests/unit/test_extractors/test_orion_HIM.py: Complete test suite
- tests/unit/files: Test data (Zeiss and Fibics sample files, metadata reference)
- tests/unit/conftest.py: Test fixtures for Orion TIFF files
- tests/unit/utils.py: Archive extraction mapping for test files
- docs/changes/16.feature.md: Changelog entry
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Dec 17, 2025

📚 Documentation Preview

The documentation for this PR has been deployed to:

This preview will be updated on each push to this PR.

@codecov
Copy link
Copy Markdown

codecov Bot commented Dec 17, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

The deploy-pr-docs workflow was accidentally committing the temporary
pr-source checkout directory as a git submodule due to the wildcard
pattern 'pr-*/' matching both PR preview directories (pr-{NUMBER}/)
and the pr-source checkout directory.

Changes:
- Removed the dangerous 'git add -A pr-*/' line (was redundant)
- Added explicit cleanup of pr-source directory before committing
- Added comment explaining why we don't use the pr-* wildcard

This fixes the GitHub Actions error:
"fatal: No url found for submodule path 'pr-source' in .gitmodules"
- Add orion-zeiss_dataZeroed.tif and orion-fibics_dataZeroed.tif to test_record_files.tar.gz under Titan_TEM/researcher_a/project_alpha/20181113/ with timestamps matching test fixture date
- Update extracted_test_files fixture to locate and expose Orion files via orion_files dictionary
- Disable macOS extended attributes (COPYFILE_DISABLE) during archive creation to prevent dotfiles
- Add documentation to test_complete_record_building_workflow() indicating the example record contains files from multiple instruments (Titan TEM and Orion HIM) and clarifying that instrument-specific parsing is not validated at integration test level
@jat255 jat255 merged commit f6c3073 into main Dec 18, 2025
10 checks passed
github-actions Bot added a commit that referenced this pull request Dec 18, 2025
@jat255 jat255 deleted the feature/zeiss-orion-fibics-extractor branch December 18, 2025 17:17
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 Extractor Plugin for Zeiss Orion/Fibics TIFF Images

1 participant