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

scikit-bio (Python3) ​

  • scikit-bio represents a Python3 library providing data structures, algorithms, and additional bioinformatics resources

  • Unlike with BioJulia, scikit-bio tools are installed together as modules into a single skbio package

  • Launched in 2014 based on a BSD-relicensing of PyCogent and QIIME code and is currently in beta/maintenance mode

A few similar applications between BioJulia and scikit-bio:

ApplicationBioJulia packagesscikit-bio modules
Sequence alignmentBioSequences, BioAlignmentsskbio.sequence, skbio.alignment
Input/OutputFASTX, XAM, BigWig,...skbio.io
Data structuresIntervalTreesskbio.tree

A few package/ecosystem equivalents between Julia and Python3:

ApplicationJuliaPython3
Data manipulation/analysisDataFrames, CSV, Querypandas, Blaze
Plotting/visualizationPlots, Gadfly, Makie, TidierPlotsmatplotlib, seaborn, bokeh, plotnine, VisPy
Statistical analysisStatistics, HypothesisTests, GLMSciPy, statsmodels
Machine learningFlux, SciML, MLJ, ZygotePyTorch, TensorFlow, scikit-learn, JAX
Numerical mathematicsLinearAlgebra, SymbolicsNumPy, SciPy, SymPy
Notebook/report generatorIJulia, Pluto, WeaveIPython, Jupyter Book
Web applicationsGenie, FranklinDjango, Flask, Pelican, Dash

A few notable differences between Julia and Python3:

JuliaPython3
High-level, general-purpose compiled languageHigh-level, general-purpose interpreted language
Expression-based (statements yield a value)Statement-based (statements don't always yield a value)
Dynamically typed with multiple dispatch and optional type annotationsDynamically typed with optional type annotations
Built-in parallelism via threads, coroutines (Tasks)Limited (GIL) built-in parallelism via threads, async/await
Lisp-like (homoiconic, macro-based) metaprogrammingReflection-based runtime metaprogramming
Included default package managerNo default package manager (poetry, conda, and other alternatives available)
Single implementation available (JuliaLang)Multiple implementations available (PyPy, Numba, etc.)
Arrays are column-major (columns are contiguous in memory)(Numpy) arrays are row-major by default (rows are contiguous in memory)

To transition from Python3 to Julia: