BioPerl (Perl5)

  • BioPerl represents an ecosystem of related molecular biology modules written in the Perl5 programming language
  • Supported by the Open Bioinformatics Foundation and includes additional utilities and interfaces for common bioinformatics applications
  • Launched in 2002 and has contributed to major scientific achievements including the Human Genome Project

A few equivalent application tools between BioJulia and BioPerl:

ApplicationBioJulia packagesBioPerl modules/objects
Input/OutputFASTX, XAM, BigWig,...SeqIO
Sequence alignmentBioSequences, BioAlignmentsAlignIO, SimpleAlign
Data structuresKmers, IntervalTreesBio::Kmer, Bio::Tree
Population GeneticsPopGenPopGen

A few package/ecosystem equivalents between Julia and Perl5:

ApplicationJuliaPerl5
Data manipulation/analysisDataFrames, CSV, QueryPDL, Text-CSV
Plotting/visualizationPlots, Gadfly, Makie, TidierPlotsGDGraph, Chart-GGPlot
Statistical analysisStatistics, HypothesisTests, GLMStatistics-Descriptive, PDL-Stats
Numerical mathematicsLinearAlgebra, SymbolicsPDL-LinearAlgebra, Math-Symbolic
Notebook/report generatorIJulia, PlutoDevel-IPerl
Web applicationsGenie, FranklinCatalyst, Mojolicious

A few notable differences between Julia and Perl5:

JuliaPerl5
High-level, general-purpose compiled languageHigh-level, general-purpose interpreted language
Dynamically typed with multiple dispatch and optional type annotationsDynamically typed without type annotations support
Built-in parallelism via threads, coroutines (Tasks)Parallelism via threads, external modules (Coro, Parallel,...)
Lisp-inspired metaprogramming (S-expressions, homoiconicity,...)Macro-less metaprogramming capabilities (eval, symbol table manipulation,...)
Single language implementation (JuliaLang)Family of related languages/implementations (Perl5, Perl6/Raku, ActivePerl,...)

To transition from Perl5 to Julia: