Add Zeiss Orion/Fibics helium ion microscope TIFF extractor#19
Merged
Conversation
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
Contributor
📚 Documentation PreviewThe documentation for this PR has been deployed to:
This preview will be updated on each push to this PR. |
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements support for extracting metadata from Zeiss Orion and Fibics helium ion microscope TIFF files.
Changes
Closes
Resolves #16
Testing
All tests passing:
./scripts/run_tests.sh./scripts/run_lint.sh