Introduction to Source Control
Source Control¶
Source or version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. It also prevents files from being altered by more than one person at a time.
Git¶
Git is a distributed version control system (DVCS) with an emphasis on fast performance and nonlinear editing. Initially conceived in 2005 as a development tool for the Linux kernel codebase, it is as of 2014 one of the most widely adopted version control technologies. Git is free and open source and it has been designed to handle everything from small to very large projects with speed and efficiency.
GitHub¶
Going through this 15-minutes in-browser tutorial is the quickest way of getting started with Git and GitHub. Another good option is this Hello World Guide for GitHub. This screencast by Ralf Ebert is a good all-around introduction (especially if you are already familiar with version control systems), while for a more systematic treatment see the excellent Pro Git book by Scott Chacon, available as part of the official documentation on Git’s website. The Visual Git Reference by Mark Lodato is very helpful when trying to understand some of the more advanced concepts.
Why GitHub?
Born in 2008, GitHub is now the largest open source code hosting service on the web, with more than 10 million repositories as of January 2013. It offers free hosting for open source, public git repositories as well as paid-for hosting for private ones, and an array of powerful tools for collaborative coding and social networking functionality such as feeds, followers, wikis, etc. It can be used via the web interface or standalone clients (see below).
Graphical clients for Windows and Mac¶
While many people interact with Git repositories through the command line interface, graphical applications are becoming increasingly popular for managing multiple local and remote repositories. GitHub has useful GUIs for interacting with repositories hosted there for Windows:
and Mac:
Alternatively, a more complex and general-purpose version control GUI is SourceTree (Windows and Mac):
Alternative Version Control System (VCSs) and hosting services¶
While GitHub is the hosting service we (strongly) recommend for new users, for those with specific technical requirements Open Source Brain supports Mercurial repositories hosted on Bitbucket (see for example Self Sustained Network Activity - Destexhe 2009) and self-hosted SVN/Git/Mercurial/Bazaar public repositories.
Introduction to Computational Neuroscience
Computational Neuroscience¶
This document is intended to help newcomers to get into computational neuroscience.
Note that this is a living document and it will regularly be updated.
Offers of help to complete this are very welcome!
Books¶
Neuroscience
- Cognitive Neuroscience, Michael S. Gazzaniga, Richard B. Ivry and George R. Mangun
- Principles of Neural Science, Eric Kandel
Computational modelling/theoretical neuroscience
- Theoretical Neuroscience: Computational and Mathematical Modeling of Neural Systems, Peter Dayan and LF Abbott
- Methods in Neuronal Modeling: from Ions to Networks, C. Koch and I. Segev (eds.)
- Principles of Computational Modelling in Neuroscience, David Sterratt, Bruce Graham, Andrew Gillies and David Willshaw (eds.)
- Neuronal Dynamics - from single neurons to networks and models of cognition, Wulfram Gerstner, Werner M. Kistler, Richard Naud and Liam Paninski (freely available online!)
- Computational Neuroscience: Realistic Modeling for Experimentalists. E. De Schutter (ed.)
- Introduction To The Theory Of Neural Computation, John A. Hertz, Anders S. Krogh and Richard G. Palmer
- Vision: A Computational Investigation into the Human Representation and Processing of Visual Information, David Marr
- The handbook of brain theory and neural networks, Michael A. Arbib (ed.)
Programming
Machine learning
- Pattern Recognition and Machine Learning, Christopher M Bishop
- Machine Learning, A Probabilistic perspective, Kevin P. Murphy
Publications¶
Review articles
- Atick, J.J., 1992. Could information theory provide an ecological theory of sensory processing?. Network: Computation in neural systems, 3(2), pp.213-251.
- Oztop, E., Kawato, M. and Arbib, M., 2006. Mirror neurons and imitation: A computationally guided review. Neural Networks, 19(3), pp.254-271.
- Bower, J.M., 2013. 20 years of computational neuroscience. New York: Springer.
- Brette, R., Rudolph, M., Carnevale, T., Hines, M., Beeman, D., Bower, J.M., Diesmann, M., Morrison, A., Goodman, P.H., Harris Jr, F.C. and Zirpe, M., 2007. Simulation of networks of spiking neurons: a review of tools and strategies. Journal of computational neuroscience, 23(3), pp.349-398.
Classic papers
- Hodgkin, A.L. and Huxley, A.F., 1952. A quantitative description of membrane current and its application to conduction and excitation in nerve. The Journal of physiology, 117(4), p.500.
- McCulloch, W.S. and Pitts, W., 1943. A logical calculus of the ideas immanent in nervous activity. The bulletin of mathematical biophysics, 5(4), pp.115-133.
- Donald O.Hebb, The Organization of Behavior, New York: Wiley, Introduction and Chapter 4, "The first stage of perception: growth of the assembly," pp. xi-xix, 60-78.
- Lashley, K.S., 1950. In search of the engram.
- Von Neumann, J. and Kurzweil, R., 2012. The computer and the brain. Yale University Press.
- Rosenblatt, F., 1958. The perceptron: a probabilistic model for information storage and organization in the brain. Psychological review, 65(6), p.386
- Marr, D. and Poggio, T., 1976. Cooperative computation of stereo disparity. Science, 194(4262), pp.283-287.
- Grossberg, S., 1982. How does a brain build a cognitive code? In Studies of mind and brain (pp. 1-52). Springer Netherlands.
- Ackley, D.H., Hinton, G.E. and Sejnowski, T.J., 1985. A learning algorithm for Boltzmann machines. Cognitive science, 9(1), pp.147-169.
Open Source Brain projects¶
See here for a list of OSB projects which contain tutorials, exercises, etc. in computational neuroscience.
Software¶
- Modelling
An overview of the main target simulators for models in Open Source Brain can be found here.
Markup Languages
Libraries: Data analysis and scientific computing
Libraries: Data visualization
Libraries: Machine learning
Databases¶
- ModelDB: model database for computational neuroscience (ModelDB)
- Open Source Brain (OSB)
- Digitally Reconstructed Neuron Database (NeuroMorpho)
- Neuroscience Information Framework (NIF)
- Brain Operation Database System (BODB)
- BioModels Database (BioModels)
Organisations¶
- Organization for Computational Neurosciences (OCNS)
- International Neuroinformatics Coordinating Facility (INCF)
Institutions, Laboratories and Research Groups¶
Asia
Europe
USA
- Allen Institute of Brain Science
- Swartz Center for Computational Neuroscience, UCSD, CA
- Center for the Neural Basis of Cognition
- Seung Lab, Priceton, NY
- Neural Dynamics and Computation Lab, Stanford, CA
- Center for Theoretical Neuroscience, Columbia University, NY
- Sejnowski Lab, UCSD, CA
- McGovern Institute for Brain Research at MIT
A more comprehensive list of labs, centers and researchers can be found here.
Mailing Lists, Blogs and News¶
Mailing lists
- Computational Neuroscience (Comp-neuro)
- Computational and Systems Neuroscience (Cosyne)
- The Connectionists mailing list (connectionists)
- Computational Neuroscience (Comp-neuro)
Blogs
News
Online courses¶
Coursera
edX
Wulfram Gerstner
OCW MIT