- Replace python-glmnet with my own that has an updated compile setup and allows for numpy > 1.26
- Use numpy >= 2.0
- the main
PLIERfunction now has options to enable debug logging and to save the log to a file
- Logging should work better
- Random scattered fixes for numpy >= 2
- Replaced
numpy.ndarraywhere it was used for typing withnumpy.testing.NDArray
- Caught a few stray variable names that had not had their capitalizaition changed
- Removed a decorator from PLIER that forced passing a value when a default was there
- Renamed a lot of functions and variables to follow standard Python naming conventions (i.e make ruff stop complaining)
- Reworked a lot of the unit tests
1.8.0 - 2022-09-23
- Changed
svdresargument toPLIERfrom annp.ndarrayto aDict[str, np.ndarray]to reflect what is actually returned byscipy.linalg.svd - Added arguments to all functions that use tqdm to either remove the output from tqdm-based progressbars after completetion or just to disable them completely.
- Added a implementation to
num_pc.compute_uuto handle pandas dataframes (e.g. convert to a ndarray and use the its implementation) - If a pre-computed svd is passed to PLIER, it now checks that the number of columns in the svd['v'] member matches the number of columns in the data, not that the svd['v'] shape tuple matches
1.7.0 - 2022-09-21
- replaced
pyplier.utils.rowNormwithpyplier.utils.zscoreas that is what it was anyway- also, it is no self applies - you will need to run it over rows manually (i.e. df.apply(zscore, axis=1))
- removed
pyplier.utils.colNormsince it was unused
pyplier.utils.zscoreshould be able to handle rows where all the values are the same (return 0, since all values are right on the standard deviation of 0)
1.6.0 - 2022-09-21
- fixed an issue when reading a PLIERResult object stored as an h5 has empty lists as part of the "heldOutGenes" member
1.5.5 - 2022-09-13
- saving non-integer numeric dictionaries in PLIERResults.withPrior to hdf5 no longer results in their being inappropriately cast to integers
1.5.4 - 2022-09-13
- Automated unit testing on Github
- Instead of using the stale civisanalytics/python-glmnet, switch to the slightly-less stale replicahq/python-glmnet (which uses pep518-compliant install, obviating any issues with needing numpy installed prior to glmnet)
1.5.3 - 2022-09-12
- Another attempt at fixing an issue where a PLIERResults object could not be saved as hdf5 because of the "LV index" text column in the summary dataframe (and this is why you should write unit tests prior to saying you "fixed" something)
1.5.2 - 2022-09-12
- Fixed an issue where a PLIERResults object could not be saved as hdf5 because of the "LV index" text column in the summary dataframe
1.5.1 - 2022-09-12
- Removed stray
glmnet-pydep
1.5.0 - 2022-09-09
- Added methods to save and read PLIERResults objects to disk using h5py, which should be dramatically faster than using json
- Added a
__getitem__method to thePLIERResultsclass
- Renamed
PLIERResults.to_disk()toPLIERResults.to_json()andPLIERResults.from_dist()toPLIERResults.read_json()
1.4.0 - 2022-09-02
- Better handling for NaNs and Inf values in the normalized data when running
plier() - Explictly list submodules as part of
__all__in__init__.pyto hopefully solve certain submodules not being available when importing the main module
- Update dependencies
- Cleanup testing data
1.3.0 - 2022-08-22
- revert newer (3.9+) style typing soas to reenable Python 3.8
1.2.0 - 2022-08-22
- Simplified
solveU
1.1.1 - 2022-08-17
- Should probably actually try using
pyplier.plotting.plotTopZbefore pushing.
1.1.0 - 2022-08-17
pyplier.plotting.plotTopZactually works now.
1.0.1 - 2022-08-15
- Replaced
rich.console.Consolewith just usingrich.printso as to avoid circular imports
1.0.0 - 2022-08-15
- Reorganized the submodules to make a little more sense and so that not everything was
plier.FUNCTION.FUNCTION; some functions changed to be PLIERRes methods
- Removed multiple functions
0.14.0 - 2022-08-15
- In
nameB, handle the situation where no pathways have a FDR less than the cutoff
0.13.1 - 2022-08-07
- Removed a few unused or unnecessary dependencies to reduce the exposure to vulnerabilities
0.13.0 - 2022-07-31
- Unit test for
pyplier.combinePaths.combinePaths()- also, while the results do not match those from R {PLIER}, pyplier's version is technically correct - PLIER's version has a bug
- Replaced inappropriate use of
numpy.exp()where I should have usednumpy.power()inpyplier.AUC.mannwhitney_conf_int() - remove stupid
from typing import dict, listleftovers pyplier.combinePaths.combinePaths()now returns an array of ints
0.12.0 - 2022-07-17
- All apparently used functions implemented
plotU()&VarianceExplained()
- Changed minimum required Python version to 3.9
0.11.0 - 2022-07-04
plotTopZallPath()
plotTopZ()andsolveU()now properly use PLIERRes members
0.10.0 - 2022-06-26
plierResToMarkers,plotMat, andplotTopZ
0.9.0 - 2022-06-24
- Unit tests for the
PLIERResultsclass - Start add use of
structlog - added
__eq__()method to thePLIERResultsclass
- dev container now uses python 3.9
- Replaced a few math functions in
pyplier.AUC.mannwhitneyu_conf_int()with their numpy equivalents pyplier.crossVal.crossVal()now sets the "pathway" column as the index for thesummarydataframe- changed
pyplier.PLIERResults.from_dict()method to aclassmethod - gzipped several of the testing files
- Fixed column names for testing dataframes in
test_solveU
0.8.0 - 2022-04-19
- New version of
mannwhitney_conf_u(), which is a direct translation of the R code used in the portion ofstats::wilcox.test()that generates the confidence interval forPLIER::AUC() __repr__()method to the PLIERRes class
- Simpler version of
solveU()(at least temporarily) - Started using typechecked
- Overhaul
crossVal()
plier()now runs and appears to do so essentially correctly; however, at current, it reports fewer identified LVs than {PLIER} does (about half as many)
- Got rid of
commonRows()as it was unnecessary
0.7.0 - 2022-02-08
- First draft of the main PLIER function, though it
- Compress test data and change tests to reflect
- Minor code changes to eliminate pytest warnings
- Switched
PLIERResultsfrom a TypedDict to a class
0.6.2 - 2022-02-07
- Removed numba as a dependency for now (it wasn't being used anyway), allowing the required numpy version to be updated to >1.21 (lower version had a vulnerability)
- Update all dependencies
0.6.1 - 2022-02-06
- Update dependenciess to eliminate ipython vulnerability
0.6.0 - 2022-02-06
solveU()with unit test (though, no hypothesis-based unit tests yet)- A Docker devcontainer
- Import functions into init to simplify intramodule use
- Add icontract-based function input validation to some functions