bíogo

bíogo: a simple high-performance bioinformatics toolkit for the Go language - Published in JOSS (2017)

https://github.com/biogo/biogo

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: biorxiv.org, nature.com
  • Committers with academic emails
    3 of 17 committers (17.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Engineering Computer Science - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

biogo is a bioinformatics library for Go

Basic Info
  • Host: GitHub
  • Owner: biogo
  • License: bsd-3-clause
  • Language: Go
  • Default Branch: master
  • Homepage:
  • Size: 3.96 MB
Statistics
  • Stars: 400
  • Watchers: 30
  • Forks: 51
  • Open Issues: 7
  • Releases: 0
Created almost 11 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing Funding License Authors Codemeta

README.md

bíogo

bíogo

GoDoc Build Status

Installation

    $ go get github.com/biogo/biogo/...

Overview

bíogo is a bioinformatics library for the Go language.

Getting help

Help or similar requests are preferred on the biogo-user Google Group.

https://groups.google.com/forum/#!forum/biogo-user

Contributing

If you find any bugs, feel free to file an issue on the github issue tracker. Pull requests are welcome, though if they involve changes to API or addition of features, please first open a discussion at the biogo-dev Google Group.

https://groups.google.com/forum/#!forum/biogo-dev

Citing

If you use bíogo, please cite Kortschak, Snyder, Maragkakis and Adelson "bíogo: a simple high-performance bioinformatics toolkit for the Go language", doi:10.21105/joss.00167, and Kortschak and Adelson "bíogo: a simple high-performance bioinformatics toolkit for the Go language", doi:10.1101/005033.

The Purpose of bíogo

bíogo stems from the need to address the size and structure of modern genomic and metagenomic data sets. These properties enforce requirements on the libraries and languages used for analysis:

  • speed - size of data sets
  • concurrency - problems often embarrassingly parallelisable

In addition to the computational burden of massive data set sizes in modern genomics there is an increasing need for complex pipelines to resolve questions in tightening problem space and also a developing need to be able to develop new algorithms to allow novel approaches to interesting questions. These issues suggest the need for a simplicity in syntax to facilitate:

  • ease of coding
  • checking for correctness in development and particularly in peer review

Related to the second issue is the reluctance of some researchers to release code because of quality concerns.

The issue of code release is the first of the principles formalised in the Science Code Manifesto.

Code  All source code written specifically to process data for a published
      paper must be available to the reviewers and readers of the paper.

A language with a simple, yet expressive, syntax should facilitate development of higher quality code and thus help reduce this barrier to research code release.

Articles

bíogo: a simple high-performance bioinformatics toolkit for the Go language

Analysis of Illumina sequencing data using bíogo

Using and extending types in bíogo

Yet Another Bioinformatics Library

It seems that nearly every language has it own bioinformatics library, some of which are very mature, for example BioPerl and BioPython. Why add another one?

The different libraries excel in different fields, acting as scripting glue for applications in a pipeline (much of [1, 2, 3]) and interacting with external hosts [1, 2, 4, 5], wrapping lower level high performance languages with more user friendly syntax [1, 2, 3, 4] or providing bioinformatics functions for high performance languages [5, 6].

The intended niche for bíogo lies somewhere between the scripting libraries and high performance language libraries in being easy to use for both small and large projects while having reasonable performance with computationally intensive tasks.

The intent is to reduce the level of investment required to develop new research software for computationally intensive tasks.

  1. BioPerl http://genome.cshlp.org/content/12/10/1611.full http://www.springerlink.com/content/pp72033m171568p2

  2. BioPython http://bioinformatics.oxfordjournals.org/content/25/11/1422

  3. BioRuby http://bioinformatics.oxfordjournals.org/content/26/20/2617

  4. PyCogent http://genomebiology.com/2007/8/8/R171

  5. BioJava http://bioinformatics.oxfordjournals.org/content/24/18/2096

  6. SeqAn http://www.biomedcentral.com/1471-2105/9/11

Library Structure and Coding Style

The bíogo library structure is influenced both by the Go core library.

The coding style should be aligned with normal Go idioms as represented in the Go core libraries.

Quality Scores

Quality scores are supported for all sequence types, including protein. Phred and Solexa scoring systems are able to be read from files, however internal representation of quality scores is with Phred, so there will be precision loss in conversion. A Solexa quality score type is provided for use where this will be a problem.

Copyright and License

Copyright ©2011-2013 The bíogo Authors except where otherwise noted. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

The bíogo logo is derived from Bitstream Charter, Copyright ©1989-1992 Bitstream Inc., Cambridge, MA.

BITSTREAM CHARTER is a registered trademark of Bitstream Inc.

Owner

  • Name: bíogo
  • Login: biogo
  • Kind: organization

bíogo is a bioinformatics library collection for Go

JOSS Publication

bíogo: a simple high-performance bioinformatics toolkit for the Go language
Published
February 18, 2017
Volume 2, Issue 10, Page 167
Authors
R Daniel Kortschak ORCID
School of Biological Sciences, The University of Adelaide
Josh Bleecher Snyder ORCID
None
Manolis Maragkakis ORCID
Department of Pathology and Laboratory Medicine, Perelman School of Medicine, University of Pennsylvania
David L. Adelson ORCID
School of Biological Sciences, The University of Adelaide
Editor
Pjotr Prins ORCID
Tags
bioinformatics toolkit golang

CodeMeta (codemeta.json)

{
  "@context": "https://raw.githubusercontent.com/mbjones/codemeta/master/codemeta.jsonld",
  "@type": "Code",
  "author": [
    {
      "@id": "http://orcid.org/0000-0001-8295-2301",
      "@type": "Person",
      "email": "dan.kortschak@adelaide.edu.au",
      "name": "R Daniel Kortschak",
      "affiliation": "School of Biological Sciences, The University of Adelaide"
    },
    {
      "@id": "http://orcid.org/0000-0001-8327-7643",
      "@type": "Person",
      "email": "josharian@gmail.com",
      "name": "Josh Bleecher Snyder",
      "affiliation": ""
    },
    {
      "@id": "http://orcid.org/0000-0002-3158-1763",
      "@type": "Person",
      "email": "emarag@mail.med.upenn.edu",
      "name": "Manolis Maragkakis",
      "affiliation": "Department of Pathology and Laboratory Medicine, Perelman School of Medicine, University of Pennsylvania"
    },
    {
      "@id": "http://orcid.org/0000-0003-2404-5636",
      "@type": "Person",
      "email": "david.adelson@adelaide.edu.au",
      "name": "David L Adelson",
      "affiliation": "School of Biological Sciences, The University of Adelaide"
    }
  ],
  "identifier": "",
  "codeRepository": "https://github.com/biogo/biogo",
  "datePublished": "2017-01-05",
  "dateModified": "2017-01-05",
  "dateCreated": "2017-01-05",
  "description": "a simple high-performance bioinformatics toolkit for the Go language",
  "keywords": "bioinformatics, toolkit, golang",
  "license": "BSD-3 like",
  "title": "bíogo",
  "version": "v1.0.1"
}

GitHub Events

Total
  • Watch event: 16
  • Fork event: 2
Last Year
  • Watch event: 16
  • Fork event: 2

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 503
  • Total Committers: 17
  • Avg Commits per committer: 29.588
  • Development Distribution Score (DDS): 0.258
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
kortschak d****k@a****u 373
kortschak k****k@z****u 92
Josh Bleecher Snyder j****n@g****m 14
Emmanouil "Manolis" Maragkakis m****g@g****m 5
Gordon Gremme g****n@g****g 4
Jason j****s@t****g 2
Davor Kapsa d****a@g****m 2
Olga Botvinnik o****k@g****m 2
Harry Scells h****s@g****m 1
Clayton Wheeler c****r@g****m 1
Brent Pedersen (brentp) b****e@g****m 1
Brennon Loveless b****t@b****m 1
Jason Travis J****s@n****u 1
Peter Mattis p****s@g****m 1
Santiago Castro s****0@h****m 1
Yasushi Saito y****o@g****m 1
aboffin p****k@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 47
  • Total pull requests: 43
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 2 days
  • Total issue authors: 20
  • Total pull request authors: 16
  • Average comments per issue: 3.06
  • Average comments per pull request: 2.26
  • Merged pull requests: 41
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • GoogleCodeExporter (21)
  • brentp (3)
  • kortschak (3)
  • josharian (2)
  • nileshpatra (2)
  • bsipos (2)
  • mys721tx (1)
  • DanielRivasMD (1)
  • thomas-bio (1)
  • YspCoder (1)
  • ygidtu (1)
  • srynobio (1)
  • mnsmar (1)
  • mariokostelac (1)
  • sis6789 (1)
Pull Request Authors
  • kortschak (18)
  • corburn (4)
  • mnsmar (4)
  • olgabot (2)
  • dvrkps (2)
  • josharian (2)
  • bloveless (2)
  • gordon (2)
  • hscells (1)
  • aboffin (1)
  • bryant1410 (1)
  • yxzzy-wtf (1)
  • petermattis (1)
  • yasushi-saito (1)
  • brentp (1)
Top Labels
Issue Labels
auto-migrated (21) Priority-Medium (20) Type-Defect (18) Type-Enhancement (3) unfortunate (1) Priority-Low (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total docker downloads: 116,924
  • Total dependent packages: 19
  • Total dependent repositories: 20
  • Total versions: 5
proxy.golang.org: github.com/biogo/biogo

bíogo is a bioinformatics library for the Go language. It is a work in progress. bíogo stems from the need to address the size and structure of modern genomic and metagenomic data sets. These properties enforce requirements on the libraries and languages used for analysis: In addition to the computational burden of massive data set sizes in modern genomics there is an increasing need for complex pipelines to resolve questions in tightening problem space and also a developing need to be able to develop new algorithms to allow novel approaches to interesting questions. These issues suggest the need for a simplicity in syntax to facilitate: Related to the second issue is the reluctance of some researchers to release code because of quality concerns http://www.nature.com/news/2010/101013/full/467753a.html The issue of code release is the first of the principles formalised in the Science Code Manifesto http://sciencecodemanifesto.org/ A language with a simple, yet expressive, syntax should facilitate development of higher quality code and thus help reduce this barrier to research code release. It seems that nearly every language has it own bioinformatics library, some of which are very mature, for example BioPerl and BioPython. Why add another one? The different libraries excel in different fields, acting as scripting glue for applications in a pipeline (much of [1-3]) and interacting with external hosts [1, 2, 4, 5], wrapping lower level high performance languages with more user friendly syntax [1-4] or providing bioinformatics functions for high performance languages [5, 6]. The intended niche for bíogo lies somewhere between the scripting libraries and high performance language libraries in being easy to use for both small and large projects while having reasonable performance with computationally intensive tasks. The intent is to reduce the level of investment required to develop new research software for computationally intensive tasks. The bíogo library structure is influenced both by the structure of BioPerl and the Go core libraries. The coding style should be aligned with normal Go idioms as represented in the Go core libraries. Position numbering in the bíogo library conforms to the zero-based indexing of Go and range indexing conforms to Go's half-open zero-based slice indexing. This is at odds with the 'normal' inclusive indexing used by molecular biologists. This choice was made to avoid inconsistent indexing spaces being used — one-based inclusive for bíogo functions and methods and zero-based for native Go slices and arrays — and so avoid errors that this would otherwise facilitate. Note that the GFF package does allow, and defaults to, one-based inclusive indexing in its input and output of GFF files. Quality scores are supported for all sequence types, including protein. Phred and Solexa scoring systems are able to be read from files, however internal representation of quality scores is with Phred, so there will be precision loss in conversion. A Solexa quality score type is provided for use where this will be a problem. Copyright ©2011-2012 The bíogo Authors except where otherwise noted. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

  • Versions: 5
  • Dependent Packages: 19
  • Dependent Repositories: 20
  • Docker Downloads: 116,924
Rankings
Docker downloads count: 0.8%
Dependent packages count: 1.1%
Dependent repos count: 1.2%
Average: 2.0%
Stargazers count: 3.0%
Forks count: 3.6%
Last synced: 4 months ago

Dependencies

go.mod go
  • github.com/biogo/graph v0.0.0-20150317020928-057c1989faed
  • github.com/biogo/hts v1.1.0
  • github.com/biogo/store v0.0.0-20200104231603-2c6ad937eb83
  • gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15
go.sum go
  • dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9
  • github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802
  • github.com/biogo/boom v0.0.0-20150317015657-28119bc1ffc1
  • github.com/biogo/graph v0.0.0-20150317020928-057c1989faed
  • github.com/biogo/hts v1.1.0
  • github.com/biogo/store v0.0.0-20200104231603-2c6ad937eb83
  • github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72
  • github.com/kortschak/utter v0.0.0-20190412033250-50fe362e6560
  • github.com/kr/pretty v0.2.0
  • github.com/kr/pty v1.1.1
  • github.com/kr/text v0.1.0
  • github.com/ulikunitz/xz v0.5.6
  • golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
  • golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529
  • golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8
  • golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a
  • golang.org/x/image v0.0.0-20190227222117-0694c2d4d067
  • golang.org/x/image v0.0.0-20190802002840-cff245a6509b
  • golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028
  • golang.org/x/mod v0.1.0
  • golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3
  • golang.org/x/net v0.0.0-20190620200207-3b0461eec859
  • golang.org/x/sync v0.0.0-20190423024810-112230192c58
  • golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
  • golang.org/x/sys v0.0.0-20190312061237-fead79001313
  • golang.org/x/sys v0.0.0-20190412213103-97732733099d
  • golang.org/x/text v0.3.0
  • golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a
  • golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7
  • gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15