class test_simcomplex(unittest.TestCase): def setUp(self): self.sc1 = SimplicialComplex(simplices=[(1, 2), (2, 3), (1, 2, 3)]) self.sc2 = AlphaComplex(ring, 0.05) self.ring1d = SimplicialComplex(simplices=ring1d_sc) self.cylinder = SimplicialComplex(simplices=cylinder_sc) self.torus = SimplicialComplex(simplices=torus_sc) self.twosphere = SimplicialComplex(simplices=twosphere_c) def tearDown(self): pass def test_ring1d(self): self.assertEqual(self.ring1d.betti_number(0), 1) self.assertEqual(self.ring1d.betti_number(1), 1) self.assertEqual(self.ring1d.betti_number(2), 0) def test_cylinder(self): self.assertEqual(self.cylinder.betti_number(0), 1) self.assertEqual(self.cylinder.betti_number(1), 0) self.assertEqual(self.cylinder.betti_number(2), 1) self.assertEqual(self.cylinder.euler_characteristics(), 2) def test_torus(self): self.assertEqual(self.torus.betti_number(0), 1) self.assertEqual(self.torus.betti_number(1), 2) self.assertEqual(self.torus.betti_number(2), 1) self.assertEqual(self.torus.betti_number(3), 0) self.assertEqual(self.torus.euler_characteristics(), 0) self.assertEqual(len(self.torus.generate_graph()[0]), 7) self.assertEqual(len(self.torus.generate_graph()[1]), 21) def test_twosphere(self): self.assertEqual(self.twosphere.betti_number(0), 1) self.assertEqual(self.twosphere.betti_number(1), 0) self.assertEqual(self.twosphere.betti_number(2), 1) self.assertEqual(self.twosphere.euler_characteristics(), 2) def test_sc1(self): self.assertEqual(self.sc1.betti_number(0), 1) self.assertEqual(self.sc1.betti_number(1), 0) self.assertEqual(self.sc1.betti_number(2), 0) self.assertEqual(self.sc1.euler_characteristics(), 1) def test_sc2(self): self.assertEqual(self.sc2.betti_number(0), 1) self.assertEqual(self.sc2.betti_number(1), 1) self.assertEqual(self.sc2.betti_number(2), 0) self.assertEqual(self.sc2.euler_characteristics(), 0)
def betti(complex): betti = [] # find max dimension sim_com = SimplicialComplex(simplices=complex) for i in range(3): betti.append(sim_com.betti_number(i)) return (betti)
nest.CopyModel("static_synapse", "excitatory", {"weight": g}) num_synapse = 0 for i in range(N): for j in range(N): if (M[i][j] == "1"): # nest.Connect(neurons[i],neurons[j], syn_spec="inhibitory") nest.Connect(neurons[i], neurons[j], syn_spec="excitatory") num_synapse += 1 # print("connecting neuron " + str(i) + " to " + str(j)) # measure original homology of network ######################################### simps = mogulist_from_simplist(matrix_name) SC = SimplicialComplex(simplices=simps) bettis = [ SC.betti_number(0), SC.betti_number(1), SC.betti_number(2), SC.betti_number(3), SC.betti_number(4), SC.betti_number(5), SC.betti_number(6) ] print(bettis) proceed = raw_input("proceed? ") if (proceed != "y"): print(asdasd) # run the simulation ########################################################### # once to stabilize the network
# -*- coding: utf-8 -*- # -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.# #* File Name : topological_data_analysis.py # #* Purpose : # #* Creation Date : 28-12-2019 # #* Last Modified : Saturday 28 December 2019 01:00:22 PM IST # #* Created By : #_._._._._._._._._._._._._._._._._._._._._.# import numpy as np from mogutda import SimplicialComplex torus_sc = [(1,2,4), (4,2,5), (2,3,5), (3,5,6), (5,6,1), (1,6,2), (6,7,2), (7,3,2), (1,3,4), (3,4,6), (4,6,7), (4,5,7), (5,7,1), (7,3,1)] torus_c = SimplicialComplex(simplices=torus_sc) print(torus_c.betti_number(0)) # print 1 print(torus_c.betti_number(1)) # print 2 print(torus_c.betti_number(2)) # print 1
import numpy as np from mogutda import SimplicialComplex e1 = [[255, 255], [255, 0]] sc1 = SimplicialComplex(e1) print(sc1.betti_number(0))