File: test_lisi.py

package info (click to toggle)
harmonypy 0.0.10-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,092 kB
  • sloc: python: 393; makefile: 5
file content (31 lines) | stat: -rw-r--r-- 836 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import harmonypy as hm
import pandas as pd
import numpy as np

def test_lisi():

    X = pd.read_csv("data/lisi_x.tsv.gz", sep = "\t")
    metadata = pd.read_csv("data/lisi_metadata.tsv.gz", sep = "\t")
    label_colnames = metadata.columns
    perplexity = 30

    lisi = hm.compute_lisi(X, metadata, label_colnames, perplexity)

    lisi_test = pd.read_csv("data/lisi_lisi.tsv.gz", sep="\t")
    lisi_test = lisi_test.iloc[:,-2:].to_numpy()

    assert np.allclose(lisi, lisi_test)

# def timereps(reps, func):
#     from time import time
#     start = time()
#     for i in range(0, reps):
#         func()
#     end = time()
#     return (end - start) / reps
# 
# # 0.3 seconds per loop (too slow)
# timereps(10, lambda: hm.compute_lisi(X, metadata, label_colnames, perplexity))
# 
# 
# # Try https://github.com/rkern/line_profiler