-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtrial.py
More file actions
65 lines (51 loc) · 2.22 KB
/
trial.py
File metadata and controls
65 lines (51 loc) · 2.22 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import plot
import data_helper
import cluster
import autoencoder
import os
from data_helper import scanpy
def trial(filepath, mingene, mincell, cnum=8):
# make dir
data_dir = "./data/" + "mincell=" + str(mincell) + "_mingene=" + str(mingene) + "/"
graph_dir = "./process_images/" + "mincell=" + str(mincell) + "_mingene=" + str(mingene) + "/"
model_dir = './model/' + "mincell=" + str(mincell) + "_mingene=" + str(mingene) + "/"
if not os.path.exists(data_dir):
os.makedirs(data_dir)
if not os.path.exists(graph_dir):
os.makedirs(graph_dir)
if not os.path.exists(model_dir):
os.makedirs(model_dir)
# filter data
filtered = data_dir + "filtered.txt"
sc = scanpy(filepath, mingenes=mingene, mincells=mincell)
sc.getScanpy(filtered)
# train autoencoder
# autoencoder.train(filtered, model_dir, learning_rate=0.1, batch_size=100, epoch=800)
# generate tsne
plot.getTsne(filtered, graph_dir + "tsne.png")
# generate kmeans
k, _ = cluster.kmeans(filtered, graph_dir + "tsne with kmeans.png", cnum)
# generate centroid values
c = cluster.getCentroids(k, cluster.tsne(filtered), )
cluster.getGeneofCentroids(filtered, graph_dir + "centroid gene matrix.txt", c)
# get cell index of centroids
cindex = [sc.getFilteredCellList()[i] for i in c]
with open(graph_dir + "centroidCellIndex.txt", "w") as out:
out.write(str(cindex))
# get latent space
autoencoder.getLatentSpace(filtered, data_dir, model_dir)
latent = data_dir + "latentSpace.txt"
# generate graphs for latent space
# generate tsne
plot.getTsne(latent, graph_dir + "tsne_latent.png")
# generate kmeans
cluster.kmeans(latent, graph_dir + "tsne with kmeans_latent.png", cnum)
# generate centroid values
c = cluster.getCentroids(k, cluster.tsne(latent), )
cluster.getGeneofCentroids(latent, graph_dir + "centroid gene matrix_latent.txt", c)
# get cell index of centroids
cindex = [sc.getFilteredCellList()[i] for i in c]
with open(graph_dir + "centroidCellIndex_latent.txt", "w") as out:
out.write(str(cindex))
if __name__ == "__main__":
trial("./data/data_indexed_with_label_transposed.csv", mincell=3, mingene=200)