Skip to content

Claude/dev v1.5.0 lp im6#94

Merged
HenriqueCSJ merged 9 commits into
mainfrom
claude/dev-v1.5.0-lpIm6
Jan 10, 2026
Merged

Claude/dev v1.5.0 lp im6#94
HenriqueCSJ merged 9 commits into
mainfrom
claude/dev-v1.5.0-lpIm6

Conversation

@HenriqueCSJ

Copy link
Copy Markdown
Owner

Summary

This release introduces Multi-Structure Batch Analysis - analyze multiple structures from a single XYZ/CIF file.

New Features

  • Batch Processing - Multi-structure XYZ/CIF support
  • Batch Summary Table - Visual overview of all structures
  • Batch PDF Reports - Per-structure details with all metrics
  • CSV Export - Wide summary or detailed results
  • TrackballControls - Unrestricted 360° 3D rotation
  • Centralized Metadata - src/constants/appMetadata.js

Bug Fixes

  • Fixed Cannot read properties of undefined (reading 'x') crash
  • Fixed batch report missing coordinating atoms/quality metrics

Stats

24 files changed, +3,819/-187 lines

Test plan

  • Single-structure XYZ analysis
  • Multi-structure batch analysis
  • Batch PDF report generation
  • CSV exports
  • 3D rotation
  • Version displays 1.5.0

Major Features:
- Unified parseInput API supporting XYZ (single/multi-frame) and CIF formats
- Auto-detection of file format from extension and content
- Multi-frame XYZ trajectory parsing with per-frame structure IDs
- Basic CIF parsing with fractional-to-Cartesian coordinate conversion
- Batch mode UI with structure selector and summary table
- "Analyze All Structures" batch processing with progress tracking
- Manual override panel for metal center, radius, and target CN
- Per-structure override storage with "apply to all" option

Report & Export Enhancements:
- Batch PDF report with summary table and per-structure detail sections
- Wide summary CSV (one row per structure, best match only)
- Long detailed CSV (one row per structure/geometry pair, all results)
- All reports now include ALL geometries, not just best match

UI/UX Improvements:
- File upload now accepts .xyz and .cif files
- Batch mode indicator shows when multiple structures detected
- Structure ID displayed in results panel and coordination summary
- Selected structure highlighted in batch summary table
- Scene key-based 3D re-rendering for reliable visualization updates

State Management:
- Unified Structure data model (src/types/structureTypes.js)
- useBatchAnalysis hook for batch state orchestration
- State properly resets on new file upload
- Structure overrides preserved during analysis

Testing:
- 23 new unit tests for parseInput API
- TESTING.md manual E2E checklist
- Regression checklist for known issues

Technical Notes:
- CIF parsing uses basic implementation (gemmi-wasm can be added later)
- Fractional coordinates converted using standard crystallographic matrix
- STRICT_MODE config available for parse error handling behavior
…override panel

- Remove ManualOverridePanel component (controls integrated into AnalysisControls)
- Add BatchSummaryTable component for batch results display with interactive selection
- Make Report/CSV buttons context-aware (auto-switch between batch and single mode)
- Add "Apply to All" buttons in AnalysisControls for batch mode
- Position batch summary table below action buttons, closer to 3D viewer
- Update CoordinationSummary to include "Analyze All Structures" button
- Remove duplicate Batch Analysis Summary from BatchModePanel (now only in BatchSummaryTable)
- Fix CoordinationSummary crash when atoms[selectedMetal] is undefined
- Fix 3D viewer misalignment by using sceneKey in useThreeScene dependency array
- Enhance batch PDF report with full details for each structure:
  - Analysis Summary (metal, CN, radius, geometry, ligands)
  - Quality Metrics (overall score, angular distortion, bond uniformity, RMSD)
  - Bond Statistics (mean/stddev/range, angles)
  - All geometry comparisons table
- Remove rotation limits in OrbitControls for full 360° rotation freedom
- Increase zoom range (minDistance: 3, maxDistance: 60)
- Enable screen space panning for better interaction
- Add smooth rotation/zoom/pan speed settings

Color scheme improvements in BatchSummaryTable:
- Selected rows now use cohesive blue palette throughout
- All text in selected row uses consistent #1e40af blue
- Quality badge in selected row uses blue background/text
- Non-selected rows retain semantic colors (green/yellow/red)
- Added hover effect for non-selected rows
…ch report

3D Viewer:
- Switch from OrbitControls to TrackballControls for unrestricted 360° rotation
- No more gimbal lock or rotation limits
- Manual auto-rotation implementation for TrackballControls
- Smooth damping with dynamicDampingFactor

BatchSummaryTable color scheme:
- Softer blue gradient for selected rows (#f0f7ff to #e8f2ff)
- Lighter blue left border (#60a5fa)
- Muted text color (#1e3a5f) for better readability
- Softer badge backgrounds with reduced opacity

Batch PDF Report:
- Add Coordinating Atoms section for each structure
- Shows element, distance, and coordinates for each ligand
- Added null checks in useThreeScene.js to prevent 'x' undefined crash
- Fixed batch analysis to store coordAtoms for complete report generation
- Enhanced batch PDF report with all sections from single report:
  - Q-Shape analysis overview info box per structure
  - Ligand Groups Analysis section
  - Full header with citation info
  - Complete footer with university info
- Report now shows reference geometry counts per CN
- Updated package.json, CITATION.cff, .zenodo.json to v1.5.0
- Updated README.md with v1.5.0 badge and batch analysis features
- Enhanced CHANGELOG.md with multi-structure batch analysis section
- Updated all version references in source files (reportGenerator, workers)
- Added batch analysis workflow documentation to README
- Created src/constants/appMetadata.js with APP_VERSION, BUILD_DATE,
  APP_FULL_NAME, CITATION object, and helper functions
- Updated App.js to use centralized constants for header display
- Updated reportGenerator.js to use constants in all PDF reports
- Single source of truth for version info across entire codebase
@HenriqueCSJ HenriqueCSJ merged commit 6ffe7b0 into main Jan 10, 2026
1 of 3 checks passed
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.

2 participants