Switch to unified view

a b/python-scripts/runCancerVAE2.py
1
from keras.layers import Input, Dense
2
from keras.models import Model
3
import numpy as np
4
import pandas as pd
5
import matplotlib.pyplot as plt
6
from sklearn.cluster import KMeans
7
from sklearn.cluster import k_means
8
from sklearn.metrics import silhouette_score, davies_bouldin_score
9
from sklearn.preprocessing import normalize
10
import time
11
from sklearn import metrics
12
from myUtils import *
13
from VAEclass import VAE
14
import os
15
from keras import backend as K
16
17
def get_EM(datapath,resultpath):
18
    omics1 = np.loadtxt('{}/log_exp_omics.txt'.format(datapath))
19
    omics1 = np.transpose(omics1)
20
    omics1 = normalize(omics1, axis=0, norm='max')
21
    print(omics1.shape)
22
    omics2 = np.loadtxt('{}/log_mirna_omics.txt'.format(datapath))
23
    omics2 = np.transpose(omics2)
24
    omics2 = normalize(omics2, axis=0, norm='max')
25
    print(omics2.shape)
26
    omics3 = np.loadtxt('{}/methy_omics.txt'.format(datapath))
27
    omics3 = np.transpose(omics3)
28
    omics3 = normalize(omics3, axis=0, norm='max')
29
    print(omics3.shape)
30
    omics = np.concatenate((omics1, omics2, omics3), axis=1)
31
    print(omics.shape)
32
    data = omics
33
34
35
36
37
    encoding1_dim1 = 1000
38
    encoding2_dim1 = 100
39
    middle_dim1 = 4
40
    dims1 = [encoding1_dim1, encoding2_dim1, middle_dim1]
41
    ae1 = VAE(omics1, dims1)
42
    ae1.train()
43
    ae1.autoencoder.summary()
44
    encoded_factor1 = ae1.predict(omics1)
45
46
    encoding1_dim2 = 500
47
    encoding2_dim2 = 50
48
    middle_dim2 = 2
49
    dims2 = [encoding1_dim2, encoding2_dim2, middle_dim2]
50
    ae2 = VAE(omics2, dims2)
51
    ae2.train()
52
    ae2.autoencoder.summary()
53
    encoded_factor2 = ae2.predict(omics2)
54
55
    encoding1_dim3 = 1000
56
    encoding2_dim3 = 100
57
    middle_dim3 = 4
58
    dims3 = [encoding1_dim3, encoding2_dim3, middle_dim3]
59
    ae3 = VAE(omics3, dims3)
60
    ae3.autoencoder.summary()
61
    ae3.train()
62
    encoded_factor3 = ae3.predict(omics3)
63
64
    encoded_factors = np.concatenate((encoded_factor1, encoded_factor2, encoded_factor3), axis=1)
65
66
67
    if not os.path.exists("{}/VAE_FAETC_EM.txt".format(resultpath)):
68
        os.mknod("{}/VAE_FAETC_EM.txt".format(resultpath))
69
    np.savetxt("{}/VAE_FAETC_EM.txt".format(resultpath), encoded_factors)
70
    K.clear_session()
71
72
73
if __name__ == '__main__':
74
    data_dir_list = []
75
    result_dir_list = []
76
    data_path = r"data/cancer"
77
    result_path = r"result/cancer"
78
    dir_or_files = os.listdir(data_path)
79
    for dir_file in dir_or_files:
80
        # 获取目录或者文件的路径
81
        data_dir_file_path = os.path.join(data_path, dir_file)
82
        result_dir_file_path = os.path.join(result_path, dir_file)
83
        # 判断该路径为文件还是路径
84
        if os.path.isdir(data_dir_file_path):
85
            data_dir_list.append(data_dir_file_path)
86
            if not os.path.exists(result_dir_file_path):
87
                os.makedirs(result_dir_file_path)
88
            result_dir_list.append(result_dir_file_path)
89
    print(data_dir_list)
90
    print(result_dir_list)
91
    # #data_dir_list=['data/cancer/breast', 'data/cancer/kidney', 'data/cancer/lung', 'data/cancer/liver']
92
    # #result_dir_list=['result/cancer/breast', 'result/cancer/kidney', 'result/cancer/lung', 'result/cancer/liver']
93
94
    for datapath,resultpath in zip(data_dir_list,result_dir_list):
95
        get_EM(datapath, resultpath)
96
    # datapath='data/cancer/liver'
97
    # resultpath='result/cancer/liver'
98
    get_EM(datapath, resultpath)
99
100
101
102
103
104
105
106
107