#plot.plot_corr(mat[:,:100].T) # #m1 = mat[:,300:400] #m2 = mat[:,200:300] #plot.plot_scatter(m1.T,m2.T) # #cc = sample_x(32) import qn mat = qn.load('data/ipf_log_tpm.pkl') import pandas as pd x = pd.DataFrame(mat) feather.write_dataframe( x, '/Users/qiaonan/Documents/single-cell-seq/explore/gan/mat_6788.ft') import feather import numpy as np from scipy.spatial.distance import pdist import torch from model_extract import DisNet, GenNet from torch import nn from torch.autograd import Variable import qn import pandas as pd dis_net = DisNet(6982) dis_params = torch.load('temp_models/dis_net_cpu_10000.pt') dis_net.load_state_dict(dis_params)
import torch from torch.autograd import Variable import torch.nn as nn import torch.nn.functional as F import qn config = qn.load('hyperparams.yml') class DisNet(nn.Module): def __init__(self, dim_in): super(DisNet, self).__init__() self.dim_in = dim_in self.fc1 = nn.Linear(dim_in, 128) self.fc2 = nn.Linear(128, 128) self.fc3 = nn.Linear(128, 1) def forward(self, x): x = F.leaky_relu(self.fc1(x)) x = F.leaky_relu(self.fc2(x)) x = self.fc3(x) return x def clip(self): clip_val = config['clip'] for p in self.parameters(): p.data.clamp_(-clip_val, clip_val) class GenNet(nn.Module):
# -*- coding: utf-8 -*- import math import numpy as np import qn mat = qn.load('data/pollen.pkl') max_val = np.max(mat) def sample_z(batchsize,dim): temp_norm = np.random.normal(0.0, max_val/10, size=(batchsize, dim)) temp_poisson = np.random.poisson(1, size=(batchsize, dim)) return np.abs(temp_norm + temp_poisson).astype('float32') def sample_x(batchsize,shuffle=True): idx = np.random.randint(mat.shape[1], size=batchsize) x = mat[:,idx].T if shuffle: x_shuffled = [] for row in x: indices = np.where(row<3)[0] chosen = np.random.choice(indices,size=10,replace=False) chosen_vec = row[chosen] np.random.shuffle(chosen_vec) row[chosen] = chosen_vec x_shuffled.append(row) else: x_shuffled = x return np.array(x_shuffled).astype('float32')