syncmers

Library for finding syncmers from &[u8] in rust

https://github.com/jguhlin/syncmers

Science Score: 54.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: biorxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (2.9%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Library for finding syncmers from &[u8] in rust

Basic Info
  • Host: GitHub
  • Owner: jguhlin
  • License: mit
  • Language: Rust
  • Default Branch: main
  • Size: 24.4 KB
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 2
  • Open Issues: 1
  • Releases: 0
Created over 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

Syncmers Library in Rust

Syncmers as defined by Dutta et al. 2022, https://www.biorxiv.org/content/10.1101/2022.01.10.475696v2.full Esp Fig 1b / Algorithm 1. Planning to implement other methods soon.

Definition

Using the parameterized syncmer scheme, a syncmer is a kmer whose smallest smer is at a given target position (t).

Extract Syncmers from &[u8]

rust let sequence = b"CCAGTGTTTACGG"; let syncmers = find_syncmers(5, 2, &[2], None, sequence); assert!(syncmers == vec![b"CCAGT", b"TTACG"]); println!("{:?}", syncmers);

Extract Syncmers from &[u8], downsampling to 20%

rust let sequence = b"CCAGTGTTTACGG"; let syncmers = find_syncmers(5, 2, &[2], Some(0.2), sequence); assert!(syncmers == vec![b"CCAGT", b"TTACG"]); println!("{:?}", syncmers);

Extract Syncmers from &[u8], keeping 80%

rust let sequence = b"CCAGTGTTTACGG"; let syncmers = find_syncmers(5, 2, &[2], Some(0.8), sequence); assert!(syncmers == vec![b"CCAGT", b"TTACG"]); println!("{:?}", syncmers);

Find positions of Syncmers

rust let sequence = b"CCAGTGTTTACGG"; let syncmer_positions = find_syncmers_pos(5, 2, &[2], None, sequence); println!("{:?}", syncmer_positions); assert!(syncmer_positions == vec![0, 7]);

TODO

Make sure X's are never the start / end of syncmers

Changelog

0.1.4: Added downsampling support

Owner

  • Name: Joseph Guhlin
  • Login: jguhlin
  • Kind: user
  • Location: Dunedin, New Zealand

Plant Genomicist and Bioinformatician interested in structural variation and pangenomics.

Citation (CITATION.md)

Please cite: https://www.biorxiv.org/content/10.1101/2022.01.10.475696v2
aka https://doi.org/10.1101/2022.01.10.475696 

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 16
  • Total Committers: 1
  • Avg Commits per committer: 16.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 16
  • Committers: 1
  • Avg Commits per committer: 16.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
jguhlin j****n@g****m 16

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 0
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 4.0
  • Merged pull requests: 0
  • 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
Pull Request Authors
  • jdidion (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

Cargo.toml cargo
  • criterion 0.4.0 development
  • jetscii 0.5.3 development
  • pulp 0.4.0