Skip to content

Open source bioinformatics and computational biology toolbox written in F#. This is the core package containing type models and parsers/writers.

License

Notifications You must be signed in to change notification settings

BioFSharp/BioFSharp

Repository files navigation

Logo

Made with F# Nuget Nuget GitHub contributors

BioFSharp is an open source bioinformatics and computational biology toolbox written in F#. https://biofsharp.com/BioFSharp

Build status (ubuntu and windows) Test Coverage
codecov

Overview

BioFSharp provides a type models, readers, writers and algorithms for various domains across bioinformatics and computational biology.

This repo contains the core (types, IO, and some algorithms)

BioFSharp has an ecosystem of extension packages, which include more sophisticated statistical analysis and ML.

Check out all repos here

Documentation

Functions, types and Classes contained in BioFSharp come with short explanatory description, which can be found in the API Reference.

More indepth explanations, tutorials and general information about the project can be found here.

The documentation and tutorials for this library are generated from scripts and notebooks in the docs folder.

Contributing

Every contribution is welcome, such as:

  • Bug reports
  • Feature requests
  • Documentation improvement requests
  • Typo fixes
  • Performance discussions and improvements
  • New alogithm implementations
  • etc.

Please start by opening an issue.

Check the Development section for general guidance on the codebase

Pull Requests should target the main branch from a forked version of the repo.

This is an open source project created as the result of scientific teaching and research efforts. Please follow the Code of Conduct and refrain from unrealistic expectations from maintainers.

Development

General

BioFSharp repositories usually folllow this structure:

root
│   📄<project name>.sln
│   📄build.cmd
│   📄build.sh
├───📁build
├───📁docs
├───📁src
|   └───📁<project name>
└───tests
    └───📁<testproject name>
  • .sln is the root solution file.
  • build contains a FAKE build project with targets for building, testing and packaging the project.
  • build/sh and build.cmd in the root are shorthand scripts to execute the buildproject.
  • docs contains the documentation in form of literate scripts and notebooks.
  • src contains folders with the source code of the project(s).
  • tests contains folders with test projects.

Build

just call build.sh or build.cmd depending on your OS.

Test

build.sh runtests
build.cmd runtests

Create Nuget package

build.sh pack
build.cmd pack

Docs

You can watch locally with hot reload via

build.sh watchdocs
build.cmd watchdocs