Expand description
§skesa-rs
Rust port of NCBI’s SKESA genome assembler.
This crate provides both a command-line interface and a library API for de-novo assembly of microbial genomes from short reads.
§Library Usage
use skesa_rs::read_holder::ReadHolder;
use skesa_rs::sorted_counter;
use skesa_rs::graph_digger::{self, DiggerParams};
// Load reads into a ReadHolder
let mut reads = ReadHolder::new(false);
reads.push_back_str("ACGTACGTACGTACGTACGTACGT");
// Or load from files
let rg = skesa_rs::reads_getter::ReadsGetter::new(
&["reads.fasta".to_string()], false
).unwrap();
// Count k-mers
let mut kmers = sorted_counter::count_kmers_sorted(
rg.reads(), 21, 2, 32,
);
sorted_counter::get_branches(&mut kmers, 21);
// Assemble
let contigs = graph_digger::assemble_contigs(
&mut kmers, 21, &DiggerParams::default(),
);Modules§
- api
- High-level builder API for embedding skesa-rs as a library.
- assembler
- assembly_
stats - Assembly statistics and quality metrics.
- bloom_
filter - clean_
reads - concurrent_
hash - contig
- contig_
output - counter
- db_
graph - flat_
counter - genetic_
code - NCBI genetic code tables for codon-to-amino-acid translation. Port of SKESA’s genetic_code.hpp.
- gfa
- glb_
align - Sequence alignment and distance utilities. Partial Rust implementation of SKESA’s glb_align.hpp/glb_align.cpp behavior.
- graph_
digger - graph_
io - guided_
assembly - guided_
graph - guided_
path - hash_
graph_ output - histogram
- Histogram analysis utilities for k-mer count distributions. Port of FindValleyAndPeak, HistogramRange, GetAverageCount, CalculateGenomeSize from common_util.hpp.
- kmer
- kmer_
counter - kmer_
lookup - kmer_
output - large_
int - linked_
contig - model
- Nucleotide complement, IUPAC ambiguity codes, and related utilities. Port of SKESA’s Model.hpp.
- nuc_
prot_ align - output
- paired_
reads - read_
holder - reads_
getter - rlimit
- Optional address-space cap for development and testing.
- snp_
discovery - SNP discovery at fork points during graph traversal.
- sorted_
counter - spider_
graph - untranslated
- Skeleton stubs for C++ SKESA functions not yet translated to Rust.