Sharing Programming Resources Between Bio* Projects.
Bioinformatics
EMBOSS
Java
PAML
Perl
Python
R
RPC
Ruby
Web services
Journal
Methods in molecular biology (Clifton, N.J.)
ISSN: 1940-6029
Titre abrégé: Methods Mol Biol
Pays: United States
ID NLM: 9214969
Informations de publication
Date de publication:
2019
2019
Historique:
entrez:
7
7
2019
pubmed:
7
7
2019
medline:
9
1
2020
Statut:
ppublish
Résumé
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.
Identifiants
pubmed: 31278684
doi: 10.1007/978-1-4939-9074-0_25
pmc: PMC7212028
mid: EMS86284
doi:
Types de publication
Journal Article
Langues
eng
Sous-ensembles de citation
IM
Pagination
747-766Références
Bioinformatics. 2009 Jun 1;25(11):1422-3
pubmed: 19304878
Nucleic Acids Res. 2010 Jan;38(Database issue):D211-22
pubmed: 19920124
Trends Genet. 2000 Jun;16(6):276-7
pubmed: 10827456
Bioinformatics. 2010 Oct 15;26(20):2617-9
pubmed: 20739307
Genome Res. 2002 Oct;12(10):1611-8
pubmed: 12368254
Nucleic Acids Res. 2010 Jan;38(Database issue):D463-7
pubmed: 19910365
Nucleic Acids Res. 2005 Jan 1;33(Database issue):D154-9
pubmed: 15608167
Acta Crystallogr D Biol Crystallogr. 2002 Jun;58(Pt 6 No 1):899-907
pubmed: 12037327
Genome Biol. 2004;5(10):R80
pubmed: 15461798
Bioinformatics. 2008 Sep 15;24(18):2096-7
pubmed: 18689808
Comput Appl Biosci. 1997 Oct;13(5):555-6
pubmed: 9367129
Bioinformatics. 2003 Aug 12;19(12):1572-4
pubmed: 12912839
Nucleic Acids Res. 1997 Sep 1;25(17):3389-402
pubmed: 9254694
Bioinformatics. 2004 Jan 22;20(2):289-90
pubmed: 14734327
Nucleic Acids Res. 2005 Jan 20;33(2):511-8
pubmed: 15661851
Bioinformatics. 2007 Mar 1;23(5):641-3
pubmed: 17237038
Bioinformatics. 2007 Nov 1;23(21):2947-8
pubmed: 17846036
PLoS Comput Biol. 2008 May 30;4(5):e1000069
pubmed: 18516236
Bioinformatics. 2010 Dec 1;26(23):2990-2
pubmed: 20966004
BMC Bioinformatics. 2010 Dec 21;11 Suppl 12:S11
pubmed: 21210978
BMC Bioinformatics. 2004 Aug 19;5:113
pubmed: 15318951
BMC Bioinformatics. 2006 Apr 04;7:188
pubmed: 16594991
Nucleic Acids Res. 2000 Jan 1;28(1):27-30
pubmed: 10592173
Bioinformatics. 2005 Feb 15;21(4):545-7
pubmed: 15374859