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
bio
gem - Launched 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