Skip to main content

Thank you for visiting nature.com. You are using a browser version with limited support for CSS. To obtain the best experience, we recommend you use a more up to date browser (or turn off compatibility mode in Internet Explorer). In the meantime, to ensure continued support, we are displaying the site without styles and JavaScript.

  • Perspective
  • Published:

Julia for biologists

An Author Correction to this article was published on 29 April 2023

This article has been updated

Abstract

Major computational challenges exist in relation to the collection, curation, processing and analysis of large genomic and imaging datasets, as well as the simulation of larger and more realistic models in systems biology. Here we discuss how a relative newcomer among programming languages—Julia—is poised to meet the current and emerging demands in the computational biosciences and beyond. Speed, flexibility, a thriving package ecosystem and readability are major factors that make high-performance computing and data analysis available to an unprecedented degree. We highlight how Julia’s design is already enabling new ways of analyzing biological data and systems, and we provide a list of resources that can facilitate the transition into Julian computing.

This is a preview of subscription content, access via your institution

Access options

Buy this article

USD 39.95

Prices may be subject to local taxes which are calculated during checkout

Fig. 1: Julia is a tool enabling biologists to discover new science.
Fig. 2: Overview of Julia’s package ecosystem, presented by topic group.
Fig. 3: Julia’s speed feature.
Fig. 4: Interfaces in Julia.
Fig. 5: The abstraction feature in Julia.
Fig. 6: Julia’s metaprogramming feature.

Similar content being viewed by others

Change history

References

  1. Tomlin, C. J. & Axelrod, J. D. Biology by numbers: mathematical modelling in developmental biology. Nat. Rev. Genet. 8, 331–340 (2007).

    Article  CAS  PubMed  Google Scholar 

  2. Auton, A. et al. A global reference for human genetic variation. Nature 526, 68–74 (2015).

    Article  PubMed  Google Scholar 

  3. Robson, B. Computers and viral diseases. preliminary bioinformatics studies on the design of a synthetic vaccine and a preventative peptidomimetic antagonist against the SARS-CoV-2 (2019-nCoV, COVID-19) coronavirus. Comput. Biol. Med. 119, 103670 (2020).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  4. Seefeld, K. & Linder, E. Statistics Using R with Biological Examples (K. Seefeld, 2007).

  5. Ekmekci, B., McAnany, C. E. & Mura, C. An introduction to programming for bioscientists: a Python-based primer. PLoS Comput. Biol. 12, e1004867 (2016).

    Article  PubMed  PubMed Central  Google Scholar 

  6. Sengupta, A. & Edelman, A. Julia High Performance (Packt Publishing, 2019).

  7. Nazarathy, Y. & Klok, H. Statistics with Julia: Fundamentals for Data Science, Machine Learning and Artificial Intelligence (Springer, 2021).

  8. Bezanson, J., Edelman, A., Karpinski, S. & Shah, V. B. Julia: a fresh approach to numerical computing. SIAM Rev. 59, 65–98 (2017).

    Article  Google Scholar 

  9. Lauwens, B. & Downey, A. Think Julia: How to Think like a Computer Scientist (O’Reilly Media, 2021).

  10. Marx, V. The big challenges of big data. Nature 498, 255–260 (2013).

    Article  CAS  PubMed  Google Scholar 

  11. Björnsson, B. et al. Digital twins to personalize medicine. Genome Med. 12, 4 (2019).

    Article  PubMed  PubMed Central  Google Scholar 

  12. Laubenbacher, R., Sluka, J. P. & Glazier, J. A. Using digital twins in viral infection. Science 371, 1105–1106 (2021).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  13. Chan, T. E., Stumpf, M. P. & Babtie, A. C. Gene regulatory network inference from single-cell data using multivariate information measures. Cell Syst. 5, 251–267.e3 (2017).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  14. Tankhilevich, E. et al. GpABC: a Julia package for approximate Bayesian computation with Gaussian process emulation. Bioinformatics 36, 3286–3287 (2020).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  15. Innes, M. Flux: elegant machine learning with Julia. J. Open Source Softw. 3, 602 (2018).

    Article  Google Scholar 

  16. Rackauckas, C. & Nie, Q. DifferentialEquations.jl—a performant and feature-rich ecosystem for solving differential equations in Julia. J. Open Res. Softw. 5, 15 (2017).

    Article  Google Scholar 

  17. Chen, J. et al. Spatial transcriptomic analysis of cryosectioned tissue samples with Geo-seq. Nat. Protoc. 12, 566–580 (2017).

    Article  CAS  PubMed  Google Scholar 

  18. Mahon, S. S. M. et al. Information theory and signal transduction systems: from molecular information processing to network inference. Semin. Cell Dev. Biol. 35, 98–108 (2014).

    Article  Google Scholar 

  19. Meyer, P. E., Lafitte, F. & Bontempi, G. minet: a R/Bioconductor package for inferring large transcriptional networks using mutual information. BMC Bioinformatics 9, 461 (2008).

    Article  PubMed  PubMed Central  Google Scholar 

  20. Bates, D. Julia MixedModels from R. https://rpubs.com/dmbates/377897 (2018).

  21. Lange, K. Algorithms from the Book (SIAM, 2020).

  22. Oliveira, S. & Stewart, D. E. Writing Scientific Software: a Guide to Good Style (Cambridge Univ. Press, 2006).

  23. Alyass, A., Turcotte, M. & Meyre, D. From big data analysis to personalized medicine for all: challenges and opportunities. BMC Med. Genom. 8, 33 (2015).

    Article  Google Scholar 

  24. Gomez-Cabrero, D. et al. Data integration in the era of omics: current and future challenges. BMC Syst. Biol. 8, I1 (2014).

    Article  PubMed  PubMed Central  Google Scholar 

  25. Greener, J. G., Selvaraj, J. & Ward, B. J. BioStructures.jl: read, write and manipulate macromolecular structures in julia. Bioinformatics 36, 4206–4207 (2020).

    Article  CAS  PubMed  Google Scholar 

  26. Rego, N. & Koes, D. 3Dmol.js: molecular visualization with WebGL. Bioinformatics 31, 1322–1324 (2014).

    Article  PubMed  PubMed Central  Google Scholar 

  27. Hayashi, T. et al. Single-cell full-length total RNA sequencing uncovers dynamics of recursive splicing and enhancer RNAs. Nat. Commun. 9, 619 (2018).

    Article  PubMed  PubMed Central  Google Scholar 

  28. Greener, J. G., Filippis, I. & Sternberg, M. J. Predicting protein dynamics and allostery using multi-protein atomic distance constraints. Structure 25, 546–558 (2017).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  29. Zea, D. J., Anfossi, D., Nielsen, M. & Marino-Buslje, C. MIToS.jl: mutual information tools for protein sequence analysis in the Julia language. Bioinformatics 33, 564–565 (2017).

    Article  CAS  PubMed  Google Scholar 

  30. Cock, P. J. A. et al. Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics 25, 1422–1423 (2009).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  31. Kunzmann, P. & Hamacher, K. Biotite: a unifying open source computational biology framework in Python. BMC Bioinformatics 19, 346 (2018).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  32. Perera, R. Programming languages for interactive computing. Electron. Notes Theor. Comput. Sci. 203, 35–52 (2008).

    Article  Google Scholar 

  33. Kirk, P. D. W., Babtie, A. C. & Stumpf, M. P. H. Systems biology (un)certainties. Science 350, 386–388 (2015).

    Article  CAS  PubMed  Google Scholar 

  34. Kirk, P., Thorne, T. & Stumpf, M. P. Model selection in systems and synthetic biology. Curr. Opin. Biotechnol. 24, 767–774 (2013).

    Article  CAS  PubMed  Google Scholar 

  35. Warne, D. J., Baker, R. E. & Simpson, M. J. Simulation and inference algorithms for stochastic biochemical reaction networks: from basic concepts to state-of-the-art. J. R. Soc. Interface 16, 20180943 (2019).

    Article  PubMed  PubMed Central  Google Scholar 

  36. Filippi, S. et al. Robustness of MEK-ERK dynamics and origins of cell-to-cell variability in MAPK signaling. Cell Rep. 15, 2524–2535 (2016).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  37. Michailovici, I. et al. Nuclear to cytoplasmic shuttling of ERK promotes differentiation of muscle stem/progenitor cells. Development 141, 2611–2620 (2014).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  38. MacLean, A. L., Rosen, Z., Byrne, H. M. & Harrington, H. A. Parameter-free methods distinguish Wnt pathway models and guide design of experiments. Proc. Natl Acad. Sci. USA 112, 2652–2657 (2015).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  39. Loman, T. E. et al. Catalyst: fast biochemical modeling with Julia. Preprint at bioRxiv https://doi.org/10.1101/2022.07.30.502135 (2022).

  40. Harrington, H. A., Feliu, E., Wiuf, C. & Stumpf, M. P. Cellular compartments cause multistability and allow cells to process more information. Biophys. J. 104, 1824–1831 (2013).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  41. Mogensen, P. K. & Riseth, A. N. Optim: a mathematical optimization package for Julia. J. Open Source Softw. 3, 615 (2018).

    Article  Google Scholar 

  42. Dunning, I., Huchette, J. & Lubin, M. JuMP: a modeling language for mathematical optimization. SIAM Rev. 59, 295–320 (2017).

    Article  Google Scholar 

  43. Ge, H., Xu, K. & Ghahramani, Z. Turing: a language for flexible probabilistic inference. In Proc. 21st International Conference on Artificial Intelligence and Statistics 1682–1690 (Proc. Machine Learning Res., 2018).

  44. Liepe, J. et al. A framework for parameter estimation and model selection from experimental data in systems biology using approximate bayesian computation. Nat. Protoc. 9, 439–456 (2014).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  45. Harris, C. R. et al. Array programming with NumPy. Nature 585, 357–362 (2020).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  46. Stanitzki, M. & Strube, J. Performance of Julia for high energy physics analyses. Comput. Softw. Big Sci. 5, 10 (2021).

    Article  Google Scholar 

  47. Rackauckas, C. et al. Accelerated predictive healthcare analytics with Pumas, a high performance pharmaceutical modeling and simulation platform. Preprint at bioRxiv https://doi.org/10.1101/2020.11.28.402297 (2020).

  48. Whitney, T. & Taylor, V. Increasing women and underrepresented minorities in computing: the landscape and what you can do. Computer 51, 24–31 (2018).

    Article  Google Scholar 

  49. Sharpe, J. Computer modeling in developmental biology: growing today, essential tomorrow. Development 144, 4214–4225 (2017).

    Article  CAS  PubMed  Google Scholar 

  50. Rackauckas, C. Benchmark of ODE solvers in Julia. https://github.com/SciML/MATLABDiffEq.jl (2019).

Download references

Acknowledgements

We thank all attendees of the Birds of a Feather session Julia for Biologists at JuliaCon2021; D. F. Gleich for allowing us to run an experiment on his servers; and R. Patro for discussions about Rust. E.R. acknowledges financial support through a University of Melbourne PhD scholarship. A.L.M. acknowledges support from the National Science Foundation (DMS 2045327). T.E.H. acknowledges NIH 1UF1NS108176. The information, data and work presented herein was funded in part by the Advanced Research Projects Agency—Energy under award numbers DE-AR0001222 and DE-AR0001211, as well as National Science Foundation award number IIP-1938400. The views and opinions of the authors expressed herein do not necessarily state or reflect those of the US Government or any agency thereof. M.P.H.S. acknowledges funding from the University of Melbourne Driving Research Momentum initiative and Volkswagen Foundation Life? program grant (grant number 93063), as well as support through an Australian Research Council Laureate Fellowship.

Author information

Authors and Affiliations

Authors

Contributions

E.R. and M.P.H.S. conceived of the concept of the project and were in charge of the overall direction and planning. All authors contributed to writing the manuscript and have read and approved the final version.

Corresponding author

Correspondence to Michael P. H. Stumpf.

Ethics declarations

Competing interests

E.R. is a Sales Engineer at JuliaHub. C.R. is the Vice President of Modeling and Simulation at JuliaHub and Director of Scientific Research at Pumas-AI. T.E.H. is a steward of the Julia project. H.N. is a Senior Computer Scientist at RelationalAI. J.G.G., A.L.M. and M.P.H.S. declare no competing interests.

Peer review

Peer review information

Nature Methods thanks Nico Stuurman and the other, anonymous, reviewers for their contribution to the peer review of this work. Primary Handling Editor: Rita Strack, in collaboration with the Nature Methods team.

Additional information

Publisher’s note Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Supplementary information

Supplementary Information

Supplementary Examples and Supplementary Table 1.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Roesch, E., Greener, J.G., MacLean, A.L. et al. Julia for biologists. Nat Methods 20, 655–664 (2023). https://doi.org/10.1038/s41592-023-01832-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Version of record:

  • Issue date:

  • DOI: https://doi.org/10.1038/s41592-023-01832-z

This article is cited by

Search

Quick links

Nature Briefing

Sign up for the Nature Briefing newsletter — what matters in science, free to your inbox daily.

Get the most important science stories of the day, free in your inbox. Sign up for Nature Briefing