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 similar applications between BioJulia and BioRuby:
| Application | BioJulia packages | BioRuby classes/modules |
|---|---|---|
| Sequence alignment | BioSequences, BioAlignments | Bio::Sequence, Bio::Alignment |
| Input/Output | FASTX, XAM, BigWig, etc. | Bio::Fasta, Bio::Fastq, etc. |
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-like (homoiconic, macro-based) metaprogramming | Primarily runtime metaprogramming |
| Single implementation available (JuliaLang) | Multiple implementations available (TruffleRuby, mruby, etc.) |
To transition from Ruby to Julia:
Read the Julia manual for an in-depth look at its internals and features
Consult the Running External Programs section in the manual for running Ruby scripts or other programs from Julia