As a part of the XIII Summer School in Statistics UPC-UB we are organizing, together with Matthieu Gilson, Adrià Tauste and Gorka Zamora, a Hands-on course on neural data science.

When: July 1st to 5th from 3:00 PM to 6:00 PM

Where: Barcelona, UPC campus

The registration is already opened in the following link:

If you need further information do not hesitate to contact me or the organizer at


The course focuses on several aspects of data science applied to data recorded from the brain: statistical modeling, graph theory, statistical analysis and machine learning. The course is based on a learn-by-coding philosophy: the students will develop a data-driven project throughout the course to understand and apply some of the taught techniques under the supervision of the teachers. Many methods explained during this course can be applied to different data outside brain sciences, so previous experience in neuroscience is not required.

Course goals

Specific objectives:

  • Understand statistical modeling for time series, their estimation, evaluation and selection.
  • Understand graph theoretical measures.
  • Understand machine learning methods: cross-validation, supervised learning, dimensionality reduction.
  • Use all explained tools in synergy for the analysis of neural data.

Transversal objectives:

  • Improve Python programming skills.
  • Learn to compare results from different types of analyses about the same question.
  • Present the results of statistical analysis in a clear and appealing format.

Course contents

  1. A statistical description of data in neuroscience
  2. Statistical modeling of time series (with StatsModels package)
    1. Graphical models and Partial Correlation
    2. Autoregressive processes and Granger Causality
    3. Model estimation
    4. Model evaluation and selection
  3. Graph Theory for brain connectivity (with GAlib package)
    1. Binary networks
    2. Weighted networks
    3. Network models and benchmarks
    4. Network comparison and interpretation
  4. Machine Learning (with scikit-learn package)
    1. Classification: linear models, kNN and SVM
    2. Regression
    3. Cross-validation schemes for complex scenarios
    4. Regularization
    5. Dimensionality reduction: PCA, feature selection methods
    6. Interpretation of machine learning models


Students are expected to have basic knowledge in applied maths (linear algebra and calculus), as well as basic statistics (BS level) and some programming skills (Python language will be used but the course will also be fruitful for students with good programming skills in other languages). This course can be combined with the introductory course offered in the morning for a more gentle progression from basics to more advanced topics. Students should bring their laptop to each session.

Targeted at

Master’s and PhD students in quantitative disciplines; last year Bachelor’s degree students (if they have sufficient quantitative background); postdoctoral researchers and faculties.


The students will be evaluated via a hands-on project developed during the course in small groups (up to three participants). They will be asked to summarize and present their results.

Computer class or student’s laptop?

Student’s laptop

Software requirements

All the software needed for this course is free and open source. We recommend Anaconda distribution that allows to create an environment dedicated to the course with all needed software installed. We will provide an environment configuration file to have everything setup from the beginning. However all libraries used can be installed independently of Anaconda (although this usually requires more work).