https://github.com/biojulia/kmers.jl

Efficient types and methods for K-mer biosequences

https://github.com/biojulia/kmers.jl

Science Score: 36.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
  • Academic publication links
  • Committers with academic emails
    1 of 8 committers (12.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.2%) to scientific vocabulary

Keywords from Contributors

bioinformatics genome biojulia sam-files biology bam-files bam-format numerical kmer dna
Last synced: 10 months ago · JSON representation

Repository

Efficient types and methods for K-mer biosequences

Basic Info
  • Host: GitHub
  • Owner: BioJulia
  • License: mit
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 1.28 MB
Statistics
  • Stars: 29
  • Watchers: 9
  • Forks: 7
  • Open Issues: 6
  • Releases: 4
Created about 9 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog License

README.md

Kmers

Latest Release MIT license Documentation

Description

Kmers.jl provide the Kmer <: BioSequence type which implement the concept of a k-mer, a biological sequence of exactly length k.

K-mers are used frequently in bioinformatics because, when k is small and known at compile time, these sequences can be efficiently represented as integers and stored directly in CPU registers, allowing for much more efficient computation than arbitrary-length sequences.

In Kmers.jl, the Kmer type is parameterized by its length, and its data is stored in an NTuple. This makes Kmers bitstypes and highly efficient.

Conceptually, one may use the following analogy: * BioSequence is like AbstractVector * LongSequence is like Vector * Kmer is like SVector from StaticArrays

Kmers.jl is tightly coupled to the BioSequences.jl package, and relies on its internals. Hence, you should expect strict compat bounds on BioSequences.jl.

Usage

⚠️ WARNING ⚠️

Kmers are parameterized by their length. That means any operation on Kmers that change their length, such as push, pop, slicing, or masking (logical indexing) will be type unstable and hence slow and memory inefficient, unless you write your code in such as way that the compiler can use constant folding.

Further, as Kmers are immutable and their operations are aggressively inlined and unrolled, they become inefficent as they get longer. For example, reverse-complementing a 32-mer takes 26 ns, compared to 102 ns for the equivalent LongSequence. However, for 512-mers, the LongSequence takes 126 ns, and the Kmer 16 μs!

Kmers.jl is intended for high-performance computing. If you do not need the extra performance that register-stored sequences provide, you might consider using LongSequence from BioSequences.jl instead

Installation

You can install BioSequences from the julia REPL. Press ] to enter pkg mode, and enter the following:

julia pkg> add Kmers

If you are interested in the cutting edge of development, please check out the master branch to try new features before release.

Contributing

We appreciate contributions from users including reporting bugs, fixing issues, improving performance and adding new features.

Take a look at the contributing files detailed contributor and maintainer guidelines, and code of conduct.

Questions?

If you have a question about contributing or using BioJulia software, come on over and chat to us on the Julia Slack workspace, or you can try the Bio category of the Julia discourse site.

Owner

  • Name: BioJulia
  • Login: BioJulia
  • Kind: organization

Bioinformatics and Computational Biology in Julia

GitHub Events

Total
  • Create event: 5
  • Commit comment event: 2
  • Release event: 2
  • Issues event: 9
  • Watch event: 8
  • Delete event: 2
  • Issue comment event: 11
  • Push event: 15
  • Pull request event: 16
  • Pull request review event: 10
  • Pull request review comment event: 8
Last Year
  • Create event: 5
  • Commit comment event: 2
  • Release event: 2
  • Issues event: 9
  • Watch event: 8
  • Delete event: 2
  • Issue comment event: 11
  • Push event: 15
  • Pull request event: 16
  • Pull request review event: 10
  • Pull request review comment event: 8

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 57
  • Total Committers: 8
  • Avg Commits per committer: 7.125
  • Development Distribution Score (DDS): 0.474
Past Year
  • Commits: 11
  • Committers: 2
  • Avg Commits per committer: 5.5
  • Development Distribution Score (DDS): 0.091
Top Committers
Name Email Commits
Ben J. Ward b****d@p****m 30
Jakob Nybo Nissen j****n@g****m 16
Ben J. Ward w****0@g****m 5
cjprybol c****l 2
Kevin Murray k****1 1
Kevin Murray k****s@g****m 1
Jonathan Bieler j****r@a****h 1
CompatHelper Julia c****y@j****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 21
  • Total pull requests: 30
  • Average time to close issues: almost 2 years
  • Average time to close pull requests: 5 months
  • Total issue authors: 7
  • Total pull request authors: 8
  • Average comments per issue: 2.1
  • Average comments per pull request: 1.73
  • Merged pull requests: 23
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 3
  • Pull requests: 12
  • Average time to close issues: N/A
  • Average time to close pull requests: 16 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.08
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jakobnissen (10)
  • cjprybol (3)
  • TransGirlCodes (3)
  • kdm9 (2)
  • bicycle1885 (1)
  • SabrinaJaye (1)
  • JuliaTagBot (1)
  • BioTurboNick (1)
Pull Request Authors
  • jakobnissen (28)
  • SabrinaJaye (4)
  • jonathanBieler (2)
  • cjprybol (2)
  • TransGirlCodes (2)
  • github-actions[bot] (1)
  • camilogarciabotero (1)
  • kdm9 (1)
Top Labels
Issue Labels
bug (1) help wanted (1) question (1)
Pull Request Labels
Documentation (2) Stage: WIP (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 65 total
  • Total dependent packages: 1
  • Total dependent repositories: 0
  • Total versions: 4
juliahub.com: Kmers

Efficient types and methods for K-mer biosequences

  • Versions: 4
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 65 Total
Rankings
Dependent repos count: 9.9%
Forks count: 24.5%
Average: 25.3%
Stargazers count: 27.9%
Dependent packages count: 38.9%
Last synced: 11 months ago