1Metadata-Version: 2.1
2Name: openTSNE
3Version: 0.6.1
4Summary: Extensible, parallel implementations of t-SNE
5Home-page: https://github.com/pavlin-policar/openTSNE
6Author: Pavlin Poličar
7Author-email: pavlin.g.p@gmail.com
8License: BSD-3-Clause
9Project-URL: Documentation, https://opentsne.readthedocs.io/
10Project-URL: Source, https://github.com/pavlin-policar/openTSNE
11Project-URL: Issue Tracker, https://github.com/pavlin-policar/openTSNE/issues
12Description: openTSNE
13        ========
14
15        |Build Status| |ReadTheDocs Badge| |License Badge|
16
17        openTSNE is a modular Python implementation of t-Distributed Stochasitc Neighbor Embedding (t-SNE) [1]_, a popular dimensionality-reduction algorithm for visualizing high-dimensional data sets. openTSNE incorporates the latest improvements to the t-SNE algorithm, including the ability to add new data points to existing embeddings [2]_, massive speed improvements [3]_ [4]_, enabling t-SNE to scale to millions of data points and various tricks to improve global alignment of the resulting visualizations [5]_.
18
19        .. figure:: docs/source/images/macosko_2015.png
20           :alt: Macosko 2015 mouse retina t-SNE embedding
21           :align: center
22
23           A visualization of 44,808 single cell transcriptomes obtained from the mouse retina [6]_ embedded using the multiscale kernel trick to better preserve the global aligment of the clusters.
24
25        - `Documentation <http://opentsne.readthedocs.io>`__
26        - `User Guide and Tutorial <https://opentsne.readthedocs.io/en/latest/tsne_algorithm.html>`__
27        - Examples: `basic <https://opentsne.readthedocs.io/en/latest/examples/01_simple_usage/01_simple_usage.html>`__, `advanced <https://opentsne.readthedocs.io/en/latest/examples/02_advanced_usage/02_advanced_usage.html>`__, `preserving global alignment <https://opentsne.readthedocs.io/en/latest/examples/03_preserving_global_structure/03_preserving_global_structure.html>`__, `embedding large data sets <https://opentsne.readthedocs.io/en/latest/examples/04_large_data_sets/04_large_data_sets.html>`__
28        - `Speed benchmarks <https://opentsne.readthedocs.io/en/latest/benchmarks.html>`__
29
30        Installation
31        ------------
32
33        openTSNE requires Python 3.7 or higher in order to run.
34
35        Conda
36        ~~~~~
37
38        openTSNE can be easily installed from ``conda-forge`` with
39
40        ::
41
42           conda install --channel conda-forge opentsne
43
44        `Conda package <https://anaconda.org/conda-forge/opentsne>`__
45
46        PyPi
47        ~~~~
48
49        openTSNE is also available through ``pip`` and can be installed with
50
51        ::
52
53           pip install opentsne
54
55        `PyPi package <https://pypi.org/project/openTSNE>`__
56
57        Installing from source
58        ~~~~~~~~~~~~~~~~~~~~~~
59
60        If you wish to install openTSNE from source, please run
61
62        ::
63
64           python setup.py install
65
66
67        in the root directory to install the appropriate dependencies and compile the necessary binary files.
68
69        Please note that openTSNE requires a C/C++ compiler to be available on the system. Additionally,
70        ``numpy`` must be pre-installed in the active environment.
71
72        In order for openTSNE to utilize multiple threads, the C/C++ compiler
73        must support ``OpenMP``. In practice, almost all compilers
74        implement this with the exception of older version of ``clang`` on OSX
75        systems.
76
77        To squeeze the most out of openTSNE, you may also consider installing
78        FFTW3 prior to installation. FFTW3 implements the Fast Fourier
79        Transform, which is heavily used in openTSNE. If FFTW3 is not available,
80        openTSNE will use numpy’s implementation of the FFT, which is slightly
81        slower than FFTW. The difference is only noticeable with large data sets
82        containing millions of data points.
83
84        A hello world example
85        ---------------------
86
87        Getting started with openTSNE is very simple. First, we'll load up some data using scikit-learn
88
89        .. code:: python
90
91           from sklearn import datasets
92
93           iris = datasets.load_iris()
94           x, y = iris["data"], iris["target"]
95
96        then, we'll import and run
97
98        .. code:: python
99
100           from openTSNE import TSNE
101
102           embedding = TSNE().fit(x)
103
104        Citation
105        --------
106
107        If you make use of openTSNE for your work we would appreciate it if you would cite the paper
108
109        .. code::
110
111            @article {Poli{\v c}ar731877,
112                author = {Poli{\v c}ar, Pavlin G. and Stra{\v z}ar, Martin and Zupan, Bla{\v z}},
113                title = {openTSNE: a modular Python library for t-SNE dimensionality reduction and embedding},
114                year = {2019},
115                doi = {10.1101/731877},
116                publisher = {Cold Spring Harbor Laboratory},
117                URL = {https://www.biorxiv.org/content/early/2019/08/13/731877},
118                eprint = {https://www.biorxiv.org/content/early/2019/08/13/731877.full.pdf},
119                journal = {bioRxiv}
120            }
121
122        openTSNE implements two efficient algorithms for t-SNE. Please consider citing the original authors of the algorithm that you use. If you use FIt-SNE (default), then the citation is [4]_ below, but if you use Barnes-Hut the citation is [3]_.
123
124
125        References
126        ----------
127
128        .. [1] Van Der Maaten, Laurens, and Hinton, Geoffrey. `“Visualizing data using
129            t-SNE.” <http://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf>`__
130            Journal of Machine Learning Research 9.Nov (2008): 2579-2605.
131        .. [2] Poličar, Pavlin G., Martin Stražar, and Blaž Zupan. `“Embedding to Reference t-SNE Space Addresses Batch Effects in Single-Cell Classification.” <https://link.springer.com/article/10.1007/s10994-021-06043-1>`__ Machine Learning (2021): 1-20.
132        .. [3] Van Der Maaten, Laurens. `“Accelerating t-SNE using tree-based algorithms.”
133            <http://www.jmlr.org/papers/volume15/vandermaaten14a/vandermaaten14a.pdf>`__
134            Journal of Machine Learning Research 15.1 (2014): 3221-3245.
135        .. [4] Linderman, George C., et al. `"Fast interpolation-based t-SNE for improved
136            visualization of single-cell RNA-seq data." <https://www.nature.com/articles/s41592-018-0308-4>`__ Nature Methods 16.3 (2019): 243.
137        .. [5] Kobak, Dmitry, and Berens, Philipp. `“The art of using t-SNE for single-cell transcriptomics.” <https://www.nature.com/articles/s41467-019-13056-x>`__
138            Nature Communications 10, 5416 (2019).
139        .. [6] Macosko, Evan Z., et al. \ `“Highly parallel genome-wide expression profiling of
140            individual cells using nanoliter droplets.”
141            <https://www.sciencedirect.com/science/article/pii/S0092867415005498>`__
142            Cell 161.5 (2015): 1202-1214.
143
144        .. |Build Status| image:: https://dev.azure.com/pavlingp/openTSNE/_apis/build/status/Test?branchName=master
145           :target: https://dev.azure.com/pavlingp/openTSNE/_build/latest?definitionId=1&branchName=master
146        .. |ReadTheDocs Badge| image:: https://readthedocs.org/projects/opentsne/badge/?version=latest
147           :target: https://opentsne.readthedocs.io/en/latest/?badge=latest
148           :alt: Documentation Status
149        .. |License Badge| image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg
150           :target: https://opensource.org/licenses/BSD-3-Clause
151
152Platform: UNKNOWN
153Classifier: Development Status :: 5 - Production/Stable
154Classifier: Intended Audience :: Science/Research
155Classifier: Intended Audience :: Developers
156Classifier: Topic :: Software Development
157Classifier: Topic :: Scientific/Engineering
158Classifier: Operating System :: Microsoft :: Windows
159Classifier: Operating System :: POSIX
160Classifier: Operating System :: Unix
161Classifier: Operating System :: MacOS
162Classifier: License :: OSI Approved
163Classifier: Programming Language :: Python :: 3
164Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
165Classifier: Topic :: Scientific/Engineering :: Visualization
166Classifier: Topic :: Software Development :: Libraries :: Python Modules
167Requires-Python: >=3.6
168Provides-Extra: hnsw
169Provides-Extra: pynndescent
170