I have been analyzing some mouse T cell scRNA-seq data for a few months now using mostly the Seurat pipeline run with default parameters, and I have noticed that regressing out the 'S.Score' and 'G2M.Score' obtained from default Seurat::CellCycleScoring seems to be insufficient to remove (seemingly large) variation originating from differences in cell cycle and cells often still cluster based on cell cycle phase even at low clustering resolutions (e.g., clusters consisting mostly of S/G2/M phase cells with cell cycle genes as the dominant markers). After going through some papers, Cyclum seemed like what I was looking for and so I went through most of the documentation on their GitHub and skimmed through the codes, but there doesn't seem to be any documentation on how to obtain the corrected expression matrix they claim that Cyclum gives, and all of their demos only show how to obtain the inferred pseudotimes of the cells.
I have followed their demos and successfully obtained the pseudotimes of my data, but that's about it and I don't know how I should proceed from here. Regressing out the Cyclum-given pseudotime using Seurat while scaling the data doesn't seem feasible as the pseudotime doesn't really have a start and an end. Using the latest versions of TensorFlow and keras kept raising errors so I used the versions tested by the developers (Python 3.7.11 / TensorFlow 1.14.0 / keras 2.2.4) and that seems to work.
If anyone who has successfully used this tool before could give some advice, I would appreciate it a lot.
As a side note, if there are any other R/Python tools that deal well with cell cycle correction than suggesstions would be appreciated too. A recent paper benchmarks their tool (CCPE) against Cyclum and claims better performance but it's written in MATLAB, which I have basically no experience with (and it's just a preprint as of yet).