CS 4884: Computing the Brain (CBB Capstone Course)

Spring 2020, 3:30pm-4:45pm, Tuesdays and Thursdays, MCB 238

About the Course

What is the focus of this course?

The goal of this course is to teach you computational methods that scientists use to understand the brain at the anatomical level in order to gain insights into structure-function relations, health, and disease. We will primarily use the tools of graph (network) theory but will also occasionally delve into machine learning and data mining. We will delve into the cellular and molecular levels if there is time. The textbook for the course is Fundamentals of Brain Network Analysis by Alex Fornito, Andrew Zalesky, and Edward Bullmore. If you are logged into the Virginia Tech network, you should be able to access the PDF version of the book at the previous URL.

Who should take this course?

You should take this course if you are curious to find out how the latest research is shaping our understanding of the brain. We will spend a lot of time learning basic concepts and tools in graph theory and how they are applied to understand networks that connect regions in the brain, cells in the brain, and molecules in the brain. There are many exciting and profound issues that researchers in this area are actively investigating, such as the robustness of the brain, network structures and dynamics, and applications to drug discovery.


The course is open to students with junior or senior standing in computer science, neuroscience, or a related field.

A knowledge of data structures basic graph algorithms will help. You must know some programming (the language does not matter much) in order to complete assignments. I hope that both students with computational backgrounds and students with experience in the life sciences will take this course. If you find this course interesting but are not sure whether your background matches, please talk to me. The course does not assume that you have any exposure to neuroscience. The most important exhortation is to keep your brain open, a la Erdos.

Course structure

The course will primarily be driven by lectures by me in the first half of the semester and by a group software project. Your grade will depend on assignments (40%) and the project (60%). This division might change based on our discussions in class.


After the introductory lectures, my lectures will cover a small subset of the chapters in the textbook. I expect students to read the corresponding chapter carefully before the class and be prepared for participating in discussions in the classroom. We will explore several additional topics in group projects.


A typical assignment will involve writing code to replicate or extend the analysis in one or two figures in the textbook. Sometimes, you will have to perform this analysis for a dataset not considered in the original paper. These assignments may organically come about from class discussions. You will have about two weeks to complete assignments. Your solution will include a report on the results of your analysis, including the figures, discussion of difficulties you faced, how you solved them, and observations on your results.

Software Projects

In the first few weeks, I will describe several ideas for software projects. Students can form groups (two-three students) and work on projects together. Details on the projects themselves and the selection process will be forthcoming.


Table 1: Schedule (subject to change throughout the semester). Links in the "Reading" column point to specific chapters to be discussed in each class. Links in "Presenter" column point to the slides for the lecture.
Date Topic Reading
Jan 21, 2020 Introduction to "Computing the Brain"  
Jan 23, 2020 Introduction to "Computing the Brain", continued  
Jan 28, 2020 Introduction to Graphs  
Jan 30, 2020 Brain Graphs Chapter 2
Feb 4, 2020 Erdos-Renyi and Small World networks Paper distributed by email, Chapter 4.2.1, Box 6.2
Feb 6, 2020 Erdos-Renyi and Small World networks  
Feb 11, 2020 Class cancelled  
Feb 13, 2020 Small World Brain Networks Paper distributed by email, Chapters 8.2.1, 8.2.3, 10.2.1
Feb 18, 2020 Group projects  
Feb 20, 2020 Connectivity, Cliques, and Cores Chapter 6.1.1, 6.1.2, 6.2.1, 6.2.2, 7.1, 7.2
Feb 25, 2020 Modules Chapter 9.1
Feb 27, 2020 Modules, continued  
Mar 3, 2020 Meeting with project team  
Mar 5, 2020 Meeting with project team  
Mar 10, 2020 No class, Spring break  
Mar 12, 2020 No class, Spring break  
Mar 17, 2020 Meeting with project team  
Mar 19, 2020 Meeting with project team  
Mar 24, 2020 Meeting with project team  
Mar 26, 2020 Meeting with project team  
Mar 31, 2020 Meeting with project team  
Apr 2, 2020 Meeting with project team  
Apr 7, 2020 Meeting with project team  
Apr 9, 2020 Meeting with project team  
Apr 14, 2020 Meeting with project team  
Apr 16, 2020 Meeting with project team  
Apr 21, 2020 Meeting with project team  
Apr 23, 2020 Meeting with project team  
Apr 28, 2020 Meeting with project team  
Apr 30, 2020 Meeting with project team  
May 5, 2020 Meeting with project team  

Introductory Videos

These videos provide introductions into the brain structure and function, and molecular and cell biology. I will play some of them in class.

These videos discuss general molecular and cell biology.

  • The Cell (7:21"): a general overview of cell structure from Nucleus Medical Media


  1. Assignment 1, released on February 11, 2020, due by 11:59pm on February 20, 2020
  2. Assignment 2, released on February 27, 2020, due by 11:59pm on March 20, 2020


Each group should give me its top three choices by 5pm on Tuesday, February 25.

I have provided brief descriptions of a few project ideas below. I will develop the projects further and flesh out many details over the course of the meetings I will schedule with each group. I will make multiple connectomes available that can be used across different projects. There will be ample opportunity to add meat to each project, including ideas you develop yourself, visualizing networks in the cool ways we have seen in the textbook and in class, and displaying your results in interesting and compelling ways.

General Guidelines

These guidelines will help you complete projects successfully.

  • Read the relevant book chapter or the methods section of the relevant paper o carefully, in conjunction with the results and figures.
  • Make a list of the functionality, steps, or data you will need to generate each panel of each figure.
  • Create a detailed Google Doc with this information and share it with me.
  • Remember that you do not have to implement every piece of analysis yourself. I allow you to use existing software packages.
  • If you get overwhelmed, take it one panel at a time. If a panel looks very challenging, discuss it with me.
  • Divide the tasks among the members of your group and set a timetable to follow.
  • The more organized you are and the more you make regular progress each week, the greater your chances of success! Do not leave everything till the last couple of weeks.

Links to datasets

1. Small-worldness of neuronal networks

In class, we have seen evidence that brain networks have the small-world property. Nodes in these networks have corresponded to macroscopic regions of the brain. Do networks at the neuronal level, i.e., where every node is a neuron, also have the small-world property? You will investigate this question in this project using the fly hindbrain dataset. The challenge is that this network contains 25,000 nodes, which means that you have to compute about 312 million pairs of shortest paths lengths. A major component of the project will be to devise sampling strategies that compute only a small fraction of all shortest paths yet still give high-quality estimates of the average shortest path length. A secondary component will be to do the same for the clustering coefficient as well.

2. Clustering in neuronal networks

In class, we have discussed algorithms for computing clusters/modules in connectomes. In this project, you will apply and test these algorithms on neuronal networks such as those for the fly hindbrain. Many of these algorithms are likely to run very slowly on large networks, so you have ample scope for developing clever strategies to speed them up. Another important direction will be to identify clusters (of neurons) that you compute with regions in the brain.

3. Routing in connectomes 1: Navigable maps of structural brain networks across species

How are signals propagated efficiently in brain networks? Algorithms such as Dijkstra's require complete knowledge of all the nodes and edges in a graph. In the brain, a "node" is likely to have knowledge only of its "neighbours". How can we define an efficient routing protocol in this scenario? The authors of this paper use a simple decentralised protocol called "greedy routing" and demonstrate its efficacy in networks from several species.

The goal of this project is to implement this method and compare it to other shortest path algorithms, including Dijkstra's algorithm and the A* algorithm. Is the Bellman-Ford algorithm useful here? As part of the project, think about how to use it as an alternative to navigation routing. Develop methods to compare its performance to all the other algorithms. Replicate the results in Figures 2-4 and, if possible, Figure 5 in the paper.

4. Routing in connectomes 2: A spectrum of routing strategies for brain networks

This paper presents a family of biased random walks for routing in brain networks that combine local and global information. This approach is similar to shortest-path algorithms at one extreme and to diffusion based processes at the other.

In this project, you will implement the algorithm proposed in this paper and recreate the results in Figures 2, 3, and 5, and if possible, Figure 4.

5. Rentian Scaling

We have seen in class that brain networks are modular, where each module is a set of node that is highly connected internally. How are intermodule connections distributed within a network? Rentian scaling is a concept in engineered circuit design. It states that the number of external connections between nodes in different modules is related to the number of nodes inside the modules by a power-law relationship. (Physical) Rentian scaling is a property of systems that are cost-efficiently embedded into physical space. It is what is called a "topo-physical" property because it combines information regarding the topological organization of the network with information about the physical placement of connections. In this project, you will compute the Rentian scaling of different brain networks. Two papers will be relevant here: Efficient Physical Embedding of Topologically Complex Information Processing Networks in Brains and Computer Circuits and Evidence of Rentian Scaling of Functional Modules in Diverse Biological Networks. Chapter 8.3.3: Rentian scaling of the textbook also covers this topic.

  • There are different algorithms for computing modules. How much does the Rentian scaling property (the power in the law) vary depending on the algorithm?
  • Does Rentian scaling change from one organism to another?
  • There are two different notions of Rentian scale: topological and geometric. There are different ways to compute them. How do these values differ?

6. Mouse Connectome

A 2017 paper titled Organizing principles for the cerebral cortex network of commissural and association connections has published and analyzed a comprehensive connectome of the mouse brain, collected from findings in over 185 publications that appeared in the literature since 1974. This project will analyze the structural properties of this connectome. If you are ambitious, you can try to correlate this network with the mouse connectome created independently by the Allen Institute for Brain Science.

7. Generative Models of Connectomes

In the class, we have studied and analysed several type of connectomes. Each of these connectomes arose from experimental observations of the brains of different organisms. We studied several types of properties of these connectomes. A fundamental question that arises now is what types of evolutionary processes in nature can generate the types of connectomes that exist in organisms. For example, the process is almost certainly not an Erdos-Renyi like model. This project will consider several mathematical models that have been proposed for connectomes and test these models for their ability to generate artificial networks with properties that match those of real connectomes such as the small world property and hierarchical modularity. The paper Resolving Structural Variability in Network Models and the Brain and Box 10.1: Growth Connectomics: Generative Models for Brain Networks in the textbook provide excellent starting points for this project. An important question to consider will be whether models should incorporate geometric constraints imposed by the structure of the brain.

8. Genetic Model of the Connectome

Different individuals in the same species have connectomes that show remarkable architectural and wiring similarity. What is the reason? Could the connectivity patterns of neurons be encoded at the protein level? The paper A Genetic Model of the Connectome explores this idea through a hypothesis that the genetic identity of a neuron guides the formation of its synapses. Their specific hypothesis predicts the existence of subgraphs called bipartite cliques (bicliques) in the connectome.

An initial goal in this project is for you to read and understand the paper. After downloading the datasets, you will have to write software to recreate the results in Figures 2-4. To enumerate all maximal bicliques, you may use existing software packages.