Bioinformatics and Computational Biology infastructure for Julia



Builds

Build Status Build status

Test Coverage

Coverage Status codecov.io

Repo activity

Issues Planned In Progress

Introduction

As the flagship package of the BioJulia organisation, Bio.jl provides core modules containing efficient data types and algorithms, that most bioinformaticians and biologists would want to use for analyses or for building their own applications.

Bio.jl is built on top of the Julia programming language, a high-level and high-performance programming language for technical computing. Bio.jl and Julia are open source and their source codes are immediately available to the public.


Overview

Modules and Functionality

Bio.jl provides programmable components for quick prototyping of new analyses and algorithms. These components are carefully tuned to achieve the best performance without sacrificing the usability of the dynamic programming language. The following modules are currently part of the package and actively developed as submodules:


Seq
  • Biological symbols (DNA, RNA, and amino acids)
  • Biological sequences
  • Sequence search algorithms
  • Readers for FASTA, FASTQ and .2bit file formats

Align
  • Biological sequence alignment
  • Alignment data structures
  • Pairwise alignment algorithms

Intervals
  • Intervals and annotations
  • Genomic intervals with annotations
  • Readers for BED and BigBed file formats


Structure
  • Molecular structures
  • Macromolecular structures (e.g. proteins)
  • Reader for the PDB file format

Var
  • Biological variation
  • Mutation counting
  • Genetic and evolutionary distances

Phylo
  • Phylogenetic trees

Quick Start

In a Julia console, enter:

Pkg.add("Bio.jl")

Julia’s package manager will try to find the latest released version and install it.

Alternatively, to install the bleeding edge of a branch use:

Pkg.clone("https://github.com/BioJulia/Bio.jl.git")

Then use the Bio submodules in a script like so:

using Bio.Seq

Created and maintained by the BioJulia team

If you would like to contribute to any BioJulia module, please refer to the contributing guidelines.