Package: scyan
Scyan stands forSingle-cellCytometryAnnotationNetwork. Based on biological knowledge prior, it provides a fast cell population annotation without requiring any training label. Scyan is an interpretable model that also corrects batch-effect and can be used for debarcoding, cell sampling, and population discovery.DocumentationThecomplete documentation can be found here. It contains installation guidelines, tutorials, a description of the API, etc.OverviewScyan is a Bayesian probabilistic model composed of a deep invertible neural network called a normalizing flow (the function $f_{\phi}$). It maps a latent distribution of cell expressions into the empirical distribution of cell expressions. This cell distribution is a mixture of gaussian-like distributions representing the sum of a cell-specific and a population-specific term. Also, interpretability and batch effect correction are based on the model latent space — more details in the article's Methods section.Getting startedScyan can be installed on every OS withpiporpoetry.On macOS / Linux,python>=3.8,<3.11is required, whilepython>=3.8,<3.10is required on Windows. The preferred Python version is3.9.Install from PyPI (recommended)pipinstallscyanInstall locally (if you want to contribute)Advice (optional): We advise creating a new environment via a package manager (except if you use Poetry, which will automatically create the environment). For instance, you can create a newcondaenvironment:condacreate--namescyanpython=3.9
condaactivatescyanClone the repository and move to its root:gitclonehttps://github.com/MICS-Lab/scyan.gitcdscyanChoose one of the following, depending on your needs (it should take at most a few minutes):pipinstall.# pip minimal installation (library only)pipinstall-e.# pip installation in editable modepipinstall-e'.[dev,hydra,discovery]'# pip installation with all the extraspoetryinstall-E'dev hydra discovery'# poetry installation with all the extrasBasic usage / Demoimportscyanadata,table=scyan.data.load("aml")# Automatic loadingmodel=scyan.Scyan(adata,table)model.fit()model.predict()This code should run in approximately 40 seconds (once the dataset is loaded).
For more usage demo, read thetutorialsor the completedocumentation.Technical descriptionScyan is aPythonlibrary based on:AnnData, a data library that works nicely with single-cell dataPytorch, a deep learning frameworkPytorch Lightning, for model trainingOptionally, it also supports:Hydra, for project configurationWeight & Biases, for model monitoringCite usOur paper is published inBriefings in Bioinformaticsand is availablehere.@article{10.1093/bib/bbad260,
    author = {Blampey, Quentin and Bercovici, Nadège and Dutertre, Charles-Antoine and Pic, Isabelle and Ribeiro, Joana Mourato and André, Fabrice and Cournède, Paul-Henry},
    title = "{A biology-driven deep generative model for cell-type annotation in cytometry}",
    journal = {Briefings in Bioinformatics},
    pages = {bbad260},
    year = {2023},
    month = {07},
    issn = {1477-4054},
    doi = {10.1093/bib/bbad260},
    url = {https://doi.org/10.1093/bib/bbad260},
    eprint = {https://academic.oup.com/bib/advance-article-pdf/doi/10.1093/bib/bbad260/50973199/bbad260.pdf},
}