Evidence map›Paper›PMID 31159721›Full record

ArticleBMC bioinformatics2019

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

Pascal Costanza, Charlotte Herzeel, Wilfried Verachtert

Abstract readComparative Study
In one paragraph

Article in BMC bioinformatics, 2019. The graph could read no effect estimate from its abstract, so it casts no vote on the map. Cited by 10 papers.

0numbers the graph read from it
0cells of the map it votes in
10citing papers in PubMed
–field-weighted citation impact
1 · What the graph read from it

What it found

Each row is one number read from the abstract, on the scale the paper reported it, with its interval. Left of the dashed line favours the treatment, right favours the comparator. Under each row is the sentence it came from. New to these charts? A ten-minute tutorial.

The abstract states no effect estimate the extractor could read, or names no intervention and outcome on the map, so this paper lights no cell and moves no belief. It is still indexed, cited and linked below.

2 · The registry

The trial behind it

Trials whose registry record cites this paper, or whose number appears in the abstract. A trial that started after this paper was published is citing it as background, not reporting it.

Neither the registry nor the abstract names a trial number. If this is a trial report, that itself is worth knowing.

3 · Its place in the literature

Who cites it

10 citing papers in PubMed.

  1. Article
  2. Article
  3. Article
  4. Article
  5. Article
  6. Article
  7. Article
  8. Article
  9. Article
  10. Article
4 · The record

Corrections and comments

5 · Who and what money

Authors and funding

3 authors.

Pascal Costanzaimec, ExaScience Lab, Kapeldreef 75, Leuven, 3001, Belgium.
Charlotte Herzeelimec, ExaScience Lab, Kapeldreef 75, Leuven, 3001, Belgium.
Wilfried Verachtertimec, ExaScience Lab, Kapeldreef 75, Leuven, 3001, Belgium.

Funding

No grant is acknowledged in the PubMed record.

6 · The paper itself

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.

Indexed as

Programming LanguagesBenchmarkingHigh-Throughput Nucleotide SequencingHumansSoftwareTime FactorsC++Garbage collectionGoJavaMemory usageNext-generation sequencingReference countingRuntime performanceSAM/BAM filesSequence analysis

Identifiers

PMID31159721
PMCPMC6547519

What OpenQuestion holds

Textmetadata
LicenceCC BY
Read underepoch 390

Registered trials

None linked

Read under generation 80e0d062 · epoch 390. Bibliography from PubMed, PubMed Central and OpenAlex; grants from NIH RePORTER; trial links from ClinicalTrials.gov; estimates, votes and beliefs from the OpenQuestion graph.