mantispy.ds.pki#

mantispy.ds.pki(plates=None, cache_dir=None, *, aggregated=False, feature_selected=False)[source]#

Kinase inhibitors over a dose series, in four cell lines.

cpg0008-pki: a Broad Institute and Gray lab collaboration profiling selective protein kinase inhibitors. Fifteen compounds over a seven-point dose range (eleven at three doses, four at one), over eight plates in four cell lines, two plates each: PATU-8988T (BR00122970, BR00122971), MDA-MB-231 (BR00122972, BR00122973), U2OS (BR00122974, BR00122975) and A549 (BR00122977, BR00122978). Every plate runs the same plate map, so a treatment’s 32 to 64 replicate wells span all four cell lines, 8 to 16 in each.

The base and its variants are pre-built by scripts/build_staged_datasets.py from the eight raw plate tables and rehosted on scverse-exampledata, so the loader fetches a single h5ad rather than reassembling the base on every call. The two flags select the variant:

  • both False: the raw wells with every feature, the object the recipe tutorials start from.

  • feature_selected=True: the well-level block after pycytominer-default feature selection.

  • aggregated=True: one modz consensus (Spearman, min_replicates=2) per Metadata_Perturbation over every well, DMSO included, so each compound-at-dose is one profile. The consensus pools the four cell lines; see the notes for a per-line one.

  • aggregated=True, feature_selected=True: that same consensus on the feature-selected block.

Parameters:
plates Sequence[str] | None (default: None)

Plate barcodes to load, all eight when omitted. Only applies to the base; the hosted base is fetched once and subset to these plates in memory.

cache_dir str | Path | None (default: None)

Where to keep the download. Defaults to mantispy.settings.cache_dir.

aggregated bool (default: False)

Return the perturbation-level modz consensus instead of the wells.

feature_selected bool (default: False)

Return the feature-selected block instead of all features.

Return type:

AnnData

Returns:

Wells by features at well resolution when both flags are False, else the staged variant selected by the two flags, read with mantispy.io.read(), with Metadata_Perturbation (compound at concentration), Metadata_Perturbation_Type ("compound"), Metadata_Compound, Metadata_Concentration (the platemap’s mmoles_per_liter), Metadata_MOA, Metadata_Control_Type, Metadata_Control, Metadata_CellCount and Metadata_SiteCount. The well-level variants also carry Metadata_CellLine, read from the plate barcode.

Raises:
  • KeyError – A plate is not one of the eight.

  • ValueError – aggregated or feature_selected is not a bool, or plates is given for a variant.

Notes

Metadata_Control_Type is "negcon" for the DMSO wells and "poscon" for the four positive-control compounds. Metadata_Control is True for both (schema 2.0), so normalize with reference="negcon" and select the non-DMSO wells with adata[adata.obs["Metadata_Control_Type"] != "negcon"].

Metadata_Concentration is the platemap’s mmoles_per_liter, so its unit is millimolar. The values reach 2 mM, which is high for a final in-well dose of a kinase inhibitor, so it is most likely the source (stock) concentration; the upstream data records neither the dilution nor the final dose.

Metadata_Perturbation does not include the cell line, so grouping by it alone pools four biologically different replicate sets. Analyse one line with adata[adata.obs["Metadata_CellLine"] == "U2OS"], or build a per-line consensus from the wells by grouping on a key that joins the two columns. The hosted aggregated=True files are pre-built from the pooled wells and carry no Metadata_CellLine.