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