Skip to content
Snippets Groups Projects
Commit 274830ca authored by Simon Oehrl's avatar Simon Oehrl
Browse files

Change SQL naming convvention.

parent a8abb207
Branches
Tags
1 merge request!4Feature/add arbor support
...@@ -21,33 +21,41 @@ def SetupNestTables(postgres_username, postgres_password, port): ...@@ -21,33 +21,41 @@ def SetupNestTables(postgres_username, postgres_password, port):
print("Database connection opened successfully!") print("Database connection opened successfully!")
cur = con.cursor() cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS SIMULATION_NODES CASCADE") cur.execute("DROP TABLE IF EXISTS nest_simulation_node CASCADE")
cur.execute("DROP TABLE IF EXISTS MULTIMETERS CASCADE") cur.execute("DROP TABLE IF EXISTS nest_multimeter CASCADE")
cur.execute("DROP TABLE IF EXISTS GIDS CASCADE") cur.execute("DROP TABLE IF EXISTS nest_neuron CASCADE")
cur.execute("DROP TABLE IF EXISTS MULT_PER_GID CASCADE") cur.execute("DROP TABLE IF EXISTS nest_neuron_multimeter CASCADE")
cur.execute('''CREATE TABLE SIMULATION_NODES ( cur.execute('''
NODE_ID SERIAL PRIMARY KEY NOT NULL UNIQUE, CREATE TABLE nest_simulation_node (
ADDRESS VARCHAR(50), id SERIAL PRIMARY KEY NOT NULL UNIQUE,
CURRENT_SIM_TIME FLOAT);''') address VARCHAR(50),
current_simulation_time FLOAT
cur.execute('''CREATE TABLE MULTIMETERS ( );''')
MULTIMETER_ID INT PRIMARY KEY NOT NULL UNIQUE,
ATTRIBUTE VARCHAR(50) );''') cur.execute('''
CREATE TABLE nest_multimeter (
cur.execute('''CREATE TABLE GIDS ( id INT PRIMARY KEY NOT NULL UNIQUE,
GID INT PRIMARY KEY NOT NULL UNIQUE, attribute VARCHAR(50)
NODE_ID INT, );''')
POPULATION_ID INT,
FOREIGN KEY (NODE_ID) REFERENCES SIMULATION_NODES (NODE_ID));''') cur.execute('''
CREATE TABLE nest_neuron (
cur.execute('''CREATE TABLE MULT_PER_GID( id INT PRIMARY KEY NOT NULL UNIQUE,
GID INT NOT NULL, simulation_node_id INT,
MULTIMETER_ID INT NOT NULL, population_id INT,
PRIMARY KEY (GID,MULTIMETER_ID), FOREIGN KEY (simulation_node_id) REFERENCES nest_simulation_node (id)
FOREIGN KEY (GID) REFERENCES GIDS (GID), );''')
FOREIGN KEY (MULTIMETER_ID) REFERENCES MULTIMETERS (MULTIMETER_ID));''')
cur.execute('''
CREATE TABLE nest_neuron_multimeter (
neuron_id INT NOT NULL,
multimeter_id INT NOT NULL,
PRIMARY KEY (neuron_id,multimeter_id),
FOREIGN KEY (neuron_id) REFERENCES nest_neuron (id),
FOREIGN KEY (multimeter_id) REFERENCES nest_multimeter (id)
);''')
con.commit() con.commit()
con.close() con.close()
...@@ -57,42 +65,50 @@ def SetupArborTables(postgres_username, postgres_password, port): ...@@ -57,42 +65,50 @@ def SetupArborTables(postgres_username, postgres_password, port):
con = ConnectToDatabase(postgres_username, postgres_password, port) con = ConnectToDatabase(postgres_username, postgres_password, port)
print("Database connection opened successfully!") print("Database connection opened successfully!")
cur = con.cursor() cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS PROBES CASCADE") cur.execute("DROP TABLE IF EXISTS arbor_probe CASCADE")
cur.execute("DROP TABLE IF EXISTS CELLS CASCADE") cur.execute("DROP TABLE IF EXISTS arbor_cell CASCADE")
cur.execute("DROP TABLE IF EXISTS ARBOR_SIMULATION_NODES CASCADE") cur.execute("DROP TABLE IF EXISTS arbor_simulation_node CASCADE")
cur.execute("DROP TABLE IF EXISTS ATTRIBUTES CASCADE") cur.execute("DROP TABLE IF EXISTS arbor_attribute CASCADE")
cur.execute('''CREATE TABLE ARBOR_SIMULATION_NODES ( cur.execute('''
NODE_ID INT PRIMARY KEY NOT NULL UNIQUE, CREATE TABLE arbor_simulation_node (
ADDRESS VARCHAR(50), id INT PRIMARY KEY NOT NULL UNIQUE,
CURRENT_SIM_TIME FLOAT);''') address VARCHAR(50),
current_simulation_time FLOAT
cur.execute('''CREATE TABLE CELLS (
CELL_ID INT PRIMARY KEY NOT NULL UNIQUE
);''') );''')
cur.execute('''CREATE TABLE CELL_PROPERTIES ( cur.execute('''
CELL_ID INT NOT NULL, CREATE TABLE arbor_cell (
PROPERTY VARCHAR(50) NOT NULL, id INT PRIMARY KEY NOT NULL UNIQUE
PRIMARY KEY (CELL_ID, PROPERTY), );
FOREIGN KEY (CELL_ID) REFERENCES CELLS (CELL_ID), ''')
cur.execute('''
CREATE TABLE cell_property (
cell_id INT NOT NULL,
property VARCHAR(50) NOT NULL,
PRIMARY KEY (cell_id, property),
FOREIGN KEY (cell_id) REFERENCES arbor_cell (id),
);''') );''')
cur.execute('''CREATE TABLE ATTRIBUTES ( cur.execute('''
ATTRIBUTE_ID INT PRIMARY KEY NOT NULL UNIQUE, CREATE TABLE arbor_attribute (
NAME VARCHAR(50) NOT NULL, id INT PRIMARY KEY NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL,
);''') );''')
cur.execute('''CREATE TABLE PROBES ( cur.execute('''
PROBE_ID INT PRIMARY KEY NOT NULL UNIQUE, CREATE TABLE arbor_probe (
CELL_ID INT NOT NULL, id INT PRIMARY KEY NOT NULL UNIQUE,
SEGMENT_ID INT NOT NULL, cell_id INT NOT NULL,
POSITION FLOAT, segment_id INT NOT NULL,
ATTRIBUTE_ID INT NOT NULL, position FLOAT,
NODE_ID INT, attribute_id INT NOT NULL,
FOREIGN KEY (NODE_ID) REFERENCES ARBOR_SIMULATION_NODES (NODE_ID), simulation_node_id INT,
FOREIGN KEY (CELL_ID) REFERENCES CELLS (CELL_ID), FOREIGN KEY (simulation_node_id) REFERENCES arbor_simulation_node (id),
FOREIGN KEY (ATTRIBUTE_ID) REFERENCES ATTRIBUTES (ATTRIBUTE_ID));''') FOREIGN KEY (cell_id) REFERENCES arbor_cell (id),
FOREIGN KEY (attribute_id) REFERENCES arbor_attribute (id)
);''')
...@@ -114,10 +130,10 @@ def main(): ...@@ -114,10 +130,10 @@ def main():
con = ConnectToDatabase('postgres', 'docker', 5432) con = ConnectToDatabase('postgres', 'docker', 5432)
cur = con.cursor() cur = con.cursor()
# NEST # NEST
cur.execute("SELECT ADDRESS FROM SIMULATION_NODES") cur.execute("SELECT address FROM nest_simulation_node")
nodes.nest_simulation_nodes = [i[0] for i in cur.fetchall()] nodes.nest_simulation_nodes = [i[0] for i in cur.fetchall()]
# Arbor # Arbor
#cur.execute("SELECT ADDRESS FROM SIMULATION_NODES") #cur.execute("SELECT address FROM nest_simulation_node")
#nodes.nest_simulation_nodes = [i[0] for i in cur.fetchall()] #nodes.nest_simulation_nodes = [i[0] for i in cur.fetchall()]
con.close() con.close()
......
...@@ -30,7 +30,7 @@ def arbor_get_attributes(): # noqa: E501 ...@@ -30,7 +30,7 @@ def arbor_get_attributes(): # noqa: E501
con = connect_to_database() con = connect_to_database()
cur = con.cursor() cur = con.cursor()
cur.execute("SELECT NAME FROM ATTRIBUTES") cur.execute("SELECT name FROM arbor_attribute")
attributes = [i[0] for i in cur.fetchall()] attributes = [i[0] for i in cur.fetchall()]
con.close() con.close()
...@@ -48,7 +48,7 @@ def arbor_get_cell_ids(): # noqa: E501 ...@@ -48,7 +48,7 @@ def arbor_get_cell_ids(): # noqa: E501
con = connect_to_database() con = connect_to_database()
cur = con.cursor() cur = con.cursor()
cur.execute("SELECT CELL_ID FROM CELLS") cur.execute("SELECT id FROM arbor_cell")
cell_ids = [i[0] for i in cur.fetchall()] cell_ids = [i[0] for i in cur.fetchall()]
con.close() con.close()
...@@ -69,9 +69,9 @@ def arbor_get_cell_properties(cell_ids=None): # noqa: E501 ...@@ -69,9 +69,9 @@ def arbor_get_cell_properties(cell_ids=None): # noqa: E501
cur = con.cursor() cur = con.cursor()
if cell_ids == None: if cell_ids == None:
cur.execute("SELECT CELL_ID, PROPERTY FROM CELL_PROPERTIES") cur.execute("SELECT cell_id, property FROM cell_property")
else: else:
cur.execute("SELECT CELL_ID, PROPERTY FROM CELL_PROPERTIES WHERE CELL_PROPERTIES.CELL_ID IN %s", (tuple(cell_ids),)) cur.execute("SELECT cell_id, property FROM cell_property WHERE cell_property.cell_id IN %s", (tuple(cell_ids),))
properties = np.array(cur.fetchall()) properties = np.array(cur.fetchall())
cell_ids = np.unique(properties[:,0]) cell_ids = np.unique(properties[:,0])
...@@ -159,20 +159,20 @@ def arbor_get_probes(attribute=None): # noqa: E501 ...@@ -159,20 +159,20 @@ def arbor_get_probes(attribute=None): # noqa: E501
if attribute == None: if attribute == None:
cur.execute('''SELECT cur.execute('''SELECT
PROBES.PROBE_ID, arbor_probe.id,
PROBES.CELL_ID, arbor_probe.cell_id,
PROBES.SEGMENT_ID, arbor_probe.segment_id,
PROBES.POSITION, arbor_probe.position,
FROM PROBES''') FROM arbor_probe''')
else: else:
cur.execute('''SELECT cur.execute('''SELECT
PROBES.PROBE_ID, arbor_probe.id,
PROBES.CELL_ID, arbor_probe.cell_id,
PROBES.SEGMENT_ID, arbor_probe.segment_id,
PROBES.POSITION, arbor_probe.position,
FROM PROBES INNER JOIN ATTRIBUTES FROM arbor_probe INNER JOIN arbor_attribute
ON PROBES.ATTRIBUTE_ID = ATTRIBUTES.ATTRIBUTE_ID ON arbor_probe.attribute_id = arbor_attribute.id
WHERE ATTRIBUTES.NAME = %s''', (attribute,)) WHERE arbor_attribute.name = %s''', (attribute,))
probes = np.array(cur.fetchall()) probes = np.array(cur.fetchall())
con.close() con.close()
...@@ -191,7 +191,7 @@ def arbor_get_simulation_time_info(): # noqa: E501 ...@@ -191,7 +191,7 @@ def arbor_get_simulation_time_info(): # noqa: E501
con = connect_to_database() con = connect_to_database()
cur = con.cursor() cur = con.cursor()
cur.execute("SELECT MIN(CURRENT_SIM_TIME) FROM ARBOR_SIMULATION_NODES") cur.execute("SELECT MIN(current_simulation_time) FROM arbor_simulation_node")
current_time = cur.fetchall()[0][0] current_time = cur.fetchall()[0][0]
con.close() con.close()
......
...@@ -30,7 +30,7 @@ def nest_get_gids(): # noqa: E501 ...@@ -30,7 +30,7 @@ def nest_get_gids(): # noqa: E501
con = connect_to_database() con = connect_to_database()
cur = con.cursor() cur = con.cursor()
cur.execute("SELECT GID FROM GIDS") cur.execute("SELECT id FROM nest_neuron")
gids = [i[0] for i in cur.fetchall()] gids = [i[0] for i in cur.fetchall()]
con.close() con.close()
...@@ -50,7 +50,7 @@ def nest_get_gids_in_population(population_id): # noqa: E501 ...@@ -50,7 +50,7 @@ def nest_get_gids_in_population(population_id): # noqa: E501
con = connect_to_database() con = connect_to_database()
cur = con.cursor() cur = con.cursor()
cur.execute("SELECT GID FROM GIDS WHERE GIDS.POPULATION_ID ="+str(population_id)) cur.execute("SELECT id FROM nest_neuron WHERE nest_neuron.population_id ="+str(population_id))
gids = [i[0] for i in cur.fetchall()] gids = [i[0] for i in cur.fetchall()]
con.close() con.close()
...@@ -68,13 +68,13 @@ def nest_get_multimeter_info(): # noqa: E501 ...@@ -68,13 +68,13 @@ def nest_get_multimeter_info(): # noqa: E501
con = connect_to_database() con = connect_to_database()
cur = con.cursor() cur = con.cursor()
ur.execute("SELECT * FROM MULTIMETERS;") ur.execute("SELECT * FROM nest_multimeter;")
attributes = np.array(cur.fetchall()) attributes = np.array(cur.fetchall())
gids = [] gids = []
for id in attributes[:,0]: for id in attributes[:,0]:
cur.execute("SELECT GID FROM MULT_PER_GID WHERE MULTIMETER_ID = %s", (id,)) cur.execute("SELECT id FROM nest_neuron_multimeter WHERE id = %s", (id,))
gids.append([i[0] for i in cur.fetchall()]) gids.append([i[0] for i in cur.fetchall()])
mult_info = [] mult_info = []
...@@ -175,15 +175,15 @@ def nest_get_neuron_properties(gids=None): # noqa: E501 ...@@ -175,15 +175,15 @@ def nest_get_neuron_properties(gids=None): # noqa: E501
con = connect_to_database() con = connect_to_database()
cur = con.cursor() cur = con.cursor()
cur.execute("Select * FROM GIDS LIMIT 0") cur.execute("Select * FROM nest_neuron LIMIT 0")
colnames = np.array([desc[0] for desc in cur.description]) colnames = np.array([desc[0] for desc in cur.description])
# column 1 and 2 contain the Node_id/Population_id and thus are removed # column 1 and 2 contain the Node_id/Population_id and thus are removed
colnames = np.delete(colnames, [1,2]) colnames = np.delete(colnames, [1,2])
if gids == None: if gids == None:
cur.execute("Select * FROM GIDS") cur.execute("Select * FROM nest_neuron")
else: else:
cur.execute("Select * FROM GIDS WHERE GID IN %s", (tuple(gids),)) cur.execute("Select * FROM nest_neuron WHERE id IN %s", (tuple(gids),))
con.close() con.close()
...@@ -212,7 +212,7 @@ def nest_get_populations(): # noqa: E501 ...@@ -212,7 +212,7 @@ def nest_get_populations(): # noqa: E501
con = connect_to_database() con = connect_to_database()
cur = con.cursor() cur = con.cursor()
cur.execute("SELECT DISTINCT (POPULATION_ID) FROM GIDS") cur.execute("SELECT DISTINCT (population_id) FROM nest_neuron")
populations = [i[0] for i in cur.fetchall()] populations = [i[0] for i in cur.fetchall()]
con.close() con.close()
...@@ -230,7 +230,7 @@ def nest_get_simulation_time_info(): # noqa: E501 ...@@ -230,7 +230,7 @@ def nest_get_simulation_time_info(): # noqa: E501
con = connect_to_database() con = connect_to_database()
cur = con.cursor() cur = con.cursor()
cur.execute("SELECT MIN(CURRENT_SIM_TIME) FROM SIMULATION_NODES") cur.execute("SELECT MIN(current_simulation_time) FROM nest_simulation_node")
current_time = cur.fetchall()[0][0] current_time = cur.fetchall()[0][0]
con.close() con.close()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment