Switch to unified view

a b/python-scripts/runCancerDAE.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 DAEclass import DAE
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
    input_dim = data.shape[1]
34
    encoding1_dim = 3000
35
    encoding2_dim = 300
36
    middle_dim = 10
37
    noise_factor = 0.1
38
39
    dims = [encoding1_dim, encoding2_dim, middle_dim]
40
    dae = DAE(data, dims, noise_factor)
41
    # ae.autoencoder.summary()
42
    dae.train()
43
    encoded_factors = dae.predict(data)
44
    if not os.path.exists("{}/DAE_FCTAE_EM.txt".format(resultpath)):
45
        os.mknod("{}/DAE_FCTAE_EM.txt".format(resultpath))
46
    np.savetxt("{}/DAE_FCTAE_EM.txt".format(resultpath), encoded_factors)
47
    K.clear_session()
48
49
50
if __name__ == '__main__':
51
    data_dir_list = []
52
    result_dir_list = []
53
    data_path = r"data/cancer4"
54
    result_path = r"result/cancer4"
55
    dir_or_files = os.listdir(data_path)
56
    for dir_file in dir_or_files:
57
        # 获取目录或者文件的路径
58
        data_dir_file_path = os.path.join(data_path, dir_file)
59
        result_dir_file_path = os.path.join(result_path, dir_file)
60
        # 判断该路径为文件还是路径
61
        if os.path.isdir(data_dir_file_path):
62
            data_dir_list.append(data_dir_file_path)
63
            if not os.path.exists(result_dir_file_path):
64
                os.makedirs(result_dir_file_path)
65
            result_dir_list.append(result_dir_file_path)
66
    #print(data_dir_list)
67
    #print(result_dir_list)
68
    #data_dir_list=['data/cancer/breast', 'data/cancer/kidney', 'data/cancer/lung', 'data/cancer/liver']
69
    #result_dir_list=['result/cancer/breast', 'result/cancer/kidney', 'result/cancer/lung', 'result/cancer/liver']
70
71
    for datapath,resultpath in zip(data_dir_list,result_dir_list):
72
        get_EM(datapath, resultpath)
73
74
75
76
77
78
79
80