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

Change SQL naming convvention.

parent a8abb207
No related branches found
No related tags found
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