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 equivalent 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,... | BiocIO, Biostrings, ShortRead,... |
| 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 |
| 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,...) |
| Extensive metaprogramming (Lisp-like macros, generated functions,...) | Less extensive metaprogramming (function factories, expression manipulation,...) |
| Single implementation available (JuliaLang) | Multiple implementations available (pqR, Renjin,...) |
To transition from R to Julia:
See Noteworthy differences from R 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
tidyverse