Prosit: 1000 citations Yes, my most known (shared) first authorship publication beat more than 1000 citations. Prosit: proteome-wide prediction of peptide tandem mass spectra by deep learning Siegfried Gessulat, Tobias Schmidt, (...), Bernhard Kuster and Mathias Wilhelm These authors contributed equally: Siegfried Gessulat, Tobias Schmidt.
MapToPoster MapToPoster is a Python tool that transforms city maps into minimalist poster designs. It fetches street network data from OpenStreetMap and renders it with customizable themes. Examples I generated posters for two places: Pforzheim (where I grew up) and Marzling (current location). Pforzheim The feature-based theme shows road hierarchy clearly: Japanese ink style gives a more artistic…
Read books of 2026 Archmagos by Guy Haley Dungeon Crawler Carl : Dungeon Crawler Carl by Matt Dinniman Dungeon Crawler Carl : Carl's Doomsday Scenario by Matt Dinniman Dungeon Crawler Carl : The Dungeon Anarchist's Cookbook by Matt Dinniman (21.01.2026) Dungeon Crawler Carl : The Gate of the Feral Gods (25.01.2026) Ueberfall nach Ladenschluss by Stefan Wolf Dungeon Crawler Carl : The Butcher's…
Running cargo deny in CI/CD flagged a license compatibility issue in mzcore , a Rust library for mass spectrometry data. The dependency context_error uses EUPL-1.2, which is incompatible with mzcore's Apache-2.0/MIT dual license. The Problem EUPL-1.2 (European Union Public Licence v1.2) has a compatibility clause that specifies which licenses derivative works can use. Apache-2.0 and MIT are not…
webR 0.5.7 shipped on November 13, 2025. The release adds JSDoc documentation for typed evalR methods, improving IDE support and developer experience. JSDoc Documentation for evalR Methods Four type-specific evaluation methods now have inline JSDoc documentation: evalRVoid /** * Evaluate the given R code, returning a promise for no return data. * @param {string} code The R code to evaluate. *…
Built a Python parser that extracts questions from Bavarian fishing exam PDFs and generates Anki study decks. Problem The 2025 Bavarian fishing exam comes as a 152 page PDF with 1052 multiple-choice questions. Converting this to flashcards manually would take days. Solution ParserBavarianFishingExam2025 automates the entire process: Extracts questions and answers using coordinate-based PDF parsing…
Smaller fastas UniProt's TrEMBL database is massive. At 116 GiB uncompressed, storing and transferring protein sequences becomes expensive. Can we do better than gzip's 48.8% compression ratio? Bede Constantinides recently showed that zstd's long-range compression significantly improves genomic data compression rates. His approach uses larger compression windows to find better patterns across…
Bitnami rug pull Broadcom is ending free access to Bitnami container images starting August 2025 . The public registry is being split into paid "Bitnami Secure Images" and archived "Bitnami Legacy" repositories. No new images will be published to Docker Hub's free tier. The script below helps identify workloads on a running kubernetes cluster. #!/bin/bash # Script to check all Kubernetes resources…
Git setup for terraform Terraform modules from private GitLab repositories require authentication. The same URL rewriting approach used for Cargo setup for private Rust dependencies on GitLab solves this. Solution Configure git to rewrite HTTPS URLs to include credentials: git config --global url."https://ID:TOKEN@gitlab.com".insteadOf "https://gitlab.com" Or add directly to ~/.gitconfig : [url…
Specifity IDs of Unimod Always keep in mind that the specificty ID is not a stable ID between unimod version, therefore start using the unimod-watcher , see Automated Unimod Database Tracking with GitHub Actions .
Let's plot in C++ Sometimes you want to just plot a simple thing in C++, but it's complicated. Coming from Rust with its excellent plotters library, I found the C++ plotting landscape lacking a simple, dependency-free solution. My requirements were: Self-contained (no external dependencies) Header-only library Simple API for basic 2D plots Static output (PNG, JPEG) Status quo The C++ plotting…
First test of a new hand plane I got myself a No. 62 Low Angle Jack Plane when last time visiting the US for ASMS 2025. The receptionist at the hotel was quite confused when handling me the rather small package that had an impressive weight of 4.55 lbs/2kg. Today I had enough time to sharpen the edges and testing it the firs time on some construction lumber. It's working and it's fun.
After learning about R in the browser , I wanted to see if Python in the browser works equally well. Pyodide brings the full Python stack to web browsers via WebAssembly. Interactive Python Code Try this data analysis example: Data Visualization Example ▶ Run Python Code ⟳ Running... import numpy as np import matplotlib.pyplot as plt # Generate sample data np.random.seed(42) x = np.linspace(0, 10,…
Automated Unimod Database Tracking with GitHub Actions Unimod provides protein modification data essential for mass spectrometry workflows. After talking to a Unimod maintainer, they mentioned that automatic user notifications for new versions would be nice but won't happen soon, if at all. unimod-watcher fills this gap using GitHub Actions. The workflow runs nightly, compares MD5 checksums, and…
When attending a Dagstuhl seminar, you are randomly assigned a seat for lunch and dinner, to have a high chance to talk to everyone and not sticking to your peer group. A slideshow in the main stairway shows some minimal statistics if this is sufficient to meet everyone. This post attempts to recreate the shown simulations for the Dagstuhl Seminar 25351: Computational Proteomics and find a…
WebR Integration with Zola This post demonstrates a new WebR shortcode integration for this Zola blog. WebR allows running R code directly in the browser using WebAssembly. If you are only interested in the technical details, please go to later sections. Be aware that running WebR in your browser loads a rather big runtime, which will need 12 mb of download and will (most probably) not work inside…
Best TV series 2025 The Day of the Jackal It stays very close to the first movie Jackal while also reusing ideas from the original book The Day of the Jackal . The last one has a very special place in my heart as it was the first thriller book that I have read in my life. Black doves
RSS feeds for github I didn't find a lot of information on offical pages of github about it, but this blog post explains how to generate RSS feeds for various entities on github. /* Repo releases */ https://github.com/:owner/:repo/releases.atom /* Repo commits */ https://github.com/:owner/:repo/commits.atom /* Private feed (You can find Subscribe to your news feed in dashboard page after login) */…
Cargo setup for private Rust dependencies on Gitlab All the explanations on the internet on how to rewrite dependencies to use https instead of ssh are wrong. The proposal is git config --global url."https://gitlab-ci-token:${ CI_JOB_TOKEN }@gitlab.com/".insteadOf "git@gitlab.com" to generate the config of ~/.gitconfig looking like [url "https://gitlab-ci-token:TOKEN@gitlab.com/"] insteadOf =…
Gitlab setup for dependency access We want to access other repositories within a gitlab organization. The plan is that repository A can access repository B . Go to settings -> CI/CD of repository B Open Job token permissions Add the project/group A This setup can than be used in Rust .
Fun with pride datasets PRIDE offers a downloadable JSON file containing all available datasets. However, this JSON file is quite extensive and currently not fully compliant with standard JSON formatting. Specifically, it lacks commas between accessions and does not explicitly mark them as a list. Go package main import ( " os " " regexp " ) func main () { input, err := os. ReadFile (…
Happy helm Don't forget to remove trailing whitespaces! I'm doing it via vim and a macro found on stackOverflow / vim.wikia . "Remove all trailing whitespace by pressing F5 nnoremap <F5> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar><CR>
Definite guide for Shiny applications with Renv (2024) Setup It happens more often than one might think that you need an R/Shiny server dockerized. Additionally, it is required to track the dependencies of the project with Renv. Although multiple tutorials/manuals exists, none of them worked by themself and only a merged version worked. FROM rocker/shiny:4.1.1 as shiny RUN apt-get update &&…
AI-powered analysis of bottom-up proteomics data with CHIMERYS The core concept of proteomic data analysis is matching experimental spectra to a peptide representation derived from a protein sequence database. CHIMERYS is an intelligent, AI-powered search algorithm for bottom-up proteomic data analysis that leverages the power of accurately predicted peptide properties through deep learning to…
Turner I've visited the Turner exhibition in the Lenbauchhaus in Munich last Tuesday. Joseph Mallord William Turner gilt bis heute als Erneuerer und Vorreiter der Moderne. In seinen Bildern entfaltete die Farbe eine bis dahin ungesehene Freiheit. Schon früh begann er, die Möglichkeiten der Landschaftsmalerei zu erkunden, sowohl im Studium berühmter Vorbilder wie in der direkten Auseinandersetzung…
Setup CI for a minimal Rust project I've settled on using Rust as the programming language to generate a beautiful calendar overview (as a BMP). This is my first project using this language and I had to start somewhere. My first step was the generation of a CI pipeline on Github .
Idea The idea of a personal calendar that does not require the useage of a smartphone has always been very intriguing. The display of Invisible Computer are more or less what I always wanted, but I cannot convince myself to allow calendar access to an outsider. Luckily, I've discovered waveshare-epaper-display and I'm going to extend it to my needs. Goal Show a calendar grid similar to Invisible…
I'm invited to join the Dagstuhl Seminar 23301 Computational Proteomics . Novel algorithms have become driving forces of innovation in mass spectrometry (MS) based proteomics, as these computational advances have allowed much improved recovery of actionable information from acquired data, in turn propelling the field forward towards ever more sophisticated experimental approaches. Obviously, this…
Abstract We developed DLOmix-serving, an open-source and modular machine learning (ML) inference server for biological data based on NVIDIA Triton. This platform allows centralizing the hosting of models originating from various training/prediction pipelines such as PyTorch, Sklearn, XGBoost and TensorFlow. Most importantly, models can be accessed by a remote and language-independent interface. A…
Sometimes you have this deep desire to run your fancy neural network while you're on the go with just an battery pack. This means no fancy x86 server with oh-so fancy graphic cards. My normal go to plattform for mobile processing means arduino or esp32, but this time we need something more powerful - entry RaspberryPi. Although there are many reports about how people run Tensorflow on their…
Setting up and analyzing MRM/PRM assays require prior information on the retention times and fragmentation spectra of peptides. For so far unobserved peptides, synthetic peptides can be used to obtain these characteristics, however, are costly with uncertain results. We propose a novel cost-efficient approach which utilized our deep learning framework Prosit for the generation of in-silico…