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:

ApplicationBioJulia packagesBioRuby classes/modules
Sequence alignmentBioSequences, BioAlignmentsBio::Sequence, Bio::Alignment
Input/OutputFASTX, XAM, BigWig,...Bio::Fasta, Bio::Fastq,...

A few package/ecosystem equivalents between Julia and Ruby:

ApplicationJuliaRuby
Data manipulation/analysisDataFrames, CSV, Querydaru, CSV
Plotting/visualizationPlots, Makie, TidierPlotsChartkick, gruff
Statistical analysisStatistics, HypothesisTests, GLM, DistributionsStatsample, distribution
Machine learningFlux, SciMLRumale, TensorStream
Numerical mathematicsLinearAlgebraNMatrix, minimization, integration
Notebook/report generatorIJulia, PlutoIRuby
Web applicationsGenie, FranklinHanami, Jekyll

A few notable differences between Julia and Ruby:

JuliaRuby
High-level, general-purpose compiled languageHigh-level, general-purpose interpreted language
Dynamically typed with multiple dispatch and optional type annotationsDynamically 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: