Projects

Python Tools

Dashline

Gorshkov Lab · Python, Dash · Client-server web app

Dashline takes the analysis workflows proven in IdentiPIPE and pairs them with the kind of web interface that made Quantis easy to use, built out as a product for an external commission. I rebuilt the workflow worker logic around the client-server model it runs on, and wrote the data preview and report generator that make the analysis interactive the way Quantis is. The rest was iteration with the team, tightening the app until it did what the commissioner needed.

"IdentiPIPE"

Gorshkov Lab · Python, Tkinter · Interface and output windows

A GUI suite replacing a collection of CLI-only proteomics tools that their creators previously chained together by hand in Jupyter notebooks. It runs the whole pipeline — peptide search in MS/MS data, validation, quantification — with the connections between steps already worked out. My part is the visual layer: output windows and simple data management, built on Tkinter. The result is compact and reasonably pleasant to use, though response time is still slower than I would like.

Identipipe interface clips

QuantisQRePS GUI

Gorshkov Lab · Python 3.11, Dash · Standalone desktop build

A standalone tool for quick quantitative data visualization, grown out of a Dash app I wrote to mirror the CLI tool QRePS. It is far simpler than Perseus, the equivalent built for MaxQuant, and that simplicity buys both ease of use and a small footprint: Python 3.11 and every dependency embedded, the whole thing compressing into a 140 MB archive.

Quantis logo

Roomba

MKI · Python, front and back end, deployment · In production at folegle.ru

An online timetable of every room booking on campus, with search across any field of any event. It began as the constructive answer to a conflict between MKI and a competing service: rather than dismantle the other project, we focused on the problem itself and built something that solved it better. I wrote both the front and the back end, deployed it to a server and pointed a domain at it — most of that was new to me at the time, which is why having it in production still feels good.

Quantis logo
Telegram Bots

Rabotyaga bot

MKI · Python, Telegram Bot API, coda API · Solo developer

A Telegram bot supporting student council activists: it forwards messages from the group inbox into Telegram, organizes events and polls, provides basic chatbot functionality and stores memes. It started as a bridge between Telegram and the coda API, since coda was — and still is — painful to use on mobile. That module still works, but interest in coda faded, and with it the need for the feature.

PSI-bots

MKI · Python, Telegram Bot API · Solo developer · ~50 daily users

Nastyenka and Diana were built as a simple way to run a longitudinal questioning respondents several times over time instead of once study of students' mental health. The initial 1-to-5 numeric scale took time and some foreign inspiration to become the recognizable 7 colorful hearts (later customizable) that made daily polling feel worth doing. Small at launch, the bot reached 50 daily users with no incentive beyond students wanting to use it. Source on GitHub.

Biotech Day Bot

2024 · Python, SQLAlchemy · Solo developer, built to client spec

Well before BiotechDay 2024 was announced, the event team asked me for a news bot to push updates to participants and serve the schedule and registrations. I wrote new code templates for it: a stateful bot with a decision tree, a questionnaire module and a SQLAlchemy integration module. Building fully to a customer's requests was a useful experience, and it taught me a lot about scheduling and SQL in Python — several of those snippets now run in my other projects.

BiotechDay logo
Data Analysis

Research into false identifications in proteome analysis with DIA method

Excerpt from MIPT Conference 2025 · DIA-NN, Python · Research and analysis

This work traces the sources of false identifications that arise when DIA data is analyzed with current search engines, using DIA-NN as the example. It focuses on errors caused by single amino acid changes near the N- or C-terminus of a peptide, and finds that modifications close to the N-terminus are falsely identified as unmodified. We proposed both additional filtering of the results and changes to the algorithm itself to reduce how often this happens.

Overall analysis pipeline

Physics Experiments

Five semesters of MIPT lab practice · Python, LaTeX · Data wrangling and plots

Each lab was a miniature study of one physical effect: collect the data, analyze it, draw conclusions. First-year work was pen-and-paper by the teachers' preference, but later courses welcomed the modern approach — plots and statistical analysis on a computer, Python in my case, with the final report typeset in LaTeX. This is where I got comfortable with Python's analysis and visualization stack; in teams I usually took the data wrangling and plot building.

Lapki plots

Mental Health Report 2022

2022 · MKI · Survey design and statistical analysis · Analyst

I joined the Mental Health Questionnaire team as an analyst at MKI's 2022 Autumn "Vyezd". The aim was to identify which student groups had the poorest mental health, and whether those groups were avoiding the university psychologists. The conclusions mattered, though in retrospect the methods were questionable; later iterations of the survey brought the observed severity down considerably while confirming the problem is real.

Report title page

Questions about any of this?

Get in touch