🤖 AI Summary
This study addresses the longstanding challenges in bioinformatics stemming from legacy codebases written in outdated languages such as Perl and Fortran, which suffer from poor maintainability, security vulnerabilities, and limited compatibility with modern hardware. To overcome these limitations, this work proposes a novel automated migration framework that synergistically combines static program analysis with AI-driven agents to efficiently refactor legacy tools into memory-safe, high-performance Rust implementations. The approach substantially reduces refactoring costs and advances Rust as a viable full-stack language for bioinformatics development. Demonstrated on the Bascet software, the refactored version achieves an approximately 80-fold reduction in code size, a 10-fold decrease in build time, over 3× improvement in critical performance metrics, and native Windows support—eliminating reliance on containers or Unix-like environments.
📝 Abstract
The field of bioinformatics struggles with legacy code - old code that is commonly used but may no longer have a maintainer, or may be written in an now-unfamiliar language (e.g. Perl, Fortran). This incurs maintenance cost (technical debt), but dynamically typed languages also negatively impacts the environment and fail to make use of modern hardware. Legacy code may also have security or safety problems that make it unsuited for use in clinical settings. Here we show that agentic AI, combined with static analysis, can be used to translate legacy code to the modern language Rust. We provide prompts and supporting software to aid systematic translation, and evaluate it on common software for NGS and imaging. We showcase the result on our software Bascet: Size was reduced by ~80x, build time decreased by ~10x, and performance of key steps improved >3x. Unix dependencies were also removed, making Bascet the only single-cell pipeline able to run on native Windows, without a container. Large-scale refactoring of bioinformatics software is thus now possible at a limited budget, enabling more complex tools to be developed.