Repository navigation
v2.4.0
CHANGELOG
v2.1.0 (2025-04-30)
Chores
- Add runtime analysis
(1847ea2)
Features
- Add runtime comparison script
(36775ed)
Refactoring
v2.0.6 (2025-04-29)
Bug Fixes
- Make database more robust for jupyter notebook
(804a8ff)
Chores
Summary This PR significantly improves the aesthetics and user experience of the
uniprot_projection.py example when viewed as a Google Colab notebook. The changes focus on visual
enhancements and interactive elements while maintaining the same functionality. ## Changes - Added
styled section headers with custom backgrounds and borders - Implemented interactive progress bars
for processing steps - Added color-coded status messages with appropriate icons (✅,
Improved error and warning displays with formatted message boxes - Enhanced SVG display with
additional protein information card - Added visual feedback during long-running operations -
Improved configuration display with formatted tables - Added completion banner at the end of
execution - Added professional footer with attribution - Fixed cell structure for proper Colab
execution
Motivation The notebook acts as a demonstration tool for FlatProt functionality. These visual
enhancements make it more professional-looking and easier to follow for users exploring the tool
through Colab. The interactive elements also provide better feedback during execution.
Testing Tested in Google Colab environment to ensure all visual enhancements render correctly and
all functionality remains intact.
- Fix foldseek command test
(b88a168)
Documentation
Refactoring
-
Add forced yes and update UniprotID
(b5ae58d) -
Add library install as well
(c246b8b) -
Change to atomic command
(5731223) -
Fix syntax issue
(d765ea3) -
Improve notebook style
(395975c) -
Make download jupyter compatible
(be416af) -
Pipe yes
(db5a8ce) -
Remove -qq issue
(1385248) -
Remove potentially problematic quiet
(e730e9c) -
Revert to debian non-interactive
(73c0057) -
Shell dssp
(7019339) -
Switch to uv install
(3a3f6cf)
v2.0.5 (2025-04-28)
Bug Fixes
- Refactor DB utils and update examples
(84abd4d)
This PR introduces several improvements to the handling of the alignment database and updates the
chainsaw.py example accordingly. Key Changes: Database Utilities (src/flatprot/utils/database.py):
Refactored DEFAULT_DB_DIR to use platformdirs for a standard, cross-platform data location
(rostlab/flatprot). Updated DEFAULT_DB_URL to point to the correct Zenodo archive
(alignment_db.zip). Added verify=False to the httpx client during download to mitigate potential
SSL certificate verification errors (includes a warning log). Improved the archive extraction
logic in download_database to: Extract to a temporary location. Specifically look for the
alignment_db folder within the archive. Move the contents of alignment_db to the final target
directory. Ignore other files/folders in the archive (like __MACOSX). Adjusted logging levels for
better clarity during download/extraction. Chainsaw Example (examples/chainsaw.py): Updated the
script to use the new flatprot.utils.database.ensure_database_available function to locate or
download the alignment database, removing hardcoded paths. Commented out Colab-specific shell
commands (!pip, !wget, etc.) to resolve linter errors and ensure the file is valid Python syntax.
Added the missing import for ensure_database_available. Motivation: To make the alignment database
download and storage more robust and platform-independent. To resolve issues related to SSL
verification and archive structure during database download. To ensure the example script utilizes
the centralized database handling logic. To fix linter errors in the example script.
Chores
v2.0.4 (2025-04-28)
Bug Fixes
- Documentation updates
(9cd4af7)
v2.0.3 (2025-04-28)
Continuous Integration
v2.0.2 (2025-04-28)
Chores
Automated generation of Jupyter notebooks from example Python scripts. Changes detected in
examples/*.py.
Co-authored-by: t03i t03i@users.noreply.github.com
Continuous Integration
-
Add deps to docs-release
(c4bfb08) -
Add labels permission
(4fb5d23) -
Add repo checkout to finalize-release
(41885a6) -
Update notebook pull request
(d23e6b6) -
Update pull request permissions
(c4ad0dc)
Documentation
- Update README
(ee64954)
v2.0.1 (2025-04-22)
v2.0.0 (2025-04-22)
Bug Fixes
-
Add - to allow for negative coords
(f4df4a0) -
Add connection styles
(771c228) -
Add opacity drawing
(2d54351) -
Better checkpoint usage
(a1f1f0c) -
Connection calculation
(5a6b9ab) -
Dix dssp parsing
(ed3fc37) -
Filter for target db now working
(27b12c6) -
Import issues
(563ba83) -
Improve error handling in alignment and transformation matrix
(466356e) -
Enhanced error handling in the
align_structure_rotationfunction by reintroducing specific
handling forFlatProtError, ensuring consistent logging of error messages. - Added validation
checks in thefrom_arrayandfrom_stringmethods of theTransformationMatrixclass to ensure
input arrays conform to expected dimensions, raising appropriateValueErrorexceptions when
necessary. - Updated docstrings for clarity and compliance with PEP257. -
Improve error handling in SVG rendering process
(f1b310d) -
Wrapped the SVG rendering and saving logic in a try...except block to capture and log errors
during the rendering process. - Added logging for exceptions raised during SVG rendering,
providing clearer context for failures. - Removed the broad try...except block in the annotation
processing to allow errors to propagate, improving error visibility. - Updated docstrings for
clarity and compliance with PEP257. -
Metadata
(bd38488) -
Put params in correct position
(d882b82) -
Resolve alignment loading issues
(a6b62c2) -
Resolve default style not applied
(9b0e275) -
Resolve issues with invalid report
(ed01efc) -
Resolve representative issues
(f0195b5) -
Scop parser excludes discontinous domains
(486937d) -
Scop parsing for negative numbers
(9fcaa2a) -
Short helix coordinate-computation
(5eca824) -
Snakefile again
(4fc8967) -
Snakemake
(02ba248) -
Syntax error
(110a916) -
Update connection tests
(7ea28d0) -
Update db creation
(1912742) -
Update dependencies
(fbce3a7) -
Update pipeline for proper foldseek path
(2e29b7f) -
Update snakemake config
(6ab9152) -
Update tests
(1f93a71) -
Update tests to better connection rendering
(d2ef4d7) -
Update the foldseek rotation to be correct
(47810c7)
Chores
-
Add command scaffold for align
(27f4b92) -
Add fixtures and tests for multi-chain SVG rendering
(ece32bf) -
Introduced new pytest fixtures to create mock structures with two chains for testing. - Added
tests to ensure that connections are not drawn between elements of different chains. - Enhanced
existing tests for rendering elements to improve clarity and consistency. - Updated docstrings for
new fixtures and tests to comply with PEP257. -
Add linter ignore
(bd6315b) -
Add project integration tests
(5a205cc) -
Add scaffold db creation script
(25720d4) -
Add tests for utils
(e0c6e4c) -
Add workflow for notebooks
(523ad8f) -
Fix svg_render test
(8550c3d) -
Fix test attribute
(c4ef6d5) -
Reenable large files
(33f0a6d) -
Update
(818717e)
Code Style
-
Fix cmd formatting
(b3ad38c) -
Fix example formatting
(3bd37cd) -
Improve cli output
(633fbef) -
Update cli description
(af3faaa) -
Update examples
(04a4f91)
Continuous Integration
Documentation
-
Add API documentation
(60d4b24) -
Add example data
(7193627) -
Correct foldseek command
(1a8f833) -
Improve description
(d706a55) -
Update docs to reflect commandline interface
(b6fee15) -
Update documentation
(04e6cca) -
Update documentation for align
(c01345b) -
Update examples
(6a1fe16) -
Update issue templates
(dfa2d55) -
Update Readme and add CoC & Contributing
(6dd9fa3)
Features
-
Add adjacency checks for ResidueRange and ResidueRangeSet
(af0259f) -
Implemented
is_adjacent_tomethod inResidueRangeandResidueRangeSetclasses to determine
adjacency between ranges and coordinates. - Enhanced error handling with TypeError for invalid
comparisons. - Added comprehensive tests for adjacency functionality in
tests/core/test_coordinates.py. - Updated docstrings for clarity and compliance with PEP257. -
Add basic cmd example 3Ftx
(e13ec95) -
Add db download functionality
(6ad7e6e) -
Add domain reporting
(f8d230f) -
Add domain transformation utilities and update examples
(b1c1043) -
Introduced
DomainTransformationclass to encapsulate transformation matrices for specific
protein domains. - Implementedapply_domain_transformations_maskedfunction to apply
transformations using boolean masks, ensuring overlapping domains are handled correctly. - Added
create_domain_aware_scenefunction to generate scenes with elements grouped by domain, improving
spatial arrangement and visualization. - Updated examples to reflect new domain transformation
functionalities and ensure clarity in usage. - Enhanced error handling and logging throughout the
new utilities. - Updated docstrings and added typing annotations to comply with PEP257 standards. -
Add example for overlay and annotations
(de2e0ca) -
Add improved chainsaw example
(3e3cbb1) -
Add initial db pipeline
(d7bb462) -
Add runtime analysis
(4e9ec82) -
Add uniform projection
(4e3f185) -
Enhance SVG rendering with connection point calculations
(fa29171) -
Added
_prepare_render_datamethod toSVGRendererfor pre-calculating 2D coordinates and
connection points for structure elements. - Introduced new utility functions insvg_structure.py
to calculate connection points for coils, helices, and sheets. - Updated drawing functions to
utilize the new connection point calculations. - Improved error handling and logging for data
preparation failures. - Enhanced tests intest_svg_renderer.pyto cover new rendering logic and
connection point assertions. - Updated docstrings for clarity and compliance with PEP257. -
Integrate staging branch updates introducing breaking changes
(#8,
02d2488)
This pull request merges the accumulated features, refactors, and bug fixes from the staging branch
into main. It represents a significant update to the application's core functionality and
structure. Summary of Changes: Integration of various features and improvements developed and
tested on the staging branch. Refactoring of key components to enhance modularity,
maintainability, and performance. Updates to dependencies and build processes. Improvements to
testing infrastructure and documentation.
BREAKING CHANGES: This merge introduces significant breaking changes due to [briefly mention the
reason for the breaking changes, e.g., major API redesign, data model restructuring, CLI command
signature changes]. Compatibility with previous versions deployed from main is broken. Users and
downstream systems will need to adapt to the new interfaces/structures.
Refactoring
-
Add alignment step to commands
(a0abe56) -
Add basic scene tests
(4b6e423) -
Add connections class
(c33d01f) -
Add debug output
(bef3e4b) -
Add error handling to scop parsing
(9dbb2d7) -
Add family-identity alignment mode as default
(ebab00e) -
Add id calculation for annotations
(030904e) -
Add label text to svg
(fe8cf11) -
Add logfiles
(982adf6) -
Add logging output config
(9aad01a) -
Add metadata to db
(3aedb43) -
Add proper group transforms
(4639237) -
Add render tests
(3632b8c) -
Add scene integration tests
(36d7341) -
Add scene_utils for scene creation
(162c61f) -
Add structure id and proper dict iteration
(aa1479a) -
Add tests for core elements
(d3813a3) -
Add vectorized coordinate manipulation to structure
(04664d1) -
Add version
(0864731) -
Adopt stateless architecture and enhance documentation
(#7,
b1afec6)
Refactor to Stateless Architecture and Enhance Documentation
This pull request introduces a significant refactoring of the codebase to adopt a more stateless
architecture. This change aims to improve predictability, testability, and scalability.
Key changes include:
- Stateless Refactoring: Core components have been redesigned to operate without maintaining
internal state where possible. This simplifies the flow of data and reduces potential side
effects. * Extensive Documentation: Added comprehensive docstrings to functions and classes
across the project, adhering to PEP 257 conventions. Updated existing documentation to reflect the
architectural changes. * New Examples: Included several new example scripts in theexamples/
directory to demonstrate the usage of the refactored components and showcase common workflows.
These examples are designed to be easily convertible to Jupyter notebooks using Jupytext.
Review Focus:
- Please review the architectural changes for adherence to stateless principles. * Verify the
clarity and accuracy of the new documentation and examples. * Ensure the refactored code maintains
existing functionality and passes all tests.
This refactor sets a foundation for future development by improving the overall structure and
maintainability of the codebase.
-
Allow both cif and pdb
(e6d6b8d) -
Better 3ftx display
(8e96271) -
Bump test family number
(a827fdc) -
Change db to be ignored per-default
(f377fee) -
Change index off by one issues
(e64ad11) -
Change out to tmp
(118487e) -
Change to secondary_structure_type
(d5bc870) -
Clean up pipeline def
(46db50f) -
Cleanup transformation structure
(3440429) -
Enhance error handling and update annotations
(597ae7f) -
Added
CoordinateCalculationErrorto the core error handling for better clarity in error
propagation. - Updated the__init__.pyfile to include the new error class in the module
exports. - Refactored the annotation tests to improve clarity and ensure proper error handling
during coordinate calculations. - Enhanced existing tests to cover scenarios where annotations
return None or invalid shapes, ensuring robust error reporting. - Updated docstrings across
various files to comply with PEP257 standards. -
Enhance transformation matrix methods and update docstrings
(4a2be7f) -
Refactored the
get_aligned_rotation_databasefunction to improve clarity in rotation matrix
application. - Updated thecalculate_inertia_transformation_matrixfunction's docstring to
better describe the transformation process and return values. - Renamed thecombined_rotation
method tobeforein theTransformationMatrixclass for improved clarity, and added a new
aftermethod for combining transformations. - Enhanced theapplymethod in the
TransformationMatrixclass with additional input validation and updated docstring for clarity. -
Updated tests for inertia transformation to reflect changes in the transformation logic and ensure
proper validation of expected outcomes. - Ensured all docstrings comply with PEP257 standards and
added typing annotations where necessary. -
Finalize core structure API
(aa8c4b8) -
Fix example
(2cd8aa6) -
Fix issue
(35a3826) -
Fix issues
(b6e61d9) -
Fix issues
(4a4cd28) -
Fix missing input rule issues
(e14649d) -
Fix pipeline end to end
(d2cf57c) -
Fix structure tests
(f9594ea) -
Fix styles test
(db49238) -
Foldseek threads to 4
(14937ed) -
Global style rename
(9dff8ba) -
Implement chain coordinates
(84b1621) -
Implement new structure in commands
(0a9eeea) -
Improve annotation calculation logic
(f0db8d7) -
Improve clarity for projection
(13037da) -
Improve commands naming
(b03fcf2) -
Improve naming
(0925eef) -
Improve param clarity
(bdf8a86) -
Improve scene to handle the annotation coordinates.
(96400c5)
Extend the scene class and refactor and extend tests to cover the functionality
-
Move alignment results to avoid circular import
(3bcd220) -
Move annotation tests to new structure
(3eb5928) -
Move checkpoint to pdb download
(06f25aa) -
Move data wrangling to utils package
(20f8313) -
Move style to notebook
(5b2f73b) -
Move to config file
(83714f7) -
Overhaul rendering logic to work with improved structure and scene
(cc5447f) -
Overhaul scene graph to be more linear and streamlined
(ec3d400) -
Proper tempfile handling
(7790a22) -
Remove coordinate manager
(6bd1649) -
Remove coordinate manager for coordinate transformation
(8174a24) -
Remove obsolete tests
(19848de) -
Remove old db
(71ddbcf) -
Remove style file
(5c55f54) -
Remove target_residue_set
(1db2fa6) -
Remove unused uniform projection
(0909676) -
Rename scene node to element
(cf985bf) -
Rename to snakefile
(03988c2) -
Status to json
(bd52157) -
To allow for domain based
(63208ff)
BREAKING CHANGE: overhaul coordinate management
-
Tune CPU requirement for faster speeds
(083cdee) -
Update annotation handling and error propagation
(66328db) -
Refactored annotation classes to utilize a new
CoordinateResolverfor improved coordinate
resolution. - IntroducedTargetResidueNotFoundErrorin the scene error handling to enhance
clarity in error reporting. - Updated theget_coordinatesmethod in annotation classes to accept
aCoordinateResolverinstance, ensuring consistent coordinate retrieval. - Enhanced error
handling in theSVGRendererto catch specific errors during annotation processing. - Removed
outdated tests related to scene coordinate delegation, as this logic is now managed by annotations
and the resolver. - Updated docstrings across various files to comply with PEP257 standards. -
Update annotations
(8fb8a52) -
Update annotations parser to include style
(0e8db7c) -
Update db id
(a455d5d) -
Update db path
(8226d27) -
Update domain implementation
(af32432) -
Update extract domain output
(0a53495) -
Update imports
(04a18ad) -
Update module paths
(8714fea) -
Update numpy typing for projection parameters
(dddc5a6) -
Update overlay to regular commands
(7330b9a) -
Update projection test and upgrade to better numpydantic library
(c046245) -
Update style parser to not use manager
(aa4e10d) -
Update styling
(d5273e1) -
Update the snakemake pipeline
(4e83358) -
Update transformation tests and fix transformation apply issue
(1e50155)
v1.0.0 (2025-03-17)
Continuous Integration
- Fix workflow definition
(a47e74c)
BREAKING CHANGE: overhauls CLI API, installation, and project structure
Breaking Changes
- Overhauls CLI API, installation, and project structure
v0.2.0 (2025-03-17)
Bug Fixes
-
Add h5py dep
(a5ba429) -
Annotation parsing
(0bc3635) -
Missing StyleManager issue
(bcd98a5) -
Structure mocking
(0f75ee4) -
Update matrix dimensions to be properly handled
(0d6fc02)
Chores
Continuous Integration
-
Add debug to pytest
(3442168) -
Fix build commit
(a70a15b) -
Rename release files
(1cfa377) -
Update python tests on staging
(b03aaac)
Documentation
-
Add basic CLI documentation
(f3a5f6a) -
Add cursorrules
(d71abc6) -
Add example toml files
(b0fccc6) -
Add structure documentation
(f2b84b2) -
Fix numbering
(8786a8b) -
Update example to work with 3FTx
(0281cc8) -
Update README
(969da70)
Features
-
Add annotation parsing and validation
(e2dc6c7) -
Add annotation parsing from toml
(844dc30) -
Add cli scaffolding
(9564b9b) -
Add matrix loader
(e271745) -
Add style parsing
(536684c)
Refactoring
-
Adapt file test to refactored code
(8832568) -
Add coordinate manager tests
(3289be4) -
Add dssp option and validation
(3b06594) -
Add integration tests
(ce4bfc5) -
Add logging and verbosity control
(ca577b5) -
Add scene utils tests
(9db6bb1) -
Add string representation
(d4002cd) -
Add structure validation and remove tests
(e9df138) -
Add svg creation tests
(0fe06a1) -
Add tests for style utils
(9ff21e8) -
Add transformation utils
(bbbccab) -
Allow for console output of svg
(1d7f925) -
Centralize cli fixtures
(1f6af7a) -
Change utils structure
(137af54) -
Fix integration tests
(a9aabfc) -
Fix scene structure parsing
(684095c) -
Fix styling
(f99be5c) -
Fix test cases
(44ace30) -
Fix test to work with point index
(cf993e8) -
Fix the local index calculation
(b642eec) -
Fix utils test to accept logger
(b54633e) -
Implement detailed error logging
(e17e45a) -
Improve tests to be behavior oriented
(573a0d1) -
Move composer to utils
(54c95e8) -
Move errors into io
(f55265b) -
Move tests to folder structure
(cad5923) -
Move to pytest-mock
(2fb88cf) -
Remove debug output
(c668841) -
Remove debug print
(3fa2ca9) -
Remove unused import
(d05b17b) -
Rename to point index
(ff84fab) -
Switch transformation loading to coordinate manager
(02d3835) -
Update function names
(9c99757) -
Update io tests to work with changed annotation parser
(0f00d67) -
Update test for better annotation parsing
(01ba041)
v0.1.0 (2025-02-25)
Bug Fixes
-
Adhere to proper rotation standards
(ffbc370) -
Change name to match github action
(0fc916a) -
Correct color type import
(0ea0ba1) -
Data ownership for secondary structure
(6bdf6f5) -
Database tests
(a964c42) -
Fix helix visualization
(b0e7661) -
Foldseek test
(c842464) -
Helix and sheet working again
(0e62f78) -
Improve rotation
(e48447e) -
Parameter passing
(66f4232) -
Projection works correctly now
(783e00e) -
Projector separated out
(1a6c884) -
Refactor coordinate transformation and test
(09079fa) -
Render pipeline
(c3a079c) -
Resolve element import issue
(cd2868e) -
Rotation algorithm now follows proper axis alignment
(c579231) -
Update projector to properly work
(1779e0d) -
Update tests and fix problems with implementations
(5f5a36c) -
Utils test
(bf349e5)
Chores
-
Add 3FTx example data
(23adf33) -
Add basic tests for visualization
(0c412a5) -
Add github actions
(f1044af) -
Add pytest
(aec125b) -
Add tests for projectors
(9902ce4) -
Change import names
(360586a) -
Change paths
(c1ca4bb) -
Ignore auto gen files
(01fc17e) -
Make projection tests more meaningful
(9136460) -
Move old files out of code base
(103ed60) -
Remove unnecessary files
(61628e6) -
Rename elements to structure
(1ce8a76) -
Rename example
(8058833) -
Update file structure
(01a864b)
Code Style
-
Add non-element drawing
(f452567) -
Add rounded linecaps
(2881a6e) -
Make helix connect in the center
(1543288)
Continuous Integration
-
Add pre commit hooks
(b1b4a0b) -
Add pytest to pull requests
(3718495) -
Add releaserc to fix semantic release
(abbc2a5) -
Fix installation issues psr
(39ba9d3) -
Update commit parser
(1ed7142) -
Update semantic release
(8fc028a)
Documentation
-
Add GitHub templates
(f684626) -
Allow blank issues during pre-release
(40825d4) -
Switch to mkdocs for easier maintenance and editing
(db3235b)
Features
-
Add annotation implementation
(6e6b8de) -
Add basic alignment code
(8bbd225) -
Add dssp parser
(4835181) -
Add gap filling with coils
(c2c35ea) -
Add projection layer
(7d3f6f2) -
Implement custom dssp parser
(0df205a)
Refactoring
-
Adapt example to new scene composition
(cafbdc1) -
Add base elements
(6495a0e) -
Add basic circle annotation
(af7ba84) -
Add combined rotation
(5081205) -
Add core entities
(e516fd0) -
Add core exports
(b1c32ca) -
Add core module exports
(5f69c98) -
Add h5py
(2c9a640) -
Add index resolution
(da02ef1) -
Add pdb parsing from biopython
(26d51f0) -
Add separate projection abstraction
(09dc118) -
Add sorting by z-coordinate
(2ad666d) -
Add structure for visualization layer
(8681035) -
Add svg rendering
(493c39a) -
Change chain to subclass of structure_component
(7545d49) -
Change display coordinate name to be more fitting
(a4f06fc) -
Change name for more clarity
(5c83e21) -
Change theme
(edf76d4) -
Change to python 3.12 to be compatible with biopython
(44a45c0) -
Change transformer name
(7290bff) -
Cleanup dependencies
(6fc9b55) -
Coordinate responsibility stays in the manager
(b590c55) -
Create core structure model
(a739409) -
Export StructureComponent
(9de5a18) -
Fix coil working
(f1466e2) -
Fix drawing
(862543b) -
Fix import
(2434f86) -
Fix issues and extend tests
(3fb9119) -
Helix path zig-zag pattern
(487fc55) -
Improve .cif parsing to handle secondary structure
(7dcf4c0) -
Improve naming
(375578d) -
Improve scaling
(6af118c) -
Improve styling
(3ab662a) -
Improve styling
(960006e) -
Improved example visualization
(3f9e801) -
Integrate style for annotation drawing
(227b0b2) -
Keep residue information
(f0691da) -
Make annotation work generally
(0b8e9e2) -
Move coordinate view into secondary structure
(58a2d28) -
Move old code to subfolder
(8c6aa03) -
Project structure and update dependencies
(42b0b6e) -
Expanded .gitignore to include additional Python and IDE files. - Added .python-version file to
specify Python version 3.13. - Updated pyproject.toml to reflect new project version 0.1.0 and
modified dependencies. - Removed requirements.txt as dependencies are now managed via
pyproject.toml. - Introduced new FlatProt.code-workspace for VSCode settings. - Added new data
files for SF_database and flexUSER_database. - Deleted old distribution files and documentation
artifacts. - Created initial structure for the FlatProt package with main functionalities and
utilities
Note docker is broken and needs fixing.
-
Pydantic classes for style management
(97fff74) -
Remove biopython
(9a748ec) -
Remove code duplication for transformation
(2a9d802) -
Remove debug output
(07ac5a1) -
Remove debug output
(abe1285) -
Remove explicit structure from projection
(0833ed2) -
Remove obsolete data
(5259ce3) -
Remove old code
(485c03d) -
Remove state from visualization
(0857ed9) -
Remove unnecessary types
(fcbb233) -
Rename ProjectionMatrix to TransformationMatrix
(a5ced0b) -
Restructure scene for better element management
(eaa2be0)
Scene manages elements in a flat and treelike structure to allow coordinate mapping and tree
construction.