Skip to content

0.4.0

Latest

Choose a tag to compare

@rmnldwg rmnldwg released this 04 Sep 09:26
f66fe8d

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() of C objects
  • Allow importing LyDataFrame type 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.location to short column access

🐛 Bug Fixes

  • [breaking] Combine mods & lvl info using probabilities over likelihoods
  • Use spec/sens < 1 in augment
  • Make LyDataFrame importable
  • Ensure alignment of columns during combine/augment
  • Change mid-level column from info to core
  • 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 TypeError for pd.NaT
  • Check central info in schema
  • Call logger.error over exception
  • Allow MX=-1 in schema
  • Allow None in more patient fields
  • Side may be None when 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 or to check for None arg
  • [breaking] remove old functions to infer/combine data
  • Move C & Q to 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