🔖 Biology in Julia

Bioinformatics, genomics, agriculture, food science, medicine, genetic engineering, etc…1

See also

  • 🏚️ means the package may not support current versions of Julia.
  • 🏗️ means the package may be a WIP.


APIs for biology and medicine databases.

  • BioServices.jl :: Julia interface to APIs for various bio-related web services.
  • BioMedQuery.jl :: Julia utilities to process and save results from BioMedical databases/APIs.
  • PubChemCrawler.jl :: Utilities to programmatically query the PubChem database.
  • PubMedMiner.jl :: Julia package for studying co-occurrences in PubMed articles.


  • Gillespie.jl :: Stochastic Gillespie-type simulations using Julia.
  • Pathogen.jl :: Utilities to simulate and perform inference of disease dynamics.


As well as genomics.

  • Ensemble.jl :: Stochastic samplers based on the “stretch move” for ensembles of walkers.
  • FastaIO.jl :: Utilities to read/write FASTA format files in Julia.
  • MethylUtils.jl :: Tools for WGBS Methylation analysis.
  • MIToS.jl :: Mutual Information Tools for protein Sequence analysis in Julia.
  • MMTF.jl :: The Macromolecular Transmission Format (MMTF) is a new compact binary format to transmit and store biomolecular structures for fast 3D visualization and analysis.
  • NormalizeQuantiles.jl :: implements quantile normalization
  • PlmDCA :: Pseudo Likelihood Maximization for protein in Julia.
  • SpeedDate.jl :: A utility for rapidly estimating coalescence times between sequences.
  • XSim.jl :: A fast and user-friendly tool to simulate sequence data and complicated pedigree structures.
WIP or may not work
  • 🏚️ BioArgParse.jl :: Extension to ‘ArgParse.jl’, enabling parsing of command line parameters to types in ‘Bio.jl’.
  • 🏚️ BioFeatures.jl.
  • 🏚️ BismarkSummary.jl :: Basic summary of multiple Bismark runs.
  • 🏚️ Circuitscape.jl :: The Julia implementation of the Circuitscape lib in Python that uses electronic circuit theory to solve problems in landscape ecology.
  • 🏚️ COSMIC.jl :: Data analysis engine for COSMIC written in Julia.
  • 🏚️ Crispulator.jl :: A discrete simulation tool for designing pooled genetic screens.
  • 🏚️ DynamicTimeWarp.jl :: Implement Dynamic Time Warping for sequence alignment in Julia.
  • 🏚️ EMIRT.jl :: Electron Microscopy Image Reconstruction Toolbox using julia language.
  • 🏚️ FusionDirect.jl :: Detect gene fusion directly from raw fastq files.
  • 🏚️ GenomeAnnotations.jl :: Manage Local Genome Annotation files.
  • 🏚️ GenomicTiles.jl
  • 🏚️ gtf-parse-off :: Experiments with parsing gene transfer format (GTF).
  • 🏚️ HyperNEAT.jl :: A generative encoding for evolving ANN based on the NeuroEvolution of Augmented Topologies (NEAT) algorithm for evolutionary computation.
  • 🏚️ OBC.jl :: Optimal Bayesian classification for RNA-Seq data.
  • 🏚️ OpenGene.jl :: OpenGene core library in Julia.
  • 🏚️ Pagel.jl :: Detect correlated evolution on phylogenies.
  • 🏚️ ProgressiveAligner.jl :: Progressive alignment scripts for protein sequences.
  • 🏚️ PseudoGenomes.jl :: Read alleles without a VCF parser.
  • 🏚️ PureSeq.jl :: Code for the Pure-seq project.
  • 🏚️ Rosalind.jl :: A bioinformatics library for solving problems from
  • 🏚️ seqhax.jl :: yet another NGS command.
  • 🏚️ smoothlife-jl :: an implementation of the SmoothLife algorithm in Julia.
  • 🏚️ Subsequences.jl :: A package for finding longest common and longest contiguous subsequences.
  • 🏚️ taxize.jl :: A taxonomic toolbelt for Julia.
  • 🏚️ TimeTrees.jl :: Phylogenetic tree type for julia.
  • 🏚️ VariantCall.jl.
  • 🏚️ YARS.jl :: YARS communication for RNA/proteins.

BioJulia packages

  • BioAlignments.jl :: Sequence alignment tools in BioJulia
  • BioSequences.jl :: Biological sequences for the julia language.
  • BioServices.jl :: Julia interface to APIs for various bio-related web services
  • BioStructures.jl :: A Julia package to read, write and manipulate macromolecular structures (particularly proteins).
  • BioSymbols.jl :: Nucleic and amino acid primitive types.
  • BioTools.jl :: Interfaces to common external biological tools from julia scripts and programs (e.g. BLAST).
  • GeneticVariation.jl :: types and methods for working with genetic variation.
  • GenomeGraphs.jl :: A modern genomics framework for julia
  • GenomicFeatures.jl :: utilities for working with interval based genomic annotations.
  • IntervalTrees.jl :: A data structure for efficient manipulation of sets of intervals.
  • KmerAnalysis.jl :: Kmer counting algorithms and count-data utilities for the BioJulia framework


Evolution trees from biosequences.

  • Phylogenies.jl :: Phylogenetic trees and geneologies
  • PhyloNetworks.jl :: A Julia package for statistical inference, data manipulation and visualization of phylogenetic networks.
  • PhyloTrees.jl :: Phylogenetic tree simulation.

Genome Wide Association Study (GWAS)


  • JWAS.jl :: An open-source software tool written in Julia for Bayesian multiple regression methods applied to genome-wide association studies and genomic prediction.
  • MendelBase.jl :: contains the base functions of OpenMendel.
  • SnpArrays.jl :: provides utilities for handling compressed storage of biallelic SNP (Single-Nucleotide Polymorphism) data.
WIP or may not work


Metabolic networks

  • COBRA.jl :: COnstraint-Based Reconstruction and Analysis, used to perform COBRA analyses such as Flux Balance Anlysis (FBA), Flux Variability Anlysis (FVA), or any of its associated variants such as distributedFBA.


📖 Biomedicine

  • DICOM :: Julia package for reading and writing DICOM (Digital Imaging and Communications in Medicine) files.
  • openBF :: A finite-volume solver for elastic arterial blood flow networks.


  • ROC.jl :: Receiver Operating Characteristic (ROC) Curve for Julia Language.
  • 🏚️ pedigree.jl :: Pedigree extractors and representation as a Julia type with two integer members, sire and dam. A parent not in the pedigree is coded as 0.

Molecular Biology

  • 🏚️ EvoDuplexes.jl :: A Julia package to fold all local and long-range RNA duplexes.
  • CellFishing.jl :: (cell finder via hashing) is a tool to find similar cells of query cells based on their transcriptome expression profiles, a.k.a. single-cell sequencing.


📖 Microscopy


CodeNeuro :: Bringing neuroscience and data science together.

  • BrainWave.jl :: Julia functions to process electroencephalographic (EEG) recordings.
  • DCEMRI.jl :: A Fast, Validated Toolkit for Dynamic Contrast Enhanced MRI Analysis. A paper on the code is in press at PeerJ.
  • EEG.jl :: Process EEG files in Julia.
  • NeuroAnalysis.jl :: Julia package for neural signal analysis.
  • NeuronBuilder :: Builds conductance based neural networks iteratively, from ion channels and synapses.
  • OpenEphysLoader.jl :: A set of tools to load data written by the Open Ephys GUI.
WIP or may not work
  • 🏚️ NEAT.jl :: Julia implemention of NEAT (NeuroEvolution of Augmenting Topologies) algorithm.
  • 🏚️ SkullSegment.jl :: Macaque brain and skull extraction tools.
  • 🏚️ SpikeSorter.jl :: Spike sorting tool for experimental neuroscientists.


📖 Pharmacology

Also see Pumas AI, Pharmaceutical Modeling and Simulation in Julia.

Resources and Teaching

Some resources and teaching aids listed here are not Julia language specific but you may be able to find something common and useful that can be reused and shared with attribution if it is CC-licensed.

  1. Julia.jl is under COPYRIGHT © 2012-Now SVAKSHA, dual-licensed for the data (ODbL-v1.0+) and the software (AGPLv3+), respectively. ↩︎