Commit b79030c4 authored by Ines Filipa Fernandes Ramos's avatar Ines Filipa Fernandes Ramos
Browse files

changes to train with big dataset

parent c5b21465
%% Cell type:markdown id: tags:
# Simple RGCs simulation
%% Cell type:code id: tags:
``` python
import numpy as np, array
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
from scipy import signal
import matplotlib.image as mpimg
import matplotlib.cm as cm
import math
from mpl_toolkits.mplot3d import axes3d
import torch
from collections import OrderedDict
import neuralpredictors as neur
from neuralpredictors.data.datasets import StaticImageSet, FileTreeDataset
from numpy import save
```
%% Cell type:markdown id: tags:
##### Simple RGCs simulation:
%% Cell type:code id: tags:
``` python
_default_2Dgaussian_p = (1,1,1,0,0,0,0)
def gaussian_2D(xz, sigma_x, sigma_z, amp, theta, x0, z0, y0):
"""Two dimensional Gaussian function
params:
- xz: meshgrid of x and z coordinates at which to evaluate the points
- sigma_x: width of the gaussian
- sigma_z: height of the gaussian
- amp: amplitude of the gaussian
- theta: angle of the gaussian (in radian)
- x0: shift in x of the gaussian
- z0: shift in z of the gaussian
- y0: shift in y of the gaussian
"""
(x,z) = xz
x0, z0 = float(x0), float(z0)
a = (np.cos(theta)**2)/(2*sigma_x**2) + (np.sin(theta)**2)/(2*sigma_z**2)
b = -(np.sin(2*theta)) /(4*sigma_x**2) + (np.sin(2*theta)) /(4*sigma_z**2)
c = (np.sin(theta)**2)/(2*sigma_x**2) + (np.cos(theta)**2)/(2*sigma_z**2)
g = amp * np.exp( -(a*((x-x0)**2) + 2*b*(x-x0)*(z-z0) + c*((z-z0)**2))) + y0
return g.ravel()
def mexicanHat(xz, sigma_x_1, sigma_z_1, amp_1, theta_1, x0_1, z0_1,
sigma_x_2, sigma_z_2, amp_2, theta_2, x0_2, z0_2, y0):
"""Sum of two 2D Gaussian function. For the params, see `gaussian_2D`.
However, both share the y0 parameter."""
return (gaussian_2D(xz, sigma_x_1, sigma_z_1, amp_1, theta_1, x0_1, z0_1, 0)
+ gaussian_2D(xz, sigma_x_2, sigma_z_2, amp_2, theta_2, x0_2, z0_2, 0) + y0)
def ELU(r):
if r>0:
return r+1
else:
return np.exp(r) + 1
def RF(vis_field_width, vis_field_height, x_rf_center, z_rf_center, polarity, plot=False):
x,y = np.meshgrid(np.linspace(0,vis_field_width,vis_field_width),np.linspace(0,vis_field_height,vis_field_height))
if polarity==1:
sigma_x_1, sigma_z_1, amp_1, theta_1, x0_1, z0_1 = 2, 2, 1, 0, x_rf_center, z_rf_center
sigma_x_2, sigma_z_2, amp_2, theta_2, x0_2, z0_2, y0 = 3, 3, -0.5, 0, x_rf_center, z_rf_center, 0
else:
sigma_x_1, sigma_z_1, amp_1, theta_1, x0_1, z0_1 = 2, 2, -1, 0, x_rf_center, z_rf_center
sigma_x_2, sigma_z_2, amp_2, theta_2, x0_2, z0_2, y0 = 3, 3, 0.5, 0, x_rf_center, z_rf_center, 0
z = mexicanHat((x,y), sigma_x_1, sigma_z_1, amp_1, theta_1, x0_1, z0_1,
sigma_x_2, sigma_z_2, amp_2, theta_2, x0_2, z0_2, y0).reshape(vis_field_height,vis_field_width)
if plot==True:
fig = plt.figure(figsize=(5,4))
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(x, y, z, rstride=3, cstride=3, label=f"x_rf_center={x_rf_center} z_rf_center={z_rf_center} \n amp_center={amp_1} amp_surround={amp_2}")
_ = ax.legend()
return z
def RGC_response(rf, image, plot=False, seed=None):
Img_barHat = image * rf
if plot==True:
fig, ax = plt.subplots(3, figsize=(7,7))
ax[0].imshow(image)
ax[0].set_title("Image")
ax[1].imshow(rf)
ax[1].set_title("RGC RF")
ax[2].imshow(Img_barHat)
ax[2].set_title("RGC Response")
plt.tight_layout()
if seed is not None:
np.random.seed(seed)
g = ELU(sum(Img_barHat.ravel()))
spikes = np.random.poisson(lam=g, size=None)
return spikes
```
%% Cell type:code id: tags:
``` python
#Generate the receptive field of one RGC
rf = RF(vis_field_width = 64, vis_field_height = 36, x_rf_center = 30, z_rf_center = 30, polarity =1, plot=True)
```
%%%% Output: display_data
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAP4AAADvCAYAAADSHGlvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAACt2UlEQVR4nOyddXhcZfbHP3cs7t54kzQu9VJaCpTisshiRRcWyuKyLPyQRXZZbHFdtIsVh0Jx2lIK9Tbaxt2TycTH5/39Mbm3SRpPKgv9Pk8fmMmdd+69c8/7nvec7/keSQjBYRzGYfy+oDrYJ3AYh3EYBx6HDf8wDuN3iMOGfxiH8TvEYcM/jMP4HeKw4R/GYfwOoZnEZw+nAw7jMPYvpP018OEV/zAO43eIw4Z/GIfxO8Rhwz+Mw/gd4rDhH8Zh/A4xYnBvx44dwRqN5lUgjUGThE6n25/ndRiH8buBq6srERERaLXaA/adIxq+RqN5NTQ0NDkoKMigUqkGR/Gj9+N5HcZh/C4ghECv11NbW0tsbOwB+97RXP20oKCgziGM/jAO4zCmAJIkERAQgMlkOqDfO5rhqw4b/WEcxv6FJO23dP2wOBzcO4zD+B3isOEfxmH8DvGbNvxnnnmG5ORkli9fvl+/Z/369fz666/7ZewTTzyRzMxMUlNTWbFiBXa7HYC2tjaWLVtGQkICy5Ytw2Aw7JfvB/jwww9JTk7mmGOO2W/fAZCdnc1XX321X8a+4ooryMzMJCMjg3POOYfu7m4AzGYz5513HvHx8cyfP5/Kysr98v2HGn6Thm+z2QB44YUX+P7773nnnXf26/dNxPDlcxwNH3zwATk5OeTn59PS0sKHH34IwMMPP8zSpUspKSlh6dKlPPzww+M+79EghMDhcPDaa6/xyiuvsG7duin/jv6YiOGP9T4++eST5OTkkJubS1RUFM899xwAr732Gn5+fpSWlnLzzTfzt7/9bdzn/T8JIcSw/7KzsyuFENuH+bffsXXrVpGeni6MRqPo7u4WKSkpIi8vb8hj161bJxYtWiROO+00kZCQIK6++mqh1WpFWlqaeOKJJ4b8TFdXl7jssstEWlqaSE9PFx999JEQQohvv/1WLFiwQMycOVOcc845oqurSwghRHR0tLj33nvFzJkzRVpamtizZ4+oqKgQISEhYtq0aSIzM1Ns2LBBNDc3i7POOkvMmTNHzJkzR2zcuFEIIcTf//53cdFFF4mFCxeK888/f1z3wmKxiFNPPVWsWrVKCCHEjBkzRH19vRBCiPr6ejFjxowRP3/PPfeIzMxMkZmZKaZNmyYuu+yyIY+rqKgQM2bMEBdffLFISUkR9913n/Dw8BAzZswQt91225Cfsdls4tZbbxWpqakiPT1dPPPMM0IIIbZv3y6OOuooMWvWLHH88ccr57tkyRJx++23i7lz54qEhASxYcMGYTabRWRkpAgMDBSZmZli1apVoru7W1x++eVi7ty5IisrS3z22WdCCCHeeOMNcdppp4ljjjlGHHXUUeO6jw6HQ6xYsUI8/PDDQgghjj/+ePHrr78KIYSwWq0iICBAOByOcY05Fdi9e/dQb49on5P5d0gbvhBC3HXXXeLWW28Vf/nLX8RDDz007HHr1q0T7u7uory8XHkvOjpatLS0DPuZ22+/Xdx4443K67a2NtHS0iIWL14suru7hRBCPPzww+L+++9XxpMf6ueff15cccUVQginQT/22GPKOBdccIH4+eefhRBCVFVViaSkJOW4WbNmid7eXiGEEIWFhYoxDv5nMBiU8Y4//njh6+srLrjgAmGz2YQQQvj4+Ch/dzgcA16PBIPBINLS0sT27UP/hBUVFUKSJLFp0yblvSVLloht27YNO+YLL7wgzj77bGG1WoUQQuj1emGxWMQRRxwhmpubhRBCrFq1Slx++eXKeLfccosQQog1a9aIpUuXCiGcBn3ttdcq4955553irbfeUs47ISFBdHd3izfeeEOEh4cLvV4vhBCis7Nz2PtYUFCgjHfZZZeJ4OBgcfTRR4uenh4hhBCpqamipqZGOWb69OkjPjP7Cwfa8CdTlntAcO+99zJ37lxcXV155plnRjx23rx54yJB/PDDD6xatUp57efnx5dffsnu3bs58sgjAbBYLBxxxBHKMWeddRYAs2fP5pNPPhl23N27dyuvOzs7lT3l6aefjpubGwCJiYlkZ2ePep7ffvstJpOJ5cuXs3btWpYtWzbg75IkjSklJITgoosu4pZbbmH27NnDHhcdHc2CBQtGHU/GDz/8wIoVK9BonI+Tv78/+fn55OfnK+dqt9sJCwtTPtP/Pg63r/7uu+9YvXo1jz/+OAAmk4nq6moAli1bhr+/PwBeXl5juo9vvPEGdrud66+/nvfff5/L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)
%% Cell type:code id: tags:
``` python
#Generate the response of one RGC
x = np.load('D://inception_loop/RGC_sim_data/data/static23032021_vanhateren_images/data/images/'+str(10)+'.npy')[0]
RGC_response(rf=rf, image=x, plot=True)
```
%%%% Output: execute_result
0
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
# Generate simulated RGCs responses to big dataset (lurz + vanhateren)
%% Cell type:markdown id: tags:
##### RGCs response generation to lurz + vanhateren dataset:
%% Cell type:code id: tags:
``` python
#Retrieve image sets from evaluation data set of lurz2020 #5993 + vanhateren image set #2624 added as training data
#Total of
paths = 'D://inception_loop/RGC_sim_data/data/static23032021_vanhateren_images'
images = []
for n in range(8617):
x = np.load(paths+'/data/images/'+str(n)+'.npy')
#x_padded = np.pad(x[0], pad_width=20, mode='constant',
# constant_values=0)
#np.save(paths+'/data/images/'+str(n)+'.npy', [x_padded])
images.append(x)
x_padded = np.pad(x[0], pad_width=20, mode='constant',
constant_values=0)
np.save(paths+'/data/images/'+str(n)+'.npy', [x_padded])
#images.append(x)
images = np.vstack(images)
#images = np.vstack(images)
```
%% Cell type:code id: tags:
``` python
#Generate receptive fields of several RGCs #2304 RGCs - haf ON/half OFFù
import random
rf_ON = []
rf_ON_center_coord = []
rf_OFF = []
rf_OFF_center_coord = []
i = 0
image = images[0]
for width_center in range(image.shape[1]):
for height_center in range(image.shape[0]):
if (i % 2) == 0:
rf = RF(image.shape[1], image.shape[0], width_center, height_center, 1, plot=False)
rf_ON.append(rf)
save(paths+'/RFs/'+str(i)+'.npy', rf)
else:
rf = RF(image.shape[1], image.shape[0], width_center, height_center, -1, plot=False)
rf_OFF.append(rf)
save(paths+'/RFs/'+str(i)+'.npy', rf)
i+=1
```
%% Cell type:code id: tags:
``` python
#Generate responses of simulated RGCs to the image set
import time
start_time = time.time()
i=0
for image in images:
responses = []
for rfon, rfoff in zip(rf_ON, rf_OFF):
rgc_on_response = RGC_response(rf=rfon, image=image, plot=False)
responses.append(rgc_on_response)
rgc_off_response = RGC_response(rf=rfoff, image=image, plot=False)
responses.append(rgc_off_response)
# save numpy array as npy file
save(paths+'/data/responses/'+str(i)+'.npy', responses)
if (i % 1000) == 0:
print(i)
i+=1
print("--- %s seconds ---" % (time.time() - start_time))
```
%%%% Output: stream
0
1000
2000
3000
4000
5000
6000
7000
8000
--- 7405.442238330841 seconds ---
%% Cell type:code id: tags:
``` python
#Retrieve responses of simulated RGCs to the image set
import time
start_time = time.time()
responses_all = []
for k in range(len(images)):
responses_all.append(np.load(paths+'/data/responses/'+str(k)+'.npy'))
if (k % 1000) == 0:
print(k)
print("--- %s seconds ---" % (time.time() - start_time))
```
%%%% Output: stream
0
1000
2000
3000
4000
5000
6000
7000
8000
--- 9.932857990264893 seconds ---
%% Cell type:code id: tags:
``` python
#Generate data - pupil_center npy files
#Array with list of two values- coordinates of pupil center - [759.87785056, 472.71767702]
for j in range(len(images)):
pupil_center = np.array([0.0,0.0])
# save numpy array as npy file
save(paths+'/data/pupil_center/'+str(j)+'.npy', pupil_center)
```
%% Cell type:code id: tags:
``` python
#Generate metadata - neurons - unit_ids npy array
unit_ids = np.array(range(1, len(responses)+1))
#Generate metadata - neurons - animal_ids npy array
animal_ids = np.repeat(1, len(responses))
#Generate metadata - neurons - area npy array
area = ['retina']*len(responses)
#Generate metadata - neurons - layer npy array
layer = ['RGC']*len(responses)
#Generate metadata - neurons - scan_idx npy array
scan_idx = np.repeat(14, len(responses))
#Generate metadata - neurons - sessions npy array
sessions = np.repeat(6, len(responses))
# save numpy arrays as npy arrays
save(paths+'/meta/neurons/unit_ids.npy', unit_ids)
save(paths+'/meta/neurons/animal_ids.npy', animal_ids)
save(paths+'/meta/neurons/area.npy', area)
save(paths+'/meta/neurons/layer.npy', layer)
save(paths+'/meta/neurons/scan_idx.npy', scan_idx)
save(paths+'/meta/neurons/sessions.npy', sessions)
```
%% Cell type:code id: tags:
``` python
#Generate metadata - statistics - responses - all
responses_max_all = np.max(responses_all, axis=0)
responses_mean_all = np.mean(responses_all, axis=0)
responses_median_all = np.median(responses_all, axis=0)
responses_min_all = np.min(responses_all, axis=0)
responses_std_all = np.std(responses_all, axis=0)
#Generate metadata - statistics - responses - stimulus_frame
# save numpy arrays as npy arrays - all
save(paths+'/meta/statistics/responses/all/max.npy', responses_max_all)
save(paths+'/meta/statistics/responses/all/mean.npy', responses_mean_all)
save(paths+'/meta/statistics/responses/all/median.npy', responses_median_all)
save(paths+'/meta/statistics/responses/all/min.npy', responses_min_all)
save(paths+'/meta/statistics/responses/all/std.npy', responses_std_all)
# save numpy arrays as npy arrays - stimulus_frame
save(paths+'/meta/statistics/responses/stimulus_frame/max.npy', responses_max_all)
save(paths+'/meta/statistics/responses/stimulus_frame/mean.npy', responses_mean_all)
save(paths+'/meta/statistics/responses/stimulus_frame/median.npy', responses_median_all)
save(paths+'/meta/statistics/responses/stimulus_frame/min.npy', responses_min_all)
save(paths+'/meta/statistics/responses/stimulus_frame/std.npy', responses_std_all)
```
%% Cell type:code id: tags:
``` python
#Generate metadata - statistics - responses - all
images_max_all = np.max(images)
images_mean_all = np.mean(images)
images_median_all = np.median(images)
images_min_all = np.min(images)
images_std_all = np.std(images)
#Generate metadata - statistics - responses - stimulus_frame
# save numpy arrays as npy arrays - all
save(paths+'/meta/statistics/images/all/mean.npy', images_mean_all)
save(paths+'/meta/statistics/images/all/median.npy', images_median_all)
save(paths+'/meta/statistics/images/all/min.npy', images_min_all)
save(paths+'/meta/statistics/images/all/std.npy', images_std_all)
# save numpy arrays as npy arrays - stimulus_frame
save(paths+'/meta/statistics/images/stimulus_frame/max.npy', images_max_all)
save(paths+'/meta/statistics/images/stimulus_frame/mean.npy', images_mean_all)
save(paths+'/meta/statistics/images/stimulus_frame/median.npy', images_median_all)
save(paths+'/meta/statistics/images/stimulus_frame/min.npy', images_min_all)
save(paths+'/meta/statistics/images/stimulus_frame/std.npy', images_std_all)
```
%% Cell type:code id: tags:
``` python
#Generate metadata - trials - animal_id npy array
animal_id = np.repeat(1, len(responses_all))
#Generate metadata - trials - condition_hash npy array
condition_hash = np.repeat(" ", len(responses_all))
#Generate metadata - trials - frame_image_class npy array
frame_image_class = np.repeat("imagenet", len(responses_all))
#Generate metadata - trials - frame_image_id npy array
frame_image_id = np.load(paths+'/meta/trials/frame_image_id.npy')
frame_image_id_new = np.concatenate((frame_image_id, np.arange(max(frame_image_id)+1, max(frame_image_id)+1+len(responses_all)-len(frame_image_id), 1)))
#Generate metadata - trials - frame_last_flip npy array
frame_last_flip = np.random.randint(11000, 30000, size=(len(responses_all)))
#Generate metadata - trials - frame_pre_blank_period npy array
frame_pre_blank_period = np.random.uniform(0.3, 0.5, size=(len(responses_all)))
#Generate metadata - trials - frame_presentation_time npy array
frame_presentation_time = np.repeat(0.5, len(responses_all))
#Generate metadata - trials - frame_trial_ts npy array
frame_trial_ts = np.repeat("Timestamp('2021-03-26 13:30:43')", len(responses_all))
#Generate metadata - trials - scan_idx npy array
scan_idx = np.repeat(14, len(responses_all))
#Generate metadata - trials - tiers npy array
tiers = np.load(paths+'/meta/trials/tiers.npy')
tiers_new = np.concatenate((tiers, np.repeat("train", len(responses_all)-len(tiers))))
#Generate metadata - trials - session npy array
session = np.repeat(6, len(responses_all))
#Generate metadata - trials - trial_idx npy array
trial_idx = np.repeat(0, len(responses))
# save numpy arrays as npy arrays
save(paths+'/meta/trials/animal_id.npy', animal_id)
save(paths+'/meta/trials/condition_hash.npy', condition_hash)
save(paths+'/meta/trials/frame_image_class.npy', frame_image_class)
save(paths+'/meta/trials/frame_image_id.npy', frame_image_id_new)
save(paths+'/meta/trials/frame_last_flip.npy', frame_last_flip)
save(paths+'/meta/trials/frame_pre_blank_period.npy', frame_pre_blank_period)
save(paths+'/meta/trials/frame_presentation_time.npy', frame_presentation_time)
save(paths+'/meta/trials/frame_trial_ts.npy', frame_trial_ts)
save(paths+'/meta/trials/scan_idx.npy', scan_idx)
save(paths+'/meta/trials/tiers.npy', tiers_new)
save(paths+'/meta/trials/session.npy', session)
save(paths+'/meta/trials/trial_idx.npy', trial_idx)
```
%% Cell type:code id: tags:
``` python
frame_image_id = np.load(paths+'/meta/trials/frame_image_id.npy')
frame_image_id_new = np.concatenate((frame_image_id, np.arange(max(frame_image_id)+1, max(frame_image_id)+1+len(responses_all)-len(frame_image_id), 1)))
```
%% Cell type:code id: tags:
``` python
tiers = np.load(paths+'/meta/trials/tiers.npy')
tiers_new = np.concatenate((tiers, np.repeat("train", len(responses_all)-len(tiers))))
```
%% Cell type:code id: tags:
``` python
len(tiers_new)
```
%%%% Output: execute_result
8617
%% Cell type:code id: tags:
``` python
```
......
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment