The Fürst Lab
at the University of Groningen

Combining

Massive Sequence-Function Data Sets to Accelerate Synthetic Biology, Biocatalysis, and Biomedicine.

Get in touch Learn more about our research

<div style="background-color:rgba(0, 0, 0, 0.7); padding:55px"><div class="fade-in-title"><small>The</small><strong> Fürst Lab</strong><br><small><small><small>at the</small></small> University of Groningen</small></div></div>

Research

of the group @ UG

In June 2022 our lab started at the University of Groningen. We are an interdisciplinary group that uses high-throughput protein engineering as a strategy for the development and improvement of computational protein design. Our research aims to address current limitations of computational design by tapping the power of cutting-edge high-throughput screening technologies and selections for directed evolution. This approach not only allows the rapid generation of bespoke functional proteins, but also the massive data accumulation on design variant activities, which allows the improvement of computational pipelines and algorithms, and enables the development of efficient machine learning approaches for future designs.

The screening systems we employ are particularly suitable for tailoring stability and binding affinities, but we also tackle the challenging task of enzyme design. Resulting from a strong believe in the transformative potential of synthetic biology, we are particularly interested in enzymatic functions enabling the manipulation of genetics and bio-orthogonal chemistry. Accordingly, our research generates workflows in which computationally designed enzyme variants are screened for the biocatalytic production of modified cofactors, nucleotides, and DNA/RNA, intended to create commercially valuable molecules, and for synthetic biology and biomedical applications.

Maximilian JLJ Fürst

Maximilian JLJ Fürst

Assistant Professor of Computational Protein Design

University of Groningen

Biography

In June 2022, Maximilian Fürst (Max) started as an assistant professor at the University of Groningen (UG or RUG) in the Netherlands. His research group investigates the development and application of methods in computational protein design and high-throughput screening. Main targets of interest are enzymes that synthesize or modify cofactors, nucleotides, and nucleic acids, useful for applications in biotechnology, synthetic biology, and pharma.

Before that, Max did a postdoc with Phil Holliger at the MRC Laboratory of Molecular Biology in Cambridge, developing high-throughput enzymatic screens to engineer DNA polymerases for synthetic biology applications. He obtained his PhD at the UG in 2019 working on protein engineering of monooxygenases for biocatalysis. His thesis can be obtained here.

Download full resumé.
Interests
  • Computational Biology
  • Protein Design
  • High-throughput assays
  • Biocatalysis
  • Nucleic acid-modifying enzymes
Education
  • PhD in Biochemistry, 2019

    University of Groningen

  • MSc in Biology, 2013

    University of Munich

  • BSc in Biology, 2011

    University of Munich

Work with us

Working in NL, the UG, and the GBB

The group is embedded in the Groningen Biomolecular Sciences and Biotechnology Institute (GBB), within the Faculty of Science and Engineering at the University of Groningen (UG).

Groningen is a vibrant and international student city (1 in 4 of the ~240k inhabitants is a student, and 1 in 4 students is international) located ~2h northeast of Amsterdam, in the Netherlands. The UG ranks among the world’s top institutes, and PhD students are very well supported: you enjoy student benefits (e.g. heavily subsidised access to the sport center and discounts), but usually are hired as staff, and consequently receive pension, child support, etc. PhD student salaries are among the highest in Europe, while Groningen is one of the Dutch student cities with the lowest costs of living. If you move to NL from abroad, you get a substantial income tax discount. English is ubiquitously spoken in the Netherlands, and everthying from the (very straightforward Dutch) bureaucracy, to shopping, to following courses can be done without the need to learn Dutch (although the UG pays free courses!) The Dutch are famously direct and open, and hierarchies are amazingly flat. Even more so than is usual in academia, PhDs and PostDocs in NL are typically given considerable freedom and independency and are encouraged to team work. The group is embedded in the Groningen Biomolecular Sciences & Biotechnology Institute (GBB) and with the Biochemistry/Biotechnology group, headed by Prof. Dr. M. Fraaije. Since June 2024 on, we are located in the completely new Feringa building of the Zernike campus.


The institute offers excellent facilities for molecular biology, biochemistry, analytical chemistry, and scientific computing. Groningen welcomes you!

Projects


↓ IMPORTANT INFO FOR ALL APPLICANTS ↓

alt text
Please check my blog post explaining this requirement.

↑ IMPORTANT INFO FOR APPLICANTS ↑


In general, if you are able to fully provide your own funding and are interested in joining the lab, please get in touch.

Postdoc applications are always welcome if you are able to procure your own funding (a process I will obviously support, if possible). Check e.g. here or here for comprehensive lists of postdoc fellowships.

Students enrolled at the University of Groningen are welcome to reach out at any time to inquire about internships, bachelor, and master thesis in the group. Please include a short motivation, detail your prior relevant research and/or course experience, explain how that links to what you would like to do in our lab, and what future ambitions you hope the internship should prepare you for.

The same instructions apply to international students, who are also always welcome in our lab. In additon to a CV and short motivation letter, please include your ideas for the time frame and your plans for funding in an email to me. Consider enquiring about student fellowships such as Erasmus+; otherwise, there may be other funding options, including support from the COZYME Cost action I’m part of.

Please feel free to informally reach out to me via e-mail, Twitter, or Linkedin for more information on the projects, or e-mail me your formal application documents (cover letter & CV).

*
Computational Design

Computational Design

Using in silico biophysical modelling of biological macromolecules to predict desired protein characteristics.

High-Throughput Engineering

High-Throughput Engineering

Using cutting-edge screening technologies to sample vast numbers of (designed) protein variants.

Interdisciplinary Protein Design

Interdisciplinary Protein Design

The best of both worlds - design proteins on the computer and engineer them in the lab.

Recent Posts

Contact

I am very easy to reach via mail and social media. You can also leave a message using this form.

CLAUDE.md — Homepage Widgets

This covers the homepage (content/home/) of the Fürst Lab Hugo site. See ../post/CLAUDE.md for site-wide architecture.

Hero Dot-Field Animation

The hero section (hero.md) uses a canvas-based animated dot grid instead of a background video. The animation lives in static/js/dot-bg.js and is loaded via layouts/partials/custom_js.html.

How It Hooks Into Hugo

  • hero.md front-matter sets background.color: black (no video). The black fill is seamless with the canvas fade-in.
  • dot-bg.js dynamically creates a <canvas id="dot-bg"> and appends it to #hero .home-section-bg (the div Hugo/Wowchemy generates for widget backgrounds).
  • CSS in assets/scss/custom.scss sets overflow: hidden on the bg container (clips canvas during zoom) and display: block on the canvas (removes inline spacing).
  • The canvas sits at z-index: -1 so hero content (title, typewriter text, CTA buttons) renders on top.

Script Structure (static/js/dot-bg.js)

Wrapped in an IIFE. Early-returns if #hero doesn’t exist (safe on non-homepage pages).

Key sections:

  1. Config block — all tunables at the top
  2. Canvas creation — appended to .home-section-bg
  3. buildDots() — (re)computes grid dimensions and dot array; called on init and resize
  4. Helper functions — oscillation, color math, mouse proximity, brightness capping
  5. IntersectionObserver — pauses requestAnimationFrame when hero scrolls off-screen
  6. ResizeObserver + debounced window resize — rebuilds dot grid on dimension changes
  7. draw() loop — frame-rate-capped render loop

Dot Generation

  • Grid: DOTS_X columns (responsive: (W / 100) * DOTS_PER_100PX, clamped to MIN_DOTS_XMAX_DOTS_X), rows auto-computed from hero height. Each dot placed at grid center: (spacing * (c + 0.5), spacing * (r + 0.5)).
  • Canvas DPR: capped at MAX_RENDER_DPR (default 1) to reduce pixel count on Retina.
  • Per-dot properties (set once at build, fixed for lifetime):
    • x, y — pixel position
    • c — column index (used for precomputed wave Y lookups)
    • xFracx / W, precomputed for wave sweep calculations
    • phase — random [0, 2*PI] starting oscillation offset
    • speedCYCLE_SPEED * (0.7–1.3), spark dots get 1.8x multiplier
    • baseR (0–14), baseG (51–255 depending on spark), baseB (220–254) — color personality. R stays low to keep palette cyan/blue, B always high.
    • dark — boolean flag, DARK_SPOTS% of dots are permanently dim
    • darkMax — dark dots capped at 3–20, others at 255
    • brightCap — per-dot brightness ceiling from BRIGHTNESS_MIN/MAX range

Color Oscillation

Triangle wave (not cosine) for linear brightness ramp with no lingering at peaks:

angle = (phase + time * speed) mod 2PI
tRaw = angle < PI ? 1 - 2*angle/PI : -3 + 2*angle/PI   // range: -1 to +1
t = -1 + fadeIn * (tRaw + 1)                              // fade-in envelope
  • t >= 0: R lerps toward 60 (NOT 255 — keeps cyan, prevents grey), G/B toward 255
  • t < 0: all channels scale toward 0

Brightness Capping

Both use proportional scaling (scale all channels by same ratio to preserve hue):

  1. brightCap — if max channel exceeds cap, scale all down
  2. darkMax — additional cap for dark-flagged dots

Mouse proximity and wave pulse temporarily lerp these caps toward 255 (uncapping).

Wave Pulse

Two sine waves with configurable wavelength/amplitude/band-width. Pulse intensity follows a sine cycle (WAVE_PULSE seconds). At each trough, wave parameters re-randomize. Sweep stagger (WAVE_SWEEP) creates a left-to-right reveal effect. Per-column wave Y values are precomputed each frame to avoid redundant sin() calls.

Mouse Interaction

  • mousemove on heroSection (not canvas) with getBoundingClientRect() coordinate transform
  • Quadratic falloff: p = (1 - dist/MOUSE_RADIUS)^2
  • Effect: lerps brightness caps toward 255 near cursor (dots brighten)
  • No wheel event (removed to avoid interfering with page scroll)

Performance

  • TARGET_FPS (default 20) caps frame rate via time-delta gating
  • MAX_RENDER_DPR (default 1) reduces internal canvas resolution
  • IntersectionObserver pauses rendering when off-screen
  • Column-based wave Y precomputation avoids per-dot sin() calls

Config Parameters

Parameter Default Description
DOTS_PER_100PX 8 Dot density: dots per 100px of width
MIN_DOTS_X / MAX_DOTS_X 60 / 220 Clamp range for dot columns
DOT_SIZE 5 Dot radius in CSS pixels
CYCLE_SPEED 0.0005 Oscillation speed (radians/ms)
SPARK_RATIO 0.4 Fraction of non-dark dots that are bright cyan
BG_FADE_IN 1 Seconds to emerge from black
BRIGHTNESS_MIN/MAX 10 / 60 Brightness cap range (0–100)
DARK_SPOTS 50 % of dots permanently very dim
MOUSE_RADIUS 150 Mouse influence radius in px
WAVE_PULSE 12 Seconds for full wave pulse cycle
ZOOM_AMOUNT 0.03 Max zoom (3%)
ZOOM_CYCLE 30 Seconds per zoom oscillation
TARGET_FPS 20 Frame rate cap
MAX_RENDER_DPR 1 Internal canvas DPR cap

People Widget

people.md renders the team section. Profile images use CSS class .avatar.avatar-circle. Custom hover glow is defined in assets/scss/custom.scss.

Development

hugo server -D    # from /Users/max/Library/CloudStorage/Dropbox/TheFuerstLab/

Homepage at http://localhost:1313/.