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:
| Application | BioJulia packages | Bioconductor packages |
|---|---|---|
| Data structures | BioSymbols, KmerAnalysis, IntervalTrees | Biobase |
| Sequence annotation | GenomicFeatures, GenomicAnnotations, FormatSpecimens | AnnotationHub |
| Input/Output | FASTX, XAM, BigWig, etc. | BiocIO, Biostrings, ShortRead, etc. |
| Sequence alignment | BioSequences, BioAlignments | Biostrings |
| Expression analysis | SingleCellProjections | DESeq2 |
A few package/ecosystem equivalents between Julia and R:
| Application | Julia | R |
|---|---|---|
| Data manipulation/analysis | DataFrames, CSV, Query, Tidier | tibble, dplyr, tidyverse |
| Plotting/visualization | Gadfly, VegaLite, Makie, TidierPlots | ggplot2, vegalite, plotly |
| Statistical analysis | Statistics, HypothesisTests, GLM | stats |
| Machine learning | Flux, SciML, MLJ, Zygote | mlr3, caret, tidymodels, Deriv |
| Numerical mathematics | LinearAlgebra, IterativeSolvers | Matrix, pracma, deSolve |
| Web applications | Genie, Franklin | shiny |
A few notable differences between Julia and R:
| Julia | R |
|---|---|
| High-level, general-purpose compiled language | High-level, interpreted language for statistical computing and data visualization |
| Dynamically typed with multiple dispatch and optional type annotations | Dynamically typed without type annotations support |
| Built-in parallelism via threads, coroutines (Tasks) | Parallelism via external libraries (BLAS, parallel, etc.) |
| Lisp-like (homoiconic, macro-based) metaprogramming | Partially 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