Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

Blog

Articles about computational science and data science, neuroscience, and open source solutions. Along with other personal stories, I also love exploring historical and cultural narratives from local and global perspectives.

Hello, I’m a Fabrizio Musacchio and I want to understand how the brain works.

CC BY-NC-SA 4.0 License

Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License (CC BY-NC-SA 4.0)

Research

My work focuses on the analysis of neurological data to better understand the neuronal processes related to the Hippocampus, especially memory and learning and neurodegenerative diseases. This covers the analysis of multi-fluorescence ex- and in-vivo imag...

Teachings

Teaching material, mostly on computational neuroscience, bioimage analysis, and machine learning. Feel free to use and share it.

Weekend Stories

Weekend Stories is a visual diary of everyday stories, (mostly) captured on weekends.

Weekend Stories: Seen

Weekend Stories is a visual diary of everyday stories, (mostly) captured on weekends. This subcategory contains pure photo series only. Accompanying stories can be found in the subcategory ‘told’.

Weekend Stories: Told

Weekend Stories is a visual diary of everyday stories, (mostly) captured on weekends. This subcategory is a collection of personal stories, that usually accompany the photo series listed in the subcategory ‘seen’.


Posts

FitzHugh-Nagumo model

34 minute read

In the previous post, we analyzed the dynamics of Van der Pol oscillator by using phase plane analysis. In this post, we will see, that this oscillator can be considered as a special case of another dynamical system, the FitzHugh-Nagumo model. The FitzHugh...

Van der Pol oscillator

15 minute read updated:

In this post, we will apply phase plane analysis to the Van der Pol oscillator. The Van der Pol oscillator is a non-conservative oscillator with nonlinear damping, which was first described by the Dutch electrical engineer Balthasar van der Pol in 1920. We ...

Nullclines and fixed points of the Rössler attractor

5 minute read

After introducing phase plane analysis in the previous post, we will now apply this method to the Rössler attractor presented earlier. We will investigate the system’s nullclines and fixed points, and analyze the attractor’s dynamics in the phase space.

Using phase plane analysis to understand dynamical systems

18 minute read

When it comes to understanding the behavior of dynamical systems, it can quickly become too complex to analyze the system’s behavior directly from its differential equations. In such cases, phase plane analysis can be a powerful tool to gain insights into ...

PyTorch on Apple Silicon

1 minute read

Already some time ago, PyTorch became fully available for Apple Silicon. It’s no longer necessary to install the nightly builds to run PyTorch on the GPU of your Apple Silicon machine as I described in one of my earlier posts.

Rössler attractor

6 minute read updated:

Unlike the Lorenz attractor which emerges from the dynamics of convection rolls, the Rössler attractor does not describe a physical system found in nature. Instead, it is a mathematical construction designed to illustrate and study the behavior of chaotic s...

Understanding Hebbian learning in Hopfield networks

6 minute read

Hopfield networks, a form of recurrent neural network (RNN), serve as a fundamental model for understanding associative memory and pattern recognition in computational neuroscience. Central to the operation of Hopfield networks is the Hebbian learning rule,...

Building a neural network from scratch using NumPy

11 minute read

Ever thought about building you own neural network from scratch by simply using NumPy? In this post, we will do exactly that. We will build, from scratch, a simple feedforward neural network and train it on the MNIST dataset.

Python’s version logos

less than 1 minute read

Have you ever noticed that Python has introduced individual version logos starting with version 3.10? I couldn’t find any official announcement, but luckily, the Python community on Mastodon was able to help out.

Conditional GANs

8 minute read

I was wondering whether it would be possible to let GANs generate samples conditioned on a specific input type. I wanted the GAN to generate samples of a specific digit, resembling a personal poor man’s mini DALL•E. And indeed, I found a GAN architecture, t...

Wasserstein GANs

16 minute read

We apply the Wasserstein distance to Generative Adversarial Networks (GANs) to train them more effectively. We compare a default GAN with a Wasserstein GAN (WGAN) trained on the MNIST dataset and discuss the advantages and disadvantages of both approaches.

Probability distance metrics in machine learning

10 minute read

Probabilistic distance metrics play a crucial role in a broad range of machine learning tasks, including clustering, classification, and information retrieval. The choice of metric is often determined by the specific requirements of the task at hand, with e...

Comparing Wasserstein distance, sliced Wasserstein distance, and L2 norm

10 minute read

In machine learning, especially when dealing with probability distributions or deep generative models, different metrics are used to quantify the ‘distance’ between two distributions. Among these, the Wasserstein distance (EMD), sliced Wasserstein distance ...

Wasserstein distance via entropy regularization (Sinkhorn algorithm)

7 minute read updated:

Calculating the Wasserstein distance can be computational costly when using linear programming. The Sinkhorn algorithm provides a computationally efficient method for approximating the Wasserstein distance, making it a practical choice for many applications...

Wasserstein distance and optimal transport

17 minute read

The Wasserstein distance, also known as the Earth Mover’s Distance (EMD), provides a robust and insightful approach for comparing probability distributions and finds application in various fields such as machine learning, data science, image processing, and...

Mamba vs. Conda: Unleashing lightning-fast Python package installations

3 minute read updated:

If you’ve ever experienced the frustration of waiting for ages while installing Python packages with conda, there’s a game-changer I wish I’d heard about earlier: Mamba. This lightning-fast package manager surprised me with its incredible speed, making pack...

Assessing animal behavior with machine learning

2 minute read

High-throughput and multi-modal behavior experiments, coupled with machine learning analysis, unlock valuable insights into complex systems by capturing diverse behavioral responses and deciphering hidden structures within high-dimensional datasets. I just ...

Bioimage analysis with Napari

2 minute read

I’ve added new teaching material on using the free and open-source software (FOSS) Napari for bioimage analysis. Feel free to use and share it.

Using random forests for pixel classification

8 minute read

Beyond traditional classification problems, random forests have proven their effectiveness in pixel classification. In this post, we will delve into this domain and explore how random forests can be effectively utilized to tackle the task of pixel classific...

Unlocking hidden patterns with Factor Analysis

11 minute read

In this Python tutorial, we dive into Factor Analysis, a powerful statistical method used to uncover hidden, or ‘latent,’ variables within high-dimensional datasets. Like PCA, grasping this technique will allow us to simplify complex data structures, thereb...

Untangling complexity: harnessing PCA for data dimensionality reduction

13 minute read

This tutorial explores the use of Principal Component Analysis (PCA), a powerful tool for reducing the complexity of high-dimensional data. By delving into both the theoretical underpinnings and practical Python applications, we illuminate how PCA can revea...

t-SNE and PCA: Two powerful tools for data exploration

6 minute read

Dimensionality reduction techniques play a vital role in both data exploration and visualization. Among these techniques, t-SNE and PCA are widely used and offer valuable insights into complex datasets. In this blog post, we explore te mathematical backgrou...

New publication on Tauopathy

less than 1 minute read

A new study on Tauopathy in which our lab was involved has just been published.

Understanding L1 and L2 regularization in machine learning

7 minute read

Regularization techniques play a vital role in preventing overfitting and enhancing the generalization capability of machine learning models. Among these techniques, L1 and L2 regularization are widely employed for their effectiveness in controlling model c...

Understanding gradient descent in machine learning

9 minute read

Gradient descent is a fundamental optimization algorithm widely used in machine learning for finding the optimal parameters of a model. It is a powerful technique that enables models to learn from data by iteratively adjusting their parameters to minimize a...

Mutual information and its relationship to information entropy

5 minute read

Mutual information is an essential measure in information theory that quantifies the statistical dependence between two random variables. Given its broad applicability, it has become an invaluable tool in diverse fields like machine learning, neuroscience, ...

Information entropy

4 minute read

A fundamental concept that plays a pivotal role in quantifying the uncertainty or randomness of a set of data is the information entropy. Information entropy provides a measure of the average amount of information or surprise contained in a random variable....

Understanding entropy

9 minute read

In physics, entropy is a fundamental concept that plays a crucial role in understanding the behavior of physical systems. It provides a measure of the disorder or randomness within a system, and its study has far-reaching applications across various branche...

Zen and natural sciences

4 minute read updated:

In this post, I broaden the scope and explore the intersections of Zen and natural sciences more generally.

The Zen of Python

10 minute read

The connection between Zen and programming is not a subjective one at all. For instance, Python has built it directly into its core programming, known as The Zen of Python.

The Zen of programming

3 minute read

Some thoughts about the connections between Zen and programming.

How to get an RSS feed of your Mastodon bookmarks

1 minute read

The third-party service Mastodon Bookmark RSS allows you to subscribe to your Mastodon bookmarks via RSS, so you don’t forget to make use out of them. You can even integrate the feed into your favorite Zettelkasten apps such as DEVONthink and Obsidian.

DEVONthink and privacy

1 minute read

One thing I really love about DEVONthink, is its high security and privacy measures regarding the synchronization of my notes across different devices. No other app that I have so far used offered such high standards.

Bio-image registration with Python

23 minute read

Which method works best for which registration problem? In this tutorial we compare different methods for the registration of bio-images using Python.

Using VS Code as LaTeX editor

6 minute read

It doesn’t take much to convert Visual Studio Code into a powerful LaTeX editor. Here are the necessary steps that enable full LaTeX support.

Moving a Mastodon account to another server

3 minute read

I recently moved my Mastodon account to a new server, including all my followers. I was surprised, how easy and seamless it worked. Here is a how-to, summarizing the migration steps.

Some useful Mastodon links

3 minute read updated:

This is a curated list of useful Mastodon links.

I’m on Mastodon

4 minute read updated:

Mastodon is not just a Twitter alternative. It’s a free and open-source social media platform of its own kind. Here is my story how I got there.

How to run PyTorch on the M1 Mac GPU

2 minute read updated:

As for TensorFlow, it takes only a few steps to enable a Mac with M1 chip (Apple silicon) for machine learning tasks in Python with PyTorch.

Is there a difference between miniconda and miniforge?

less than 1 minute read

Simply said: not really. Miniconda is the company driven minimal conda installer, while miniforge is its community driven variant. In the end, you’ll get the same minimal conda installation on your machine – with a minor difference.

Setting up Visual Studio Code for Python

7 minute read updated:

In just a few steps you can turn Visual Studio Code (VS Code) into a powerful Python editor for both pure Python code and Jupyter Notebooks.

Virtual environments with venv

1 minute read updated:

In addition to conda’s create command, Python’s built-in venv command offers another way for creating virtual environments.

Using pip to install Python packages

1 minute read updated:

pip is another package installer for Python. Learn how to use it for installing and managing Python packages in your projects.

A minimal Python installation with miniconda

7 minute read updated:

Learn how to install miniconda to have a quick and minimal Python installation on any operating system. Also learn how to use conda to create and manage virtual environments, install packages, run Python scripts and run Jupyter Notebooks and JupyterLab.

Open Zarr files in Fiji

1 minute read

Both Zarr and OME-ZARR files are supported in Fiji. Here’s how to get it working.

Using Zarr for images – The OME-ZARR standard

7 minute read

As for any other NumPy array, we can use the Zarr file format to store image files. In this post we additionally explore the NGFF (next-generation file format) OME-ZARR standard.

Variable Explorer in Jupyter Notebooks

1 minute read

Extend your Jupyter environment with Notebook Extensions and enable, e.g., the option to explore your currently defined variables in a running Jupyter session.

How DEVONthink’s auto-WikiLink feature changed my Zettelkasten workflow

5 minute read updated:

DEVONthink’s automatic WikiLinks function is a powerful tool, both for discovering connections between notes – expected and unexpected ones – and for the automatized linking of these notes. In this post I briefly explain, how this feature has impacted my Z...

DEVONthink Markdown Table-of-Contents generator

4 minute read updated:

I wrote a custom AppleScript for DEVONthink Markdown files, that bypasses the problem of broken links in the auto-generated Table-of-Contents (TOC) of MultiMarkdown (MMD).

DEVONthink Image Toolbox

5 minute read

I just shared a collection of AppleScripts on GitHub for handling images in DEVONthink.

Take smart notes with the Zettelkasten method

19 minute read updated:

With the Zettelkasten method by Niklas Luhmann, we give the previously presented personal knowledge network a concrete shape and practical implementation. This is the second of three parts of the series about personal knowledge management.

Boost your research with a smart personal knowledge management system

3 minute read updated:

My next posts will be a short series about personal knowledge management and how it can be integrated as a holistic system into our overall research workflow. The system is based on the Hypertext Theory and the Zettelkasten method, and its core element is t...

Using Markdown for note-taking

7 minute read

It might be a bit difficult to learn at the beginning, but there are several benefits of taking personal notes in Markdown. Here is why I switched.

Opening a Jupyter notebook from GitHub in Binder: A step-by-step guide

3 minute read

Opening a Jupyter notebook from GitHub in Binder simplifies access to shared code and facilitates seamless collaboration. With just a few steps, you can launch and interact with Jupyter notebooks directly in your browser, without the need for complex setup ...

On teaching

1 minute read updated:

I strongly believe that teaching is not a unidirectional thing, but both sides, the participants and the teacher benefit from it. This is a personal comment on teaching.

My website is now completely cookie-free

4 minute read updated:

I made several changes to my website to further increase the privacy protection. As a result, it runs now completely without cookies.

New Teaching Material: Python Cheat Sheets

less than 1 minute read

I’ve started a collection of various Python cheat sheets that contain some useful and commonly used commands and usage examples.

New Teaching Material: Fiji short course

less than 1 minute read updated:

There is a new tutorial in the Teaching Material. It’s a short Fiji tutorial on analyzing biomedical image data.

Free LaTeX editors

1 minute read updated:

A list of currently freely available LaTeX editors (constantly updated).

Free Markdown editors

1 minute read updated:

A list of currently freely available Markdown editors (constantly updated).

Dealing with future posts in Jekyll

1 minute read updated:

While drafting blog posts in Jekyll, you may want to keep some posts hidden from the public eye until they’re ready to be published. In the world of blogging with Jekyll, there are several effective methods to draft such posts without immediately publishing...

Running and testing your Jekyll site locally with custom options

1 minute read updated:

Developing with Jekyll often requires running your site locally to test changes before deploying them live. Here is a handy yet useful one-line command that I usually use to run my Jekyll site locally with custom options.

strftime Cheat Sheet

3 minute read updated:

Cheat Sheet on formatted date and time strings used, e.g., in Python, C/C++ or even on Jekyll websites by using Liquid tags.

Liquid Cheat Sheet

19 minute read

This Cheat Sheet gives an overview of Liquid syntax commands one might encounter while developing a Jekyll website.

Minimal Mistakes Cheat Sheet

11 minute read updated:

A quick overview of available commands for creating content with the Minimal Mistakes Jekyll theme.

New Teaching Material: LaTeX Guide

less than 1 minute read updated:

I’ve added a LaTeX guide to the General Teaching Materials in the teaching section. It serves as a Getting started with LaTeX guide and as a LaTeX glossary.

The Weierstrass function and the beauty of fractals

17 minute read updated:

Fractals are captivating mathematical objects that exhibit intricate patterns and self-similarity at various scales. In this post, we explore the elegance and significance of the Weierstrass function, its relation to fractals and fractal geometry, and disc...

Running a personal website with Jekyll

3 minute read updated:

I have redesigned my website and moved it to a new host as well: I’m running it as personal Jekyll website hosted on GitHub now.

The Lotka-Volterra equations: Modeling predator-prey dynamics

4 minute read updated:

The Lotka-Volterra system, also known as the predator-prey equations, is a mathematical model that describes the interaction between two species: predators and their prey. The system captures the dynamic relationship between the population sizes of predator...

Interactive COVID-19 data exploration with Jupyter notebooks

1 minute read updated:

Amidst the ongoing challenges of the COVID-19 pandemic, I have written a Jupyter notebook that facilitates interactive exploration of COVID-19 data. You can select specific countries and visualize key aspects such as confirmed cases, deaths, and vaccination...

The SIR model: A mathematical approach to epidemic dynamics

6 minute read updated:

In the wake of the COVID-19 pandemic, epidemiological models have garnered significant attention for their ability to provide insights into the spread and control of infectious diseases. One such model is the SIR model, forming the foundation for studying t...

The two-body problem

8 minute read updated:

The two-body system is a classical problem in physics. It describes the motion of two massive objects that are influenced by their mutual gravitational attraction. The two-body problem is a special case of the n-body problem, which describes the motion of t...

Solving the Lorenz system using Runge-Kutta methods

9 minute read updated:

In my previous post, I introduced the Runge-Kutta methods for numerically solving ordinary differential equations (ODEs), that are challenging to solve analytically. In this post, we apply the Runge-Kutta methods to solve the Lorenz system. The Lorenz syst...

Runge-Kutta methods for solving ODEs

11 minute read updated:

In physics and computational mathematics, numerical methods for solving ordinary differential equations (ODEs) are of central importance. Among these, the family of Runge-Kutta methods stands out due to its versatility and robustness. In this post we compar...

Earth’s dipolar magnetic field

4 minute read updated:

In physics and computational mathematics, numerical methods for solving ordinary differential equations (ODEs) are of central importance. Among these, the family of Runge-Kutta methods stands out due to its versatility and robustness. In this post we compar...

Restarting my website

less than 1 minute read updated:

In the wake of the COVID-19 pandemic, I have made the decision to relaunch my website. While I have previously utilized my website for smaller personal projects and showcasing my photographs, I now intend to broaden its scope. I will be posting on a range o...

German Angst

less than 1 minute read updated:

Co-effects of the Corona lockdown: people buy like crazy toilet paper, until nothing is left anymore. This is a copycat work, the original work from David Hugendick can be found on twitter ꜛ.



Archive

Study with Colored Pencils

Searching for a new desktop wallpaper, I took some photographs with colored pencils. For the first time, I worked with my little improvised studio. You can download all images as desktop-wallpapers (16:9, mid-res: ~3MB, hi-res: ~70 MB) for your personal use...

Material Design

In 2014, Google introduced its new design language Material Design ꜛ. I was fascinated by its design concept:

#fckafd

Demonstration against the far-right party AfD in Cologne.

#fckafdp

Spontaneous demonstration against the liberal party FDP in Cologne after Prime Minister election in Thuringia with support by the far-right party AfD.

ok cool

wuhaa! Thanks a lot to ok cool ꜛ for featuring my work! Please check out their websiteꜛ (or flickr or instagram) to see many more cool 😎 photographers 📸

About Weekend Stories

Weekend Stories is my on-going photographic diary project, where I collect everyday stories (mostly) occurring on the weekends.

Building New Universes

Lost&found: In the wake of the redesign of my website, I’ve rediscovered an old project from 2016, where I created imaginative sceneries by using water, oil, transparency film and a camera.


Publications

The far ultraviolet aurora of Ganymede

Abstract The far ultraviolet (FUV) aurora on Jupiter’s largest moon, Ganymede, is characterized by two distinct ovals in the northern and southern hemisphere, which have been investigated by several campaigns of the Hubble Space Telescope (HST) in the past ...

Morphology of Ganymede’s FUV auroral ovals

Abstract We study the morphology of Ganymede’s FUV aurora by analyzing spectral images obtained over the past two decades by the Space Telescope Imaging Spectrograph on board the Hubble Space Telescope. The observations cover the eastern and western elongat...

Active Debris Removal

Abstract Eine wesentliche Kernkompetenz des Fraunhofer-Instituts für Naturwissenschaftlich-Technische Trendanalysen (INT) ist die flächendeckende, systematische und kontinuierliche Technologiefrühaufklärung, um technologische Entwicklungen frühzeitig zu ide...


Talks

The applicability of spatial memory tests in the IntelliCage

Abstract We evaluate the automatic behavioral assessment system IntelliCage® for investigating cognitive functions of mice. Here, we apply a spatial memory test paradigm to a mouse model of two different tau-pathologies, which demonstrates the feasibility o...

Bernstein Conference

Abstract The automatic detection of dendritic spines is still a challenging and yet not fully resolved problem with regard to multi-photon microscopy. The emergence of convolutional neural networks (CNN) like U-Nets enabled the development of deep learning ...


Teaching

Past courses

A summary of courses and lectures I was involved in during my studies and Ph. D.

Python: Basics for Data Scientists

Introductory course into the Python programming language. The course is condensed to the minimum requirements for the use of Python in numerical data analysis. This is the preliminary course to the Python Neuro-Practical course.

Python: Neuro-Practical

The course is a collection of short tutorials tailored to practical Data Science problems in Neuroscience. The aim of these short tutorials is to demonstrate, how to think about problem solution in Python and how to find strategies and individual solutions ...

Bioimage analysis with Napari

In this course, we will learn how to use the free open-source software (FOSS) Napari for bioimage analysis. Napari is a fast, interactive, multi-dimensional image viewer for Python. It’s designed for browsing, annotating, and analyzing large multi-dimension...

Assessing animal behavior

A short introduction into cutting-edge methods for assessing animal behavior in a multi-modal and high-throughput fashion and deciphering animal behavior and neuronal activity in latent space.


Teaching assessing animal behavior


Teaching bioimage analysis


Teaching fiji short course


Teaching material

Markdown Guide

Markdown guide with a broad overview of Markdown syntax and ready to use examples for direct application in your Markdown documents and Jupyter notebooks.

Minimal Python installation with miniconda

With miniconda, we can have minimal Python installation on any OS. Learn how to install it and how to use conda to create and manage virtual environments, install packages, run Python scripts and run Jupyter Notebooks and JupyterLab.


Teaching python cheat sheets


Teaching python course


Teaching python course neuropractical


Weekend stories


Zines