COREM: configurable retina simulator (Martínez-Cañada et al., 2016)

 Download zip file 
Help downloading and running models
Accession:225095
COREM is a configurable simulator for retina modeling that has been implemented within the framework of the Human Brain Project (HBP). The software platform can be interfaced with neural simulators (e.g., NEST) to connect with models of higher visual areas and with the Neurorobotics Platform of the HBP. The code is implemented in C++ and computations of spatiotemporal equations are optimized by means of recursive filtering techniques and multithreading. Most retina simulators are more focused on fitting specific retina functions. By contrast, the versatility of COREM allows the configuration of different retina models using a set of basic retina computational primitives. We implemented a series of retina models by combining these primitives to characterize some of the best-known phenomena observed in the retina: adaptation to the mean light intensity and temporal contrast, and differential motion sensitivity. The code has been extensively tested in Linux. The software can be also adapted to Mac OS. Installation instructions as well as the user manual can be found in the Github repository: https://github.com/pablomc88/COREM
Reference:
1 . Martínez-Cañada P, Morillas C, Pino B, Ros E, Pelayo F (2016) A Computational Framework for Realistic Retina Modeling. Int J Neural Syst 26:1650030 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Retina;
Cell Type(s): Retina bipolar GLU cell; Retina photoreceptor cone GLU cell; Retina ganglion GLU cell; Retina amacrine cell; Retina horizontal cell;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program;
Model Concept(s): Vision;
Implementer(s): Martínez-Cañada, Pablo [pablomc at ugr.es]; Carrillo, Richard R. [rcarrillo at atc.ugr.es];
Search NeuronDB for information about:  Retina ganglion GLU cell; Retina photoreceptor cone GLU cell; Retina bipolar GLU cell;
%INR2AVI  convert a INR file movie to AVI format
% avi2inr(filename, fps, show_cb, title_str) opens filename.inr and
% creates a filename.avi file.
% Since the INR file has no information about frame rate, the frames per
% second of the results avi file must be specified through this parameter.
% If show_cb is true, the colorbar is showed, otherwise,
% the video is showed in gray scale
% if title_str is not empty, the specified title is added to the figure
%
%   See also AVI2INR.

%   Copyright (C) 2016 by Richard R. Carrillo 
%   $Revision: 1.5 $  $Date: 2/11/2016 $
%   (adapted from noout2par from EDLUT repository)

%   This program is free software; you can redistribute it and/or modify
%   it under the terms of the GNU General Public License as published by
%   the Free Software Foundation; either version 3 of the License, or
%   (at your option) any later version.
function inr2avi(filename, fps, show_cb, title_str)
[images, read_dim_size] = inrload([filename '.inr']); % Load all data from file , 0,Inf, 0,Inf, 0,10
if ~isempty(images) % File successfully read
    fprintf(1,'Dimensions of read data (X,Y,Z,V): %i x %i x %i x %i\n', arrayfun( @(dim) (size(images,dim)), 1:4));

    images = permute(images,[2 1 4 3]); % for immovie image must be an M-by-N-by-1-by-K array, where K is the number of images

    vid_obj = VideoWriter([filename '.avi']);
    vid_obj.FrameRate = fps;
    open(vid_obj);

    for nframe=1:size(images,4)
        imagesc(images(:,:,:,nframe))
        axis off
        if ~isempty(title_str)
            hand_t=title(title_str);
            set(hand_t,'FontName','Courier 10 Pitch')
            set(hand_t,'FontSize',18)
        end
        if show_cb
            hand_cb=colorbar;
            set(hand_cb,'FontName','Courier 10 Pitch')
            set(hand_cb,'FontSize',18)
        else
            colormap(gray)
        end
        curr_frame = getframe(gcf);
        writeVideo(vid_obj,curr_frame);
    end
    close(vid_obj);
end