Metadata-Version: 2.1
Name: scFates
Version: 0.2.2
Summary: scanpy compatible python suite for fast tree inference and advanced pseudotime downstream analysis
Home-page: https://github.com/LouisFaure/scFates
Author: Louis Faure
Author-email: 
License: UNKNOWN
Platform: UNKNOWN
Description-Content-Type: text/markdown
Requires-Dist: pandas (>=1.2.4)
Requires-Dist: Sphinx (>=3.5.4)
Requires-Dist: scanpy (>=1.7.2)
Requires-Dist: tqdm (>=4.60.0)
Requires-Dist: plotly (>=4.14.3)
Requires-Dist: rpy2 (>=3.4.4)
Requires-Dist: cellrank (>=1.3.1)
Requires-Dist: numba (>=0.52.0)
Requires-Dist: numpy (>=1.20.2)
Requires-Dist: PhenoGraph (>=1.5.7)
Requires-Dist: docutils (>=0.16)
Requires-Dist: matplotlib (>=3.4.1)
Requires-Dist: cycler (>=0.10.0)
Requires-Dist: typing-extensions (>=3.7.4.3)
Requires-Dist: scikit-misc (>=0.1.3)
Requires-Dist: palantir (>=1.0.0)
Requires-Dist: scipy (>=1.6.3)
Requires-Dist: joblib (==0.16.0)
Requires-Dist: packaging (>=20.9)
Requires-Dist: seaborn (>=0.11.1)
Requires-Dist: pypandoc (>=1.5)
Requires-Dist: statsmodels (>=0.12.2)
Requires-Dist: adjustText (>=0.7.3)
Requires-Dist: anndata (>=0.7.6)
Requires-Dist: importlib-metadata (>=4.0.1)
Requires-Dist: mock (>=4.0.3)
Requires-Dist: python-igraph (>=0.9.1)
Requires-Dist: scikit-learn (>=0.24.1)

|PyPI| |Documentation Status| |CircleCI| |TravisCI| |codecov| |GitHub
license| |Code style: black|

Description
===========

This package provides a scalable Python suite for fast tree inference
and advanced pseudotime downstream analysis, with a focus on fate
biasing. This package is compatible with anndata object format used in
scanpy or scvelo pipelines. A complete documentation of this package is
available `here <https://scfates.readthedocs.io/en/latest>`__.

Tree inference algorithms
=========================

The user have the choice between two algorithm for tree inference:

ElPiGraph
---------

For scTree, the `python <https://github.com/j-bac/elpigraph-python/>`__
implementation of the ElPiGraph algorithm is used, which include GPU
accelerated principal tree inference. A self-contained description of
the algorithm is available
`here <https://github.com/auranic/Elastic-principal-graphs/blob/master/ElPiGraph_Methods.pdf>`__
or in the related `paper <https://www.mdpi.com/1099-4300/22/3/296>`__

A `R implementation <https://github.com/Albluca/ElPiGraph.R>`__ of this
algorithm is also available, coded by `Luca
Albergante <https://github.com/Albluca>`__

A native MATLAB implementation of the algorithm (coded by `Andrei
Zinovyev <https://github.com/auranic/>`__ and `Evgeny
Mirkes <https://github.com/Mirkes>`__) is also
`available <https://github.com/auranic/Elastic-principal-graphs>`__

Simple PPT
----------

A `simple
PPT <https://www.acsu.buffalo.edu/~yijunsun/lab/Paper/simplePPT.pdf>`__
inspired approach, translated from the `crestree R
package <https://github.com/hms-dbmi/crestree>`__, code has been also
adapted to run on GPU for accelerated tree inference.

Citations
=========

Code for PPT inference and most of downstream pseudotime analysis was
initially written in a `R
package <https://github.com/hms-dbmi/crestree>`__ by Ruslan Soldatov for
the following paper:

Soldatov, R., Kaucka, M., Kastriti, M. E., Petersen, J., Chontorotzea,
T., Englmaier, L., … Adameyko, I. (2019). Spatiotemporal structure of
cell fate decisions in murine neural crest. Science, 364(6444).

if you are using ElPiGraph, please cite :

Albergante, L., Mirkes, E. M., Chen, H., Martin, A., Faure, L.,
Barillot, E., … Zinovyev, A. (2020). Robust And Scalable Learning Of
Complex Dataset Topologies Via Elpigraph. Entropy, 22(3), 296.

Code for preprocessing has been translated from R package pagoda2, if
you use any of these functions (``scf.pp.batch_correct`` &
``scf.pp.find_overdispersed``), please cite:

Nikolas Barkas, Viktor Petukhov, Peter Kharchenko and Evan Biederstedt
(2021). pagoda2: Single Cell Analysis and Differential Expression. R
package version 1.0.2.

Palantir python tool provides a great dimensionality reduction method,
which usually lead to consitent trees with scFates, if use
``scf.pp.diffusion``, please cite:

Manu Setty and Vaidotas Kiseliovas and Jacob Levine and Adam Gayoso and
Linas Mazutis and Dana Pe’er (2019) Characterization of cell fate
probabilities in single-cell data with Palantir. Nature Biotechnology

Installation
============

scFates 0.2.1 is now available on pypi, you can install it using:

::

   pip install -U scFates

or the latest development version can be installed from GitHub:

::

   pip install git+https://github.com/LouisFaure/scFates

Python dependencies
-------------------

scFates gives the choice of between SimplePPT and ElPiGraph for learning
a principal graph from the data. Elpigraph needs to be installed from
its github repository with the following command:

::

   pip install git+https://github.com/j-bac/elpigraph-python.git

R dependencies
--------------

scFates rely on the R package *mgcv* to perform testing and fitting of
the features on the peudotime tree. Package is installed in an R session
with the following command:

::

   install.packages('mgcv')

GPU dependencies (optional)
---------------------------

If you have a nvidia GPU, scFates can leverage CUDA computations for
speedups in some functions, for that you will need `Rapids
0.17 <https://rapids.ai/>`__ installed.

Docker container
----------------

scFates can be run on a `Docker
container <https://hub.docker.com/repository/docker/louisfaure/scfates>`__
based on Rapids 0.17 container, which provide a gpu enabled environment
with Jupyter Lab. Use the following command:

::

   docker run --rm -it --gpus all -p 8888:8888 -p 8787:8787 -p 8786:8786 \
       louisfaure/scfates:version-0.2.1

.. |PyPI| image:: https://img.shields.io/pypi/v/scFates.svg
   :target: https://pypi.python.org/pypi/scFates/
.. |Documentation Status| image:: https://readthedocs.org/projects/scfates/badge/?version=latest
   :target: https://scfates.readthedocs.io/en/latest/?badge=latest
.. |CircleCI| image:: https://circleci.com/gh/LouisFaure/scFates.svg?style=shield
   :target: https://circleci.com/gh/LouisFaure/scFates
.. |TravisCI| image:: https://api.travis-ci.com/LouisFaure/scFates.svg?branch=master
   :target: https://travis-ci.com/github/LouisFaure/scFates
.. |codecov| image:: https://codecov.io/gh/LouisFaure/scFates/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/LouisFaure/scFates
.. |GitHub license| image:: https://img.shields.io/github/license/LouisFaure/scFates
   :target: https://github.com/LouisFaure/scFates/blob/master/LICENSE
.. |Code style: black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/psf/black


