Document Actions


Nearly all of the cortical surface of mammals, as well as some subcortical structures, can be partitioned into topographic maps ( Kaas 1997 ; Van Essen et al. 2001 ). These maps contain systematic two-dimensional representations of features relevant to sensory and motor processing, such as retinal position, sound frequency, line orientation, and motion direction ( Blasdel 1992 ; Merzenich et al. 1975 ; Ohki et al. 2005 ; Weliky et al. 1996 ). Understanding the development and function of topographic maps is crucial for understanding brain function, and will require integrating large-scale experimental imaging results with single-unit studies of individual neurons and their connections.

Computational simulations have proven to be a powerful tool in this endeavor. In a simulation, it is possible to explore how topographic maps can emerge from the behavior of single neurons, both during development and during perceptual and motor processing in the adult. (For a review of this class of models, see Swindale 1996 .) Computational simulations are also extremely useful for educational purposes, because they represent experimental subjects whose behavior is repeatable and can be explained in complete detail.

However, models have been limited in size and scope because simulation tools did not provide specific support for biologically realistic, densely interconnected topographic maps. Existing biological neural simulators, such as NEURON ( Hines and Carnevale 1997 ) and GENESIS ( Bower and Beeman 1998 ), primarily focus on detailed studies of individual neurons or very small networks of them. Tools for simulating large populations of abstract units, such as PDP++ ( O'Reilly and Munakata 2000 ) and Matlab ( ), focus on cognitive science and engineering applications, rather than detailed models of cortical areas. The simulator that comes closest to making topographic maps practical is NEST ( Diesmann and Gewaltig 2002 ), but Topographica has the advantage of being implemented in a language that is easy for students and other short-term users to use and understand, and is focused specifically on measuring topographic maps and generating inputs suitable for driving such maps.

This paper describes the Topographica map-level simulator, which is designed to make it practical to simulate large-scale, detailed models of topographic maps. Topographica is designed to complement the existing low-level and abstract simulators, focusing on biologically realistic networks of tens of thousands of neurons, forming topographic maps containing millions or tens of millions of connections. The goals of models at this level include understanding how topographic maps develop, how much of this development is driven by the environment, what computations the adult maps perform, how high-level capabilities are implemented by these maps, and how to relate large-scale phenomena to the activity of single units in maps. The overall goal is generally to understand the brain at a scale that is directly relevant to behavior.

Topographica was first developed at the University of Texas at Austin as part of the Human Brain Project of the National Institutes of Mental Health, and is now supported by the Doctoral Training Centre in Neuroinformatics at the University of Edinburgh for use in teaching about large-scale neural systems. Topographica is an open source project, and binaries and source code are freely available through the internet at In the sections below, we describe the models and modeling approaches supported by Topographica, how the simulator is designed, and how it can be used for education and modeling in computational neuroscience.

Simulator scope and approach

Figure 1 illustrates the types of models supported by Topographica. The models focus on topographic maps in any two-dimensional cortical or subcortical region, such as visual, auditory, somatosensory, proprioceptive, and motor maps. Typically, models will include multiple regions, such as an auditory or visual processing pathway, and simulate a large enough area to allow the organization and function of each map to be studied. The external environment must also be simulated, including playback of visual images, audio recordings, and test patterns. Current models typically include only a primary sensory area with a simplified version of an input pathway, but larger scale models will be crucial for understanding phenomena such as object perception, scene segmentation, speech processing, and motor control. Topographica is intended to support the development of such models.

Figure 1: Topographica models. This figure shows a sample Topographica model of the early visual system ( Bednar and Miikkulainen 2003a , b ). In Topographica, models are composed of interconnected sheets of neurons. Each visual area in this model is represented by one or more sheets. For instance, in this model the eye is represented by three sheets (a sheet representing an array of photoreceptors, plus two sheets representing retinal ganglion cells), while V1 is represented by a single sheet. Sheets are connected to other sheets, and units within each sheet can be connected using lateral connections. For one cell in each sheet in the figure, sample connections are shown, including lateral connections in V1 and higher areas. Similar models can be used for topographic maps in somatosensory, auditory, and motor cortex.

To make it practical to model topographic maps at this large scale, the fundamental unit in the simulator is a two-dimensional sheet of neurons, rather than a neuron or a part of a neuron. Each sheet typically represents a set of similar neurons, and multiple sheets can be used for each area to represent different laminae or qualitatively different cell classes. Conceptually, a sheet is a continuous, two-dimensional area (as in Amari 1980 ; Roque Da Silva Filho 1992 ), which is typically approximated by a finite array of neurons. This approach is crucial to the simulator design, because it allows user parameters, model specifications, and interfaces to be independent of the details of how each sheet is implemented. When the simulation is run, these canonical parameters are then translated into the appropriate values for the specific array of units being simulated.

The result of this approach is that the user can easily trade off between simulation detail and computational requirements, depending on the phenomena under study in a given simulator run. (See Bednar et al. 2004 or Miikkulainen et al. 2005 for more details on model scaling.) If enough computational power and experimental measurements are available, models can be simulated at full scale, with as many neurons and connections as in the animal system being studied. More typically, a less-dense approximation will be used, requiring only ordinary PC workstations that are practical for classroom use. Because the same model specifications and parameters can be used in each case, switching between levels of analysis does not require extensive parameter tuning or debugging as would be required in neuron-level or engineering-oriented simulators.

For most simulations, the individual neuron models within sheets can be implemented at a high level, consisting of single-compartment firing-rate or (less commonly) integrate-and-fire units. When more detail is needed within sheets, Topographica is designed to be simple to interface to external simulators. For instance, recent projects to wrap a spiking NEST simulation and a firing-rate Matlab simulation as Topographica sheets each took about four hours, after which all of Topographica's analysis, input presentation, and visualization tools became available.

Software design and architecture

Topographica consists of a graphical user interface (GUI), scripting language, and libraries of models, analysis routines, and visualizations. The model library consists of a large number of predefined types of sheets, connections, neuron models, activation functions, learning rules, and input patterns, and can easily be extended with user-defined components. These building blocks are combined into a model using the GUI or the script language.

The analysis and visualization libraries include statistical tests and plotting capabilities geared towards large, two-dimensional areas. They also focus on data displays that can be compared with experimental results, such as optical imaging recordings, for validating models and for generating predictions. Figure 2 shows examples of the visualization types currently supported, and figure 3 shows how large networks can be constructed in the GUI. These figures are screenshots from the April 2007 release of Topographica, which is available for download at

Figure 2: Software screenshot. This image shows a sample session from Topographica version 0.9.3, available freely at Here the user is studying the behavior of an orientation map in the primary visual cortex (V1), using a model similar to the one depicted in figure 1. The window at the left labeled "Orientation Preference" shows a self-organized orientation map in V1. The window labeled "Activity" show a sample visual image on the left, along with the responses of the retinal ganglia and V1. The input patterns were generated using the Test Pattern "Preview" dialog at the right. The window labeled "Connection Fields" shows the strengths of the connections to one neuron in V1. The lateral weights for a 9 x 9 sampling of the V1 neurons are shown in the "Weights Array" window in the center; neurons tend to connect to their immediate neighbors and to distant neurons of the same orientation. This type of large-scale analysis is difficult with existing simulators, but Topographica is well suited for it.

Figure 3: Model editor screenshot. This figure shows a simple visual cortex model made up of four Sheets, created using the Topographica model editor. Each sheet was added to the image as in a drawing program, with the Sheet type and its parameters set using the GUI widgets shown. The Sheets are then connected using Projections, again with user changeable type and parameters. Parameters for the V1 region are shown at the far left. This interface is sufficient for creating many models, e.g. for classroom use, but adding new types of Sheet, Projection, or other components typically requires writing a small amount of code in the script language.

To allow large models to be executed quickly, the numerically intensive portions of the simulator are implemented in C++. Equally important, however, is that prototyping be fast and flexible, and that new architectures and other extensions be easy to explore and test. Although C++ allows the fine control over machine resources that is necessary for peak performance, it is difficult to write, debug and maintain complex systems in C++.

To provide flexibility, the bulk of the simulator is implemented in the Python scripting language. Python is an interactive high-level language that allows rapid software development and interactive debugging, and includes a wide variety of software libraries for tasks such as data analysis, statistical measurements, and visualization. Unlike the script languages typically included in simulators, Python is a complete, well-defined, easy to use, stable, mature language with a strong user base. As a result, it enjoys strong support outside of the field of computational neuroscience, which provides much greater flexibility for users, and also makes the task of future maintenance easier.

Topographica is available freely for Linux, Microsoft Windows, and Macintosh OS X platforms. At present, the most extensive support is for models of the visual system, and Topographica includes flexible components for generating visual inputs (based on geometric patterns, mathematical functions, and photographic images), plus general-purpose mechanisms for measuring maps of visual stimulus preference, such as orientation, ocular dominance, motion direction, and spatial frequency maps. But many of the primitives are usable for any topographically organized system, and there are already Topographica models of somatosensory areas (e.g. monkey skin and rat whisker barrel areas), auditory inputs, and motor areas (e.g. for driving visual saccades).

Educational use

Computational models are a very effective way of demonstrating theories about neural systems function, and general-purpose simulators like Topographica are a much more accessible way to introduce non-computer-science students to computational neuroscience than the custom C or Matlab model code used for many models. Topographica has been used for vision tutorials in the Principles of Neuroscience course at the University of Edinburgh since 2004, and has been the main simulator for the Computational Neuroscience of Vision course since 2006.

The tutorials used in these courses are freely available at For instance, the LISSOM orientation map tutorial allows a student to present any input pattern (including any photograph of their choice) to a model orientation map ( Miikkulainen et al. 2005 ) to see how the visual cortex neurons respond to that input. The cortical model can then be analyzed and visualized in as much detail as necessary. This allows students to explore the behavior of such systems easily, making them concrete and allowing hypotheses to be tested very simply.

Topographica is also an excellent way to study a variety of different models within the same analysis and visualization framework, e.g. for courses in cortical modeling approaches. For instance, Topographica includes a variety of different published models of orientation and ocular dominance maps, each of which can be compared directly without the distracting differences in plot types, presentation formats, and network sizes that make it difficult to evaluate how most models differ from each other. The effect of swapping out each of the various components (activation rules, learning rules, etc.) or changing parameters can be determined very easily in Topographica, making it practical for students to evaluate how each component affects the behavior of each model. Together, these features make it possible to focus on teaching and exploring the essential features of models, spending less time on the implementation details.


The Topographica simulator fills an important gap between existing software for detailed models of individual neurons, and software for abstract models of cognitive processes. The simulator focuses on models formulated at the topographic map level, which is crucial for understanding brain function. Using the tools provided by Topographica, we expect that neuroscientists and computational researchers will be able to answer many of the outstanding research questions about topographic maps, including what roles environmental and intrinsic cues play in map development, and what computations they perform in the adult. The simulator is designed throughout to be general and extensible, and so it will also be able to address new research questions that arise from future experimental work. We believe this shared, extensible tool will be highly useful for the community of researchers working to understand the large-scale structure and function of the cortex, and will be a valuable tool for teaching about brain function.


Supported in part by the National Institutes of Mental Health under Human Brain Project grant 1R01-MH66991, by the National Science Foundation under grant IIS9811478, and by the EPSRC/MRC Doctoral Training Centre in Neuroinformatics at the University of Edinburgh.

Topographica would not have been possible without the tireless efforts of Christopher Ball and others who have contributed code, including Jan Antolik, Yoonsuck Choe, Julien Ciroux, Judah B. De Paula, Foivos Demertzis, Veldri Kurniawan, Judith Law, Alan Lindsay, Louise Mathews, Lewis Ng, Christopher Palmer, Ruaidhri Primrose, Jefferson Provost, Tikesh Ramtohul, Yiu Fai Sit, Stuart Wilson, and Roger Zhao.


Amari, S (1980). Topographic organization of nerve fields. Bulletin of Mathematical Biology, 42:339-364.

Bednar JA, Kelkar A, and Miikkulainen R (2004). Scaling self-organizing maps to model large cortical networks. Neuroinformatics, 2:275-302.

Bednar JA and Miikkulainen R (2003a). Learning innate face preferences. Neural Computation, 15(7):1525-1557.

Bednar JA and Miikkulainen R (2003b). Self-organization of spatiotemporal receptive fields and laterally connected direction and orientation maps. Neurocomputing, 52-54:473-480.

Blasdel GG (1992). Orientation selectivity, preference, and continuity in monkey striate cortex. The Journal of Neuroscience, 12:3139-3161.

Bower JM and Beeman D (1998). The Book of GENESIS: Exploring Realistic Neural Models with the GEneral NEural SImulation System. Santa Clara, CA: Telos. Second edition.

Diesmann M and Gewaltig M (2002). NEST: An environment for neural systems simulations. Forschung und wisschenschaftliches Rechnen, Beiträge zum a Heinz-Billing-Preis 2001, 58:43-70. Ges. fϋr Wiss. Datenverarbeitung.

Hines ML and Carnevale NT (1997). The NEURON simulation environment. Neural Computation, 9:1179-1209.

Kaas JH (1997). Theories of visual cortex organization in primates. Cerebral Cortex, 12:91-125.

Merzenich MM, Knight PL and Roth GL (1975). Representation of cochlea within primary auditory cortex in the cat. Journal of Neurophysiology, 38(2):231-249.

Miikkulainen R, Bednar JA, Choe Y and Sirosh J (2005). Computational Maps in the Visual Cortex. Berlin: Springer.

Ohki K, Chung S, Ch'ng YH, Kara P and Reid RC (2005). Functional imaging with cellular resolution reveals precise micro-architecture in visual cortex. Nature, 433(7026):597-603.

O'Reilly RC and Munakata Y (2000). Computational Explorations in Cognitive Neuroscience: Understanding the Mind by Simulating the Brain. Cambridge, MA: MIT Press.

Roque Da Silva Filho AC (1992). Investigation of a Generalized Version of Amari's Continuous Model for Neural Networks. PhD thesis, School of Cognitive and Computing Sciences, University of Sussex, Brighton, UK.

Swindale NV (1996). The development of topography in the visual cortex: A review of models. Network: Computation in Neural Systems, 7:161-247.

Van Essen DC, Lewis JW, Drury HA, Hadjikhani N, Tootell RBH, Bakircioglu M and Miller MI (2001). Mapping visual cortex in monkeys and humans using surface-based atlases. Vision Research, 41(10-11):1359- 1378.

Weliky M, Bosking WH and Fitzpatrick D (1996). A systematic map of direction preference in primary visual cortex. Nature, 379:725-728.


Any party may pass on this Work by electronic means and make it available for download under the terms and conditions of the Digital Peer Publishing License. The text of the license may be accessed and retrieved via Internet at