Unconfigured Ad

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • costanza
    Junior Member
    • Oct 2018
    • 6

    Comparison of programming languages for NGS tools

    We have just published a paper about comparing Go, Java, and C++ for implementing our sequencing tool elPrep in BMC Bioinformatics.

    elPrep is available at https://github.com/exascience/elprep

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

    Authors: Pascal Costanza, Charlotte Herzeel, Wilfried Verachtert

    URL: https://doi.org/10.1186/s12859-019-2903-5

    Background:
    elPrep 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.

    Results:
    The 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.

    Conclusions:
    Based 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.
  • costanza
    Junior Member
    • Oct 2018
    • 6

    #2
    We have just published a small follow-up paper to this in August: Comparing Ease of Programming in C++, Go, and Java for Implementing a Next-Generation Sequencing Tool

    In this article, we discuss the difficulty of achieving the best performance in each language in terms of programming language constructs and standard library support. While benchmarks are easy to objectively measure and evaluate, this is less obvious for assessing ease of programming. However, because we expect elPrep to be regularly modified and extended, this is an equally important aspect. We illustrate representative examples of challenges in all 3 languages, and give our opinion why we think that Go is a reasonable choice also in this light.

    This is a more subjective paper, which is why it is categorized as an "Article Commentary", but we believe this is still an interesting perspective for a wider audience.

    Comment

    • SNPsaurus
      Registered Vendor
      • May 2013
      • 525

      #3
      I thought these papers were really interesting perspectives on a difficult subject. Did you get people commenting on how you could have optimized their favorite language a bit more?
      Providing nextRAD genotyping and PacBio sequencing services. http://snpsaurus.com

      Comment

      • costanza
        Junior Member
        • Oct 2018
        • 6

        #4
        @SNPsaurus: We are working at a lab where we also have experts on C++, and we have also some significant expertise on Java. We were very careful to ensure that for each language, we have used its respective strengths in terms of performance.

        The source code for all three versions is publicly available. There was a public discussion at https://www.reddit.com/r/programming..._and_java_for/ where the C++ and Java versions of our code was criticized, but we believe we were able to address all the points that were raised.

        I hope this helps.

        Comment

        • SNPsaurus
          Registered Vendor
          • May 2013
          • 525

          #5
          That had exactly the kind of language nitpicking I was hoping to see!
          Providing nextRAD genotyping and PacBio sequencing services. http://snpsaurus.com

          Comment

          Latest Articles

          Collapse

          • mylaser
            Reply to Advanced Sequencing Platforms Tackle Neuroscience’s Toughest Genomics Problems
            by mylaser
            Kheloyar – Everything You Need to Know About Kheloyaar Login and Kheoyar Id
            If you are looking for an online gaming platform that offers a user-friendly experience, Kheloyar has become a name that many users search for. Whether you're interested in creating a new account, accessing your dashboard through Kheloyaar Login, or learning how to obtain a Kheoyar Id, understanding the platform's features and account process is essential.
            This guide explains everything you need to know about...
            Yesterday, 01:13 AM
          • SEQadmin2
            Advanced Sequencing Platforms Tackle Neuroscience’s Toughest Genomics Problems
            by SEQadmin2



            Genomics studies in neuroscience face a special challenge due to the brain’s complexity and scarcity of samples. Mapping changes in cell type and state using conventional next-generation sequencing methods remains challenging. Advances in technologies like single-cell sequencing, spatial transcriptomics, and long-read sequencing have opened the door to deeper studies of the brain and diseases like Alzheimer’s, amyotrophic lateral sclerosis (ALS), and schizophrenia.
            ...
            07-09-2026, 11:10 AM
          • SEQadmin2
            Cancer Drug Resistance: The Lingering Barrier to Rising Survival
            by SEQadmin2



            Cancer survival rates have significantly increased in the last few decades in the United States, reaching a combined 70% 5-year survival rate by 2021. Behind this number, there are years of research to find new therapies, drug targets, and early detection methods. But there is one core challenge that keeps slowing down these advances, and it’s about drug resistance.

            There is no single reason why many patients don’t respond to treatment as expected. Cancer is...
            07-08-2026, 05:17 AM

          ad_right_rmr

          Collapse

          News

          Collapse

          Topics Statistics Last Post
          Started by SEQadmin2, 07-09-2026, 10:04 AM
          0 responses
          19 views
          0 reactions
          Last Post SEQadmin2  
          Started by SEQadmin2, 07-08-2026, 10:08 AM
          0 responses
          11 views
          0 reactions
          Last Post SEQadmin2  
          Started by SEQadmin2, 07-07-2026, 11:05 AM
          0 responses
          28 views
          0 reactions
          Last Post SEQadmin2  
          Started by SEQadmin2, 07-02-2026, 11:08 AM
          0 responses
          31 views
          0 reactions
          Last Post SEQadmin2  
          Working...