Przejdź do treści

polars-bio—fast, scalable and out-of-core operations on large genomic interval datasets

Badania genomiczne bardzo często opierają się na obliczeniowo intensywnych analizach zależności pomiędzy cechami, które zazwyczaj reprezentowane są jako przedziały na jednowymiarowym układzie współrzędnych (np. pozycje na chromosomie). W tym kontekście powszechnie wykorzystuje się język programowania Python do manipulacji i analizy danych przechowywanych w tabelarycznej formie wierszy i kolumn, zwanej DataFrame. Biblioteka Pandas jest najczęściej stosowanym pakietem DataFrame w Pythonie, jednak była krytykowana za nieefektywność i problemy ze skalowalnością, które jej nowoczesna alternatywa — Polars — stara się rozwiązać dzięki natywnemu backendowi napisanemu w języku Rust. Polars-bio to biblioteka Pythona umożliwiająca szybkie, równoległe oraz działające w trybie out-of-core operacje na dużych genomowych zbiorach danych typu przedziałowego. Jej główne komponenty zostały zaimplementowane w języku Rust z wykorzystaniem silnika zapytań Apache DataFusion oraz Apache Arrow do efektywnej reprezentacji danych. Biblioteka jest kompatybilna z formatami DataFrame Polars oraz Pandas. W porównaniu wykonanym na zbiorach rzeczywistych i syntetycznych biblioteka osiąga znaczące przyspieszenie (od kilku do kilkudziesięciu razy) względem rozwiązań konkurencyjnych. Jednocześnie działając w trybie strumieniowym zużywa wielokrotnie mniej pamięci operacyjnej, dzięki czemu pozwala przetwarzać większe wolumeny danych. Testy wielowątkowe pokazują dobrą skalowalność rozwiązania.

W ocenie autorów, polars-bio stanowi obecnie najbardziej wydajną jednowęzłową bibliotekę do analizy genomowych DataFrame’ów przedziałowych w Pythonie. Polars-bio jest otwartoźródłowym pakietem Pythona dystrybuowanym na licencji Apache, dostępnym na główne platformy (Linux, macOS, Windows) poprzez repozytorium PyPI. Dokumentacja dostępna jest pod adresem https://biodatageeks.org/polars-bio/, a kod źródłowy znajduje się w serwisach GitHub: https://github.com/biodatageeks/polars-bio oraz Zenodo: https://doi.org/10.5281/zenodo.16374290. Materiały uzupełniające dostępne są w czasopiśmie Bioinformatics online.

Artykuł:

Bioinformatics

Autorzy z PW:

Marek Wiewiórka, Tomasz Gambin

Rok wydania: