REBELSCIENCE articles

Archiveuv

Genome Toolkit. Part 4.5: Adding a Minimal Streaming FASTA Loader

In this part, we add FASTA support to Genome Toolkit and move closer to working with real biological sequence data. We build a minimal streaming FASTA loader that can discover records, parse identifiers and descriptions, and load one sequence by identifier or index without storing unrelated sequences in memory. The data still flows through our existing SequenceRecord and validated DNA model, while the original k-mer algorithms keep producing the same results.

Genome Toolkit. Part 4.4: Loading Sequences From Plain Text

In Part 4.4, we take Genome Toolkit beyond hardcoded sequences and add our first external data source. We build a small plain-text loader, introduce a neutral `SequenceRecord`, convert the loaded data into our validated `DNA` model, and keep the existing k-mer algorithms unchanged. This gives us a clean path from a real file to validated biological data while preserving the scientific calculations we already trust.

Genome Toolkit. Part 4.2: Modernizing the Existing Python Project

In Part 4.2, we modernize Genome Toolkit and turn our original project into a proper installable Python package. We move from Pipenv to uv, organize the code under src/, move our existing k-mer algorithms into the new package, and update application.py to use them. Most importantly, we keep the scientific calculations unchanged and verify that Genome Toolkit still produces exactly the same results.

Genome Toolkit. Part 4.1: Building a Scientific Python Package

In Part 4.1, we take a step back and look at where Genome Toolkit is going next. We introduce refactoring, explain why our small project is ready to grow into a proper scientific Python package, and show how this gives us a cleaner foundation for future biological tools and experiments. We also look at something pretty exciting: by building Genome Toolkit properly now, we are gradually making it AI-ready for future APIs, MCP tools, and AI agents.