Tutorial:RNA+ATAC (well-labeled)

In this tutorial, we will show how to cluster RNA+ATAC(well-labeled) data using scMAGCA. As an example, we use a human peripheral blood mononuclear sample dataset ‘human_brain_10x’ containing 2592 cells with two omics. Among them, ATAC has 130862 features and RNA contains 36601 features.

Loading package

[41]:
import numpy as np
import pandas as pd
import torch
import scanpy as sc
import random
import warnings
from scipy.sparse import csr_matrix
from scipy.io import mmread
warnings.filterwarnings("ignore")
[42]:
from scMAGCA.preprocess import read_dataset, preprocess_dataset
from scMAGCA.utils import *
from scMAGCA.scMAGCA import scMultiCluster
[43]:
# set seed
random.seed(3407)
np.random.seed(3407)
torch.manual_seed(3407)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.enabled = False
torch.backends.cudnn.benchmark = False

Reading dataset

The required input files include:

  1. x1: Chromatin accessibility matrix (data format is mtx file) : human_brain_10x_ATAC_matrix.mtx;

  2. x2: Gene expression matrix (data format is mtx file) : human_brain_10x_RNA_matrix.mtx.

  3. Real label (stored as csv file) : human_brain_10x_label.csv.

To ensure reproducibility of the results, please read the above data as follows:

[44]:
x1 = csr_matrix(mmread('../datasets/human_brain_10x/human_brain_10x_ATAC_matrix.mtx').T).toarray()
x2 = csr_matrix(mmread('../datasets/human_brain_10x/human_brain_10x_RNA_matrix.mtx').T).toarray()
y = np.array(pd.read_csv('../datasets/human_brain_10x/human_brain_10x_label.csv', index_col=0)['cell_type'])
[45]:
x1,x2,y
[45]:
(array([[0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        ...,
        [0, 0, 0, ..., 0, 2, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0]]),
 array([[0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        ...,
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0]]),
 array([0, 0, 5, ..., 3, 0, 6]))

We select the two omics data for high expression, and the number of chosen features are both set to 2000.

[46]:
importantGenes = geneSelection(x1, n=2000)
x1 = x1[:, importantGenes]
importantGenes = geneSelection(x2, n=2000)
x2 = x2[:, importantGenes]
Chosen offset: 1.21
Chosen offset: 0.77
_images/Tutorial_RNA_ATAC_11_1.png
_images/Tutorial_RNA_ATAC_11_2.png
[47]:
adata1 = sc.AnnData(x1)
adata1 = read_dataset(adata1, copy=True)
adata1 = preprocess_dataset(adata1, normalize_input=True, logtrans_input=True)
### Autoencoder: Successfully preprocessed 2000 features and 2855 cells.
[48]:
adata1
[48]:
AnnData object with n_obs × n_vars = 2855 × 2000
    obs: 'DCA_split', 'size_factors'
    var: 'mean', 'std'
    uns: 'log1p'
[49]:
adata2 = sc.AnnData(x2)
adata2 = read_dataset(adata2, copy=True)
adata2 = preprocess_dataset(adata2, normalize_input=True, logtrans_input=True)
### Autoencoder: Successfully preprocessed 2000 features and 2855 cells.
[50]:
adata2
[50]:
AnnData object with n_obs × n_vars = 2855 × 2000
    obs: 'DCA_split', 'size_factors'
    var: 'mean', 'std'
    uns: 'log1p'

Training the model

[51]:
model = scMultiCluster(input_dim1=adata1.n_vars,input_dim2=adata2.n_vars,
                       alpha=0.2,beta=0.5,gama=0.01,device='cuda').to('cuda')
[52]:
model
[52]:
scMultiCluster(
  (encoder): Encoder(
    (stacked_gnn): ModuleList(
      (0): GCNConv(4000, 1024)
      (1): GCNConv(1024, 256)
      (2): GCNConv(256, 64)
      (3): GCNConv(64, 32)
    )
    (stacked_bns): ModuleList(
      (0): BatchNorm1d(1024, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)
      (1): BatchNorm1d(256, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)
      (2): BatchNorm1d(64, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)
      (3): BatchNorm1d(32, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)
    )
    (stacked_prelus): ModuleList(
      (0-3): 4 x PReLU(num_parameters=1)
    )
  )
  (decoder): Sequential(
    (0): Linear(in_features=32, out_features=512, bias=True)
    (1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): PReLU(num_parameters=1)
    (3): Linear(in_features=512, out_features=1024, bias=True)
    (4): BatchNorm1d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): PReLU(num_parameters=1)
    (6): Linear(in_features=1024, out_features=4000, bias=True)
  )
  (dec_mean): Sequential(
    (0): Linear(in_features=32, out_features=256, bias=True)
    (1): Linear(in_features=256, out_features=512, bias=True)
    (2): Linear(in_features=512, out_features=4000, bias=True)
    (3): MeanAct()
  )
  (dec_disp): Sequential(
    (0): Linear(in_features=32, out_features=256, bias=True)
    (1): Linear(in_features=256, out_features=512, bias=True)
    (2): Linear(in_features=512, out_features=4000, bias=True)
    (3): DispAct()
  )
  (dec_pi): Sequential(
    (0): Linear(in_features=32, out_features=256, bias=True)
    (1): Linear(in_features=256, out_features=512, bias=True)
    (2): Linear(in_features=512, out_features=4000, bias=True)
    (3): Sigmoid()
  )
  (zinb_loss): ZINBLoss()
)
[53]:
pretrain_latent = model.pretrain_autoencoder(
                        X1=adata1.X, X2=adata2.X, X1_raw=adata1.raw.X, X2_raw=adata2.raw.X,
                        epochs=400, file='human_brain_10x',ad_out=32)
Pretraining stage
Processing...
Done!
Processing full batch data
Pretrain epoch 1, recon_loss:1.169784, zinb_loss:1.408436, adversial_loss:1.388419
Pretrain epoch 2, recon_loss:1.070342, zinb_loss:1.344619, adversial_loss:1.398618
Pretrain epoch 3, recon_loss:0.856114, zinb_loss:1.233490, adversial_loss:1.383326
Pretrain epoch 4, recon_loss:0.777161, zinb_loss:1.138344, adversial_loss:1.387546
Pretrain epoch 5, recon_loss:0.756221, zinb_loss:1.058208, adversial_loss:1.387960
Pretrain epoch 6, recon_loss:0.727621, zinb_loss:0.997085, adversial_loss:1.388463
Pretrain epoch 7, recon_loss:0.714406, zinb_loss:0.949877, adversial_loss:1.388127
Pretrain epoch 8, recon_loss:0.706106, zinb_loss:0.913157, adversial_loss:1.387559
Pretrain epoch 9, recon_loss:0.698698, zinb_loss:0.883854, adversial_loss:1.386571
Pretrain epoch 10, recon_loss:0.691434, zinb_loss:0.861529, adversial_loss:1.386741
Pretrain epoch 11, recon_loss:0.685417, zinb_loss:0.845830, adversial_loss:1.386302
Pretrain epoch 12, recon_loss:0.680195, zinb_loss:0.836537, adversial_loss:1.385211
Pretrain epoch 13, recon_loss:0.676537, zinb_loss:0.831823, adversial_loss:1.383904
Pretrain epoch 14, recon_loss:0.673439, zinb_loss:0.827924, adversial_loss:1.382640
Pretrain epoch 15, recon_loss:0.670256, zinb_loss:0.822974, adversial_loss:1.381075
Pretrain epoch 16, recon_loss:0.667548, zinb_loss:0.817790, adversial_loss:1.379253
Pretrain epoch 17, recon_loss:0.665054, zinb_loss:0.812265, adversial_loss:1.377839
Pretrain epoch 18, recon_loss:0.663192, zinb_loss:0.805716, adversial_loss:1.375915
Pretrain epoch 19, recon_loss:0.661385, zinb_loss:0.798364, adversial_loss:1.373804
Pretrain epoch 20, recon_loss:0.659305, zinb_loss:0.791880, adversial_loss:1.372130
Pretrain epoch 21, recon_loss:0.657309, zinb_loss:0.786778, adversial_loss:1.370895
Pretrain epoch 22, recon_loss:0.655640, zinb_loss:0.782695, adversial_loss:1.369990
Pretrain epoch 23, recon_loss:0.654056, zinb_loss:0.779225, adversial_loss:1.369219
Pretrain epoch 24, recon_loss:0.652686, zinb_loss:0.776025, adversial_loss:1.368398
Pretrain epoch 25, recon_loss:0.651429, zinb_loss:0.772747, adversial_loss:1.367414
Pretrain epoch 26, recon_loss:0.650082, zinb_loss:0.769552, adversial_loss:1.366338
Pretrain epoch 27, recon_loss:0.648808, zinb_loss:0.766707, adversial_loss:1.365443
Pretrain epoch 28, recon_loss:0.647645, zinb_loss:0.763927, adversial_loss:1.364937
Pretrain epoch 29, recon_loss:0.646524, zinb_loss:0.761138, adversial_loss:1.364495
Pretrain epoch 30, recon_loss:0.645425, zinb_loss:0.758414, adversial_loss:1.363612
Pretrain epoch 31, recon_loss:0.644396, zinb_loss:0.755813, adversial_loss:1.362422
Pretrain epoch 32, recon_loss:0.643441, zinb_loss:0.753517, adversial_loss:1.361408
Pretrain epoch 33, recon_loss:0.642569, zinb_loss:0.751526, adversial_loss:1.360630
Pretrain epoch 34, recon_loss:0.641707, zinb_loss:0.749856, adversial_loss:1.360004
Pretrain epoch 35, recon_loss:0.640825, zinb_loss:0.748321, adversial_loss:1.359344
Pretrain epoch 36, recon_loss:0.639981, zinb_loss:0.746828, adversial_loss:1.358500
Pretrain epoch 37, recon_loss:0.639136, zinb_loss:0.745318, adversial_loss:1.357426
Pretrain epoch 38, recon_loss:0.638216, zinb_loss:0.743760, adversial_loss:1.355848
Pretrain epoch 39, recon_loss:0.637380, zinb_loss:0.742236, adversial_loss:1.353912
Pretrain epoch 40, recon_loss:0.636687, zinb_loss:0.740813, adversial_loss:1.352156
Pretrain epoch 41, recon_loss:0.636052, zinb_loss:0.739468, adversial_loss:1.350634
Pretrain epoch 42, recon_loss:0.635389, zinb_loss:0.738166, adversial_loss:1.349464
Pretrain epoch 43, recon_loss:0.634717, zinb_loss:0.736892, adversial_loss:1.348795
Pretrain epoch 44, recon_loss:0.634095, zinb_loss:0.735710, adversial_loss:1.348157
Pretrain epoch 45, recon_loss:0.633546, zinb_loss:0.734619, adversial_loss:1.347267
Pretrain epoch 46, recon_loss:0.632996, zinb_loss:0.733619, adversial_loss:1.346388
Pretrain epoch 47, recon_loss:0.632496, zinb_loss:0.732654, adversial_loss:1.345413
Pretrain epoch 48, recon_loss:0.631952, zinb_loss:0.731729, adversial_loss:1.344848
Pretrain epoch 49, recon_loss:0.631508, zinb_loss:0.730977, adversial_loss:1.344065
Pretrain epoch 50, recon_loss:0.631420, zinb_loss:0.730854, adversial_loss:1.343822
Pretrain epoch 51, recon_loss:0.631906, zinb_loss:0.731071, adversial_loss:1.343062
Pretrain epoch 52, recon_loss:0.630444, zinb_loss:0.729330, adversial_loss:1.342873
Pretrain epoch 53, recon_loss:0.629704, zinb_loss:0.728187, adversial_loss:1.341585
Pretrain epoch 54, recon_loss:0.630057, zinb_loss:0.728062, adversial_loss:1.341042
Pretrain epoch 55, recon_loss:0.628796, zinb_loss:0.726502, adversial_loss:1.340571
Pretrain epoch 56, recon_loss:0.629088, zinb_loss:0.726583, adversial_loss:1.340474
Pretrain epoch 57, recon_loss:0.628052, zinb_loss:0.725286, adversial_loss:1.339191
Pretrain epoch 58, recon_loss:0.628274, zinb_loss:0.725267, adversial_loss:1.338458
Pretrain epoch 59, recon_loss:0.627336, zinb_loss:0.724268, adversial_loss:1.338002
Pretrain epoch 60, recon_loss:0.627312, zinb_loss:0.724190, adversial_loss:1.337632
Pretrain epoch 61, recon_loss:0.626776, zinb_loss:0.723404, adversial_loss:1.337488
Pretrain epoch 62, recon_loss:0.627032, zinb_loss:0.723379, adversial_loss:1.336732
Pretrain epoch 63, recon_loss:0.626438, zinb_loss:0.723189, adversial_loss:1.335974
Pretrain epoch 64, recon_loss:0.626476, zinb_loss:0.722660, adversial_loss:1.334697
Pretrain epoch 65, recon_loss:0.625597, zinb_loss:0.721975, adversial_loss:1.334619
Pretrain epoch 66, recon_loss:0.624939, zinb_loss:0.721154, adversial_loss:1.334243
Pretrain epoch 67, recon_loss:0.624900, zinb_loss:0.721179, adversial_loss:1.333704
Pretrain epoch 68, recon_loss:0.624376, zinb_loss:0.721021, adversial_loss:1.333103
Pretrain epoch 69, recon_loss:0.624289, zinb_loss:0.720321, adversial_loss:1.332160
Pretrain epoch 70, recon_loss:0.623500, zinb_loss:0.719786, adversial_loss:1.331645
Pretrain epoch 71, recon_loss:0.623196, zinb_loss:0.719570, adversial_loss:1.331787
Pretrain epoch 72, recon_loss:0.623136, zinb_loss:0.719509, adversial_loss:1.331422
Pretrain epoch 73, recon_loss:0.622260, zinb_loss:0.718859, adversial_loss:1.330395
Pretrain epoch 74, recon_loss:0.621775, zinb_loss:0.718441, adversial_loss:1.329675
Pretrain epoch 75, recon_loss:0.621847, zinb_loss:0.718343, adversial_loss:1.329239
Pretrain epoch 76, recon_loss:0.621217, zinb_loss:0.718222, adversial_loss:1.328940
Pretrain epoch 77, recon_loss:0.620634, zinb_loss:0.717626, adversial_loss:1.328496
Pretrain epoch 78, recon_loss:0.620175, zinb_loss:0.717431, adversial_loss:1.327847
Pretrain epoch 79, recon_loss:0.620133, zinb_loss:0.717494, adversial_loss:1.326998
Pretrain epoch 80, recon_loss:0.619830, zinb_loss:0.717256, adversial_loss:1.327035
Pretrain epoch 81, recon_loss:0.619155, zinb_loss:0.716793, adversial_loss:1.326318
Pretrain epoch 82, recon_loss:0.618669, zinb_loss:0.716444, adversial_loss:1.324780
Pretrain epoch 83, recon_loss:0.618459, zinb_loss:0.716006, adversial_loss:1.324427
Pretrain epoch 84, recon_loss:0.617861, zinb_loss:0.716251, adversial_loss:1.324360
Pretrain epoch 85, recon_loss:0.619684, zinb_loss:0.718155, adversial_loss:1.322299
Pretrain epoch 86, recon_loss:0.622860, zinb_loss:0.721925, adversial_loss:1.325042
Pretrain epoch 87, recon_loss:0.618629, zinb_loss:0.716601, adversial_loss:1.323538
Pretrain epoch 88, recon_loss:0.620597, zinb_loss:0.718052, adversial_loss:1.322110
Pretrain epoch 89, recon_loss:0.617523, zinb_loss:0.716413, adversial_loss:1.322977
Pretrain epoch 90, recon_loss:0.618598, zinb_loss:0.717059, adversial_loss:1.323720
Pretrain epoch 91, recon_loss:0.616655, zinb_loss:0.715781, adversial_loss:1.322824
Pretrain epoch 92, recon_loss:0.617477, zinb_loss:0.716070, adversial_loss:1.320699
Pretrain epoch 93, recon_loss:0.616034, zinb_loss:0.715122, adversial_loss:1.319759
Pretrain epoch 94, recon_loss:0.616195, zinb_loss:0.715299, adversial_loss:1.320488
Pretrain epoch 95, recon_loss:0.615437, zinb_loss:0.714518, adversial_loss:1.321364
Pretrain epoch 96, recon_loss:0.614937, zinb_loss:0.714601, adversial_loss:1.320296
Pretrain epoch 97, recon_loss:0.614476, zinb_loss:0.714020, adversial_loss:1.318747
Pretrain epoch 98, recon_loss:0.613963, zinb_loss:0.713980, adversial_loss:1.318743
Pretrain epoch 99, recon_loss:0.613066, zinb_loss:0.713427, adversial_loss:1.319201
Pretrain epoch 100, recon_loss:0.613295, zinb_loss:0.713396, adversial_loss:1.318682
Pretrain epoch 101, recon_loss:0.612209, zinb_loss:0.713091, adversial_loss:1.317570
Pretrain epoch 102, recon_loss:0.613080, zinb_loss:0.713600, adversial_loss:1.316063
Pretrain epoch 103, recon_loss:0.612514, zinb_loss:0.714490, adversial_loss:1.316991
Pretrain epoch 104, recon_loss:0.615369, zinb_loss:0.716108, adversial_loss:1.316522
Pretrain epoch 105, recon_loss:0.611436, zinb_loss:0.712903, adversial_loss:1.317131
Pretrain epoch 106, recon_loss:0.612847, zinb_loss:0.713966, adversial_loss:1.316021
Pretrain epoch 107, recon_loss:0.611477, zinb_loss:0.712955, adversial_loss:1.313847
Pretrain epoch 108, recon_loss:0.611159, zinb_loss:0.712711, adversial_loss:1.314746
Pretrain epoch 109, recon_loss:0.610682, zinb_loss:0.712481, adversial_loss:1.316079
Pretrain epoch 110, recon_loss:0.609920, zinb_loss:0.712227, adversial_loss:1.314570
Pretrain epoch 111, recon_loss:0.610153, zinb_loss:0.711834, adversial_loss:1.312195
Pretrain epoch 112, recon_loss:0.609225, zinb_loss:0.711619, adversial_loss:1.312415
Pretrain epoch 113, recon_loss:0.608771, zinb_loss:0.711495, adversial_loss:1.313976
Pretrain epoch 114, recon_loss:0.608198, zinb_loss:0.711220, adversial_loss:1.313467
Pretrain epoch 115, recon_loss:0.607821, zinb_loss:0.711039, adversial_loss:1.311498
Pretrain epoch 116, recon_loss:0.607257, zinb_loss:0.710707, adversial_loss:1.310960
Pretrain epoch 117, recon_loss:0.606806, zinb_loss:0.710808, adversial_loss:1.311819
Pretrain epoch 118, recon_loss:0.606044, zinb_loss:0.710267, adversial_loss:1.311558
Pretrain epoch 119, recon_loss:0.605989, zinb_loss:0.710261, adversial_loss:1.310371
Pretrain epoch 120, recon_loss:0.605173, zinb_loss:0.709901, adversial_loss:1.309853
Pretrain epoch 121, recon_loss:0.604866, zinb_loss:0.709800, adversial_loss:1.310044
Pretrain epoch 122, recon_loss:0.604549, zinb_loss:0.709613, adversial_loss:1.309614
Pretrain epoch 123, recon_loss:0.604242, zinb_loss:0.709369, adversial_loss:1.309200
Pretrain epoch 124, recon_loss:0.603497, zinb_loss:0.709295, adversial_loss:1.309094
Pretrain epoch 125, recon_loss:0.603668, zinb_loss:0.709327, adversial_loss:1.308556
Pretrain epoch 126, recon_loss:0.603990, zinb_loss:0.710021, adversial_loss:1.308666
Pretrain epoch 127, recon_loss:0.608175, zinb_loss:0.710999, adversial_loss:1.307275
Pretrain epoch 128, recon_loss:0.605739, zinb_loss:0.711473, adversial_loss:1.307892
Pretrain epoch 129, recon_loss:0.603726, zinb_loss:0.709346, adversial_loss:1.306311
Pretrain epoch 130, recon_loss:0.604092, zinb_loss:0.709300, adversial_loss:1.306776
Pretrain epoch 131, recon_loss:0.602726, zinb_loss:0.709681, adversial_loss:1.307261
Pretrain epoch 132, recon_loss:0.603544, zinb_loss:0.708957, adversial_loss:1.305543
Pretrain epoch 133, recon_loss:0.602284, zinb_loss:0.709018, adversial_loss:1.305049
Pretrain epoch 134, recon_loss:0.602843, zinb_loss:0.708935, adversial_loss:1.305499
Pretrain epoch 135, recon_loss:0.601177, zinb_loss:0.708291, adversial_loss:1.304710
Pretrain epoch 136, recon_loss:0.602358, zinb_loss:0.708875, adversial_loss:1.304404
Pretrain epoch 137, recon_loss:0.600884, zinb_loss:0.708350, adversial_loss:1.304300
Pretrain epoch 138, recon_loss:0.600738, zinb_loss:0.708105, adversial_loss:1.304239
Pretrain epoch 139, recon_loss:0.600375, zinb_loss:0.708105, adversial_loss:1.303599
Pretrain epoch 140, recon_loss:0.600081, zinb_loss:0.707868, adversial_loss:1.303942
Pretrain epoch 141, recon_loss:0.599074, zinb_loss:0.707549, adversial_loss:1.303187
Pretrain epoch 142, recon_loss:0.599383, zinb_loss:0.707475, adversial_loss:1.303267
Pretrain epoch 143, recon_loss:0.599579, zinb_loss:0.707660, adversial_loss:1.302804
Pretrain epoch 144, recon_loss:0.599924, zinb_loss:0.708616, adversial_loss:1.302929
Pretrain epoch 145, recon_loss:0.604704, zinb_loss:0.713494, adversial_loss:1.301143
Pretrain epoch 146, recon_loss:0.602242, zinb_loss:0.709861, adversial_loss:1.304284
Pretrain epoch 147, recon_loss:0.600865, zinb_loss:0.708687, adversial_loss:1.303314
Pretrain epoch 148, recon_loss:0.601125, zinb_loss:0.708834, adversial_loss:1.300761
Pretrain epoch 149, recon_loss:0.600596, zinb_loss:0.708727, adversial_loss:1.299750
Pretrain epoch 150, recon_loss:0.599595, zinb_loss:0.707788, adversial_loss:1.301056
Pretrain epoch 151, recon_loss:0.599993, zinb_loss:0.708395, adversial_loss:1.301516
Pretrain epoch 152, recon_loss:0.599089, zinb_loss:0.707397, adversial_loss:1.299956
Pretrain epoch 153, recon_loss:0.598739, zinb_loss:0.707469, adversial_loss:1.298957
Pretrain epoch 154, recon_loss:0.598425, zinb_loss:0.707356, adversial_loss:1.299692
Pretrain epoch 155, recon_loss:0.597808, zinb_loss:0.706784, adversial_loss:1.299692
Pretrain epoch 156, recon_loss:0.597573, zinb_loss:0.706741, adversial_loss:1.299087
Pretrain epoch 157, recon_loss:0.597131, zinb_loss:0.706274, adversial_loss:1.298956
Pretrain epoch 158, recon_loss:0.596734, zinb_loss:0.706350, adversial_loss:1.298658
Pretrain epoch 159, recon_loss:0.596623, zinb_loss:0.706123, adversial_loss:1.297456
Pretrain epoch 160, recon_loss:0.596065, zinb_loss:0.706056, adversial_loss:1.297482
Pretrain epoch 161, recon_loss:0.596104, zinb_loss:0.706041, adversial_loss:1.298301
Pretrain epoch 162, recon_loss:0.596055, zinb_loss:0.705830, adversial_loss:1.296770
Pretrain epoch 163, recon_loss:0.595572, zinb_loss:0.705930, adversial_loss:1.295418
Pretrain epoch 164, recon_loss:0.595152, zinb_loss:0.705212, adversial_loss:1.295952
Pretrain epoch 165, recon_loss:0.595420, zinb_loss:0.705283, adversial_loss:1.296859
Pretrain epoch 166, recon_loss:0.596281, zinb_loss:0.705658, adversial_loss:1.295282
Pretrain epoch 167, recon_loss:0.596833, zinb_loss:0.706005, adversial_loss:1.295088
Pretrain epoch 168, recon_loss:0.596632, zinb_loss:0.706330, adversial_loss:1.295021
Pretrain epoch 169, recon_loss:0.594847, zinb_loss:0.705327, adversial_loss:1.294796
Pretrain epoch 170, recon_loss:0.596137, zinb_loss:0.705258, adversial_loss:1.294963
Pretrain epoch 171, recon_loss:0.594311, zinb_loss:0.705580, adversial_loss:1.295006
Pretrain epoch 172, recon_loss:0.594584, zinb_loss:0.704925, adversial_loss:1.294097
Pretrain epoch 173, recon_loss:0.593485, zinb_loss:0.704558, adversial_loss:1.294132
Pretrain epoch 174, recon_loss:0.593907, zinb_loss:0.704598, adversial_loss:1.294171
Pretrain epoch 175, recon_loss:0.593328, zinb_loss:0.704258, adversial_loss:1.293845
Pretrain epoch 176, recon_loss:0.593276, zinb_loss:0.704184, adversial_loss:1.294001
Pretrain epoch 177, recon_loss:0.593064, zinb_loss:0.704236, adversial_loss:1.293184
Pretrain epoch 178, recon_loss:0.592420, zinb_loss:0.703874, adversial_loss:1.293754
Pretrain epoch 179, recon_loss:0.592647, zinb_loss:0.703753, adversial_loss:1.292961
Pretrain epoch 180, recon_loss:0.591872, zinb_loss:0.703395, adversial_loss:1.292945
Pretrain epoch 181, recon_loss:0.591917, zinb_loss:0.703477, adversial_loss:1.293230
Pretrain epoch 182, recon_loss:0.591551, zinb_loss:0.703418, adversial_loss:1.292016
Pretrain epoch 183, recon_loss:0.591351, zinb_loss:0.703380, adversial_loss:1.292126
Pretrain epoch 184, recon_loss:0.591515, zinb_loss:0.703520, adversial_loss:1.291306
Pretrain epoch 185, recon_loss:0.591363, zinb_loss:0.703784, adversial_loss:1.292324
Pretrain epoch 186, recon_loss:0.591980, zinb_loss:0.704239, adversial_loss:1.290449
Pretrain epoch 187, recon_loss:0.592140, zinb_loss:0.704716, adversial_loss:1.291907
Pretrain epoch 188, recon_loss:0.592133, zinb_loss:0.703879, adversial_loss:1.290295
Pretrain epoch 189, recon_loss:0.592092, zinb_loss:0.703626, adversial_loss:1.289459
Pretrain epoch 190, recon_loss:0.592368, zinb_loss:0.704385, adversial_loss:1.292405
Pretrain epoch 191, recon_loss:0.591992, zinb_loss:0.704288, adversial_loss:1.290064
Pretrain epoch 192, recon_loss:0.591550, zinb_loss:0.703193, adversial_loss:1.290607
Pretrain epoch 193, recon_loss:0.591589, zinb_loss:0.703428, adversial_loss:1.291717
Pretrain epoch 194, recon_loss:0.591609, zinb_loss:0.703223, adversial_loss:1.290797
Pretrain epoch 195, recon_loss:0.590632, zinb_loss:0.702769, adversial_loss:1.290408
Pretrain epoch 196, recon_loss:0.590492, zinb_loss:0.702590, adversial_loss:1.290607
Pretrain epoch 197, recon_loss:0.589894, zinb_loss:0.702274, adversial_loss:1.290729
Pretrain epoch 198, recon_loss:0.590079, zinb_loss:0.702232, adversial_loss:1.290436
Pretrain epoch 199, recon_loss:0.588978, zinb_loss:0.701904, adversial_loss:1.290314
Pretrain epoch 200, recon_loss:0.589308, zinb_loss:0.701931, adversial_loss:1.290156
Pretrain epoch 201, recon_loss:0.588895, zinb_loss:0.701659, adversial_loss:1.290015
Pretrain epoch 202, recon_loss:0.588425, zinb_loss:0.701582, adversial_loss:1.289656
Pretrain epoch 203, recon_loss:0.588291, zinb_loss:0.701458, adversial_loss:1.289374
Pretrain epoch 204, recon_loss:0.588176, zinb_loss:0.701333, adversial_loss:1.289308
Pretrain epoch 205, recon_loss:0.587852, zinb_loss:0.701352, adversial_loss:1.288450
Pretrain epoch 206, recon_loss:0.588433, zinb_loss:0.701440, adversial_loss:1.289341
Pretrain epoch 207, recon_loss:0.587971, zinb_loss:0.701772, adversial_loss:1.288062
Pretrain epoch 208, recon_loss:0.589440, zinb_loss:0.702735, adversial_loss:1.288836
Pretrain epoch 209, recon_loss:0.590233, zinb_loss:0.702926, adversial_loss:1.287508
Pretrain epoch 210, recon_loss:0.589512, zinb_loss:0.702279, adversial_loss:1.288444
Pretrain epoch 211, recon_loss:0.587219, zinb_loss:0.701315, adversial_loss:1.287224
Pretrain epoch 212, recon_loss:0.588822, zinb_loss:0.701518, adversial_loss:1.287108
Pretrain epoch 213, recon_loss:0.588499, zinb_loss:0.702199, adversial_loss:1.288189
Pretrain epoch 214, recon_loss:0.586966, zinb_loss:0.701293, adversial_loss:1.286844
Pretrain epoch 215, recon_loss:0.587002, zinb_loss:0.700978, adversial_loss:1.287384
Pretrain epoch 216, recon_loss:0.586916, zinb_loss:0.700793, adversial_loss:1.287136
Pretrain epoch 217, recon_loss:0.585987, zinb_loss:0.700591, adversial_loss:1.286435
Pretrain epoch 218, recon_loss:0.586679, zinb_loss:0.701097, adversial_loss:1.287213
Pretrain epoch 219, recon_loss:0.585613, zinb_loss:0.700451, adversial_loss:1.286654
Pretrain epoch 220, recon_loss:0.585068, zinb_loss:0.700152, adversial_loss:1.286785
Pretrain epoch 221, recon_loss:0.585175, zinb_loss:0.700217, adversial_loss:1.286169
Pretrain epoch 222, recon_loss:0.584687, zinb_loss:0.700006, adversial_loss:1.286589
Pretrain epoch 223, recon_loss:0.584600, zinb_loss:0.699830, adversial_loss:1.286521
Pretrain epoch 224, recon_loss:0.584303, zinb_loss:0.699794, adversial_loss:1.285718
Pretrain epoch 225, recon_loss:0.583981, zinb_loss:0.699685, adversial_loss:1.285975
Pretrain epoch 226, recon_loss:0.583713, zinb_loss:0.699592, adversial_loss:1.286028
Pretrain epoch 227, recon_loss:0.583160, zinb_loss:0.699388, adversial_loss:1.285339
Pretrain epoch 228, recon_loss:0.583530, zinb_loss:0.699489, adversial_loss:1.284620
Pretrain epoch 229, recon_loss:0.583524, zinb_loss:0.699706, adversial_loss:1.285379
Pretrain epoch 230, recon_loss:0.585028, zinb_loss:0.700129, adversial_loss:1.284664
Pretrain epoch 231, recon_loss:0.586745, zinb_loss:0.701044, adversial_loss:1.284877
Pretrain epoch 232, recon_loss:0.587832, zinb_loss:0.701841, adversial_loss:1.284706
Pretrain epoch 233, recon_loss:0.586645, zinb_loss:0.702955, adversial_loss:1.284442
Pretrain epoch 234, recon_loss:0.588760, zinb_loss:0.702076, adversial_loss:1.284113
Pretrain epoch 235, recon_loss:0.585637, zinb_loss:0.700175, adversial_loss:1.282857
Pretrain epoch 236, recon_loss:0.586302, zinb_loss:0.700844, adversial_loss:1.283180
Pretrain epoch 237, recon_loss:0.585289, zinb_loss:0.700233, adversial_loss:1.283359
Pretrain epoch 238, recon_loss:0.585000, zinb_loss:0.699970, adversial_loss:1.282834
Pretrain epoch 239, recon_loss:0.584243, zinb_loss:0.699863, adversial_loss:1.283147
Pretrain epoch 240, recon_loss:0.583649, zinb_loss:0.699567, adversial_loss:1.283070
Pretrain epoch 241, recon_loss:0.583300, zinb_loss:0.699357, adversial_loss:1.283000
Pretrain epoch 242, recon_loss:0.582262, zinb_loss:0.699210, adversial_loss:1.282558
Pretrain epoch 243, recon_loss:0.582865, zinb_loss:0.698946, adversial_loss:1.282990
Pretrain epoch 244, recon_loss:0.581668, zinb_loss:0.698780, adversial_loss:1.282456
Pretrain epoch 245, recon_loss:0.581758, zinb_loss:0.698870, adversial_loss:1.281940
Pretrain epoch 246, recon_loss:0.581316, zinb_loss:0.698863, adversial_loss:1.282176
Pretrain epoch 247, recon_loss:0.581354, zinb_loss:0.698575, adversial_loss:1.281771
Pretrain epoch 248, recon_loss:0.580645, zinb_loss:0.698768, adversial_loss:1.281879
Pretrain epoch 249, recon_loss:0.581901, zinb_loss:0.699962, adversial_loss:1.280228
Pretrain epoch 250, recon_loss:0.584252, zinb_loss:0.702094, adversial_loss:1.283233
Pretrain epoch 251, recon_loss:0.586247, zinb_loss:0.704375, adversial_loss:1.279452
Pretrain epoch 252, recon_loss:0.583740, zinb_loss:0.702430, adversial_loss:1.282206
Pretrain epoch 253, recon_loss:0.580830, zinb_loss:0.699142, adversial_loss:1.280346
Pretrain epoch 254, recon_loss:0.583452, zinb_loss:0.702068, adversial_loss:1.279058
Pretrain epoch 255, recon_loss:0.581500, zinb_loss:0.699627, adversial_loss:1.281856
Pretrain epoch 256, recon_loss:0.581608, zinb_loss:0.699947, adversial_loss:1.281689
Pretrain epoch 257, recon_loss:0.581254, zinb_loss:0.699352, adversial_loss:1.279864
Pretrain epoch 258, recon_loss:0.580587, zinb_loss:0.698898, adversial_loss:1.280182
Pretrain epoch 259, recon_loss:0.580669, zinb_loss:0.699020, adversial_loss:1.281422
Pretrain epoch 260, recon_loss:0.579476, zinb_loss:0.698480, adversial_loss:1.280452
Pretrain epoch 261, recon_loss:0.579720, zinb_loss:0.698590, adversial_loss:1.279359
Pretrain epoch 262, recon_loss:0.579016, zinb_loss:0.697996, adversial_loss:1.279988
Pretrain epoch 263, recon_loss:0.578743, zinb_loss:0.698368, adversial_loss:1.280489
Pretrain epoch 264, recon_loss:0.578171, zinb_loss:0.697783, adversial_loss:1.279733
Pretrain epoch 265, recon_loss:0.578032, zinb_loss:0.697986, adversial_loss:1.279354
Pretrain epoch 266, recon_loss:0.577506, zinb_loss:0.697692, adversial_loss:1.280306
Pretrain epoch 267, recon_loss:0.577307, zinb_loss:0.697685, adversial_loss:1.279871
Pretrain epoch 268, recon_loss:0.576887, zinb_loss:0.697476, adversial_loss:1.278915
Pretrain epoch 269, recon_loss:0.576362, zinb_loss:0.697473, adversial_loss:1.278773
Pretrain epoch 270, recon_loss:0.576370, zinb_loss:0.697332, adversial_loss:1.279051
Pretrain epoch 271, recon_loss:0.575985, zinb_loss:0.697375, adversial_loss:1.278950
Pretrain epoch 272, recon_loss:0.576800, zinb_loss:0.697477, adversial_loss:1.277904
Pretrain epoch 273, recon_loss:0.577084, zinb_loss:0.697614, adversial_loss:1.278344
Pretrain epoch 274, recon_loss:0.576967, zinb_loss:0.697649, adversial_loss:1.278465
Pretrain epoch 275, recon_loss:0.575100, zinb_loss:0.697103, adversial_loss:1.278025
Pretrain epoch 276, recon_loss:0.574974, zinb_loss:0.696859, adversial_loss:1.277406
Pretrain epoch 277, recon_loss:0.574410, zinb_loss:0.696916, adversial_loss:1.277390
Pretrain epoch 278, recon_loss:0.574486, zinb_loss:0.697088, adversial_loss:1.277517
Pretrain epoch 279, recon_loss:0.574032, zinb_loss:0.696709, adversial_loss:1.276982
Pretrain epoch 280, recon_loss:0.573134, zinb_loss:0.696509, adversial_loss:1.276729
Pretrain epoch 281, recon_loss:0.573268, zinb_loss:0.696658, adversial_loss:1.276966
Pretrain epoch 282, recon_loss:0.572908, zinb_loss:0.696656, adversial_loss:1.276704
Pretrain epoch 283, recon_loss:0.573337, zinb_loss:0.696667, adversial_loss:1.276025
Pretrain epoch 284, recon_loss:0.575081, zinb_loss:0.697835, adversial_loss:1.276730
Pretrain epoch 285, recon_loss:0.583010, zinb_loss:0.703114, adversial_loss:1.275505
Pretrain epoch 286, recon_loss:0.591398, zinb_loss:0.713500, adversial_loss:1.277117
Pretrain epoch 287, recon_loss:0.586416, zinb_loss:0.700566, adversial_loss:1.274780
Pretrain epoch 288, recon_loss:0.583376, zinb_loss:0.704303, adversial_loss:1.274940
Pretrain epoch 289, recon_loss:0.583022, zinb_loss:0.700238, adversial_loss:1.275234
Pretrain epoch 290, recon_loss:0.582508, zinb_loss:0.700730, adversial_loss:1.275462
Pretrain epoch 291, recon_loss:0.582355, zinb_loss:0.700609, adversial_loss:1.274757
Pretrain epoch 292, recon_loss:0.581226, zinb_loss:0.699215, adversial_loss:1.273712
Pretrain epoch 293, recon_loss:0.580078, zinb_loss:0.699329, adversial_loss:1.275014
Pretrain epoch 294, recon_loss:0.579718, zinb_loss:0.699126, adversial_loss:1.275724
Pretrain epoch 295, recon_loss:0.578088, zinb_loss:0.698248, adversial_loss:1.275007
Pretrain epoch 296, recon_loss:0.577816, zinb_loss:0.698168, adversial_loss:1.274560
Pretrain epoch 297, recon_loss:0.576629, zinb_loss:0.698194, adversial_loss:1.275074
Pretrain epoch 298, recon_loss:0.576007, zinb_loss:0.697481, adversial_loss:1.275091
Pretrain epoch 299, recon_loss:0.575262, zinb_loss:0.697603, adversial_loss:1.275570
Pretrain epoch 300, recon_loss:0.574522, zinb_loss:0.697157, adversial_loss:1.275740
Pretrain epoch 301, recon_loss:0.574358, zinb_loss:0.697080, adversial_loss:1.274948
Pretrain epoch 302, recon_loss:0.573368, zinb_loss:0.696750, adversial_loss:1.274909
Pretrain epoch 303, recon_loss:0.572771, zinb_loss:0.696569, adversial_loss:1.274744
Pretrain epoch 304, recon_loss:0.572695, zinb_loss:0.696483, adversial_loss:1.274678
Pretrain epoch 305, recon_loss:0.571604, zinb_loss:0.696219, adversial_loss:1.274569
Pretrain epoch 306, recon_loss:0.571695, zinb_loss:0.696176, adversial_loss:1.274254
Pretrain epoch 307, recon_loss:0.571344, zinb_loss:0.696150, adversial_loss:1.274810
Pretrain epoch 308, recon_loss:0.571503, zinb_loss:0.696305, adversial_loss:1.274085
Pretrain epoch 309, recon_loss:0.573672, zinb_loss:0.697118, adversial_loss:1.274777
Pretrain epoch 310, recon_loss:0.574852, zinb_loss:0.697953, adversial_loss:1.272709
Pretrain epoch 311, recon_loss:0.574444, zinb_loss:0.697982, adversial_loss:1.275201
Pretrain epoch 312, recon_loss:0.570665, zinb_loss:0.696588, adversial_loss:1.273245
Pretrain epoch 313, recon_loss:0.573178, zinb_loss:0.696718, adversial_loss:1.273190
Pretrain epoch 314, recon_loss:0.570134, zinb_loss:0.695997, adversial_loss:1.273799
Pretrain epoch 315, recon_loss:0.572045, zinb_loss:0.696385, adversial_loss:1.273253
Pretrain epoch 316, recon_loss:0.570237, zinb_loss:0.696101, adversial_loss:1.273068
Pretrain epoch 317, recon_loss:0.569396, zinb_loss:0.695720, adversial_loss:1.272500
Pretrain epoch 318, recon_loss:0.569607, zinb_loss:0.696006, adversial_loss:1.272862
Pretrain epoch 319, recon_loss:0.568700, zinb_loss:0.695934, adversial_loss:1.272823
Pretrain epoch 320, recon_loss:0.567887, zinb_loss:0.695481, adversial_loss:1.271761
Pretrain epoch 321, recon_loss:0.567536, zinb_loss:0.695277, adversial_loss:1.271899
Pretrain epoch 322, recon_loss:0.567038, zinb_loss:0.695412, adversial_loss:1.272166
Pretrain epoch 323, recon_loss:0.567266, zinb_loss:0.695312, adversial_loss:1.271606
Pretrain epoch 324, recon_loss:0.566417, zinb_loss:0.695049, adversial_loss:1.271605
Pretrain epoch 325, recon_loss:0.565708, zinb_loss:0.694884, adversial_loss:1.271533
Pretrain epoch 326, recon_loss:0.565785, zinb_loss:0.694895, adversial_loss:1.271161
Pretrain epoch 327, recon_loss:0.565226, zinb_loss:0.694961, adversial_loss:1.271254
Pretrain epoch 328, recon_loss:0.565246, zinb_loss:0.695017, adversial_loss:1.270693
Pretrain epoch 329, recon_loss:0.564780, zinb_loss:0.694882, adversial_loss:1.271070
Pretrain epoch 330, recon_loss:0.565269, zinb_loss:0.695455, adversial_loss:1.270573
Pretrain epoch 331, recon_loss:0.568042, zinb_loss:0.696977, adversial_loss:1.271201
Pretrain epoch 332, recon_loss:0.572583, zinb_loss:0.699284, adversial_loss:1.269790
Pretrain epoch 333, recon_loss:0.574572, zinb_loss:0.701055, adversial_loss:1.272085
Pretrain epoch 334, recon_loss:0.565445, zinb_loss:0.695382, adversial_loss:1.270219
Pretrain epoch 335, recon_loss:0.569636, zinb_loss:0.697756, adversial_loss:1.270016
Pretrain epoch 336, recon_loss:0.568138, zinb_loss:0.697473, adversial_loss:1.270820
Pretrain epoch 337, recon_loss:0.566892, zinb_loss:0.695786, adversial_loss:1.270098
Pretrain epoch 338, recon_loss:0.567932, zinb_loss:0.696546, adversial_loss:1.269872
Pretrain epoch 339, recon_loss:0.565692, zinb_loss:0.695288, adversial_loss:1.269885
Pretrain epoch 340, recon_loss:0.566488, zinb_loss:0.695812, adversial_loss:1.269704
Pretrain epoch 341, recon_loss:0.565061, zinb_loss:0.695109, adversial_loss:1.269599
Pretrain epoch 342, recon_loss:0.565163, zinb_loss:0.695140, adversial_loss:1.269687
Pretrain epoch 343, recon_loss:0.564369, zinb_loss:0.694896, adversial_loss:1.269595
Pretrain epoch 344, recon_loss:0.563986, zinb_loss:0.694827, adversial_loss:1.269573
Pretrain epoch 345, recon_loss:0.563754, zinb_loss:0.694609, adversial_loss:1.269292
Pretrain epoch 346, recon_loss:0.562977, zinb_loss:0.694467, adversial_loss:1.269425
Pretrain epoch 347, recon_loss:0.562697, zinb_loss:0.694437, adversial_loss:1.269279
Pretrain epoch 348, recon_loss:0.562143, zinb_loss:0.694314, adversial_loss:1.269107
Pretrain epoch 349, recon_loss:0.561650, zinb_loss:0.694299, adversial_loss:1.269192
Pretrain epoch 350, recon_loss:0.561122, zinb_loss:0.694074, adversial_loss:1.268891
Pretrain epoch 351, recon_loss:0.560808, zinb_loss:0.694140, adversial_loss:1.268728
Pretrain epoch 352, recon_loss:0.560411, zinb_loss:0.694014, adversial_loss:1.268849
Pretrain epoch 353, recon_loss:0.560027, zinb_loss:0.694024, adversial_loss:1.268387
Pretrain epoch 354, recon_loss:0.559603, zinb_loss:0.693875, adversial_loss:1.268141
Pretrain epoch 355, recon_loss:0.559307, zinb_loss:0.693825, adversial_loss:1.268409
Pretrain epoch 356, recon_loss:0.559076, zinb_loss:0.693744, adversial_loss:1.268051
Pretrain epoch 357, recon_loss:0.558890, zinb_loss:0.693794, adversial_loss:1.267981
Pretrain epoch 358, recon_loss:0.559313, zinb_loss:0.694058, adversial_loss:1.267395
Pretrain epoch 359, recon_loss:0.560934, zinb_loss:0.694830, adversial_loss:1.268287
Pretrain epoch 360, recon_loss:0.564220, zinb_loss:0.695833, adversial_loss:1.266836
Pretrain epoch 361, recon_loss:0.562481, zinb_loss:0.695736, adversial_loss:1.268215
Pretrain epoch 362, recon_loss:0.559264, zinb_loss:0.694615, adversial_loss:1.266947
Pretrain epoch 363, recon_loss:0.560289, zinb_loss:0.694338, adversial_loss:1.266766
Pretrain epoch 364, recon_loss:0.558944, zinb_loss:0.694178, adversial_loss:1.267188
Pretrain epoch 365, recon_loss:0.559822, zinb_loss:0.694396, adversial_loss:1.266704
Pretrain epoch 366, recon_loss:0.559244, zinb_loss:0.694315, adversial_loss:1.266500
Pretrain epoch 367, recon_loss:0.558058, zinb_loss:0.693502, adversial_loss:1.265925
Pretrain epoch 368, recon_loss:0.558544, zinb_loss:0.693841, adversial_loss:1.266192
Pretrain epoch 369, recon_loss:0.557731, zinb_loss:0.693881, adversial_loss:1.266490
Pretrain epoch 370, recon_loss:0.556779, zinb_loss:0.693673, adversial_loss:1.265290
Pretrain epoch 371, recon_loss:0.556251, zinb_loss:0.693696, adversial_loss:1.265866
Pretrain epoch 372, recon_loss:0.556175, zinb_loss:0.693686, adversial_loss:1.265823
Pretrain epoch 373, recon_loss:0.556255, zinb_loss:0.693634, adversial_loss:1.265458
Pretrain epoch 374, recon_loss:0.556866, zinb_loss:0.693745, adversial_loss:1.265560
Pretrain epoch 375, recon_loss:0.558082, zinb_loss:0.693928, adversial_loss:1.265528
Pretrain epoch 376, recon_loss:0.558450, zinb_loss:0.694458, adversial_loss:1.265274
Pretrain epoch 377, recon_loss:0.558478, zinb_loss:0.694805, adversial_loss:1.265821
Pretrain epoch 378, recon_loss:0.555960, zinb_loss:0.693787, adversial_loss:1.264408
Pretrain epoch 379, recon_loss:0.555198, zinb_loss:0.693192, adversial_loss:1.265303
Pretrain epoch 380, recon_loss:0.555539, zinb_loss:0.693390, adversial_loss:1.265130
Pretrain epoch 381, recon_loss:0.555723, zinb_loss:0.693409, adversial_loss:1.264141
Pretrain epoch 382, recon_loss:0.554729, zinb_loss:0.693121, adversial_loss:1.264623
Pretrain epoch 383, recon_loss:0.553665, zinb_loss:0.693121, adversial_loss:1.264693
Pretrain epoch 384, recon_loss:0.554122, zinb_loss:0.693272, adversial_loss:1.264246
Pretrain epoch 385, recon_loss:0.553154, zinb_loss:0.692905, adversial_loss:1.264270
Pretrain epoch 386, recon_loss:0.552059, zinb_loss:0.692707, adversial_loss:1.264224
Pretrain epoch 387, recon_loss:0.553133, zinb_loss:0.692854, adversial_loss:1.263952
Pretrain epoch 388, recon_loss:0.551707, zinb_loss:0.692689, adversial_loss:1.263738
Pretrain epoch 389, recon_loss:0.550766, zinb_loss:0.692705, adversial_loss:1.264012
Pretrain epoch 390, recon_loss:0.551155, zinb_loss:0.692796, adversial_loss:1.263491
Pretrain epoch 391, recon_loss:0.550909, zinb_loss:0.692766, adversial_loss:1.263624
Pretrain epoch 392, recon_loss:0.551803, zinb_loss:0.692801, adversial_loss:1.263383
Pretrain epoch 393, recon_loss:0.554112, zinb_loss:0.693404, adversial_loss:1.263530
Pretrain epoch 394, recon_loss:0.554287, zinb_loss:0.694016, adversial_loss:1.262836
Pretrain epoch 395, recon_loss:0.554616, zinb_loss:0.694944, adversial_loss:1.263437
Pretrain epoch 396, recon_loss:0.551981, zinb_loss:0.693592, adversial_loss:1.262114
Pretrain epoch 397, recon_loss:0.551498, zinb_loss:0.692753, adversial_loss:1.263146
Pretrain epoch 398, recon_loss:0.551548, zinb_loss:0.693153, adversial_loss:1.262805
Pretrain epoch 399, recon_loss:0.550567, zinb_loss:0.693110, adversial_loss:1.261824
Pretrain epoch 400, recon_loss:0.549860, zinb_loss:0.692564, adversial_loss:1.262827
[54]:
y_pred, final_latent = model.fit(y=y, n_clusters=8, file='human_brain_10x')
Clustering stage
Initializing cluster centers with kmeans.
Initializing k-means: AMI= 0.8622, NMI= 0.8630, ARI= 0.9469, ACC= 0.9205
Training epoch 1, recon_loss:0.549451, zinb_loss:0.692488, cluster_loss:0.162371
Clustering   1: AMI= 0.8622, NMI= 0.8630, ARI= 0.9469, ACC= 0.9205
0.0
Training epoch 2, recon_loss:0.640089, zinb_loss:0.732201, cluster_loss:0.163547
Clustering   2: AMI= 0.8498, NMI= 0.8507, ARI= 0.9406, ACC= 0.9103
0.011208406304728547
Training epoch 3, recon_loss:0.685449, zinb_loss:0.832192, cluster_loss:0.168767
Clustering   3: AMI= 0.8698, NMI= 0.8706, ARI= 0.9536, ACC= 0.9314
0.026619964973730297
Training epoch 4, recon_loss:0.675634, zinb_loss:0.851753, cluster_loss:0.165142
Clustering   4: AMI= 0.8535, NMI= 0.8544, ARI= 0.9412, ACC= 0.9156
0.023117338003502626
Training epoch 5, recon_loss:0.651831, zinb_loss:0.733959, cluster_loss:0.164657
Clustering   5: AMI= 0.8559, NMI= 0.8568, ARI= 0.9430, ACC= 0.9152
0.003852889667250438
Training epoch 6, recon_loss:0.624178, zinb_loss:0.719711, cluster_loss:0.158578
Clustering   6: AMI= 0.8557, NMI= 0.8566, ARI= 0.9459, ACC= 0.9191
0.009807355516637478
Training epoch 7, recon_loss:0.624887, zinb_loss:0.721676, cluster_loss:0.161169
Clustering   7: AMI= 0.8542, NMI= 0.8551, ARI= 0.9426, ACC= 0.9131
0.010858143607705779
Training epoch 8, recon_loss:0.626065, zinb_loss:0.729868, cluster_loss:0.158423
Clustering   8: AMI= 0.8643, NMI= 0.8651, ARI= 0.9482, ACC= 0.9240
0.012259194395796848
Training epoch 9, recon_loss:0.625682, zinb_loss:0.726136, cluster_loss:0.158547
Clustering   9: AMI= 0.8533, NMI= 0.8542, ARI= 0.9427, ACC= 0.9131
0.012259194395796848
Training epoch 10, recon_loss:0.613201, zinb_loss:0.726208, cluster_loss:0.155239
Clustering   10: AMI= 0.8640, NMI= 0.8648, ARI= 0.9484, ACC= 0.9229
0.011558669001751313
Training epoch 11, recon_loss:0.617372, zinb_loss:0.720601, cluster_loss:0.153553
Clustering   11: AMI= 0.8549, NMI= 0.8558, ARI= 0.9442, ACC= 0.9156
0.009106830122591943
Training epoch 12, recon_loss:0.615435, zinb_loss:0.723348, cluster_loss:0.154792
Clustering   12: AMI= 0.8651, NMI= 0.8659, ARI= 0.9492, ACC= 0.9233
0.009457092819614711
Training epoch 13, recon_loss:0.625145, zinb_loss:0.725200, cluster_loss:0.154635
Clustering   13: AMI= 0.8545, NMI= 0.8554, ARI= 0.9434, ACC= 0.9156
0.009457092819614711
Training epoch 14, recon_loss:0.624145, zinb_loss:0.728885, cluster_loss:0.155729
Clustering   14: AMI= 0.8616, NMI= 0.8624, ARI= 0.9482, ACC= 0.9212
0.007355516637478109
Training epoch 15, recon_loss:0.620394, zinb_loss:0.725838, cluster_loss:0.152966
Clustering   15: AMI= 0.8588, NMI= 0.8597, ARI= 0.9455, ACC= 0.9184
0.003852889667250438
Training epoch 16, recon_loss:0.618429, zinb_loss:0.726171, cluster_loss:0.152424
Clustering   16: AMI= 0.8603, NMI= 0.8612, ARI= 0.9466, ACC= 0.9177
0.0028021015761821367
Training epoch 17, recon_loss:0.611081, zinb_loss:0.721310, cluster_loss:0.150749
Clustering   17: AMI= 0.8616, NMI= 0.8625, ARI= 0.9474, ACC= 0.9212
0.005954465849387041
Training epoch 18, recon_loss:0.616190, zinb_loss:0.723877, cluster_loss:0.150925
Clustering   18: AMI= 0.8576, NMI= 0.8584, ARI= 0.9454, ACC= 0.9166
0.005604203152364273
Training epoch 19, recon_loss:0.610348, zinb_loss:0.720660, cluster_loss:0.149796
Clustering   19: AMI= 0.8640, NMI= 0.8648, ARI= 0.9484, ACC= 0.9229
0.007355516637478109
Training epoch 20, recon_loss:0.614614, zinb_loss:0.721962, cluster_loss:0.150279
Clustering   20: AMI= 0.8560, NMI= 0.8569, ARI= 0.9444, ACC= 0.9149
0.009106830122591943
Training epoch 21, recon_loss:0.609703, zinb_loss:0.718648, cluster_loss:0.149179
Clustering   21: AMI= 0.8649, NMI= 0.8658, ARI= 0.9491, ACC= 0.9233
0.009807355516637478
Training epoch 22, recon_loss:0.608740, zinb_loss:0.718995, cluster_loss:0.148605
Clustering   22: AMI= 0.8566, NMI= 0.8575, ARI= 0.9446, ACC= 0.9152
0.009457092819614711
Training epoch 23, recon_loss:0.607299, zinb_loss:0.716110, cluster_loss:0.147979
Clustering   23: AMI= 0.8641, NMI= 0.8649, ARI= 0.9489, ACC= 0.9229
0.009807355516637478
Training epoch 24, recon_loss:0.604798, zinb_loss:0.717080, cluster_loss:0.146979
Clustering   24: AMI= 0.8578, NMI= 0.8586, ARI= 0.9461, ACC= 0.9166
0.008056042031523642
Training epoch 25, recon_loss:0.606213, zinb_loss:0.715191, cluster_loss:0.146699
Clustering   25: AMI= 0.8638, NMI= 0.8646, ARI= 0.9486, ACC= 0.9226
0.007705779334500876
Training epoch 26, recon_loss:0.604126, zinb_loss:0.717078, cluster_loss:0.146109
Clustering   26: AMI= 0.8597, NMI= 0.8605, ARI= 0.9466, ACC= 0.9177
0.006654991243432574
Training epoch 27, recon_loss:0.606793, zinb_loss:0.715622, cluster_loss:0.145879
Clustering   27: AMI= 0.8638, NMI= 0.8646, ARI= 0.9486, ACC= 0.9226
0.006654991243432574
Training epoch 28, recon_loss:0.603360, zinb_loss:0.717227, cluster_loss:0.145428
Clustering   28: AMI= 0.8613, NMI= 0.8622, ARI= 0.9471, ACC= 0.9187
0.005604203152364273
Training epoch 29, recon_loss:0.607269, zinb_loss:0.716282, cluster_loss:0.145180
Clustering   29: AMI= 0.8622, NMI= 0.8631, ARI= 0.9483, ACC= 0.9219
0.004903677758318739
Training epoch 30, recon_loss:0.603986, zinb_loss:0.717796, cluster_loss:0.145236
Clustering   30: AMI= 0.8643, NMI= 0.8651, ARI= 0.9475, ACC= 0.9198
0.005253940455341506
Training epoch 31, recon_loss:0.608581, zinb_loss:0.717860, cluster_loss:0.144896
Clustering   31: AMI= 0.8620, NMI= 0.8629, ARI= 0.9490, ACC= 0.9215
0.005954465849387041
Training epoch 32, recon_loss:0.606029, zinb_loss:0.719616, cluster_loss:0.145814
Clustering   32: AMI= 0.8640, NMI= 0.8649, ARI= 0.9473, ACC= 0.9194
0.006304728546409807
Training epoch 33, recon_loss:0.611021, zinb_loss:0.721108, cluster_loss:0.145631
Clustering   33: AMI= 0.8637, NMI= 0.8645, ARI= 0.9509, ACC= 0.9219
0.007355516637478109
Training epoch 34, recon_loss:0.608186, zinb_loss:0.721887, cluster_loss:0.145688
Clustering   34: AMI= 0.8630, NMI= 0.8638, ARI= 0.9470, ACC= 0.9191
0.007705779334500876
Training epoch 35, recon_loss:0.613040, zinb_loss:0.723958, cluster_loss:0.145933
Clustering   35: AMI= 0.8649, NMI= 0.8658, ARI= 0.9518, ACC= 0.9222
0.008056042031523642
Training epoch 36, recon_loss:0.611296, zinb_loss:0.724701, cluster_loss:0.145112
Clustering   36: AMI= 0.8632, NMI= 0.8641, ARI= 0.9473, ACC= 0.9198
0.007705779334500876
Training epoch 37, recon_loss:0.613010, zinb_loss:0.726143, cluster_loss:0.145694
Clustering   37: AMI= 0.8644, NMI= 0.8652, ARI= 0.9514, ACC= 0.9215
0.0070052539404553416
Training epoch 38, recon_loss:0.610502, zinb_loss:0.725018, cluster_loss:0.144277
Clustering   38: AMI= 0.8643, NMI= 0.8652, ARI= 0.9477, ACC= 0.9205
0.0070052539404553416
Training epoch 39, recon_loss:0.608361, zinb_loss:0.724345, cluster_loss:0.144785
Clustering   39: AMI= 0.8661, NMI= 0.8669, ARI= 0.9515, ACC= 0.9215
0.005253940455341506
Training epoch 40, recon_loss:0.607315, zinb_loss:0.722422, cluster_loss:0.143454
Clustering   40: AMI= 0.8657, NMI= 0.8665, ARI= 0.9495, ACC= 0.9208
0.004203152364273205
Training epoch 41, recon_loss:0.604846, zinb_loss:0.721579, cluster_loss:0.144169
Clustering   41: AMI= 0.8667, NMI= 0.8675, ARI= 0.9514, ACC= 0.9212
0.0035026269702276708
Training epoch 42, recon_loss:0.605260, zinb_loss:0.720154, cluster_loss:0.142992
Clustering   42: AMI= 0.8672, NMI= 0.8680, ARI= 0.9513, ACC= 0.9219
0.0035026269702276708
Training epoch 43, recon_loss:0.603215, zinb_loss:0.719708, cluster_loss:0.143956
Clustering   43: AMI= 0.8662, NMI= 0.8670, ARI= 0.9510, ACC= 0.9205
0.0035026269702276708
Training epoch 44, recon_loss:0.604579, zinb_loss:0.719022, cluster_loss:0.142965
Clustering   44: AMI= 0.8667, NMI= 0.8675, ARI= 0.9514, ACC= 0.9222
0.004553415061295972
Training epoch 45, recon_loss:0.603409, zinb_loss:0.718984, cluster_loss:0.144157
Clustering   45: AMI= 0.8657, NMI= 0.8665, ARI= 0.9506, ACC= 0.9198
0.005253940455341506
Training epoch 46, recon_loss:0.604425, zinb_loss:0.718567, cluster_loss:0.143013
Clustering   46: AMI= 0.8679, NMI= 0.8687, ARI= 0.9517, ACC= 0.9229
0.005954465849387041
Training epoch 47, recon_loss:0.603239, zinb_loss:0.718713, cluster_loss:0.144000
Clustering   47: AMI= 0.8659, NMI= 0.8668, ARI= 0.9503, ACC= 0.9194
0.006304728546409807
Training epoch 48, recon_loss:0.603336, zinb_loss:0.718226, cluster_loss:0.142696
Clustering   48: AMI= 0.8670, NMI= 0.8678, ARI= 0.9516, ACC= 0.9226
0.005954465849387041
Training epoch 49, recon_loss:0.602034, zinb_loss:0.718417, cluster_loss:0.143298
Clustering   49: AMI= 0.8650, NMI= 0.8658, ARI= 0.9497, ACC= 0.9198
0.005253940455341506
Training epoch 50, recon_loss:0.602262, zinb_loss:0.718224, cluster_loss:0.142242
Clustering   50: AMI= 0.8670, NMI= 0.8678, ARI= 0.9516, ACC= 0.9226
0.005253940455341506
Training epoch 51, recon_loss:0.601119, zinb_loss:0.718334, cluster_loss:0.142575
Clustering   51: AMI= 0.8661, NMI= 0.8669, ARI= 0.9500, ACC= 0.9205
0.004553415061295972
Training epoch 52, recon_loss:0.601837, zinb_loss:0.718602, cluster_loss:0.141834
Clustering   52: AMI= 0.8670, NMI= 0.8678, ARI= 0.9516, ACC= 0.9226
0.004203152364273205
Training epoch 53, recon_loss:0.601436, zinb_loss:0.718703, cluster_loss:0.142080
Clustering   53: AMI= 0.8663, NMI= 0.8671, ARI= 0.9503, ACC= 0.9208
0.003852889667250438
Training epoch 54, recon_loss:0.602931, zinb_loss:0.719448, cluster_loss:0.141679
Clustering   54: AMI= 0.8679, NMI= 0.8687, ARI= 0.9515, ACC= 0.9222
0.0024518388791593695
Training epoch 55, recon_loss:0.603656, zinb_loss:0.719185, cluster_loss:0.142018
Clustering   55: AMI= 0.8677, NMI= 0.8685, ARI= 0.9508, ACC= 0.9219
0.0014010507880910684
Training epoch 56, recon_loss:0.606028, zinb_loss:0.720632, cluster_loss:0.142011
Clustering   56: AMI= 0.8672, NMI= 0.8681, ARI= 0.9511, ACC= 0.9212
0.0014010507880910684
Training epoch 57, recon_loss:0.607589, zinb_loss:0.719708, cluster_loss:0.142362
Clustering   57: AMI= 0.8676, NMI= 0.8684, ARI= 0.9519, ACC= 0.9226
0.003852889667250438
Training epoch 58, recon_loss:0.608578, zinb_loss:0.720954, cluster_loss:0.142743
Clustering   58: AMI= 0.8668, NMI= 0.8676, ARI= 0.9507, ACC= 0.9205
0.004553415061295972
Training epoch 59, recon_loss:0.608005, zinb_loss:0.719159, cluster_loss:0.142378
Clustering   59: AMI= 0.8687, NMI= 0.8696, ARI= 0.9527, ACC= 0.9243
0.006654991243432574
Training epoch 60, recon_loss:0.606807, zinb_loss:0.719807, cluster_loss:0.142749
Clustering   60: AMI= 0.8660, NMI= 0.8669, ARI= 0.9501, ACC= 0.9194
0.007705779334500876
Training epoch 61, recon_loss:0.605815, zinb_loss:0.718432, cluster_loss:0.142026
Clustering   61: AMI= 0.8687, NMI= 0.8696, ARI= 0.9527, ACC= 0.9243
0.007705779334500876
Training epoch 62, recon_loss:0.604664, zinb_loss:0.718820, cluster_loss:0.142141
Clustering   62: AMI= 0.8644, NMI= 0.8652, ARI= 0.9492, ACC= 0.9191
0.007355516637478109
Training epoch 63, recon_loss:0.603523, zinb_loss:0.717936, cluster_loss:0.141239
Clustering   63: AMI= 0.8679, NMI= 0.8687, ARI= 0.9525, ACC= 0.9240
0.0070052539404553416
Training epoch 64, recon_loss:0.603136, zinb_loss:0.718222, cluster_loss:0.141502
Clustering   64: AMI= 0.8644, NMI= 0.8652, ARI= 0.9492, ACC= 0.9191
0.0070052539404553416
Training epoch 65, recon_loss:0.601645, zinb_loss:0.717459, cluster_loss:0.140634
Clustering   65: AMI= 0.8679, NMI= 0.8687, ARI= 0.9525, ACC= 0.9240
0.0070052539404553416
Training epoch 66, recon_loss:0.601711, zinb_loss:0.717768, cluster_loss:0.140978
Clustering   66: AMI= 0.8644, NMI= 0.8652, ARI= 0.9492, ACC= 0.9191
0.0070052539404553416
Training epoch 67, recon_loss:0.600909, zinb_loss:0.717509, cluster_loss:0.140251
Clustering   67: AMI= 0.8665, NMI= 0.8673, ARI= 0.9519, ACC= 0.9229
0.005954465849387041
Training epoch 68, recon_loss:0.601650, zinb_loss:0.717700, cluster_loss:0.140891
Clustering   68: AMI= 0.8662, NMI= 0.8670, ARI= 0.9508, ACC= 0.9205
0.0035026269702276708
Training epoch 69, recon_loss:0.602169, zinb_loss:0.718253, cluster_loss:0.140751
Clustering   69: AMI= 0.8658, NMI= 0.8666, ARI= 0.9515, ACC= 0.9222
0.003852889667250438
Training epoch 70, recon_loss:0.603932, zinb_loss:0.717988, cluster_loss:0.141681
Clustering   70: AMI= 0.8673, NMI= 0.8682, ARI= 0.9512, ACC= 0.9212
0.004203152364273205
Training epoch 71, recon_loss:0.604666, zinb_loss:0.718659, cluster_loss:0.142015
Clustering   71: AMI= 0.8654, NMI= 0.8662, ARI= 0.9513, ACC= 0.9215
0.003852889667250438
Training epoch 72, recon_loss:0.606795, zinb_loss:0.717479, cluster_loss:0.142350
Clustering   72: AMI= 0.8691, NMI= 0.8699, ARI= 0.9519, ACC= 0.9222
0.0035026269702276708
Training epoch 73, recon_loss:0.604675, zinb_loss:0.717435, cluster_loss:0.141867
Clustering   73: AMI= 0.8641, NMI= 0.8650, ARI= 0.9506, ACC= 0.9198
0.004553415061295972
Training epoch 74, recon_loss:0.607221, zinb_loss:0.717044, cluster_loss:0.142258
Clustering   74: AMI= 0.8677, NMI= 0.8685, ARI= 0.9518, ACC= 0.9226
0.005954465849387041
Training epoch 75, recon_loss:0.605994, zinb_loss:0.717295, cluster_loss:0.141995
Clustering   75: AMI= 0.8616, NMI= 0.8625, ARI= 0.9491, ACC= 0.9184
0.007705779334500876
Training epoch 76, recon_loss:0.607849, zinb_loss:0.718216, cluster_loss:0.141943
Clustering   76: AMI= 0.8689, NMI= 0.8697, ARI= 0.9526, ACC= 0.9240
0.008756567425569177
Training epoch 77, recon_loss:0.607392, zinb_loss:0.719233, cluster_loss:0.141893
Clustering   77: AMI= 0.8625, NMI= 0.8634, ARI= 0.9494, ACC= 0.9177
0.010157618213660246
Training epoch 78, recon_loss:0.607323, zinb_loss:0.719040, cluster_loss:0.141912
Clustering   78: AMI= 0.8687, NMI= 0.8695, ARI= 0.9527, ACC= 0.9240
0.010157618213660246
Training epoch 79, recon_loss:0.605948, zinb_loss:0.719666, cluster_loss:0.141002
Clustering   79: AMI= 0.8644, NMI= 0.8653, ARI= 0.9498, ACC= 0.9187
0.008756567425569177
Training epoch 80, recon_loss:0.605869, zinb_loss:0.719446, cluster_loss:0.141503
Clustering   80: AMI= 0.8685, NMI= 0.8693, ARI= 0.9525, ACC= 0.9240
0.008056042031523642
Training epoch 81, recon_loss:0.603889, zinb_loss:0.719383, cluster_loss:0.139484
Clustering   81: AMI= 0.8679, NMI= 0.8688, ARI= 0.9510, ACC= 0.9212
0.006304728546409807
Training epoch 82, recon_loss:0.603303, zinb_loss:0.719154, cluster_loss:0.139949
Clustering   82: AMI= 0.8685, NMI= 0.8693, ARI= 0.9520, ACC= 0.9229
0.004903677758318739
Training epoch 83, recon_loss:0.605164, zinb_loss:0.719830, cluster_loss:0.139907
Clustering   83: AMI= 0.8684, NMI= 0.8692, ARI= 0.9512, ACC= 0.9215
0.0035026269702276708
Training epoch 84, recon_loss:0.608950, zinb_loss:0.721405, cluster_loss:0.142167
Clustering   84: AMI= 0.8669, NMI= 0.8678, ARI= 0.9517, ACC= 0.9226
0.004203152364273205
Training epoch 85, recon_loss:0.604936, zinb_loss:0.720668, cluster_loss:0.139509
Clustering   85: AMI= 0.8677, NMI= 0.8685, ARI= 0.9505, ACC= 0.9215
0.004203152364273205
Training epoch 86, recon_loss:0.602480, zinb_loss:0.719328, cluster_loss:0.139739
Clustering   86: AMI= 0.8677, NMI= 0.8685, ARI= 0.9519, ACC= 0.9226
0.003852889667250438
Training epoch 87, recon_loss:0.601794, zinb_loss:0.719214, cluster_loss:0.138519
Clustering   87: AMI= 0.8690, NMI= 0.8698, ARI= 0.9519, ACC= 0.9226
0.0024518388791593695
Training epoch 88, recon_loss:0.601587, zinb_loss:0.719017, cluster_loss:0.139194
Clustering   88: AMI= 0.8676, NMI= 0.8684, ARI= 0.9516, ACC= 0.9219
0.0017513134851138354
Training epoch 89, recon_loss:0.602505, zinb_loss:0.719565, cluster_loss:0.138428
Clustering   89: AMI= 0.8693, NMI= 0.8701, ARI= 0.9521, ACC= 0.9226
0.0024518388791593695
Training epoch 90, recon_loss:0.602561, zinb_loss:0.719266, cluster_loss:0.139306
Clustering   90: AMI= 0.8665, NMI= 0.8673, ARI= 0.9512, ACC= 0.9212
0.0031523642732049035
Training epoch 91, recon_loss:0.604219, zinb_loss:0.719951, cluster_loss:0.138682
Clustering   91: AMI= 0.8685, NMI= 0.8693, ARI= 0.9519, ACC= 0.9226
0.0035026269702276708
Training epoch 92, recon_loss:0.603979, zinb_loss:0.719540, cluster_loss:0.139611
Clustering   92: AMI= 0.8660, NMI= 0.8668, ARI= 0.9508, ACC= 0.9205
0.004203152364273205
Training epoch 93, recon_loss:0.604886, zinb_loss:0.719569, cluster_loss:0.138756
Clustering   93: AMI= 0.8695, NMI= 0.8703, ARI= 0.9521, ACC= 0.9229
0.004553415061295972
Training epoch 94, recon_loss:0.603619, zinb_loss:0.719021, cluster_loss:0.139620
Clustering   94: AMI= 0.8660, NMI= 0.8668, ARI= 0.9508, ACC= 0.9205
0.004553415061295972
Training epoch 95, recon_loss:0.603860, zinb_loss:0.718555, cluster_loss:0.138465
Clustering   95: AMI= 0.8691, NMI= 0.8699, ARI= 0.9521, ACC= 0.9233
0.005253940455341506
Training epoch 96, recon_loss:0.602480, zinb_loss:0.718075, cluster_loss:0.139278
Clustering   96: AMI= 0.8660, NMI= 0.8668, ARI= 0.9508, ACC= 0.9205
0.005253940455341506
Training epoch 97, recon_loss:0.602678, zinb_loss:0.717587, cluster_loss:0.137989
Clustering   97: AMI= 0.8691, NMI= 0.8699, ARI= 0.9521, ACC= 0.9233
0.005253940455341506
Training epoch 98, recon_loss:0.601232, zinb_loss:0.717243, cluster_loss:0.138816
Clustering   98: AMI= 0.8660, NMI= 0.8668, ARI= 0.9508, ACC= 0.9205
0.005253940455341506
Training epoch 99, recon_loss:0.601591, zinb_loss:0.716944, cluster_loss:0.137535
Clustering   99: AMI= 0.8691, NMI= 0.8699, ARI= 0.9521, ACC= 0.9233
0.005253940455341506
Training epoch 100, recon_loss:0.600434, zinb_loss:0.716724, cluster_loss:0.138437
Clustering   100: AMI= 0.8660, NMI= 0.8668, ARI= 0.9508, ACC= 0.9205
0.005253940455341506
Training epoch 101, recon_loss:0.601307, zinb_loss:0.716692, cluster_loss:0.137250
Clustering   101: AMI= 0.8691, NMI= 0.8699, ARI= 0.9521, ACC= 0.9233
0.005253940455341506
Training epoch 102, recon_loss:0.600167, zinb_loss:0.716487, cluster_loss:0.138199
Clustering   102: AMI= 0.8660, NMI= 0.8668, ARI= 0.9508, ACC= 0.9205
0.005253940455341506
Training epoch 103, recon_loss:0.601496, zinb_loss:0.716779, cluster_loss:0.137125
Clustering   103: AMI= 0.8691, NMI= 0.8699, ARI= 0.9521, ACC= 0.9233
0.005253940455341506
Training epoch 104, recon_loss:0.600451, zinb_loss:0.716624, cluster_loss:0.138094
Clustering   104: AMI= 0.8669, NMI= 0.8678, ARI= 0.9509, ACC= 0.9208
0.004903677758318739
Training epoch 105, recon_loss:0.602454, zinb_loss:0.717330, cluster_loss:0.137207
Clustering   105: AMI= 0.8683, NMI= 0.8691, ARI= 0.9522, ACC= 0.9233
0.004903677758318739
Training epoch 106, recon_loss:0.601487, zinb_loss:0.717454, cluster_loss:0.138186
Clustering   106: AMI= 0.8669, NMI= 0.8678, ARI= 0.9509, ACC= 0.9208
0.004903677758318739
Training epoch 107, recon_loss:0.603991, zinb_loss:0.718396, cluster_loss:0.137502
Clustering   107: AMI= 0.8681, NMI= 0.8689, ARI= 0.9519, ACC= 0.9229
0.004553415061295972
Training epoch 108, recon_loss:0.602912, zinb_loss:0.719125, cluster_loss:0.138430
Clustering   108: AMI= 0.8688, NMI= 0.8696, ARI= 0.9514, ACC= 0.9215
0.004553415061295972
Training epoch 109, recon_loss:0.605555, zinb_loss:0.719818, cluster_loss:0.137868
Clustering   109: AMI= 0.8678, NMI= 0.8686, ARI= 0.9517, ACC= 0.9226
0.004203152364273205
Training epoch 110, recon_loss:0.603538, zinb_loss:0.720865, cluster_loss:0.138547
Clustering   110: AMI= 0.8690, NMI= 0.8698, ARI= 0.9518, ACC= 0.9222
0.0031523642732049035
Training epoch 111, recon_loss:0.605642, zinb_loss:0.720811, cluster_loss:0.137891
Clustering   111: AMI= 0.8678, NMI= 0.8686, ARI= 0.9517, ACC= 0.9226
0.0031523642732049035
Training epoch 112, recon_loss:0.602853, zinb_loss:0.721649, cluster_loss:0.138275
Clustering   112: AMI= 0.8702, NMI= 0.8710, ARI= 0.9524, ACC= 0.9233
0.0014010507880910684
Training epoch 113, recon_loss:0.604192, zinb_loss:0.721005, cluster_loss:0.137401
Clustering   113: AMI= 0.8685, NMI= 0.8693, ARI= 0.9519, ACC= 0.9229
0.0007005253940455342
delta_label  0.0007005253940455342 < tol  0.001
Reach tolerance threshold. Stopping training.
Final Result : AMI= 0.8685, NMI= 0.8693, ARI= 0.9519, ACC= 0.9229
[55]:
import numpy as np

y_pred_ = best_map(y, y_pred).astype(int)
np.savetxt("../results/human_brain_10x_pred.csv", y_pred, delimiter=",")
np.savetxt("../results/human_brain_10x_embedding.csv", final_latent.cpu().detach().numpy(), delimiter=",")
[1]:
library(umap)
library(ggplot2)
library(scattermore)
[2]:
latent <- read.csv(file = "../results/human_brain_10x_embedding.csv", sep = ",", header = FALSE)
y_pred <- read.csv(file = "../results/human_brain_10x_pred.csv", sep = ",", header = FALSE)
[3]:
z.umap<-umap(latent)
y_pred$V1<-as.factor(y_pred$V1)
[10]:
bm_table_num <- data.frame(UMAP1=z.umap$layout[,1], UMAP2=z.umap$layout[,2],Cluster = y_pred$V1)
bm_plot1 <- ggplot(bm_table_num, aes(x = UMAP1, y = UMAP2, color = Cluster)) +
  geom_point(size = 0.1) +
  ggtitle('scMAGCA') +
  theme_bw(base_line_size = 1,base_rect_size = 1)+
  scale_color_manual(values = c( "0"="#7587b1", "1"="#e0bc58", "2"="#64abc0", "3"="#dc8e97", "4"="#74a893", "5"="#ac9141",
                               "6"="#ebce8e", "7"="#ac5092"))+
  labs(x = "", y = "", color = "Label")+  # Set x and y axis labels
  theme(
    plot.title = element_text(size = 20, hjust = 0.5, face = 'bold'),  # Set title to center
    panel.border = element_blank(),
    axis.ticks.length=unit(0, "lines"),  # Remove axis ticks but keep axis labels
    axis.text = element_blank(),
    panel.grid.minor = element_blank(),
    panel.grid.major = element_line(color = NA),
    axis.title.x = element_text(size = 15, hjust = 0.5, vjust = 0.5, color = "black"),
    axis.title.y = element_text(size = 15, hjust = 0.5, vjust = 0.5, color = "black"),
    legend.title = element_blank(),
    legend.text = element_text(size = 15),
    legend.position = "none")+
  guides(color = guide_legend(override.aes = list(size = 5), nrow=2))
[11]:
bm_plot1
_images/Tutorial_RNA_ATAC_26_0.png