📢JuliaCon 2026: Submit your BioJulia abstract! Submit here →
Skip to content

Bioconductor (R) ​

  • Bioconductor represents an ecosystem of related genomics tools written in the R programming language

  • Tools written in other languages, such as C and Python, are also included with R wrappers available

  • Launched over two decades ago, it now hosts over 2000 packages for bioinformatics and related fields

  • Packages cover a broard range of methods for the analysis and manipulation of genomic data

A few similar applications between BioJulia and Bioconductor:

ApplicationBioJulia packagesBioconductor packages
Data structuresBioSymbols, KmerAnalysis, IntervalTreesBiobase
Sequence annotationGenomicFeatures, GenomicAnnotations, FormatSpecimensAnnotationHub
Input/OutputFASTX, XAM, BigWig, etc.BiocIO, Biostrings, ShortRead, etc.
Sequence alignmentBioSequences, BioAlignmentsBiostrings
Expression analysisSingleCellProjectionsDESeq2

A few package/ecosystem equivalents between Julia and R:

ApplicationJuliaR
Data manipulation/analysisDataFrames, CSV, Query, Tidiertibble, dplyr, tidyverse
Plotting/visualizationGadfly, VegaLite, Makie, TidierPlotsggplot2, vegalite, plotly
Statistical analysisStatistics, HypothesisTests, GLMstats
Machine learningFlux, SciML, MLJ, Zygotemlr3, caret, tidymodels, Deriv
Numerical mathematicsLinearAlgebra, IterativeSolversMatrix, pracma, deSolve
Web applicationsGenie, Franklinshiny

A few notable differences between Julia and R:

JuliaR
High-level, general-purpose compiled languageHigh-level, interpreted language for statistical computing and data visualization
Dynamically typed with multiple dispatch and optional type annotationsDynamically typed without type annotations support
Built-in parallelism via threads, coroutines (Tasks)Parallelism via external libraries (BLAS, parallel, etc.)
Lisp-like (homoiconic, macro-based) metaprogrammingPartially homoiconic, non-standard evaluation metaprogramming
Single implementation available (JuliaLang)Multiple implementations available (pqR, Renjin, etc.)

To transition from R to Julia:

  • Consult the Noteworthy differences from R section in the Julia manual for a more in-depth comparison

  • Use RCall.jl to seamlessly integrate R code into your Julia project

  • Use JuliaCall to seamlessly integrate Julia code into your R project

  • Check out the Tidier.jl ecosystem for packages similar to those commonly found in R's tidyverse