mantispy.tl.cell_cycle_phase#
- mantispy.tl.cell_cycle_phase(adata, dna_feature=None, by='Metadata_Plate', layer=None, key_added='Metadata_CellCyclePhase', copy=False)#
Assign G1, S or G2M from integrated DNA intensity.
A two-component Gaussian mixture is fitted to log DNA intensity within each
bygroup. The lower component is G1 and the upper is G2M. Cells that neither component claims with probability above 0.9 are called S.- Parameters:
adata (
AnnData) – Single-cell object holding raw, unnormalized intensities.dna_feature (
str|None(default:None)) – The integrated DNA intensity feature. Found from the feature names andvar["channel"]when omitted.by (
str|None(default:'Metadata_Plate')) – Fit separately within each group, normally the plate, since staining intensity does not carry across plates.layer (
str|None(default:None)) – Read this layer instead ofX, for example"raw"afternormalize(keep_raw=True).key_added (
str(default:'Metadata_CellCyclePhase')) –obscolumn written.copy (
bool(default:False)) – Return a modified copy instead of mutating in place.
- Return type:
- Returns:
None, or the modified copy. Writesobs[key_added]as a categorical overPHASES.- Raises:
KeyError –
dna_featurewas not given and no integrated DNA intensity feature could be found.ValueError – More than 5% of the feature’s values are not positive, so their log cannot be fitted.
Notes
This is a heuristic. It needs a well-resolved DNA stain and enough cells per group (a group with fewer than 20 usable cells is left as S), and it cannot tell G0 from G1. It also needs raw intensities, because after
normalize()the values are z-scores and about half are negative. Check the result before relying on it.