def si_anderson_imp_ext_ni_h(t,u,nocc,nimp,nsites): ncore=2*nocc-2*nimp cocc=range(4*nimp,4*nimp+ncore) #cb_edge = 1. #gap = 2.0*cb_edge/(nsites-2) hlat=utils.zeros([nsites,nsites]) hlat[0,1:] = t hlat[1:,0] = t cbstates = [0, 1./3, -1./3, 2./3, -2./3, 1., -1.] for i in xrange(nsites-1): hlat[i+1,i+1] = cbstates[i] ''' for i in xrange(nsites-1): hlat[i+1,i+1] = -cb_edge + i*gap hlat[0,i+1] = t hlat[i+1,0] = t #hlat[0,0] += u/2 #hlat[0,0] = -0.5*u hu=utils.zeros([nsites,nsites]) #hu[0,0] = 0.5*u ''' hlat_sp=_spinify(hlat) pemb,pcore,pvirt=embed.embed(hlat,nimp,nocc) pall=N.hstack([pemb,pcore,pvirt]) hall=N.dot(pall.T,N.dot(hlat,pall)) hall_sp=_spinify(hall) hall_sp_diag=N.diag(hall_sp) e0=sum(hall_sp_diag[cocc]) return hlat, hall, hlat_sp, hall_sp, e0
def embed_run(dset='data1', delay=150, vdim=7, xdim=0, ydim=1, file_prefix=None): ''' Renders a parameterized delay coordinate embedding. ''' data = numpy.loadtxt('data/ps8/{0}'.format(dset), dtype=numpy.float64) vs = embed.embed(data[:, 0], delay, vdim) plot.embedded(vs, xdim, ydim, 'k.', markersize=0.6, ybound=(0, 2 * numpy.pi), yticks=(0, numpy.pi / 2, numpy.pi, 3 * numpy.pi / 2, 2 * numpy.pi), yticklabels=('0', r'$\frac{\pi}{2}$', r'$\pi$', r'$\frac{3\pi}{2}$', r'$2\pi$'), title=r'Delay Coordinate Embedding: {0}, $\tau={1}$'.format( dset, _get_actual_delay(dset, 1, delay)), xlabel=r'$\theta(t + {0})$'.format( _get_actual_delay(dset, xdim, delay)), ylabel=r'$\theta(t + {0})$'.format( _get_actual_delay(dset, ydim, delay)), aspect='equal', file_prefix=file_prefix)
def si_anderson_imp_ext_ni_h(t, u, nocc, nimp, nsites): ncore = 2 * nocc - 2 * nimp cocc = range(4 * nimp, 4 * nimp + ncore) #cb_edge = 1. #gap = 2.0*cb_edge/(nsites-2) hlat = utils.zeros([nsites, nsites]) ''' hlat[0,1:] = t hlat[1:,0] = t cbstates = [0.] for i in xrange(1,nsites/2): cbstates.append(i/(nsites/2-1.)) cbstates.append(-i/(nsites/2-1.)) for i in xrange(nsites-1): hlat[i+1,i+1] = cbstates[i] ''' cb_edge = 1. lamda = 1.05 def FindScaledt(n, z): return cb_edge * (1 + lamda**(-1)) * (1 - lamda**(-(n - z) - 1)) * ( lamda**(-0.5 * (n - z))) / (2 * N.sqrt( (1 - lamda**(-2 * (n - z) - 1)) * (1 - lamda**(-2 * (n - z) - 3)))) hlat[0, 1] = hlat[1, 0] = t #for n in xrange(1,nsites-1): for n in xrange(2, nsites - 1): #hlat[n,n+1]=hlat[n+1,n]=FindScaledt(n,0.) hlat[n, n + 1] = hlat[n + 1, n] = FindScaledt(nsites - n, 0.) hlat[1, nsites - 1] = hlat[nsites - 1, 1] = FindScaledt(1, 0.) print t print hlat #hlat[0,0] = 0.5*u hlat_sp = _spinify(hlat) pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc) pall = N.hstack([pemb, pcore, pvirt]) hall = N.dot(pall.T, N.dot(hlat, pall)) hall_sp = _spinify(hall) hall_sp_diag = N.diag(hall_sp) e0 = sum(hall_sp_diag[cocc]) return hlat, hall, hlat_sp, hall_sp, e0
def si_anderson_imp_ext_ni_h(t,nocc,nimp,nsites): ncore=2*nocc-2*nimp cocc=range(4*nimp,4*nimp+ncore) hlat=utils.zeros([nsites,nsites]) for i in xrange(nsites): for j in xrange(nsites): if abs(i-j)==1: hlat[i,j]=t hlat_sp=_spinify(hlat) pemb,pcore,pvirt=embed.embed(hlat,nimp,nocc) pall=N.hstack([pemb,pcore,pvirt]) hall=N.dot(pall.T,N.dot(hlat,pall)) hall_sp=_spinify(hall) hall_sp_diag=N.diag(hall_sp) e0=sum(hall_sp_diag[cocc]) return hlat, hall, hlat_sp, hall_sp, e0
def hubbard_imp_ext_ni_h(t, u, nocc, nimp, nsites): ncore = 2 * nocc - 2 * nimp cocc = range(4 * nimp, 4 * nimp + ncore) hlat = utils.zeros([nsites, nsites]) for i in xrange(nsites): hlat[i, i] = +u / 2 for j in xrange(nsites): if abs(i - j) == 1: hlat[i, j] = t hlat_sp = _spinify(hlat) pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc) pall = N.hstack([pemb, pcore, pvirt]) hall = N.dot(pall.T, N.dot(hlat, pall)) hall_sp = _spinify(hall) hall_sp_diag = N.diag(hall_sp) e0 = sum(hall_sp_diag[cocc]) return hlat, hall, hlat_sp, hall_sp, e0
def embedfilt(x): # D = len(x) D = 20 L = len(x) d = int((D-1)/2) # finds the middle of the embedding dimension w = D - 1 - d x = list(x) xx = x[:d] [xx.append(x[i]) for i in range(len(x))] [xx.append(x[L - w + 1:L][i]) for i in range(len(x[L - w + 1:L]))] print len(xx) embedded_matrix = embed.embed(xx, D, 1) u, s, v = np.linalg.svd(embedded_matrix) U = u[0] print U, len(U) print x, len(x) c = U*x return s
def embed_run(dset='data1', delay=150, vdim=7, xdim=0, ydim=1, file_prefix=None): ''' Renders a parameterized delay coordinate embedding. ''' data = numpy.loadtxt('data/ps8/{0}'.format(dset), dtype=numpy.float64) vs = embed.embed(data[:,0], delay, vdim) plot.embedded( vs, xdim, ydim, 'k.', markersize=0.6, ybound=(0, 2*numpy.pi), yticks=( 0, numpy.pi/2, numpy.pi, 3*numpy.pi/2, 2*numpy.pi ), yticklabels=( '0', r'$\frac{\pi}{2}$', r'$\pi$', r'$\frac{3\pi}{2}$', r'$2\pi$' ), title=r'Delay Coordinate Embedding: {0}, $\tau={1}$'.format( dset, _get_actual_delay(dset, 1, delay)), xlabel=r'$\theta(t + {0})$'.format(_get_actual_delay(dset, xdim, delay)), ylabel=r'$\theta(t + {0})$'.format(_get_actual_delay(dset, ydim, delay)), aspect='equal', file_prefix=file_prefix )
def sp_greens(): # main loop for single-particle GF utils.dtype=N.complex128 nimp=1 nimp_sp=2*nimp nocc=20 nsites=40 nsites_sp=nsites*2 ndim=2 sz=0 # sites numbered in order as imp+bath ... ext sites_imp=range(0,2*nimp_sp) sites_ext=range(2*nimp_sp,nsites_sp) ncore=2*nocc-2*nimp cocc=range(2*nimp_sp,2*nimp_sp+ncore) vocc=range(2*nimp_sp+ncore,nsites_sp) N.set_printoptions(precision=3) t=-1. # hopping delta=0.2 # broadening # for u in [0.0,4.0,10.0]: for u in [1.0]: # Single impurity Anderson model mu=0. hlat,hall,hlat_sp,hall_sp,e0=models_embed.si_anderson_imp_ext_ni_h(t,nocc,nimp,nsites) hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.si_anderson_imp_ext_h(hall_sp,u,nocc,nimp,nsites) # single site Hubbard in DMET basis # mu=u/2 # hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites) # hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites) # g.s embedding basis pemb,pcore,pvirt=embed.embed(hlat,nimp,nocc) # perturbation operator perturb=utils.zeros([nsites]) perturb[0]=1. p_coeffs=N.array([1]) perturb_dop=models.ContractedD(N.array([0]),p_coeffs) perturb_cop=models.ContractedC(N.array([0]),p_coeffs) fd=file("ph_siam.out."+str(u),"w") for omega in N.arange(-2,2,0.1): ops_dict=response_embed.mb_sp_ops(hlat,perturb,omega+1j*delta,nimp,nocc,pemb,pcore,pvirt) configs_dict=response_embed.mb_configs(nsites,nimp,nimp_sp,2*nocc-nimp_sp,0) neutral_ops_configs,plus_ops_configs,minus_ops_configs=response_embed.mb_sp_ops_configs(ops_dict,configs_dict) # basis is setup, now build matrix representations perturb_dop_mat=opbasis_ni.oimp_matrix_bra_ket_form(perturb_dop,minus_ops_configs,neutral_ops_configs,cocc,vocc) perturb_cop_mat=opbasis_ni.oimp_matrix_bra_ket_form(perturb_cop,plus_ops_configs,neutral_ops_configs,cocc,vocc) # h, N-1 configs himp_mat_minus=opbasis_ni.oimp_matrix_form(himp,minus_ops_configs,cocc,vocc) himp_ext_mat_minus=opbasis_ni.himp_ext_matrix_form(hcs_imp,hds_ext,hds_imp,hcs_ext,minus_ops_configs,cocc,vocc) hext_mat_minus=opbasis_ni.hext_matrix_form(hext,minus_ops_configs,cocc,vocc,e0) hmat_minus=himp_mat_minus+himp_ext_mat_minus+hext_mat_minus unit_mat_minus=opbasis_ni.oimp_matrix_form(models.Unit(),minus_ops_configs,cocc,vocc) # h, N+1 configs himp_mat_plus=opbasis_ni.oimp_matrix_form(himp,plus_ops_configs,cocc,vocc) himp_ext_mat_plus=opbasis_ni.himp_ext_matrix_form(hcs_imp,hds_ext,hds_imp,hcs_ext,plus_ops_configs,cocc,vocc) hext_mat_plus=opbasis_ni.hext_matrix_form(hext,plus_ops_configs,cocc,vocc,e0) hmat_plus=himp_mat_plus+himp_ext_mat_plus+hext_mat_plus unit_mat_plus=opbasis_ni.oimp_matrix_form(models.Unit(),plus_ops_configs,cocc,vocc) # h, neutral configs himp_mat=opbasis_ni.oimp_matrix_form(himp,neutral_ops_configs,cocc,vocc) himp_ext_mat=opbasis_ni.himp_ext_matrix_form(hcs_imp,hds_ext,hds_imp,hcs_ext,neutral_ops_configs,cocc,vocc) hext_mat=opbasis_ni.hext_matrix_form(hext,neutral_ops_configs,cocc,vocc,e0) hmat=himp_mat+himp_ext_mat+hext_mat unit_mat=opbasis_ni.oimp_matrix_form(models.Unit(),neutral_ops_configs,cocc,vocc) # get neutral ground-state energy es,cs=la.peigh(hmat,unit_mat) e0=es[0] psi0=cs[:,0] print e0 print psi0 # all matrices setup, solve linear response (complex) psi1_minus=la.solve_perturb(omega+1j*delta,unit_mat_minus,hmat_minus,e0,psi0,perturb_dop_mat, project=False,sign_ham=-1.) gfminus=N.dot(psi1_minus,N.dot(perturb_dop_mat,psi0)) psi1_plus=la.solve_perturb(omega+1j*delta,unit_mat_plus,hmat_plus,e0,psi0,perturb_cop_mat,project=False) gfplus=N.dot(psi1_plus,N.dot(perturb_cop_mat,psi0)) d_gf,c_gf=_sp_gf(hlat,omega+1j*delta,perturb,nocc) print omega, gfplus.imag,c_gf.imag, gfminus.imag,d_gf.imag print >>fd, omega-mu, gfplus.imag+gfminus.imag,c_gf.imag+d_gf.imag
def ph_greens(): # main loop for general density-density (ph) response functions utils.dtype = N.complex128 nimp = 1 nimp_sp = 2 * nimp nocc = 10 nsites = 20 nsites_sp = nsites * 2 ndim = 2 sz = 0 # sites numbered in order as imp+bath ... ext sites_imp = range(0, 2 * nimp_sp) sites_ext = range(2 * nimp_sp, nsites_sp) ncore = 2 * nocc - 2 * nimp cocc = range(2 * nimp_sp, 2 * nimp_sp + ncore) vocc = range(2 * nimp_sp + ncore, nsites_sp) N.set_printoptions(precision=3) t = -1. # hopping delta = 0.0 #25 # broadening # for u in [0.0,4.0,10.0]: for u in [0.0, 0.5, 1.0, 2.0, 4.0, 8.0]: #,1.0,4.0,8.0]: # Single impurity Anderson model mu = 0. hlat, hall, hlat_sp, hall_sp, e0 = models_embed.si_anderson_imp_ext_ni_h( t, nocc, nimp, nsites) hop, himp, hcs_imp, hds_imp, hcs_ext, hds_ext, hext = models_embed.si_anderson_imp_ext_h( hall_sp, u, nocc, nimp, nsites) # single site Hubbard in DMET basis # mu=u/2 # hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites) # hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites) # g.s embedding basis pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc) # perturbation operator perturb = utils.zeros([nsites, nsites]) perturb[0, 0] = 1. p_coeffs = {} p_coeffs[0, 0] = 1. p_coeffs[1, 1] = 1. perturbop = models.ContractedCD(p_coeffs) fd = file("ph_siam.out." + str(u), "w") for omega in N.arange(0, 4, 0.01): if abs(omega - 2.0) < 0.00001: continue ops_dict = response_embed.mb_ph_ops(hlat, perturb, omega + 1j * delta, nimp, nocc, pemb, pcore, pvirt) configs_dict = response_embed.mb_configs(nsites, nimp, nimp_sp, 2 * nocc - nimp_sp, 0) neutral_ops_configs = response_embed.mb_ph_ops_configs( ops_dict, configs_dict) # basis is setup, now build matrix representations perturb_mat = opbasis_ni.oimp_matrix_form(perturbop, neutral_ops_configs, cocc, vocc) # h, neutral configs himp_mat = opbasis_ni.oimp_matrix_form(himp, neutral_ops_configs, cocc, vocc) himp_ext_mat = opbasis_ni.himp_ext_matrix_form( hcs_imp, hds_ext, hds_imp, hcs_ext, neutral_ops_configs, cocc, vocc) hext_mat = opbasis_ni.hext_matrix_form(hext, neutral_ops_configs, cocc, vocc, e0) #print 'himp_mat size: ',himp_mat.shape #print 'himp_mat',himp_mat[:,0] #print 'hext_mat size: ',hext_mat.shape #print 'himp_ext_mat size: ',himp_ext_mat.shape hmat = himp_mat + himp_ext_mat + hext_mat #print 'total size hmat: ',hmat.shape unit_mat = opbasis_ni.oimp_matrix_form(models.Unit(), neutral_ops_configs, cocc, vocc) # get neutral ground-state energy es, cs = la.peigh(hmat, unit_mat) e0 = es[0] psi0 = cs[:, 0] # all matrices setup, solve linear response (complex) psi1 = la.solve_perturb(omega - 1j * delta, unit_mat, hmat, e0, psi0, perturb_mat, project=True) ph_gf = N.dot(N.conj(psi1), N.dot(perturb_mat, psi0)) ph_gf0 = _second_order_energy(hlat, nocc, perturb, omega + 1j * delta) #print 'hlat size: ',hlat.shape #print 'hlat: ' #print hlat #print omega, ph_gf.imag,ph_gf0.imag print omega, ph_gf, 2 * ph_gf0 print >> fd, omega - mu, ph_gf.imag, ph_gf0.imag, ph_gf.real, 2 * ph_gf0.real
def sp_greens(): # main loop for single-particle GF utils.dtype = N.complex128 nimp = 1 nimp_sp = 2 * nimp nocc = 20 nsites = 40 nsites_sp = nsites * 2 ndim = 2 sz = 0 # sites numbered in order as imp+bath ... ext sites_imp = range(0, 2 * nimp_sp) sites_ext = range(2 * nimp_sp, nsites_sp) ncore = 2 * nocc - 2 * nimp cocc = range(2 * nimp_sp, 2 * nimp_sp + ncore) vocc = range(2 * nimp_sp + ncore, nsites_sp) N.set_printoptions(precision=3) t = -1. # hopping delta = 0.2 # broadening # for u in [0.0,4.0,10.0]: for u in [1.0]: # Single impurity Anderson model mu = 0. hlat, hall, hlat_sp, hall_sp, e0 = models_embed.si_anderson_imp_ext_ni_h( t, nocc, nimp, nsites) hop, himp, hcs_imp, hds_imp, hcs_ext, hds_ext, hext = models_embed.si_anderson_imp_ext_h( hall_sp, u, nocc, nimp, nsites) # single site Hubbard in DMET basis # mu=u/2 # hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites) # hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites) # g.s embedding basis pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc) # perturbation operator perturb = utils.zeros([nsites]) perturb[0] = 1. p_coeffs = N.array([1]) perturb_dop = models.ContractedD(N.array([0]), p_coeffs) perturb_cop = models.ContractedC(N.array([0]), p_coeffs) fd = file("ph_siam.out." + str(u), "w") for omega in N.arange(-2, 2, 0.1): ops_dict = response_embed.mb_sp_ops(hlat, perturb, omega + 1j * delta, nimp, nocc, pemb, pcore, pvirt) configs_dict = response_embed.mb_configs(nsites, nimp, nimp_sp, 2 * nocc - nimp_sp, 0) neutral_ops_configs, plus_ops_configs, minus_ops_configs = response_embed.mb_sp_ops_configs( ops_dict, configs_dict) # basis is setup, now build matrix representations perturb_dop_mat = opbasis_ni.oimp_matrix_bra_ket_form( perturb_dop, minus_ops_configs, neutral_ops_configs, cocc, vocc) perturb_cop_mat = opbasis_ni.oimp_matrix_bra_ket_form( perturb_cop, plus_ops_configs, neutral_ops_configs, cocc, vocc) # h, N-1 configs himp_mat_minus = opbasis_ni.oimp_matrix_form( himp, minus_ops_configs, cocc, vocc) himp_ext_mat_minus = opbasis_ni.himp_ext_matrix_form( hcs_imp, hds_ext, hds_imp, hcs_ext, minus_ops_configs, cocc, vocc) hext_mat_minus = opbasis_ni.hext_matrix_form( hext, minus_ops_configs, cocc, vocc, e0) hmat_minus = himp_mat_minus + himp_ext_mat_minus + hext_mat_minus unit_mat_minus = opbasis_ni.oimp_matrix_form( models.Unit(), minus_ops_configs, cocc, vocc) # h, N+1 configs himp_mat_plus = opbasis_ni.oimp_matrix_form( himp, plus_ops_configs, cocc, vocc) himp_ext_mat_plus = opbasis_ni.himp_ext_matrix_form( hcs_imp, hds_ext, hds_imp, hcs_ext, plus_ops_configs, cocc, vocc) hext_mat_plus = opbasis_ni.hext_matrix_form( hext, plus_ops_configs, cocc, vocc, e0) hmat_plus = himp_mat_plus + himp_ext_mat_plus + hext_mat_plus unit_mat_plus = opbasis_ni.oimp_matrix_form( models.Unit(), plus_ops_configs, cocc, vocc) # h, neutral configs himp_mat = opbasis_ni.oimp_matrix_form(himp, neutral_ops_configs, cocc, vocc) himp_ext_mat = opbasis_ni.himp_ext_matrix_form( hcs_imp, hds_ext, hds_imp, hcs_ext, neutral_ops_configs, cocc, vocc) hext_mat = opbasis_ni.hext_matrix_form(hext, neutral_ops_configs, cocc, vocc, e0) hmat = himp_mat + himp_ext_mat + hext_mat unit_mat = opbasis_ni.oimp_matrix_form(models.Unit(), neutral_ops_configs, cocc, vocc) # get neutral ground-state energy es, cs = la.peigh(hmat, unit_mat) e0 = es[0] psi0 = cs[:, 0] print e0 print psi0 # all matrices setup, solve linear response (complex) psi1_minus = la.solve_perturb(omega + 1j * delta, unit_mat_minus, hmat_minus, e0, psi0, perturb_dop_mat, project=False, sign_ham=-1.) gfminus = N.dot(psi1_minus, N.dot(perturb_dop_mat, psi0)) psi1_plus = la.solve_perturb(omega + 1j * delta, unit_mat_plus, hmat_plus, e0, psi0, perturb_cop_mat, project=False) gfplus = N.dot(psi1_plus, N.dot(perturb_cop_mat, psi0)) d_gf, c_gf = _sp_gf(hlat, omega + 1j * delta, perturb, nocc) print omega, gfplus.imag, c_gf.imag, gfminus.imag, d_gf.imag print >> fd, omega - mu, gfplus.imag + gfminus.imag, c_gf.imag + d_gf.imag
# methods = ['None', 'MNN', 'SeuratV3', 'ScAlign', 'ICP', 'ICP2', 'ICP2_xentropy'] #arguments = '--methods SeuratV3 --datasets panc8 --input_space GENE --epochs=5 --no_standardize' arguments = '--methods SeuratV3 --datasets panc8 --input_space GENE --epochs=10 --seurat_env_path C:\\Users\\Amir\\Anaconda3\\envs\\seuratV3' #arguments = '--methods SeuratV3 --datasets panc8-all --input_space GENE --epochs=10 --seurat_env_path C:\\Users\\Amir\\Anaconda3\\envs\\seuratV3' args = parser.parse_args(arguments.split()) #%% datasets = {} alignment_tasks = [] #%% if 'Kowalcyzk' in args.datasets: datasets['Kowalcyzk'] = data.get_data('Kowalcyzk') embed.embed(datasets, 'Kowalcyzk', args.n_PC, do_standardize=not args.no_standardize) embed.visualize(datasets, 'Kowalcyzk', cell_type_key='cell_type', batch_key='cell_age') alignment_tasks.append( alignment_task.AlignmentTask('Kowalcyzk', 'cell_age', 'cell_type', 'young', 'old')) alignment_tasks.append( alignment_task.AlignmentTask('Kowalcyzk', 'cell_age', 'cell_type', 'young', 'old', 'LT')) alignment_tasks.append( alignment_task.AlignmentTask('Kowalcyzk', 'cell_age', 'cell_type', 'young', 'old', 'MPP')) alignment_tasks.append(
def run(graph_type, nnodes, k, f): base_dir = '/dfs/scratch0/manans/rewire-exp-' + graph_type # clean directories os.system('rm ' + base_dir + '/train/*') os.system('rm ' + base_dir + '/test/*') os.system('rm ' + base_dir + '-emb/train/*') os.system('rm ' + base_dir + '-emb/test/*') e = GraphEvaluator(graph_type = graph_type, nnodes = nnodes, k = k, graph_directory = base_dir) e.initialize() header = graph_type + \ '_k=' + str(k) + \ '_n=' + str(nnodes) + \ '_e=' + str(e.graph().GetEdges()) + \ '_t=' + datetime.datetime.now().isoformat().split('.')[0] + ',' means = " ," stds = " ," ''' # method 1: random header += "random," v = stats([accuracy(e.evaluate_random()) for i in xrange(100)]) means += v[0] + "," stds += v[1] + "," # method 2-11: node2vec for i in tqdm([10, 20, 30, 40, 50, 60, 70, 80, 90, -1]): header += ("n2v-0." + str(i) + "," if i > 0 else "n2v-1.0,") embeddings = embed(train_input_directory = None, train_label_mapping = None, test_input_directory = base_dir + '/test', test_output_directory = base_dir + '-emb/test', method = 'n2v', sample = int((float(i) / 100) * nnodes) if i > 0 else -1, verbose = False) v = stats([accuracy(e.evaluate(embeddings)) for i in xrange(100)]) means += v[0] + "," stds += v[1] + "," os.system('rm ' + base_dir + '-emb/train/*') os.system('rm ' + base_dir + '-emb/test/*') ''' # method 12: nf-original header += "nf-original," train_labels = {} for fl in os.listdir(base_dir + '/train'): train_labels[fl] = float(fl.split('.')[0])/k embeddings = embed(train_input_directory = base_dir + '/train', train_label_mapping = train_labels, test_input_directory = base_dir + '/test', test_output_directory = base_dir + '-emb/test/', method = 'nf-original', train = True, verbose = False) v = stats([accuracy(e.evaluate(embeddings)) for i in xrange(100)]) means += v[0] + "," stds += v[1] + "," # remove ending comma header = header[:-1] means = means[:-1] stds = stds[:-1] f.write(header + "\n") f.write(means + "\n") f.write(stds + "\n") print(header) print(means) print(stds) print(">>>------")
def main(): # main loop for single-particle GF utils.dtype = N.complex128 nimp = 4 nimp_sp = 2 * nimp nsites = 8 nocc = nsites / 2 nsites_sp = nsites * 2 ndim = 2 sz = 0 # sites numbered in order as imp+bath ... ext sites_imp = range(0, 2 * nimp_sp) sites_ext = range(2 * nimp_sp, nsites_sp) ncore = 2 * nocc - 2 * nimp cocc = range(2 * nimp_sp, 2 * nimp_sp + ncore) vocc = range(2 * nimp_sp + ncore, nsites_sp) N.set_printoptions(precision=3) #t=1. # hopping gamma = 0.005 rho0 = (nsites - 2) / 2. t = 0.1 #N.sqrt(gamma/(rho0*N.pi)) #gamma = (t**2)*pi*0.1 delta = 0.005 # broadening #a=12.5 # for u in [0.0,4.0,10.0]: for u in [0., 2.5, 5., 7.5]: u *= t # Single impurity Anderson model mu = 0. hlat, hall, hlat_sp, hall_sp, e0 = models_embed.si_anderson_imp_ext_ni_h( t, u, nocc, nimp, nsites) hop, himp, hcs_imp, hds_imp, hcs_ext, hds_ext, hext = models_embed.si_anderson_imp_ext_h( hall_sp, u, nocc, nimp, nsites) #print hext # single site Hubbard in DMET basis #mu=u/2 #hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites) #hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites) # g.s embedding basis pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc) # perturbation operator perturb = utils.zeros([nsites]) perturb[0] = 1. p_coeffs = N.array([1]) perturb_dop = models.ContractedD(N.array([0]), p_coeffs) perturb_cop = models.ContractedC(N.array([0]), p_coeffs) fd = file( "siam_emb_dos_nsites" + str(nsites) + '_U' + str(u) + '_nimp' + str(nimp) + '_eta' + str(delta), "w") for omega in N.arange(-1., 1., 0.01): ops_dict = response_embed.mb_sp_ops(hlat, perturb, omega + 1j * delta, nimp, nocc, pemb, pcore, pvirt) configs_dict = response_embed.mb_configs(nsites, nimp, nimp_sp, 2 * nocc - nimp_sp, 0) neutral_ops_configs, plus_ops_configs, minus_ops_configs = response_embed.mb_sp_ops_configs( ops_dict, configs_dict) #print minus_ops_configs # basis is setup, now build matrix representations perturb_dop_mat = opbasis_ni.oimp_matrix_bra_ket_form( perturb_dop, minus_ops_configs, neutral_ops_configs, cocc, vocc) perturb_cop_mat = opbasis_ni.oimp_matrix_bra_ket_form( perturb_cop, plus_ops_configs, neutral_ops_configs, cocc, vocc) #print plus_ops_configs # h, N-1 configs #print minus_ops_configs himp_mat_minus = opbasis_ni.oimp_matrix_form( himp, minus_ops_configs, cocc, vocc) himp_ext_mat_minus = opbasis_ni.himp_ext_matrix_form( hcs_imp, hds_ext, hds_imp, hcs_ext, minus_ops_configs, cocc, vocc) #print himp_ext_mat_minus hext_mat_minus = opbasis_ni.hext_matrix_form( hext, minus_ops_configs, cocc, vocc, e0) hmat_minus = himp_mat_minus + himp_ext_mat_minus + hext_mat_minus unit_mat_minus = opbasis_ni.oimp_matrix_form( models.Unit(), minus_ops_configs, cocc, vocc) #print hext_mat_minus # h, N+1 configs himp_mat_plus = opbasis_ni.oimp_matrix_form( himp, plus_ops_configs, cocc, vocc) himp_ext_mat_plus = opbasis_ni.himp_ext_matrix_form( hcs_imp, hds_ext, hds_imp, hcs_ext, plus_ops_configs, cocc, vocc) hext_mat_plus = opbasis_ni.hext_matrix_form( hext, plus_ops_configs, cocc, vocc, e0) hmat_plus = himp_mat_plus + himp_ext_mat_plus + hext_mat_plus unit_mat_plus = opbasis_ni.oimp_matrix_form( models.Unit(), plus_ops_configs, cocc, vocc) # h, neutral configs himp_mat = opbasis_ni.oimp_matrix_form(himp, neutral_ops_configs, cocc, vocc) himp_ext_mat = opbasis_ni.himp_ext_matrix_form( hcs_imp, hds_ext, hds_imp, hcs_ext, neutral_ops_configs, cocc, vocc) hext_mat = opbasis_ni.hext_matrix_form(hext, neutral_ops_configs, cocc, vocc, e0) hmat = himp_mat + himp_ext_mat + hext_mat unit_mat = opbasis_ni.oimp_matrix_form(models.Unit(), neutral_ops_configs, cocc, vocc) # get neutral ground-state energy es, cs = la.peigh(hmat, unit_mat) e_gs = es[0] psi0 = cs[:, 0] #print e0 #print psi0 #print N.dot(perturb_dop_mat,psi0) # all matrices setup, solve linear response (complex) psi1_minus = la.solve_perturb(omega + 1j * delta, unit_mat_minus, hmat_minus, e_gs, psi0, perturb_dop_mat, project=False, sign_ham=-1.) gfminus = N.dot(psi1_minus, N.dot(perturb_dop_mat, psi0)) psi1_plus = la.solve_perturb(omega + 1j * delta, unit_mat_plus, hmat_plus, e_gs, psi0, perturb_cop_mat, project=False) #print N.dot(perturb_cop_mat,psi0) #print hmat gfplus = N.dot(psi1_plus, N.dot(perturb_cop_mat, psi0)) d_gf, c_gf = _sp_gf(hlat, omega + 1j * delta, perturb, nocc) #print omega, gfplus.imag,c_gf.imag, gfminus.imag,d_gf.imag #print >>fd, omega-mu, -1.*(gfplus.imag),-1.*(c_gf.imag+d_gf.imag) print >> fd, omega - mu, -(1 / N.pi) * (gfplus.imag + gfminus.imag)
def ph_greens(): # main loop for general density-density (ph) response functions utils.dtype=N.complex128 nimp=2 nimp_sp=2*nimp nocc=12 nsites=24 nsites_sp=nsites*2 ndim=2 sz=0 # sites numbered in order as imp+bath ... ext sites_imp=range(0,2*nimp_sp) sites_ext=range(2*nimp_sp,nsites_sp) ncore=2*nocc-2*nimp cocc=range(2*nimp_sp,2*nimp_sp+ncore) vocc=range(2*nimp_sp+ncore,nsites_sp) N.set_printoptions(precision=3) t=-1. # hopping delta=0.01 # broadening # for u in [0.0,4.0,10.0]: for u in [4.0]: # Single impurity Anderson model mu=0. hlat,hall,hlat_sp,hall_sp,e0=models_embed.si_anderson_imp_ext_ni_h(t,nocc,nimp,nsites) hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.si_anderson_imp_ext_h(hall_sp,u,nocc,nimp,nsites) # single site Hubbard in DMET basis # mu=u/2 # hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites) # hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites) # g.s embedding basis pemb,pcore,pvirt=embed.embed(hlat,nimp,nocc) # perturbation operator perturb=utils.zeros([nsites,nsites]) perturb[0,0]=1. p_coeffs={} p_coeffs[0,0]=1. p_coeffs[1,1]=1. perturbop=models.ContractedCD(p_coeffs) fd=file("ph_siam.out."+str(u),"w") for omega in N.arange(2.0,8.0,0.1): ops_dict=response_embed.mb_ph_ops(hlat,perturb,omega+1j*delta,nimp,nocc,pemb,pcore,pvirt) configs_dict=response_embed.mb_configs(nsites,nimp,nimp_sp,2*nocc-nimp_sp,0) neutral_ops_configs=response_embed.mb_ph_ops_configs(ops_dict,configs_dict) # basis is setup, now build matrix representations perturb_mat=opbasis_ni.oimp_matrix_form(perturbop,neutral_ops_configs,cocc,vocc) # h, neutral configs himp_mat=opbasis_ni.oimp_matrix_form(himp,neutral_ops_configs,cocc,vocc) himp_ext_mat=opbasis_ni.himp_ext_matrix_form(hcs_imp,hds_ext,hds_imp,hcs_ext,neutral_ops_configs,cocc,vocc) hext_mat=opbasis_ni.hext_matrix_form(hext,neutral_ops_configs,cocc,vocc,e0) hmat=himp_mat+himp_ext_mat+hext_mat unit_mat=opbasis_ni.oimp_matrix_form(models.Unit(),neutral_ops_configs,cocc,vocc) # get neutral ground-state energy # print 'overlap: ' # for i,w in enumerate(unit_mat): # for j,v in enumerate(w): # if abs(unit_mat[i,j]) > 1.e-12: # print i+1,j+1,unit_mat[i,j] #hmat[4:,:] = 0. #hmat[:,4:] = 0. #print 'hamil: ' #for i,w in enumerate(hmat): # for j,v in enumerate(w): # if abs(hmat[i,j]) > 1.e-12: # print i+1,j+1,hmat[i,j] # es,cs=la.peigh(hmat,unit_mat,thresh=1.e-10) e0=es[0] psi0=cs[:,0] #print 'psi0:' #print psi0 #print 'energy: ',e0 # all matrices setup, solve linear response (complex) psi1=la.solve_perturb(omega-1j*delta,unit_mat,hmat,e0,psi0,perturb_mat,project=True) ph_gf=N.dot(N.conj(psi1),N.dot(perturb_mat,psi0)) ph_gf0=_second_order_energy(hlat,nocc,perturb,omega+1j*delta) #print omega, ph_gf.imag,ph_gf0.imag print omega, ph_gf,2*ph_gf0,e0 print >>fd, omega-mu, -ph_gf.imag,-2*ph_gf0.imag
with open(log_dir / 'args.txt', 'w') as f: f.write('\n'.join(sys.argv[1:])) with open(log_dir / 'args.pickle', 'wb') as f: pickle.dump(args.__dict__, f) #%% datasets = {} datasets[args.dataset] = data.get_data(args.dataset, args) crosstab = data.get_data_crosstabulation(datasets[args.dataset], args) crosstab.to_latex(join(log_dir, 'data_crosstab.tex')) # if args.input_space == 'PCA' or args.method == 'None': embed.embed(datasets, args.dataset, args.n_PC, do_standardize=args.standardize, log_dir=log_dir) embed.visualize(datasets, args.dataset, cell_type_key=celltype_columns[args.dataset], batch_key=batch_columns[args.dataset], log_dir=log_dir) #%% task = alignment_task.AlignmentTask(args.dataset, batch_columns[args.dataset], celltype_columns[args.dataset], args.source, args.target, args.leaveOut, args.leaveOutSource)
type=str, help="labels file to be used in metadata") # tensorboard parser.add_argument("--log_dir", nargs='?', default=os.path.join(output_dir, "tensorboard"), type=str, help="log directory for TensorBoard") params = parser.parse_args() if __name__ == "__main__": if params.mode == "embed": embed(params) if params.mode == "sif": sif(params) if params.mode == "cluster": if params.kmeans: kmeans(params) if params.opt_k: opt_k(params) if params.hierarch_k: hierarch_k(params) if params.mode == "project": if params.pca: pca(params)
def main(): # main loop for single-particle GF utils.dtype = N.complex128 nimp = 1 nimp_sp = 2 * nimp nsites = 300 nocc = nsites / 2 nsites_sp = nsites * 2 ndim = 2 sz = 0 # sites numbered in order as imp+bath ... ext sites_imp = range(0, 2 * nimp_sp) sites_ext = range(2 * nimp_sp, nsites_sp) ncore = 2 * nocc - 2 * nimp cocc = range(2 * nimp_sp, 2 * nimp_sp + ncore) vocc = range(2 * nimp_sp + ncore, nsites_sp) N.set_printoptions(precision=3) #t=1. # hopping gamma = 0.05 rho0 = (nsites - 2) / 2. t = N.sqrt(gamma / (rho0 * N.pi)) #t = 0.1 #gamma = (t**2)*pi*0.1 delta = 1e-12 # broadening #a=12.5 # for u in [0.0,4.0,10.0]: for u in [10.]: u *= gamma # Single impurity Anderson model mu = 0. hlat, hall, hlat_sp, hall_sp, e0 = models_embed.si_anderson_imp_ext_ni_h( t, u, nocc, nimp, nsites) hop, himp, hcs_imp, hds_imp, hcs_ext, hds_ext, hext = models_embed.si_anderson_imp_ext_h( hall_sp, u, nocc, nimp, nsites) #print hext # single site Hubbard in DMET basis #mu=u/2 #hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites) #hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites) # g.s embedding basis pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc) # perturbation operator perturb = utils.zeros([nsites]) perturb[0] = 1. p_coeffs = N.array([1]) perturb_dop = models.ContractedD(N.array([0]), p_coeffs) perturb_cop = models.ContractedC(N.array([0]), p_coeffs) #fd=file("siam_emb_dos_nsites"+str(nsites)+'_U'+str(u)+'_nimp'+str(nimp)+'_eta'+str(delta),"w") fdEnminus = file("En_minus", "w") fdCnminus = file("Cn_minus", "w") fdEnplus = file("En_plus", "w") fdCnplus = file("Cn_plus", "w") for omega in [1e-08]: #N.arange(-1.,1.,0.1): #print omega ops_dict = response_embed.mb_sp_ops(hlat, perturb, omega + 1j * delta, nimp, nocc, pemb, pcore, pvirt) configs_dict = response_embed.mb_configs(nsites, nimp, nimp_sp, 2 * nocc - nimp_sp, 0) neutral_ops_configs, plus_ops_configs, minus_ops_configs = response_embed.mb_sp_ops_configs( ops_dict, configs_dict) #print _ops_configs # basis is setup, now build matrix representations perturb_dop_mat = opbasis_ni.oimp_matrix_bra_ket_form( perturb_dop, minus_ops_configs, neutral_ops_configs, cocc, vocc) perturb_cop_mat = opbasis_ni.oimp_matrix_bra_ket_form( perturb_cop, plus_ops_configs, neutral_ops_configs, cocc, vocc) # h, N-1 configs #print ops_dict['d'][0] himp_mat_minus = opbasis_ni.oimp_matrix_form( himp, minus_ops_configs, cocc, vocc) himp_ext_mat_minus = opbasis_ni.himp_ext_matrix_form( hcs_imp, hds_ext, hds_imp, hcs_ext, minus_ops_configs, cocc, vocc) #print himp_ext_mat_minus hext_mat_minus = opbasis_ni.hext_matrix_form( hext, minus_ops_configs, cocc, vocc, e0) hmat_minus = himp_mat_minus + himp_ext_mat_minus + hext_mat_minus unit_mat_minus = opbasis_ni.oimp_matrix_form( models.Unit(), minus_ops_configs, cocc, vocc) #print hext_mat_minus # h, N+1 configs himp_mat_plus = opbasis_ni.oimp_matrix_form( himp, plus_ops_configs, cocc, vocc) himp_ext_mat_plus = opbasis_ni.himp_ext_matrix_form( hcs_imp, hds_ext, hds_imp, hcs_ext, plus_ops_configs, cocc, vocc) hext_mat_plus = opbasis_ni.hext_matrix_form( hext, plus_ops_configs, cocc, vocc, e0) hmat_plus = himp_mat_plus + himp_ext_mat_plus + hext_mat_plus unit_mat_plus = opbasis_ni.oimp_matrix_form( models.Unit(), plus_ops_configs, cocc, vocc) # h, neutral configs himp_mat = opbasis_ni.oimp_matrix_form(himp, neutral_ops_configs, cocc, vocc) himp_ext_mat = opbasis_ni.himp_ext_matrix_form( hcs_imp, hds_ext, hds_imp, hcs_ext, neutral_ops_configs, cocc, vocc) hext_mat = opbasis_ni.hext_matrix_form(hext, neutral_ops_configs, cocc, vocc, e0) hmat = himp_mat + himp_ext_mat + hext_mat unit_mat = opbasis_ni.oimp_matrix_form(models.Unit(), neutral_ops_configs, cocc, vocc) #print hext_mat_minus # get neutral ground-state energy es, cs = la.peigh(hmat, unit_mat) e_gs = es[0] psi0 = cs[:, 0] es_minus, cs_minus = la.peigh(hmat_minus, unit_mat_minus) Enarray = es_minus - e_gs * N.ones(len(es_minus)) print >> fdEnminus, omega, str(list(Enarray))[1:-1].translate( None, ',') es_plus, cs_plus = la.peigh(hmat_plus, unit_mat_plus) Enarray = es_plus - e_gs * N.ones(len(es_minus)) print >> fdEnplus, omega, str(list(Enarray))[1:-1].translate( None, ',') gfminus = 0. mat_el_list_minus = [] for i in xrange(len(es_minus)): ket = N.dot(perturb_dop_mat, psi0) bra = N.transpose(cs_minus[:, i].conjugate()) mat_el = N.dot(bra, ket) mat_el *= mat_el.conjugate() mat_el_list_minus.append(mat_el.real) den = omega + 1j * delta - e_gs + es_minus[i] gfminus += (mat_el / den) print >> fdCnminus, omega, str(mat_el_list_minus)[1:-1].translate( None, ',') gfplus = 0. mat_el_list_plus = [] for i in xrange(len(es_plus)): ket = N.dot(perturb_cop_mat, psi0) bra = N.transpose(cs_plus[:, i].conjugate()) mat_el = N.dot(bra, ket) mat_el *= mat_el.conjugate() mat_el_list_plus.append(mat_el.real) den = omega + 1j * delta + e_gs - es_plus[i] gfplus += (mat_el / den) print >> fdCnplus, omega, str(mat_el_list_plus)[1:-1].translate( None, ',')
import os, sys sys.path.append("../embed") from embed import embed # Directories with stored graph edgelist representations train_graph_directory = 'train_graphs/' train_graph_labels = { x: int(x.split('.')[0]) % 2 for x in os.listdir(train_graph_directory) } test_graph_directory = 'test_graphs/' test_graph_output = 'test_graph_embeddings/' embeddings = \ embed(train_input_directory = train_graph_directory, # nf is supervised train_label_mapping = train_graph_labels, test_input_directory = test_graph_directory, test_output_directory = test_graph_output, method = 'nf-o', tmp_dir = 'bin/tmp.csv', weights = 'bin/weights.pkl', train = True, n_epochs = 1)