📢JuliaCon 2026: Submit your BioJulia abstract! Submit here →
Skip to content

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 similar applications between BioJulia and BioPerl:

ApplicationBioJulia packagesBioPerl modules/objects
Input/OutputFASTX, XAM, BigWig, etc.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, etc.)
Lisp-like (homoiconic, macro-based) metaprogrammingPrimarily runtime metaprogramming
Single language implementation (JuliaLang)Family of related languages/implementations (Perl5, Perl6/Raku, ActivePerl, etc.)

To transition from Perl5 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 Perl scripts or other programs from Julia