/pyInfinityFlow

Python package to generate high dimensional Flow Cytometry datasets using imputation by XGBoost regression

Primary LanguagePythonMIT LicenseMIT

pyInfinityFlow

pyInfinityFlow is a Python package that enables imputation of hundreds of features from Flow Cytometry using XGBoost regression1. It is an adaptation of the original implementation in R2 with the goal of optimizing the workflow for large datasets by increasing the speed and memory efficiency of the analysis pipeline.

The package includes tools to read and write FCS files, following the FCS3.1 file standard, into AnnData objects, allowing for easy downstream analysis of single-cell data with Scanpy3 and UMAP4.

Read more about the pyInfinityFlow package on its Read the Docs page!

Graphical Summary

graphical summary of pyinfinityflow workflow

Recommended Installation

It is recommended to set up a virtual environment to install the package.

Creating a new conda environment and installing pyInfinityFlow:

conda create -n pyInfinityFlow python=3.8
conda activate pyInfinityFlow

pip install pyInfinityFlow

Then pyInfinityFlow will be installed in a conda environment named 'pyInfinityFlow'.

Quickstart

To run the pyInfinityFlow pipeline, we can use this command:

pyInfinityFlow --data_dir /home/kyle/Documents/GitHub/pyInfinityFlow/example_data/mouse_lung_dataset_subset/ \
    --out_dir /media/kyle_ssd1/example_outputs/ \
    --backbone_annotation /home/kyle/Documents/GitHub/pyInfinityFlow/example_data/mouse_lung_dataset_subset_backbone_anno.csv \
    --infinity_marker_annotation /home/kyle/Documents/GitHub/pyInfinityFlow/example_data/mouse_lung_dataset_subset_infinity_marker_anno.csv

Selected References

1 Chen, T., Guestrin, C. XGBoost: A scalable tree boosting system, in Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (Association for Computing Machinery, 2016), pp. 785–794.

2 Becht, E., Tolstrup, D., Dutertre, C. A., Morawski, P. A., Campbell, D. J., Ginhoux, F., ... & Headley, M. B. (2021). High-throughput single-cell quantification of hundreds of proteins using conventional flow cytometry and machine learning. Science advances, 7(39), eabg0505.

3 Wolf, F. A., Angerer, P., & Theis, F. J. (2018). SCANPY: large-scale single-cell gene expression data analysis. Genome biology, 19(1), 1-5.

4 McInnes, L., Healy, J., & Melville, J. (2018). Umap: Uniform manifold approximation and projection for dimension reduction. arXiv preprint arXiv:1802.03426.