Repository navigation
What's New
Most importantly, the combining and enhancing of the datasets did have some bugs that caused wrong involvement in some special cases. This has been fixed. The methods and functions doing all this also had to be renamed/rewritten, so there are some breaking changes in that regard.
This new version is now also compatible with the upcoming new lyDATA format, where we use core over # and 1 as the mid-level column header for patient and tumor.
🚀 Features
- Allow custom functions via
.pass_to()ofCobjects - Allow importing
LyDataFrametype from root - Add working sorting functions for
LyDataFrame - Add convenience
.ly.enhance()method - Add pydantic patient/tumor model
- Add schema for modalities
- Add working dtype casting function
- Add
.ly.cast()to lydata accessor - Add function to write JSON schema to file
- Add pre-/suffixes to T/N stages in schema
- Casting, validating, & enhancing during load
- Add a
.get_tnm()helper method - Fail more informatively when loading. Fixes [#10].
- Add
.ly.locationto short column access
🐛 Bug Fixes
- [breaking] Combine mods & lvl info using probabilities over likelihoods
- Use spec/sens < 1 in
augment - Make
LyDataFrameimportable - Ensure alignment of columns during combine/augment
- Change mid-level column from
infotocore - Don't override superlevel when sublevels unknown
- Join using "outer" in
.ly.enhance() - Avoid
Nones due to index mismatch etc. - Replace instead of udpdate augmented columns
- Augment during combine for max_llh/rank
- Use default subdivisions in
.ly.enhance() - Make casting safer and better
- Avoid pydantic's weird
TypeErrorforpd.NaT - Check central info in schema
- Call
logger.erroroverexception - Allow MX=-1 in schema
- Allow
Nonein more patient fields - Side may be
Nonewhen central=True - Make some fields robust to uppercase strings
- Allow loading from disk using custom paths
- Get github fetch working again
💼 Other
- Don't use
orto check forNonearg - [breaking] remove old functions to infer/combine data
- Move
C&Qto own module - [breaking] Update schema for new 2nd lvl cols
- Improve final sorting of tables
- [breaking] Rewrite validation using new schema
- [breaking] Start using only pydantic schema for validation
- Update mid-level cols to new
core - Remove typer dependency
📚 Documentation
- Add more info to augment/combine
- Update some docstrings
- Add docstrings to JS code
- Update schema & validation docstrings
- Add new modules to sphinx
🧪 Testing
- Test new combine/augment with CLB patient 17
- Add basic
.ly.combine()test - Add scripts to compare augment/combine
- Check one patient with specific issue
- Add util doctest (though unnecessary)
- Add some more patient-specific checks
- Ensure basic functionality of schemas
- Cover casting with minimal checks
- Update schema test to use
core, too - Add another 2025-USZ patient to test cases
- Fix small issues causing tests to fail
- Update to new, cast data
- Ensure .env is loaded during all tests