Commit ab2b407
authored
feat: add Tofwerk pFIB-ToF-SIMS HDF5 extractor and preview generator (#90)
* feat: add Tofwerk pFIB-ToF-SIMS HDF5 extractor and preview generator (#89)
- Add TofwerkPfibExtractor (priority 150) with content sniffing for
fibTOF FIB-SIMS HDF5 files; extracts creation time, FIB parameters
(voltage, current, FOV, pixel size), mass range, ion mode, chamber
pressure, and file variant (raw vs. opened)
- Add TofwerkPfibPreviewGenerator with composite layout: FIB SE image,
TIC map, depth profile/RGB composite, and annotated sum spectrum
- Add synthetic HDF5 test fixture generator and 30 unit tests
- Add PII-stripped real pFIB-ToF-SIMS files to test_record_files.tar.gz
(Computer ID, FileSignature, and DataPath anonymized); update record
builder tests to cover the new Tofwerk-pFIB-TOFSIMS instrument session
* docs: add Tofwerk pFIB-ToF-SIMS to supported formats documentation
Add quick reference table entry, full format section (file format
detection, two file variants, extracted metadata fields, preview
generator layouts), and API reference link for the new
TofwerkPfibExtractor and TofwerkPfibPreviewGenerator plugins.
* test: add coverage for uncovered branches; fix RGB/depth-profile bugs
- Add 11 new tests covering exception paths, edge cases in
_norm_channel, _read_attr_scalar, _depth_plot_style,
_tic_display_limits, _parse_creation_time, and _extract_fib_params
- Fix IndexError in RGB channel padding when no peaks exceed min_mass:
pre-compute _zero_channel so the padding loop has a valid fallback
when rgb_channels is still empty
- Fix ValueError in depth-profile y-limit calculation when an opened
file has peaks but none above min_mass (top_idx empty): fall back to
depth_prof.sum(axis=1) instead of concatenating an empty list
* refactor(tofwerk): use Title Case display names, rename variant, add integration test, fix warnings
- Rename extension keys to Title Case: FIB Hardware, Pixel Size,
Number of Peaks, Ion Mode, FibLys GUI Version, TofDAQ Version,
Chamber Pressure, File Variant, Mass Range Minimum/Maximum;
keep standard EM Glossary snake_case keys unchanged
- Rename file variant value "opened" to "pre-processed"
- Increase preview output resolution to 1500x1500
- Guard ax.legend() calls to only fire when labeled artists exist,
eliminating UserWarnings in zero-peaks-above-min-mass test case
- Add tofwerk_integration_record fixture and test_tofwerk_pfib_record
integration test for end-to-end record build and CDCS upload validation
- Update all unit test assertions to match new key/value names
* docs(tofwerk): update extractors.md for renamed variant and increased preview resolution
- Replace "opened/processed" and "Opened" with "pre-processed" throughout
- Update File Variant key names from snake_case to "File Variant" (Title Case)
- Change preview size from 500×500 to 1500×1500 px1 parent 309b6f4 commit ab2b407
18 files changed
Lines changed: 2132 additions & 15 deletions
File tree
- docs
- changes
- user_guide
- nexusLIMS/extractors/plugins
- preview_generators
- tests
- fixtures
- integration
- unit
- files
- fixtures
- test_extractors
- test_record_builder
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
| 86 | + | |
86 | 87 | | |
87 | 88 | | |
88 | 89 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
386 | 387 | | |
387 | 388 | | |
388 | 389 | | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
389 | 482 | | |
390 | 483 | | |
391 | 484 | | |
| |||
865 | 958 | | |
866 | 959 | | |
867 | 960 | | |
| 961 | + | |
868 | 962 | | |
869 | 963 | | |
870 | 964 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
12 | 15 | | |
13 | 16 | | |
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
| 20 | + | |
17 | 21 | | |
0 commit comments