henhaobio
Sign in

BMC BioinformaticsBioinformaticsPeer-reviewed journal article

A comparison of three programming languages for a full-fledged next-generation sequencing tool

Pascal CostanzaiD, Charlotte HerzeeliD, Wilfried Verachtert

PDFDOIPreprint

Abstract

BackgroundelPrep is an established multi-threaded framework for preparing SAM and BAM files in sequencing pipelines. To achieve good performance, its software architecture makes only a single pass through a SAM/BAM file for multiple preparation steps, and keeps sequencing data as much as possible in main memory. Similar to other SAM/BAM tools, management of heap memory is a complex task in elPrep, and it became a serious productivity bottleneck in its original implementation language during recent further development of elPrep. We therefore investigated three alternative programming languages: Go and Java using a concurrent, parallel garbage collector on the one hand, and C++17 using reference counting on the other hand for handling large amounts of heap objects. We reimplemented elPrep in all three languages and benchmarked their runtime performance and memory use. ResultsThe Go implementation performs best, yielding the best balance between runtime performance and memory use. While the Java benchmarks report a somewhat faster runtime than the Go benchmarks, the memory use of the Java runs is significantly higher. The C++17 benchmarks run significantly slower than both Go and Java, while using somewhat more memory than the Go runs. Our analysis shows that concurrent, parallel garbage collection is better at managing a large heap of objects than reference counting in our case. ConclusionsBased on our benchmark results, we selected Go as our new implementation language for elPrep, and recommend considering Go as a good candidate for developing other bioinformatics tools for processing SAM/BAM data as well.

Citations
24
FWCI
1.24
Field percentile
top 22%

Reproducibility ledger

Nobody has reported trying to reproduce this paper yet. Did you replicate an experiment or run the code? Your report saves the next lab a week.

Sign in to file a reproducibility report.

Similarity Map
SelectedSame fieldCross-field
THISKortschak '15Pitman '21Herzeel '19Ahmad '20Lee '21Sztuka '24
59% semantic matchBioinformatics
R. Daniel Kortschak, David L. Adelson·bioRxiv·Mar 27, 2015