Skip to content

Commit 778d90e

Browse files
committed
deploy: a8b1d48
1 parent 6958f26 commit 778d90e

7 files changed

Lines changed: 19 additions & 8 deletions

File tree

.doctrees/api.doctree

0 Bytes
Binary file not shown.

.doctrees/environment.pickle

36 Bytes
Binary file not shown.

.doctrees/overview.doctree

14 Bytes
Binary file not shown.

_sources/api.rst.txt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,20 @@ API Reference
44
illico package
55
--------------
66

7-
.. automodule:: illico.asymptotic_wilcoxon
7+
.. automodule:: illico
88
:members: asymptotic_wilcoxon
99
:undoc-members:
1010
:show-inheritance:
11+
:no-index:
1112

1213
ovo subpackage
1314
--------------
1415

16+
.. automodule:: illico.ovo
17+
:members:
18+
:undoc-members:
19+
:show-inheritance:
20+
1521
.. automodule:: illico.ovo.dense_ovo
1622
:members:
1723
:undoc-members:
@@ -25,6 +31,11 @@ ovo subpackage
2531
ovr subpackage
2632
--------------
2733

34+
.. automodule:: illico.ovr
35+
:members:
36+
:undoc-members:
37+
:show-inheritance:
38+
2839
.. automodule:: illico.ovr.dense_ovr
2940
:members:
3041
:undoc-members:

_sources/overview.md.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
*illico* is a python library performing blazing fast asymptotic wilcoxon rank-sum tests (same as `scanpy.tl.rank_genes_groups(…, method="wilcoxon")`), useful for single-cell RNASeq data analyses and processing. `illico`'s features are:
44

5-
1. 🚀 Blazing fast: On K562 (essential) dataset (~300k cells, 8k genes, 2k perturbations), `illico` computes DE genes (with `reference="non-targeting"`) in a mere 20 seconds. That's more than 100 times faster than both `pdex` or `scanpy` with the same compute ressources (8 CPUs).
5+
1. 🚀 Blazing fast: On K562 (essential) dataset (~300k cells, 8k genes, 2k perturbations), `illico` computes DE genes (with `reference="non-targeting"`) in a mere 15 seconds. That's more than 100 times faster than both `pdex` or `scanpy` with the same compute ressources (8 CPUs).
66
2. 💠 No compromise: on synthetic data, `illico`'s p-values matched `scipy.stats.mannwhitneyu` up to a relative difference of 1.e-12, and an absolute tolerance of 0.
77
3. ⚡ Thread-first: `illico` eventually parallelizes the processing (if specified by the user) over **threads**, never processes. This saves you from all the fixed cost of multiprocessing, such as spanning processes, duplicating data across processes, and communication costs.
88
4. 🐞 Data format agnostic: whether your data is dense, sparse along rows, or sparse along columns, `illico` will deal with it while never converting the whole data to whichever format is more optimized.
99
5. 🪶 Lightweight: `illico` will process the input data in batches, making any memory allocation needed along the way much smaller than if it processed the whole data at once.
10-
6. 📈 Scalable: Because thread-first and batchable, `illico` scales reasonably with your compute budget. Tests showed that spanning 8 threads brings a 7-fold speedup over spanning 1 single thread.
11-
7. 💾 Out-of-core: `illico` supports h5-based, on-disk-backed, dense and CSC datasets natively.
10+
6. 📈 Scalable: Because thread-first and batchable, `illico` scales reasonably with your compute budget. Tests showed that spanning 16 threads brings a 14-fold speedup over spanning 1 single thread.
11+
7. 💾 Out-of-core: `illico` supports h5-based, on-disk-backed, dense, CSC and CSR datasets natively.
1212
8. 🎆 All-purpose: `illico` performs both one-versus-reference (useful for perturbation analyses) and one-versus-rest (useful for clustering analyses) wilcoxon rank-sum tests, both equally optimized and fast.
1313

1414
Approximate speed benchmarks ran on k562-essential can be found in the Benchmarks section. All the code used to generate those numbers can be found in `tests/test_asymptotic_wilcoxon.py::test_speed_benchmark`.

overview.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,13 +243,13 @@
243243
<h1>Overview<a class="headerlink" href="#overview" title="Link to this heading"></a></h1>
244244
<p><em>illico</em> is a python library performing blazing fast asymptotic wilcoxon rank-sum tests (same as <code class="docutils literal notranslate"><span class="pre">scanpy.tl.rank_genes_groups(…,</span> <span class="pre">method=&quot;wilcoxon&quot;)</span></code>), useful for single-cell RNASeq data analyses and processing. <code class="docutils literal notranslate"><span class="pre">illico</span></code>’s features are:</p>
245245
<ol class="arabic simple">
246-
<li><p>🚀 Blazing fast: On K562 (essential) dataset (~300k cells, 8k genes, 2k perturbations), <code class="docutils literal notranslate"><span class="pre">illico</span></code> computes DE genes (with <code class="docutils literal notranslate"><span class="pre">reference=&quot;non-targeting&quot;</span></code>) in a mere 20 seconds. That’s more than 100 times faster than both <code class="docutils literal notranslate"><span class="pre">pdex</span></code> or <code class="docutils literal notranslate"><span class="pre">scanpy</span></code> with the same compute ressources (8 CPUs).</p></li>
246+
<li><p>🚀 Blazing fast: On K562 (essential) dataset (~300k cells, 8k genes, 2k perturbations), <code class="docutils literal notranslate"><span class="pre">illico</span></code> computes DE genes (with <code class="docutils literal notranslate"><span class="pre">reference=&quot;non-targeting&quot;</span></code>) in a mere 15 seconds. That’s more than 100 times faster than both <code class="docutils literal notranslate"><span class="pre">pdex</span></code> or <code class="docutils literal notranslate"><span class="pre">scanpy</span></code> with the same compute ressources (8 CPUs).</p></li>
247247
<li><p>💠 No compromise: on synthetic data, <code class="docutils literal notranslate"><span class="pre">illico</span></code>’s p-values matched <code class="docutils literal notranslate"><span class="pre">scipy.stats.mannwhitneyu</span></code> up to a relative difference of 1.e-12, and an absolute tolerance of 0.</p></li>
248248
<li><p>⚡ Thread-first: <code class="docutils literal notranslate"><span class="pre">illico</span></code> eventually parallelizes the processing (if specified by the user) over <strong>threads</strong>, never processes. This saves you from all the fixed cost of multiprocessing, such as spanning processes, duplicating data across processes, and communication costs.</p></li>
249249
<li><p>🐞 Data format agnostic: whether your data is dense, sparse along rows, or sparse along columns, <code class="docutils literal notranslate"><span class="pre">illico</span></code> will deal with it while never converting the whole data to whichever format is more optimized.</p></li>
250250
<li><p>🪶 Lightweight: <code class="docutils literal notranslate"><span class="pre">illico</span></code> will process the input data in batches, making any memory allocation needed along the way much smaller than if it processed the whole data at once.</p></li>
251-
<li><p>📈 Scalable: Because thread-first and batchable, <code class="docutils literal notranslate"><span class="pre">illico</span></code> scales reasonably with your compute budget. Tests showed that spanning 8 threads brings a 7-fold speedup over spanning 1 single thread.</p></li>
252-
<li><p>💾 Out-of-core: <code class="docutils literal notranslate"><span class="pre">illico</span></code> supports h5-based, on-disk-backed, dense and CSC datasets natively.</p></li>
251+
<li><p>📈 Scalable: Because thread-first and batchable, <code class="docutils literal notranslate"><span class="pre">illico</span></code> scales reasonably with your compute budget. Tests showed that spanning 16 threads brings a 14-fold speedup over spanning 1 single thread.</p></li>
252+
<li><p>💾 Out-of-core: <code class="docutils literal notranslate"><span class="pre">illico</span></code> supports h5-based, on-disk-backed, dense, CSC and CSR datasets natively.</p></li>
253253
<li><p>🎆 All-purpose: <code class="docutils literal notranslate"><span class="pre">illico</span></code> performs both one-versus-reference (useful for perturbation analyses) and one-versus-rest (useful for clustering analyses) wilcoxon rank-sum tests, both equally optimized and fast.</p></li>
254254
</ol>
255255
<p>Approximate speed benchmarks ran on k562-essential can be found in the Benchmarks section. All the code used to generate those numbers can be found in <code class="docutils literal notranslate"><span class="pre">tests/test_asymptotic_wilcoxon.py::test_speed_benchmark</span></code>.</p>

0 commit comments

Comments
 (0)