# Lucas van Dijk > Personal blog on high-performance software engineering to solve biological problems at scale. Public Ghost content for AI and LLM tooling. Use `/llms-full.txt` for consolidated page and post context. Append `.md` to any post or page URL to get the content in Markdown (for example, `/example-post.md`). ## Pages - [About](https://lucasvandijk.nl/about.md) - I am a scientist and research software engineer with 7+ years of experience, passionate about developing high-performance tools and machine learning systems to accelerate research. My tools and algorithms have enabled new insights into human disease and enabled genome analyses previously impossible… - [Sidebar](https://lucasvandijk.nl/sidebar.md) - Hi, I'm Lucas! I write about bioinformatics and high-performance software engineering. Expect deep dives into the technical aspects behind a paper or explainers in simple language. Topics I find interesting include sequence alignment algorithms, immunology, and GPU programming. I am a senior softwa… - [Sign In](https://lucasvandijk.nl/signin.md) - [Sign Up](https://lucasvandijk.nl/signup.md) - [Subscribe](https://lucasvandijk.nl/subscribe.md) ## Posts - [Relative positional embeddings with RoPE](https://lucasvandijk.nl/2025/08/relative-positional-embeddings-with-rope.md) - In language models, the order of tokens is of critical importance. This post explains RoPE: a technique that ensures that the pairwise token attention weights only depend on their relative position. - [Fast and exact gap-affine partial order alignment with POASTA](https://lucasvandijk.nl/publications/fast-exact-gap-affine-partial-order-alignment-with-poasta.md) - Partial order alignment is a common method to compute multiple sequence alignments through iterative sequence-to-graph alignment. In this paper, we introduce a new algorithm that accelerates alignment by exploiting graph topology and shared sequence between the query and the graph. - [Gut microbiome dysbiosis linked with recurrent UTIs](https://lucasvandijk.nl/publications/gut-microbiome-dysbiosis-linked-with-recurrent-utis.md) - More than half of the women in the US get a urinary tract infection (UTI) in their lifetime, which frequently becomes recurrent. In this paper, we investigated the role of the gut microbiome in facilitating recurrence. - [StrainGE: Strain Genome Explorer](https://lucasvandijk.nl/publications/strainge-strain-genome-explorer.md) - StrainGE is a toolkit for tracking and characterizing low-abundance strains in complex microbial communities. It enables detailed insights into the bacterial strain-level diversity of whole metagenomic sequencing samples. - [Using locality sensitive hashing to compactly represent k-mers](https://lucasvandijk.nl/2018/03/using-locality-sensitive-hashing-to-compactly-represent-k-mers.md) - K-mers are frequently used in bioinformatics to profile and compare genomes. This article describes a technique for compactly representing long k-mers with locality-sensitive hashing. - [Visualizing the height of the Netherlands](https://lucasvandijk.nl/2018/02/visualizing-the-height-of-the-netherlands.md) - On this date 65 years ago, February 1st 1953, the Netherlands experienced its greatest flood till date, the North Sea Flood of 1953. This is still one of the biggest disasters the Netherlands has ever experienced, with thousands of casualties and lots of people who lost their homes. The Netherlands… - [Drawing arbitrary shapes with OpenGL points](https://lucasvandijk.nl/2015/06/drawing-arbitrary-shapes-with-opengl-points.md) - Part of my Google Summer of Code project involves porting several arrow heads from Glumpy to Vispy. I also want to make a slight change to them: the arrow heads in Glumpy include an arrow body, I want to remove that to make sure you can put an arrow head on every type of line you want. Making a cha… - [Controlling a servo with an AVR microcontroller](https://lucasvandijk.nl/2012/10/controlling-a-servo-with-an-avr-microcontroller.md) - Servos are useful small motors with applications in robotics, RC cars, and others. Here, we describe how to use an ATTiny44 to control its position. - [Multithreading with C++11: protecting data](https://lucasvandijk.nl/2012/06/multithreading-with-c-11-protecting-data.md) - Welcome to this second part in a series of articles about multithreading with C++11. In the previous part, I briefly explained what a thread is and how to create one with the new C++ thread library. This time, we will be writing a lot more code, so open up your favourite IDE if you want to try the… - [Introduction to threads with C++11](https://lucasvandijk.nl/2012/05/introduction-to-threads-with-c-11.md) - The free lunch is over. The time when our complex algorithm ran extremely slow on a computer but ran extremely fast a few years later because the processor speeds exploded is gone. The trend with current processors is to add more cores rather than increase the clock frequency. As a programmer, you… ## Optional - [RSS Feed](https://lucasvandijk.nl/rss/) - [Sitemap](https://lucasvandijk.nl/sitemap.xml) - [Full content of pages and posts](https://lucasvandijk.nl/llms-full.txt)