CS 4884: Computing the Brain (CBB Capstone Course)

Spring 2022, 2pm-3:15pm, Tuesdays and Thursdays, NCB 110A

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.

Pre-requisites

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 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.

Lectures

After the introductory lectures, my lectures will generally follow the order 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.

Assignments

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

Before spring break, 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.

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

Schedule

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.
Topic Date Reading
Introduction to "Computing the Brain" Jan 18, 2022  
Introduction to "Computing the Brain", continued Jan 20, 2022  
Introduction to Graphs Jan 25, 2022  
Brain Graphs Jan 27, 2022 Chapter 2
Connectivity Matrices and Node Degrees Feb 1, 2022 Chapter 3, Chapter 4.2.2, 4.2.3
Erdos-Renyi and Small World networks Feb 3, 2022 Paper distributed by email, Chapter 4.2.1, Box 6.2
Erdos-Renyi and Small World networks, continued Feb 8, 2022  
Small World Brain Networks Feb 10, 2022 Paper distributed by email, Chapters 8.2.1, 8.2.3, 10.2.1
Connectivity and Shortest Paths Feb 15, 2022 Chapter 6.1.1, 6.1.2, 7.1, 7.2
Connectivity and Shortest Paths, continued Feb 17, 2022  
Cliques, Cores, and Modules Feb 22, 2022 Chapter 6.2.1, 6.2.2
Cliques, Cores, and Modules, continued Feb 24, 2022 Chapter 9.1
Cliques, Cores, and Modules, continued Mar 1, 2022 Chapter 9.1
Discussion of course projects Mar 3 2022  
No class, Spring break Mar 8, 2022  
No class, Spring break Mar 10, 2022  
Class cancelled Mar 15, 2022  
Meeting with team for projects 1 and 3 Mar 17, 2022  
Meeting with team for projects 4 and 7 Mar 22, 2022  
Meeting with team for projects 1 and 3 Mar 24, 2022  
Meeting with team for projects 4 and 7 Mar 29, 2022  
Meeting with team for projects 1 and 3 Mar 31, 2022  
Meeting with team for projects 4 and 7 Apr 5, 2022  
Meeting with team for projects 1 and 3 Apr 7, 2022  
Meeting with team for projects 4 and 7 Apr 12, 2022  
Meeting with team for projects 1 and 3 Apr 14, 2022  
Meeting with team for projects 4 and 7 Apr 19, 2022  
Meeting with team for projects 1 and 3 Apr 21, 2022  
Meeting with team for projects 4 and 7 Apr 26, 2022  
Meeting with team for project Apr 28, 2022  
Meeting with team for project May 3, 2022  

#T. M. Murali

Assignments

  1. Assignment 1, released on February 10, 2022, due by 11:59pm on February 17, 2022
  2. Assignment 2, released on February 24, 2022, due by 11:59pm on March 18, 2022

Projects

Each student should give me their top three choices by 5pm on Monday March 14. I will create groups based on your choices. 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 methods section of the relevant paper or book chapter 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 connectomes

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 central brain. 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. Consensus clustering of connectomes

There are over 100 algorithms developed for clustering graphs in order to find modules in them. The algorithms differ in several characteristics such as the definition of modules, the number of parameters used to define modules, whether modules can overlap or not, and the precise techniques used to compute them. This project will apply multiple such published algorithms to connectomes in order to discover how much the computed modules change based on the algorithm. The material in Chapter 9.3: Comparing and Aggregating Network Partitions of the textbook is relevant. I encourage the project group to read other papers on "consensus clustering" published in the literature, with my feedback and advice, of course. The steps in the project will include

  • Decide a set of algorithms to compare after discussion with me.
  • Download the code for each algorithm and making sure it runs well. If necessary, you may have to implement some algorithms, but I hope that work will be minimal.
  • Develop and implement ideas and methods for comparing modules and partitions computed by different algorithms.
  • Implement consensus clustering algorithms.
  • Run these algorithms on connectomes and report your results.

4. Inferring direction in brain networks

Many techniques for determining connections among brain regions, e.g., diffusion tensor imaging or functional magnetic resonance imaging, result in undirected networks, i.e., we know that two regions \(a\) and \(b\) are connected by one or more nerves but we do not in which direction the connections go. This project will explore whether it is possible to analyze the edges and structure of an undirected network to predict the direction of each edge. The paper Inferring neural signalling directionality from undirected structural connectomes proposes methods to solve this problem. It defines use three methods: navigation efficiency, diffusion efficiency, and search information. The goal of the project will be to understand these methods, implement them, apply them to brain networks, and evaluate their effectiveness.

5. 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.

6. 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.

7. Routing in connectimes 3: Efficient coding for maximal information transmission in the brain

What is an appropriate model of how the brain transmits information? Information transmission may be modeled as the passing of stochastic messages in parallel along the wiring of the human connectome. Under two natural assumptions, the paper Efficient coding in the economics of human brain connectomics proposes an approach based on shortest paths to measure the effective fidelity of a message passed between regions of the brain. Further, it uses a random walk-based idea to develop a notion of the rate of a message. This paper introduces a few new concepts in neuroscience that we have not discussed in class, so it will ideal for students who want to learn these concepts as part of a capstone project. Since this paper is long and detailed, this project will focus on the five hypotheses illustrated in Figure 1B. I will work with the students to define precisely which results in the paper should be replicated in this project.

8. Rentian scaling

We know that brain networks are modular, where each module is a sets 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?