Sharing Programming Resources Between Bio* Projects
Related Experiment Video
Updated: Jan 22, 2026

Leveraging CyVerse Resources for De Novo Comparative Transcriptomics of Underserved Non-model Organisms
Published on: May 9, 2017
Raoul J P Bonnal1, Andrew Yates2, Naohisa Goto3
1Istituto Nazionale Genetica Molecolare INGM Romeo ed Enrica Invernizzi, Milan, Italy.
Abstract:
Open-source software encourages computer programmers to reuse software components written by others. In evolutionary bioinformatics, open-source software comes in a broad range of programming languages, including C/C++, Perl, Python, Ruby, Java, and R. To avoid writing the same functionality multiple times for different languages, it is possible to share components by bridging computer languages and Bio* projects, such as BioPerl, Biopython, BioRuby, BioJava, and R/Bioconductor.In this chapter, we compare the three principal approaches for sharing software between different programming languages: by remote procedure call (RPC), by sharing a local "call stack," and by calling program to programs. RPC provides a language-independent protocol over a network interface; examples are SOAP and Rserve. The local call stack provides a between-language mapping, not over the network interface but directly in computer memory; examples are R bindings, RPy, and languages sharing the Java virtual machine stack. This functionality provides strategies for sharing of software between Bio* projects, which can be exploited more often.Here, we present cross-language examples for sequence translation and measure throughput of the different options. We compare calling into R through native R, RSOAP, Rserve, and RPy interfaces, with the performance of native BioPerl, Biopython, BioJava, and BioRuby implementations and with call stack bindings to BioJava and the European Molecular Biology Open Software Suite (EMBOSS).In general, call stack approaches outperform native Bio* implementations, and these, in turn, outperform "RPC"-based approaches. To test and compare strategies, we provide a downloadable Docker container with all examples, tools, and libraries included.
Related Concept Videos
Short-distance Transport of Resources
Fischer Projections
Newman Projections
The organic molecules rotate across the single bonds leading to numerous temporary three-dimensional structures of varying energy known as...
Coordinates and Map Projections
Xylem and Transpiration-driven Transport of Resources
Techniques of therapeutic communication I: Active Listening, Sharing Observations, Validation, and Using Touch
Therapeutic communication is not the same as social interaction. Social interaction has no goal or purpose and consists of casual information sharing, whereas therapeutic communication has a plan or purpose for the conversation. Therapeutic...

