{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,25]],"date-time":"2026-04-25T15:12:44Z","timestamp":1777129964622,"version":"3.51.4"},"update-to":[{"DOI":"10.1371\/journal.pcbi.1009071","type":"new_version","label":"New version","source":"publisher","updated":{"date-parts":[[2021,6,18]],"date-time":"2021-06-18T00:00:00Z","timestamp":1623974400000}}],"reference-count":39,"publisher":"Public Library of Science (PLoS)","issue":"6","license":[{"start":{"date-parts":[[2021,6,8]],"date-time":"2021-06-08T00:00:00Z","timestamp":1623110400000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"UK Clinical Research Network","award":["11838"],"award-info":[{"award-number":["11838"]}]},{"name":"Welsh European Funding Office\u2019s Accelerate programme","award":["PR-0013"],"award-info":[{"award-number":["PR-0013"]}]},{"DOI":"10.13039\/501100000265","name":"Medical Research Council","doi-asserted-by":"publisher","award":["MR\/N023145\/1"],"award-info":[{"award-number":["MR\/N023145\/1"]}],"id":[{"id":"10.13039\/501100000265","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Wales Kidney Research Unit"},{"name":"Cardiff University, School of Medicine","award":["PhD Studentship"],"award-info":[{"award-number":["PhD Studentship"]}]}],"content-domain":{"domain":["www.ploscompbiol.org"],"crossmark-restriction":false},"short-container-title":["PLoS Comput Biol"],"abstract":"<jats:p>\n                    Cytometry analysis has seen a considerable expansion in recent years in the maximum number of parameters that can be acquired in a single experiment. In response to this technological advance there has been an increased effort to develop new computational methodologies for handling high-dimensional single cell data acquired by flow or mass cytometry. Despite the success of numerous algorithms and published packages to replicate and outperform traditional manual analysis, widespread adoption of these techniques has yet to be realised in the field of immunology. Here we present CytoPy, a Python framework for automated analysis of cytometry data that integrates a document-based database for a data-centric and iterative analytical environment. In addition, our algorithm-agnostic design provides a platform for open-source cytometry bioinformatics in the Python ecosystem. We demonstrate the ability of CytoPy to phenotype T cell subsets in whole blood samples even in the presence of significant batch effects due to technical and user variation. The complete analytical pipeline was then used to immunophenotype the local inflammatory infiltrate in individuals with and without acute bacterial infection. CytoPy is open-source and licensed under the MIT license. CytoPy is available at\n                    <jats:ext-link xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" ext-link-type=\"uri\" xlink:href=\"https:\/\/github.com\/burtonrj\/CytoPy\" xlink:type=\"simple\">https:\/\/github.com\/burtonrj\/CytoPy<\/jats:ext-link>\n                    , with notebooks accompanying this manuscript (\n                    <jats:ext-link xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" ext-link-type=\"uri\" xlink:href=\"https:\/\/github.com\/burtonrj\/CytoPyManuscript\" xlink:type=\"simple\">https:\/\/github.com\/burtonrj\/CytoPyManuscript<\/jats:ext-link>\n                    ) and software documentation at\n                    <jats:ext-link xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" ext-link-type=\"uri\" xlink:href=\"https:\/\/cytopy.readthedocs.io\/\" xlink:type=\"simple\">https:\/\/cytopy.readthedocs.io\/<\/jats:ext-link>\n                    .\n                  <\/jats:p>","DOI":"10.1371\/journal.pcbi.1009071","type":"journal-article","created":{"date-parts":[[2021,6,8]],"date-time":"2021-06-08T14:41:36Z","timestamp":1623163296000},"page":"e1009071","update-policy":"https:\/\/doi.org\/10.1371\/journal.pcbi.corrections_policy","source":"Crossref","is-referenced-by-count":18,"title":["CytoPy: An autonomous cytometry analysis framework"],"prefix":"10.1371","volume":"17","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-1516-7749","authenticated-orcid":true,"given":"Ross J.","family":"Burton","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Raya","family":"Ahmed","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0546-3579","authenticated-orcid":true,"given":"Simone M.","family":"Cuff","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7474-9757","authenticated-orcid":true,"given":"Sarah","family":"Baker","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7501-4090","authenticated-orcid":true,"given":"Andreas","family":"Artemiou","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9390-5348","authenticated-orcid":true,"given":"Matthias","family":"Eberl","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"340","published-online":{"date-parts":[[2021,6,8]]},"reference":[{"issue":"4","key":"pcbi.1009071.ref001","doi-asserted-by":"crossref","first-page":"606","DOI":"10.1093\/bioinformatics\/btu677","article-title":"flowDensity: reproducing manual gating of flow cytometry data by automated density-based cell population identification","volume":"31","author":"M Malek","year":"2015","journal-title":"Bioinformatics"},{"issue":"8","key":"pcbi.1009071.ref002","doi-asserted-by":"crossref","first-page":"e1003806","DOI":"10.1371\/journal.pcbi.1003806","article-title":"OpenCyto: an open source infrastructure for scalable, robust, reproducible, and automated, end-to-end flow cytometry data analysis","volume":"10","author":"G Finak","year":"2014","journal-title":"PLoS Comput Biol"},{"issue":"7","key":"pcbi.1009071.ref003","doi-asserted-by":"crossref","first-page":"636","DOI":"10.1002\/cyto.a.22625","article-title":"FlowSOM: Using self-organizing maps for visualization and interpretation of cytometry data","volume":"87","author":"S Van Gassen","year":"2015","journal-title":"Cytometry A"},{"issue":"1","key":"pcbi.1009071.ref004","doi-asserted-by":"crossref","first-page":"184","DOI":"10.1016\/j.cell.2015.05.047","article-title":"Data-Driven Phenotypic Dissection of AML Reveals Progenitor-like Cells that Correlate with Prognosis","volume":"162","author":"JH Levine","year":"2015","journal-title":"Cell"},{"issue":"6","key":"pcbi.1009071.ref005","doi-asserted-by":"crossref","first-page":"493","DOI":"10.1038\/nmeth.3863","article-title":"Automated mapping of phenotype space with single-cell data","volume":"13","author":"N Samusik","year":"2016","journal-title":"Nat Methods"},{"issue":"10","key":"pcbi.1009071.ref006","doi-asserted-by":"crossref","first-page":"886","DOI":"10.1038\/nbt.1991","article-title":"Extracting a cellular hierarchy from high-dimensional cytometry data with SPADE","volume":"29","author":"P Qiu","year":"2011","journal-title":"Nat Biotechnol"},{"issue":"13","key":"pcbi.1009071.ref007","doi-asserted-by":"crossref","first-page":"2245","DOI":"10.1093\/bioinformatics\/bty082","article-title":"flowLearn: fast and precise identification and quality checking of cell populations in flow cytometry","volume":"34","author":"M Lux","year":"2018","journal-title":"Bioinformatics"},{"issue":"11","key":"pcbi.1009071.ref008","doi-asserted-by":"crossref","first-page":"1689","DOI":"10.1093\/bioinformatics\/btx054","article-title":"Automated cell type discovery and classification through knowledge transfer","volume":"33","author":"HC Lee","year":"2017","journal-title":"Bioinformatics"},{"issue":"21","key":"pcbi.1009071.ref009","doi-asserted-by":"crossref","first-page":"3423","DOI":"10.1093\/bioinformatics\/btx448","article-title":"Gating mass cytometry data by deep learning","volume":"33","author":"H Li","year":"2017","journal-title":"Bioinformatics"},{"issue":"1","key":"pcbi.1009071.ref010","doi-asserted-by":"crossref","first-page":"202","DOI":"10.1073\/pnas.1321405111","article-title":"Automatic Classification of Cellular Expression by Nonlinear Stochastic Embedding (ACCENSE)","volume":"111","author":"K Shekhar","year":"2014","journal-title":"Proc Natl Acad Sci U S A"},{"key":"pcbi.1009071.ref011","doi-asserted-by":"crossref","first-page":"14825","DOI":"10.1038\/ncomms14825","article-title":"Sensitive detection of rare disease-associated cell subsets via representation learning","volume":"8","author":"E Arvaniti","year":"2017","journal-title":"Nat Commun"},{"issue":"7","key":"pcbi.1009071.ref012","doi-asserted-by":"crossref","first-page":"1197","DOI":"10.1093\/bioinformatics\/bty768","article-title":"Robust prediction of clinical outcomes using cytometry data","volume":"35","author":"Z Hu","year":"2019","journal-title":"Bioinformatics"},{"issue":"35","key":"pcbi.1009071.ref013","doi-asserted-by":"crossref","first-page":"21373","DOI":"10.1073\/pnas.2003026117","article-title":"A robust and interpretable end-to-end deep learning model for cytometry data","volume":"117","author":"Z Hu","year":"2020","journal-title":"Proc Natl Acad Sci U S A"},{"issue":"Suppl 1","key":"pcbi.1009071.ref014","doi-asserted-by":"crossref","first-page":"56","DOI":"10.1111\/ijlh.13016","article-title":"Flow cytometry data analysis: Recent tools and algorithms.","volume":"41","author":"S Montante","year":"2019","journal-title":"Int J Lab Hematol"},{"key":"pcbi.1009071.ref015","doi-asserted-by":"crossref","first-page":"56","DOI":"10.25080\/Majora-92bf1922-00a","article-title":"Data Structures for Statistical Computing in Python","author":"W McKinney","year":"2010","journal-title":"SciPy"},{"key":"pcbi.1009071.ref016","first-page":"2825","article-title":"Scikit-learn: Machine Learning in Python","volume":"12","author":"F Pedregosa","year":"2011","journal-title":"J Mach Learn Res"},{"key":"pcbi.1009071.ref017","first-page":"265","article-title":"TensorFlow: A system for large-scale machine learning","volume":"2016","author":"M Abadi","year":"2016","journal-title":"Proc 12th USENIX Symp Oper Syst Des Implementation, OSDI"},{"issue":"12","key":"pcbi.1009071.ref018","doi-asserted-by":"crossref","first-page":"1482","DOI":"10.1038\/s41587-019-0336-3","article-title":"Visualizing structure and transitions in high-dimensional biological data","volume":"37","author":"KR Moon","year":"2019","journal-title":"Nat Biotechnol"},{"issue":"1","key":"pcbi.1009071.ref019","doi-asserted-by":"crossref","first-page":"38","DOI":"10.1038\/nbt.4314","article-title":"Dimensionality reduction for visualizing single-cell data using UMAP","volume":"37","author":"E Becht","year":"2019","journal-title":"Nat Biotechnol"},{"key":"pcbi.1009071.ref020","unstructured":"MongoDB [Internet]. Available from: https:\/\/www.mongodb.com\/"},{"key":"pcbi.1009071.ref021","author":"M Harry","year":"2020","journal-title":"Mongoengine."},{"issue":"3","key":"pcbi.1009071.ref022","doi-asserted-by":"crossref","first-page":"261","DOI":"10.1038\/s41592-019-0686-2","article-title":"SciPy 1.0: fundamental algorithms for scientific computing in Python","volume":"17","author":"P Virtanen","year":"2020","journal-title":"Nat Methods."},{"issue":"16","key":"pcbi.1009071.ref023","doi-asserted-by":"crossref","first-page":"2473","DOI":"10.1093\/bioinformatics\/btw191","article-title":"FlowAI: Automatic and interactive anomaly discerning tools for flow cytometry data","volume":"32","author":"G Monaco","year":"2016","journal-title":"Bioinformatics"},{"issue":"12","key":"pcbi.1009071.ref024","doi-asserted-by":"crossref","first-page":"1289","DOI":"10.1038\/s41592-019-0619-0","article-title":"Fast, sensitive and accurate integration of single-cell data with Harmony","volume":"16","author":"I Korsunsky","year":"2019","journal-title":"Nat Methods"},{"key":"pcbi.1009071.ref025","article-title":"Harmonypy","author":"K Slowikowski","year":"2020","journal-title":"Zenodo"},{"issue":"Section 2","key":"pcbi.1009071.ref026","first-page":"4766","article-title":"A unified approach to interpreting model predictions","volume":"2017","author":"SM Lundberg","year":"2017","journal-title":"Adv Neural Inf Process Syst"},{"issue":"2","key":"pcbi.1009071.ref027","doi-asserted-by":"crossref","first-page":"121","DOI":"10.1002\/cyto.a.20823","article-title":"Per-channel basis normalization methods for flow cytometry data","volume":"77","author":"F Hahne","year":"2010","journal-title":"Cytom Part A"},{"issue":"3","key":"pcbi.1009071.ref028","doi-asserted-by":"crossref","first-page":"277","DOI":"10.1002\/cyto.a.22433","article-title":"High-throughput flow cytometry data normalization for clinical trials","volume":"85","author":"G Finak","year":"2014","journal-title":"Cytom Part A"},{"key":"pcbi.1009071.ref029","first-page":"1","article-title":"A benchmark of batch-effect correction methods for single-cell RNA sequencing data","author":"H Thi","year":"2020","journal-title":"Genome Biol"},{"issue":"11","key":"pcbi.1009071.ref030","doi-asserted-by":"crossref","first-page":"1139","DOI":"10.1038\/s41592-019-0576-7","article-title":"Exploring single-cell data with deep multitasking neural networks.","volume":"16","author":"M Amodio","year":"2019","journal-title":"Nat Methods"},{"key":"pcbi.1009071.ref031","doi-asserted-by":"crossref","first-page":"785","DOI":"10.1145\/2939672.2939785","article-title":"XGBoost: A scalable tree boosting system","author":"T Chen","year":"2016","journal-title":"Proc ACM SIGKDD Int Conf Knowl Discov Data Min"},{"issue":"1","key":"pcbi.1009071.ref032","doi-asserted-by":"crossref","first-page":"16","DOI":"10.1002\/cyto.a.22732","article-title":"A benchmark for evaluation of algorithms for identification of cellular correlates of clinical outcomes","volume":"89","author":"N Aghaeepour","year":"2016","journal-title":"Cytom Part A"},{"issue":"1","key":"pcbi.1009071.ref033","doi-asserted-by":"crossref","first-page":"179","DOI":"10.1016\/j.kint.2017.01.017","article-title":"Machine-learning algorithms define pathogen-specific local immune fingerprints in peritoneal dialysis patients with bacterial infections","volume":"92","author":"J Zhang","year":"2017","journal-title":"Kidney Int"},{"issue":"5","key":"pcbi.1009071.ref034","doi-asserted-by":"crossref","first-page":"1088","DOI":"10.1016\/j.kint.2016.10.030","article-title":"Peritoneal macrophage heterogeneity is associated with different peritoneal dialysis outcomes","volume":"91","author":"C Te Liao","year":"2017","journal-title":"Kidney Int"},{"issue":"2","key":"pcbi.1009071.ref035","doi-asserted-by":"crossref","DOI":"10.1371\/journal.ppat.1000308","article-title":"A rapid crosstalk of human \u03b3\u03b4 T cells and monocytes drives the acute inflammation in bacterial infections","volume":"5","author":"M Eberl","year":"2009","journal-title":"PLoS Pathog"},{"issue":"12","key":"pcbi.1009071.ref036","doi-asserted-by":"crossref","first-page":"2002","DOI":"10.1681\/ASN.2013040332","article-title":"Pathogen-specific local immune fingerprints diagnose bacterial infection in peritoneal dialysis patients","volume":"24","author":"CY Lin","year":"2013","journal-title":"J Am Soc Nephrol"},{"issue":"9","key":"pcbi.1009071.ref037","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1371\/journal.pcbi.1005112","article-title":"Cytofkit: A Bioconductor Package for an Integrated Mass Cytometry Data Analysis Pipeline","volume":"12","author":"H Chen","year":"2016","journal-title":"PLoS Comput Biol"},{"issue":"7","key":"pcbi.1009071.ref038","doi-asserted-by":"crossref","first-page":"707","DOI":"10.1038\/nmeth.4295","article-title":"Testing for differential abundance in mass cytometry data","volume":"14","author":"ATL Lun","year":"2017","journal-title":"Nat Methods"},{"issue":"3","key":"pcbi.1009071.ref039","doi-asserted-by":"crossref","first-page":"964","DOI":"10.1093\/bioinformatics\/btz625","article-title":"BBKNN: Fast batch alignment of single cell transcriptomes","volume":"36","author":"K Pola\u0144ski","year":"2020","journal-title":"Bioinformatics"}],"updated-by":[{"DOI":"10.1371\/journal.pcbi.1009071","type":"new_version","label":"New version","source":"publisher","updated":{"date-parts":[[2021,6,18]],"date-time":"2021-06-18T00:00:00Z","timestamp":1623974400000}}],"container-title":["PLOS Computational Biology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dx.plos.org\/10.1371\/journal.pcbi.1009071","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,11,4]],"date-time":"2023-11-04T13:37:26Z","timestamp":1699105046000},"score":1,"resource":{"primary":{"URL":"https:\/\/dx.plos.org\/10.1371\/journal.pcbi.1009071"}},"subtitle":[],"editor":[{"given":"Manja","family":"Marz","sequence":"first","affiliation":[],"role":[{"role":"editor","vocabulary":"crossref"}]}],"short-title":[],"issued":{"date-parts":[[2021,6,8]]},"references-count":39,"journal-issue":{"issue":"6","published-online":{"date-parts":[[2021,6,8]]}},"URL":"https:\/\/doi.org\/10.1371\/journal.pcbi.1009071","relation":{"has-preprint":[{"id-type":"doi","id":"10.1101\/2020.04.08.031898","asserted-by":"object"}]},"ISSN":["1553-7358"],"issn-type":[{"value":"1553-7358","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,6,8]]}}}