BioRuby (Ruby)
BioRuby represents an ecosystem of related biology tools written in the Ruby programming language
Unlike with BioJulia, BioRuby tools are installed together as classes/modules into a single
biogemLaunched in 2000 with two major releases covering the Ruby1/2/3 transitions
Primarily composed of wrapper classes/modules for common bioinformatics, molecular biology applications
A few equivalent application tools between BioJulia and BioRuby:
| Application | BioJulia packages | BioRuby classes/modules |
|---|---|---|
| Sequence alignment | BioSequences, BioAlignments | Bio::Sequence, Bio::Alignment |
| Input/Output | FASTX, XAM, BigWig,... | Bio::Fasta, Bio::Fastq,... |
A few package/ecosystem equivalents between Julia and Ruby:
| Application | Julia | Ruby |
|---|---|---|
| Data manipulation/analysis | DataFrames, CSV, Query | daru, CSV |
| Plotting/visualization | Plots, Makie, TidierPlots | Chartkick, gruff |
| Statistical analysis | Statistics, HypothesisTests, GLM, Distributions | Statsample, distribution |
| Machine learning | Flux, SciML | Rumale, TensorStream |
| Numerical mathematics | LinearAlgebra | NMatrix, minimization, integration |
| Notebook/report generator | IJulia, Pluto | IRuby |
| Web applications | Genie, Franklin | Hanami, Jekyll |
A few notable differences between Julia and Ruby:
| Julia | Ruby |
|---|---|
| High-level, general-purpose compiled language | High-level, general-purpose interpreted language |
| Dynamically typed with multiple dispatch and optional type annotations | Dynamically typed with optional type annotations (Sorbet, RBS) |
| Built-in parallelism via threads, coroutines (Tasks) | Built-in parallelism via threads, fibers |
| Lisp-inspired metaprogramming (S-expressions, homoiconicity,...) | Macro-less metaprogramming capabilities (dynamic reflection, eval methods,...) |
| Single implementation available (JuliaLang) | Multiple implementations available (TruffleRuby, mruby,...) |
To transition from Ruby to Julia:
Read the Julia manual for an in-depth look at its internals and features
See Running External Programs in the manual for running Ruby scripts or other programs from Julia